Skip to content

added: MultipleShooting support for the MovingHorizonEstimator 🍾 - #411

Merged
franckgaga merged 64 commits into
mainfrom
ms_mhe
Jul 31, 2026
Merged

added: MultipleShooting support for the MovingHorizonEstimator 🍾#411
franckgaga merged 64 commits into
mainfrom
ms_mhe

Conversation

@franckgaga

@franckgaga franckgaga commented Jul 31, 2026

Copy link
Copy Markdown
Member

This is a humongous PR to introduce the support of a MultipleShooting transcription in the MovingHorizonEstimator, both for LinModel (QP) and NonLinModel (NLP). There is a new transcription keyword argument that supports only SingleShooting and MultipleShooting for now. This is a huge step toward #332 since the OrthogonalCollocation should be quite easy to implement now that the machinery for the linear and nonlinear equality constraints is there (it was non-existing before this PR). It is now fully functional and the new dimensions are pretty-printed in the optimization: section (similarly to NonLinMPC):

MovingHorizonEstimator estimator with a sample time Ts = 4.0 s:
├ model: LinModel
├ optimizer: OSQP 
├ transcription: MultipleShooting
├ arrival covariance: KalmanFilter 
├ direct: false
└ dimensions:
  │ ├ 2 estimation steps He
  │ ├ 2 manipulated inputs u (0 integrating states)
  │ ├ 6 estimated states x̂
  │ ├ 2 measured outputs ym (2 integrating states)
  │ ├ 0 unmeasured outputs yu
  │ └ 1 measured disturbances d
  └ optimization:
    ├ 30 decision variables Z̃ (0 slack variable, 3 bounds)
    ├  0 linear inequality constraints A
    ├ 12 linear equality constraints Aeq
    ├  0 nonlinear inequality constraints g (0 custom)
    └  0 nonlinear equality constraints geq

Ooof everything is more complex with the MHE, the growing windows complexify everything.
It is not strictly needed and it's an addition maintainability burden.
@franckgaga franckgaga linked an issue Jul 31, 2026 that may be closed by this pull request
@codecov-commenter

codecov-commenter commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.60714% with 38 lines in your changes missing coverage. Please review.
✅ Project coverage is 98.20%. Comparing base (670f095) to head (5c0942b).
⚠️ Report is 65 commits behind head on main.

Files with missing lines Patch % Lines
src/estimator/mhe/transcription.jl 96.12% 24 Missing ⚠️
src/estimator/mhe/execute.jl 92.20% 12 Missing ⚠️
src/transcription.jl 96.77% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #411      +/-   ##
==========================================
- Coverage   98.65%   98.20%   -0.46%     
==========================================
  Files          27       29       +2     
  Lines        5730     6130     +400     
==========================================
+ Hits         5653     6020     +367     
- Misses         77      110      +33     

☔ 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 dee00d3 into main Jul 31, 2026
6 checks passed
@github-actions

Copy link
Copy Markdown

Benchmark Results (Julia v1)

Time benchmarks
main 5c0942b... main / 5c0942b...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 5.15 ± 0.47 ms 5.12 ± 0.37 ms 1.01 ± 0.12
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 12.2 ± 0.74 ms 12 ± 0.74 ms 1.01 ± 0.088
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 2.02 ± 0.1 ms 1.96 ± 0.095 ms 1.03 ± 0.072
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 5.08 ± 0.44 ms 5.07 ± 0.48 ms 1 ± 0.13
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 8.36 ± 0.58 ms 8.33 ± 0.56 ms 1 ± 0.097
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 2.14 ± 0.097 ms 2.14 ± 0.019 ms 0.999 ± 0.046
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 9.84 ± 1.7 ms 9.89 ± 1.7 ms 0.995 ± 0.24
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 0.133 ± 0.028 s 0.142 ± 0.036 s 0.935 ± 0.31
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 15.6 ± 2.2 ms 15.2 ± 2.2 ms 1.03 ± 0.21
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.54 ± 0.0024 s 0.552 ± 0.014 s 0.979 ± 0.026
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 1.23 ± 0.059 s 1.18 ± 0.054 s 1.04 ± 0.069
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 1.58 ± 0.022 s 1.58 ± 0.015 s 1 ± 0.017
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 1.01 ± 0.047 s 0.958 ± 0.028 s 1.05 ± 0.058
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 1.06 ± 0.1 s 0.989 ± 0.086 s 1.07 ± 0.14
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.37 ± 0.0031 s 0.366 ± 0.013 s 1.01 ± 0.037
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.417 ± 0.015 s 0.396 ± 0.01 s 1.05 ± 0.047
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 0.569 ± 0.013 s 0.552 ± 0.013 s 1.03 ± 0.034
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 0.564 ± 0.013 s 0.546 ± 0.015 s 1.03 ± 0.036
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.533 ± 0.0048 s 0.537 ± 0.013 s 0.993 ± 0.026
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.198 ± 0.0066 s 0.186 ± 0.003 s 1.06 ± 0.039
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.351 ± 0.004 s 0.34 ± 0.0083 s 1.03 ± 0.028
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.337 ± 0.029 s 0.328 ± 0.0089 s 1.03 ± 0.094
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0846 ± 0.0025 s 0.0841 ± 0.0057 s 1.01 ± 0.074
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.131 ± 0.0038 s 0.134 ± 0.0096 s 0.977 ± 0.075
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.344 ± 0.00082 s 0.352 ± 0.0061 s 0.979 ± 0.017
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.367 ± 0.0057 s 0.355 ± 0.017 s 1.03 ± 0.051
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.369 ± 0.0033 s 0.371 ± 0.0055 s 0.997 ± 0.017
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 0.61 ± 0.01 s 0.603 ± 0.014 s 1.01 ± 0.028
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 1.85 ± 0.06 s 1.91 ± 0.081 s 0.971 ± 0.052
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.511 ± 0.0015 s 0.517 ± 0.0043 s 0.988 ± 0.0088
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.191 ± 0.0047 s 0.189 ± 0.0021 s 1.01 ± 0.027
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.341 ± 0.0041 s 0.349 ± 0.011 s 0.976 ± 0.032
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.286 ± 0.0046 s 0.292 ± 0.015 s 0.979 ± 0.053
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.371 ± 0.0063 s 0.374 ± 0.011 s 0.993 ± 0.033
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.22 ± 0.0052 s 0.222 ± 0.0062 s 0.993 ± 0.036
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.074 ± 0.0003 s 0.0773 ± 0.0023 s 0.957 ± 0.028
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.12 ± 0.002 s 0.114 ± 0.0039 s 1.05 ± 0.04
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 0.0854 ± 0.0061 s 0.0884 ± 0.0029 s 0.966 ± 0.075
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 0.0625 ± 0.0037 s 0.0653 ± 0.0037 s 0.957 ± 0.078
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 0.079 ± 0.0053 s 0.0827 ± 0.0052 s 0.956 ± 0.088
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 0.0553 ± 0.0071 s 0.0627 ± 0.0076 s 0.883 ± 0.16
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form 0.0956 ± 0.0013 s 0.096 ± 0.00083 s 0.996 ± 0.016
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0936 ± 0.00091 s 0.0944 ± 0.0013 s 0.992 ± 0.017
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form 0.0725 ± 0.0013 s 0.0716 ± 0.0013 s 1.01 ± 0.026
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0934 ± 0.0017 s 0.0919 ± 0.0026 s 1.02 ± 0.034
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0503 ± 0.00051 s 0.0517 ± 0.00074 s 0.974 ± 0.017
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0473 ± 0.00057 s 0.0452 ± 0.00041 s 1.05 ± 0.016
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 4.51 ± 0.04 μs 4.38 ± 0.04 μs 1.03 ± 0.013
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.0995 ± 0.0024 ms 0.0999 ± 0.0025 ms 0.996 ± 0.034
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 0.14 ± 0.01 ms 0.142 ± 0.0095 ms 0.988 ± 0.098
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 17.9 ± 0.41 μs 16.8 ± 0.42 μs 1.06 ± 0.036
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.173 ± 0.013 ms 0.175 ± 0.013 ms 0.988 ± 0.1
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.524 ± 0.076 ms 0.328 ± 0.12 ms 1.6 ± 0.63
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 1.16 ± 0.26 ms 1.16 ± 0.25 ms 1 ± 0.31
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.485 ± 0.024 ms 0.482 ± 0.025 ms 1.01 ± 0.072
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 10.8 ± 0.54 ms 10.6 ± 0.3 ms 1.02 ± 0.058
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 10.9 ± 0.48 ms 10.8 ± 0.56 ms 1.01 ± 0.069
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 10.4 ± 0.66 ms 11.7 ± 1.4 ms 0.887 ± 0.12
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 11.1 ± 0.74 ms 11.2 ± 0.75 ms 0.989 ± 0.094
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 9.25 ± 1.1 ms 7.52 ± 0.22 ms 1.23 ± 0.16
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 9.26 ± 1 ms 7.43 ± 0.14 ms 1.25 ± 0.14
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 7.49 ± 0.25 ms 7.45 ± 0.63 ms 1 ± 0.091
UNIT TESTS/SimModel/LinModel/evaloutput 0.15 ± 0.001 μs 0.14 ± 0 μs 1.07 ± 0.0071
UNIT TESTS/SimModel/LinModel/updatestate! 0.201 ± 0.01 μs 0.19 ± 0.001 μs 1.06 ± 0.053
UNIT TESTS/SimModel/NonLinModel/evaloutput 0.33 ± 0.01 μs 0.36 ± 0.001 μs 0.917 ± 0.028
UNIT TESTS/SimModel/NonLinModel/linearize! 1.81 ± 0.051 μs 1.84 ± 0.05 μs 0.984 ± 0.038
UNIT TESTS/SimModel/NonLinModel/updatestate! 0.381 ± 0.011 μs 0.41 ± 0.01 μs 0.929 ± 0.035
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0.47 ± 0.01 μs 0.481 ± 0.011 μs 0.977 ± 0.031
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 1.67 ± 0.02 μs 1.74 ± 0.021 μs 0.96 ± 0.016
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 0.631 ± 0 μs 0.26 ± 0.01 μs 2.43 ± 0.093
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 1.3 ± 0.01 μs 1.24 ± 0.01 μs 1.05 ± 0.012
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 4.08 ± 0.069 μs 3.98 ± 0.05 μs 1.03 ± 0.022
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 8.01 ± 0.08 μs 8.13 ± 0.071 μs 0.985 ± 0.013
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0.401 ± 0.001 μs 0.32 ± 0.001 μs 1.25 ± 0.005
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0.501 ± 0.01 μs 0.511 ± 0.011 μs 0.98 ± 0.029
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0.621 ± 0.01 μs 0.41 ± 0.01 μs 1.51 ± 0.044
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0.621 ± 0.019 μs 0.621 ± 0.02 μs 1 ± 0.044
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0.601 ± 0.011 μs 0.641 ± 0.01 μs 0.938 ± 0.023
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 1.15 ± 0.02 μs 1.19 ± 0.02 μs 0.966 ± 0.023
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0.26 ± 0.001 μs 0.26 ± 0.01 μs 1 ± 0.039
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 0.14 ± 0 μs 0.15 ± 0 μs 0.933 ± 0
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 2.59 ± 0.051 μs 2.61 ± 0.04 μs 0.992 ± 0.025
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0.22 ± 0.001 μs 0.39 ± 0.01 μs 0.564 ± 0.015
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0.271 ± 0.01 μs 0.431 ± 0.011 μs 0.629 ± 0.028
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0.36 ± 0.02 μs 0.43 ± 0.01 μs 0.837 ± 0.05
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 0.316 ± 0.019 ms 0.316 ± 0.02 ms 0.997 ± 0.087
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 0.389 ± 0.033 ms 0.461 ± 0.059 ms 0.845 ± 0.13
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 0.0403 ± 0.024 s 0.0437 ± 0.03 s 0.921 ± 0.83
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 0.0397 ± 0.0022 s 0.0421 ± 0.03 s 0.942 ± 0.68
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Prediction form 0.441 ± 0.001 μs 0.391 ± 0.001 μs 1.13 ± 0.0039
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.346 ± 0.019 ms 0.357 ± 0.019 ms 0.969 ± 0.074
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Prediction form 1.31 ± 0.01 μs 1.44 ± 0.01 μs 0.91 ± 0.0094
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Constant arr. cov. 14.2 ± 1.5 μs 13.7 ± 2.7 μs 1.03 ± 0.23
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Current form 0.0378 ± 0.0032 ms 0.0374 ± 0.0054 ms 1.01 ± 0.17
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 15.6 ± 29 ms 0.0354 ± 0.024 s 0.44 ± 0.87
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Current form 19.1 ± 0.45 μs 18.9 ± 0.54 μs 1.01 ± 0.038
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.348 ± 0.018 ms 0.381 ± 0.031 ms 0.913 ± 0.088
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0.26 ± 0.01 μs 0.25 ± 0.01 μs 1.04 ± 0.058
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0.481 ± 0.019 μs 0.33 ± 0.02 μs 1.46 ± 0.11
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0.791 ± 0.011 μs 0.351 ± 0.011 μs 2.25 ± 0.077
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0.3 ± 0.01 μs 0.301 ± 0.02 μs 0.997 ± 0.074
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0.851 ± 0.019 μs 0.882 ± 0.03 μs 0.965 ± 0.039
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 3.7 ± 0.05 μs 3.72 ± 0.06 μs 0.994 ± 0.021
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 4.92 ± 0.05 μs 4.94 ± 0.059 μs 0.996 ± 0.016
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 3.72 ± 0.06 μs 3.73 ± 0.059 μs 0.997 ± 0.023
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 6.8 ± 0.1 μs 6.66 ± 0.12 μs 1.02 ± 0.024
time_to_load 6.5 ± 0.024 s 6.69 ± 0.036 s 0.971 ± 0.0064
Memory benchmarks
main 5c0942b... main / 5c0942b...
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.38 MB 0.119 M allocs: 6.38 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.6 MB 0.996
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 0.998
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 2.17 M allocs: 0.212 GB 2.17 M allocs: 0.212 GB 0.998
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.316 M allocs: 22 MB 0.316 M allocs: 22.1 MB 0.996
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.36 M allocs: 0.122 GB 1.36 M allocs: 0.122 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 1.36 M allocs: 0.122 GB 1.36 M allocs: 0.122 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.0965 M allocs: 17.6 MB 0.0965 M allocs: 17.9 MB 0.982
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.0812 M allocs: 16.9 MB 0.0812 M allocs: 17 MB 0.996
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.0766 GB 0.998
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0926 M allocs: 20 MB 0.0926 M allocs: 20 MB 0.997
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.339 M allocs: 0.036 GB 0.339 M allocs: 0.036 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.277 M allocs: 19 MB 0.277 M allocs: 19.1 MB 0.996
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 0.997
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 1.4 M allocs: 0.126 GB 1.4 M allocs: 0.126 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 5.71 M allocs: 0.694 GB 5.71 M allocs: 0.694 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.0754 M allocs: 13.3 MB 0.0754 M allocs: 13.5 MB 0.982
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.0808 M allocs: 16.9 MB 0.0808 M allocs: 17 MB 0.996
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.0657 GB 0.998
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.1 MB 0.997
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.334 M allocs: 0.0325 GB 0.334 M allocs: 0.0325 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 1.25 M allocs: 0.213 GB 1.26 M allocs: 0.221 GB 0.963
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 1.16 M allocs: 0.136 GB 1.16 M allocs: 0.137 GB 0.998
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 1.13 M allocs: 0.21 GB 1.13 M allocs: 0.213 GB 0.983
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.0714 M allocs: 16.7 MB 0.0772 M allocs: 13.4 MB 1.25
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0702 M allocs: 16.5 MB 0.0745 M allocs: 13 MB 1.27
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form 0.0517 M allocs: 11.7 MB 0.0532 M allocs: 9.1 MB 1.28
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0705 M allocs: 16.6 MB 0.0748 M allocs: 13 MB 1.27
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0918 M allocs: 21.1 MB 0.0964 M allocs: 17 MB 1.24
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0868 M allocs: 19.2 MB 0.0909 M allocs: 15.5 MB 1.24
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.59 k allocs: 0.609 MB 9.59 k allocs: 0.611 MB 0.998
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.42 k allocs: 0.0529 MB 1.42 k allocs: 0.053 MB 0.998
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 1.3 k allocs: 0.174 MB 1.42 k allocs: 0.252 MB 0.689
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 0.159 M allocs: 0.117 GB 0.158 M allocs: 0.116 GB 1.01
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 0.158 M allocs: 0.115 GB 0.158 M allocs: 0.118 GB 0.98
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.997 k allocs: 26.2 kB 1.04 k allocs: 27.8 kB 0.944
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 6.75 k allocs: 0.45 MB 7.55 k allocs: 0.475 MB 0.948
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.926 k allocs: 26.2 kB 1.04 k allocs: 27.8 kB 0.944
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

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.

Multiple shooting transcription for MovingHorizonEstimator

2 participants