Оцените пространство состояний, эквивалентное из 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, смотрите Полиномиальные модели Ввода - вывода.