Closed
Description
Flattening a system that contains connect
statements produces an invalid system
julia> structural_simplify(sys_outer)
Model outer with 7 equations
...
julia> structural_simplify(ModelingToolkit.flatten(sys_outer))
ERROR: ExtraVariablesSystemException: The system is unbalanced. There are 19 highest order derivative variables and 13 equations.
More variables than equations, here are the potential extra variable(s):
F₊x(t)
inner₊P₊x(t)
inner₊P₊input₊u(t)
inner₊C₊input₊u(t)
inner₊add₊input2₊u(t)
add₊input2₊u(t)
C₊input₊u(t)
P₊input₊u(t)
Stacktrace:
Connections like connect(P.output, add.input2)
should have been turned into connect(inner.P.output, inner.add.input2)
julia> equations(ModelingToolkit.flatten(sys_outer))
18-element Vector{Equation}:
connect(r.output, F.input)
connect(F.output, inner.add.input1)
F₊u(t) ~ F₊input₊u(t)
F₊y(t) ~ F₊output₊u(t)
Differential(t)(F₊x(t)) ~ (F₊k*F₊u(t) - F₊x(t)) / F₊T
F₊y(t) ~ F₊x(t)
connect(P.output, add.input2)
connect(add.output, C.input)
connect(C.output, P.input)
inner₊P₊u(t) ~ inner₊P₊input₊u(t)
inner₊P₊y(t) ~ inner₊P₊output₊u(t)
Differential(t)(inner₊P₊x(t)) ~ (inner₊P₊k*inner₊P₊u(t) - inner₊P₊x(t)) / inner₊P₊T
inner₊P₊y(t) ~ inner₊P₊x(t)
inner₊C₊u(t) ~ inner₊C₊input₊u(t)
inner₊C₊y(t) ~ inner₊C₊output₊u(t)
inner₊C₊y(t) ~ inner₊C₊k*inner₊C₊u(t)
inner₊add₊output₊u(t) ~ inner₊add₊k1*inner₊add₊input1₊u(t) + inner₊add₊k2*inner₊add₊input2₊u(t)
r₊output₊u(t) ~ r₊k
This also applies to namespace_equations(sys)
Metadata
Metadata
Assignees
Labels
No labels