| System Identification Toolbox™ | ![]() |
System Identification Toolbox
The ARMAX Estimator block estimates the parameters of a single-input and single-output ARMAX model and returns the model as an idpoly object.
For information about the default algorithm settings used for model estimation, see the Algorithm Properties reference page.
Each estimation generates a figure with the following plots:
Actual (measured) output versus the simulated or predicted model output.
Error in simulated model, which is the difference between the measured output and the model output.
The ARMAX model is defined, as follows:
![]()
where
y(t) is the output at time
.
,
, and
are the parameters to be estimated.
is the number
of poles of the system.
is the number
of zeros of the system.
is the number
of previous error terms on which the current output depends.
is the number
of input samples that occur before the inputs affecting the current
output.
are the previous
outputs on which the current output depends.
are the previous
inputs on which the current output depends.
are the white-noise
disturbance values on which the current output depends.
The ARMAX model can also be written in a compact way using the following notation:
![]()
where

and
is the backward
shift operator, defined by
.
The following block diagram shows the ARMAX model structure.

The block accepts two inputs, corresponding to the measured input-output data for estimating the model.
First input: Input signal.
Second input: Output signal.
The ARMAX Estimator block outputs a sequence of multiple models (idpoly objects), estimated at regular intervals during the simulation.
The Data window field in the block parameter dialog box specifies the number of data samples to use for estimation, as the simulation progresses.
The output format depends on whether you specify the Model Name in the block parameter dialog box.

Integers na, nb, nc, and nk specify the number of A, B, and C model parameters and nk is input-output delay, respectively.
Number of input data samples that specify the interval after which to estimate a new model.
Default: 25
Sampling time for the model.
Note If you use a fixed step-size solver, the fixed step size must be consistent with this sample time. |
Number of past data samples used to estimate each model. A longer data window should be used for higher-order models. Too small a value might cause poor estimation results, and too large a value leads to slower computation.
Default: 200.
Name of the model.
Whether you specify the model name determines the output format of the resulting models, as follows:
If you do not specify a model name, the estimated models display in the MATLAB Command Window in a transfer-function format.
If you specify a model name, the resulting models are output to the MATLAB workspace as a cell array.
Simulation: The algorithm uses only measured input data to simulate the response of the model.
Prediction: Specifies the forward-prediction horizon for computing the response K steps in the future, where K is 1, 5, or 10.
This example shows how you can use the ARMAX Estimator block in a Simulink model.
Generate sample input and output data.
u = sin([1:300]') + 0.6*(rand(300,1)-0.5); y = cos(u) + 0.1*rand(300,1); IODATA = iddata(y,u,1);
Create a new Simulink model, as follows.
Add the IDDATA Source block and specify IODATA in the Iddata object field of the IDDATA Source block parameters dialog box.
Add the ARMAX Estimator block to the model and set the model orders to [4 4 4 0] and set the sample time to 1.
Connect the Input and Output ports of the IDDATA Source block to the u and y ports of the ARMAX Estimator block, respectively. Set the simulation end time to 300 seconds.

Run the simulation.
The estimated models display in the MATLAB Command Window every 25 samples.
| armax |
| idpoly |
| Identifying Input-Output Polynomial Models |
![]() | AR Estimator | ARX Estimator | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |