Skip to content

Commit 58191fd

Browse files
committed
debug: custom constraint with LinModel is working now
1 parent 851d308 commit 58191fd

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

src/controller/nonlinmpc.jl

+13-13
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ function init_optimization!(mpc::NonLinMPC, model::SimModel, optim)
438438
@operator(optim, J, nΔŨ, Jfunc)
439439
@objective(optim, Min, J(ΔŨvar...))
440440
init_nonlincon!(mpc, model, gfunc)
441+
set_nonlincon!(mpc, model, mpc.optim) #TODO: check if this is really necessary !!
441442
return nothing
442443
end
443444

@@ -507,6 +508,18 @@ function get_optim_functions(mpc::NonLinMPC, ::JuMP.GenericModel{JNT}) where JNT
507508
return Jfunc, gfunc
508509
end
509510

511+
function init_nonlincon!(mpc::NonLinMPC, ::LinModel, gfunc::Vector{<:Function})
512+
optim, con = mpc.optim, mpc.con
513+
nΔŨ = length(mpc.ΔŨ)
514+
if length(con.i_g) 0
515+
i_base = 0
516+
for i in 1:con.nc
517+
name = Symbol("g_c_$i")
518+
optim[name] = JuMP.add_nonlinear_operator(optim, nΔŨ, gfunc[i_base+i]; name)
519+
end
520+
end
521+
return nothing
522+
end
510523

511524
function init_nonlincon!(mpc::NonLinMPC, ::NonLinModel, gfunc::Vector{<:Function})
512525
optim, con = mpc.optim, mpc.con
@@ -541,19 +554,6 @@ function init_nonlincon!(mpc::NonLinMPC, ::NonLinModel, gfunc::Vector{<:Function
541554
return nothing
542555
end
543556

544-
function init_nonlincon!(mpc::NonLinMPC, ::LinModel, gfunc::Vector{<:Function})
545-
optim, con = mpc.optim, mpc.con
546-
nΔŨ = length(mpc.ΔŨ)
547-
if length(con.i_g) 0
548-
i_base = 0
549-
for i in 1:con.nc
550-
name = Symbol("g_c_$i")
551-
optim[name] = JuMP.add_nonlinear_operator(optim, nΔŨ, gfunc[i_base+i]; name)
552-
end
553-
end
554-
return nothing
555-
end
556-
557557
"""
558558
set_nonlincon!(mpc::NonLinMPC, ::LinModel, optim)
559559

0 commit comments

Comments
 (0)