@@ -22,13 +22,14 @@ using ModelingToolkit: D_nounits as D, t_nounits as t, varmap_to_vars
2222end 
2323@named  model =  Pendulum ()
2424model =  complete (model)
25- 
2625inputs =  [model. τ]
27- (f_oop, f_ip), dvs, psym, io_sys =  ModelingToolkit. generate_control_function (
28-     model, inputs, split =  false )
29- 
3026outputs =  [model. y]
31- f_obs =  ModelingToolkit. build_explicit_observed_function (io_sys, outputs; inputs =  inputs)
27+ model, _ =  structural_simplify (model, (inputs, outputs))
28+ 
29+ f, dvs, psym, io_sys =  ModelingToolkit. generate_control_function (
30+     model, split =  false )
31+ 
32+ f_obs =  ModelingToolkit. build_explicit_observed_function (io_sys, outputs; inputs)
3233
3334expected_state_order =  [model. θ, model. ω]
3435permutation =  [findfirst (isequal (x), expected_state_order) for  x in  dvs] #  This maps our expected state order to the actual state order
@@ -64,7 +65,7 @@ InfiniteOpt.@variables(m,
6465#  Trace the dynamics
6566x0, p =  ModelingToolkit. get_u0_p (io_sys, [model. θ =>  0 , model. ω =>  0 ], [model. L =>  L])
6667
67- xp =  f_oop (x, u, p, τ)
68+ xp =  f (x, u, p, τ)
6869cp =  f_obs (x, u, p, τ) #  Test that it's possible to trace through an observed function
6970
7071@objective (m, Min, tf)
0 commit comments