@@ -70,80 +70,3 @@ plot(res, plotry=true, plotymax=true)
7070
7171See the [ manual] ( https://JuliaControl.github.io/ModelPredictiveControl.jl/stable/manual/linmpc/ )
7272for more detailed examples.
73-
74- ## Features
75-
76- ### Model Predictive Control Features
77-
78- - linear and nonlinear plant models exploiting multiple dispatch
79- - model linearization based on automatic differentiation (exact Jacobians)
80- - supported objective function terms:
81- - output setpoint tracking
82- - move suppression
83- - input setpoint tracking
84- - terminal costs
85- - custom economic costs (economic model predictive control)
86- - control horizon distinct from prediction horizon and custom move blocking
87- - adaptive linear model predictive controller
88- - manual model modification
89- - automatic successive linearization of a nonlinear model
90- - objective function weights and covariance matrices modification
91- - explicit predictive controller for problems without constraint
92- - online-tunable soft and hard constraints on:
93- - output predictions
94- - manipulated inputs
95- - manipulated inputs increments
96- - terminal states to ensure nominal stability
97- - custom nonlinear inequality constraints (soft or hard)
98- - supported feedback strategy:
99- - state estimator (see State Estimation features)
100- - internal model structure with a custom stochastic model
101- - automatic model augmentation with integrating states for offset-free tracking
102- - support for unmeasured model outputs
103- - feedforward action with measured disturbances that supports direct transmission
104- - custom predictions for (or preview):
105- - output setpoints
106- - measured disturbances
107- - input setpoints
108- - easy integration with ` Plots.jl `
109- - optimization based on ` JuMP.jl ` to quickly compare multiple optimizers:
110- - many quadratic solvers for linear control
111- - many nonlinear solvers for nonlinear control (local or global)
112- - derivatives based on ` DifferentiationInterface.jl ` to compare different approaches:
113- - automatic differentiation (exact solution)
114- - symbolic differentiation (exact solution)
115- - finite difference (approximate solution)
116- - supported transcription methods of the optimization problem:
117- - direct single shooting
118- - direct multiple shooting
119- - trapezoidal collocation
120- - additional information about the optimum to ease troubleshooting
121- - real-time control loop features:
122- - implementations that carefully limits the allocations
123- - simple soft real-time utilities
124-
125- ### State Estimation Features
126-
127- - supported state estimators/observers:
128- - steady-state Kalman filter
129- - Kalman filter
130- - Luenberger observer
131- - internal model structure
132- - extended Kalman filter
133- - unscented Kalman filter
134- - moving horizon estimator
135- - disable built-in observer to manually provide your own state estimate
136- - easily estimate unmeasured disturbances by adding one or more integrators at the:
137- - manipulated inputs
138- - measured outputs
139- - bumpless manual to automatic transfer for control with a proper initial estimate
140- - estimators in two possible forms:
141- - filter (or current) form to improve accuracy and robustness
142- - predictor (or delayed) form to reduce computational load
143- - moving horizon estimator in two formulations:
144- - linear plant models (quadratic optimization)
145- - nonlinear plant models (nonlinear optimization)
146- - moving horizon estimator online-tunable soft and hard constraints on:
147- - state estimates
148- - process noise estimates
149- - sensor noise estimates
0 commit comments