Skip to content

Commit

Permalink
doc addition
Browse files Browse the repository at this point in the history
  • Loading branch information
franckgaga committed Sep 15, 2023
1 parent 9ad409b commit a34030e
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion docs/src/manual/linmpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,15 @@ in which `Hp` and `Hc` keyword arguments are respectively the predictive and con
horizons, and `Mwt` and `Nwt`, the output setpoint tracking and move suppression weights. By
default, [`LinMPC`](@ref) controllers use [`OSQP`](https://osqp.org/) to solve the problem,
soft constraints on output predictions ``\mathbf{ŷ}`` to ensure feasibility, and a
[`SteadyKalmanFilter`](@ref) to estimate the plant states. An attentive reader will also
[`SteadyKalmanFilter`](@ref) to estimate the plant states[^1]. An attentive reader will also
notice that the Kalman filter estimates two additional states compared to the plant model.
These are the integrators for the unmeasured plant disturbances, and they are automatically
added to the model outputs by default if feasible (see [`SteadyKalmanFilter`](@ref)
for details).

[^1]: We could have use an [`InternalModel`](@ref) structure to avoid state estimator design.
It was tested on the example of this page and it gives similar results.

Before closing the loop, we call [`initstate!`](@ref) with the actual plant inputs and
measurements to ensure a bumpless transfer. Since `model` simulates our plant here, its
output will initialize the states. [`LinModel`](@ref) objects are callable for this purpose
Expand Down

0 comments on commit a34030e

Please sign in to comment.