@@ -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)
204+ sys = structural_simplify (sys, inputs = [u], disturbance_inputs = [d])
203205 f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (
204- sys, [u], [d] ; simplify, split, disturbance_argument = true )
206+ sys; simplify, split, disturbance_argument = true )
205207
206208 @test isequal (dvs[], x)
207209 @test isempty (ps)
@@ -265,9 +267,9 @@ eqs = [connect_sd(sd, mass1, mass2)
265267@named _model = ODESystem (eqs, t)
266268@named model = compose (_model, mass1, mass2, sd);
267269
270+ model = structural_simplify (model, inputs = [u])
268271f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (model, simplify = true )
269272@test length (dvs) == 4
270- @test length (ps) == length (parameters (model))
271273p = MTKParameters (io_sys, [io_sys. u => NaN ])
272274x = ModelingToolkit. varmap_to_vars (
273275 merge (ModelingToolkit. defaults (model),
@@ -389,7 +391,7 @@ sys = structural_simplify(model)
389391
390392# # Disturbance models when plant has multiple inputs
391393using ModelingToolkit, LinearAlgebra
392- using ModelingToolkit: DisturbanceModel, io_preprocessing, get_iv, get_disturbance_system
394+ using ModelingToolkit: DisturbanceModel, get_iv, get_disturbance_system
393395using ModelingToolkitStandardLibrary. Blocks
394396A, C = [randn (2 , 2 ) for i in 1 : 2 ]
395397B = [1.0 0 ; 0 1.0 ]
@@ -433,6 +435,7 @@ matrices = ModelingToolkit.reorder_unknowns(
433435 ]
434436
435437 @named sys = ODESystem (eqs, t)
438+ sys = structural_simplify (sys, inputs = [u])
436439 (; io_sys,) = ModelingToolkit. generate_control_function (sys, simplify = true )
437440 obsfn = ModelingToolkit. build_explicit_observed_function (
438441 io_sys, [x + u * t]; inputs = [u])
@@ -444,18 +447,19 @@ end
444447 @constants c = 2.0
445448 @variables x (t)
446449 eqs = [D (x) ~ c * x]
447- @named sys = ODESystem (eqs, t, [x], [])
450+ @mtkbuild sys = ODESystem (eqs, t, [x], [])
448451
449- f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys, simplify = true )
450- @test f ([0.5 ], nothing , MTKParameters (io_sys, []), 0.0 ) ≈ [1.0 ]
452+ f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys)
453+ @test f[ 1 ] ([0.5 ], nothing , MTKParameters (io_sys, []), 0.0 ) ≈ [1.0 ]
451454end
452455
453456@testset " With callable symbolic" begin
454457 @variables x (t)= 0 u (t)= 0 [input = true ]
455458 @parameters p (:: Real ) = (x -> 2 x)
456459 eqs = [D (x) ~ - x + p (u)]
457460 @named sys = ODESystem (eqs, t)
458- f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys, simplify = true )
461+ sys = structural_simplify (sys, inputs = [u])
462+ f, dvs, ps, io_sys = ModelingToolkit. generate_control_function (sys)
459463 p = MTKParameters (io_sys, [])
460464 u = [1.0 ]
461465 x = [1.0 ]
0 commit comments