-
Notifications
You must be signed in to change notification settings - Fork 438
MIMO impulse and step response #514
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MIMO impulse and step response #514
Conversation
control/timeresp.py
Outdated
If present, the response represents ony the listed input. | ||
|
||
output : int, optional | ||
If present, the response represents ony the listed input. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If present, the response represents ony the listed input. | |
If present, the response represents only the listed output. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me with one small doc change.
also: not changed in this PR but maybe the right place to fix it: on line 20 in config.py
is a duplicated setting:
'control.squeeze_time_response': True,
6e64f92
to
28bbe7f
Compare
This PR implements MIMO impulse and step responses, mirroring the style and functionality of frequency response functions for MIMO systems. It resolves issue #512 and is consistent with the discussion issue #453. Specifically:
step_response
orimpulse_response
will generate an array of responses (indexed by output, input, and time).squeeze=True
keyword.squeeze=False
keyword.Note that the response for
initial_response
andforced_response
is not indexed by the input (since there is no input in one case and a specifically applied input in the other). The processing of thesqueeze
keyword is the same: by default SISO systems will be returned without the output axis, usesqueeze=True
to remove single dimensional axes from MIMO systems, usesqueeze=False
to force SISO systems to be treated like MIMO systems.Other (small changes):
transpose
keyword was working: it changed [output, input, time] to [time, input, output] instead of [time, output, input]. This was caught when adding unit tests.