11struct SteadyKalmanFilter{NT<: Real , SM<: LinModel } <: StateEstimator{NT}
22 model:: SM
3- lastu0:: Vector{NT}
43 x̂op :: Vector{NT}
54 f̂op :: Vector{NT}
65 x̂0 :: Vector{NT}
@@ -56,14 +55,13 @@ struct SteadyKalmanFilter{NT<:Real, SM<:LinModel} <: StateEstimator{NT}
5655 rethrow()
5756 end
5857 end
59- lastu0 = zeros(NT, nu)
6058 x̂0 = [zeros(NT, model. nx); zeros(NT, nxs)]
6159 Q̂, R̂ = Hermitian(Q̂, :L), Hermitian(R̂, :L)
6260 corrected = [false ]
6361 buffer = StateEstimatorBuffer{NT}(nu, nx̂, nym, ny, nd, nk)
6462 return new{NT, SM}(
6563 model,
66- lastu0, x̂op, f̂op, x̂0,
64+ x̂op, f̂op, x̂0,
6765 i_ym, nx̂, nym, nyu, nxs,
6866 As, Cs_u, Cs_y, nint_u, nint_ym,
6967 Â, B̂u, Ĉ, B̂d, D̂d, Ĉm, D̂dm,
279277
280278struct KalmanFilter{NT<: Real , SM<: LinModel } <: StateEstimator{NT}
281279 model:: SM
282- lastu0:: Vector{NT}
283280 x̂op:: Vector{NT}
284281 f̂op:: Vector{NT}
285282 x̂0 :: Vector{NT}
@@ -319,7 +316,6 @@ struct KalmanFilter{NT<:Real, SM<:LinModel} <: StateEstimator{NT}
319316 Â, B̂u, Ĉ, B̂d, D̂d, x̂op, f̂op = augment_model(model, As, Cs_u, Cs_y)
320317 Ĉm, D̂dm = Ĉ[i_ym, :], D̂d[i_ym, :]
321318 validate_kfcov(nym, nx̂, Q̂, R̂, P̂_0)
322- lastu0 = zeros(NT, nu)
323319 x̂0 = [zeros(NT, model. nx); zeros(NT, nxs)]
324320 Q̂, R̂ = Hermitian(Q̂, :L), Hermitian(R̂, :L)
325321 P̂_0 = Hermitian(P̂_0, :L)
@@ -329,7 +325,7 @@ struct KalmanFilter{NT<:Real, SM<:LinModel} <: StateEstimator{NT}
329325 buffer = StateEstimatorBuffer{NT}(nu, nx̂, nym, ny, nd, nk)
330326 return new{NT, SM}(
331327 model,
332- lastu0, x̂op, f̂op, x̂0, P̂,
328+ x̂op, f̂op, x̂0, P̂,
333329 i_ym, nx̂, nym, nyu, nxs,
334330 As, Cs_u, Cs_y, nint_u, nint_ym,
335331 Â, B̂u, Ĉ, B̂d, D̂d, Ĉm, D̂dm,
493489
494490struct UnscentedKalmanFilter{NT<: Real , SM<: SimModel } <: StateEstimator{NT}
495491 model:: SM
496- lastu0:: Vector{NT}
497492 x̂op :: Vector{NT}
498493 f̂op :: Vector{NT}
499494 x̂0 :: Vector{NT}
@@ -543,7 +538,6 @@ struct UnscentedKalmanFilter{NT<:Real, SM<:SimModel} <: StateEstimator{NT}
543538 Ĉm, D̂dm = Ĉ[i_ym, :], D̂d[i_ym, :]
544539 validate_kfcov(nym, nx̂, Q̂, R̂, P̂_0)
545540 nσ, γ, m̂, Ŝ = init_ukf(model, nx̂, α, β, κ)
546- lastu0 = zeros(NT, nu)
547541 x̂0 = [zeros(NT, model. nx); zeros(NT, nxs)]
548542 Q̂, R̂ = Hermitian(Q̂, :L), Hermitian(R̂, :L)
549543 P̂_0 = Hermitian(P̂_0, :L)
@@ -556,7 +550,7 @@ struct UnscentedKalmanFilter{NT<:Real, SM<:SimModel} <: StateEstimator{NT}
556550 buffer = StateEstimatorBuffer{NT}(nu, nx̂, nym, ny, nd, nk)
557551 return new{NT, SM}(
558552 model,
559- lastu0, x̂op, f̂op, x̂0, P̂,
553+ x̂op, f̂op, x̂0, P̂,
560554 i_ym, nx̂, nym, nyu, nxs,
561555 As, Cs_u, Cs_y, nint_u, nint_ym,
562556 Â, B̂u, Ĉ, B̂d, D̂d, Ĉm, D̂dm,
@@ -879,7 +873,6 @@ struct ExtendedKalmanFilter{
879873 LF<:Function
880874} <: StateEstimator{NT}
881875 model::SM
882- lastu0::Vector{NT}
883876 x̂op ::Vector{NT}
884877 f̂op ::Vector{NT}
885878 x̂0 ::Vector{NT}
@@ -925,7 +918,6 @@ struct ExtendedKalmanFilter{
925918 Â, B̂u, Ĉ, B̂d, D̂d, x̂op, f̂op = augment_model(model, As, Cs_u, Cs_y)
926919 Ĉm, D̂dm = Ĉ[i_ym, :], D̂d[i_ym, :]
927920 validate_kfcov(nym, nx̂, Q̂, R̂, P̂_0)
928- lastu0 = zeros(NT, nu)
929921 x̂0 = [zeros(NT, model.nx); zeros(NT, nxs)]
930922 Q̂, R̂ = Hermitian(Q̂, :L), Hermitian(R̂, :L)
931923 P̂_0 = Hermitian(P̂_0, :L)
@@ -937,7 +929,7 @@ struct ExtendedKalmanFilter{
937929 buffer = StateEstimatorBuffer{NT}(nu, nx̂, nym, ny, nd, nk)
938930 return new{NT, SM, JB, LF}(
939931 model,
940- lastu0, x̂op, f̂op, x̂0, P̂,
932+ x̂op, f̂op, x̂0, P̂,
941933 i_ym, nx̂, nym, nyu, nxs,
942934 As, Cs_u, Cs_y, nint_u, nint_ym,
943935 Â, B̂u, Ĉ, B̂d, D̂d, Ĉm, D̂dm,
0 commit comments