Main Content

Group models by appending their inputs and outputs

`sys = append(sys1,sys2,...,sysN)`

`sys = append(sys1,sys2,...,sysN)`

appends the inputs and outputs
of the models `sys1`

,...,`sysN`

to form the augmented
model `sys`

depicted below.

For systems with transfer functions
*H*_{1}(*s*), . . . , *H*_{N}(*s*),
the resulting system `sys`

has the block-diagonal transfer
function

$$\left[\begin{array}{cccc}{H}_{1}(s)& 0& \dots & 0\\ 0& {H}_{2}(s)& \cdots & \vdots \\ \vdots & \vdots & \ddots & 0\\ 0& \cdots & 0& {H}_{N}(s)\end{array}\right]$$

For state-space models `sys1`

and `sys2`

with data
(*A*_{1}, *B*_{1}, *C*_{1}, *D*_{1})
and
(*A*_{2}, *B*_{2}, *C*_{2}, *D*_{2}),
`append(sys1,sys2)`

produces the following state-space
model:

$$\begin{array}{c}\left[\begin{array}{c}{\dot{x}}_{1}\\ {\dot{x}}_{2}\end{array}\right]=\left[\begin{array}{cc}{A}_{1}& 0\\ 0& {A}_{2}\end{array}\right]\left[\begin{array}{c}{x}_{1}\\ {x}_{2}\end{array}\right]+\left[\begin{array}{cc}{B}_{1}& 0\\ 0& {B}_{2}\end{array}\right]\left[\begin{array}{c}{u}_{1}\\ {u}_{2}\end{array}\right]\\ \left[\begin{array}{c}{y}_{1}\\ {y}_{2}\end{array}\right]=\left[\begin{array}{cc}{C}_{1}& 0\\ 0& {C}_{2}\end{array}\right]\left[\begin{array}{c}{x}_{1}\\ {x}_{2}\end{array}\right]+\left[\begin{array}{cc}{D}_{1}& 0\\ 0& {D}_{2}\end{array}\right]\left[\begin{array}{c}{u}_{1}\\ {u}_{2}\end{array}\right]\end{array}$$

The input arguments `sys1`

,..., `sysN`

can be model
objects s of any type. Regular matrices are also accepted as a representation of static
gains, but there should be at least one model in the input list. The models should be
either all continuous, or all discrete with the same sample time. When appending models
of different types, the resulting type is determined by the precedence rules (see Rules That Determine Model Type for details).

There is no limitation on the number of inputs.