Skip to content

Commit 52b4253

Browse files
committed
fix: fix linearization tests
1 parent 773d953 commit 52b4253

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/inputoutput.jl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ has_var(ex, x) = x ∈ Set(get_variables(ex))
163163
f, x_sym, p_sym, io_sys = generate_control_function(
164164
sys::AbstractODESystem,
165165
inputs = unbound_inputs(sys),
166-
disturbance_inputs = disturbances(sys);
166+
disturbance_inputs = Any[];
167167
implicit_dae = false,
168168
simplify = false,
169169
)
@@ -317,6 +317,16 @@ function inputs_to_parameters!(state::TransformationState, inputsyms)
317317
@set! sys.unknowns = setdiff(unknowns(sys), keys(input_to_parameters))
318318
ps = parameters(sys)
319319

320+
if inputsyms !== nothing
321+
# Change order of new parameters to correspond to user-provided order in argument `inputs`
322+
d = Dict{Any, Int}()
323+
for (i, inp) in enumerate(new_parameters)
324+
d[inp] = i
325+
end
326+
permutation = [d[i] for i in inputsyms]
327+
new_parameters = new_parameters[permutation]
328+
end
329+
320330
@set! sys.ps = [ps; new_parameters]
321331
@set! state.sys = sys
322332
@set! state.fullvars = new_fullvars

test/downstream/linearize.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,10 @@ connections = [f.y ~ c.r # filtered reference to controller reference
8787

8888
@named cl = ODESystem(connections, t, systems = [f, c, p])
8989

90-
lsys0, ssys = linearize(cl, [f.u], [p.x])
90+
lsys0, ssys = linearize(cl)
9191
desired_order = [f.x, p.x]
9292
lsys = ModelingToolkit.reorder_unknowns(lsys0, unknowns(ssys), desired_order)
93-
lsys1, ssys = linearize(cl, [f.u], [p.x]; autodiff = AutoFiniteDiff())
93+
lsys1, ssys = linearize(cl; autodiff = AutoFiniteDiff())
9494
lsys2 = ModelingToolkit.reorder_unknowns(lsys1, unknowns(ssys), desired_order)
9595

9696
@test lsys.A == lsys2.A == [-2 0; 1 -2]
@@ -266,7 +266,7 @@ closed_loop = ODESystem(connections, t, systems = [model, pid, filt, sensor, r,
266266
filt.xd => 0.0
267267
])
268268

269-
@test_nowarn linearize(closed_loop, :r, :y; warn_empty_op = false)
269+
@test_nowarn linearize(closed_loop; warn_empty_op = false)
270270

271271
# https://discourse.julialang.org/t/mtk-change-in-linearize/115760/3
272272
@mtkmodel Tank_noi begin

0 commit comments

Comments
 (0)