ControlSystem
System Constructors
ModelingToolkit.ControlSystem — Typestruct ControlSystem <: ModelingToolkit.AbstractControlSystemA system describing an optimal control problem. This contains a loss function and ordinary differential equations with control variables that describe the dynamics.
Fields
lossThe Loss function
eqsThe ODEs defining the system.
ivIndependent variable.
statesDependent (state) variables. Must not contain the independent variable.
controlsControl variables.
psParameter variables. Must not contain the independent variable.
observednameName: the name of the system. These are required to have unique names.
systemssystems: The internal systems
defaultsdefaults: The default values to use when initial conditions and/or parameters are not supplied in
ODEProblem.
Example
using ModelingToolkit
@variables t x(t) v(t) u(t)
D = Differential(t)
loss = (4-x)^2 + 2v^2 + u^2
eqs = [
D(x) ~ v
D(v) ~ u^3
]
sys = ControlSystem(loss,eqs,t,[x,v],[u],[])Composition and Accessor Functions
get_eqs(sys)orequations(sys): The equations that define the system.get_states(sys)orstates(sys): The set of states in the system.get_ps(sys)orparameters(sys): The parameters of the system.get_controls(sys)orcontrols(sys): The control variables of the system
Transformations
ModelingToolkit.runge_kutta_discretize — Functionrunge_kutta_discretize(sys::ControlSystem,dt,tspan;
tab = ModelingToolkit.constructRadauIIA5())Transforms a nonlinear optimal control problem into a constrained OptimizationProblem according to a Runge-Kutta tableau that describes a collocation method. Requires a fixed dt over a given timespan. Defaults to using the 5th order RadauIIA tableau, and altnerative tableaus can be specified using the SciML tableau style.
ModelingToolkit.structural_simplify — Functionstructural_simplify(sys; simplify)
Structurally simplify algebraic equations in a system and compute the topological sort of the observed equations. When simplify=true, the simplify function will be applied during the tearing process.