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(q)y(t)={\displaystyle \sum _{i=1}^{nu}\frac{{B}_{i}(q)}{{F}_{i}(q)}{u}_{i}\left(t-n{k}_{i}\right)}+\frac{C(q)}{D(q)}e(t)$$
The variables A, B, C,
D, and F are polynomials expressed in the time-shift
operator q^-1
.
u_{i} is the
ith input, nu is the total number of inputs, and
nk_{i} 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(q)y(t)={\displaystyle \sum _{i=1}^{nu}\frac{{B}_{i}(q)}{{F}_{i}(q)}{u}_{i}\left(t-n{k}_{i}\right)}+\frac{C(q)}{D(q)}\frac{1}{1-{q}^{-1}}e(t)$$
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.
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:
$$\begin{array}{l}y(t)+{a}_{1}y(t-T)+{a}_{2}y(t-2T)=\\ \text{}{b}_{1}u(t-T)+{b}_{2}u(t-2T)\end{array}$$
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(t)=u(t-T)$$:
$$\begin{array}{l}y(t)+{a}_{1}{q}^{-1}y(t)+{a}_{2}{q}^{-2}y(t)=\\ {\text{b}}_{\text{1}}{q}^{-1}u(t)+{b}_{2}{q}^{-2}u(t)\\ \text{or}\\ A(q)y(t)=B(q)u(t)\end{array}$$
In this case, $$A(q)=1+{a}_{1}{q}^{-1}+{a}_{2}{q}^{-2}$$ and $$B(q)={b}_{1}{q}^{-1}+{b}_{2}{q}^{-2}$$.
This q description is completely equivalent to the Z-transform form: q corresponds to z.
These model structures are subsets of the following general polynomial equation:
$$A(q)y(t)={\displaystyle \sum _{i=1}^{nu}\frac{{B}_{i}(q)}{{F}_{i}(q)}{u}_{i}\left(t-n{k}_{i}\right)}+\frac{C(q)}{D(q)}e(t)$$
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 Structure | Equation | Description |
---|---|---|
ARX |
$$A(q)y(t)={\displaystyle \sum _{i=1}^{nu}{B}_{i}(q){u}_{i}\left(t-n{k}_{i}\right)}+e(t)$$ | The noise model is $${\scriptscriptstyle \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(q)y(t)={\displaystyle \sum _{i=1}^{nu}{B}_{i}(q){u}_{i}\left(t-n{k}_{i}\right)}+C(q)e(t)$$ | 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(t)={\displaystyle \sum _{i=1}^{nu}\frac{{B}_{i}(q)}{{F}_{i}(q)}{u}_{i}\left(t-n{k}_{i}\right)}+\frac{C(q)}{D(q)}e(t)$$ | 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(t)={\displaystyle \sum _{i=1}^{nu}\frac{{B}_{i}(q)}{{F}_{i}(q)}{u}_{i}\left(t-n{k}_{i}\right)}+e(t)$$ | Use when you want to parameterize dynamics, but do not want to estimate a noise model. NoteIn 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.
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(s)Y(s)=\frac{B(s)}{F(s)}U(s)+\frac{C(s)}{D(s)}E(s)$$
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, n_{a}=3 and n_{b}=2 correspond to the following model:
$$\begin{array}{l}A(s)={s}^{4}+{a}_{1}{s}^{3}+{a}_{2}{s}^{2}+{a}_{3}\\ B(s)={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.
For a MIMO polynomial model with ny outputs and nu inputs, the relation between inputs and outputs for the l^{th} output can be written as:
$$\sum _{j=1}^{ny}{A}_{lj}(q){y}_{j}(t)}={\displaystyle \sum _{i=1}^{nu}\frac{{B}_{li}(q)}{{F}_{li}(q)}{u}_{i}\left(t-n{k}_{i}\right)}+\frac{{C}_{l}(q)}{{D}_{l}(q)}{e}_{l}(t)$$
The A polynomial array
(A_{ij};
i=1:ny, j=1:ny)
are stored in the A
property of the idpoly
object. The diagonal polynomials
(A_{ii};
i=1:ny) are monic, that is, the leading coefficients
are one. The off-diagonal polynomials (A_{ij};
i ≠j ) 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.
ar
| armax
| arx
| bj
| idpoly
| oe
| polyest