Releases: JuliaControl/ModelPredictiveControl.jl
Releases · JuliaControl/ModelPredictiveControl.jl
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̂max
for MHE - debug:
RungeKutta
diff cache chuck sizenx+2
- doc: added
plot
recipe documentation (for keyword arguments) - tests: unconstrained MHE vs KF/UKF tests
Merged pull requests:
- debug:
RungeKutta
diff cache chuck sizenx+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)
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
Ru
instead ofRy
foru
setpoint (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)
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:
linearize
andsetop!
now support non-equilibrium points - Added: successive linearization MPC with the new
setmodel!
andlinearize
functions - Added: successive linearization MHE with the new
setmodel!
andlinearize
functions - Added:
linearize!
method for in-place model linearization (to reduce allocations) - Added: 6 args.
LinModel
constructor now support scalars (similarly toss
function) - Added:
ExtendedKalmanFilter
now compute the Jacobians in-place (to reduce allocations) - Changed:
struct
state datax
and state estimatex̂
renamed tox0
andx̂0
- Debug:
ExplicitMPC
with non-Float64
now works - Debug: accept integers in
linearize
arguments - Debug: call
empty!
onJuMP.Model
to support re-construction of MPC instances - Doc: new
setmodel!
,setop!
andlinearize
function documentation - Doc: example of model adaptation with successive linearization on the pendulum (very efficient!)
Merged pull requests:
- Added: adaptatation of
LinMPC
model throughsetmodel!
(#52) (@franckgaga) - Added: adaptation of controller/estimator based on
LinModel
(#54) (@franckgaga) - Added:
setmodel!
forMovingHorizonEstimator
(#55) (@franckgaga)
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
import
s instead ofusing
s
Merged pull requests:
- Changed: avoid
collect
inNonLinMPC
andMovingHorizonEstimator
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
import
s instead ofusing
s (#50) (@franckgaga) - Namespace,
NonLinMPC
andMovingHorizonEsitimator
cleanup (#51) (@franckgaga)
v0.20.1
ModelPredictiveControl v0.20.1
- Reduce allocation for estimator based on
NonLinModel
- Reduce allocations for
LinMPC
andKalmanFilter
- Improve performance of
LinMPC
andMovingHorizonEstimator
with newJuMP
batch 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
andKalmanFilter
(#45) (@franckgaga)
v0.20.0
ModelPredictiveControl v0.20.0
- Added: custom estimator for the approximation of the arrival covariance in the MHE
- Changed: MHE based on
NonLinModel
now defaults toUnscentedKalmanFilter
for 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)
v0.19.2
ModelPredictiveControl v0.19.2
Merged pull requests:
- Debug: MHE with
NonLinModel
update covariance with the correct state estimate (#40) (@franckgaga)
v0.19.1
ModelPredictiveControl v0.19.1
Merged pull requests:
- Minor doc correction and code cleanup (#39) (@franckgaga)
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)
v0.18.1
ModelPredictiveControl v0.18.1
- remove useless allocations for mutating
NonLinModel
s
Merged pull requests:
- minor doc correction (#36) (@franckgaga)
- Remove useless allocations for in-place
NonLinModel
(#37) (@franckgaga)