Skip to content

Commit d458e6e

Browse files
committed
bump version
1 parent bd23b20 commit d458e6e

File tree

5 files changed

+9
-7
lines changed

5 files changed

+9
-7
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ModelPredictiveControl"
22
uuid = "61f9bdb8-6ae4-484a-811f-bbf86720c31c"
33
authors = ["Francis Gagnon"]
4-
version = "0.7.1"
4+
version = "0.8.0"
55

66
[deps]
77
ControlSystemsBase = "aaaaaaaa-a6ca-5380-bf3e-84a91bcd477e"

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ for more detailed examples.
9393
- [x] supported feedback strategy:
9494
- [x] state estimator (see State Estimation features)
9595
- [x] internal model structure with a custom stochastic model
96-
- [x] offset-free tracking with a single or multiple integrators on measured outputs
96+
- [x] automatic model augmentation with integrating states for offset-free tracking
9797
- [x] support for unmeasured model outputs
9898
- [x] feedforward action with measured disturbances that supports direct transmission
9999
- [x] custom predictions for:
@@ -115,7 +115,9 @@ for more detailed examples.
115115
- [x] extended Kalman filter
116116
- [x] unscented Kalman filter
117117
- [ ] moving horizon estimator
118-
- [x] automatic model augmentation for offset-free tracking
118+
- [x] easily estimate unmeasured disturbances by adding one or more integrators at the:
119+
- [x] manipulated inputs
120+
- [x] measured outputs
119121
- [x] observers in predictor form to ease control applications
120122
- [ ] moving horizon estimator that supports:
121123
- [ ] inequality state constraints

docs/src/manual/nonlinmpc.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ plot(sim!(model, 60, u), plotu=false)
5959
An [`UnscentedKalmanFilter`](@ref) estimates the plant state :
6060

6161
```@example 1
62-
estim = UnscentedKalmanFilter(model, σQ=[0.1, 0.5], σR=[0.5], nint_ym=[1], σQ_int=[5.0])
62+
estim = UnscentedKalmanFilter(model, σQ=[0.1, 0.5], σR=[0.5], nint_ym=[1], σQint_ym=[5.0])
6363
```
6464

6565
The standard deviation of the angular velocity ``ω`` is higher here (`σQ` second value)
@@ -75,7 +75,7 @@ plot(res, plotu=false, plotxwithx̂=true)
7575
```
7676

7777
The estimate ``x̂_3`` is the integrator state that compensates for static errors (`nint_ym`
78-
and `σQ_int` parameters of [`UnscentedKalmanFilter`](@ref)). The Kalman filter performance
78+
and `σQint_ym` parameters of [`UnscentedKalmanFilter`](@ref)). The Kalman filter performance
7979
seems sufficient for control. As the motor torque is limited to -1.5 to 1.5 N m, we
8080
incorporate the input constraints in a [`NonLinMPC`](@ref):
8181

src/controller/nonlinmpc.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ Use custom state estimator `estim` to construct `NonLinMPC`.
168168
```jldoctest
169169
julia> model = NonLinModel((x,u,_)->0.5x+u, (x,_)->2x, 10.0, 1, 1, 1);
170170
171-
julia> estim = UnscentedKalmanFilter(model, σQ_int=[0.05]);
171+
julia> estim = UnscentedKalmanFilter(model, σQint_ym=[0.05]);
172172
173173
julia> mpc = NonLinMPC(estim, Hp=20, Hc=1, Cwt=1e6)
174174
NonLinMPC controller with a sample time Ts = 10.0 s, Ipopt optimizer, UnscentedKalmanFilter estimator and:

test/test_state_estim.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ end
9090
@test kalmanfilter5. Hermitian(diagm(Float64[1, 4, 9 ,16, 25, 36]))
9191
@test kalmanfilter5. Hermitian(diagm(Float64[49, 64]))
9292

93-
kalmanfilter6 = KalmanFilter(linmodel2, σP0=[1,2,3,4], σP0_int=[5,6])
93+
kalmanfilter6 = KalmanFilter(linmodel2, σP0=[1,2,3,4], σP0int_ym=[5,6])
9494
@test kalmanfilter6.P̂0 Hermitian(diagm(Float64[1, 4, 9 ,16, 25, 36]))
9595
@test kalmanfilter6. Hermitian(diagm(Float64[1, 4, 9 ,16, 25, 36]))
9696
@test kalmanfilter6.P̂0 !== kalmanfilter6.

0 commit comments

Comments
 (0)