@@ -92,28 +92,12 @@ in which the weight matrices are repeated ``H_p`` or ``H_c`` times:
9292 \m athbf{L}_{H_p} &= \t ext{diag}\m athbf{(L,L,...,L)}
9393\e nd{aligned}
9494```
95- and with the following nomenclature:
96-
97- | VARIABLE | DESCRIPTION | SIZE |
98- | :--------------- | :------------------------------------------------- | :--------------- |
99- | ``H_p`` | prediction horizon (integer) | `()` |
100- | ``H_c`` | control horizon (integer) | `()` |
101- | ``\m athbf{ΔU}`` | manipulated input increments over ``H_c`` | `(nu*Hc,)` |
102- | ``\m athbf{Ŷ}`` | predicted outputs over ``H_p`` | `(ny*Hp,)` |
103- | ``\m athbf{U}`` | manipulated inputs over ``H_p`` | `(nu*Hp,)` |
104- | ``\m athbf{R̂_y}`` | predicted output setpoints over ``H_p`` | `(ny*Hp,)` |
105- | ``\m athbf{R̂_u}`` | predicted manipulated input setpoints over ``H_p`` | `(nu*Hp,)` |
106- | ``\m athbf{M}`` | output setpoint tracking weights | `(ny*Hp, ny*Hp)` |
107- | ``\m athbf{N}`` | manipulated input increment weights | `(nu*Hc, nu*Hc)` |
108- | ``\m athbf{L}`` | manipulated input setpoint tracking weights | `(nu*Hp, nu*Hp)` |
109- | ``C`` | slack variable weight | `()` |
110- | ``ϵ`` | slack variable for constraint softening | `()` |
111-
11295The ``\m athbf{ΔU}`` vector includes the manipulated input increments ``\m athbf{Δu}(k+j) =
11396\m athbf{u}(k+j) - \m athbf{u}(k+j-1)`` from ``j=0`` to ``H_c-1``, the ``\m athbf{Ŷ}`` vector,
11497the output predictions ``\m athbf{ŷ}(k+j)`` from ``j=1`` to ``H_p``, and the ``\m athbf{U}``
11598vector, the manipulated inputs ``\m athbf{u}(k+j)`` from ``j=0`` to ``H_p-1``. The
11699manipulated input setpoint predictions ``\m athbf{R̂_u}`` are constant at ``\m athbf{r_u}``.
100+ See Extended Help for a detailed nomenclature.
117101
118102This method uses the default state estimator, a [`SteadyKalmanFilter`](@ref) with default
119103arguments.
@@ -150,6 +134,23 @@ LinMPC controller with a sample time Ts = 4.0 s, OSQP optimizer, SteadyKalmanFil
150134Manipulated inputs setpoints ``\m athbf{r_u}`` are not common but they can be interesting
151135for over-actuated systems, when `nu > ny` (e.g. prioritize solutions with lower economical
152136costs). The default `Lwt` value implies that this feature is disabled by default.
137+
138+ The objective function follows this nomenclature:
139+
140+ | VARIABLE | DESCRIPTION | SIZE |
141+ | :--------------- | :------------------------------------------------- | :--------------- |
142+ | ``H_p`` | prediction horizon (integer) | `()` |
143+ | ``H_c`` | control horizon (integer) | `()` |
144+ | ``\m athbf{ΔU}`` | manipulated input increments over ``H_c`` | `(nu*Hc,)` |
145+ | ``\m athbf{Ŷ}`` | predicted outputs over ``H_p`` | `(ny*Hp,)` |
146+ | ``\m athbf{U}`` | manipulated inputs over ``H_p`` | `(nu*Hp,)` |
147+ | ``\m athbf{R̂_y}`` | predicted output setpoints over ``H_p`` | `(ny*Hp,)` |
148+ | ``\m athbf{R̂_u}`` | predicted manipulated input setpoints over ``H_p`` | `(nu*Hp,)` |
149+ | ``\m athbf{M}`` | output setpoint tracking weights | `(ny*Hp, ny*Hp)` |
150+ | ``\m athbf{N}`` | manipulated input increment weights | `(nu*Hc, nu*Hc)` |
151+ | ``\m athbf{L}`` | manipulated input setpoint tracking weights | `(nu*Hp, nu*Hp)` |
152+ | ``C`` | slack variable weight | `()` |
153+ | ``ϵ`` | slack variable for constraint softening | `()` |
153154"""
154155LinMPC (model:: LinModel ; kwargs... ) = LinMPC (SteadyKalmanFilter (model); kwargs... )
155156
0 commit comments