Week 5 and Week 6 - GSoC '21

Cumulative Progress in Week 5 and Week 6

In Week 5 and Week 6, I have managed to -

  1. Write unit Tests covering all the cases of the previously added MIMO Series and Parallel support.
  2. Introduce a new class (LinearTimeInvariant) to act as a superclass to all the other classes in the lti.py file. Once StateSpace is introduced, it can also be a subclass of LinearTimeInvariant. This class is excluded from __all__ and is not meant to be used by general users.
  3. Improve the LaTeX and pprint functions for Series and Parallel classes. I have also added sufficient tests to ensure that bugs related to the misalignment are not introduced again.
  4. Refactored some of the old tests in test_lti.py.

Although PR #21703 is not merged yet (Due to some pending structural changes related to separating SISO and MIMO systems), I am confident that it will be merged in the upcoming week as only a few minor changes will be required.

First Evaluation

First Evaluation was also conducted just after Week 5, and I am glad to share that I have successfully passed it! I guess I can share the feedback that I received from @namanimmo10, No? :)

GSoC-Feedback

I take this feedback positively and will work on increasing my pace. In the remaining four weeks, I assure you that I will raise my work time to complete the project, if not before then, by the deadline.

Anyway, I would like to thank my mentors and everyone else who reviewed my PRs. I have learned a lot from you people and look forward to learning more before the second evaluation. Also, It is a piece of good news that every student at SymPy has passed the first evaluation, so kudos on that.

Future Plans

In my opinion, I will be able to achieve everything mentioned in my project proposal before the deadline. I will be opening up four new PRs in the upcoming week -

  1. PR for plots. I have already completed the Pole-Zero and Step Response plots. I will complete the Bode and Root Locus by the end of week 7. These will hardly require any further changes (major). So, I am confident that these will be merged very soon. Here is an example -

    Pole-Zero

  2. PR for textbook examples. I had already added one textbook example initially, and I plan to add 2-3 more.
  3. PR for refactoring the Feedback class:
    1. Add support for the positive feedback loop.
    2. Add support for MIMO systems.
    3. Add quality docstrings for explaining concepts like the plant, controller, and error.
  4. PR for adding StateSpace class with required methods and attributes.

As I will be working parallelly on all these PRs (in different branches), my productivity will be much more than the previous PRs. They were fundamental functionalities and required sequential merging before moving forward. After all these PRs are merged (hopefully), SymPy will have its basic control system module.