@@ -22,13 +22,14 @@ using ModelingToolkit: D_nounits as D, t_nounits as t, varmap_to_vars
22
22
end
23
23
@named model = Pendulum ()
24
24
model = complete (model)
25
-
26
25
inputs = [model. τ]
27
- (f_oop, f_ip), dvs, psym, io_sys = ModelingToolkit. generate_control_function (
28
- model, inputs, split = false )
29
-
30
26
outputs = [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)
32
33
33
34
expected_state_order = [model. θ, model. ω]
34
35
permutation = [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,
64
65
# Trace the dynamics
65
66
x0, p = ModelingToolkit. get_u0_p (io_sys, [model. θ => 0 , model. ω => 0 ], [model. L => L])
66
67
67
- xp = f_oop (x, u, p, τ)
68
+ xp = f (x, u, p, τ)
68
69
cp = f_obs (x, u, p, τ) # Test that it's possible to trace through an observed function
69
70
70
71
@objective (m, Min, tf)
0 commit comments