Recent Releases of ModelPredictiveControl
ModelPredictiveControl - v1.9.0
ModelPredictiveControl v1.9.0
- added:
TrapezoidalCollocationmethod for continuous nonlinear systems - added:
dependabot.ymlfile to help with the CI dependencies - changed: new fields with the continuous state-space function
model.f!andmodel.h!inNonLinModels (instead ofmodel.solver_f!andmodel.solver_h!) - test: new test with
TrapezoidalCollocationandIpopt - bench: new case studies with
TrapezoidalCollocationon the pendulum
Merged pull requests:
- bench: increasing samples to reduce SD when needed (#228) (@franckgaga)
- added: dependabot.yml file to help with CI dependencies (#230) (@franckgaga)
- build(deps): bump julia-actions/setup-julia from 1 to 2 (#231) (@dependabot[bot])
- build(deps): bump actions/checkout from 2 to 5 (#232) (@dependabot[bot])
- changed: keep f! and h! functions available (#233) (@franckgaga)
- added: simple TrapezoidalCollocation() transcription method (#234) (@franckgaga)
- doc: clarifying model augmentation for NonLinMPC in f̂! docstring (#235) (@franckgaga)
- added: show TranscriptionMethod when printing PredictiveController (#236) (@franckgaga)
- added: unit tests and benchmarks for TrapezoidalCollocation (#237) (@franckgaga)
Closed issues: - Trapezoidal collocation transcription (#164)
- Julia
Published by github-actions[bot] 6 months ago
ModelPredictiveControl - v1.8.2
ModelPredictiveControl v1.8.2
- added: new benchmark suite that runs automatically on each PR with AirspeedVelocity.jl
Merged pull requests:
- test: increase Ts of NonLinMPC test to avoid out-of-time status (#217) (@franckgaga)
- added: benchmarking workflow with github actions (#218) (@franckgaga)
- bench: added allocation benchmarks on CI (#219) (@franckgaga)
- doc: minor correction (#220) (@franckgaga)
- bench: trying AirspeedVelocity.jl (#221) (@franckgaga)
- bench: adding some PredictiveController benchmarks (#222) (@franckgaga)
- CompatHelper: bump compat for SparseConnectivityTracer to 1, (keep existing compat) (#223) (@github-actions[bot])
- bench: add OSQP and Random as dependencies (#224) (@franckgaga)
- bench: minor modification (#225) (@franckgaga)
- debug: MovingHorizonEstimator no longer crash with error termination flag (#226) (@franckgaga)
- bump (#227) (@franckgaga)
- Julia
Published by github-actions[bot] 8 months ago
ModelPredictiveControl - v1.8.1
ModelPredictiveControl v1.8.1
- added: new
KalmanCovarianceparametric struct to handle covariance sparsity efficiently - added: dispatch on
repeatdiagto preserveDiagonnals - added: in-place and allocation-free
inv!for MHE covariance matrices - changed: store
P̃Δu,P̃uandTuconversion matrices asSparseMatrixCSC - debug: support
Hermitianweights inPredictiveController - debug: use dummy
bvector in MHEsetmodel!to avoid±Infvalues - test: verify
setmodel!withHe>1for MHE - test: new integration with
ManualEstimatorand MPCs - doc: various improvements
Merged pull requests:
- new ManualEstimator tests and minor doc corrections (#210) (@franckgaga)
- doc : minor clarifications (#211) (@franckgaga)
- Changed: store conversion matrices as SparseMatrixCSC (#212) (@franckgaga)
- added: inv! for MovingHorizonEstimator covariance matrices (#214) (@franckgaga)
- debug: support Hermitian weights in PredictiveController (#215) (@franckgaga)
- added: new KalmanCovariance struct to handle covariance sparsity efficiently (#216) (@franckgaga)
- Julia
Published by github-actions[bot] 9 months ago
ModelPredictiveControl - v1.8.0
ModelPredictiveControl v1.8.0
- added: move blocking feature in
LinMPC,ExplicitMPCandNonLinMPC(seeHcargument)
Merged pull requests:
- added: move blocking feature in LinMPC, ExplicitMPC and NonLinMPC (#201) (@franckgaga)
Closed issues: - Implement manipulated input blocking (#177)
- Julia
Published by github-actions[bot] 9 months ago
ModelPredictiveControl - v1.7.0
ModelPredictiveControl v1.7.0
- added:
ManualEstimatorto turn off built-in state estimation and provide your own estimate
Merged pull requests:
- added: ManualEstimator to turn off built-in state estimation (#206) (@franckgaga)
- changed: moved lastu0 inside PredictiveController objects (#208) (@franckgaga)
- Added tests and improve doc for ManualEstimator (#209) (@franckgaga)
Closed issues:
- Create a CustomEstimator to ease interfacing with Low-level particle filter package (#142)
- Support nonlinear estimator with linear model predictive control (#205)
- Julia
Published by github-actions[bot] 9 months ago
ModelPredictiveControl - v1.6.2
ModelPredictiveControl v1.6.2
Merged pull requests:
- CompatHelper: bump compat for DifferentiationInterface to 0.7, (keep existing compat) (#203) (@github-actions[bot])
- changed: compat of DAQP to 0.6, 0.7.1 (#204) (@franckgaga)
- debug: force update of gradient/jacobian in MovingHorzionEstimator when window not filled (#207) (@franckgaga)
- Julia
Published by github-actions[bot] 9 months ago
ModelPredictiveControl - v1.6.1
ModelPredictiveControl v1.6.1
- added: improve
NonLinMPCperformances with specialized conversion and weight matrices - changed:
M_Hp,N_HcandL_Hpkeyword arguments now default toDiagonalinstead ofdiagmmatrices for allPredictiveControllerconstructors
Merged pull requests:
- Cherry pick doc and general improvements commits from hessian_objective (#200) (@franckgaga)
- added: be more efficient with weights and conversion matrices for NonLinMPC (#202) (@franckgaga)
Closed issues:
- Support exact Hessian of objective function J in NonLinMPC and MovingHorizonEstimator (#193)
- Use one function in linearization (#199)
- Julia
Published by github-actions[bot] 10 months ago
ModelPredictiveControl - v1.6.0
ModelPredictiveControl v1.6.0
- added: general performance boost of
NonLinMPCandMovingHorizonEstimatorusingvalue_and_gradient!/jacobian!ofDifferentiationInterface.jlinstead of individual calls (similar toDiffResults.jlgoal) 🚀🚀🚀 - added:
setstate!now allows manual modifications of the estimation error covariance $\mathbf{\hat{P}}$ (if computed by the estimator)
Merged pull requests:
- added: setstate! now allows estimation covariance P̂ modification (if applicable) (#192) (@franckgaga)
- doc: minor corrections (#196) (@franckgaga)
- Added: NonLinMPC and MovingHorizonEstimator now use value_and_gradient!/jacobian! of DI.jl (#197) (@franckgaga)
Closed issues: - Precompilation is failing (#195)
- Julia
Published by github-actions[bot] 10 months ago
ModelPredictiveControl - v1.5.3
ModelPredictiveControl v1.5.3
Merged pull requests:
- Test: added allocations tests for types that are known to be allocation-free (SKIP THEM FOR NOW) (#187) (@franckgaga)
- test: fix CI badge (#188) (@franckgaga)
- debug: remove .data in KalmanFilter matrix products (#189) (@franckgaga)
- test: adapt tests for the new automatically balancing minreal function (#191) (@franckgaga)
- Julia
Published by github-actions[bot] 10 months ago
ModelPredictiveControl - v1.5.2
ModelPredictiveControl v1.5.2
Merged pull requests:
- debug: do not call jacobian! if nd==0 in linearize (#186) (@franckgaga)
Closed issues: - Linearize is failing when using AutoFiniteDiff() (#185)
- Julia
Published by github-actions[bot] 11 months ago
ModelPredictiveControl - v1.5.1
ModelPredictiveControl v1.5.1
- removed:
DiffCaches inRungeKuttasolver - debug: no more noisy
@warnaboutDiffCachechunk size - changed:
compatforForwardDiffto0.10, 1 - test: added
compatentries for the test-only dependencies in[extras]section
Merged pull requests:
- CompatHelper: bump compat for ForwardDiff to 1, (keep existing compat) (#182) (@github-actions[bot])
- Changed: RungeKutta no longer uses DiffCache (#183) (@franckgaga)
- Julia
Published by github-actions[bot] 11 months ago
ModelPredictiveControl - v1.5.0
ModelPredictiveControl v1.5.0
- added: migration to
DifferentiationInterface.jl - added: new
gradientandjacobiankeyword arguments forNonLinMPC - added: new
gradientandjacobiankeyword arguments forMovingHorizonEstimator - added: new
jacobiankeyword argument forNonLinModel(for linearization) - added: new
jacobiankeyword argument forExtendedKalmanFilter - added:
ExtendedKalmanFilteris now allocation-free at runtime - test: many new test with
AutoFiniteDiffbackend
Merged pull requests:
- added: NonLinMPC and MovingHorizonEstimator integration with DI.jl (#174) (@franckgaga)
- added: linearize! now uses DifferentiationInterface.jl (#179) (@franckgaga)
- Added: ExtendedKalmanFilter now uses DifferentiationInterface.jl + now allocation-free (#180) (@franckgaga)
Closed issues: - Use DifferentiationInterface.jl (#162)
- Julia
Published by github-actions[bot] 11 months ago
ModelPredictiveControl - v1.4.4
ModelPredictiveControl v1.4.4
Merged pull requests:
- Debug: ineq. constraint for NonLinModel and MultipleShooting (#178) (@franckgaga)
- Julia
Published by github-actions[bot] 12 months ago
ModelPredictiveControl - v1.4.3
ModelPredictiveControl v1.4.3
Merged pull requests:
- Debug x_noise argument in sim! and deprecate preparestate!(::SimModel, _ , _ ) (#173) (@franckgaga)
- debug: terminal constraint now works with MultipleShooting + NonLinModel (#176) (@franckgaga)
- Julia
Published by github-actions[bot] 12 months ago
ModelPredictiveControl - v1.4.2
ModelPredictiveControl v1.4.2
- added: major performance boost of
NonLinMPCandMovingHorizonEstimatorwith NL constraints (5-10x) 🥳🥳🥳 - changed: big refactor of NLP functions for the integration of
DifferentiationInterface.jl
Merged pull requests: - Changed: major NLP refactoring for flexibility and significantly improve performance (#171) (@franckgaga)
- Julia
Published by github-actions[bot] 12 months ago
ModelPredictiveControl - v1.4.1
ModelPredictiveControl v1.4.1
- debug: correct
@errormessage for MPC when not solved (it was the MHE message) - debug: allow
LinModellinearization (useless, only for consistency amongSimModeltypes) - test: new tests with
MultipleShootingfor coverage - doc: minor improvements
Merged pull requests:
- test for MultipleShooting and doc improvements (#166) (@franckgaga)
- add new feature to readme (#167) (@franckgaga)
- Minor doc corrections + allow LinModel linearization (#168) (@franckgaga)
- debug: correct @error msg for MPC not solved (#169) (@franckgaga)
- changed: moved equality constraint function to transcription.jl and bump (#170) (@franckgaga)
- Julia
Published by github-actions[bot] 12 months ago
ModelPredictiveControl - v1.4.0
ModelPredictiveControl v1.4.0
Merged pull requests:
- added: multiple shooting transcription for LinMPC and NonLinMPC (#155) (@franckgaga)
Closed issues: - Multiple shooting transcription (#140)
- Julia
Published by github-actions[bot] 12 months ago
ModelPredictiveControl - v1.3.5
ModelPredictiveControl v1.3.5
- added:
linearize!is allocation-free once again - changed: re-worked AD buffers to prepare the ground for
DifferentiationInterface.jl
Merged pull requests:
- added: linearize! is allocation-free once again (#165) (@franckgaga)
Closed issues:
- Add support for a simple stiff solver similar to SimpleColloc in SeeToDee.jl (#129)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.3.4
ModelPredictiveControl v1.3.4
- debug: all fields of
NonLinModelare now concrete types
Merged pull requests:
- debug: NonLinModel fields are now all concrete types (#161) (@franckgaga)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.3.3
ModelPredictiveControl v1.3.3
- debug: revert allocation-free
linearize!to avoidNonLinModeltype-instabilities
Merged pull requests:
- debug: revert allocation-free linearize! to avoid NonLinModel type-instability (#160) (@franckgaga)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.3.2
ModelPredictiveControl v1.3.2
- added: update test for new VS code test framework
- debug: fallback if nonfinite arr. cov. after correction/update
- debug: add
busywaitarg toperiodsleepforStateEstimatorandPredictiveController - changed:
@errorinstead of@warnin MHE fallback for arrival covariance - changed: update CI and test on pre instead of nightly
- changed: simpler code for stochastic predictions of
InternalModel
Merged pull requests:
- changed: @error instead of @warn in MHE arrival covariance fallback + update CI (#154) (@franckgaga)
- debug: fallback if nonfinite arr. cov. after correction/update (#156) (@franckgaga)
- changed: simpler code for stochastic predictions of InternalModel (#157) (@franckgaga)
- update test for new VS code test framework (#158) (@franckgaga)
- bump (#159) (@franckgaga)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.3.1
ModelPredictiveControl v1.3.1
- added: show
@debugmessages in github CI if debug logging is activated - changed:
@debugmessages with thegetinfodictionary are never truncated (show_limited=falseis no longer necessary)
Merged pull requests:
- added: show @debug message in CI if debug logging is activated (#153) (@franckgaga)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.3.0
ModelPredictiveControl v1.3.0
- added: show
getinfodictionary in the debug log if activated (instead of only the solution summary ofJuMP) - added: show tips about debug log in the optimization warning and error messages
- debug: fallback if
MovingHorizonEstimatorarrival covariance update fails (keep the old one) - changed: covariance matrix inversion with
choleskyinstead ofinvinMovingHorizonEstimator(invinternally useslu)
Merged pull requests:
- doc: torques constraints AND power constraint in the example (manual) (#150) (@franckgaga)
- debug: fallback if MovingHorizonEstimator arrival covariance update fails (#151) (@franckgaga)
- added: call getinfo when debug logging is activated and not solved (#152) (@franckgaga)
Closed issues: - Error on execution of doc example (#146)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.2.0
ModelPredictiveControl v1.2.0
- added:
ForwardEulerODE solver - added: remove 1 useless
.=op inRungeKutta(4) - added: forcing specialization in the NLP functions by using
Vararg{T, N}instead of splatting (see this tip) - added: skipping computations in
extended_predictionswhen possible - added: print the solver order for
NonLinModel - changed: bump julia
compatto 1.10 (new LTS) - changed: improve code reuse in NLP functions to improve code maintainability
- test: new tests for
ForwardEuler - doc: info about types that allocate or not
Merged pull requests:
- removing commented out code (#144) (@franckgaga)
- added: new ForwardEuler solver with 0 allocation (#145) (@franckgaga)
- bump julia compat to 1.10 (LTS) (#147) (@franckgaga)
- Added: slightly speed up NonLinMPC and MovingHorizonEstimator (#149) (@franckgaga)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.1.4
ModelPredictiveControl v1.1.4
- added:
linearize!is now allocation free - added: do not call
gc!ifnc==0 - added: new
mpc.buffer.ΔŨbuffer to reduce the allocations - changed:
preparestate!default d argument as empty vector - various doc improvements
Merged pull requests:
- changed: preparestate! default d argument as empty vector (#137) (@franckgaga)
- added: do not call gc! if nc==0 (#138) (@franckgaga)
- added: reduce allocations for PredictiveController (#139) (@franckgaga)
- added: linearize! is now allocation free (#141) (@franckgaga)
- Update Project.toml (#143) (@franckgaga)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.1.3
ModelPredictiveControl v1.1.3
- added:
:gcfield ingetinfofor custom constraints ofNonLinMPC - debug: allow
setmodel!onSteadyKalmanFilter/Luenbergerwhen there is no model modification (for changing the weights of aPredictiveController) - test: validating the
:gcfields ofgetinfo!in the constraint violation tests - doc: remove
Hpparameter in thegcexample of the manual (useless)
Merged pull requests:
- added: gc in getinfo (#136) (@franckgaga)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.1.2
ModelPredictiveControl v1.1.2
- added: save some computations in
NonLinMPCwithT_lastufield instead ofT_lastu0 - changed: moved all controller weights in
mpc.weightsstruct to improve code re-use - test: improve constraint violation tests (verify the whole horizons, use distinct lower and upper bounds)
- test: new custom constraint violation tests that use
Ueargument - doc: added a custom nonlinear constraint example on the motor power in the manual
- doc: various improvements
Merged pull requests:
- added: save some NonLinMPC computations with T_lastu instead of T_lastu0 for input conversion (#133) (@franckgaga)
- doc: minor correction (#134) (@franckgaga)
- Doc: nonlinear custom constraint example on the motor in the manual (#135) (@franckgaga)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.1.1
ModelPredictiveControl v1.1.1
- fixed: remove a type-instability in
LinMPCandNonLinMPCintroduced in v1.1.0 - added: reduce allocations with
PredictiveControllers using new fields inmpc.bufferobject - added: improve performance with 4
iszero_Xfields for eachPredictiveControllerweight, to skip computations when possible - changed: moved all controller weights in
mpc.weightsstruct to improve code re-use - test: new custom constraint violation tests that use
Ueargument
Merged pull requests:
- Fix type instability in LinMPC and NonLinMPC (introduced in 1.1.0) (#130) (@franckgaga)
- Changed: moved all controller weights in mpc.weights struct (#131) (@franckgaga)
- Added: iszero_W field in for the 4 weights in ControllerWeights struct (#132) (@franckgaga)
- Julia
Published by github-actions[bot] about 1 year ago
ModelPredictiveControl - v1.1.0
ModelPredictiveControl v1.1.0
- added: support for custom nonlinear inequality constraints
gcinNonLinMPC - added: call
JEandgconce inNonLinMPCconstructor and show stacktrace if it fails (to guide the user) - doc: additional details on vector dimensions
- doc: documents the dummy function
plot_recipeinstead ofplotto avoid confusion - tests: new test for custom nonlinear constraint violation
Merged pull requests:
- Added: support for custom nonlinear constraints gc in NonLinMPC (#118) (@franckgaga)
- Avoid introducing MPC.plot (#120) (@baggepinnen)
- Custom constraints : add tests (#128) (@franckgaga)
Closed issues: - plot not working (#119)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v1.0.2
ModelPredictiveControl v1.0.2
- changed: removed code related to Julia 1.6 compatibility (1.10 is the new LTS)
- doc: add compat info to
ModelingToolkit.jlexample - doc: various minor modifications
Merged pull requests: - Added: details in observability error message, modify CI for new release and MTK exemple debug (#117) (@franckgaga) - Add compat details on MTK.jl bugfixes (#122) (@franckgaga) - Doc correction and simple CI fix (#123) (@franckgaga) - doc: change slmpc speed gain for the real benchmark (#125) (@franckgaga) - bump (#126) (@franckgaga)
Closed issues: - Support for dynamic differential programming in a model predictive context (#109) - MTK example no longer work (#116) - linearize is throwing an error when using an empty disturbance (#121)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v1.0.1
ModelPredictiveControl v1.0.1
- changed: more precise error for
LinModelwith non-zero D matrix - doc: MTK example error message for non-strictly proper systems
- doc: MTK example now uses the
pargument ofNonLinModel - doc: remove old stuff that no longer applies
- doc: various improvements
Merged pull requests:
- doc: MTK example throw error for non-strictly proper systems (#110) (@franckgaga)
- doc: add the parameter p in f and h function signature (#111) (@franckgaga)
- doc: remove stuff that no longer applies (#113) (@franckgaga)
- bump version (#114) (@franckgaga)
Closed issues:
- Better integration with ModellingToolkit (#106)
- Avoid Matrix Inversion in the MovingHorizonEstimator (#112)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v1.0.0
ModelPredictiveControl v1.0.0
- breaking change:
NonLinModelnewpargument inf/f!andh/h!function signature - breaking change:
NonLinMPCnewpargument inJEfunction signature - added: support for plant model parameters $\mathbf{p}$ in
NonLinModel - added: support for economic function parameters $\mathbf{p}$ in
NonLinMPC - doc: ModelingToolkit integration example on the pendulum model
- test: improve coverage
- debug:
ExplicitMPCcorrect error message with the unsupportedsetconstraint!method - added: validate economic function $J_E$ argument signature
Merged pull requests: - Fix #103 (#104) (@baggepinnen) - Preparation for v1.0.0 release (#105) (@franckgaga) - Fixing documentation deployement (#107) (@franckgaga)
Closed issues: - Code coverage token secret (#103) - Better integration with ModellingToolkit (#106)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v0.24.1
ModelPredictiveControl v0.24.1
- added: print warning if
preparestate!is called aftermoveinput!orevaloutputwith current estimators - added: reduce allocations with
linearize! - added: reduce allocations with
moveinput!calls with newbufferobjects - debug:
evaloutputonInternalModelnow include current stochastic estimate $\mathbf{\hat{y}_s}$ - test: add test to verify
evaloutputcorrectness onInternalModel - test and precompile: add
preparestate!where needed to avoid the warnings - doc: various improvements
Merged pull requests:
- minor doc correction (#97) (@franckgaga)
- doc: minor doc correction (#99) (@franckgaga)
- debug: make it work on Julia nightly (#100) (@franckgaga)
- Reduce allocations in linearize! (#101) (@franckgaga)
- Warning preparestate!, debug InternalModel, reduce alloc PredictiveController (#102) (@franckgaga)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v0.24.0
ModelPredictiveControl v0.24.0
- breaking change:
MovingHorizonEstimatornow default todirect=true - added: the current/filter formulation of the
MovingHorizonEstimator - doc: explicitly list all the keyword arguments of all the state estimator
- added: soft real time utilities
- added:
InternalModelnow produces 0 allocation withpreparestate!andupdatestate!calls - tests: new integration tests that compare unconstrained MHE to UKF and KF results
- tests: new integration that compare
LinModelandNonLinModel
Merged pull requests:
- Added: soft real time utilities (#94) (@franckgaga)
- added: MovingHorizonEstimator support for direct=true, initialized with P̂(-1|-1) (#96) (@franckgaga)
Closed issues: - Real-time loop tools (#85)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v0.23.1
ModelPredictiveControl v0.23.1
Luenberger,SteadyKalmanFilter,KalmanFilterandUnscentedKalmanFilternow produce 0 allocation withpreparestate!andupdatestate!calls- doc: minor corrections
Merged pull requests: - added: doc correction and reduce allocations for all Kalman filters (#93) (@franckgaga)
Closed issues: - Support for current estimators and V1 soon? (#89)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v0.23.0
ModelPredictiveControl v0.23.0
BREAKING CHANGES
preparestate!should be called before solving the MPC optimization withmoveinput!- current form by default for all
StateEstimator ymkeyword argument ofmoveinput!removed (was only forInternalModel, I now use the newpreparestate!method)MovingHorizonEstimatoradvanced constructor (with complete covariance matrices):covestimandoptimare now keyword arguments instead of positional arguments.
Changelog
- added: current form for all
StateEstimatorexceptMovingHorizonEstimator, to improve accuracy and closed-loop robustness - reduce allocation for
SimModelandStateEstimatorinstances by using internal buffers - multiple doc correction
Merged pull requests:
- minor doc correction (#87) (@franckgaga)
- minor doc additions (#88) (@franckgaga)
- added: support for the current form for all the state estimators (#90) (@franckgaga)
- Reduce allocations by avoiding empty for default d argument (#91) (@franckgaga)
- added: SimModelBuffer and StateEsimatorBuffer objects to reduce the allocations (#92) (@franckgaga)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v0.22.1
ModelPredictiveControl v0.22.1
- added: support for
Mwt,NwtandLwtkeyword arguments insetmodel!(to simplify the API) - reduce allocations in
setconstraint! - minor doc corrections
Merged pull requests:
- non unicode alternative setmodel MPC (#79) (@franckgaga)
- minor doc correction (#80) (@franckgaga)
- idem (#81) (@franckgaga)
- doc: change nomenclature EMPC (#83) (@franckgaga)
- Minor correction doc (#84) (@franckgaga)
- Added: Mwt, Nwt and Lwt kwargs in setmodel! (#86) (@franckgaga)
Closed issues: - How to successfully impose constraints to a Control Variable with high priority (#78)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v0.22.0
ModelPredictiveControl v0.22.0
BREAKING CHANGE
Migration the new nonlinear programming syntax of JuMP. Some optimizers may not support it yet.
- added: online modification of objective function weights and covariance matrices with
setmodel! - added: accept indices and ranges in
plotkeyword arguments - changed: migrate the NLP code to the new syntax
- doc: added
plotresult previews with static images - new tests for new plot recipes and weights/covariances modification
Merged pull requests: - New jump nlp syntax, merge into main? (#31) (@franckgaga) - Added: online modification of weights and covariances (#77) (@franckgaga)
Closed issues: - MPC getinfo results (#76)
- Julia
Published by github-actions[bot] over 1 year ago
ModelPredictiveControl - v0.21.3
ModelPredictiveControl v0.21.3
- added: index ranges or vectors for plot keyword arguments (to select variables to plot)
- doc: separate page for
sim!andplotfunctions - doc: document
plotkeyword arguments - doc: plot results in examples
Merged pull requests: - Doc: minor corrections and add preview cleanup workflow (#71) (@franckgaga) - cleanup MHE append 0 to deviation vector variables (#72) (@franckgaga) - added: support indices keyword argument in plot recipes (#73) (@franckgaga) - bump (#74) (@franckgaga)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.21.2
ModelPredictiveControl v0.21.2
- added: show
sim!% progress and ETA in VS Code status bar - added: plot estimated state constraints
x̂min/x̂maxfor MHE - debug:
RungeKuttadiff cache chuck sizenx+2 - doc: added
plotrecipe documentation (for keyword arguments) - tests: unconstrained MHE vs KF/UKF tests
Merged pull requests:
- debug: RungeKutta diff cache chuck size nx+2 (#67) (@franckgaga)
- minor doc correction (#68) (@franckgaga)
- added: plot recipes doc and plot MHE state estimate constrains (#69) (@franckgaga)
- Update Project.toml (#70) (@franckgaga)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.21.1
ModelPredictiveControl v0.21.1
- added: non-Unicode alternative keyword arguments in public functions
- added: modify plots Y-axis labels with
setname! - debug: plots
Ruinstead ofRyforusetpoint (recipe) - remove one useless allocation in
updatestate! - various doc corrections and improvements
Merged pull requests:
- doc: correct mistake in MPC prediction matrices (#56) (@franckgaga)
- Doc correction (#57) (@franckgaga)
- doc: clarify notation update_estimate! and imc block diagram (#58) (@franckgaga)
- IMC block diagram (#59) (@franckgaga)
- remove one allocation in updatestate! (#60) (@franckgaga)
- debug: plot Ru instead of Ry for u setpoint in recipe (#62) (@franckgaga)
- added: setname! function for variable names in plot labels (#63) (@franckgaga)
- Offer an alternative non-unicode API for keyword arguments (#64) (@franckgaga)
- Update Project.toml (#66) (@franckgaga)
Closed issues: - Remove unicode char in keyword arguments (or offer an alternative) ? (#61)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.21.0
ModelPredictiveControl v0.21.0
BREAKING CHANGE
All the keyword arguments related to initial values e.g. σP0, x0 and x̂0 now require an underscore e.g. σP_0, x_0, x̂_0 (to differentiate from operating point deviation vectors)
- Added:
setmodel!for runtime model adaptation of controller/estimator based onLinModel - Added:
linearizeandsetop!now support non-equilibrium points - Added: successive linearization MPC with the new
setmodel!andlinearizefunctions - Added: successive linearization MHE with the new
setmodel!andlinearizefunctions - Added:
linearize!method for in-place model linearization (to reduce allocations) - Added: 6 args.
LinModelconstructor now support scalars (similarly tossfunction) - Added:
ExtendedKalmanFilternow compute the Jacobians in-place (to reduce allocations) - Changed:
structstate dataxand state estimatex̂renamed tox0andx̂0 - Debug:
ExplicitMPCwith non-Float64now works - Debug: accept integers in
linearizearguments - Debug: call
empty!onJuMP.Modelto support re-construction of MPC instances - Doc: new
setmodel!,setop!andlinearizefunction documentation - Doc: example of model adaptation with successive linearization on the pendulum (very efficient!)
Merged pull requests:
- Added: adaptatation of LinMPC model through setmodel! (#52) (@franckgaga)
- Added: adaptation of controller/estimator based on LinModel (#54) (@franckgaga)
- Added: setmodel! for MovingHorizonEstimator (#55) (@franckgaga)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.20.2
ModelPredictiveControl v0.20.2
- added: print info on controller and estimator constraint softening (slack var.
ϵ) - reduce allocations
LinMPC,NonLinMPC,MovingHorizonEstimator - cleanup namespace with
imports instead ofusings
Merged pull requests:
- Changed: avoid collect in NonLinMPC and MovingHorizonEstimator objective and constraints (#46) (@franckgaga)
- changed: error handling one less alloc (#47) (@franckgaga)
- added: print info on controller and estimator constraints softening (#49) (@franckgaga)
- cleaning the namespace with imports instead of usings (#50) (@franckgaga)
- Namespace, NonLinMPC and MovingHorizonEsitimator cleanup (#51) (@franckgaga)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.20.1
ModelPredictiveControl v0.20.1
- Reduce allocation for estimator based on
NonLinModel - Reduce allocations for
LinMPCandKalmanFilter - Improve performance of
LinMPCandMovingHorizonEstimatorwith newJuMPbatch update methods
Merged pull requests:
- doc: correct errors in EKF equations (#43) (@franckgaga)
- Reduce allocation for estimators based on augmented NonLinModel (#44) (@franckgaga)
- Improve performance and reduce allocations of LinMPC and KalmanFilter (#45) (@franckgaga)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.20.0
ModelPredictiveControl v0.20.0
- Added: custom estimator for the approximation of the arrival covariance in the MHE
- Changed: MHE based on
NonLinModelnow defaults toUnscentedKalmanFilterfor arrival covariance estimation - Added: tests with custom covariance estimator in the MHE
Merged pull requests: - Added: MHE supports custom estimator for the arrival covariance (#41) (@franckgaga) - added: tests for MHE custom covariance estimator (#42) (@franckgaga)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.19.2
ModelPredictiveControl v0.19.2
Merged pull requests:
- Debug: MHE with NonLinModel update covariance with the correct state estimate (#40) (@franckgaga)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.19.1
ModelPredictiveControl v0.19.1
Merged pull requests: - Minor doc correction and code cleanup (#39) (@franckgaga)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.19.0
ModelPredictiveControl v0.19.0
BREAKING CHANGE
NonLinModel constructor now supposes continuous dynamics by default. Use solver=nothing for discrete-time models.
changelog:
- added: support for NonLinModel with continuous dynamics
- added: 4th order Runge-Kutta solver with 0 allocation
- doc: the pendulum example now use the built-in Runge-Kutta solve
- added some tests with continuous NonLinModel
Merged pull requests:
- starting support of continuous NonLinModel (RK4 only for now) (#38) (@baggepinnen)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.18.1
ModelPredictiveControl v0.18.1
- remove useless allocations for mutating
NonLinModels
Merged pull requests:
- minor doc correction (#36) (@franckgaga)
- Remove useless allocations for in-place NonLinModel (#37) (@franckgaga)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.18.0
ModelPredictiveControl v0.18.0
- added: support for mutating
f!andh!functions inNonLinModelto reduce allocations - doc: added simple example of the
MovingHorizonEstimatorfor the CSTR in the manual
Merged pull requests:
- Update README.md (#27) (@franckgaga)
- Added a MHE example on the CSTR in the manual (#28) (@franckgaga)
- fix wrong function signature ared (#29) (@baggepinnen)
- dummy commit to trigger doc deploy (#30) (@franckgaga)
- doc: minor correction MHE manual (#32) (@franckgaga)
- Added: mutating NonLinModel (#33) (@franckgaga)
- Re-enable precompilation (#34) (@franckgaga)
- bump version (#35) (@franckgaga)
Closed issues: - Docs questions (#22) - Documentation no longer deployed (#26)
- Julia
Published by github-actions[bot] almost 2 years ago
ModelPredictiveControl - v0.17.0
ModelPredictiveControl v0.17.0
- added: support for non-diagonal symmetric
M_Hp,N_HcandL_Hpweights, allowing terminal costs and LQR tuning - doc: added comment on a terminal weight
- reduce allocations for
PredictiveControllers andMovingHorizonEstimator(with in-place operations)
Merged pull requests: - Update README links (#21) (@baggepinnen) - todo: add terminal costs (#23) (@franckgaga) - Update README.md (#24) (@franckgaga) - Added: terminal cost support (#25) (@franckgaga)
- Julia
Published by github-actions[bot] about 2 years ago
ModelPredictiveControl - v0.16.1
ModelPredictiveControl v0.16.1
- added: reduce allocation
NonLinMPC - doc: added internal function
optim_objective - doc: various doc improvements
- Julia
Published by github-actions[bot] about 2 years ago
ModelPredictiveControl - v0.16.0
ModelPredictiveControl v0.16.0
- added: MHE soft constraints with a single slack variable ϵ (a.k.a. equal concern for relaxation, disabled by default thus only hard constraints).
- changed: more concise MPC logging in REPL.
- removed: deprecated arguments for
setconstraint!andNonLinMPC. - doc: hide extended help with
detailsadmonition. - doc: more concise
setconstraint!andExplicitMPCdocumentation.
- Julia
Published by github-actions[bot] about 2 years ago
ModelPredictiveControl - v0.15.0
ModelPredictiveControl v0.15.0
- added: MHE hard constraints on estimated process and sensor noises
- added: MHEs based on
LinModelare now treated as a quadratic optimization instead of nonlinear - added: Plots recipe avoid repeat xlabels for MIMOs
- added:
getinfomethod forMovingHorzionEstimatorfor troubleshooting - debug: update MHE arrival covariance with I/Os at arrival
- improved coverage
Merged pull requests: - Added: MHE with quadratic optim + process and sensor noises bounds (#20) (@franckgaga)
- Julia
Published by github-actions[bot] about 2 years ago
ModelPredictiveControl - v0.14.1
ModelPredictiveControl v0.14.1
- changed: default
P0value not function ofQargument
- Julia
Published by github-actions[bot] about 2 years ago
ModelPredictiveControl - v0.14.0
ModelPredictiveControl v0.14.0
- added:
MovingHorizonEstimatorthat can handle constraints on estimation - added: tests for
MovingHorizonEstimator
Merged pull requests:
- Added: MovingHorizonEstimator with state constraints (#19) (@franckgaga)
- Julia
Published by github-actions[bot] about 2 years ago
ModelPredictiveControl - v0.13.0
ModelPredictiveControl v0.13.0
- added: generic number types in all
SimModel,StateEstimatorandPredictiveControllerobjects (see note below) - changed: faster
ΔU->Uconversion using matrices of floats (instead of booleans) - new tests with
Float32.
Note that most solvers in JuMP only support Float64 numbers. Thus, PredictiveController objects still default to Float64-based optimizers, even if the plant model or state estimator uses other number types.
Merged pull requests:
- Support non-Float64 numbers in all objects (#17) (@franckgaga)
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.12.0
ModelPredictiveControl v0.12.0
- added: linearization of
NonLinModelbased onForwardDiff.jl - doc: example of
linearizeon the pendulum - doc: example of solving MPC with unstable plant model using
DAQP - tests for
linearizefunction
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.11.2
ModelPredictiveControl v0.11.2
- added : time-varying weights over horizons
- tests for time-varying weights
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.11.1
ModelPredictiveControl v0.11.1
- Remove bridges in default JuMP optimizers
- added: Solving time limit at
Tsby default - reduce allocation for
KalmanFilter - reduce allocation for
NonLinMPC - debug : update current output estimation
ŷinŶEargument of economic functionJE
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.11.0
ModelPredictiveControl v0.11.0
- Doc : add an economic MPC example on the inverted pendulum
- Doc : update figures for the CSTR and the pendulum
- Added : error log when the termination status means "no solution available"
- Added : more precise log in REPL (warning: we keep the solution anyway, error: we take the last solution)
- Added : do not compute input setpoints
R̂uifmpc.noR̂u - Changed : time-varying ECR parameters with a capital
C
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.10.3
ModelPredictiveControl v0.10.3
- Debug: terminal constraints on
NonLinMPCnow work - Added: unit tests for terminal constraints on
NonLinMPC - Added: reduce allocation for
NonLinMPCbased onNonLinModel
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.10.2
ModelPredictiveControl v0.10.2
- Added: plant instrumentation figures in manual
default_nintreturns 0 withnint_uforNonLinModel
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.10.1
ModelPredictiveControl v0.10.1
- Doc cleaning for terminal constraints
- Added standard libraries
[compat]entries - Removed hats in ymin/max plot legends
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.10.0
ModelPredictiveControl v0.10.0
Merged pull requests: - Added : terminal constraints (#16) (@franckgaga)
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.9.1
ModelPredictiveControl v0.9.1
- Reduce allocations for
NonLinMPC - Update documentation with
Documenter.jllast version
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.9.0
ModelPredictiveControl v0.9.0
- Added: support for modifying constraints at runtime
- Added: support for time-varying constraints over prediction/control horizon
- new tests for constraint handling
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.8.6
ModelPredictiveControl v0.8.6
- Added: bumpless transfer for all
StateEstimatorbased onLinModel(incl.InternalModel) - reduce allocation for
NonLinMPCwith in-place functions - doc clarity improvements and minor debug
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.8.5
ModelPredictiveControl v0.8.5
- Added: nonconstant manipulated input setpoints
- Added: additionnal keyword arguments of controller constructors are passed to estimator constructor
- Doc correction et additional tests
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.8.4
ModelPredictiveControl v0.8.4
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.8.3
ModelPredictiveControl v0.8.3
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.8.2
ModelPredictiveControl v0.8.2
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.8.1
ModelPredictiveControl v0.8.1
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.8.0
ModelPredictiveControl v0.8.0
Merged pull requests: - Added support for unmeasured disturbances at model manipulated inputs. (#15) (@franckgaga)
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.7.0
ModelPredictiveControl v0.7.0
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.6.6
ModelPredictiveControl v0.6.6
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.6.5
ModelPredictiveControl v0.6.5
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.6.4
ModelPredictiveControl v0.6.4
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.6.3
ModelPredictiveControl v0.6.3
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.6.2
ModelPredictiveControl v0.6.2
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.6.1
ModelPredictiveControl v0.6.1
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.6.0
ModelPredictiveControl v0.6.0
Merged pull requests: - CompatHelper: add new compat entry for ForwardDiff at version 0.10, (keep existing compat) (#14) (@github-actions[bot])
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.10
ModelPredictiveControl v0.5.10
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.9
ModelPredictiveControl v0.5.9
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.8
ModelPredictiveControl v0.5.8
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.7
ModelPredictiveControl v0.5.7
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.6
ModelPredictiveControl v0.5.6
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.5
ModelPredictiveControl v0.5.5
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.4
ModelPredictiveControl v0.5.4
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.3
ModelPredictiveControl v0.5.3
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.2
ModelPredictiveControl v0.5.2
- Julia
Published by github-actions[bot] over 2 years ago
ModelPredictiveControl - v0.5.1
ModelPredictiveControl v0.5.1
Merged pull requests: - CompatHelper: add new compat entry for PreallocationTools at version 0.4, (keep existing compat) (#12) (@github-actions[bot]) - CompatHelper: add new compat entry for RecipesBase at version 1, (keep existing compat) (#13) (@github-actions[bot])
- Julia
Published by github-actions[bot] almost 3 years ago
ModelPredictiveControl - v0.5.0
ModelPredictiveControl v0.5.0
- Julia
Published by github-actions[bot] almost 3 years ago
ModelPredictiveControl - v0.4.1
ModelPredictiveControl v0.4.1
- Julia
Published by github-actions[bot] almost 3 years ago
ModelPredictiveControl - v0.4.0
ModelPredictiveControl v0.4.0
Merged pull requests: - CompatHelper: add new compat entry for PrecompileTools at version 1, … (#11) (@franckgaga)
- Julia
Published by github-actions[bot] almost 3 years ago
ModelPredictiveControl - v0.3.6
ModelPredictiveControl v0.3.6
- Julia
Published by github-actions[bot] almost 3 years ago
ModelPredictiveControl - v0.3.5
ModelPredictiveControl v0.3.5
- Julia
Published by github-actions[bot] almost 3 years ago
ModelPredictiveControl - v0.3.4
ModelPredictiveControl v0.3.4
- Julia
Published by github-actions[bot] almost 3 years ago
ModelPredictiveControl - v0.3.3
ModelPredictiveControl v0.3.3
- Julia
Published by github-actions[bot] almost 3 years ago
ModelPredictiveControl - v0.3.2
ModelPredictiveControl v0.3.2
- Julia
Published by github-actions[bot] almost 3 years ago