Уточнение начальной модели ARMAX в командной строке

Этот пример показывает, как оценить начальную модель и уточнить ее используя pem.

Загрузите данные измерений.

load iddata8

Разделите данные на набор начальных данных оценки и набор данных уточнения.

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

init_data является iddata объект, содержащий первые 100 выборки из z8 и refine_data является iddata объект, представляющий оставшиеся данные в z8.

Оцените модель ARMAX.

na = 4;
nb = [3 2 3];
nc = 2;
nk = [0 0 0];

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

armax использует свойства алгоритма по умолчанию для оценки sys.

Уточните оценочную модель путем определения опций алгоритма оценки. Задайте более строгие допуски и увеличьте максимальные итерации.

opt = armaxOptions;
opt.SearchOptions.Tolerance = 1e-5;
opt.SearchOptions.MaxIterations = 50;

refine_sys = pem(refine_data,sys,opt);

Сравните подгонку начальной и уточненной моделей.

compare(refine_data,sys,refine_sys)

Figure contains an axes. The axes contains 3 objects of type line. These objects represent refine\_data (y1), sys: 80.05%, refine\_sys: 81.25%.

refine_sys обеспечивает более близкую подгонку к данным, чем sys.

Можно аналогично использовать polyest или armax для уточнения предполагаемой модели.

См. также

Функции