@@ -77,7 +77,7 @@ struct NonLinMPC{S<:StateEstimator, JEFunc<:Function} <: PredictiveController
7777 last_ΔŨ, last_C, last_Ŷ = nothing , nothing , nothing
7878 function Jfunc (ΔŨ:: Float64... )
7979 if ΔŨ != = last_ΔŨ
80- last_Ŷ = evalŶ (mpc, model, ΔŨ)
80+ last_Ŷ = predict (mpc, model, ΔŨ)
8181 last_C = con_nonlinprog (mpc, model, last_Ŷ, ΔŨ)
8282 last_ΔŨ = ΔŨ
8383 end
@@ -86,7 +86,7 @@ struct NonLinMPC{S<:StateEstimator, JEFunc<:Function} <: PredictiveController
8686 last_dΔŨ, last_dC, last_dŶ = nothing , nothing , nothing
8787 function Jfunc (dΔŨ:: T... ) where {T<: Real }
8888 if dΔŨ != = last_dΔŨ
89- last_dŶ = evalŶ (mpc, model, dΔŨ)
89+ last_dŶ = predict (mpc, model, dΔŨ)
9090 last_dC = con_nonlinprog (mpc, model, last_dŶ, dΔŨ)
9191 last_dΔŨ = dΔŨ
9292 end
@@ -97,15 +97,15 @@ struct NonLinMPC{S<:StateEstimator, JEFunc<:Function} <: PredictiveController
9797 ncon = length (mpc. con. Ŷmin) + length (mpc. con. Ŷmax)
9898 function con_nonlinprog_i (i, ΔŨ:: NTuple{N, Float64} ) where {N}
9999 if ΔŨ != = last_ΔŨ
100- last_Ŷ = evalŶ (mpc, model, ΔŨ)
100+ last_Ŷ = predict (mpc, model, ΔŨ)
101101 last_C = con_nonlinprog (mpc, model, last_Ŷ, ΔŨ)
102102 last_ΔŨ = ΔŨ
103103 end
104104 return last_C[i]
105105 end
106106 function con_nonlinprog_i (i, dΔŨ:: NTuple{N, T} ) where {N, T<: Real }
107107 if dΔŨ != = last_dΔŨ
108- last_dŶ = evalŶ (mpc, model, dΔŨ)
108+ last_dŶ = predict (mpc, model, dΔŨ)
109109 last_dC = con_nonlinprog (mpc, model, last_dŶ, dΔŨ)
110110 last_dΔŨ = dΔŨ
111111 end
@@ -338,35 +338,4 @@ function con_nonlinprog(mpc::NonLinMPC, ::SimModel, Ŷ, ΔŨ::NTuple{N, T}) wh
338338 C_Ŷmax[isinf .(C_Ŷmax)] .= 0
339339 C = [C_Ŷmin; C_Ŷmax]
340340 return C
341- end
342-
343-
344- """
345- evalŶ(mpc::NonLinMPC, model::LinModel, x̂d, d0, D̂0, U0::Vector{T}) where {T}
346-
347- Evaluate the outputs predictions ``\\ mathbf{Ŷ}`` when `model` is a [`LinModel`](@ref).
348- """
349- function evalŶ (mpc:: NonLinMPC , :: LinModel , ΔŨ:: NTuple{N, T} ) where {N, T}
350- ΔŨ = collect (ΔŨ) # convert NTuple to Vector
351- return mpc. Ẽ* ΔŨ + mpc. F
352- end
353-
354- """
355- evalŶ(mpc::NonLinMPC, model::SimModel, x̂d, d0, D̂0, U0::Vector{T}) where {T}
356-
357- Evaluate ``\\ mathbf{Ŷ}`` when `model` is not a [`LinModel`](@ref).
358- """
359- function evalŶ (mpc:: NonLinMPC , model:: SimModel , ΔŨ:: NTuple{N, T} ) where {N, T}
360- ΔŨ = collect (ΔŨ) # convert NTuple to Vector
361- U0 = mpc. S̃_Hp* ΔŨ + mpc. T_Hp* (mpc. estim. lastu0)
362- Ŷd = Vector {T} (undef, model. ny* mpc. Hp)
363- x̂d:: Vector{T} = copy (mpc. x̂d)
364- d0 = mpc. d0
365- for j= 1 : mpc. Hp
366- u0 = U0[(1 + model. nu* (j- 1 )): (model. nu* j)]
367- x̂d[:] = f (model, x̂d, u0, d0)
368- d0 = mpc. D̂0[(1 + model. nd* (j- 1 )): (model. nd* j)]
369- Ŷd[(1 + model. ny* (j- 1 )): (model. ny* j)] = h (model, x̂d, d0) + model. yop
370- end
371- return Ŷd + mpc. Ŷs
372341end
0 commit comments