Skip to content

Commit 527a96b

Browse files
committed
allow scalar IO in linearize
1 parent a0a95b5 commit 527a96b

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

src/systems/abstractsystem.jl

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1285,12 +1285,14 @@ The `simplified_sys` has undergone [`structural_simplify`](@ref) and had any occ
12851285
See also [`linearize`](@ref) which provides a higher-level interface.
12861286
"""
12871287
function linearization_function(sys::AbstractSystem, inputs,
1288-
outputs; simplify = false,
1289-
initialize = true,
1290-
op = Dict(),
1291-
p = DiffEqBase.NullParameters(),
1292-
zero_dummy_der = false,
1293-
kwargs...)
1288+
outputs; simplify = false,
1289+
initialize = true,
1290+
op = Dict(),
1291+
p = DiffEqBase.NullParameters(),
1292+
zero_dummy_der = false,
1293+
kwargs...)
1294+
inputs isa AbstractVector || (inputs = [inputs])
1295+
outputs isa AbstractVector || (outputs = [outputs])
12941296
ssys, diff_idxs, alge_idxs, input_idxs = io_preprocessing(sys, inputs, outputs;
12951297
simplify,
12961298
kwargs...)
@@ -1584,7 +1586,7 @@ lsys_sym, _ = ModelingToolkit.linearize_symbolic(cl, [f.u], [p.x])
15841586
```
15851587
"""
15861588
function linearize(sys, lin_fun; t = 0.0, op = Dict(), allow_input_derivatives = false,
1587-
p = DiffEqBase.NullParameters())
1589+
p = DiffEqBase.NullParameters(), kwargs...)
15881590
x0 = merge(defaults(sys), op)
15891591
u0, p2, _ = get_u0_p(sys, x0, p; use_union = false, tofloat = true)
15901592

test/linearize.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ lsys, ssys = linearize(sys, [r], [r])
2626
@test lsys.C[] == 0
2727
@test lsys.D[] == 1
2828

29+
lsys, ssys = linearize(sys, r, r) # Test allow scalars
30+
31+
@test lsys.A[] == -2
32+
@test lsys.B[] == 1
33+
@test lsys.C[] == 0
34+
@test lsys.D[] == 1
35+
2936
##
3037
```
3138

0 commit comments

Comments
 (0)