Releases: JuliaControl/ModelPredictiveControl.jl
Releases · JuliaControl/ModelPredictiveControl.jl
v1.1.1
ModelPredictiveControl v1.1.1
- fixed: remove a type-instability in
LinMPC
andNonLinMPC
introduced in v1.1.0 - added: reduce allocations with
PredictiveController
s using new fields inmpc.buffer
object - added: improve performance with 4
iszero_X
fields for eachPredictiveController
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
andNonLinMPC
(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 inControllerWeights
struct (#132) (@franckgaga)
v1.1.0
ModelPredictiveControl v1.1.0
- added: support for custom nonlinear inequality constraints
gc
inNonLinMPC
- added: call
JE
andgc
once inNonLinMPC
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 ofplot
to avoid confusion - tests: new test for custom nonlinear constraint violation
Merged pull requests:
- Added: support for custom nonlinear constraints
gc
inNonLinMPC
(#118) (@franckgaga) - Avoid introducing MPC.plot (#120) (@baggepinnen)
- Custom constraints : add tests (#128) (@franckgaga)
Closed issues:
- plot not working (#119)
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.jl
example - 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:
v1.0.1
ModelPredictiveControl v1.0.1
- 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 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:
v1.0.0
ModelPredictiveControl v1.0.0
- breaking change:
NonLinModel
newp
argument inf
/f!
andh
/h!
function signature - breaking change:
NonLinMPC
newp
argument inJE
function signature - added: support for plant model parameters
$\mathbf{p}$ inNonLinModel
- added: support for economic function parameters
$\mathbf{p}$ inNonLinMPC
- doc: ModelingToolkit integration example on the pendulum model
- test: improve coverage
- debug:
ExplicitMPC
correct 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:
v0.24.1
ModelPredictiveControl v0.24.1
- added: print warning if
preparestate!
is called aftermoveinput!
orevaloutput
with current estimators - added: reduce allocations with
linearize!
- added: reduce allocations with
moveinput!
calls with newbuffer
objects - debug:
evaloutput
onInternalModel
now include current stochastic estimate$\mathbf{\hat{y}_s}$ - test: add test to verify
evaloutput
correctness 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!
, debugInternalModel
, reduce allocPredictiveController
(#102) (@franckgaga)
v0.24.0
ModelPredictiveControl v0.24.0
- breaking change:
MovingHorizonEstimator
now 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:
InternalModel
now produces 0 allocation withpreparestate!
andupdatestate!
calls - tests: new integration tests that compare unconstrained MHE to UKF and KF results
- tests: new integration that compare
LinModel
andNonLinModel
Merged pull requests:
- Added: soft real time utilities (#94) (@franckgaga)
- added: MovingHorizonEstimator support for
direct=true
, initialized withP̂(-1|-1)
(#96) (@franckgaga)
Closed issues:
- Real-time loop tools (#85)
v0.23.1
ModelPredictiveControl v0.23.1
Luenberger
,SteadyKalmanFilter
,KalmanFilter
andUnscentedKalmanFilter
now 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)
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
ym
keyword argument ofmoveinput!
removed (was only forInternalModel
, I now use the newpreparestate!
method)MovingHorizonEstimator
advanced constructor (with complete covariance matrices):covestim
andoptim
are now keyword arguments instead of positional arguments.
Changelog
- added: current form for all
StateEstimator
exceptMovingHorizonEstimator
, to improve accuracy and closed-loop robustness - reduce allocation for
SimModel
andStateEstimator
instances 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 defaultd
argument (#91) (@franckgaga) - added:
SimModelBuffer
andStateEsimatorBuffer
objects to reduce the allocations (#92) (@franckgaga)
v0.22.1
ModelPredictiveControl v0.22.1
- added: support for
Mwt
,Nwt
andLwt
keyword 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
andLwt
kwargs insetmodel!
(#86) (@franckgaga)
Closed issues:
- How to successfully impose constraints to a Control Variable with high priority (#78)