@@ -12,6 +12,22 @@ sys = [ tf(1.90,[18.0,1]) tf(1.90,[18.0,1]) tf(1.90,[18.0,1]);
12
12
@test res. X_data[:, 1 ] ≈ zeros (model. nx)
13
13
end
14
14
15
+ @testset " SimModel Plots" begin
16
+ model = LinModel (sys, Ts, i_d= [3 ])
17
+ res = sim! (model, 15 , [1 , 3 ], [- 10 ])
18
+ p = plot (res, plotx= true )
19
+ @test p[1 ][1 ][:x ] ≈ res. T_data
20
+ @test p[1 ][1 ][:y ] ≈ res. Y_data[1 , :]
21
+ @test p[2 ][1 ][:y ] ≈ res. Y_data[2 , :]
22
+ @test p[3 ][1 ][:y ][1 : 2 : end ] ≈ res. U_data[1 , :]
23
+ @test p[4 ][1 ][:y ][1 : 2 : end ] ≈ res. U_data[2 , :]
24
+ @test p[5 ][1 ][:y ] ≈ res. D_data[1 , :]
25
+ @test p[6 ][1 ][:y ] ≈ res. X_data[1 , :]
26
+ @test p[7 ][1 ][:y ] ≈ res. X_data[2 , :]
27
+ @test p[8 ][1 ][:y ] ≈ res. X_data[3 , :]
28
+ @test p[9 ][1 ][:y ] ≈ res. X_data[4 , :]
29
+ end
30
+
15
31
@testset " StateEstimator quick simulation" begin
16
32
estim = SteadyKalmanFilter (LinModel (sys, Ts, i_d= [3 ]))
17
33
res = sim! (estim, 15 )
24
40
@test res. X̂_data[:, 1 ] ≈ zeros (estim. nx̂)
25
41
end
26
42
43
+ @testset " StateEstimator Plots" begin
44
+ estim = SteadyKalmanFilter (LinModel (sys, Ts, i_d= [3 ]))
45
+ res = sim! (estim, 15 , [1 , 3 ], [- 10 ])
46
+ p1 = plot (res, plotx= true )
47
+ @test p1[1 ][1 ][:x ] ≈ res. T_data
48
+ @test p1[end - 3 ][1 ][:y ] ≈ res. X_data[1 ,:]
49
+ @test p1[end - 2 ][1 ][:y ] ≈ res. X_data[2 ,:]
50
+ @test p1[end - 1 ][1 ][:y ] ≈ res. X_data[3 ,:]
51
+ @test p1[end - 0 ][1 ][:y ] ≈ res. X_data[4 ,:]
52
+ p2 = plot (res, plotx̂= true )
53
+ @test p2[1 ][1 ][:x ] ≈ res. T_data
54
+ @test p2[end - 5 ][1 ][:y ] ≈ res. X̂_data[1 ,:]
55
+ @test p2[end - 4 ][1 ][:y ] ≈ res. X̂_data[2 ,:]
56
+ @test p2[end - 3 ][1 ][:y ] ≈ res. X̂_data[3 ,:]
57
+ @test p2[end - 2 ][1 ][:y ] ≈ res. X̂_data[4 ,:]
58
+ @test p2[end - 1 ][1 ][:y ] ≈ res. X̂_data[5 ,:]
59
+ @test p2[end - 0 ][1 ][:y ] ≈ res. X̂_data[6 ,:]
60
+ p3 = plot (res, plotxwithx̂= true )
61
+ @test p3[1 ][1 ][:x ] ≈ res. T_data
62
+ @test p3[end - 5 ][1 ][:y ] ≈ res. X_data[1 ,:]
63
+ @test p3[end - 5 ][2 ][:y ] ≈ res. X̂_data[1 ,:]
64
+ @test p3[end - 4 ][1 ][:y ] ≈ res. X_data[2 ,:]
65
+ @test p3[end - 4 ][2 ][:y ] ≈ res. X̂_data[2 ,:]
66
+ @test p3[end - 3 ][1 ][:y ] ≈ res. X_data[3 ,:]
67
+ @test p3[end - 3 ][2 ][:y ] ≈ res. X̂_data[3 ,:]
68
+ @test p3[end - 2 ][1 ][:y ] ≈ res. X_data[4 ,:]
69
+ @test p3[end - 2 ][2 ][:y ] ≈ res. X̂_data[4 ,:]
70
+ @test p3[end - 1 ][1 ][:y ] ≈ res. X̂_data[5 ,:]
71
+ @test p3[end - 0 ][1 ][:y ] ≈ res. X̂_data[6 ,:]
72
+ end
73
+
27
74
@testset " PredictiveController quick simulation" begin
28
75
mpc = LinMPC (LinModel (sys, Ts, i_d= [3 ]))
29
76
res = sim! (mpc, 15 )
34
81
@test res. D_data[:, 1 ] ≈ mpc. estim. model. dop
35
82
@test res. X_data[:, 1 ] ≈ zeros (mpc. estim. model. nx)
36
83
@test res. X̂_data[:, 1 ] ≈ zeros (mpc. estim. nx̂)
84
+ end
85
+
86
+ @testset " PredictiveController Plots" begin
87
+ mpc = LinMPC (LinModel (sys, Ts, i_d= [3 ]), Lwt= [0.01 , 0.01 ])
88
+ res = sim! (mpc, 15 )
89
+ p1 = plot (res, plotŷ= true )
90
+ @test p1[1 ][1 ][:x ] ≈ res. T_data
91
+ @test p1[1 ][1 ][:y ] ≈ res. Y_data[1 ,:]
92
+ @test p1[1 ][2 ][:y ] ≈ res. Ŷ_data[1 ,:]
93
+ @test p1[2 ][1 ][:y ] ≈ res. Y_data[2 ,:]
94
+ @test p1[2 ][2 ][:y ] ≈ res. Ŷ_data[2 ,:]
95
+ p2 = plot (res, plotx= true )
96
+ @test p2[1 ][1 ][:x ] ≈ res. T_data
97
+ @test p2[end - 3 ][1 ][:y ] ≈ res. X_data[1 ,:]
98
+ @test p2[end - 2 ][1 ][:y ] ≈ res. X_data[2 ,:]
99
+ @test p2[end - 1 ][1 ][:y ] ≈ res. X_data[3 ,:]
100
+ @test p2[end - 0 ][1 ][:y ] ≈ res. X_data[4 ,:]
101
+ p3 = plot (res, plotx̂= true )
102
+ @test p3[1 ][1 ][:x ] ≈ res. T_data
103
+ @test p3[end - 5 ][1 ][:y ] ≈ res. X̂_data[1 ,:]
104
+ @test p3[end - 4 ][1 ][:y ] ≈ res. X̂_data[2 ,:]
105
+ @test p3[end - 3 ][1 ][:y ] ≈ res. X̂_data[3 ,:]
106
+ @test p3[end - 2 ][1 ][:y ] ≈ res. X̂_data[4 ,:]
107
+ @test p3[end - 1 ][1 ][:y ] ≈ res. X̂_data[5 ,:]
108
+ @test p3[end - 0 ][1 ][:y ] ≈ res. X̂_data[6 ,:]
109
+ p4 = plot (res, plotxwithx̂= true )
110
+ @test p4[1 ][1 ][:x ] ≈ res. T_data
111
+ @test p4[end - 5 ][1 ][:y ] ≈ res. X_data[1 ,:]
112
+ @test p4[end - 5 ][2 ][:y ] ≈ res. X̂_data[1 ,:]
113
+ @test p4[end - 4 ][1 ][:y ] ≈ res. X_data[2 ,:]
114
+ @test p4[end - 4 ][2 ][:y ] ≈ res. X̂_data[2 ,:]
115
+ @test p4[end - 3 ][1 ][:y ] ≈ res. X_data[3 ,:]
116
+ @test p4[end - 3 ][2 ][:y ] ≈ res. X̂_data[3 ,:]
117
+ @test p4[end - 2 ][1 ][:y ] ≈ res. X_data[4 ,:]
118
+ @test p4[end - 2 ][2 ][:y ] ≈ res. X̂_data[4 ,:]
119
+ @test p4[end - 1 ][1 ][:y ] ≈ res. X̂_data[5 ,:]
120
+ @test p4[end - 0 ][1 ][:y ] ≈ res. X̂_data[6 ,:]
37
121
end
0 commit comments