@@ -1090,8 +1090,8 @@ function markio!(state, inputs, outputs)
1090
1090
end
1091
1091
1092
1092
"""
1093
- (; A, B, C, D), simplified_sys = linearize(sys, inputs, outputs; op = Dict(), allow_input_derivatives = false, kwargs...)
1094
- (; A, B, C, D) = linearize(simplified_sys, lin_fun; op = Dict(), allow_input_derivatives = false)
1093
+ (; A, B, C, D), simplified_sys = linearize(sys, inputs, outputs; t=0.0, op = Dict(), allow_input_derivatives = false, kwargs...)
1094
+ (; A, B, C, D) = linearize(simplified_sys, lin_fun; t=0.0, op = Dict(), allow_input_derivatives = false)
1095
1095
1096
1096
Return a NamedTuple with the matrices of a linear statespace representation
1097
1097
on the form
@@ -1179,10 +1179,12 @@ lsys = ModelingToolkit.reorder_states(lsys, states(ssys), desired_order)
1179
1179
@assert lsys.D[] == 0
1180
1180
```
1181
1181
"""
1182
- function linearize (sys, lin_fun; op = Dict (), allow_input_derivatives = false )
1182
+ function linearize (sys, lin_fun; t = 0.0 , op = Dict (), allow_input_derivatives = false ,
1183
+ p = DiffEqBase. NullParameters ())
1183
1184
x0 = merge (defaults (sys), op)
1184
- prob = ODEProblem (sys, x0, (0.0 , 1.0 ))
1185
- linres = lin_fun (prob. u0, prob. p, 0.0 )
1185
+ f, u0, p = process_DEProblem (ODEFunction{true }, sys, x0, p)
1186
+
1187
+ linres = lin_fun (u0, p, t)
1186
1188
f_x, f_z, g_x, g_z, f_u, g_u, h_x, h_z, h_u = linres
1187
1189
1188
1190
nx, nu = size (f_u)
0 commit comments