@@ -7,10 +7,10 @@ using ModelingToolkit: t_nounits as t, D_nounits as D
77@variables xx (t) some_input (t) [input = true ]
88eqs = [D (xx) ~ some_input]
99@named model = ODESystem (eqs, t)
10- @test_throws ExtraVariablesSystemException structural_simplify (model, ((), ()) )
10+ @test_throws ExtraVariablesSystemException structural_simplify (model)
1111if VERSION >= v " 1.8"
1212 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)
1414end
1515
1616# Test input handling
@@ -88,7 +88,7 @@ fsys4 = flatten(sys4)
8888@variables x (t) y (t) [output = true ]
8989@test isoutput (y)
9090@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
9292
9393@named sys2 = ODESystem ([D (x) ~ - sys. x, y ~ sys. y], t, systems = [sys])
9494
@@ -106,7 +106,7 @@ syss = structural_simplify(sys) # This makes y an observed variable
106106@test isequal (unbound_outputs (sys2), [y])
107107@test isequal (bound_outputs (sys2), [sys. y])
108108
109- syss = structural_simplify (sys2)
109+ syss = structural_simplify (sys2, outputs = [sys . y] )
110110
111111@test ! is_bound (syss, y)
112112@test ! is_bound (syss, x)
165165 ]
166166
167167 @named sys = ODESystem (eqs, t)
168+ sys = structural_simplify (sys, inputs = [u])
168169 f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys; simplify, split)
169170
170171 @test isequal (dvs[], x)
182183 ]
183184
184185 @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)
187188
188189 @test isequal (dvs[], x)
189190 @test isempty (ps)
200201 ]
201202
202203 @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 )
205206
206207 @test isequal (dvs[], x)
207208 @test isempty (ps)
@@ -265,9 +266,9 @@ eqs = [connect_sd(sd, mass1, mass2)
265266@named _model = ODESystem (eqs, t)
266267@named model = compose (_model, mass1, mass2, sd);
267268
269+ model = structural_simplify (model, inputs = [u])
268270f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (model, simplify = true )
269271@test length (dvs) == 4
270- @test length (ps) == length (parameters (model))
271272p = MTKParameters (io_sys, [io_sys. u => NaN ])
272273x = ModelingToolkit. varmap_to_vars (
273274 merge (ModelingToolkit. defaults (model),
@@ -389,7 +390,7 @@ sys = structural_simplify(model)
389390
390391# # Disturbance models when plant has multiple inputs
391392using ModelingToolkit, LinearAlgebra
392- using ModelingToolkit: DisturbanceModel, io_preprocessing, get_iv, get_disturbance_system
393+ using ModelingToolkit: DisturbanceModel, get_iv, get_disturbance_system
393394using ModelingToolkitStandardLibrary. Blocks
394395A, C = [randn (2 , 2 ) for i in 1 : 2 ]
395396B = [1.0 0 ; 0 1.0 ]
@@ -433,6 +434,7 @@ matrices = ModelingToolkit.reorder_unknowns(
433434 ]
434435
435436 @named sys = ODESystem (eqs, t)
437+ sys = structural_simplify (sys, inputs = [u])
436438 (; io_sys,) = ModelingToolkit. generate_control_function (sys, simplify = true )
437439 obsfn = ModelingToolkit. build_explicit_observed_function (
438440 io_sys, [x + u * t]; inputs = [u])
444446 @constants c = 2.0
445447 @variables x (t)
446448 eqs = [D (x) ~ c * x]
447- @named sys = ODESystem (eqs, t, [x], [])
449+ @mtkbuild sys = ODESystem (eqs, t, [x], [])
448450
449- f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys, simplify = true )
451+ f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys)
450452 @test f[1 ]([0.5 ], nothing , MTKParameters (io_sys, []), 0.0 ) ≈ [1.0 ]
451453end
452454
455457 @parameters p (:: Real ) = (x -> 2 x)
456458 eqs = [D (x) ~ - x + p (u)]
457459 @named sys = ODESystem (eqs, t)
458- f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys, simplify = true )
460+ sys = structural_simplify (sys, inputs = [u])
461+ f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys)
459462 p = MTKParameters (io_sys, [])
460463 u = [1.0 ]
461464 x = [1.0 ]
0 commit comments