Skip to content

added: treat continuity constraints as linear in OrthogonnalCollocation#397

Merged
franckgaga merged 13 commits into
mainfrom
colloc_radau_cont
Jul 9, 2026
Merged

added: treat continuity constraints as linear in OrthogonnalCollocation#397
franckgaga merged 13 commits into
mainfrom
colloc_radau_cont

Conversation

@franckgaga

@franckgaga franckgaga commented Jul 8, 2026

Copy link
Copy Markdown
Member

I just realized that the continuity constraints of the OrthogonalCollocation transcription are in fact linear equality constraints 😮😮😮 ! I'm not sure if I'm the first one to notice this, presumably not, but nobody mention this in all the textbooks, papers and online documentation that I read.

This PR introduces the change to treat them as linear. The main gain from this change is reducing the size of the Jacobian for the AD of the nonlinear equality constraints. The performances gains at NLP solving itself is presumably negligible, except if the solver treat linear constraints separately.

Note that for :gaussradau, the continuity constraint is useless and redundant. It is however simpler to keep this redundant constraint, since it keeps an identical logic for all quadrature schemes. Now that the continuity constraint is treated as linear and no longer included in the AD, entirely removing it would significantly complexify the internal logic, and presumably without much difference on the performances.

In the end, the linear equality constraint include the continuity constraint and the defect of the stochastic states (for the linear unmeasured disturbance model i.e. the integrators). One exception: the state vector is not augmented with InternalModel, so there are only the continuity constraints for this case.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

Benchmark Results (Julia v1)

Time benchmarks
main e468690... main / e468690...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 4.09 ± 0.39 ms 4.05 ± 0.38 ms 1.01 ± 0.13
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 9.4 ± 0.61 ms 9.43 ± 0.61 ms 0.996 ± 0.091
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 1.54 ± 0.077 ms 1.55 ± 0.08 ms 0.99 ± 0.071
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 4.06 ± 0.34 ms 4.04 ± 0.38 ms 1.01 ± 0.13
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 6.59 ± 0.5 ms 6.6 ± 0.53 ms 0.998 ± 0.11
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 1.7 ± 0.077 ms 1.68 ± 0.077 ms 1.01 ± 0.065
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 7.72 ± 1.2 ms 7.63 ± 1.2 ms 1.01 ± 0.23
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 0.103 ± 0.023 s 0.104 ± 0.025 s 0.986 ± 0.33
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 11.9 ± 1.7 ms 12 ± 1.7 ms 0.993 ± 0.2
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.41 ± 0.0016 s 0.415 ± 0.0047 s 0.987 ± 0.012
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 1.07 ± 0.013 s 1.11 ± 0.022 s 0.963 ± 0.022
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 1.31 ± 0.0065 s 1.3 ± 0.007 s 1.01 ± 0.0074
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 0.833 ± 0.024 s 0.814 ± 0.015 s 1.02 ± 0.035
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 0.9 ± 0.055 s 0.805 ± 0.011 s 1.12 ± 0.071
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.283 ± 0.0045 s 0.279 ± 0.0019 s 1.01 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.326 ± 0.0036 s 0.333 ± 0.011 s 0.98 ± 0.035
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 0.43 ± 0.008 s 0.423 ± 0.0068 s 1.02 ± 0.025
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 0.43 ± 0.0062 s 0.424 ± 0.0042 s 1.01 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.4 ± 0.0036 s 0.386 ± 0.0022 s 1.04 ± 0.011
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.147 ± 0.0013 s 0.145 ± 0.0015 s 1.02 ± 0.014
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.262 ± 0.0012 s 0.264 ± 0.0064 s 0.994 ± 0.025
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.272 ± 0.0031 s 0.276 ± 0.0041 s 0.987 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0648 ± 0.0012 s 0.0622 ± 0.0009 s 1.04 ± 0.025
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.123 ± 0.0014 s 0.123 ± 0.00093 s 0.997 ± 0.014
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.266 ± 0.0041 s 0.265 ± 0.0048 s 1.01 ± 0.024
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.355 ± 0.0057 s 0.364 ± 0.008 s 0.973 ± 0.026
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.286 ± 0.0038 s 0.288 ± 0.0034 s 0.994 ± 0.017
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 0.488 ± 0.0047 s 0.474 ± 0.0069 s 1.03 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 1.76 ± 0.11 s 1.65 ± 0.076 s 1.07 ± 0.082
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.411 ± 0.002 s 0.404 ± 0.0033 s 1.02 ± 0.0097
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.146 ± 0.0014 s 0.144 ± 0.0014 s 1.02 ± 0.014
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.263 ± 0.0048 s 0.256 ± 0.002 s 1.03 ± 0.02
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.27 ± 0.011 s 0.272 ± 0.0033 s 0.995 ± 0.041
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.28 ± 0.0066 s 0.28 ± 0.0036 s 1 ± 0.027
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.204 ± 0.0047 s 0.209 ± 0.0054 s 0.974 ± 0.034
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.0604 ± 0.0004 s 0.0606 ± 0.001 s 0.996 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.103 ± 0.0014 s 0.103 ± 0.0006 s 1 ± 0.015
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 0.0692 ± 0.0074 s 0.072 ± 0.0054 s 0.961 ± 0.13
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 0.0511 ± 0.0026 s 0.0521 ± 0.0036 s 0.981 ± 0.084
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 0.0701 ± 0.0086 s 0.0703 ± 0.0058 s 0.997 ± 0.15
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 0.0485 ± 0.0065 s 0.0456 ± 0.0064 s 1.06 ± 0.21
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form 0.0714 ± 0.00045 s 0.0752 ± 0.00048 s 0.949 ± 0.0085
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0714 ± 0.00076 s 0.0756 ± 0.0012 s 0.945 ± 0.018
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form 0.0529 ± 0.00014 s 0.0558 ± 0.00067 s 0.948 ± 0.012
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0706 ± 0.0006 s 0.0747 ± 0.00055 s 0.945 ± 0.011
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0392 ± 0.00083 s 0.0408 ± 0.0019 s 0.963 ± 0.049
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0372 ± 0.00048 s 0.0379 ± 0.00096 s 0.981 ± 0.028
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 3.25 ± 0.06 μs 3.38 ± 0.03 μs 0.961 ± 0.02
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.08 ± 0.0017 ms 0.0784 ± 0.0017 ms 1.02 ± 0.031
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 0.111 ± 0.0075 ms 0.11 ± 0.0075 ms 1.02 ± 0.098
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 14.5 ± 0.44 μs 13.6 ± 0.35 μs 1.07 ± 0.042
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.133 ± 0.013 ms 0.139 ± 0.009 ms 0.957 ± 0.11
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.386 ± 0.11 ms 0.278 ± 0.086 ms 1.39 ± 0.58
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 0.872 ± 0.19 ms 0.881 ± 0.19 ms 0.99 ± 0.3
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.332 ± 0.027 ms 0.322 ± 0.025 ms 1.03 ± 0.12
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 8.63 ± 0.58 ms 8.59 ± 0.68 ms 1 ± 0.1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 8.25 ± 0.39 ms 8.49 ± 0.63 ms 0.971 ± 0.086
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 7.92 ± 0.55 ms 8.18 ± 0.44 ms 0.968 ± 0.085
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 8.51 ± 0.43 ms 9.07 ± 0.51 ms 0.939 ± 0.071
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 6.07 ± 1.4 ms 6.02 ± 1.1 ms 1.01 ± 0.3
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 6.87 ± 1.1 ms 6.34 ± 1.2 ms 1.08 ± 0.27
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 5.71 ± 0.23 ms 5.78 ± 0.38 ms 0.989 ± 0.076
UNIT TESTS/SimModel/LinModel/evaloutput 0.13 ± 0.01 μs 0.11 ± 0.001 μs 1.18 ± 0.092
UNIT TESTS/SimModel/LinModel/updatestate! 0.15 ± 0 μs 0.15 ± 0.001 μs 1 ± 0.0067
UNIT TESTS/SimModel/NonLinModel/evaloutput 0.25 ± 0.001 μs 0.251 ± 0.01 μs 0.996 ± 0.04
UNIT TESTS/SimModel/NonLinModel/linearize! 1.46 ± 0.03 μs 1.51 ± 0.03 μs 0.967 ± 0.028
UNIT TESTS/SimModel/NonLinModel/updatestate! 0.301 ± 0.01 μs 0.3 ± 0.001 μs 1 ± 0.034
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0.33 ± 0.019 μs 0.311 ± 0.01 μs 1.06 ± 0.07
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 1.3 ± 0.01 μs 1.32 ± 0.02 μs 0.984 ± 0.017
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 0.491 ± 0.001 μs 0.471 ± 0.01 μs 1.04 ± 0.022
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 0.952 ± 0.01 μs 0.962 ± 0.01 μs 0.99 ± 0.015
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 2.92 ± 0.06 μs 2.77 ± 0.05 μs 1.05 ± 0.029
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 5.99 ± 0.09 μs 6.08 ± 0.06 μs 0.985 ± 0.018
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0.16 ± 0.01 μs 0.291 ± 0.01 μs 0.55 ± 0.039
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0.371 ± 0.019 μs 0.36 ± 0.01 μs 1.03 ± 0.06
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0.491 ± 0.01 μs 0.341 ± 0.011 μs 1.44 ± 0.055
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0.47 ± 0.01 μs 0.471 ± 0.01 μs 0.998 ± 0.03
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0.451 ± 0.02 μs 0.431 ± 0.011 μs 1.05 ± 0.054
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 0.901 ± 0.011 μs 0.881 ± 0.02 μs 1.02 ± 0.026
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0.21 ± 0.001 μs 0.37 ± 0.01 μs 0.568 ± 0.016
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 0.1 ± 0 μs 0.1 ± 0.001 μs 1 ± 0.01
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 1.73 ± 0.04 μs 1.76 ± 0.051 μs 0.983 ± 0.036
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0.23 ± 0.01 μs 0.18 ± 0.001 μs 1.28 ± 0.056
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0.22 ± 0.001 μs 0.2 ± 0.01 μs 1.1 ± 0.055
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0.261 ± 0.011 μs 0.28 ± 0.019 μs 0.932 ± 0.074
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 0.275 ± 0.015 ms 0.267 ± 0.015 ms 1.03 ± 0.082
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 0.327 ± 0.015 ms 0.344 ± 0.032 ms 0.95 ± 0.098
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Constant arr. cov. 0.0353 ± 0.0028 s 0.0328 ± 0.0024 s 1.08 ± 0.12
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 0.0358 ± 0.0055 s 0.0334 ± 0.0026 s 1.07 ± 0.19
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Prediction form 0.33 ± 0.001 μs 0.32 ± 0.001 μs 1.03 ± 0.0045
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.289 ± 0.017 ms 0.257 ± 0.014 ms 1.12 ± 0.09
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Prediction form 0.972 ± 0.01 μs 0.982 ± 0.011 μs 0.99 ± 0.015
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Constant arr. cov. 12.2 ± 2.2 μs 12.5 ± 1.1 μs 0.978 ± 0.19
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Current form 0.032 ± 0.006 ms 31.5 ± 5.1 μs 1.02 ± 0.25
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 0.0365 ± 0.0034 s 0.032 ± 0.0021 s 1.14 ± 0.13
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Current form 14.1 ± 0.42 μs 13.8 ± 0.35 μs 1.02 ± 0.04
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.278 ± 0.015 ms 0.27 ± 0.013 ms 1.03 ± 0.073
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0.18 ± 0.001 μs 0.331 ± 0.011 μs 0.544 ± 0.018
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0.191 ± 0.02 μs 0.21 ± 0.019 μs 0.91 ± 0.13
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0.351 ± 0.01 μs 0.491 ± 0.011 μs 0.715 ± 0.026
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0.201 ± 0.01 μs 0.2 ± 0.019 μs 1 ± 0.11
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0.631 ± 0.02 μs 0.631 ± 0.02 μs 1 ± 0.045
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 2.6 ± 0.06 μs 2.56 ± 0.049 μs 1.02 ± 0.03
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 3.64 ± 0.061 μs 3.79 ± 0.081 μs 0.96 ± 0.026
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 2.78 ± 0.04 μs 2.75 ± 0.05 μs 1.01 ± 0.023
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 5.13 ± 0.091 μs 5.05 ± 0.061 μs 1.02 ± 0.022
time_to_load 5.17 ± 0.2 s 5.23 ± 0.039 s 0.988 ± 0.039
Memory benchmarks
main e468690... main / e468690...
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.22 M allocs: 0.245 GB 2.22 M allocs: 0.245 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 0.371 M allocs: 0.0533 GB 0.371 M allocs: 0.0533 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 2.16 M allocs: 0.211 GB 2.16 M allocs: 0.211 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 2.16 M allocs: 0.211 GB 2.16 M allocs: 0.211 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.32 M allocs: 22.2 MB 0.32 M allocs: 22.2 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.686 M allocs: 0.0776 GB 0.686 M allocs: 0.0776 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 1.32 M allocs: 0.118 GB 1.32 M allocs: 0.118 GB 1.01
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 1.32 M allocs: 0.118 GB 1.32 M allocs: 0.118 GB 1.01
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.0736 M allocs: 13 MB 0.0736 M allocs: 13 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.0811 M allocs: 16.9 MB 0.0811 M allocs: 16.9 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.334 M allocs: 23.4 MB 0.334 M allocs: 23.4 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.755 M allocs: 0.0765 GB 0.755 M allocs: 0.0765 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0941 M allocs: 20.3 MB 0.0941 M allocs: 20.3 MB 1
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.269 M allocs: 18.4 MB 0.269 M allocs: 18.4 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.871 M allocs: 0.0908 GB 0.871 M allocs: 0.0908 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.287 M allocs: 27 MB 0.287 M allocs: 27 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 1.47 M allocs: 0.132 GB 1.41 M allocs: 0.127 GB 1.04
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 6.04 M allocs: 0.741 GB 5.42 M allocs: 0.646 GB 1.15
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.0757 M allocs: 13.4 MB 0.0757 M allocs: 13.4 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.0811 M allocs: 17 MB 0.0811 M allocs: 17 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.881 M allocs: 0.0815 GB 0.881 M allocs: 0.0815 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.583 M allocs: 0.0723 GB 0.583 M allocs: 0.0723 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.0937 M allocs: 20.2 MB 0.0937 M allocs: 20.2 MB 1
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.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.0692 M allocs: 16.6 MB 0.0692 M allocs: 16.6 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0684 M allocs: 16.4 MB 0.0684 M allocs: 16.4 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form 0.0516 M allocs: 11.7 MB 0.0516 M allocs: 11.7 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0685 M allocs: 16.5 MB 0.0685 M allocs: 16.5 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0899 M allocs: 21 MB 0.0899 M allocs: 21 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.085 M allocs: 19.2 MB 0.085 M allocs: 19.2 MB 1
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.59 k allocs: 0.609 MB 0.999
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.41 k allocs: 0.0526 MB 1.41 k allocs: 0.0526 MB 1
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.114 GB 0.158 M allocs: 0.114 GB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 0.158 M allocs: 0.114 GB 0.158 M allocs: 0.116 GB 0.983
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.57 k allocs: 0.472 MB 7.57 k allocs: 0.472 MB 1
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

@codecov-commenter

codecov-commenter commented Jul 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.71%. Comparing base (f577cdd) to head (e468690).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #397   +/-   ##
=======================================
  Coverage   98.71%   98.71%           
=======================================
  Files          27       27           
  Lines        5666     5691   +25     
=======================================
+ Hits         5593     5618   +25     
  Misses         73       73           

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

They are detailed in the extended help, like for all the other transcription methods.
This is a bit more explicit. The matrix equation in `init_defectmat` is harder to follow.
@franckgaga franckgaga changed the title changed: treat continuity constraints as linear in OrthogonnalCollocation added: treat continuity constraints as linear in OrthogonnalCollocation Jul 9, 2026
@franckgaga franckgaga merged commit 4cb40e7 into main Jul 9, 2026
5 checks passed
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