В этом примере показано, как оценивать модели ARMAX и OE-формы с использованием подхода оценки состояния-пространства.
Можно оценить эквивалент моделей с несколькими выходами ARMAX и Output-Error (OE), используя структуры моделей state-space:
Преобразование полученных моделей в idpoly для их просмотра в обычно определяемых формах ARMAX или OE.
Данные измерения нагрузки.
load iddata1 z1
Оценка моделей состояния-пространства.
mss_noK = n4sid(z1,2,'DisturbanceModel','none'); mss = n4sid(z1,2);
mss_noK - модель состояния-пространства второго порядка без модели возмущений, используемой при оценке. mss является также моделью состояния-пространства второго порядка, но с оценочной составляющей шума. В обеих моделях используется набор измеренных данных z1 для оценки.
Преобразуйте модели состояния-пространства в полиномиальные модели.
mOE = idpoly(mss_noK); mARMAX = idpoly(mss);
Преобразование в полиномиальные модели приводит к получению информации о ковариации параметра для mOE и mARMAX быть потерянным.
Для повторного вычисления ковариации можно использовать одно из следующих значений:
Обновление нулевой итерации с использованием тех же данных оценки.
translatecov как приближение Гаусса, основанное на формуле трансляции ковариации mss_noK и mss в ковариацию mOE и mARMAX.
Переоценка mOE и mARMAX для параметров полиномиальной модели с использованием обновления нулевой итерации.
opt = polyestOptions; opt.SearchOptions.MaxIterations = 0; mOE = polyest(z1,mOE,opt); mARMAX = polyest(z1,mARMAX,opt);
Объект options, opt, задает обновление нулевой итерации для mOE и mARMAX. Следовательно, параметры модели остаются неизменными, и обновляется только их информация ковариации.
Кроме того, можно использовать translatecov для преобразования расчетных моделей в полиномиальную форму.
fcn = @(x)idpoly(x); mOEt = translatecov(fcn,mss_noK); mARMAXt = translatecov(fcn,mss);
Поскольку polyest и translatecov использовать различные алгоритмы вычислений, ковариационные данные, полученные при выполнении обновления нулевой итерации, могут не совпадать с данными, полученными при помощи translatecov.
Можно просмотреть неопределенности параметров модели с помощью present(mOE) и present(mARMAX).
Для инициализации оценки Хаммерштейна-Винера в командной строке можно использовать модель пространства состояний с K = 0 (форма «Output-Error» (OE)). Такая инициализация может улучшить подгонку модели. См. раздел Инициализация оценки Хаммерштейна-Винера с использованием линейной модели .
Дополнительные сведения о моделях ARMAX и OE см. в разделе Полиномиальные модели ввода-вывода.