Skip to content

added: NonLinMPC now supports NonLinModelDAE 🥳🍾 - #470

Merged
franckgaga merged 30 commits into
mainfrom
dae_mpc
Oct 16, 2026
Merged

franckgaga merged 30 commits into
mainfrom
dae_mpc

Conversation

@franckgaga

@franckgaga franckgaga commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Both the TrapezoidalCollocation and the OrthogonalCollocation transcriptions are supported.

The default state estimator is a MovingHorizonEstimator for NonLinMPC constructed on NonLinModelDAE. But the estimation horizon must be explicitly defined with the He keyword arguments since there is no default value. This is also the case for the Hp keyword argument.

@codecov-commenter

codecov-commenter commented Oct 15, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.42489% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 97.17%. Comparing base (aee4b6c) to head (c98c3ac).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/controller/transcription.jl 97.43% 5 Missing ⚠️
src/controller/execute.jl 87.50% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #470      +/-   ##
==========================================
- Coverage   97.21%   97.17%   -0.04%     
==========================================
  Files          28       28              
  Lines        6863     6985     +122     
==========================================
+ Hits         6672     6788     +116     
- Misses        191      197       +6     
Flag Coverage Δ
unittests 97.17% <97.42%> (-0.04%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ 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.

@franckgaga
franckgaga merged commit bb60172 into main Oct 16, 2026
30 of 33 checks passed
@franckgaga
franckgaga deleted the dae_mpc branch October 16, 2026 18:47
@github-actions

Copy link
Copy Markdown

Benchmark Results (Julia v1)

Time benchmarks
main f9d513a... main / f9d513a...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 3.75 ± 0.44 ms 3.75 ± 0.46 ms 1 ± 0.17
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 8.8 ± 1.1 ms 9.02 ± 1.2 ms 0.976 ± 0.18
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 1.41 ± 0.057 ms 1.4 ± 0.052 ms 1 ± 0.055
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 3.63 ± 0.4 ms 3.7 ± 0.39 ms 0.981 ± 0.15
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 6.05 ± 0.72 ms 6.03 ± 0.76 ms 1 ± 0.17
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 1.47 ± 0.047 ms 1.48 ± 0.045 ms 0.993 ± 0.044
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 7.21 ± 1.7 ms 7.22 ± 1.6 ms 0.999 ± 0.32
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 0.123 ± 0.034 s 0.123 ± 0.038 s 1.01 ± 0.42
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 11.1 ± 1.8 ms 11.2 ± 1.9 ms 0.993 ± 0.24
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.406 ± 0.0016 s 0.397 ± 0.0011 s 1.02 ± 0.005
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 0.819 ± 0.0016 s 0.83 ± 0.0023 s 0.986 ± 0.0033
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 1.3 ± 0.0052 s 1.28 ± 0.0039 s 1.02 ± 0.0051
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 0.661 ± 0.0021 s 0.661 ± 0.0024 s 1 ± 0.0048
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 0.664 ± 0.0032 s 0.664 ± 0.0027 s 0.999 ± 0.0063
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.265 ± 0.00072 s 0.263 ± 0.00064 s 1.01 ± 0.0037
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.277 ± 0.00099 s 0.274 ± 0.00066 s 1.01 ± 0.0044
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 0.403 ± 0.0025 s 0.399 ± 0.00085 s 1.01 ± 0.0067
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 0.403 ± 0.0025 s 0.399 ± 0.0012 s 1.01 ± 0.0069
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.383 ± 0.003 s 0.375 ± 0.0011 s 1.02 ± 0.0086
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.14 ± 0.00091 s 0.138 ± 0.00045 s 1.01 ± 0.0073
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.252 ± 0.0015 s 0.252 ± 0.00077 s 1 ± 0.0067
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.22 ± 0.0032 s 0.22 ± 0.00073 s 1 ± 0.015
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0581 ± 0.00037 s 0.0583 ± 0.00034 s 0.997 ± 0.0087
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.0941 ± 0.00065 s 0.0939 ± 0.00047 s 1 ± 0.0086
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.259 ± 0.00078 s 0.254 ± 0.0015 s 1.02 ± 0.0067
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.241 ± 0.00078 s 0.241 ± 0.0013 s 1 ± 0.0063
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.277 ± 0.003 s 0.272 ± 0.0022 s 1.02 ± 0.014
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 0.462 ± 0.0015 s 0.449 ± 0.0014 s 1.03 ± 0.0046
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 1.47 ± 0.038 s 1.22 ± 0.004 s 1.2 ± 0.032
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.392 ± 0.0021 s 0.386 ± 0.0012 s 1.02 ± 0.0063
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.142 ± 0.00079 s 0.143 ± 0.00052 s 0.996 ± 0.0066
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.252 ± 0.0006 s 0.248 ± 0.00057 s 1.02 ± 0.0034
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.231 ± 0.00068 s 0.23 ± 0.00088 s 1 ± 0.0048
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.275 ± 0.0021 s 0.27 ± 0.0025 s 1.02 ± 0.012
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.158 ± 0.00058 s 0.157 ± 0.00054 s 1.01 ± 0.0051
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.0577 ± 0.00037 s 0.0581 ± 0.00026 s 0.994 ± 0.0078
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.08 ± 0.00027 s 0.0802 ± 0.00025 s 0.997 ± 0.0046
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/OrthogonalCollocation (Hessian) 1.08 ± 0.0045 s 1.1 ± 0.0043 s 0.976 ± 0.0056
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 0.0928 ± 0.015 s 0.0781 ± 0.012 s 1.19 ± 0.26
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 0.0574 ± 0.0067 s 0.0564 ± 0.0064 s 1.02 ± 0.16
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 0.0826 ± 0.016 s 0.076 ± 0.012 s 1.09 ± 0.27
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/MultipleShooting 0.0709 ± 0.017 s 0.0741 ± 0.02 s 0.957 ± 0.34
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 0.0542 ± 0.0089 s 0.0539 ± 0.0072 s 1.01 ± 0.21
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.068 ± 0.00025 s 0.0719 ± 0.00053 s 0.945 ± 0.0078
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian, MultipleShooting) 0.0803 ± 0.00036 s 0.0829 ± 0.00048 s 0.969 ± 0.0071
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0654 ± 0.00036 s 0.07 ± 0.0005 s 0.934 ± 0.0083
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian, MultipleShooting) 0.0784 ± 0.00033 s 0.0801 ± 0.00052 s 0.979 ± 0.0075
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0343 ± 0.00035 s 0.0356 ± 0.00025 s 0.965 ± 0.012
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0328 ± 0.00021 s 0.0337 ± 0.00026 s 0.976 ± 0.0097
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian) 11.1 ± 0.097 ms 11.2 ± 0.097 ms 0.984 ± 0.012
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian, MultipleShooting) 14.3 ± 0.14 ms 14.5 ± 0.16 ms 0.986 ± 0.015
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 2.71 ± 0.16 μs 2.69 ± 0.17 μs 1.01 ± 0.087
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.112 ± 0.0021 ms 0.113 ± 0.0023 ms 0.99 ± 0.027
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 0.105 ± 0.0086 ms 0.107 ± 0.0087 ms 0.988 ± 0.11
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 11.9 ± 0.48 μs 11.5 ± 0.26 μs 1.03 ± 0.048
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.154 ± 0.02 ms 0.155 ± 0.019 ms 0.991 ± 0.18
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.195 ± 0.013 ms 0.215 ± 0.022 ms 0.908 ± 0.11
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 0.68 ± 0.2 ms 0.691 ± 0.2 ms 0.984 ± 0.41
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.32 ± 0.017 ms 0.317 ± 0.016 ms 1.01 ± 0.076
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 7.76 ± 0.23 ms 7.77 ± 0.14 ms 0.998 ± 0.034
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 7.88 ± 0.2 ms 7.91 ± 0.21 ms 0.995 ± 0.037
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 7.13 ± 0.13 ms 7.21 ± 0.16 ms 0.988 ± 0.028
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 7.31 ± 0.24 ms 7.5 ± 0.23 ms 0.974 ± 0.044
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 4.44 ± 0.048 ms 4.56 ± 0.063 ms 0.972 ± 0.017
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 4.49 ± 0.085 ms 4.56 ± 0.065 ms 0.985 ± 0.023
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 5.54 ± 0.26 ms 5.56 ± 0.24 ms 0.996 ± 0.063
UNIT TESTS/SimModel/LinModel/evaloutput 0.1 ± 0.01 μs 0.1 ± 0.01 μs 1 ± 0.14
UNIT TESTS/SimModel/LinModel/updatestate! 0.14 ± 0.01 μs 0.141 ± 0.01 μs 0.993 ± 0.1
UNIT TESTS/SimModel/NonLinModel/evaloutput 0.1 ± 0.01 μs 0.1 ± 0.01 μs 1 ± 0.14
UNIT TESTS/SimModel/NonLinModel/linearize! 0.891 ± 0.04 μs 0.891 ± 0.04 μs 1 ± 0.063
UNIT TESTS/SimModel/NonLinModel/updatestate! 0.15 ± 0.01 μs 0.141 ± 0.01 μs 1.06 ± 0.1
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0.1 ± 0 μs 0.1 ± 0 μs 1 ± 0
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 0.151 ± 0.01 μs 0.15 ± 0.001 μs 1.01 ± 0.067
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 30 ± 0 ns 30 ± 0 ns 1 ± 0
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 30 ± 0 ns 30 ± 0 ns 1 ± 0
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 2.07 ± 0.05 μs 2.06 ± 0.05 μs 1 ± 0.034
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 2.67 ± 0.05 μs 2.68 ± 0.05 μs 0.996 ± 0.026
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0.101 ± 0.01 μs 0.1 ± 0 μs 1.01 ± 0.1
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0.1 ± 0 μs 0.1 ± 0 μs 1 ± 0
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0.11 ± 0.001 μs 0.13 ± 0 μs 0.846 ± 0.0077
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0.111 ± 0.01 μs 0.11 ± 0.001 μs 1.01 ± 0.091
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0.26 ± 0.011 μs 0.26 ± 0.011 μs 1 ± 0.06
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 0.241 ± 0.011 μs 0.25 ± 0.01 μs 0.964 ± 0.059
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0.1 ± 0.001 μs 0.1 ± 0 μs 1 ± 0.01
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 30 ± 0 ns 30 ± 0 ns 1 ± 0
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 1.51 ± 0.039 μs 1.49 ± 0.04 μs 1.01 ± 0.038
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0.101 ± 0.02 μs 0.1 ± 0 μs 1.01 ± 0.2
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0.09 ± 0.001 μs 0.09 ± 0.01 μs 1 ± 0.11
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0.18 ± 0.02 μs 0.2 ± 0.01 μs 0.9 ± 0.11
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 0.352 ± 0.019 ms 0.364 ± 0.024 ms 0.968 ± 0.083
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 0.314 ± 0.019 ms 0.321 ± 0.015 ms 0.979 ± 0.074
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 22.4 ± 2.8 ms 22.7 ± 2.7 ms 0.989 ± 0.17
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 22.2 ± 2.5 ms 22.4 ± 2.9 ms 0.989 ± 0.17
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/MultipleShooting 9.55 ± 11 ms 10.1 ± 12 ms 0.942 ± 1.5
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.237 ± 0.014 ms 0.234 ± 0.015 ms 1.01 ± 0.086
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/MultipleShooting 0.548 ± 0.018 ms 0.551 ± 0.02 ms 0.994 ± 0.049
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 21.2 ± 4.4 ms 21.4 ± 3.7 ms 0.992 ± 0.27
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.245 ± 0.014 ms 0.245 ± 0.014 ms 0.999 ± 0.081
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0.1 ± 0.001 μs 0.1 ± 0 μs 1 ± 0.01
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0.09 ± 0 μs 0.09 ± 0 μs 1 ± 0
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0.18 ± 0.001 μs 0.18 ± 0.02 μs 1 ± 0.11
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0.13 ± 0.01 μs 0.13 ± 0.01 μs 1 ± 0.11
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0.17 ± 0.01 μs 0.161 ± 0.01 μs 1.06 ± 0.09
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 2.57 ± 0.05 μs 2.52 ± 0.04 μs 1.02 ± 0.026
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 3.01 ± 0.04 μs 3 ± 0.04 μs 1 ± 0.019
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 2.65 ± 0.04 μs 2.65 ± 0.05 μs 1 ± 0.024
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 3.77 ± 0.061 μs 3.81 ± 0.051 μs 0.992 ± 0.021
time_to_load 3.18 ± 0.0089 s 2.69 ± 0.04 s 1.18 ± 0.018
Memory benchmarks
main f9d513a... main / f9d513a...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 0.0486 M allocs: 1.86 MB 0.0486 M allocs: 1.86 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 0.116 M allocs: 2.86 MB 0.116 M allocs: 2.86 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 11.9 k allocs: 0.333 MB 11.9 k allocs: 0.333 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 0.0485 M allocs: 1.85 MB 0.0485 M allocs: 1.85 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 0.0812 M allocs: 2.02 MB 0.0812 M allocs: 2.02 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 11.7 k allocs: 0.327 MB 11.7 k allocs: 0.327 MB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 0.123 M allocs: 6.67 MB 0.123 M allocs: 6.67 MB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 5.55 M allocs: 0.292 GB 5.55 M allocs: 0.292 GB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 0.153 M allocs: 8.51 MB 0.153 M allocs: 8.51 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.367 M allocs: 29.7 MB 0.367 M allocs: 29.7 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 2.18 M allocs: 0.298 GB 2.18 M allocs: 0.298 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 0.371 M allocs: 0.0864 GB 0.371 M allocs: 0.0864 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 2.16 M allocs: 0.269 GB 2.16 M allocs: 0.269 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 2.16 M allocs: 0.269 GB 2.16 M allocs: 0.269 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.318 M allocs: 26.1 MB 0.318 M allocs: 26.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.704 M allocs: 0.0994 GB 0.704 M allocs: 0.0994 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 1.29 M allocs: 0.12 GB 1.29 M allocs: 0.129 GB 0.928
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 1.29 M allocs: 0.12 GB 1.29 M allocs: 0.129 GB 0.928
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.0736 M allocs: 22.3 MB 0.0736 M allocs: 22.3 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.0805 M allocs: 28.6 MB 0.0805 M allocs: 28.6 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.332 M allocs: 27.5 MB 0.332 M allocs: 27.5 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.695 M allocs: 0.0893 GB 0.695 M allocs: 0.0893 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0924 M allocs: 31.2 MB 0.0924 M allocs: 31.2 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.337 M allocs: 0.0445 GB 0.337 M allocs: 0.0445 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.266 M allocs: 21.5 MB 0.266 M allocs: 21.5 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.675 M allocs: 0.0895 GB 0.675 M allocs: 0.0895 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.287 M allocs: 30.5 MB 0.287 M allocs: 30.5 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 1.45 M allocs: 0.135 GB 1.38 M allocs: 0.139 GB 0.977
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 6.43 M allocs: 0.86 GB 5.1 M allocs: 0.687 GB 1.25
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.0756 M allocs: 23 MB 0.0756 M allocs: 23 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.0816 M allocs: 29 MB 0.0816 M allocs: 29 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.274 M allocs: 22.3 MB 0.274 M allocs: 22.3 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.879 M allocs: 0.105 GB 0.879 M allocs: 0.105 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.296 M allocs: 31.8 MB 0.296 M allocs: 0.0315 GB 0.985
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.58 M allocs: 0.0878 GB 0.58 M allocs: 0.0878 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.0953 M allocs: 0.0317 GB 0.0953 M allocs: 0.0317 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.331 M allocs: 0.0408 GB 0.331 M allocs: 0.0408 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/OrthogonalCollocation (Hessian) 3.73 M allocs: 0.48 GB 3.76 M allocs: 0.522 GB 0.92
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 1.45 M allocs: 0.234 GB 1.45 M allocs: 0.225 GB 1.04
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 1.33 M allocs: 0.146 GB 1.33 M allocs: 0.146 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 1.32 M allocs: 0.222 GB 1.32 M allocs: 0.222 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/MultipleShooting 3.55 M allocs: 0.198 GB 3.55 M allocs: 0.198 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 1.24 M allocs: 0.143 GB 1.24 M allocs: 0.143 GB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0848 M allocs: 22.4 MB 0.0848 M allocs: 22.4 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian, MultipleShooting) 0.174 M allocs: 0.033 GB 0.174 M allocs: 0.033 GB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.085 M allocs: 22.4 MB 0.085 M allocs: 22.4 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian, MultipleShooting) 0.169 M allocs: 0.0321 GB 0.169 M allocs: 0.0321 GB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.104 M allocs: 25.9 MB 0.104 M allocs: 25.9 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.103 M allocs: 25.2 MB 0.103 M allocs: 25.2 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian) 0.0364 M allocs: 8.68 MB 0.0364 M allocs: 8.68 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian, MultipleShooting) 0.0711 M allocs: 11.2 MB 0.0711 M allocs: 11.2 MB 1
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.316 k allocs: 16.6 kB 0.316 k allocs: 16.6 kB 1
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 1.49 k allocs: 0.0363 MB 1.49 k allocs: 0.0363 MB 1
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 0.104 k allocs: 2.67 kB 0.104 k allocs: 2.67 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.406 k allocs: 0.059 MB 0.406 k allocs: 0.059 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.498 k allocs: 0.076 MB 0.498 k allocs: 0.076 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 1.72 k allocs: 0.103 MB 1.72 k allocs: 0.103 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.251 k allocs: 10 kB 0.251 k allocs: 10 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 5.28 k allocs: 0.546 MB 5.28 k allocs: 0.546 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 5.07 k allocs: 0.502 MB 5.07 k allocs: 0.502 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 8.71 k allocs: 0.647 MB 8.79 k allocs: 0.682 MB 0.948
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 0.0433 M allocs: 5.3 MB 0.0437 M allocs: 5.58 MB 0.95
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 0.952 k allocs: 0.426 MB 0.952 k allocs: 0.426 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 0.952 k allocs: 0.426 MB 0.952 k allocs: 0.426 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 3.54 k allocs: 0.305 MB 3.54 k allocs: 0.305 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.38 k allocs: 0.0527 MB 1.38 k allocs: 0.0527 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 2.36 k allocs: 0.293 MB 2.36 k allocs: 0.293 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 9.03 k allocs: 0.674 MB 9.03 k allocs: 0.674 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 9.03 k allocs: 0.674 MB 9.03 k allocs: 0.674 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/MultipleShooting 19.5 k allocs: 1 MB 19.5 k allocs: 1 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.951 k allocs: 24.3 kB 0.951 k allocs: 24.3 kB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/MultipleShooting 1.84 k allocs: 0.0462 MB 1.84 k allocs: 0.0462 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 8.33 k allocs: 0.512 MB 8.33 k allocs: 0.512 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.951 k allocs: 24.3 kB 0.951 k allocs: 24.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.2 k allocs: 11.8 kB 0.2 k allocs: 11.8 kB 1

@franckgaga

franckgaga commented Oct 16, 2026 •

Copy link
Copy Markdown
Member Author

No impact on existing collocation benchmakrs, except CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) with small improvements, alright ! 🥳

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