| System Identification Toolbox™ | ![]() |
You can estimate the following types of linear polynomial model structures:
![]()
The polynomials A, Bi, C, D, and F i contain the time-shift
operator q. ui is the ith input, nu is the total number of inputs, and nki is the ith input delay that characterizes the delay response time. The variance
of the white noise e(t) is assumed to be
. For more information about
the time-shift operator, see Understanding the Time-Shift Operator q.
Note This form is completely equivalent to the Z-transform form: q corresponds to z. |
To estimate polynomial models, 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-command 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. To understand this time-shift operator, consider the following discrete-time difference equation:
![]()
where y(t) is the output, u(t) is the input, and T is the sampling interval. q-1 is a time-shift operator
that compactly represents such difference equations using
:

In this case,
and
.
Note 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:
![]()
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. For more information about the time-shift operator, see Understanding the Time-Shift Operator q.
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 | Discrete-Time Form | Noise Model |
|---|---|---|
| ARX |
| The noise model is
|
| ARMAX |
| 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. |
| Box-Jenkins (BJ) |
| 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) |
| Use when you want to parameterize dynamics, but do not want to estimate a noise model. |
The System Identification Tool GUI supports only the polynomial models listed in the table. However, you can use pem to estimate all five polynomial or any subset of polynomials in the general equation. For more information about working with pem, see Using pem 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:
![]()
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, na=3 and nb=2 correspond to the following model:
![]()
The simplest way to estimate continuous-time polynomial models of arbitrary structure is to first estimate a discrete-time model of arbitrary order and then use d2c to convert this model to continuous time. For more information, see Transforming Between Discrete-Time and Continuous-Time Representations.
You can also 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.
You can use a multiple-output ARX model to model a multiple-output dynamic system. The ARX model structure is given by the following equation:
![]()
For a system with nu inputs and ny outputs, A(q) is an ny-by-ny matrix. A(q) can be represented as a polynomial in the shift operator q-1:
![]()
For more information about the time-shift operator, see Understanding the Time-Shift Operator q.
A(q) can also be represented as a matrix:

where the matrix element akj is a polynomial in the shift operator q-1:
![]()
represents
the Kronecker delta, which equals 1 for k=j and
equals 0 for k≠j. This polynomial describes
how the old values of the jth output are affected
by the kth output. The ith row of A(q) represents the contribution of
the past output values for predict the current value of the ith output.
B(q) is an ny-by-ny matrix. B(q) can be represented as a polynomial in the shift operator q-1:
![]()
B(q) can also be represented as a matrix:

where the matrix element bkj is a polynomial in the shift operator q-1:
![]()
nkkj is the delay from the jth input to the kth output. B(q) represents the contributions of inputs to predicting all output values.
You can estimate linear, black-box polynomial models from data with the following characteristics:
Time- or frequency-domain data (iddata or idfrd data objects).
To estimate black-box polynomial models for time-series data, see Identifying Time-Series Models.
Real data or complex data in any domain.
Single-output and multiple-output.
You must import your data into the MATLAB® workspace, as described in Preparing Data for System Identification.
To get a linear, continuous-time model of arbitrary structure for time-domain data, you can estimate a discrete-time model, and then use d2c to transform it to a continuous-time model.
For continuous-time frequency-domain data, you can estimate directly only the ARX and Output-Error (OE) continuous-time models. Other structures include noise models, which is not supported for frequency-domain data.
Tip To denote continuous-time frequency-domain data, set the data sampling interval to 0. You can set the sampling interval when you import data into the GUI or set the Ts property of the data object at the command line. |
You can estimate arbitrary-order, linear state-space models for both time- or frequency-domain data.
Your data must have the data property Ts set to the experimental data sampling interval.
Tip You can set the sampling interval when you import data into the GUI or set the Ts property of the data object at the command line. |
To estimate polynomial models, you must provide input delays and model orders. If you already have insight into the physics of your system, you can specify the number of poles and zeros.
In most cases, you do not know the model orders in advance. To get initial model orders and delays for your system, you can estimate several ARX models with a range of orders and delays and compare the performance of these models. You choose the model orders that correspond to the best model performance and use these orders as an initial guess for further modeling.
Because this estimation procedure uses the ARX model structure, which includes the A and B polynomials, you only get estimates for the na, nb, and nk parameters. However, you can use these results as initial guesses for the corresponding polynomial orders and input delays in other model structures, such as ARMAX, OE, and BJ.
If the estimated nk is too small, the leading nb coefficients are much smaller than their standard deviations. Conversely, if the estimated nk is too large, there is a significant correlation between the residuals and the input for lags that correspond to the missing B terms. For information about residual analysis plots, see Using Residual Analysis Plots to Validate Models.
The following procedure assumes that you have already imported your data into the GUI and performed any necessary preprocessing operations. For more information, see Preparing Data for System Identification.
To estimate model orders and input delays in the System Identification Tool GUI:
In the System Identification Tool GUI, select Estimate > Linear parametric models to open the Linear Parametric Models dialog box.
The ARX model is already selected by default in the Structure list.
Edit the Orders field to specify a range of poles, zeros, and delays. For example, enter the following values for na, nb, and nk:
[1:10 1:10 1:10]

Click Estimate to open the ARX Model Structure Selection window, which displays the model performance for each combination of model parameters. The following figure shows an example plot.

Select a rectangle that represents the optimum parameter combination and click Insert to estimates a model with these parameters. For information about using this plot, see Selecting Model Orders from the Best ARX Structure.
This action adds a new model to the Model Board in the System Identification Tool GUI. The default name of the parametric model contains the model type and the number of poles, zeros, and delays. For example, arx692 is an ARX model with na=6, nb=9, and a delay of two samples.
Click Close to close the ARX Model Structure Selection window.
After estimating model orders and delays, use these values as initial guesses for estimating other model structures, as described in How to Estimate Polynomial Models in the GUI.
You can estimate model orders using the struc, arxstruc, and selstruc commands in combination.
If you are working with a multiple-output system, you must use struc, arxstruc, and selstruc commands for each output. In this case, you must subreference the correct output channel in your estimation and validation data sets.
For each estimation, you use two independent data sets—an estimation data set and a validation data set. These independent data set can be from different experiments, or you can select these data sets from a single experiment. For more information about subreferencing data, see Subreferencing iddata Objects and Subreferencing idfrd Objects.
For an example of estimating model orders for a multiple-input system, see Estimating Delays in the Multiple-Input System in System Identification Toolbox Getting Started Guide.
struc. The struc command creates a matrix of possible model-order combinations for a specified range of na, nb, and nk values.
For example, the following command defines the range of model orders and delays na=2:5, nb=1:5, and nk=1:5:
NN = struc(2:5,1:5,1:5))
Note struc applies only to single-input/single-output models. If you have multiple inputs and want to use struc, apply this command to one input-output pair at a time. |
arxstruc. The arxstruc command takes the output from struc, estimates an ARX model for each model order, and compares the model output to the measured output. arxstruc returns the loss for each model, which is the normalized sum of squared prediction errors.
For example, the following command uses the range of specified orders NN to compute the loss command for single-input/single-output estimation data data_e and validation data data_v:
V = arxstruc(data_e,data_v,NN)
Each row in NN corresponds to one set of orders:
[na nb nk]
selstruc. The selstruc command takes the output from arxstruc and opens the ARX Model Structure Selection window to guide your choice of the model order with the best performance.
For example, to open the ARX Model Structure Selection window and interactively choose the optimum parameter combination, use the following command:
selstruc(V)
For more information about working with the ARX Model Structure Selection window, see Selecting Model Orders from the Best ARX Structure.
To find the structure that minimizes Akaike's Information Criterion, use the following command:
nn = selstruc(V,'AIC')
where nn contains the corresponding na, nb, and nk orders.
Similarly, to find the structure that minimizes the Rissanen's Minimum Description Length (MDL), use the following command:
nn = selstruc(V,'MDL')
To select the structure with the smallest loss command, use the following command:
nn = selstruc(V,0)
After estimating model orders and delays, use these values as initial guesses for estimating other model structures, as described in Using pem to Estimate Polynomial Models.
The delayest command estimates the time delay in a dynamic system by estimating a low-order, discrete-time ARX model and treating the delay as an unknown parameter.
By default, delayest assumes that na=nb=2 and that there is a good signal-to-noise ratio, and uses this information to estimate nk.
To estimate the delay for a data set data, type the following at the prompt:
delayest(data)
If your data has a single input, MATLAB computes a scalar value for the input delay—equal to the number of data samples. If your data has multiple inputs, MATLAB returns a vector, where each value is the delay for the corresponding input signal.
To compute the actual delay time, you must multiply the input delay by the sampling interval of the data.
You can also use the ARX Model Structure Selection window to estimate input delays and model order together, as described in Estimating Model Orders at the Command Line.
You generate the ARX Model Structure Selection window for your data to select the best-fit model.
For a procedure on generating this plot in the System Identification Tool GUI, see Estimating Orders and Delays in the GUI. To open this plot at the command line, see Estimating Model Orders at the Command Line.
The following figure shows a sample plot in the ARX Model Structure Selection window.

The horizontal axis in the ARX Model Structure Selection window is the total number of ARX parameters:
![]()
The vertical axis, called Unexplained output variance (in %), is the ARX model prediction error for a specific number of parameters. The prediction error is the sum of the squares of the differences between the validation data output and the model output. In other words, Unexplained output variance (in %) is the portion of the output not explained by the model.
Three rectangles are highlighted on the plot—green, blue, and red. Each color indicates a type of best-fit criterion, as follows:
Red minimizes the sum of the squares of the difference between the validation data output and the model output. This option is considered the overall best fit.
Green minimizes Rissanen MDL criterion.
Blue minimizes Akaike AIC criterion.
In the ARX Model Structure Selection window, click any bar to view the orders that give the best fit. The area on the right is dynamically updated to show the orders and delays that give the best fit.
For more information about the AIC criterion, see Using Akaike's Criteria to Validate Models.
Before you estimate polynomial models, you must have already imported your data into the GUI and performed any necessary preprocessing operations. For more information, see Preparing Data for System Identification.
This procedure also requires that you select a model structure and specify model orders and delays. For more information about how to estimate model orders and delays, see Estimating Orders and Delays in the GUI.
If you are estimating a multiple-output ARX model, you must specify order matrices in the MATLAB workspace before estimation, as described in Options for Multiple-Input and Multiple-Output ARX Orders.
To estimate a polynomial model in the System Identification Tool GUI.
In the System Identification Tool GUI, select Estimate > Linear parametric models to open the Linear Parametric Models dialog box.
In the Structure list, select the polynomial model structure you want to estimate from the following options:
ARX:[na nb nk]
ARMAX:[na nb nc nk]
OE:[nb nf nk]
BJ:[nb nc nd nf nk]
This action updates the options in the Linear Parametric Models dialog box to correspond with this model structure. For information about each model structure, see What Are Black-Box Polynomial Models?.
Note For time-series data, only AR and ARMA models are available. For more information about estimating time-series models, see Identifying Time-Series Models. |
In the Orders field, specify the model orders and delays, as follows:
For single-output polynomial models. Enter the model orders and delays according to the sequence displayed in the Structure field. For multiple-input models, specify nb and nk as row vectors with as many elements as there are inputs. If you are estimating BJ and OE models, you must also specify nf as a vector.
For example, for a three-input system, nb can be [1 2 4], where each element corresponds to an input.
For multiple-output ARX models. Enter the model orders, as described in Options for Multiple-Input and Multiple-Output ARX Orders.
(ARX models only) Select the estimation Method as ARX or IV (instrumental variable method). For information about the algorithms, see Algorithms for Estimating Polynomial Models.
In the Name field, edit the name of the model or keep the default. The name of the model should be unique in the Model Board.
In the Focus list, select how to weigh the relative importance of the fit at different frequencies. For more information about each option, see Option for Frequency-Weighing Focus.
In the Initial state list, specify how you want the algorithm to treat initial states. For more information about the available options, see Options for Initial States.
In the Covariance list, select Estimate if you want the algorithm to compute parameter uncertainties. Effects of such uncertainties are displayed on plots as model confidence regions.
To omit estimating uncertainty, select None. Skipping uncertainty computation for large, multiple-output ARX models might reduce computation time.
(ARMAX, OE, and BJ models only) To view the estimation progress in the MATLAB Command Window, select the Trace check box. During estimation, the following information is displayed for each iteration:
Loss command — Equals the determinant of the estimated covariance matrix of the input noise.
Parameter values — Values of the model structure coefficients you specified.
Search direction — Change in parameter values from the previous iteration.
Fit improvements — Shows the actual versus expected improvements in the fit.
Click Estimate to add this model to the Model Board in the System Identification Tool GUI.
(Prediction-error method only) To stop the search and save the results after the current iteration has been completed, click Stop Iterations. To continue iterations from the current model, click the Continue iter button to assign current parameter values as initial guesses for the next search.
To plot the model, select the appropriate check box in the Model Views area of the System Identification Tool GUI. For more information about validating models, see Overview of Model Validation and Plots.
If you get an inaccurate fit, try estimating a new model with different orders or structure. You can export the model to the MATLAB workspace for further analysis by dragging it to the To Workspace rectangle in the System Identification Tool GUI.
You can estimate single-output and multiple-output ARX models using the arx and iv4 commands. For information about the algorithms, see Algorithms for Estimating Polynomial Models.
If you are estimating a multiple-output ARX model, you must specify order matrices in the MATLAB workspace before estimation, as described in Options for Multiple-Input and Multiple-Output ARX Orders.
For single-output data, the arx and iv4 commands produce an idpoly model object, and for multiple-output data these commands produce an idarx model object.
You can use the following general syntax to both configure and estimate ARX models:
% Using ARX method
m = arx(data,[na nb nk],'Property1',Value1,...,
'PropertyN',ValueN)
% Using IV method
m = iv4(data,[na nb nk],'Property1',Value1,...,
'PropertyN',ValueN)
data is the estimation data and [na nb nk] specifies the model orders, as discussed in What Are Black-Box Polynomial Models?.
The property-value pairs specify any model properties that configure the estimation algorithm and the initial conditions. For more information about accessing and setting model properties, see Model Properties.
Note You can specify all property-value pairs as a comma-separated list. |
To get discrete-time models, use the time-domain data (iddata object). To get a single-output continuous-time model, apply d2c to a discrete-time model or use continuous-time frequency-domain data—either idfrd object, or frequency-domain iddata with Ts=0.
Note The System Identification Toolbox product does not support multiple-output continuous-time idarx models. |
For more information about validating you model, see Overview of Model Validation and Plots.
You can use pem to refine parameter estimates of an existing polynomial model, as described in Refining Linear Parametric Models.
For detailed information about these commands, see the corresponding reference page.
You can estimate any single-output polynomial model using the iterative prediction-error estimation method pem. For Gaussian disturbances, this method gives the maximum likelihood estimate. that minimizes the prediction errors to obtain maximum-likelihood values. The resulting models are stored as idpoly model objects.
Use the following general syntax to both configure and estimate polynomial models:
m = pem(data,'na',na,
'nb',nb,
'nc',nc,
'nd',nb,
'nf',nc,
'nk',nk,
'Property1',Value1,...,
'PropertyN',ValueN)where data is the estimation data. na, nb, nc, nd, nf are integers that specify the model orders, and nk specifies the input delays for each input. If you skip any property-value pair, the corresponding parameter value is set to zero—except nk, which has the default value 1. For more information about model orders, see What Are Black-Box Polynomial Models?.
Tip You do not need to construct the model object using idoly before estimation. |
If you want to estimate the coefficients of all five polynomials, A, B, C, D, and F, you must specify an integer order for each polynomial. However, if you want to specify an ARMAX model for example, which includes only the A, B, and C polynomials, you must set nd and nf to 0.
In addition to the polynomial models listed in What Are Black-Box Polynomial Models?, you can use pem to model the ARARX structure—called the generalized least-squares model—by setting nc=nf=0. You can also model the ARARMAX structure—called the extended matrix model—by setting nf=0.
The property-value pairs specify any model properties that configure the estimation algorithm and the initial conditions. You can enter all property-value pairs in pem as a comma-separated list without worrying about the hierarchy of these properties in the idpoly model object. For more information about accessing and setting model properties, see Model Properties.
For multiple inputs, nb, nf, and nk are row vectors of the same lengths as the number of input channels:
nb = [nb1 ... nbnu]; nf = [nf1 ... nfnu]; nk = [nk1 ... nknu];
For ARMAX, Box-Jenkins, and Output-Error models—which can only be estimated using the iterative prediction-error method—use the armax, bj, and oe estimation commands, respectively. These commands are versions of pem with simplified syntax for these specific model structures, as follows:
m = armax(Data,[na nb nc nk]) m = oe(Data,[nb nf nk]) m = bj(Data,[nb nc nd nf nk])
Tip If your data is sampled fast, it might help to apply a lowpass filter to the data before estimating the model. For example, to model only data in the frequency range 0-10 rad/s, use the Focus property, as follows: m = oe(Data,[nb nf nk],'Focus',[0 10]) |
For more information about validating you model, see Overview of Model Validation and Plots.
You can use pem to refine parameter estimates of an existing polynomial model, as described in Refining Linear Parametric Models.
For detailed information about pem and idpoly, see the corresponding reference page.
To estimate a multiple-input and multiple-output (MIMO) ARX model, you must first specify the model order matrices, as follows:
NA — An ny-by-ny matrix whose i-jth entry is the order of the polynomial that relates the jth output to the ith output.
NB — An ny-by-nu matrix whose i-jth entry is the order of the polynomial that relates the jth input to the ith output.
NK — An ny-by-nu matrix whose i-jth entry is the delay from the jth input to the ith output.
For ny outputs and nu inputs, the A coefficients are ny-by-ny matrices and the B coefficients are ny-by-nu matrices. For more information about MIMO ARX structure, see Definition of Multiple-Output ARX Models.
Note For multiple-output time-series models, only AR models are supported. AR models require only the NA matrix. |
In the System Identification Tool GUI. You can enter the matrices directly in the Orders field.
At the command line. Define variables that store the model order matrices and specify these variables in the mdoel-estimation command. You can use the following syntax to estimate a model with these orders:
arx(data,'na',NA,'nb',NB,'nk',NK)
Tip To simplify entering large matrices orders in the System Identification Tool GUI, define the variable NN=[NA NB NK] at the command line. You can specify this variable in the Orders field. |
You can specify how the estimation algorithm weighs the fit at various frequencies. This information supports the estimation procedures How to Estimate Polynomial Models in the GUI and Using pem to Estimate Polynomial Models.
In the System Identification Tool GUI. Set Focus to one of the following options:
Prediction — Uses the inverse of the noise model H to weigh the relative importance of how closely to fit the data in various frequency ranges. Corresponds to minimizing one-step-ahead prediction, which typically favors the fit over a short time interval. Optimized for output prediction applications.
Simulation — Uses the input spectrum to weigh the relative importance of the fit in a specific frequency range. Does not use the noise model to weigh the relative importance of how closely to fit the data in various frequency ranges. Optimized for output simulation applications.
Stability — Estimates the best stable model. For more information about model stability, see Unstable Models.
Filter — Specify a custom filter to open the Estimation Focus dialog box, where you can enter a filter, as described in Simple Passband Filter or Defining a Custom Filter. This prefiltering applies only for estimating the dynamics from input to output. The disturbance model is determined from the unfiltered estimation data.
At the command line. Specify the focus as an argument in the model-estimation command using the same options as in the GUI. For example, use this command to estimate an ARX model and emphasize the frequency content related to the input spectrum only:
m=arx(data,[2 2 3],'Focus','Simulation')
This Focus setting might produce more accurate simulation results.
When you use the iterative estimation algorithm PEM to estimate ARMAX, Box-Jenkins (BJ), Output-Error (OE), you must specify how the algorithm treats initial states.
This information supports the estimation procedures How to Estimate Polynomial Models in the GUI and Using pem to Estimate Polynomial Models.
In the System Identification Tool GUI. For ARMAX, OE, and BJ models, set Initial state to one of the following options:
Auto — Automatically chooses Zero, Estimate, or Backcast based on the estimation data. If initial states have negligible effect on the prediction errors, the initial states are set to zero to optimize algorithm performance.
Zero — Sets all initial states to zero.
Estimate — Treats the initial states as an unknown vector of parameters and estimates these states from the data.
Backcast — Estimates initial states using a smoothing filter.
At the command line. Specify the initial states as an argument in the model-estimation command. For example, use this command to estimate an ARMAX model and set the initial states to zero:
m=armax(data,[2 2 2 3],'InitialState','zero')
For a complete list of values for the InitialState model property, see the idpoly reference page.
For linear ARX and AR models, you can choose between the ARX and IV algorithms. ARX implements the least-squares estimation method that uses QR-factorization for overdetermined linear equations. IV is the instrumental variable method. For more information about IV, see the section on variance-optimal instruments in System Identification: Theory for the User, Second Edition, by Lennart Ljung, Prentice Hall PTR, 1999.
The ARX and IV algorithms treat noise differently. ARX assumes white noise. However, the instrumental variable algorithm, IV, is not sensitive to noise color. Thus, use IV when the noise in your system is not completely white and it is incorrect to assume white noise. If the models you obtained using ARX are inaccurate, try using IV.
Note AR models apply to time-series data, which has no input. For more information, see Identifying Time-Series Models. For more information about working with AR and ARX models, see Identifying Input-Output Polynomial Models. |
You can use estimation commands to both construct a model object and estimate the model parameters. In this example, you estimate a linear, polynomial model with an ARMAX structure for a three-input and single-output (MISO) system using the iterative estimation method armax. For a summary of all available estimation commands in the toolbox, see Commands for Model Estimation.
Load a sample data set z8 with three inputs and one output, measured at 1-second intervals and containing 500 data samples:
load iddata8
Use armax to both construct the idpoly model object, and estimate the parameters:
![]()
Typically you try different model orders and compare results, ultimately choosing the simplest model that best describes the system dynamics. The following command specifies the estimation data set, z8, and the orders of the A, B, and C polynomials as na, nb, and nc, respectively. nk of [0 0 0] specifies that there is no input delay for all three input channels.
m_armax=armax(z8,'na',4,...
'nb',[3 2 3],...
'nc',4,...
'nk',[0 0 0],...
'focus', 'simulation',...
'tolerance',1e-5,...
'maxiter',50);covariance, focus, tolerance, and maxiter are optional arguments specify additional information about the computation. focus specifies whether the model is optimized for simulation or prediction applications, tolerance and maxiter specify when to stop estimation. For more information about these properties, see the algorithm properties reference page.
armax is a version of pem with simplified syntax for the ARMAX model structure. The armax method both constructs the idpoly model object and estimates its parameters.
Tip Instead of specifying model orders and delays as individual property-value pairs, you can use the equivalent shorthand notation that includes all of the order integers in a single vector, as follows: m_armax=armax(z8,[4 3 2 3 4 0 0 0],...
'focus', 'simulation',...
'tolerance',1e-5,...
'maxiter',50); |
To view information about the resulting model object, type the following at the prompt:
m_armax
MATLAB returns the following information about this model object:
Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t) A(q) = 1 - 1.255q^-1 + 0.2551q^-2 + 0.2948q^-3 - 0.0619q^-4 B1(q) = -0.09168 + 1.105q^-1 + 0.7399q^-2 B2(q) = 1.022 + 0.129q^-1 B3(q) = -0.07605 + 0.08681q^-1 + 0.5619q^-2 C(q) = 1-0.06117q^-1 - 0.1461q^-2 + 0.009862q^-3 - 0.04313q^-4 Estimated using ARMAX from data set z8 Loss function 2.23844 and FPE 2.35202 Sampling interval: 1
m_armax is an idpoly model object. The coefficients represent estimated parameters of this polynomial model.
To view all property values for this model, type the following command:
get(m_armax
ans =
a: [1 -1.2549 0.2551 0.2948 -0.0619]
b: [3x3 double]
c: [1 -0.0612 -0.1461 0.0099 -0.0431]
d: 1
f: [3x1 double]
da: []
db: [3x0 double]
dc: []
dd: []
df: [3x0 double]
na: 4
nb: [3 2 3]
nc: 4
nd: 0
nf: [0 0 0]
nk: [0 0 0]
InitialState: 'Auto'
Name: ''
Ts: 1
InputName: {3x1 cell}
InputUnit: {3x1 cell}
OutputName: {'y1'}
OutputUnit: {''}
TimeUnit: ''
ParameterVector: [16x1 double]
PName: {}
CovarianceMatrix: [16x16 double]
NoiseVariance: 0.9932
InputDelay: [3x1 double]
Algorithm: [1x1 struct]
EstimationInfo: [1x1 struct]
Notes: {}
UserData: []The Algorithm and EstimationInfo model properties are structures. To view the properties and values inside these structure, use dot notation. For example:
m_armax.Algorithm
This action displays the complete list of Algorithm properties and values that specify the iterative computational algorithm:
ans =
Approach: 'Pem'
Focus: 'Simulation'
MaxIter: 50
Tolerance: 1.0000e-005
LimitError: 1.6000
MaxSize: 'Auto'
SearchDirection: 'Auto'
FixedParameter: []
Trace: 'Off'
N4Weight: 'Auto'
N4Horizon: 'Auto'
Advanced: [1x1 struct]Similarly, to view the properties and values of the EstimationInfo structure, type the following command:
m_armax.EstimationInfo
This action displays the complete list of read-only EstimationInfo properties and values that describe the estimation data set, quantitative measures of model quality (loss command and FPE), the number of iterations actually used, and the behavior of the iterative model estimation.
ans =
Status: 'Estimated model (PEM)'
Method: 'ARMAX'
LossFcn: 0.9602
FPE: 1.0263
DataName: 'z8'
DataLength: 500
DataTs: 1
DataDomain: 'Time'
DataInterSample: {3x1 cell}
WhyStop: 'Near (local) minimum, (norm(g)<tol).'
UpdateNorm: 8.0572e-006
LastImprovement: '7.4611e-006%'
Iterations: 4
InitialState: 'Zero'
Warning: 'None'If you want to repeat the model estimation using different model orders, but keep the algorithm properties the same, you can store the model properties used for m_armax in a variable, as follows:
myAlg=m_armax.Algorithm
This action stores the specified focus, tolerance, and maxiter, and the default algorithm.
To reuse the algorithm properties in estimating the ARMAX model with different orders, use the following command:
m_armax2=armax(z8,[4 3 2 3 3 1 1 1],...
'algorithm',myAlg);![]() | Identifying Low-Order Transfer Functions (Process Models) | Identifying State-Space Models | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |