-
-
Notifications
You must be signed in to change notification settings - Fork 224
Control parameter specification for AbstractODESystem
, DiscreteSystem
#1059
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
Conversation
Analogues of this same functionality should be added to SDESystem and DiscreteSystem. |
Added a simple spring-mass-damper test for the control Jacobian, which should pass. Is there anything else y'all would recommend for this PR? I'm thinking a future PR could add the capability of replacing the control parameters with functions in |
I think this looks good, though note CI is failing. @YingboMa what do you think of the design? |
AbstractODESystem
, DiscreteSystem
I don't think the |
Yes, unrelated. That's the Symbolic arrays stuff. |
I've added the control input to the Edit: Is this code coverage failure an issue with merging this PR? I can try to add more tests, but adding the new |
What happens with the controls when the ODEProblem is built? Looks like nothing? |
I guess let's move one step at a time. The |
Now if we do this, we should put a deprecation warning on ControlSystem and remove it. |
Should this be done in this PR? |
Do it in the next. |
Adds control parameter specification, related to #1041. Also adds a control Jacobian cached reference and an associated function. If the
calculate_jacobian
function generates a state space modelA
matrix, then the newcalculate_control_jacobian
function calculates theB
matrix.@ChrisRackauckas @YingboMa what do you think about this design? Thoughts before I proceed? Should I proceed? The rules are...
kwarg
toODESystem
, and are empty by defaultparameters
of a system (I think this makes sense, since we don't want the control parameters to have their own dynamics)calculate_control_jacobian
to calculate the Jacobian of the system's dynamics with respect to the control parameters, not with respect to the state variables as is the case incalculate_jacobian
It would be nice to add a
generate_statespace
function to produce expressions for calculating the tupleA,B
. That way, users can easily linearize anODESystem
about any operating point.