Refine Initial ARMAX Model at Command Line

This example shows how to estimate an initial model and refine it using pem.

Load measured data.

load iddata8;

Split the data into an initial estimation data set and a refinement data set.

init_data = z8(1:100);
refine_data = z8(101:end);

init_data is an iddata object containing the first 100 samples from z8 and refine_data is an iddata object representing the remaining data in z8.

Estimate an ARMAX model.

nb=[3 2 3];
nk=[0 0 0];

sys = armax(init_data,[na nb nc nk]);

armax uses the default algorithm properties to estimate sys.

Refine the estimated model by specifying the estimation algorithm options. Specify stricter tolerance and increase the maximum iterations.

opt = armaxOptions;
opt.SearchOption.Tolerance = 1e-5;
opt.SearchOption.MaxIter = 50;

refine_sys = pem(refine_data,sys,opt);

Compare the fit of the initial and refined models.


refine_sys provides a closer fit to the data than sys.

You can similarly use polyest or armax to refine the estimated model.

See Also


Was this topic helpful?