arx - Estimate parameters of ARX or AR model using least squares returning idpoly or idarx object

Syntax

m = arx(data,orders)
m = arx(data,orders,'P1',V1,...,'PN',VN)
m = arx(data,'na',na,'nb',nb,'nc',nc,'nk',nk)

Arguments

data

An iddata object, an frd object, or an idfrd frequency-response-data object.

orders

Vector of integers, specified using the format

orders = [na nb nk]

For multiple-input systems, nb and nk are row vectors where the ith element corresponds to the order and delay associated with the ith input.

When data is a time series, which has no input and one output, then

orders = [na]

'na',na,'nb',nb,'nc',nc,'nk',nk

'na', 'nb', and 'nc' are orders of the ARMAX model. nk is the delay. na, nb, nc, and nk are the corresponding integer values.

'P1',V1,...,'PN',VN

Pairs of property names and property values can include any of the following idmodel properties:

'Focus', 'InitialState', 'Display', 'MaxIter', 'Tolerance', 'LimitError', and 'FixedParameter'.

See Algorithm Properties, idpoly, and idmodel for more information.

Description

m = arx(data,orders) returns a model m with estimated parameters and covariances (parameter uncertainties). For single-output data, the model is an idpoly object. For multiple-output data, the model is an idarx object. Uses the least-squares method and specified orders.

m = arx(data,orders,'P1',V1,...,'PN',VN) returns a model m. Use additional property-value pairs to specify the estimation algorithm properties.

m = arx(data,'na',na,'nb',nb,'nc',nc,'nk',nk) returns a model m with orders and delays specified as parameter-value pairs.

Remarks

arx estimates the parameters of the ARX model structure:

The parameters na and nb are the orders of the ARX model, and nk is the delay.

A more compact way to write the difference equation is

q is the delay operator. Specifically,

Time Series Models

For time-series data that contains no inputs, one output and orders = na, the model has AR structure of order na.

The AR model structure is

Multiple Inputs and Single-Output Models

For multiple-input systems, nb and nk are row vectors where the ith element corresponds to the order and delay associated with the ith input.

Multioutput Models

For models with multiple inputs and multiple outputs, na, nb, and nk contain one row for each output signal.

In the multiple-output case, arx minimizes the trace of the prediction error covariance matrix, or the norm

To transform this to an arbitrary quadratic norm using a weighting matrix Lambda

use the syntax

m = arx(data,orders,'NoiseVariance', Lambda)

You can use arx to refine an existing model m_initial as an argument.

m = arx(data,m_initial)

The new model m uses the orders and the weighting matrix for the prediction errors from m_initial. You can further modify m_initial by adding a list of property name and value pairs as arguments. This is especially useful when some parameters must be fixed using 'FixedParameter' property.

Continuous-Time Models

For models with one output, continuous-time models can be estimated from continuous-time frequency-domain data. In this case, na is the number of estimated denominator coefficients and nb is number of estimated numerator coefficients.

For example, when na = 4, nb = 2, the model structure is:

Estimating Initial Conditions

For time-domain data, the signals are shifted such that unmeasured signals are never required in the predictors. Therefore, there is no need to estimate initial conditions.

For frequency-domain data, it might be necessary to adjust the data by initial conditions that support circular convolution.

You can set the property 'InitialState' to one of the following values:

See Algorithm Properties for more information on model properties.

Algorithm

QR factorization solves the overdetermined set of linear equations that constitutes the least-squares estimation problem.

The regression matrix is formed so that only measured quantities are used (no fill-out with zeros). When the regression matrix is larger than MaxSize, data is segmented and QR factorization is performed iteratively on these data segments.

Examples

This example generates input data based on a specified ARX model, and then uses this data to estimate an ARX model.

A = [1  -1.5  0.7]; B = [0 1 0.5];
m0 = idpoly(A,B);
u = iddata([],idinput(300,'rbs'));
e = iddata([],randn(300,1));
y = sim(m0, [u e]);
z = [y,u];
m = arx(z,[2 2 1]);

See Also

Algorithm Properties 
EstimationInfo 
ar 
idarx 
idpoly 
iv4 
ivar 
ivx 
pem 

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS