Skip to content

Commit af7b924

Browse files
committed
added: estimated states when printing estimators and controllers
1 parent 18f1cc1 commit af7b924

File tree

10 files changed

+19
-18
lines changed

10 files changed

+19
-18
lines changed

src/controller/construct.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ LinMPC controller with a sample time Ts = 4.0 s, OSQP optimizer, SteadyKalmanFil
4747
10 prediction steps Hp
4848
2 control steps Hc
4949
1 manipulated inputs u (0 integrating states)
50-
2 states x̂
50+
2 estimated states x̂
5151
1 measured outputs ym (1 integrating states)
5252
0 unmeasured outputs yu
5353
0 measured disturbances d

src/controller/explicitmpc.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ ExplicitMPC controller with a sample time Ts = 4.0 s, SteadyKalmanFilter estimat
111111
30 prediction steps Hp
112112
1 control steps Hc
113113
1 manipulated inputs u (0 integrating states)
114-
4 states x̂
114+
4 estimated states x̂
115115
2 measured outputs ym (2 integrating states)
116116
0 unmeasured outputs yu
117117
0 measured disturbances d
@@ -150,7 +150,7 @@ ExplicitMPC controller with a sample time Ts = 4.0 s, KalmanFilter estimator and
150150
30 prediction steps Hp
151151
1 control steps Hc
152152
1 manipulated inputs u (0 integrating states)
153-
3 states x̂
153+
3 estimated states x̂
154154
1 measured outputs ym (1 integrating states)
155155
1 unmeasured outputs yu
156156
0 measured disturbances d

src/controller/linmpc.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ LinMPC controller with a sample time Ts = 4.0 s, OSQP optimizer, SteadyKalmanFil
135135
30 prediction steps Hp
136136
1 control steps Hc
137137
1 manipulated inputs u (0 integrating states)
138-
4 states x̂
138+
4 estimated states x̂
139139
2 measured outputs ym (2 integrating states)
140140
0 unmeasured outputs yu
141141
0 measured disturbances d
@@ -199,7 +199,7 @@ LinMPC controller with a sample time Ts = 4.0 s, OSQP optimizer, KalmanFilter es
199199
30 prediction steps Hp
200200
1 control steps Hc
201201
1 manipulated inputs u (0 integrating states)
202-
3 states x̂
202+
3 estimated states x̂
203203
1 measured outputs ym (1 integrating states)
204204
1 unmeasured outputs yu
205205
0 measured disturbances d

src/controller/nonlinmpc.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ NonLinMPC controller with a sample time Ts = 10.0 s, Ipopt optimizer, UnscentedK
149149
20 prediction steps Hp
150150
1 control steps Hc
151151
1 manipulated inputs u (0 integrating states)
152-
2 states x̂
152+
2 estimated states x̂
153153
1 measured outputs ym (1 integrating states)
154154
0 unmeasured outputs yu
155155
0 measured disturbances d
@@ -224,7 +224,7 @@ NonLinMPC controller with a sample time Ts = 10.0 s, Ipopt optimizer, UnscentedK
224224
20 prediction steps Hp
225225
1 control steps Hc
226226
1 manipulated inputs u (0 integrating states)
227-
2 states x̂
227+
2 estimated states x̂
228228
1 measured outputs ym (1 integrating states)
229229
0 unmeasured outputs yu
230230
0 measured disturbances d

src/estimator/internal_model.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ sum both values : ``\mathbf{ŷ = ŷ_d + ŷ_s}``.
6565
julia> estim = InternalModel(LinModel([tf(3, [30, 1]); tf(-2, [5, 1])], 0.5), i_ym=[2])
6666
InternalModel estimator with a sample time Ts = 0.5 s, LinModel and:
6767
1 manipulated inputs u
68-
2 states x̂
68+
2 estimated states x̂
6969
1 measured outputs ym
7070
1 unmeasured outputs yu
7171
0 measured disturbances d
@@ -266,7 +266,7 @@ function print_estim_dim(io::IO, estim::InternalModel, n)
266266
nu, nd = estim.model.nu, estim.model.nd
267267
nx̂, nym, nyu = estim.nx̂, estim.nym, estim.nyu
268268
println(io, "$(lpad(nu, n)) manipulated inputs u")
269-
println(io, "$(lpad(nx̂, n)) states x̂")
269+
println(io, "$(lpad(nx̂, n)) estimated states x̂")
270270
println(io, "$(lpad(nym, n)) measured outputs ym")
271271
println(io, "$(lpad(nyu, n)) unmeasured outputs yu")
272272
print(io, "$(lpad(nd, n)) measured disturbances d")

src/estimator/kalman.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ julia> model = LinModel([tf(3, [30, 1]); tf(-2, [5, 1])], 0.5);
111111
julia> estim = SteadyKalmanFilter(model, i_ym=[2], σR=[1], σQint_ym=[0.01])
112112
SteadyKalmanFilter estimator with a sample time Ts = 0.5 s, LinModel and:
113113
1 manipulated inputs u (0 integrating states)
114-
3 states x̂
114+
3 estimated states x̂
115115
1 measured outputs ym (1 integrating states)
116116
1 unmeasured outputs yu
117117
0 measured disturbances d
@@ -270,7 +270,7 @@ julia> model = LinModel([tf(3, [30, 1]); tf(-2, [5, 1])], 0.5);
270270
julia> estim = KalmanFilter(model, i_ym=[2], σR=[1], σP0=[100, 100], σQint_ym=[0.01])
271271
KalmanFilter estimator with a sample time Ts = 0.5 s, LinModel and:
272272
1 manipulated inputs u (0 integrating states)
273-
3 states x̂
273+
3 estimated states x̂
274274
1 measured outputs ym (1 integrating states)
275275
1 unmeasured outputs yu
276276
0 measured disturbances d
@@ -431,7 +431,7 @@ julia> model = NonLinModel((x,u,_)->0.1x+u, (x,_)->2x, 10.0, 1, 1, 1);
431431
julia> estim = UnscentedKalmanFilter(model, σR=[1], nint_ym=[2], σP0int_ym=[1, 1])
432432
UnscentedKalmanFilter estimator with a sample time Ts = 10.0 s, NonLinModel and:
433433
1 manipulated inputs u (0 integrating states)
434-
3 states x̂
434+
3 estimated states x̂
435435
1 measured outputs ym (2 integrating states)
436436
0 unmeasured outputs yu
437437
0 measured disturbances d
@@ -665,7 +665,7 @@ julia> model = NonLinModel((x,u,_)->0.2x+u, (x,_)->-3x, 5.0, 1, 1, 1);
665665
julia> estim = ExtendedKalmanFilter(model, σQ=[2], σQint_ym=[2], σP0=[0.1], σP0int_ym=[0.1])
666666
ExtendedKalmanFilter estimator with a sample time Ts = 5.0 s, NonLinModel and:
667667
1 manipulated inputs u (0 integrating states)
668-
2 states x̂
668+
2 estimated states x̂
669669
1 measured outputs ym (1 integrating states)
670670
0 unmeasured outputs yu
671671
0 measured disturbances d

src/estimator/luenberger.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ julia> model = LinModel([tf(3, [30, 1]); tf(-2, [5, 1])], 0.5);
7474
julia> estim = Luenberger(model, nint_ym=[1, 1], p̂=[0.61, 0.62, 0.63, 0.64])
7575
Luenberger estimator with a sample time Ts = 0.5 s, LinModel and:
7676
1 manipulated inputs u (0 integrating states)
77-
4 states x̂
77+
4 estimated states x̂
7878
2 measured outputs ym (2 integrating states)
7979
0 unmeasured outputs yu
8080
0 measured disturbances d

src/estimator/mhe.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ function print_estim_dim(io::IO, estim::MovingHorizonEstimator, n)
155155
He = estim.He
156156
println(io, "$(lpad(He, n)) estimation steps He")
157157
println(io, "$(lpad(nu, n)) manipulated inputs u ($(sum(estim.nint_u)) integrating states)")
158-
println(io, "$(lpad(nx̂, n)) states x̂")
158+
println(io, "$(lpad(nx̂, n)) estimated states x̂")
159159
println(io, "$(lpad(nym, n)) measured outputs ym ($(sum(estim.nint_ym)) integrating states)")
160160
println(io, "$(lpad(nyu, n)) unmeasured outputs yu")
161161
print(io, "$(lpad(nd, n)) measured disturbances d")

src/estimator/mhe/construct.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ the augmented process model and ``\mathbf{R̂}, \mathbf{Q̂}`` covariances. The
5050
# Arguments
5151
- `model::SimModel` : (deterministic) model for the estimations.
5252
- `He=nothing` : estimation horizon ``H_e``, must be specified.
53+
- `Cwt=1e5` : slack variable weight ``C`` (scalar), use `Cwt=Inf` for hard constraints only.
5354
- `optim=default_optim_mhe(model)` : a [`JuMP.Model`](https://jump.dev/JuMP.jl/stable/api/JuMP/#JuMP.Model)
5455
with a quadratic/nonlinear optimizer for solving (default to [`Ipopt`](https://github.com/jump-dev/Ipopt.jl),
5556
or [`OSQP`](https://osqp.org/docs/parsers/jump.html) if `model` is a [`LinModel`](@ref)).
@@ -64,7 +65,7 @@ julia> estim = MovingHorizonEstimator(model, He=5, σR=[1], σP0=[0.01])
6465
MovingHorizonEstimator estimator with a sample time Ts = 10.0 s, Ipopt optimizer, NonLinModel and:
6566
5 estimation steps He
6667
1 manipulated inputs u (0 integrating states)
67-
2 states x̂
68+
2 estimated states x̂
6869
1 measured outputs ym (1 integrating states)
6970
0 unmeasured outputs yu
7071
0 measured disturbances d
@@ -573,7 +574,7 @@ julia> estim = setconstraint!(estim, x̂min=[-50, -50], x̂max=[50, 50])
573574
MovingHorizonEstimator estimator with a sample time Ts = 1.0 s, OSQP optimizer, LinModel and:
574575
3 estimation steps He
575576
1 manipulated inputs u (0 integrating states)
576-
2 states x̂
577+
2 estimated states x̂
577578
1 measured outputs ym (1 integrating states)
578579
0 unmeasured outputs yu
579580
0 measured disturbances d

src/state_estim.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ function print_estim_dim(io::IO, estim::StateEstimator, n)
4545
nu, nd = estim.model.nu, estim.model.nd
4646
nx̂, nym, nyu = estim.nx̂, estim.nym, estim.nyu
4747
println(io, "$(lpad(nu, n)) manipulated inputs u ($(sum(estim.nint_u)) integrating states)")
48-
println(io, "$(lpad(nx̂, n)) states x̂")
48+
println(io, "$(lpad(nx̂, n)) estimated states x̂")
4949
println(io, "$(lpad(nym, n)) measured outputs ym ($(sum(estim.nint_ym)) integrating states)")
5050
println(io, "$(lpad(nyu, n)) unmeasured outputs yu")
5151
print(io, "$(lpad(nd, n)) measured disturbances d")

0 commit comments

Comments
 (0)