@@ -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