recursiveARMAX
Create System object for online parameter estimation of ARMAX model
Syntax
obj = recursiveARMAX
obj = recursiveARMAX(Orders)
obj = recursiveARMAX(Orders,A0,B0,C0)
obj = recursiveARMAX(___,Name,Value)
Description
Use recursiveARMAX
command for
parameter estimation with realtime data. If all data necessary for
estimation is available at once, and you are estimating a timeinvariant
model, use the offline estimation command, armax
.
creates
a System object™ for online parameter estimation of default singleinput
singleoutput (SISO) ARMAX model structure. The default
model structure has polynomials of order 1 and initial polynomial
coefficient values obj
= recursiveARMAXeps
.
After creating the object, use the step
command
to update model parameter estimates using recursive estimation algorithms
and realtime data.
specifies
the polynomial orders of the ARMAX model to be estimated.obj
= recursiveARMAX(Orders
)
specifies
the polynomial orders and initial values of the polynomial coefficients.
Specify initial values to potentially avoid local minima during estimation.
If the initial values are small compared to the default obj
= recursiveARMAX(Orders
,A0,B0,C0
)InitialParameterCovariance
property
value, and you have confidence in your initial values, also specify
a smaller InitialParameterCovariance
.
specifies
additional attributes of the ARMAX model structure and recursive estimation
algorithm using one or more obj
= recursiveARMAX(___,Name,Value
)Name,Value
pair arguments.
Object Description
recursiveARMAX
creates a System object for
online parameter estimation of SISO ARMAX models using a recursive
estimation algorithm.
A System object is a specialized MATLAB^{®} object designed specifically for implementing and simulating dynamic systems with inputs that change over time. System objects use internal states to store past behavior, which is used in the next computational step.
After you create a System object, you use commands to process
data or obtain information from or about the object. System objects
use a minimum of two commands to process data — a constructor
to create the object and the step
command
to update object parameters using realtime data. This separation
of declaration from execution lets you create multiple, persistent,
reusable objects, each with different settings.
You can use the following commands with the online estimation System objects in System Identification Toolbox™:
Command  Description 

step  Update model parameter estimates using recursive estimation algorithms and realtime data.

release  Unlock the System object. Use this command to enable setting of nontunable parameters. 
reset  Reset the internal states of a locked System object to the initial values, and leave the object locked. 
clone  Create another System object with the same object property values. Do not create additional objects using
syntax 
isLocked  Query locked status for input attributes and nontunable properties of the System object. 
Use the recursiveARMAX
command to create
an online estimation System object. Then estimate the ARMAX model
parameters (A
, B
, and C
)
and output using the step
command with incoming input and output
data, u
, and y
.
[A,B,C,EstimatedOutput] = step(obj,y,u)
For recursiveARMAX
object properties, see Properties.
Examples
Input Arguments
Properties
recursiveARMAX
System object properties
consist of readonly and writable properties. The writable properties
are tunable and nontunable properties. The nontunable properties cannot
be changed when the object is locked, that is, after you use the step
command.
Use Name,Value
arguments to specify writable
properties of recursiveARMAX
objects during object
creation. After object creation, use dot notation to modify the tunable
properties.
obj = recursiveARMAX; obj.ForgettingFactor = 0.99;

Estimated coefficients of polynomial A(q), returned as a row vector of real values specified in order of ascending powers of q^{1}.


Estimated coefficients of polynomial B(q), returned as a vector of real values specified in order of ascending powers of q^{1}.


Estimated coefficients of polynomial C(q), returned as a vector of real values specified in order of ascending powers of q^{1}.


Initial values for the coefficients of polynomial A(q)
of order If the initial guesses are much smaller than the default
Default: 

Initial values for the coefficients of polynomial B(q)
of order If the initial guesses are much smaller than the default
Default: 

Initial values for the coefficients of polynomial C(q)
of order The coefficients in InitialC = [1 0.5 0.5]; all(abs(roots(InitialC))<1) ans = 1 If the initial guesses are much smaller than the default
Default: 

Estimated covariance The interpretation of


Covariance of the initial parameter estimates, specified as one of the following:
Use only when
Default: 

Recursive estimation algorithm used for online estimation of model parameters, specified as one of the following values:
Forgetting factor and Kalman filter algorithms are more computationally intensive than gradient and unnormalized gradient methods. However, they have better convergence properties. For information about these algorithms, see Recursive Algorithms for Online Parameter Estimation.
Default: 

Forgetting factor, λ, relevant for parameter estimation, specified as a scalar in the range (0,1]. Suppose that the system remains approximately constant over T_{0} samples. You can choose λ such that: $${T}_{0}=\frac{1}{1\lambda}$$
Typical choices of λ are in the range Use only when
Default: 

Enable or disable parameter estimation, specified as one of the following:
Default: 

Floating point precision of parameters, specified as one of the following values:
Setting
Default: 

Covariance matrix of parameter variations, specified as one of the following:
N is the number of parameters to be estimated.
Kalman filter algorithm treats the parameters as states of a
dynamic system and estimates these parameters using a Kalman filter.
Default: 

Adaptation gain, γ, used in gradient recursive estimation algorithms, specified as a positive scalar.
Specify a large value for
Default: 

Bias in adaptation gain scaling used in the
The normalized gradient algorithm divides the adaptation gain
at each step by the square of the twonorm of the gradient vector.
If the gradient is close to zero, this can cause jumps in the estimated
parameters.
Default: 
Output Arguments
More About
Tips
Starting in R2016b, instead of using the
step
command to update model parameter estimates, you can call the System object with input arguments, as if it were a function. For example,[A,B,C,EstimatedOutput] = step(obj,y,u)
and[A,B,C,EstimatedOutput] = obj(y,u)
perform equivalent operations.
Extended Capabilities
See Also
step
 release
 reset
 clone
 isLocked
 Recursive
Polynomial Model Estimator  armax
 recursiveAR
 recursiveARX
 recursiveARMA
 recursiveBJ
 recursiveOE
 recursiveLS