@@ -501,9 +501,9 @@ where `x` are differential unknown variables, `z` algebraic variables, `u` input
501501"""
502502function linearize_symbolic (sys:: AbstractSystem , inputs,
503503 outputs; simplify = false , allow_input_derivatives = false ,
504- eval_expression = false , eval_module = @__MODULE__ ,
504+ eval_expression = false , eval_module = @__MODULE__ , split = true ,
505505 kwargs... )
506- sys = mtkcompile (sys; inputs, outputs, simplify, kwargs... )
506+ sys = mtkcompile (sys; inputs, outputs, simplify, split, kwargs... )
507507 diff_idxs, alge_idxs = eq_idxs (sys)
508508 sts = unknowns (sys)
509509 t = get_iv (sys)
@@ -512,10 +512,15 @@ function linearize_symbolic(sys::AbstractSystem, inputs,
512512
513513 fun_expr = generate_rhs (sys; expression = Val{true })[1 ]
514514 fun = eval_or_rgf (fun_expr; eval_expression, eval_module)
515- dx = fun (sts, p, t)
516-
515+
517516 h = build_explicit_observed_function (sys, outputs; eval_expression, eval_module)
518- y = h (sts, p, t)
517+ if split
518+ dx = fun (sts, p, t)
519+ y = h (sts, p, t)
520+ else
521+ dx = fun (sts, p... , t)
522+ y = h (sts, p... , t)
523+ end
519524
520525 fg_xz = Symbolics. jacobian (dx, sts)
521526 fg_u = Symbolics. jacobian (dx, inputs)
0 commit comments