Documentation

## What Are Polynomial Models?

### Polynomial Model Structure

A polynomial model uses a generalized notion of transfer functions to express the relationship between the input, u(t), the output y(t), and the noise e(t) using the equation:

`$A\left(q\right)y\left(t\right)=\sum _{i=1}^{nu}\frac{{B}_{i}\left(q\right)}{{F}_{i}\left(q\right)}{u}_{i}\left(t-n{k}_{i}\right)+\frac{C\left(q\right)}{D\left(q\right)}e\left(t\right)$`

The variables A, B, C, D, and F are polynomials expressed in the time-shift operator `q^-1`. ui is the ith input, nu is the total number of inputs, and nki is the ith input delay that characterizes the transport delay. The variance of the white noise e(t) is assumed to be $\lambda$. For more information about the time-shift operator, see Understanding the Time-Shift Operator q.

In practice, not all the polynomials are simultaneously active. Often, simpler forms, such as ARX, ARMAX, Output-Error, and Box-Jenkins are employed. You also have the option of introducing an integrator in the noise source so that the general model takes the form:

`$A\left(q\right)y\left(t\right)=\sum _{i=1}^{nu}\frac{{B}_{i}\left(q\right)}{{F}_{i}\left(q\right)}{u}_{i}\left(t-n{k}_{i}\right)+\frac{C\left(q\right)}{D\left(q\right)}\frac{1}{1-{q}^{-1}}e\left(t\right)$`

For more information, see Different Configurations of Polynomial Models.

You can estimate polynomial models using time or frequency domain data.

For estimation, you must specify the model order as a set of integers that represent the number of coefficients for each polynomial you include in your selected structure—na for A, nb for B, nc for C, nd for D, and nf for F. You must also specify the number of samples nk corresponding to the input delay—dead time—given by the number of samples before the output responds to the input.

The number of coefficients in denominator polynomials is equal to the number of poles, and the number of coefficients in the numerator polynomials is equal to the number of zeros plus 1. When the dynamics from u(t) to y(t) contain a delay of nk samples, then the first nk coefficients of B are zero.

For more information about the family of transfer-function models, see the corresponding section in System Identification: Theory for the User, Second Edition, by Lennart Ljung, Prentice Hall PTR, 1999.

### Understanding the Time-Shift Operator q

The general polynomial equation is written in terms of the time-shift operator q–1. To understand this time-shift operator, consider the following discrete-time difference equation:

where y(t) is the output, u(t) is the input, and T is the sample time. q-1 is a time-shift operator that compactly represents such difference equations using ${q}^{-1}u\left(t\right)=u\left(t-T\right)$:

In this case, $A\left(q\right)=1+{a}_{1}{q}^{-1}+{a}_{2}{q}^{-2}$ and $B\left(q\right)={b}_{1}{q}^{-1}+{b}_{2}{q}^{-2}$.

### Note

This q description is completely equivalent to the Z-transform form: q corresponds to z.

### Different Configurations of Polynomial Models

These model structures are subsets of the following general polynomial equation:

`$A\left(q\right)y\left(t\right)=\sum _{i=1}^{nu}\frac{{B}_{i}\left(q\right)}{{F}_{i}\left(q\right)}{u}_{i}\left(t-n{k}_{i}\right)+\frac{C\left(q\right)}{D\left(q\right)}e\left(t\right)$`

The model structures differ by how many of these polynomials are included in the structure. Thus, different model structures provide varying levels of flexibility for modeling the dynamics and noise characteristics.

The following table summarizes common linear polynomial model structures supported by the System Identification Toolbox™ product. If you have a specific structure in mind for your application, you can decide whether the dynamics and the noise have common or different poles. A(q) corresponds to poles that are common for the dynamic model and the noise model. Using common poles for dynamics and noise is useful when the disturbances enter the system at the input. F i determines the poles unique to the system dynamics, and D determines the poles unique to the disturbances.

Model StructureEquationDescription
ARX
`$A\left(q\right)y\left(t\right)=\sum _{i=1}^{nu}{B}_{i}\left(q\right){u}_{i}\left(t-n{k}_{i}\right)+e\left(t\right)$`

The noise model is $\frac{1}{A}$ and the noise is coupled to the dynamics model. ARX does not let you model noise and dynamics independently. Estimate an ARX model to obtain a simple model at good signal-to-noise ratios.

ARIX
`$Ay=Bu+\frac{1}{1-{q}^{-1}}e$`
Extends the ARX structure by including an integrator in the noise source, e(t). This is useful in cases where the disturbance is not stationary.
ARMAX
`$A\left(q\right)y\left(t\right)=\sum _{i=1}^{nu}{B}_{i}\left(q\right){u}_{i}\left(t-n{k}_{i}\right)+C\left(q\right)e\left(t\right)$`
Extends the ARX structure by providing more flexibility for modeling noise using the C parameters (a moving average of white noise). Use ARMAX when the dominating disturbances enter at the input. Such disturbances are called load disturbances.
ARIMAX
`$Ay=Bu+C\frac{1}{1-{q}^{-1}}e$`
Extends the ARMAX structure by including an integrator in the noise source, e(t). This is useful in cases where the disturbance is not stationary.
Box-Jenkins (BJ)
`$y\left(t\right)=\sum _{i=1}^{nu}\frac{{B}_{i}\left(q\right)}{{F}_{i}\left(q\right)}{u}_{i}\left(t-n{k}_{i}\right)+\frac{C\left(q\right)}{D\left(q\right)}e\left(t\right)$`

Provides completely independent parameterization for the dynamics and the noise using rational polynomial functions.

Use BJ models when the noise does not enter at the input, but is primary a measurement disturbance, This structure provides additional flexibility for modeling noise.

Output-Error (OE)
`$y\left(t\right)=\sum _{i=1}^{nu}\frac{{B}_{i}\left(q\right)}{{F}_{i}\left(q\right)}{u}_{i}\left(t-n{k}_{i}\right)+e\left(t\right)$`

Use when you want to parameterize dynamics, but do not want to estimate a noise model.

### Note

In this case, the noise models is $H=1$ in the general equation and the white noise source e(t) affects only the output.

The polynomial models can contain one or more outputs and zero or more inputs.

The System Identification app supports direct estimation of ARX, ARMAX, OE and BJ models. You can add a noise integrator to the ARX, ARMAX and BJ forms. However, you can use `polyest` to estimate all five polynomial or any subset of polynomials in the general equation. For more information about working with pem, see Using polyest to Estimate Polynomial Models.

### Continuous-Time Representation of Polynomial Models

In continuous time, the general frequency-domain equation is written in terms of the Laplace transform variable s, which corresponds to a differentiation operation:

`$A\left(s\right)Y\left(s\right)=\frac{B\left(s\right)}{F\left(s\right)}U\left(s\right)+\frac{C\left(s\right)}{D\left(s\right)}E\left(s\right)$`

In the continuous-time case, the underlying time-domain model is a differential equation and the model order integers represent the number of estimated numerator and denominator coefficients. For example, na=3 and nb=2 correspond to the following model:

`$\begin{array}{l}A\left(s\right)={s}^{4}+{a}_{1}{s}^{3}+{a}_{2}{s}^{2}+{a}_{3}\\ B\left(s\right)={b}_{1}s+{b}_{2}\end{array}$`

You can only estimate continuous-time polynomial models directly using continuous-time frequency-domain data. In this case, you must set the `Ts` data property to 0 to indicate that you have continuous-time frequency-domain data, and use the `oe` command to estimate an Output-Error polynomial model. Continuous-time models of other structures such as ARMAX or BJ cannot be estimated. You can obtain those forms only by direct construction (using `idpoly`), conversion from other model types, or by converting a discrete-time model into continuous-time (`d2c`). Note that the OE form represents a transfer function expressed as a ratio of numerator (B) and denominator (F) polynomials. For such forms consider using the transfer function models, represented by `idtf` models. You can estimate transfer function models using both time and frequency domain data. In addition to the numerator and denominator polynomials, you can also estimate transport delays. See `idtf` and `tfest` for more information.

### Multi-Output Polynomial Models

For a MIMO polynomial model with ny outputs and nu inputs, the relation between inputs and outputs for the lth output can be written as:

`$\sum _{j=1}^{ny}{A}_{lj}\left(q\right){y}_{j}\left(t\right)=\sum _{i=1}^{nu}\frac{{B}_{li}\left(q\right)}{{F}_{li}\left(q\right)}{u}_{i}\left(t-n{k}_{i}\right)+\frac{{C}_{l}\left(q\right)}{{D}_{l}\left(q\right)}{e}_{l}\left(t\right)$`

The A polynomial array (Aij; i=1:ny, j=1:ny) are stored in the `A` property of the `idpoly` object. The diagonal polynomials (Aii; i=1:ny) are monic, that is, the leading coefficients are one. The off-diagonal polynomials (Aij; ij ) contain a delay of at least one sample, that is, they start with zero. For more details on the orders of multi-output models, see Polynomial Sizes and Orders of Multi-Output Polynomial Models.

You can create multi-output polynomial models by using the `idpoly` command or estimate them using `ar`, `arx`, `bj`, `oe`, `armax`, and `polyest`. In the app, you can estimate such models by choosing a multi-output data set and setting the orders appropriately in the Polynomial Models dialog box.