Skip to content

Commit 9f27aca

Browse files
committed
bump version
1 parent 58a5557 commit 9f27aca

File tree

2 files changed

+46
-15
lines changed

2 files changed

+46
-15
lines changed

Project.toml

+1-1
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.12.0"
4+
version = "0.13.0"
55

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

test/test_state_estim.jl

+45-14
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,11 @@ end
9696
updatestate!(skalmanfilter2, [10, 50], [51, 32])
9797
end
9898
@test skalmanfilter2() [51, 32] atol=1e-3
99+
linmodel3 = LinModel{Float32}(0.5*ones(1,1), ones(1,1), ones(1,1), zeros(1,0), zeros(1,0), 1.0)
100+
skalmanfilter3 = SteadyKalmanFilter(linmodel3)
101+
= updatestate!(skalmanfilter3, [0], [0])
102+
@test [0, 0]
103+
@test isa(x̂, Vector{Float32})
99104
@test_throws ArgumentError updatestate!(skalmanfilter1, [10, 50])
100105
end
101106

@@ -152,23 +157,23 @@ end
152157

153158
@testset "KalmanFilter estimator methods" begin
154159
linmodel1 = setop!(LinModel(sys,Ts,i_u=[1,2]), uop=[10,50], yop=[50,30])
155-
lo1 = KalmanFilter(linmodel1)
156-
@test updatestate!(lo1, [10, 50], [50, 30]) zeros(4)
157-
@test updatestate!(lo1, [10, 50], [50, 30], Float64[]) zeros(4)
158-
@test lo1. zeros(4)
159-
@test evaloutput(lo1) lo1() [50, 30]
160-
@test evaloutput(lo1, Float64[]) lo1(Float64[]) [50, 30]
161-
@test initstate!(lo1, [10, 50], [50, 30+1]) [zeros(3); [1]]
162-
setstate!(lo1, [1,2,3,4])
163-
@test lo1. [1,2,3,4]
160+
kalmanfilter1 = KalmanFilter(linmodel1)
161+
@test updatestate!(kalmanfilter1, [10, 50], [50, 30]) zeros(4)
162+
@test updatestate!(kalmanfilter1, [10, 50], [50, 30], Float64[]) zeros(4)
163+
@test kalmanfilter1. zeros(4)
164+
@test evaloutput(kalmanfilter1) kalmanfilter1() [50, 30]
165+
@test evaloutput(kalmanfilter1, Float64[]) kalmanfilter1(Float64[]) [50, 30]
166+
@test initstate!(kalmanfilter1, [10, 50], [50, 30+1]) [zeros(3); [1]]
167+
setstate!(kalmanfilter1, [1,2,3,4])
168+
@test kalmanfilter1. [1,2,3,4]
164169
for i in 1:1000
165-
updatestate!(lo1, [11, 52], [50, 30])
170+
updatestate!(kalmanfilter1, [11, 52], [50, 30])
166171
end
167-
@test lo1() [50, 30] atol=1e-3
172+
@test kalmanfilter1() [50, 30] atol=1e-3
168173
for i in 1:100
169-
updatestate!(lo1, [10, 50], [51, 32])
174+
updatestate!(kalmanfilter1, [10, 50], [51, 32])
170175
end
171-
@test lo1() [51, 32] atol=1e-3
176+
@test kalmanfilter1() [51, 32] atol=1e-3
172177
kalmanfilter2 = KalmanFilter(linmodel1, nint_u=[1, 1])
173178
for i in 1:100
174179
updatestate!(kalmanfilter2, [11, 52], [50, 30])
@@ -178,7 +183,12 @@ end
178183
updatestate!(kalmanfilter2, [10, 50], [51, 32])
179184
end
180185
@test kalmanfilter2() [51, 32] atol=1e-3
181-
@test_throws ArgumentError updatestate!(lo1, [10, 50])
186+
linmodel3 = LinModel{Float32}(0.5*ones(1,1), ones(1,1), ones(1,1), zeros(1,0), zeros(1,0), 1.0)
187+
kalmanfilter3 = KalmanFilter(linmodel3)
188+
= updatestate!(kalmanfilter3, [0], [0])
189+
@test [0, 0]
190+
@test isa(x̂, Vector{Float32})
191+
@test_throws ArgumentError updatestate!(kalmanfilter1, [10, 50])
182192
end
183193

184194
@testset "Luenberger construction" begin
@@ -249,6 +259,11 @@ end
249259
updatestate!(lo2, [10, 50], [51, 32])
250260
end
251261
@test lo2() [51, 32] atol=1e-3
262+
linmodel3 = LinModel{Float32}(0.5*ones(1,1), ones(1,1), ones(1,1), zeros(1,0), zeros(1,0), 1.0)
263+
lo3 = Luenberger(linmodel3)
264+
= updatestate!(lo3, [0], [0])
265+
@test [0, 0]
266+
@test isa(x̂, Vector{Float32})
252267
end
253268

254269
@testset "InternalModel construction" begin
@@ -339,6 +354,12 @@ end
339354
@test internalmodel1.x̂s zeros(2)
340355
setstate!(internalmodel1, [1,2])
341356
@test internalmodel1. [1,2]
357+
358+
linmodel3 = LinModel{Float32}(0.5*ones(1,1), ones(1,1), ones(1,1), zeros(1,0), zeros(1,0), 1.0)
359+
internalmodel3 = InternalModel(linmodel3)
360+
= updatestate!(internalmodel3, [0], [0])
361+
@test [0]
362+
@test isa(x̂, Vector{Float32})
342363
end
343364

344365
@testset "UnscentedKalmanFilter construction" begin
@@ -429,6 +450,11 @@ end
429450
updatestate!(ukf2, [10, 50], [51, 32])
430451
end
431452
@test ukf2() [51, 32] atol=1e-3
453+
linmodel3 = LinModel{Float32}(0.5*ones(1,1), ones(1,1), ones(1,1), zeros(1,0), zeros(1,0), 1.0)
454+
ukf3 = UnscentedKalmanFilter(linmodel3)
455+
= updatestate!(ukf3, [0], [0])
456+
@test [0, 0]
457+
@test isa(x̂, Vector{Float32})
432458
end
433459

434460
@testset "ExtendedKalmanFilter construction" begin
@@ -515,4 +541,9 @@ end
515541
updatestate!(ekf2, [10, 50], [51, 32])
516542
end
517543
@test ekf2() [51, 32] atol=1e-3
544+
linmodel3 = LinModel{Float32}(0.5*ones(1,1), ones(1,1), ones(1,1), zeros(1,0), zeros(1,0), 1.0)
545+
ekf3 = ExtendedKalmanFilter(linmodel3)
546+
= updatestate!(ekf3, [0], [0])
547+
@test [0, 0]
548+
@test isa(x̂, Vector{Float32})
518549
end

0 commit comments

Comments
 (0)