В этом примере показано, как оценить ARMAX и модели OE-формы с помощью подхода оценки пространства состояний.
Можно оценить эквивалент нескольких - модели выхода ARMAX и Output-Error (OE) с помощью структур модели в пространстве состояний:
Преобразуйте получившиеся модели в 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);
Объект опций, opt
, задает нулевое обновление итерации для mOE
и mARMAX
. Следовательно, параметры модели остаются неизменными, и только их информация о ковариации обновляется.
В качестве альтернативы можно использовать translatecov
преобразовывать предполагаемые модели в полиномиальную форму.
fcn = @(x)idpoly(x); mOEt = translatecov(fcn,mss_noK); mARMAXt = translatecov(fcn,mss);
Поскольку polyest
и translatecov
используйте различные алгоритмы расчета, данные о ковариации, полученные путем выполнения обновления нулевой итерации, не могут совпадать с полученное использование translatecov
.
Можно просмотреть неопределенность в параметрах модели с помощью present(mOE)
и present(mARMAX)
.
Можно использовать модель в пространстве состояний с (Форма ошибки на выходе (OE)) для инициализации оценки Хаммерстайна-Винера в командной строке. Эта инициализация может улучшить подгонку модели. Смотрите Инициализируют Оценку Хаммерстайна-Винера Используя Линейную Модель.
Для получения дополнительной информации о моделях ARMAX и OE, смотрите Полиномиальные модели Ввода - вывода.