Skip to content

Releases: JuliaControl/ModelPredictiveControl.jl

v1.1.1

04 Dec 01:13
e4522fc
Compare
Choose a tag to compare

ModelPredictiveControl v1.1.1

Diff since v1.1.0

  • fixed: remove a type-instability in LinMPC and NonLinMPC introduced in v1.1.0
  • added: reduce allocations with PredictiveControllers using new fields in mpc.buffer object
  • added: improve performance with 4 iszero_X fields for each PredictiveController weight, to skip computations when possible
  • changed: moved all controller weights in mpc.weights struct to improve code re-use
  • test: new custom constraint violation tests that use Ue argument

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)

v1.1.0

27 Nov 14:49
bbb131b
Compare
Choose a tag to compare

ModelPredictiveControl v1.1.0

Diff since v1.0.2

  • added: support for custom nonlinear inequality constraints gc in NonLinMPC
  • added: call JE and gc once in NonLinMPC constructor and show stacktrace if it fails (to guide the user)
  • doc: additional details on vector dimensions
  • doc: documents the dummy function plot_recipe instead of plot to avoid confusion
  • tests: new test for custom nonlinear constraint violation

Merged pull requests:

Closed issues:

  • plot not working (#119)

v1.0.2

14 Nov 21:25
c81fb37
Compare
Choose a tag to compare

ModelPredictiveControl v1.0.2

Diff since v1.0.1

  • changed: removed code related to Julia 1.6 compatibility (1.10 is the new LTS)
  • doc: add compat info to ModelingToolkit.jl example
  • doc: various minor modifications

Merged pull requests:

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)

v1.0.1

03 Oct 21:03
44dba57
Compare
Choose a tag to compare

ModelPredictiveControl v1.0.1

Diff since v1.0.0

  • changed: more precise error for LinModel with non-zero D matrix
  • doc: MTK example error message for non-strictly proper systems
  • doc: MTK example now uses the p argument of NonLinModel
  • doc: remove old stuff that no longer applies
  • doc: various improvements

Merged pull requests:

Closed issues:

  • Better integration with ModellingToolkit (#106)
  • Avoid Matrix Inversion in the MovingHorizonEstimator (#112)

v1.0.0

27 Sep 14:26
3d69e82
Compare
Choose a tag to compare

ModelPredictiveControl v1.0.0

Diff since v0.24.1

  • breaking change: NonLinModel new p argument in f/f! and h/h! function signature
  • breaking change: NonLinMPC new p argument in JE function 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: ExplicitMPC correct error message with the unsupported setconstraint! method
  • added: validate economic function $J_E$ argument signature

Merged pull requests:

Closed issues:

  • Code coverage token secret (#103)
  • Better integration with ModellingToolkit (#106)

v0.24.1

18 Sep 21:24
58e4f1e
Compare
Choose a tag to compare

ModelPredictiveControl v0.24.1

Diff since v0.24.0

  • added: print warning if preparestate! is called after moveinput! or evaloutput with current estimators
  • added: reduce allocations with linearize!
  • added: reduce allocations with moveinput! calls with new buffer objects
  • debug: evaloutput on InternalModel now include current stochastic estimate $\mathbf{\hat{y}_s}$
  • test: add test to verify evaloutput correctness on InternalModel
  • test and precompile: add preparestate! where needed to avoid the warnings
  • doc: various improvements

Merged pull requests:

v0.24.0

05 Sep 21:24
b320658
Compare
Choose a tag to compare

ModelPredictiveControl v0.24.0

Diff since v0.23.1

  • breaking change: MovingHorizonEstimator now default to direct=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: InternalModel now produces 0 allocation with preparestate! and updatestate! calls
  • tests: new integration tests that compare unconstrained MHE to UKF and KF results
  • tests: new integration that compare LinModel and NonLinModel

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)

v0.23.1

13 Aug 22:10
5bdfd14
Compare
Choose a tag to compare

ModelPredictiveControl v0.23.1

Diff since v0.23.0

  • Luenberger, SteadyKalmanFilter, KalmanFilter and UnscentedKalmanFilter now produce 0 allocation with preparestate! and updatestate! 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)

v0.23.0

09 Aug 00:15
d10a731
Compare
Choose a tag to compare

ModelPredictiveControl v0.23.0

Diff since v0.22.1

BREAKING CHANGES

  • preparestate! should be called before solving the MPC optimization with moveinput!
  • current form by default for all StateEstimator
  • ym keyword argument of moveinput! removed (was only for InternalModel, I now use the new preparestate! method)
  • MovingHorizonEstimator advanced constructor (with complete covariance matrices): covestim and optim are now keyword arguments instead of positional arguments.

Changelog

  • added: current form for all StateEstimator except MovingHorizonEstimator, to improve accuracy and closed-loop robustness
  • reduce allocation for SimModeland StateEstimator instances by using internal buffers
  • multiple doc correction

Merged pull requests:

v0.22.1

03 Jul 20:12
fb89cbe
Compare
Choose a tag to compare

ModelPredictiveControl v0.22.1

Diff since v0.22.0

  • added: support for Mwt, Nwt and Lwt keyword arguments in setmodel! (to simplify the API)
  • reduce allocations in setconstraint!
  • minor doc corrections

Merged pull requests:

Closed issues:

  • How to successfully impose constraints to a Control Variable with high priority (#78)