@@ -75,17 +75,21 @@ struct NonLinMPC{S<:StateEstimator, JEFunc<:Function} <: PredictiveController
75
75
J = let mpc= mpc, model= model # capture mpc and model variables
76
76
(ΔŨ... ) -> obj_nonlinprog (mpc, model, ΔŨ)
77
77
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 (ΔŨ... ))
80
80
nonlinconstraint = let mpc= mpc, model= model # capture mpc and model variables
81
81
(ΔŨ... ) -> con_nonlinprog (mpc, model, ΔŨ)
82
82
end
83
83
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 )
86
88
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 )
89
93
end
90
94
set_silent (optim)
91
95
return mpc
0 commit comments