-
Notifications
You must be signed in to change notification settings - Fork 86
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
lsim and lsimplot has problems with arguments u and x0 #460
Comments
Maybe we should wait to fix this until #377 is finished so the fixes are applied to the future version of the delay systems, not sure if it really matters but it seems like the PR is pretty close so should not be too much work to finish it first. |
The PR this was waiting for is now in, so maybe this discussion can be had now? The main issue for me is that the DelayLTISystem
For a statespace or tf
I think u in the non-function case should be a matrix of size (ns, length(t)) for both, if you want a constant it is easy to generate a function that returns constant. For the function I'm not sure, I remember there were some split opinions last time it was brought up about whether |
It is not trivial to simulate delay systems with piece-wise constant inputs.
This inconsistency is another good reason to get rid of the state feedback possibility, which could instead be invoked in an explicit fashion with a function like
I don't really see how this adds anything, given how easy it is to just use We could also think about if we should use the type |
Okay, but then (as you mention below) maybe remove the vector/constant option for the delay systems to not confuse these two cases.
I'm not sure I see why this is a good reason to get rid of it, it would be easy to solve by saying either that we run with
Agreed.
Don't know what that is, will have a look. |
I'm not sure that I understand your suggestion. Is it that we should decide between either u(t) / u(uout, t) OR u(x, t) / u(uout, x, t) ?
The main reason is not due to implementation issues, but that I think it is a more clear if |
Yes, that was my thought.
Okay, that makes sense. So for the above suggestion we go with u(t) / u(uout, t) then. |
Yes, I think that is the right way to go. But we would need some |
See https://discourse.julialang.org/t/controlsystems-transfer-functions-with-delay/58003/7
u
is defined,u(x, t)
vsu(t)
. Can easily lead to defining a zero input since delay system also acceptu(uout, t)
as an inplace version.lsim
for delayed systems, exists inhelp?>
menu in replx0
, for example ifsys
is float andx0
is int arraylsimplot
can't handlex0
at all and gives strange error messagex0
. It is also not very clear how the delayed states are initialized and how you can affect them (not really possible as it is now but maybe it should be).The text was updated successfully, but these errors were encountered: