Оцените пространство состояний, эквивалентное из ARMAX и моделей OE

Этот пример показывает, как оценить ARMAX и модели OE-формы с помощью подхода оценки пространства состояний.

Можно оценить эквивалент нескольких - модели вывода ARMAX и Output-Error (OE) с помощью структур модели в пространстве состояний:

  • Для модели armax задайте, чтобы оценить матрицу K для модели в пространстве состояний.

  • Для модели oe, набора K=0.

Преобразуйте получившиеся модели в модели 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).

Можно использовать модель в пространстве состояний с K=0 (Форма ошибки на выходе (OE)) для инициализации оценки Хаммерстайна-Винера в командной строке. Эта инициализация может улучшить подгонку модели. Смотрите Инициализируют Оценку Хаммерстайна-Винера Используя Линейную Модель.

Для получения дополнительной информации о моделях ARMAX и OE, см. Модели Полинома Ввода - вывода.