@@ -75,17 +75,21 @@ struct NonLinMPC{S<:StateEstimator, JEFunc<:Function} <: PredictiveController
7575 J = let mpc= mpc, model= model # capture mpc and model variables
7676 (ΔŨ... ) -> obj_nonlinprog (mpc, model, ΔŨ)
7777 end
78- register (mpc . optim, :J , nvar, J, autodiff= true )
79- @NLobjective (mpc . optim, Min, J (ΔŨ... ))
78+ register (optim, :J , nvar, J, autodiff= true )
79+ @NLobjective (optim, Min, J (ΔŨ... ))
8080 nonlinconstraint = let mpc= mpc, model= model # capture mpc and model variables
8181 (ΔŨ... ) -> con_nonlinprog (mpc, model, ΔŨ)
8282 end
8383 nonlincon_memoized = memoize (nonlinconstraint, 2 * ny* Hp)
84- for i= 1 : ny* Hp
85- register (mpc. optim, Symbol (" C_Ŷmin_$(i) " ), nvar, nonlincon_memoized[i], autodiff= true )
84+ n = 0
85+ for i in eachindex (con. Ŷmin)
86+ sym = Symbol (" C_Ŷmin_$i " )
87+ register (optim, sym, nvar, nonlincon_memoized[n + i], autodiff= true )
8688 end
87- for i= 1 : ny* Hp
88- register (mpc. optim, Symbol (" C_Ŷmax_$(i) " ), nvar, nonlincon_memoized[ny* Hp+ i], autodiff= true )
89+ n = lastindex (con. Ŷmin)
90+ for i in eachindex (con. Ŷmax)
91+ sym = Symbol (" C_Ŷmax_$i " )
92+ register (optim, sym, nvar, nonlincon_memoized[n + i], autodiff= true )
8993 end
9094 set_silent (optim)
9195 return mpc
0 commit comments