Main Content

For a model with *Ny* (`Ny > 1`

)
outputs and *Nu* inputs, the polynomials *A*, *B*, *C*, *D*,
and *F* are specified as cell arrays of row vectors.
Each entry in the cell array contains the coefficients of a particular
polynomial that relates input, output, and noise values. *Orders* are
matrices of integers used as input arguments to the estimation commands.

Polynomial | Dimension | Relation Described | Orders |
---|---|---|---|

`A` | N-by-_{y}N array
of row vectors_{y} | `A{i,j}` contains coefficients of relation
between output y and output _{i}y_{j} | `na` : N-by-_{y}N matrix
such that each entry contains the degree of the corresponding _{y}A polynomial. |

`B` | N-by-_{y}N array
of row vectors_{u} | `B{i,j}` contain coefficients of relations
between output y and input _{i}u_{j} |
N matrix
such that each entry contains the number of leading fixed zeros of
the corresponding _{u}B polynomial (input delay).
N matrix
such _{u}`nb(i,j) = length(B{i,j})- nk(i,j)` . |

`C,D` | N-by-1 array of
row vectors_{y} | `C{i}` and `D{i}` contain
coefficients of relations between output y and
noise _{i}e_{i} |
C and D polynomial,
respectively. |

`F` | N-by-_{y}N array
of row vectors_{u} | `F{i,j}` contains coefficients of relations
between output y and input _{i}u_{j} | `nf` : N-by-_{y}N matrix
such that each entry contains the degree of the corresponding _{u}F polynomial. |

For more information, see `idpoly`

.

For example, consider the ARMAX set of equations for a 2 output, 1 input model:

$$\begin{array}{l}{\text{y}}_{1}\text{(t)+0}{\text{.5y}}_{1}\text{(t-1)+0}{\text{.9y}}_{2}\text{(t-1)+0}{\text{.1y}}_{2}{\text{(t-2)=u(t)+5u(t-1)+2u(t-2)+e}}_{1}\text{(t)+0}{\text{.01e}}_{1}\text{(t-1)}\\ \text{}{\text{y}}_{2}\text{(t)+0}{\text{.05y}}_{2}\text{(t-1)+0}{\text{.3y}}_{2}{\text{(t-2)=10u(t-2)+e}}_{2}\text{(t)+0}{\text{.1e}}_{2}\text{(t-1)+0}{\text{.02e}}_{2}\text{(t-2)}\end{array}$$

*y _{1}* and

`idpoly`

, configure the A = cell(2,2); A{1,1} = [1 0.5]; A{1,2} = [0 0.9 0.1]; A{2,1} = [0]; A{2,2} = [1 0.05 0.3]; B = cell(2,1); B{1,1} = [1 5 2]; B{2,1} = [0 0 10]; C = cell(2,1); C{1} = [1 0.01]; C{2} = [1 0.1 0.02]; model = idpoly(A,B,C)

model = Discrete-time ARMAX model: Model for output number 1: A(z)y_1(t) = - A_i(z)y_i(t) + B(z)u(t) + C(z)e_1(t) A(z) = 1 + 0.5 z^-1 A_2(z) = 0.9 z^-1 + 0.1 z^-2 B(z) = 1 + 5 z^-1 + 2 z^-2 C(z) = 1 + 0.01 z^-1 Model for output number 2: A(z)y_2(t) = B(z)u(t) + C(z)e_2(t) A(z) = 1 + 0.05 z^-1 + 0.3 z^-2 B(z) = 10 z^-2 C(z) = 1 + 0.1 z^-1 + 0.02 z^-2 Sample time: unspecified Parameterization: Polynomial orders: na=[1 2;0 2] nb=[3;1] nc=[1;2] nk=[0;2] Number of free coefficients: 12 Use "polydata", "getpvec", "getcov" for parameters and their uncertainties. Status: Created by direct construction or transformation. Not estimated.

`model`

is a discrete-time ARMAX model with unspecified sample-time. When estimating such models, you need to specify the orders of these polynomials as input arguments.

In the System Identification app, you can enter the matrices
directly in the **Orders** field.

At the command line, define variables that store the model order matrices and specify these variables in the model-estimation command.

**Tip**

To simplify entering large matrices orders in the System Identification
app, define the variable `NN=[NA NB NK]`

at the command
line. You can specify this variable in the **Orders** field.

`idpoly`

| `ar`

| `arx`

| `bj`

| `oe`

| `armax`

| `polyest`