Этот пример показывает, как оценить начальную модель и уточнить ее используя 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)
refine_sys
обеспечивает более близкую подгонку к данным, чем sys
.
Можно аналогично использовать polyest
или armax
для уточнения предполагаемой модели.