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

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Benchmark Results (Julia v1)

Time benchmarks
main c98c3ac... main / c98c3ac...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 5.48 ± 0.76 ms 5.45 ± 0.82 ms 1.01 ± 0.21
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 11.2 ± 0.69 ms 11.2 ± 0.67 ms 0.998 ± 0.086
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 1.73 ± 0.045 ms 1.88 ± 0.036 ms 0.919 ± 0.03
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 4.83 ± 0.51 ms 4.88 ± 0.61 ms 0.989 ± 0.16
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 7.61 ± 0.5 ms 7.67 ± 0.51 ms 0.992 ± 0.093
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 1.8 ± 0.042 ms 1.79 ± 0.035 ms 1.01 ± 0.031
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 9.67 ± 1.5 ms 9.85 ± 1.5 ms 0.982 ± 0.22
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 0.121 ± 0.032 s 0.122 ± 0.035 s 0.992 ± 0.39
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 14.4 ± 1.6 ms 14.3 ± 1.8 ms 1 ± 0.17
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.544 ± 0.0096 s 0.533 ± 0.0038 s 1.02 ± 0.019
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 1.03 ± 0.0039 s 1.03 ± 0.0028 s 0.994 ± 0.0046
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 1.64 ± 0.013 s 1.6 ± 0.0075 s 1.02 ± 0.0095
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 0.841 ± 0.015 s 0.826 ± 0.0027 s 1.02 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 0.849 ± 0.017 s 0.826 ± 0.0019 s 1.03 ± 0.02
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.362 ± 0.01 s 0.356 ± 0.0016 s 1.02 ± 0.029
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.445 ± 0.015 s 0.435 ± 0.0011 s 1.02 ± 0.034
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 0.537 ± 0.015 s 0.517 ± 0.0014 s 1.04 ± 0.029
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 0.534 ± 0.0094 s 0.518 ± 0.0012 s 1.03 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.554 ± 0.0071 s 0.535 ± 0.002 s 1.04 ± 0.014
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.19 ± 0.0076 s 0.182 ± 0.00069 s 1.04 ± 0.042
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.343 ± 0.0061 s 0.332 ± 0.001 s 1.03 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.271 ± 0.011 s 0.271 ± 0.0011 s 1 ± 0.041
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0821 ± 0.00087 s 0.0799 ± 0.0011 s 1.03 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.112 ± 0.0013 s 0.112 ± 0.00052 s 1 ± 0.012
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.357 ± 0.018 s 0.343 ± 0.0011 s 1.04 ± 0.053
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.339 ± 0.0078 s 0.337 ± 0.00084 s 1.01 ± 0.023
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.366 ± 0.003 s 0.368 ± 0.0018 s 0.993 ± 0.0096
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 0.587 ± 0.0016 s 0.584 ± 0.0016 s 1 ± 0.0038
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 1.8 ± 0.022 s 1.8 ± 0.029 s 1 ± 0.02
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.537 ± 0.0014 s 0.547 ± 0.0015 s 0.982 ± 0.0037
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.183 ± 0.0011 s 0.183 ± 0.00071 s 0.997 ± 0.0071
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.338 ± 0.00097 s 0.339 ± 0.0015 s 0.995 ± 0.0052
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.252 ± 0.00077 s 0.251 ± 0.00071 s 1 ± 0.0042
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.36 ± 0.0033 s 0.36 ± 0.0021 s 0.998 ± 0.011
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.196 ± 0.00051 s 0.197 ± 0.00063 s 0.997 ± 0.0041
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.078 ± 0.00055 s 0.0777 ± 0.00038 s 1 ± 0.0086
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.0966 ± 0.00034 s 0.0962 ± 0.00037 s 1 ± 0.0052
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/OrthogonalCollocation (Hessian) 1.26 ± 0.0057 s 1.25 ± 0.0054 s 1.01 ± 0.0063
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 0.0875 ± 0.017 s 0.0866 ± 0.013 s 1.01 ± 0.25
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 0.063 ± 0.016 s 0.0596 ± 0.011 s 1.06 ± 0.34
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 0.0792 ± 0.01 s 0.0826 ± 0.011 s 0.959 ± 0.18
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/MultipleShooting 0.0737 ± 0.02 s 0.0724 ± 0.021 s 1.02 ± 0.4
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 0.059 ± 0.012 s 0.0564 ± 0.013 s 1.05 ± 0.33
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.088 ± 0.00044 s 0.0873 ± 0.0004 s 1.01 ± 0.0068
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian, MultipleShooting) 0.101 ± 0.00059 s 0.1 ± 0.0011 s 1 ± 0.012
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0845 ± 0.00054 s 0.0871 ± 0.00051 s 0.97 ± 0.0084
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian, MultipleShooting) 0.0975 ± 0.00055 s 0.0976 ± 0.00097 s 0.999 ± 0.011
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0451 ± 0.00021 s 0.0457 ± 0.00024 s 0.987 ± 0.0068
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0424 ± 0.00054 s 0.0431 ± 0.00059 s 0.982 ± 0.018
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian) 14.4 ± 0.32 ms 14.6 ± 0.29 ms 0.985 ± 0.029
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Uno/Current form (Hessian, MultipleShooting) 18.3 ± 0.2 ms 18.4 ± 0.27 ms 0.992 ± 0.018
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 2.94 ± 0.069 μs 2.71 ± 0.07 μs 1.08 ± 0.038
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.163 ± 0.0072 ms 0.158 ± 0.0066 ms 1.03 ± 0.063
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 0.132 ± 0.0099 ms 0.133 ± 0.0099 ms 0.996 ± 0.11
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 13.7 ± 0.28 μs 13.5 ± 0.37 μs 1.01 ± 0.035
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.199 ± 0.025 ms 0.196 ± 0.022 ms 1.02 ± 0.17
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.227 ± 0.019 ms 0.225 ± 0.019 ms 1.01 ± 0.12
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 0.894 ± 0.21 ms 0.895 ± 0.21 ms 0.999 ± 0.33
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.468 ± 0.024 ms 0.463 ± 0.027 ms 1.01 ± 0.078
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 10 ± 0.27 ms 10.1 ± 0.36 ms 0.988 ± 0.044
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 10.2 ± 0.32 ms 10.3 ± 0.34 ms 0.993 ± 0.045
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 9.33 ± 0.18 ms 9.56 ± 0.29 ms 0.975 ± 0.035
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 8.77 ± 0.15 ms 8.91 ± 0.14 ms 0.985 ± 0.023
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 5.52 ± 0.086 ms 6.12 ± 0.17 ms 0.901 ± 0.029
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 6.06 ± 0.16 ms 6.3 ± 0.14 ms 0.963 ± 0.033
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 7.19 ± 0.33 ms 7.28 ± 0.32 ms 0.988 ± 0.063
UNIT TESTS/SimModel/LinModel/evaloutput 0.12 ± 0.01 μs 0.12 ± 0 μs 1 ± 0.083
UNIT TESTS/SimModel/LinModel/updatestate! 0.181 ± 0.01 μs 0.2 ± 0.009 μs 0.905 ± 0.064
UNIT TESTS/SimModel/NonLinModel/evaloutput 0.121 ± 0.01 μs 0.12 ± 0 μs 1.01 ± 0.083
UNIT TESTS/SimModel/NonLinModel/linearize! 1.04 ± 0.02 μs 1.05 ± 0.02 μs 0.99 ± 0.027
UNIT TESTS/SimModel/NonLinModel/updatestate! 0.19 ± 0.01 μs 0.2 ± 0.009 μs 0.95 ± 0.066
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0.13 ± 0 μs 0.13 ± 0.01 μs 1 ± 0.077
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 0.18 ± 0.009 μs 0.171 ± 0.01 μs 1.05 ± 0.081
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 0.04 ± 0.01 μs 0.04 ± 0.01 μs 1 ± 0.35
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 0.04 ± 0.01 μs 0.04 ± 0.01 μs 1 ± 0.35
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 2.92 ± 0.03 μs 2.91 ± 0.04 μs 1 ± 0.017
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 3.62 ± 0.05 μs 3.55 ± 0.04 μs 1.02 ± 0.018
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0.12 ± 0.01 μs 0.12 ± 0 μs 1 ± 0.083
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0.12 ± 0.001 μs 0.12 ± 0.01 μs 1 ± 0.084
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0.14 ± 0.001 μs 0.15 ± 0.009 μs 0.933 ± 0.056
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0.16 ± 0.01 μs 0.16 ± 0.001 μs 1 ± 0.063
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0.31 ± 0.01 μs 0.301 ± 0.001 μs 1.03 ± 0.033
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 0.311 ± 0.01 μs 0.32 ± 0.01 μs 0.972 ± 0.044
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0.13 ± 0.01 μs 0.12 ± 0.001 μs 1.08 ± 0.084
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 0.04 ± 0.01 μs 0.04 ± 0.01 μs 1 ± 0.35
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 2.25 ± 0.03 μs 2.23 ± 0.03 μs 1.01 ± 0.019
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0.13 ± 0.01 μs 0.13 ± 0.009 μs 1 ± 0.1
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0.12 ± 0 μs 0.12 ± 0.01 μs 1 ± 0.083
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0.251 ± 0.01 μs 0.26 ± 0.01 μs 0.965 ± 0.053
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 0.388 ± 0.025 ms 0.387 ± 0.025 ms 1 ± 0.091
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 0.353 ± 0.023 ms 0.357 ± 0.023 ms 0.988 ± 0.09
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 21.1 ± 2.5 ms 25.1 ± 2.7 ms 0.84 ± 0.13
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 21.3 ± 2.5 ms 25.9 ± 2.8 ms 0.824 ± 0.13
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/MultipleShooting 9.13 ± 8.9 ms 9.24 ± 9 ms 0.988 ± 1.4
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.288 ± 0.021 ms 0.308 ± 0.022 ms 0.935 ± 0.096
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/MultipleShooting 0.701 ± 0.024 ms 0.706 ± 0.024 ms 0.993 ± 0.048
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 19.2 ± 0.54 ms 21.4 ± 0.96 ms 0.899 ± 0.048
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.305 ± 0.023 ms 0.327 ± 0.023 ms 0.931 ± 0.096
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0.14 ± 0.01 μs 0.141 ± 0.01 μs 0.993 ± 0.1
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0.12 ± 0.01 μs 0.13 ± 0.01 μs 0.923 ± 0.1
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0.25 ± 0.001 μs 0.25 ± 0.011 μs 1 ± 0.044
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0.161 ± 0.01 μs 0.16 ± 0.001 μs 1.01 ± 0.063
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0.21 ± 0.001 μs 0.211 ± 0.01 μs 0.995 ± 0.047
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 3.41 ± 0.019 μs 3.44 ± 0.029 μs 0.991 ± 0.01
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 4.02 ± 0.02 μs 4 ± 0.02 μs 1.01 ± 0.0071
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 3.44 ± 0.021 μs 3.48 ± 0.02 μs 0.988 ± 0.0083
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 4.79 ± 0.04 μs 4.68 ± 0.039 μs 1.02 ± 0.012
time_to_load 3.19 ± 0.0095 s 3.18 ± 0.018 s 1 ± 0.0065
Memory benchmarks
main c98c3ac... main / c98c3ac...
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.19 M allocs: 0.3 GB 2.19 M allocs: 0.3 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 0.306 M allocs: 0.0704 GB 0.306 M allocs: 0.0704 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 2.17 M allocs: 0.27 GB 2.17 M allocs: 0.27 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 2.17 M allocs: 0.27 GB 2.17 M allocs: 0.27 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.314 M allocs: 25.8 MB 0.314 M allocs: 25.8 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 1.01 M allocs: 0.142 GB 1.01 M allocs: 0.142 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 1.31 M allocs: 0.131 GB 1.31 M allocs: 0.131 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 1.31 M allocs: 0.131 GB 1.31 M allocs: 0.131 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.0964 M allocs: 30.4 MB 0.0964 M allocs: 30.4 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.081 M allocs: 28.8 MB 0.081 M allocs: 28.8 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.312 M allocs: 25.7 MB 0.312 M allocs: 25.7 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.714 M allocs: 0.0918 GB 0.714 M allocs: 0.0918 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0935 M allocs: 31.7 MB 0.0935 M allocs: 31.7 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.275 M allocs: 22.3 MB 0.275 M allocs: 22.3 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.815 M allocs: 0.107 GB 0.815 M allocs: 0.107 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.296 M allocs: 31.6 MB 0.296 M allocs: 31.6 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 1.38 M allocs: 0.138 GB 1.38 M allocs: 0.138 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 6.37 M allocs: 0.915 GB 6.37 M allocs: 0.915 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.0753 M allocs: 22.9 MB 0.0753 M allocs: 22.9 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.0817 M allocs: 29 MB 0.0817 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.718 M allocs: 0.0858 GB 0.718 M allocs: 0.0858 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.296 M allocs: 0.0315 GB 0.296 M allocs: 0.0315 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.59 M allocs: 0.089 GB 0.59 M allocs: 0.089 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.0929 M allocs: 31.4 MB 0.0929 M allocs: 31.4 MB 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.76 M allocs: 0.522 GB 3.76 M allocs: 0.522 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 1.45 M allocs: 0.225 GB 1.45 M allocs: 0.225 GB 1
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.173 M allocs: 0.0329 GB 0.173 M allocs: 0.0329 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.168 M allocs: 0.0318 GB 0.168 M allocs: 0.0318 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.79 k allocs: 0.682 MB 8.79 k allocs: 0.682 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 0.0437 M allocs: 5.58 MB 0.0437 M allocs: 5.58 MB 1
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.204 k allocs: 11.9 kB 0.984

@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 ! 🥳

@franckgaga franckgaga mentioned this pull request Oct 18, 2026
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