SystemsModelMerge[{sys1,sys2,…}]
merges the systems models sysj.
SystemsModelMerge
SystemsModelMerge[{sys1,sys2,…}]
merges the systems models sysj.
Details
- The systems model sysj can be a TransferFunctionModel, StateSpaceModel, AffineStateSpaceModel, or NonlinearStateSpaceModel.
- If inputs and states share variable names, they are considered to be the same signal.
- The merged system is given in the most general form of all the sysj.
Examples
open all close allBasic Examples (4)
Merge two continuous-time systems:
SystemsModelMerge[{TransferFunctionModel[{{{1}}, s*α}, s,
SamplingPeriod -> None, SystemsModelLabels -> None], TransferFunctionModel[{{{b + s}}, a + s},
s, SamplingPeriod -> None, SystemsModelLabels -> None]}]Merge two discrete-time systems:
SystemsModelMerge[{TransferFunctionModel[{{{b + z}}, a + z},
z, SamplingPeriod -> T, SystemsModelLabels -> None], TransferFunctionModel[{{{z + β}}, z + α},
z, SamplingPeriod -> T, SystemsModelLabels -> None]}]Merge two StateSpaceModel systems:
SystemsModelMerge[{StateSpaceModel[{{{0, 1}, {-Subscript[α, 0], -Subscript[α, 1]}},
{{0}, {1}}, {{Subscript[β, 0], Subscript[β, 1]}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None], StateSpaceModel[{{{0, 1}, {-Subscript[a, 0], -Subscript[a, 1]}},
{{0}, {1}}, {{Subscript[b, 0], Subscript[b, 1]}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None]}]Merge AffineStateSpaceModel systems with a common input variable:
SystemsModelMerge[{AffineStateSpaceModel[{{-a Subscript[x, 1]}, {{b}}, {Subscript[x, 1]}, {{0}}}, {Subscript[x, 1]}, {Subscript[u, 1]}],
AffineStateSpaceModel[{{α Subsuperscript[x, 2, 2]}, {{β}}, {Subscript[x, 2]}, {{0}}}, {Subscript[x, 2]}, {Subscript[u, 1]}]}]Scope (13)
Basic Uses (5)
SystemsModelMerge[{StateSpaceModel[{{{Subscript[a, 11], Subscript[a, 12]},
{Subscript[a, 21], Subscript[a, 22]}},
{{Subscript[b, 11]}, {Subscript[b, 21]}},
{{Subscript[c, 11], Subscript[c, 12]}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], StateSpaceModel[{{{Subscript[α, 11], Subscript[α, 12]},
{Subscript[α, 21], Subscript[α, 22]}},
{{Subscript[β, 11]}, {Subscript[β, 21]}},
{{Subscript[γ, 11], Subscript[γ, 12]}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None]}]SystemsModelMerge[{StateSpaceModel[{{{Subscript[a, 11], Subscript[a, 12]},
{Subscript[a, 21], Subscript[a, 22]}},
{{Subscript[b, 11], Subscript[b, 12]},
{Subscript[b, 21], Subscript[b, 22]}},
{{Subscript[c, 11], Subscript[c, 12]},
{Subscript[c, 21], Subscript[c, 22]}},
{{Subscript[d, 11], Subscript[d, 12]},
{Subscript[d, 21], Subscript[d, 22]}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], StateSpaceModel[{{{Subscript[α, 11], Subscript[α, 12]},
{Subscript[α, 21], Subscript[α, 22]}},
{{Subscript[β, 11], Subscript[β, 12]},
{Subscript[β, 21], Subscript[β, 22]}},
{{Subscript[γ, 11], Subscript[γ, 12]}},
{{Subscript[D, 11], Subscript[D, 12]}}}, SamplingPeriod -> None, SystemsModelLabels -> None], StateSpaceModel[{{{Α}}, {{Β}}, {{Χ}},
{{Δ}}}, SamplingPeriod -> None, SystemsModelLabels -> None]}]Merge systems that share input variables:
SystemsModelMerge[{StateSpaceModel[{{{Subscript[a, 11], Subscript[a, 12]},
{Subscript[a, 21], Subscript[a, 22]}},
{{Subscript[b, 11]}, {Subscript[b, 21]}},
{{Subscript[c, 11], Subscript[c, 12]},
{Subscript[c, 21], Subscript[c, 22]}}, {{0}, {0}}},
{Subscript[x, 1], Subscript[x, 2]}, {Subscript[u, 1]},
SamplingPeriod -> None, SystemsModelLabels -> None], StateSpaceModel[{{{Subscript[α, 11], Subscript[α, 12]},
{Subscript[α, 21], Subscript[α, 22]}},
{{Subscript[β, 11], Subscript[β, 12]},
{Subscript[β, 21], Subscript[β, 22]}},
{{Subscript[γ, 11], Subscript[γ, 12]}}, {{0, 0}}},
{Subscript[ξ, 1], Subscript[ξ, 2]},
{Subscript[u, 1], Subscript[u, 2]}, SamplingPeriod -> None,
SystemsModelLabels -> None]}]When an input and state have the same variable name, the state defines the input:
Subscript[ssm, 1] = StateSpaceModel[{(| | |
| --- | --- |
| a11 | a12 |
| a21 | a22 |), (| |
| --- |
| b11 |
| b21 |), (| | |
| --- | --- |
| c11 | c12 |
| c21 | c22 |), (| |
| - |
| 0 |
| 0 |)},
{Subscript[x, 1], Subscript[x, 2]}, {Subscript[u, 1]}];Subscript[ssm, 2] = StateSpaceModel[{(| | |
| --- | --- |
| α11 | α12 |
| α21 | α22 |), (| | |
| --- | --- |
| β11 | β12 |
| β21 | β22 |), (Subscript[γ, 11] Subscript[γ, 12]), (0 0)}, {Subscript[ξ, 1], Subscript[ξ, 2]}, {Subscript[x, 1], Subscript[u, 2]}];SystemsModelMerge[{Subscript[ssm, 1], Subscript[ssm, 2]}]Merge a StateSpaceModel and a TransferFunctionModel:
SystemsModelMerge[{StateSpaceModel[{{{Subscript[a, 11], Subscript[a, 12]},
{Subscript[a, 21], Subscript[a, 22]}},
{{Subscript[b, 11]}, {Subscript[b, 21]}},
{{Subscript[c, 11], Subscript[c, 12]}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], TransferFunctionModel[{{{k}}, s + α}, s]}]System Types (8)
Merge two TransferFunctionModel systems:
SystemsModelMerge[{TransferFunctionModel[{{{a}}, p + s}, s,
SamplingPeriod -> None, SystemsModelLabels -> None], TransferFunctionModel[{{{α}}, s + ρ}, s]}]SystemsModelMerge[{TransferFunctionModel[{{{a/E^(s*T)}},
p + s}, s], TransferFunctionModel[{{{α/E^(s*τ)}},
s + ρ}, s]}]SystemsModelMerge[{TransferFunctionModel[{{{a + s}}, 1}, s,
SamplingPeriod -> None, SystemsModelLabels -> None], TransferFunctionModel[{{{s + α}}, 1}, s,
SamplingPeriod -> None, SystemsModelLabels -> None]}]Merge two StateSpaceModel systems:
SystemsModelMerge[{StateSpaceModel[{{{a}}, {{b}}, {{c}}, {{d}}},
SamplingPeriod -> None, SystemsModelLabels -> None], StateSpaceModel[{{{α}}, {{β}}, {{γ}},
{{ρ}}}, SamplingPeriod -> None, SystemsModelLabels -> None]}]SystemsModelMerge[{StateSpaceModel[{{{a + SystemsModelDelay[Subscript[τ, 1]]}},
{{b}}, {{c}}, {{d}}}, SamplingPeriod -> None,
SystemsModelLabels -> None], StateSpaceModel[{{{α + SystemsModelDelay[Subscript[τ, 2]]}},
{{β}}, {{γ}}, {{ρ}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]}]Descriptor state-space systems:
SystemsModelMerge[{StateSpaceModel[{{{a}}, {{b}}, {{c}}, {{d}},
{{e}}}, SamplingPeriod -> None, SystemsModelLabels -> None], StateSpaceModel[{{{α}}, {{β}}, {{γ}},
{{ρ}}, {{η}}}, SamplingPeriod -> None, SystemsModelLabels -> None]}]AffineStateSpaceModel systems:
SystemsModelMerge[{AffineStateSpaceModel[{{a[Subscript[x, 1]]},
{{b[Subscript[x, 1]]}}, {c[Subscript[x, 1]]},
{{d[Subscript[x, 1]]}}}, {Subscript[x, 1]},
{Subscript[, 1]}, {Automatic}, Automatic, SamplingPeriod -> None], AffineStateSpaceModel[{{α[Subscript[x, 2]]},
{{β[Subscript[x, 2]]}},
{γ[Subscript[x, 2]]},
{{ρ[Subscript[x, 2]]}}}, {Subscript[x, 2]},
{Subscript[, 1]}, {Automatic}, Automatic, SamplingPeriod -> None]}]NonlinearStateSpaceModel systems:
SystemsModelMerge[{NonlinearStateSpaceModel[{{Subscript[f, 1][Subscript[x, 1],
Subscript[u, 1]]}, {Subscript[h, 1][Subscript[x, 1],
Subscript[u, 1]]}}, {Subscript[x, 1]},
{Subscript[u, 1]}, {Automatic}, Automatic, SamplingPeriod -> None], NonlinearStateSpaceModel[{{Subscript[f, 2][Subscript[x, 2],
Subscript[u, 2]]}, {Subscript[h, 2][Subscript[x, 2],
Subscript[u, 2]]}}, {Subscript[x, 2]},
{Subscript[u, 2]}, {Automatic}, Automatic, SamplingPeriod -> None]}]Merging a TransferFunctionModel and StateSpaceModel will give a StateSpaceModel:
SystemsModelMerge[{TransferFunctionModel[{{{k*(s + Subscript[z, 1])}},
s + Subscript[p, 1]}, s, SamplingPeriod -> None,
SystemsModelLabels -> None], StateSpaceModel[{{{a}}, {{b}}, {{c}}, {{d}}},
SamplingPeriod -> None, SystemsModelLabels -> None]}]SystemsModelMerge[{TransferFunctionModel[{{{k*(s + Subscript[z, 1])}},
E^(s*Subscript[τ, 1])*(s +
Subscript[p, 1])}, s, SamplingPeriod -> None,
SystemsModelLabels -> None], StateSpaceModel[{{{a + SystemsModelDelay[Subscript[τ, 2]]}},
{{b}}, {{c}}, {{d}}}, SamplingPeriod -> None,
SystemsModelLabels -> None]}]Standard linear system and an AffineStateSpaceModel will give an AffineStateSpaceModel:
SystemsModelMerge[{TransferFunctionModel[{{{k*(s + Subscript[z, 1])}},
s + Subscript[p, 1]}, s, SamplingPeriod -> None,
SystemsModelLabels -> None], AffineStateSpaceModel[{{α[x]}, {{β[x]}},
{γ[x]}, {{ρ[x]}}}, {x},
{Subscript[u, 1]}, {Automatic}, Automatic, SamplingPeriod -> None]}]SystemsModelMerge[{StateSpaceModel[{{{a}}, {{b}}, {{c}}, {{d}}},
SamplingPeriod -> None, SystemsModelLabels -> None], AffineStateSpaceModel[{{α[x]}, {{β[x]}},
{γ[x]}, {{ρ[x]}}}, {x},
{Subscript[u, 1]}, {Automatic}, Automatic, SamplingPeriod -> None]}]Standard linear with NonlinearStateSpaceModel gives a NonlinearStateSpaceModel:
SystemsModelMerge[{StateSpaceModel[{{{a}}, {{b}}, {{c}}, {{d}}},
SamplingPeriod -> None, SystemsModelLabels -> None], NonlinearStateSpaceModel[{{f[x, u]},
{h[x, u]}}, {x}, {u},
{Automatic}, Automatic, SamplingPeriod -> None]}]AffineStateSpaceModel with NonlinearStateSpaceModel again gives the latter:
SystemsModelMerge[{AffineStateSpaceModel[{{a[Subscript[x, 1]]},
{{b[Subscript[x, 1]]}}, {c[Subscript[x, 1]]},
{{d[Subscript[x, 1]]}}}, {Subscript[x, 1]},
{Subscript[u, 1]}, {Automatic}, Automatic, SamplingPeriod -> None], NonlinearStateSpaceModel[{{f[Subscript[x, 2],
Subscript[u, 2]]}, {h[Subscript[x, 2],
Subscript[u, 2]]}}, {Subscript[x, 2]},
{Subscript[u, 2]}, {Automatic}, Automatic, SamplingPeriod -> None]}]Applications (1)
Use SystemsModelMerge in multi-loop reduction:
{Subscript[sys, 1], Subscript[sys, 2], Subscript[sys, 3], Subscript[sys, 4]} = {TransferFunctionModel[{{{1}}, 10 + s}, s], TransferFunctionModel[{{{1}}, 1 + s}, s], TransferFunctionModel[{{{1 + s^2}}, 4 + 4*s + s^2},
s], TransferFunctionModel[{{{1 + s}}, 6 + s}, s]};{Subscript[fsys, 1], Subscript[fsys, 2], Subscript[fsys, 3]} = {TransferFunctionModel[{{{1 + s}}, 2 + s}, s], TransferFunctionModel[{{{2*(6 + s)}}, 1 + s}, s], TransferFunctionModel[{{{1}}, 1}, s]};Subscript[sum, 1] = Subscript[sum, 2] = TransferFunctionModel[{{{1, -1}}, 1}, s];Subscript[sum, 3] = TransferFunctionModel[{{{1, 1}}, 1}, s];asys = {Subscript[sys, 1], Subscript[sys, 2], Subscript[sys, 3], Subscript[sys, 4], Subscript[fsys, 1], Subscript[fsys, 2], Subscript[fsys, 3], Subscript[sum, 1], Subscript[sum, 2], Subscript[sum, 3]};conxs = {{8, 1} -> {1, 1}, {1, 1} -> {9, 1}, {9, 1} -> {2, 1}, {2, 1} -> {10, 1}, {10, 1} -> {3, 1}, {3, 1} -> {4, 1}, {4, 1} -> {6, 1}, {6, 1} -> {9, 2}, {4, 1} -> {5, 1}, {5, 1} -> {10, 2}, {4, 1} -> {7, 1}, {7, 1} -> {8, 2}};ins = {{8, 1}};
outs = {{4, 1}};SystemsConnectionsModel[asys, conxs, ins, outs]SystemsModelMerge[%]Properties & Relations (4)
By default, SystemsModelMerge does not connect inputs or sum outputs:
{Subscript[tfm, 1], Subscript[tfm, 2]} = Table[TransferFunctionModel[{{{1}}, s + Subscript[α, i]},
s], {i, 2}];SystemsModelMerge[{Subscript[tfm, 1], Subscript[tfm, 2]}]SystemsModelParallelConnect connects inputs and sums outputs:
SystemsModelParallelConnect[Subscript[tfm, 1], Subscript[tfm, 2]]When no variables match, SystemsModelMerge is a case of SystemsModelParallelConnect:
{Subscript[tfm, 1], Subscript[tfm, 2]} = Table[TransferFunctionModel[{{{1}}, s + Subscript[α, i]},
s], {i, 2}];{SystemsModelMerge[{Subscript[tfm, 1], Subscript[tfm, 2]}], SystemsModelParallelConnect[Subscript[tfm, 1], Subscript[tfm, 2], None, None]}SystemsModelMerge can be used to merge two or more systems:
{Subscript[tfm, 1], Subscript[tfm, 2], Subscript[tfm, 3]} = Table[TransferFunctionModel[{{{1}}, s + Subscript[α, i]},
s], {i, 3}];SystemsModelMerge[{Subscript[tfm, 1], Subscript[tfm, 2], Subscript[tfm, 3]}]SystemsModelParallelConnect connects only two systems:
SystemsModelParallelConnect[Subscript[tfm, 1], Subscript[tfm, 2], None, None]SystemsModelMerge can merge a system with no inputs or outputs to another system:
Subscript[asys, 1] = AffineStateSpaceModel[{{Subscript[x, 2]}, {}, {}}, {Subscript[x, 1]}];Subscript[asys, 2] = AffineStateSpaceModel[{{Subscript[x, 1]}, {{1}}, {Subscript[x, 2]}}, {Subscript[x, 2]}, {u}];SystemsModelMerge[{Subscript[asys, 1], Subscript[asys, 2]}]It does not make sense to connect such systems in parallel:
SystemsModelParallelConnect[Subscript[asys, 1], Subscript[asys, 2]]Related Guides
History
Text
Wolfram Research (2014), SystemsModelMerge, Wolfram Language function, https://reference.wolfram.com/language/ref/SystemsModelMerge.html.
CMS
Wolfram Language. 2014. "SystemsModelMerge." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SystemsModelMerge.html.
APA
Wolfram Language. (2014). SystemsModelMerge. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SystemsModelMerge.html
BibTeX
@misc{reference.wolfram_2026_systemsmodelmerge, author="Wolfram Research", title="{SystemsModelMerge}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/SystemsModelMerge.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_systemsmodelmerge, organization={Wolfram Research}, title={SystemsModelMerge}, year={2014}, url={https://reference.wolfram.com/language/ref/SystemsModelMerge.html}, note=[Accessed: 13-June-2026]}