Main Content

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
ANy-by-Ny array of row vectorsA{i,j} contains coefficients of relation between output yi and output yjna: Ny-by-Ny matrix such that each entry contains the degree of the corresponding A polynomial.
BNy-by-Nu array of row vectorsB{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,DNy-by-1 array of row vectorsC{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.

FNy-by-Nu array of row vectorsF{i,j} contains coefficients of relations between output yi and input ujnf: 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(t) + 0.5 y1(t-1) + 0.9 y2(t-1) + 0.1 y2(t-2) = u(t)  + 5 u(t-1)  + 2 u(t-2) + e1(t) + 0.01 e1(t-1) y2(t) + 0.05 y2(t-1)  + 0.3 y2(t-2)   = 10 u(t-2) + e2(t) + 0.1 e2(t-1) + 0.02 e2(t-2)

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.

See Also

| | | | | |

Related Examples

More About