@@ -146,24 +146,35 @@ Construct a linear predictive controller `LinMPC` based on [`LinModel`](@ref) `m
146146
147147The controller minimizes the following objective function at each discrete time ``k``:
148148```math
149- \m in_{\m athbf{ΔU}, ϵ} \m athbf{(R̂_y - Ŷ)}' \m athbf{M}_{H_p} \m athbf{(R̂_y - Ŷ)} +
150- \m athbf{(ΔU)}' \m athbf{N}_{H_c} \m athbf{(ΔU)} +
151- \m athbf{(R̂_u - U)}' \m athbf{L}_{H_p} \m athbf{(R̂_u - U)} + Cϵ^2
149+ \m in_{\m athbf{ΔU}, ϵ} \m athbf{(R̂_y - Ŷ)}' \m athbf{M}_{H_p} \m athbf{(R̂_y - Ŷ)}
150+ + \m athbf{(ΔU)}' \m athbf{N}_{H_c} \m athbf{(ΔU)}
151+ + \m athbf{(R̂_u - U)}' \m athbf{L}_{H_p} \m athbf{(R̂_u - U)}
152+ + C ϵ^2
152153```
153- in which :
154-
155- - ``H_p`` : prediction horizon
156- - ``H_c`` : control horizon
157- - ``\m athbf{ΔU}`` : manipulated input increments over ``H_c``
158- - ``\m athbf{Ŷ}`` : predicted outputs over ``H_p``
159- - ``\m athbf{U}`` : manipulated inputs over ``H_p``
160- - ``\m athbf{R̂_y}`` : predicted output setpoints over ``H_p``
161- - ``\m athbf{R̂_u}`` : predicted manipulated input setpoints over ``H_p``
162- - ``\m athbf{M}_{H_p} = \t ext{diag}\m athbf{(M,M,...,M)}`` : output setpoint tracking weights
163- - ``\m athbf{N}_{H_c} = \t ext{diag}\m athbf{(N,N,...,N)}`` : manipulated input increment weights
164- - ``\m athbf{L}_{H_p} = \t ext{diag}\m athbf{(L,L,...,L)}`` : manipulated input setpoint tracking weights
165- - ``C`` : slack variable weight
166- - ``ϵ`` : slack variable for constraint softening
154+ in which the weight matrices are :
155+ ```math
156+ \b egin{aligned}
157+ \m athbf{M}_{H_p} &= \t ext{diag}\m athbf{(M,M,...,M)} \\
158+ \m athbf{N}_{H_c} &= \t ext{diag}\m athbf{(N,N,...,N)} \\
159+ \m athbf{L}_{H_p} &= \t ext{diag}\m athbf{(L,L,...,L)}
160+ \e nd{aligned}
161+ ```
162+ and following the nomeclature:
163+
164+ | Var. | Description |
165+ | :------------------- | :------------------------------------------------- |
166+ | ``H_p`` | prediction horizon |
167+ | ``H_c`` | control horizon |
168+ | ``\m athbf{ΔU}`` | manipulated input increments over ``H_c`` |
169+ | ``\m athbf{Ŷ}`` | predicted outputs over ``H_p`` |
170+ | ``\m athbf{U}`` | manipulated inputs over ``H_p`` |
171+ | ``\m athbf{R̂_y}`` | predicted output setpoints over ``H_p`` |
172+ | ``\m athbf{R̂_u}`` | predicted manipulated input setpoints over ``H_p`` |
173+ | ``\m athbf{M}_{H_p}`` | output setpoint tracking weights |
174+ | ``\m athbf{N}_{H_c}`` | manipulated input increment weights |
175+ | ``\m athbf{L}_{H_p}`` | manipulated input setpoint tracking weights |
176+ | ``C`` | slack variable weight |
177+ | ``ϵ`` | slack variable for constraint softening |
167178
168179The ``\m athbf{ΔU}`` vector includes the manipulated input increments ``\m athbf{Δu}(k+j) =
169180\m athbf{u}(k+j) - \m athbf{u}(k+j-1)`` from ``j=0`` to ``H_c-1``, the ``\m athbf{Ŷ}`` vector,
0 commit comments