[SciPy-Dev] Split signal.lti class into subclasses

Irvin Probst irvin.probst at ensta-bretagne.fr
Sun Apr 12 06:13:30 EDT 2015


Hi,
I hope I won't upset anyone saying this, but IMHO the SS/tf stuff in 
scipy right now is close to unusable so any improvement is a good thing.



On Sun, 12 Apr 2015 11:52:58 +0200, Felix Berkenkamp wrote:
> Hi everyone,
>
> it would be great if someone could comment on my pull request from a
> month ago (see below for details)
> https://github.com/scipy/scipy/pull/4576
>
> This is my first contribution to scipy, so any feedback would be 
> highly
> appreciated.
>
> Thanks,
> Felix
>
> On 01/03/15 16:47, Felix Berkenkamp wrote:
>> Hi everyone,
>>
>> I started looking into improving the signal.lti class following the
>> issue discussed at
>> https://github.com/scipy/scipy/issues/2912
>>
>> The pull request can be found here:
>> https://github.com/scipy/scipy/pull/4576
>>
>> The main idea is to split the lti class into ss, tf, and zpk 
>> subclasses.
>> Calling the lti class itself returns instances of these three 
>> subclasses.
>>
>> Advantages
>> * No redundant information (lti class currently holds the 
>> information of
>> all 3 classes)
>> * Reduce overhead (creating 3 system representations)
>> * Switching between the different subclasses is more explicit: 
>> obj.ss(),
>> obj.tf(), obj.zpk()
>> * Avoids one huge class for everything
>> * Is fully backwards compatible (as far as I can tell)
>> * Similar to what Octave / Matlab does (easier to convert code from
>> there to scipy)
>>
>> Disadvantages:
>> * Accessing properties that are not part of the subclass is more
>> expensive (e.g.: sys = ss(1,1,1,1); sys.num  --> this now returns
>> sys.tf().num).
>>
>> Any suggestions / comments / things I've broken?
>>
>> Best,
>> Felix
>>
>
> _______________________________________________
> SciPy-Dev mailing list
> SciPy-Dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-dev




More information about the SciPy-Dev mailing list