- Notifications
You must be signed in to change notification settings - Fork441
Improve markov function, add mimo support, change api to TimeResponseData#1022
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
coveralls commentedJul 3, 2024
coveralls commentedJul 4, 2024
coveralls commentedJul 4, 2024
Rather than breaking old code, it would be nice to do this in a way that preserved prior functionality. So use
It also seems a bit odd (to me) to have the return type be a |
I will update this one.
I do not have strong feelings about that. The idea was to simplify the joint use of markov and era: impulse_response=ct.markov(response,m=10)sysd=ct.era(impulse_response,r=4) Direct access of Markov parameters: _,H=ct.markov(response,m=10) I can change the return value to an array. I think it is also better for the old API. H=ct.markov(Y,U,m=10)sysd=ct.era(H,r=4) |
coveralls commentedJul 7, 2024
coveralls commentedJul 7, 2024
coveralls commentedJul 7, 2024
cee59d1
toa3276b7
Comparecoveralls commentedJul 11, 2024 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
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.
Overall this looks OK. It would be good to add unit tests to cover some of thelines that are not currently covered.
control/modelsimp.py Outdated
"""markov(Y, U, [, m]) | ||
Calculate the first `m` Markov parameters [D CB CAB ...] | ||
from data |
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.
Should end in a period.
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.
Done.
control/modelsimp.py Outdated
if Umat.shape[0] != 1 or Ymat.shape[0] != 1: | ||
raise ControlMIMONotImplemented | ||
# Get the system description | ||
if (len(args) < 1): |
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.
Parenthesis are not needed here. The more standard style convention would be
if len(args) < 1:
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.
Done.
control/modelsimp.py Outdated
elif (len(args) > 2): | ||
raise ControlArgument("too many positional arguments") | ||
else: | ||
if (len(args) < 2): |
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.
OK to remove parens (here and below).
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.
Done.
control/modelsimp.py Outdated
dt : True of float, optional | ||
True indicates discrete time with unspecified sampling time, | ||
positive number is discrete time with specified sampling time.It | ||
can be used to scale the markov parameters in order to match the |
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.
Markov should be capitalized.
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.
Done.
control/modelsimp.py Outdated
dt : True of float, optional | ||
True indicates discrete time with unspecified sampling time, | ||
positive number is discrete time with specified sampling time.It | ||
can be used to scale the markov parameters in order to match the |
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.
In the case that a TimeResponseData object is given, shoulddt
default to the value coming from the time array? You could set the default value ofdt
toNone
and then if the input isY, U
then you default todt=1
and the input is data, you default todata.time[1] - data.time[0]
(perhaps with a check to make sure that time points are equally spaced?).
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.
Done.
fd87d92
toe61ac53
Compare9809a78
intopython-control:mainUh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
This PR adds
This breaks old user code!Does not break old user code!