@@ -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])
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 )
452+     f, dvs, ps, io_sys =  ModelingToolkit. generate_control_function (sys)
450453    @test  f[1 ]([0.5 ], nothing , MTKParameters (io_sys, []), 0.0 ) ≈  [1.0 ]
451454end 
452455
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