@@ -129,7 +129,7 @@ function getinfo(mpc::PredictiveController{NT}) where NT<:Real
129129 ΔŨ, Ŷe, Ue = nonlinprog_vectors! (ΔŨ, Ŷe, Ue, Ū, mpc, Ŷ0, Z̃)
130130 J = obj_nonlinprog! (Ȳ, Ū, mpc, model, Ue, Ŷe, ΔŨ, Z̃)
131131 U, Ŷ = Ū, Ȳ
132- U .= mul! (U , mpc. P̃u , Z̃) .+ mpc. Tu_lastu
132+ U .= getU0! (U0 , mpc, Z̃) .+ mpc. Uop
133133 Ŷ .= Ŷ0 .+ mpc. Yop
134134 predictstoch! (Ŷs, mpc, mpc. estim)
135135 info[:ΔU ] = Z̃[1 : mpc. Hc* model. nu]
@@ -211,7 +211,7 @@ function initpred!(mpc::PredictiveController, model::LinModel, d, D̂, R̂y, R̂
211211 end
212212 # --- input setpoint tracking term ---
213213 if ! mpc. weights. iszero_L_Hp[]
214- Cu .= mpc. Tu_lastu .- R̂u
214+ Cu .= mpc. Tu_lastu0 .+ mpc . Uop .- R̂u
215215 mul! (L_Hp_P̃U, mpc. weights. L_Hp, mpc. P̃u)
216216 mul! (q̃, L_Hp_P̃U' , Cu, 1 , 1 ) # q̃ = q̃ + L_Hp*P̃u'*Cu
217217 r .+ = dot (Cu, mpc. weights. L_Hp, Cu) # r = r + Cu'*L_Hp*Cu
@@ -240,9 +240,7 @@ Will also init `mpc.F` with 0 values, or with the stochastic predictions `Ŷs`
240240is an [`InternalModel`](@ref). The function returns `mpc.F`.
241241"""
242242function initpred_common! (mpc:: PredictiveController , model:: SimModel , d, D̂, R̂y, R̂u)
243- lastu = mpc. buffer. u
244- lastu .= mpc. estim. lastu0 .+ model. uop
245- mul! (mpc. Tu_lastu, mpc. Tu, lastu)
243+ mul! (mpc. Tu_lastu0, mpc. Tu, mpc. estim. lastu0)
246244 mpc. ŷ .= evaloutput (mpc. estim, d)
247245 if model. nd ≠ 0
248246 mpc. d0 .= d .- model. dop
@@ -289,9 +287,9 @@ function linconstraint!(mpc::PredictiveController, model::LinModel)
289287 mul! (fx̂, mpc. con. jx̂, mpc. D̂0, 1 , 1 )
290288 end
291289 n = 0
292- mpc. con. b[(n+ 1 ): (n+ nU)] .= @. - mpc. con. U0min - mpc . Uop + mpc. Tu_lastu
290+ mpc. con. b[(n+ 1 ): (n+ nU)] .= @. - mpc. con. U0min + mpc. Tu_lastu0
293291 n += nU
294- mpc. con. b[(n+ 1 ): (n+ nU)] .= @. + mpc. con. U0max + mpc . Uop - mpc. Tu_lastu
292+ mpc. con. b[(n+ 1 ): (n+ nU)] .= @. + mpc. con. U0max - mpc. Tu_lastu0
295293 n += nU
296294 mpc. con. b[(n+ 1 ): (n+ nΔŨ)] .= @. - mpc. con. ΔŨmin
297295 n += nΔŨ
315313function linconstraint! (mpc:: PredictiveController , :: SimModel )
316314 nU, nΔŨ = length (mpc. con. U0min), length (mpc. con. ΔŨmin)
317315 n = 0
318- mpc. con. b[(n+ 1 ): (n+ nU)] .= @. - mpc. con. U0min - mpc . Uop + mpc. Tu_lastu
316+ mpc. con. b[(n+ 1 ): (n+ nU)] .= @. - mpc. con. U0min + mpc. Tu_lastu0
319317 n += nU
320- mpc. con. b[(n+ 1 ): (n+ nU)] .= @. + mpc. con. U0max + mpc . Uop - mpc. Tu_lastu
318+ mpc. con. b[(n+ 1 ): (n+ nU)] .= @. + mpc. con. U0max - mpc. Tu_lastu0
321319 n += nU
322320 mpc. con. b[(n+ 1 ): (n+ nΔŨ)] .= @. - mpc. con. ΔŨmin
323321 n += nΔŨ
0 commit comments