Skip to content

added: support box constraints in MovingHorizonEstimator #389

Merged
franckgaga merged 14 commits into
mainfrom
box_constraints_mhe
Jun 24, 2026
Merged

added: support box constraints in MovingHorizonEstimator #389
franckgaga merged 14 commits into
mainfrom
box_constraints_mhe

Conversation

@franckgaga

Copy link
Copy Markdown
Member

Following #379, this PR introduces similar changes to the MovingHorizonEstimator. These constraints:

  • limits on the slack variable $\varepsilon \ge 0$
  • limits on the arrival state estimate $\mathbf{\hat{x}}_k(k-N_k+p)$
  • limits on the estimated process noise $\mathbf{\hat{w}}$

are treated as box constraints. Note that if there is a nonzero value in the associated softness parameters $\mathbf{c_{(\bullet)}}$ it is no longer a box constraint and the associated bound is treated as a linear inequality constraint, like before.

The new default optim argument for MovingHorizonEstimator for LinModel is JuMP.Model(OSQP.MathOptInterfaceOSQP.Optimizer, add_bridges=true). It should not affect the performances since JuMP will automatically convert them as linear equality constraints, as it was the case before this PR.

Warning

Constructing MovingHorizonEstimator with optim=JuMP.Model(OSQP.MathOptInterfaceOSQP.Optimizer, add_bridges=false) will now throw an error. Please use add_bridges=true (it should not affect performances).

Let's see the benchmarks.

@codecov-commenter

codecov-commenter commented Jun 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.58%. Comparing base (e05da07) to head (8437541).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #389      +/-   ##
==========================================
- Coverage   98.60%   98.58%   -0.02%     
==========================================
  Files          27       27              
  Lines        5595     5660      +65     
==========================================
+ Hits         5517     5580      +63     
- Misses         78       80       +2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown

Benchmark Results (Julia v1)

Time benchmarks
main 8437541... main / 8437541...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 5.71 ± 0.49 ms 5.84 ± 0.54 ms 0.977 ± 0.12
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 11.8 ± 0.76 ms 11.8 ± 0.74 ms 0.995 ± 0.09
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 1.89 ± 0.11 ms 1.94 ± 0.11 ms 0.974 ± 0.08
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 5.63 ± 0.48 ms 5.79 ± 0.55 ms 0.974 ± 0.12
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 8.24 ± 0.5 ms 8.17 ± 0.55 ms 1.01 ± 0.092
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 2.07 ± 0.11 ms 2.12 ± 0.093 ms 0.974 ± 0.069
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 10.2 ± 1.4 ms 10.2 ± 1.4 ms 1 ± 0.2
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 0.104 ± 0.02 s 0.105 ± 0.02 s 0.991 ± 0.27
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 15.2 ± 1.9 ms 15.2 ± 2 ms 0.999 ± 0.18
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.535 ± 0.0016 s 0.533 ± 0.0013 s 1 ± 0.0038
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 1.27 ± 0.0037 s 1.28 ± 0.0026 s 0.996 ± 0.0035
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 1.6 ± 0.0066 s 1.6 ± 0.0047 s 1 ± 0.0051
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 0.975 ± 0.0062 s 0.981 ± 0.0024 s 0.994 ± 0.0067
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 0.974 ± 0.0031 s 0.981 ± 0.0039 s 0.993 ± 0.0051
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.361 ± 0.0013 s 0.364 ± 0.0011 s 0.992 ± 0.0048
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.421 ± 0.0011 s 0.423 ± 0.0017 s 0.997 ± 0.0049
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 0.541 ± 0.0018 s 0.538 ± 0.0019 s 1.01 ± 0.0049
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 0.541 ± 0.0014 s 0.567 ± 0.0013 s 0.953 ± 0.0032
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.532 ± 0.0019 s 0.538 ± 0.0016 s 0.989 ± 0.0045
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.187 ± 0.00098 s 0.194 ± 0.001 s 0.964 ± 0.0072
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.345 ± 0.001 s 0.34 ± 0.003 s 1.01 ± 0.0094
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.334 ± 0.001 s 0.325 ± 0.00089 s 1.03 ± 0.0042
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.082 ± 0.00041 s 0.083 ± 0.00041 s 0.988 ± 0.0069
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.201 ± 0.0099 s 0.189 ± 0.0096 s 1.06 ± 0.075
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.353 ± 0.0011 s 0.355 ± 0.00098 s 0.996 ± 0.0042
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.366 ± 0.00089 s 0.359 ± 0.0011 s 1.02 ± 0.0039
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.377 ± 0.0017 s 0.374 ± 0.0032 s 1.01 ± 0.0098
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 0.591 ± 0.0014 s 0.595 ± 0.0017 s 0.993 ± 0.0037
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 1.67 ± 0.01 s 1.68 ± 0.015 s 0.99 ± 0.011
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.534 ± 0.0013 s 0.527 ± 0.0014 s 1.01 ± 0.0036
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.188 ± 0.00069 s 0.18 ± 0.00055 s 1.05 ± 0.005
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.349 ± 0.0033 s 0.33 ± 0.0017 s 1.06 ± 0.012
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.28 ± 0.00087 s 0.279 ± 0.0007 s 1 ± 0.004
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.364 ± 0.008 s 0.354 ± 0.0021 s 1.03 ± 0.024
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.243 ± 0.00068 s 0.243 ± 0.00076 s 1 ± 0.0042
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.0797 ± 0.00032 s 0.0792 ± 0.00035 s 1.01 ± 0.006
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.175 ± 0.00076 s 0.174 ± 0.00068 s 1.01 ± 0.0059
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/OrthogonalCollocation (Hessian) 0.797 ± 0.01 s 0.805 ± 0.0035 s 0.989 ± 0.013
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 0.0626 ± 0.0013 s 0.0671 ± 0.0021 s 0.934 ± 0.035
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 0.047 ± 0.0007 s 0.049 ± 0.0015 s 0.96 ± 0.033
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 0.0583 ± 0.0037 s 0.064 ± 0.0046 s 0.91 ± 0.087
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 0.0414 ± 0.0042 s 0.0425 ± 0.0045 s 0.975 ± 0.14
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form 0.0924 ± 0.00027 s 0.095 ± 0.00045 s 0.973 ± 0.0054
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0918 ± 0.00019 s 0.0937 ± 0.0005 s 0.98 ± 0.0056
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form 0.0696 ± 0.00041 s 0.0714 ± 0.00085 s 0.975 ± 0.013
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0912 ± 0.00026 s 0.0909 ± 0.00019 s 1 ± 0.0036
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0496 ± 0.00032 s 0.0504 ± 0.00025 s 0.985 ± 0.0081
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0448 ± 0.0003 s 0.0456 ± 0.00037 s 0.982 ± 0.01
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 3.92 ± 0.039 μs 4.29 ± 0.021 μs 0.913 ± 0.01
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.114 ± 0.0024 ms 0.112 ± 0.0023 ms 1.02 ± 0.03
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 0.14 ± 0.0094 ms 0.136 ± 0.0095 ms 1.03 ± 0.099
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 17.1 ± 0.34 μs 17.1 ± 0.28 μs 0.995 ± 0.026
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.172 ± 0.016 ms 0.171 ± 0.012 ms 1.01 ± 0.12
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.241 ± 0.022 ms 0.232 ± 0.022 ms 1.04 ± 0.14
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 1.09 ± 0.22 ms 1.08 ± 0.22 ms 1.01 ± 0.28
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.476 ± 0.031 ms 0.47 ± 0.03 ms 1.01 ± 0.092
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 10.5 ± 0.46 ms 10.5 ± 0.68 ms 0.997 ± 0.078
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 10.5 ± 0.24 ms 10.5 ± 0.2 ms 1 ± 0.03
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 11.6 ± 1.4 ms 10.4 ± 0.93 ms 1.12 ± 0.17
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 10.5 ± 0.53 ms 10.9 ± 0.31 ms 0.962 ± 0.056
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 7.38 ± 0.41 ms 7.07 ± 0.24 ms 1.04 ± 0.068
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 7.48 ± 0.22 ms 7.1 ± 0.25 ms 1.05 ± 0.048
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 7.43 ± 0.41 ms 7.46 ± 0.25 ms 0.997 ± 0.064
UNIT TESTS/SimModel/LinModel/evaloutput 0.13 ± 0.001 μs 0.13 ± 0.001 μs 1 ± 0.011
UNIT TESTS/SimModel/LinModel/updatestate! 0.18 ± 0.001 μs 0.18 ± 0.001 μs 1 ± 0.0079
UNIT TESTS/SimModel/NonLinModel/evaloutput 0.401 ± 0.01 μs 0.391 ± 0 μs 1.03 ± 0.026
UNIT TESTS/SimModel/NonLinModel/linearize! 1.98 ± 0.029 μs 1.98 ± 0.021 μs 1 ± 0.018
UNIT TESTS/SimModel/NonLinModel/updatestate! 0.451 ± 0.01 μs 0.46 ± 0.01 μs 0.98 ± 0.03
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0.521 ± 0.01 μs 0.511 ± 0.001 μs 1.02 ± 0.02
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 1.75 ± 0.02 μs 1.75 ± 0.01 μs 1 ± 0.013
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 0.27 ± 0.01 μs 0.27 ± 0.001 μs 1 ± 0.037
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 1.39 ± 0.01 μs 1.41 ± 0.01 μs 0.986 ± 0.0099
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 3.94 ± 0.05 μs 4.09 ± 0.049 μs 0.963 ± 0.017
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 8.8 ± 0.079 μs 8.75 ± 0.08 μs 1.01 ± 0.013
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0.231 ± 0.01 μs 0.24 ± 0.001 μs 0.963 ± 0.042
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0.581 ± 0.009 μs 0.591 ± 0.01 μs 0.983 ± 0.023
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0.321 ± 0.001 μs 0.301 ± 0.021 μs 1.07 ± 0.074
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0.721 ± 0.011 μs 0.712 ± 0.01 μs 1.01 ± 0.021
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0.431 ± 0.01 μs 0.441 ± 0.01 μs 0.977 ± 0.032
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 1.24 ± 0.02 μs 1.24 ± 0.02 μs 1 ± 0.023
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0.251 ± 0.011 μs 0.251 ± 0.01 μs 1 ± 0.059
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 0.13 ± 0.01 μs 0.14 ± 0.01 μs 0.929 ± 0.097
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 2.54 ± 0.03 μs 2.49 ± 0.039 μs 1.02 ± 0.02
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0.24 ± 0.001 μs 0.24 ± 0.01 μs 1 ± 0.042
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0.25 ± 0.01 μs 0.25 ± 0.001 μs 1 ± 0.04
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0.34 ± 0.01 μs 0.341 ± 0.011 μs 0.997 ± 0.044
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 0.235 ± 0.017 ms 0.256 ± 0.018 ms 0.917 ± 0.094
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 0.358 ± 0.023 ms 0.354 ± 0.023 ms 1.01 ± 0.092
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 26.3 ± 1.1 ms 25.7 ± 1.3 ms 1.02 ± 0.066
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 26.3 ± 1 ms 25.3 ± 0.95 ms 1.04 ± 0.056
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Prediction form 0.501 ± 0.01 μs 0.501 ± 0.02 μs 1 ± 0.045
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.305 ± 0.023 ms 0.306 ± 0.023 ms 0.996 ± 0.1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Prediction form 1.42 ± 0.01 μs 1.44 ± 0.01 μs 0.986 ± 0.0097
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Constant arr. cov. 9.45 ± 1.6 μs 8.68 ± 1.2 μs 1.09 ± 0.24
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Current form 23.4 ± 4.4 μs 21.4 ± 3.5 μs 1.1 ± 0.27
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 24.7 ± 0.99 ms 24 ± 0.96 ms 1.03 ± 0.058
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Current form 17 ± 0.32 μs 16.9 ± 0.33 μs 1 ± 0.027
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.321 ± 0.024 ms 0.323 ± 0.024 ms 0.995 ± 0.1
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0.26 ± 0.01 μs 0.26 ± 0.001 μs 1 ± 0.039
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0.25 ± 0.019 μs 0.27 ± 0.001 μs 0.926 ± 0.07
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0.361 ± 0.011 μs 0.37 ± 0.01 μs 0.976 ± 0.04
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0.311 ± 0.01 μs 0.311 ± 0.001 μs 1 ± 0.032
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0.922 ± 0.01 μs 0.912 ± 0.019 μs 1.01 ± 0.024
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 3.69 ± 0.06 μs 4.12 ± 0.061 μs 0.895 ± 0.02
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 5.15 ± 0.041 μs 4.89 ± 0.04 μs 1.05 ± 0.012
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 3.59 ± 0.03 μs 3.59 ± 0.03 μs 1 ± 0.012
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 6.02 ± 0.06 μs 6.07 ± 0.06 μs 0.992 ± 0.014
time_to_load 6.1 ± 0.028 s 6.06 ± 0.052 s 1.01 ± 0.0098
Memory benchmarks
main 8437541... main / 8437541...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 0.0489 M allocs: 1.86 MB 0.0489 M allocs: 1.86 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 0.126 M allocs: 3.16 MB 0.126 M allocs: 3.16 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 12.6 k allocs: 0.356 MB 12.6 k allocs: 0.356 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 0.0487 M allocs: 1.85 MB 0.0487 M allocs: 1.85 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 0.0879 M allocs: 2.23 MB 0.0879 M allocs: 2.23 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 12.5 k allocs: 0.35 MB 12.5 k allocs: 0.35 MB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 0.119 M allocs: 6.37 MB 0.119 M allocs: 6.37 MB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 4.76 M allocs: 0.257 GB 4.76 M allocs: 0.257 GB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 0.148 M allocs: 8.23 MB 0.148 M allocs: 8.23 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.369 M allocs: 25.5 MB 0.369 M allocs: 25.5 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 2.2 M allocs: 0.244 GB 2.2 M allocs: 0.244 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 0.306 M allocs: 0.0435 GB 0.306 M allocs: 0.0435 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 2.17 M allocs: 0.212 GB 2.17 M allocs: 0.212 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 2.17 M allocs: 0.212 GB 2.17 M allocs: 0.212 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.316 M allocs: 22 MB 0.316 M allocs: 22 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.741 M allocs: 0.0843 GB 0.741 M allocs: 0.0843 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 1.33 M allocs: 0.119 GB 1.33 M allocs: 0.119 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 1.33 M allocs: 0.119 GB 1.33 M allocs: 0.119 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.0965 M allocs: 17.6 MB 0.0965 M allocs: 17.6 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.0812 M allocs: 16.9 MB 0.0812 M allocs: 16.9 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.314 M allocs: 21.9 MB 0.314 M allocs: 21.9 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.757 M allocs: 0.0765 GB 0.757 M allocs: 0.0765 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0926 M allocs: 20 MB 0.0926 M allocs: 20 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.311 M allocs: 0.0327 GB 0.311 M allocs: 0.0327 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.277 M allocs: 19 MB 0.277 M allocs: 19 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.709 M allocs: 0.0739 GB 0.709 M allocs: 0.0739 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.296 M allocs: 28 MB 0.296 M allocs: 28 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 1.43 M allocs: 0.128 GB 1.43 M allocs: 0.128 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 5.12 M allocs: 0.601 GB 5.12 M allocs: 0.601 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.0754 M allocs: 13.3 MB 0.0754 M allocs: 13.3 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.0808 M allocs: 16.9 MB 0.0808 M allocs: 16.9 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.276 M allocs: 19 MB 0.276 M allocs: 19 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.72 M allocs: 0.0656 GB 0.72 M allocs: 0.0656 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.295 M allocs: 28.1 MB 0.295 M allocs: 28.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.587 M allocs: 0.0728 GB 0.587 M allocs: 0.0728 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.0927 M allocs: 20 MB 0.0927 M allocs: 20 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.307 M allocs: 30.3 MB 0.307 M allocs: 30.3 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/OrthogonalCollocation (Hessian) 2.13 M allocs: 0.243 GB 2.13 M allocs: 0.243 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 1.25 M allocs: 0.213 GB 1.25 M allocs: 0.213 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 1.16 M allocs: 0.136 GB 1.16 M allocs: 0.136 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 1.13 M allocs: 0.21 GB 1.13 M allocs: 0.21 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 1.07 M allocs: 0.134 GB 1.07 M allocs: 0.134 GB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form 0.0691 M allocs: 12.1 MB 0.0691 M allocs: 12.3 MB 0.99
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0682 M allocs: 12 MB 0.0682 M allocs: 12.2 MB 0.99
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form 0.0521 M allocs: 8.54 MB 0.0521 M allocs: 8.63 MB 0.99
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0684 M allocs: 12.1 MB 0.0684 M allocs: 12.2 MB 0.99
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0902 M allocs: 16 MB 0.0902 M allocs: 16.2 MB 0.992
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0851 M allocs: 14.7 MB 0.0851 M allocs: 14.8 MB 0.992
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.326 k allocs: 15.6 kB 0.326 k allocs: 15.6 kB 1
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 1.62 k allocs: 0.0403 MB 1.62 k allocs: 0.0403 MB 1
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 0.114 k allocs: 2.98 kB 0.114 k allocs: 2.98 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.408 k allocs: 0.0579 MB 0.408 k allocs: 0.0579 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.571 k allocs: 0.077 MB 0.571 k allocs: 0.077 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 1.79 k allocs: 0.105 MB 1.79 k allocs: 0.105 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.254 k allocs: 10.1 kB 0.254 k allocs: 10.1 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 4.76 k allocs: 0.368 MB 4.76 k allocs: 0.368 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 5.34 k allocs: 0.423 MB 5.34 k allocs: 0.423 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 9.58 k allocs: 0.609 MB 9.58 k allocs: 0.609 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 0.0459 M allocs: 4.44 MB 0.0459 M allocs: 4.44 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 0.957 k allocs: 0.233 MB 0.957 k allocs: 0.233 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 0.957 k allocs: 0.233 MB 0.957 k allocs: 0.233 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 3.42 k allocs: 0.241 MB 3.42 k allocs: 0.241 MB 1
UNIT TESTS/SimModel/LinModel/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/LinModel/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/NonLinModel/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/NonLinModel/linearize! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/NonLinModel/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 4 allocs: 0.0938 kB 4 allocs: 0.0938 kB 1
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 4 allocs: 0.0938 kB 4 allocs: 0.0938 kB 1
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 4 allocs: 0.0938 kB 4 allocs: 0.0938 kB 1
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 1.01 k allocs: 0.0405 MB 1.41 k allocs: 0.0526 MB 0.77
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 1.27 k allocs: 0.167 MB 1.27 k allocs: 0.167 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 0.158 M allocs: 0.116 GB 0.158 M allocs: 0.118 GB 0.98
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 0.158 M allocs: 0.117 GB 0.158 M allocs: 0.114 GB 1.02
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Prediction form 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.977 k allocs: 25.3 kB 0.977 k allocs: 25.3 kB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Prediction form 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Constant arr. cov. 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Current form 2 allocs: 0.0469 kB 2 allocs: 0.0469 kB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 7.08 k allocs: 0.451 MB 7.57 k allocs: 0.472 MB 0.955
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Current form 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.977 k allocs: 25.3 kB 0.977 k allocs: 25.3 kB 1
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
time_to_load 0.149 k allocs: 11.2 kB 0.149 k allocs: 11.2 kB 1

@franckgaga franckgaga merged commit 7ef8400 into main Jun 24, 2026
6 checks passed
@franckgaga franckgaga deleted the box_constraints_mhe branch June 24, 2026 10:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants