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.