@@ -7,10 +7,10 @@ using ModelingToolkit: t_nounits as t, D_nounits as D
7
7
@variables xx (t) some_input (t) [input = true ]
8
8
eqs = [D (xx) ~ some_input]
9
9
@named model = ODESystem (eqs, t)
10
- @test_throws ExtraVariablesSystemException structural_simplify (model, ((), ()) )
10
+ @test_throws ExtraVariablesSystemException structural_simplify (model)
11
11
if VERSION >= v " 1.8"
12
12
err = " In particular, the unset input(s) are:\n some_input(t)"
13
- @test_throws err structural_simplify (model, ((), ()) )
13
+ @test_throws err structural_simplify (model)
14
14
end
15
15
16
16
# Test input handling
@@ -88,7 +88,7 @@ fsys4 = flatten(sys4)
88
88
@variables x (t) y (t) [output = true ]
89
89
@test isoutput (y)
90
90
@named sys = ODESystem ([D (x) ~ - x, y ~ x], t) # both y and x are unbound
91
- syss = structural_simplify (sys) # This makes y an observed variable
91
+ syss = structural_simplify (sys, outputs = [y] ) # This makes y an observed variable
92
92
93
93
@named sys2 = ODESystem ([D (x) ~ - sys. x, y ~ sys. y], t, systems = [sys])
94
94
@@ -106,7 +106,7 @@ syss = structural_simplify(sys) # This makes y an observed variable
106
106
@test isequal (unbound_outputs (sys2), [y])
107
107
@test isequal (bound_outputs (sys2), [sys. y])
108
108
109
- syss = structural_simplify (sys2)
109
+ syss = structural_simplify (sys2, outputs = [sys . y] )
110
110
111
111
@test ! is_bound (syss, y)
112
112
@test ! is_bound (syss, x)
165
165
]
166
166
167
167
@named sys = ODESystem (eqs, t)
168
+ sys = structural_simplify (sys, inputs = [u])
168
169
f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys; simplify, split)
169
170
170
171
@test isequal (dvs[], x)
182
183
]
183
184
184
185
@named sys = ODESystem (eqs, t)
185
- f, dvs, ps, io_sys = ModelingToolkit . generate_control_function (
186
- sys, [u], [d] ; simplify, split)
186
+ sys = structural_simplify (sys, inputs = [u], disturbance_inputs = [d])
187
+ f, dvs, ps, io_sys = ModelingToolkit . generate_control_function (sys ; simplify, split)
187
188
188
189
@test isequal (dvs[], x)
189
190
@test isempty (ps)
200
201
]
201
202
202
203
@named sys = ODESystem (eqs, t)
203
- f, dvs, ps, io_sys = ModelingToolkit . generate_control_function (
204
- sys, [u], [d] ; simplify, split, disturbance_argument = true )
204
+ sys = structural_simplify (sys, inputs = [u], disturbance_inputs = [d])
205
+ f, dvs, ps, io_sys = ModelingToolkit . generate_control_function (sys ; simplify, split, disturbance_argument = true )
205
206
206
207
@test isequal (dvs[], x)
207
208
@test isempty (ps)
@@ -265,9 +266,9 @@ eqs = [connect_sd(sd, mass1, mass2)
265
266
@named _model = ODESystem (eqs, t)
266
267
@named model = compose (_model, mass1, mass2, sd);
267
268
269
+ model = structural_simplify (model, inputs = [u])
268
270
f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (model, simplify = true )
269
271
@test length (dvs) == 4
270
- @test length (ps) == length (parameters (model))
271
272
p = MTKParameters (io_sys, [io_sys. u => NaN ])
272
273
x = ModelingToolkit. varmap_to_vars (
273
274
merge (ModelingToolkit. defaults (model),
@@ -389,7 +390,7 @@ sys = structural_simplify(model)
389
390
390
391
# # Disturbance models when plant has multiple inputs
391
392
using ModelingToolkit, LinearAlgebra
392
- using ModelingToolkit: DisturbanceModel, io_preprocessing, get_iv, get_disturbance_system
393
+ using ModelingToolkit: DisturbanceModel, get_iv, get_disturbance_system
393
394
using ModelingToolkitStandardLibrary. Blocks
394
395
A, C = [randn (2 , 2 ) for i in 1 : 2 ]
395
396
B = [1.0 0 ; 0 1.0 ]
@@ -431,6 +432,7 @@ matrices, ssys = linearize(augmented_sys,
431
432
]
432
433
433
434
@named sys = ODESystem (eqs, t)
435
+ sys = structural_simplify (sys, inputs = [u])
434
436
(; io_sys,) = ModelingToolkit. generate_control_function (sys, simplify = true )
435
437
obsfn = ModelingToolkit. build_explicit_observed_function (
436
438
io_sys, [x + u * t]; inputs = [u])
442
444
@constants c = 2.0
443
445
@variables x (t)
444
446
eqs = [D (x) ~ c * x]
445
- @named sys = ODESystem (eqs, t, [x], [])
447
+ @mtkbuild sys = ODESystem (eqs, t, [x], [])
446
448
447
- f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys, simplify = true )
449
+ f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys)
448
450
@test f[1 ]([0.5 ], nothing , MTKParameters (io_sys, []), 0.0 ) ≈ [1.0 ]
449
451
end
450
452
453
455
@parameters p (:: Real ) = (x -> 2 x)
454
456
eqs = [D (x) ~ - x + p (u)]
455
457
@named sys = ODESystem (eqs, t)
456
- f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys, simplify = true )
458
+ sys = structural_simplify (sys, inputs = [u])
459
+ f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys)
457
460
p = MTKParameters (io_sys, [])
458
461
u = [1.0 ]
459
462
x = [1.0 ]
0 commit comments