## Polynomial Sizes and Orders of Multi-Output Polynomial Models

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.

PolynomialDimensionRelation DescribedOrders
`A`Ny-by-Ny array of row vectors`A{i,j}` contains coefficients of relation between output yi and output yj`na`: Ny-by-Ny matrix such that each entry contains the degree of the corresponding A polynomial.
`B`Ny-by-Nu array of row vectors`B{i,j}` contain coefficients of relations between output yi and input uj

`nk`: Ny-by-Nu matrix such that each entry contains the number of leading fixed zeros of the corresponding B polynomial (input delay).

`nb`: Ny-by-Nu matrix such `nb(i,j) = length(B{i,j})- nk(i,j)`.

`C,D`Ny-by-1 array of row vectors`C{i}` and `D{i}` contain coefficients of relations between output yi and noise ei

`nc` and `nd` are Ny-by-1 matrices such that each entry contains the degree of the corresponding C and D polynomial, respectively.

`F`Ny-by-Nu array of row vectors`F{i,j}` contains coefficients of relations between output yi and input uj`nf`: Ny-by-Nu matrix such that each entry contains the degree of the corresponding F polynomial.

For more information, see `idpoly`.

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

y1 andy2 represent the two outputs and u represents the input variable. e1 and e2 represent the white noise disturbances on the outputs, y1 and y2, respectively. To represent these equations as an ARMAX form polynomial using `idpoly`, configure the A, B, and C polynomials as follows:

```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.