Оценка эквивалентного пространства состояний моделей 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 (Форма Output-Error (OE)) для инициализации оценки Гаммерштейна-Винера в командной строке. Эта инициализация может улучшить подгонку модели. См. «Инициализация оценки Гаммерштейна-Винера с использованием линейной модели».

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