From 87dfe7829b66fc422659e1ec8a4dafcbb2e23469 Mon Sep 17 00:00:00 2001 From: franckgaga Date: Wed, 24 Jun 2026 10:23:30 -0400 Subject: [PATCH] added: pretty-print box constraints --- src/controller/linmpc.jl | 4 +++- src/controller/nonlinmpc.jl | 4 +++- src/estimator/mhe.jl | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/controller/linmpc.jl b/src/controller/linmpc.jl index 76dda923a..27730d919 100644 --- a/src/controller/linmpc.jl +++ b/src/controller/linmpc.jl @@ -344,8 +344,10 @@ function print_optim_dim(io::IO, mpc::LinMPC) nZ̃, nϵ = length(mpc.Z̃), mpc.nϵ nA, nW, nAeq = sum(mpc.con.i_b) , mpc.con.nw*(mpc.Hp + 1), size(mpc.con.Aeq, 1) m = maximum(ndigits.((nZ̃, nA, nAeq))) + 1 + i_nZ̃min, i_nZ̃max = @. !isinf(mpc.con.Z̃min), !isinf(mpc.con.Z̃max) + nZ̃bounds = sum(i_nZ̃min) + sum(i_nZ̃max) println(io, " └ optimization:") - println(io, " ├$(lpad(nZ̃, m)) decision variables Z̃ ($nϵ slack variable)") + println(io, " ├$(lpad(nZ̃, m)) decision variables Z̃ ($nϵ slack variable, $nZ̃bounds bounds)") println(io, " ├$(lpad(nA, m)) linear inequality constraints A ($nW custom)") print(io, " └$(lpad(nAeq, m)) linear equality constraints Aeq") end \ No newline at end of file diff --git a/src/controller/nonlinmpc.jl b/src/controller/nonlinmpc.jl index b6ed86e66..46517963a 100644 --- a/src/controller/nonlinmpc.jl +++ b/src/controller/nonlinmpc.jl @@ -1178,8 +1178,10 @@ function print_optim_dim(io::IO, mpc::NonLinMPC) nA, nW, nAeq = sum(mpc.con.i_b) , mpc.con.nw*(mpc.Hp + 1), size(mpc.con.Aeq, 1) ng, nc, neq = sum(mpc.con.i_g), mpc.con.nc, mpc.con.neq m = maximum(ndigits.((nZ̃, nA, nAeq, ng, neq))) + 1 + i_nZ̃min, i_nZ̃max = @. !isinf(mpc.con.Z̃min), !isinf(mpc.con.Z̃max) + nZ̃bounds = sum(i_nZ̃min) + sum(i_nZ̃max) println(io, " └ optimization:") - println(io, " ├$(lpad(nZ̃, m)) decision variables Z̃ ($nϵ slack variable)") + println(io, " ├$(lpad(nZ̃, m)) decision variables Z̃ ($nϵ slack variable, $nZ̃bounds bounds)") println(io, " ├$(lpad(nA, m)) linear inequality constraints A ($nW custom)") println(io, " ├$(lpad(nAeq, m)) linear equality constraints Aeq") println(io, " ├$(lpad(ng, m)) nonlinear inequality constraints g ($nc custom)") diff --git a/src/estimator/mhe.jl b/src/estimator/mhe.jl index 9122148ec..3e1acfd7a 100644 --- a/src/estimator/mhe.jl +++ b/src/estimator/mhe.jl @@ -38,9 +38,11 @@ function print_estim_dim(io::IO, estim::MovingHorizonEstimator, n; firstchars=no nA = sum(estim.con.i_b) ng, nc = sum(estim.con.i_g), estim.con.nc m = maximum(ndigits.((nZ̃, nA, ng))) + 1 + i_nZ̃min, i_nZ̃max = @. !isinf(estim.con.Z̃min), !isinf(estim.con.Z̃max) + nZ̃bounds = sum(i_nZ̃min) + sum(i_nZ̃max) println(io) println(io, " └ optimization:") - println(io, " ├$(lpad(nZ̃, m)) decision variables Z̃ ($nε slack variable)") + println(io, " ├$(lpad(nZ̃, m)) decision variables Z̃ ($nε slack variable, $nZ̃bounds bounds)") println(io, " ├$(lpad(nA, m)) linear inequality constraints A") print(io, " └$(lpad(ng, m)) nonlinear inequality constraints g ($nc custom)") end