| Contents | Index |
sys = armax(data,[na
nb nc nk])
sys = armax(data,[na
nb nc nk],Name,Value)
sys = armax(data,init_sys)
sys = armax(data,___,opt)
Note armax supports only time-domain data. For frequency-domain data, use oe. |
sys = armax(data,[na nb nc nk]) returns an idpoly model, sys, with estimated parameters and covariance (parameter uncertainties). Estimates the parameters using the prediction-error method and specified polynomial orders.
sys = armax(data,[na nb nc nk],Name,Value) returns an idpoly model, sys, with additional options specified by one or more Name,Value pair arguments.
sys = armax(data,init_sys) estimates a polynomial model using the ARMAX structure polynomial model init_sys to configure the initial parameterization.
sys = armax(data,___,opt) specifies estimation options using the option set opt.
Use the IntegrateNoise property to add integrators to the noise source.
data |
Estimation data. Specify data as an iddata object containing the time-domain input-output data. You cannot use frequency-domain data for estimating ARMAX models. |
[na nb nc nk] |
Polynomial orders. [na nb nc nk] define the polynomial orders of an ARMAX Model.
|
init_sys |
Linear polynomial model that configures the initial parameterization of sys. init_sys must be an ARMAX model. You may obtain init_sys by either performing an estimation using measured data, or by direct construction. Use the Structure property of init_sys to configure initial guesses and constraints for A(q), B(q), and C(q). To specify an initial guess for, say, the A(q) term of init_sys, set init_sys.Structure.a.Value as the initial guess. To specify constraints for, say, the B(q) term of init_sys:
You can similarly specify the initial guess and constraints for the other polynomials. If opt is not specified, and init_sys was created by estimation, then the estimation options from init_sys.Report.OptionsUsed are used. |
opt |
Estimation options. opt is an options set that specifies estimation options, including:
Use armaxOptions to create the options set. |
Specify optional comma-separated pairs of Name,Value arguments, where Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.
sys |
Identified ARMAX structure polynomial model. sys is a discrete-time idpoly model, which encapsulates the estimated A, B and C polynomials and the parameter covariance information. |
The ARMAX model structure is

A more compact way to write the difference equation is
![]()
where
— Output
at time
.
— Number
of poles.
— Number
of zeroes plus 1.
— Number
of C coefficients.
— Number
of input samples that occur before the input affects the output, also
called the dead time in the system.
— Previous
outputs on which the current output depends.
— Previous
and delayed inputs on which the current output depends.
— White-noise
disturbance value.
The parameters na, nb, and nc are the orders of the ARMAX model, and nk is the delay. q is the delay operator. Specifically,
![]()
![]()
![]()
If data is a time series, which has no input channels and one output channel, then armax calculates an ARMA model for the time series
![]()
In this case
orders = [na nc]
An ARIMAX model structure is similar to ARMAX, except that it contains an integrator in the noise source e(t):
![]()
If there are no inputs, this reduces to an ARIMA model:
![]()
Estimate an ARMAX model from measured data and specify the estimation options.
Estimate an ARMAX model with simulation focus, using 'lm' as the search method and maximum number of search iterations set to 10.
load twotankdata z = iddata(y,u,0.2); opt = armaxOptions; opt.Focus = 'simulation'; opt.SearchMethod = 'lm'; opt.SearchOption.MaxIter = 10; opt.Display = 'on'; sys = armax(z, [2 2 2 1], opt)
The termination conditions for measured component of the model shown in the progress viewer is that the maximum number of iterations were reached. To improve results, re-estimate the model using a greater value for MaxIter, or we can continue iterations on the previously estimated model as follows:
sys2 = armax(z, sys); compare(z, sys, sys2)
where sys2 refines the parameters of sys to improve the fit to data.
Estimate an ARIMA Model from measured data.
Estimate a 4th order ARIMA model for univariate time series data.
load iddata9 z9.y = cumsum(z9.y); % integrated data model = armax(z9, [4 1], 'IntegrateNoise', true); compare(z9, model, 10) % 10-step ahead prediction
Estimate ARMAX models of varying orders iteratively from measured data.
Estimate ARMAX models of orders varying between 1 and 4 for dryer data
load dryer2 z = iddata(y2,u2,0.08,'Tstart',0); na = 2:4; nc = 1:2; nk = 0:2; models = cell(1,18); ct = 1; for i = 1:3 na_ = na(i); nb_ = na_; for j = 1:2 nc_ = nc(j); for k = 1:3 nk_ = nk(k); models{ct} = armax(z, [na_, nb_, nc_, nk_]); ct = ct+1; end end end
Stack the estimated models and compare their simulated responses to estimation data z.
models = stack(1,models{:});
compare(z,models)
An iterative search algorithm minimizes a robustified quadratic prediction error criterion. The iterations are terminated either when the maximum number of iterations is reached, or when the expected improvement is less than the specified tolerance, or when a lower value of the criterion cannot be found. You can get information about the stopping criteria using sys.Report.Termination.
Use the armaxOptions option set to create and configure options affecting the estimation results. In particular, set the search algorithm attributes, such as MaxIter and Tolerance, using the 'SearchOption' property.
When you do not specify initial parameter values for the iterative search as an initial model, they are constructed in a special four-stage LS-IV algorithm.
The cutoff value for the robustification is based on the Advanced.ErrorThreshold estimation option and on the estimated standard deviation of the residuals from the initial parameter estimate. It is not recalculated during the minimization. By default, no robustification is performed; the default value of ErrorThreshold option is 0.
To ensure that only models corresponding to stable predictors
are tested, the algorithm performs a stability test of the predictor.
Generally, both
and
(if applicable) must have all
zeros inside the unit circle.
Minimization information is displayed on the screen when the estimation option 'Display' is 'On' or 'Full'. With 'Display' ='Full', both the current and the previous parameter estimates are displayed in column-vector form, listing parameters in alphabetical order. Also, the values of the criterion function (cost) are given and the Gauss-Newton vector and its norm are also displayed. With 'Display' = 'On' only the criterion values are displayed.
Ljung, L. System Identification: Theory for the User, Upper Saddle River, NJ, Prentice-Hal PTR, 1999. See chapter about computing the estimate.
armax does not support continuous-time model estimation. Use tfest to estimate a continuous-time transfer function model, or ssest to estimate a continuous-time state-space model.
armaxOptions | arx | bj | forecast | iddata | idfrd | idpoly | oe | polyest | ssest | tfest

Learn more about resources for designing, testing, and implementing control systems.
Get free kit| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |