@@ -366,27 +366,27 @@ function init_optimization!(mpc::NonLinMPC, optim::JuMP.GenericModel{JNT}) where
366366 gfunc = [(ΔŨ... ) -> gfunc_i (i, ΔŨ) for i in 1 : ng]
367367 (Jfunc, gfunc)
368368 end
369- register (optim, :Jfunc , nΔŨ, Jfunc, autodiff = true )
370- @NLobjective (optim, Min, Jfunc (ΔŨvar... ))
369+ @operator (optim, J , nΔŨ, Jfunc)
370+ @objective (optim, Min, J (ΔŨvar... ))
371371 if ng ≠ 0
372372 for i in eachindex (con. Ymin)
373- sym = Symbol (" g_Ymin_$i " )
374- register (optim, sym, nΔŨ, gfunc[i], autodiff = true )
373+ name = Symbol (" g_Ymin_$i " )
374+ optim[name] = add_nonlinear_operator (optim, nΔŨ, gfunc[i]; name )
375375 end
376376 i_end_Ymin = 1 Hp* ny
377377 for i in eachindex (con. Ymax)
378- sym = Symbol (" g_Ymax_$i " )
379- register (optim, sym, nΔŨ, gfunc[i_end_Ymin+ i], autodiff = true )
378+ name = Symbol (" g_Ymax_$i " )
379+ optim[name] = add_nonlinear_operator (optim, nΔŨ, gfunc[i_end_Ymin+ i]; name )
380380 end
381381 i_end_Ymax = 2 Hp* ny
382382 for i in eachindex (con. x̂min)
383- sym = Symbol (" g_x̂min_$i " )
384- register (optim, sym, nΔŨ, gfunc[i_end_Ymax+ i], autodiff = true )
383+ name = Symbol (" g_x̂min_$i " )
384+ optim[name] = add_nonlinear_operator (optim, nΔŨ, gfunc[i_end_Ymax+ i]; name )
385385 end
386386 i_end_x̂min = 2 Hp* ny + nx̂
387387 for i in eachindex (con. x̂max)
388- sym = Symbol (" g_x̂max_$i " )
389- register (optim, sym, nΔŨ, gfunc[i_end_x̂min+ i], autodiff = true )
388+ name = Symbol (" g_x̂max_$i " )
389+ optim[name] = add_nonlinear_operator (optim, nΔŨ, gfunc[i_end_x̂min+ i]; name )
390390 end
391391 end
392392 return nothing
@@ -398,21 +398,26 @@ function setnonlincon!(mpc::NonLinMPC, ::NonLinModel)
398398 ΔŨvar = optim[:ΔŨvar ]
399399 con = mpc. con
400400 map (con -> delete (optim, con), all_nonlinear_constraints (optim))
401+ #=
401402 for i in findall(.!isinf.(con.Ymin))
402403 f_sym = Symbol("g_Ymin_$(i)")
403404 add_nonlinear_constraint(optim, :($(f_sym)($(ΔŨvar...)) <= 0))
405+ @constraint(optim, f_sym <= 0)
404406 end
405407 for i in findall(.!isinf.(con.Ymax))
406408 f_sym = Symbol("g_Ymax_$(i)")
407409 add_nonlinear_constraint(optim, :($(f_sym)($(ΔŨvar...)) <= 0))
408410 end
411+ =#
409412 for i in findall (.! isinf .(con. x̂min))
410413 f_sym = Symbol (" g_x̂min_$(i) " )
411- add_nonlinear_constraint (optim, :($ (f_sym)($ (ΔŨvar... )) <= 0 ))
414+ # add_nonlinear_constraint(optim, :($(f_sym)($(ΔŨvar...)) <= 0))
415+ # add_constraint(optim, :))
416+ # @constraint(optim, (ΔŨvar...) <= 0)
412417 end
413418 for i in findall (.! isinf .(con. x̂max))
414419 f_sym = Symbol (" g_x̂max_$(i) " )
415- add_nonlinear_constraint (optim, :($ (f_sym)($ (ΔŨvar... )) <= 0 ))
420+ # add_nonlinear_constraint(optim, :($(f_sym)($(ΔŨvar...)) <= 0))
416421 end
417422 return nothing
418423end
0 commit comments