Skip to content

Commit 635e8d1

Browse files
committed
add test with mutating NonLinModel
1 parent d7085c1 commit 635e8d1

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

test/test_sim_model.jl

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ end
120120

121121
linmodel2 = LinModel(sys,Ts,i_d=[3])
122122
f2(x,u,d) = linmodel2.A*x + linmodel2.Bu*u + linmodel2.Bd*d
123-
h2(x,_) = linmodel2.C*x
123+
h2(x,d) = linmodel2.C*x + linmodel2.Dd*d
124124
nonlinmodel2 = NonLinModel(f2,h2,Ts,2,4,2,1)
125125

126126
@test nonlinmodel2.nx == 4
@@ -133,8 +133,28 @@ end
133133
nonlinmodel2.h!(y,[0,0,0,0],[0])
134134
@test y zeros(2,)
135135

136-
nonlinemodel3 = NonLinModel{Float32}(f2,h2,Ts,2,4,2,1)
137-
@test isa(nonlinemodel3, NonLinModel{Float32})
136+
nonlinmodel3 = NonLinModel{Float32}(f2,h2,Ts,2,4,2,1)
137+
@test isa(nonlinmodel3, NonLinModel{Float32})
138+
139+
function f1!(xnext, x, u, d)
140+
xnext .= 0
141+
mul!(xnext, linmodel2.A, x, 1, 1)
142+
mul!(xnext, linmodel2.Bu, u, 1, 1)
143+
mul!(xnext, linmodel2.Bd, d, 1, 1)
144+
return nothing
145+
end
146+
function h1!(y, x, d)
147+
y .= 0
148+
mul!(y, linmodel2.C, x, 1, 1)
149+
mul!(y, linmodel2.Dd, d, 1, 1)
150+
return nothing
151+
end
152+
nonlinmodel4 = NonLinModel(f1!, h1!, Ts, 2, 4, 2, 1)
153+
xnext, y = similar(nonlinmodel4.x), similar(nonlinmodel4.yop)
154+
nonlinmodel4.f!(xnext,[0,0,0,0],[0,0],[0])
155+
@test xnext zeros(4,)
156+
nonlinmodel4.h!(y,[0,0,0,0],[0])
157+
@test y zeros(2,)
138158

139159
@test_throws ErrorException NonLinModel(
140160
(x,u)->linmodel1.A*x + linmodel1.Bu*u,

0 commit comments

Comments
 (0)