Major highlights of this week-
-
PR #21703 got merged!! This PR was long overdue and was also crucial for the foundation of the control module in the later stages of development. There have been a few significant changes in the structure of the Series and Parallel classes from when I discussed it last time (Week 5 & 6 blogpost). To list a few -
- Both
Series
andParallel
classes are now divided into two classes, viz.Series
andMIMOSeries
along withParallel
andMIMOParallel
. This is done to structure the project better. It will help the user (with better API) and the future contributors (better structure = easy debugging). Earlier, we were planning to go withSISOSeries
/SISOParallel
andMIMOSeries
/MIMOParallel
naming convention (for consistency), but sinceSeries
andParallel
classes have already been there in the past two releases, we decided to keep them as it is for backward compatibility. LinearTimeInvariant
class, introduced in Week-6, now acts as a superclass forSISOLinearTimeInvariant
andMIMOLinearTimeInvariant
classes. As the name suggests, MIMO classes (likeTransferFunctionMatrix
,MIMOSeries
, andMIMOParallel
) are subclasses ofMIMOLinearTimeInvariant
and SISO classes (likeTransferFunction
,Series
andParallel
) are subclasses ofSISOLinearTimeInvariant
.- In some cases, the
doit()
method inSeries
andMIMOSeries
classes could cancel poles and zeros in the equivalent TransferFunction objects. This vulnerability was pointed out by @oscarbenjamin, and it is now fixed. - Flattening of args is now done at the time of object creation for
Series
(SISO) andParallel
(MIMO and SISO) classes. Earlier it was only implemented for__mul__
(in Series), and__add__
(in Parallel), respectively. - I introduced a decorator to reduce redundant code for checking the type of object for various mathematical operations.
- Both
-
Added
evalf()
,simplify()
andexpand()
methods inTransferFunctionMatrix
class.
Apart from these significant highlights, I am also worked on the plots PR (#21763) this week. There are many performance/API accessibility constraints that I have to fulfill before this could be merged.
PREVIOUSWeek 7 - GSoC '21