Skip to content

Commit 6a7a894

Browse files
committed
starting conversion to new JuMP NLP syntax
1 parent d0ab4e1 commit 6a7a894

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

src/controller/nonlinmpc.jl

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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 = 1Hp*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 = 2Hp*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 = 2Hp*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
418423
end

0 commit comments

Comments
 (0)