@@ -192,33 +192,34 @@ function initpred!(mpc::PredictiveController, model::LinModel, d, D̂, R̂y, R̂
192192 mul! (mpc. T_lastu0, mpc. T, mpc. estim. lastu0)
193193 ŷ, F, q̃, r = mpc. ŷ, mpc. F, mpc. q̃, mpc. r
194194 Cy, Cu = mpc. buffer. Cy, mpc. buffer. Cu
195+ M_Hp_Ẽ, L_Hp_S̃ = mpc. buffer. Ẽ, mpc. buffer. S̃
195196 ŷ .= evaloutput (mpc. estim, d)
196- predictstoch! (mpc, mpc. estim) # init mpc. F with Ŷs for InternalModel
197- F .+ = mpc. B
198- mul! (F, mpc. K, mpc. estim. x̂0, 1 , 1 )
199- mul! (F, mpc. V, mpc. estim. lastu0, 1 , 1 )
197+ predictstoch! (mpc, mpc. estim) # init F with Ŷs for InternalModel
198+ F .+ = mpc. B # F = F + B
199+ mul! (F, mpc. K, mpc. estim. x̂0, 1 , 1 ) # F = F + K*x̂0
200+ mul! (F, mpc. V, mpc. estim. lastu0, 1 , 1 ) # F = F + V*lastu0
200201 if model. nd ≠ 0
201202 mpc. d0 .= d .- model. dop
202203 mpc. D̂0 .= D̂ .- mpc. Dop
203204 mpc. D̂e[1 : model. nd] .= d
204205 mpc. D̂e[model. nd+ 1 : end ] .= D̂
205- mul! (F, mpc. G, mpc. d0, 1 , 1 )
206- mul! (F, mpc. J, mpc. D̂0, 1 , 1 )
206+ mul! (F, mpc. G, mpc. d0, 1 , 1 ) # F = F + G*d0
207+ mul! (F, mpc. J, mpc. D̂0, 1 , 1 ) # F = F + J*D̂0
207208 end
208209 # --- output setpoint tracking term ---
209210 mpc. R̂y .= R̂y
210211 Cy .= F .- (R̂y .- mpc. Yop)
211- M_Hp_Ẽ = mpc. weights. M_Hp* mpc. Ẽ
212- mul! (q̃, M_Hp_Ẽ' , Cy) # q̃ = M_Hp*Ẽ'*Cy
212+ mul! ( M_Hp_Ẽ, mpc. weights. M_Hp, mpc. Ẽ)
213+ mul! (q̃, M_Hp_Ẽ' , Cy) # q̃ = M_Hp*Ẽ'*Cy
213214 r .= dot (Cy, mpc. weights. M_Hp, Cy)
214215 # --- input setpoint tracking term ---
215216 mpc. R̂u .= R̂u
216217 Cu .= mpc. T_lastu0 .- (R̂u .- mpc. Uop)
217- L_Hp_S̃ = mpc. weights. L_Hp* mpc. S̃
218- mul! (q̃, L_Hp_S̃' , Cu, 1 , 1 ) # q̃ = q̃ + L_Hp*S̃'*Cu
218+ mul! ( L_Hp_S̃, mpc. weights. L_Hp, mpc. S̃)
219+ mul! (q̃, L_Hp_S̃' , Cu, 1 , 1 ) # q̃ = q̃ + L_Hp*S̃'*Cu
219220 r .+ = dot (Cu, mpc. weights. L_Hp, Cu)
220221 # --- finalize ---
221- lmul! (2 , q̃) # q̃ = 2*q̃
222+ lmul! (2 , q̃) # q̃ = 2*q̃
222223 return nothing
223224end
224225
@@ -230,7 +231,7 @@ Init `ŷ, F, d0, D̂0, D̂e, R̂y, R̂u` vectors when model is not a [`LinModel
230231function initpred! (mpc:: PredictiveController , model:: SimModel , d, D̂, R̂y, R̂u)
231232 mul! (mpc. T_lastu0, mpc. T, mpc. estim. lastu0)
232233 mpc. ŷ .= evaloutput (mpc. estim, d)
233- predictstoch! (mpc, mpc. estim) # init mpc. F with Ŷs for InternalModel
234+ predictstoch! (mpc, mpc. estim) # init F with Ŷs for InternalModel
234235 if model. nd ≠ 0
235236 mpc. d0 .= d .- model. dop
236237 mpc. D̂0 .= D̂ .- mpc. Dop
0 commit comments