Выбор структуры модели: определение порядка модели и задержки на входе

В этом примере показаны некоторые методы выбора и конфигурации структуры модели. Оценка модели с использованием данных измерений требует выбора структуры модели (такой как пространство состояний или передаточная функция) и ее порядка (например, количество полюсов и нулей) заранее. Этот выбор зависит от предшествующих знаний о моделируемой системе, но может также быть мотивирован анализом самих данных. Этот пример описывает некоторые опции для определения порядков модели и входа.

Введение

Выбор структуры модели обычно является первым шагом к ее оценке. Существуют различные возможности для структуры - пространство состояний, передаточные функции и полиномиальные формы, такие как ARX, ARMAX, OE, BJ и т.д. Если вы не имеете подробных предварительных знаний о вашей системе, таких как ее шумовые характеристики и индикация обратной связи, выбор разумной структуры может быть не очевиден. Также для заданного выбора структуры порядок модели необходимо задать, прежде чем будут оценены соответствующие параметры. System Identification Toolbox™ предлагает некоторые инструменты, чтобы помочь в задаче выбора порядка модели.

На выбор порядка модели также влияет величина задержки. Хорошее представление о входе задержке упрощает задачу вычисления порядков других коэффициентов модели. Ниже рассматриваются некоторые опции для определения входной задержки и структуры модели и выбора порядка.

Выбор и подготовка примерных данных для анализа

Этот пример использует данные фена, также используемые iddemo1 («Оценка простых моделей из реальных данных лабораторного процесса»). Процесс состоит из воздуха, раздуваемого через трубку. Воздух нагревается во входном отверстии трубы, и вход является напряжением, приложенным к нагревателю. Выходом является температура на выходе трубки.

Начнем с загрузки данных измерений и выполнения некоторой базовой предварительной обработки:

load dry2

Сформируйте набор данных для оценки первой половины и набор ссылки для целей валидации второй половины:

ze = dry2(1:500);
zr = dry2(501:1000);

Детрендируйте каждый из наборов:

ze = detrend(ze);
zr = detrend(zr);

Давайте рассмотрим фрагмент данных оценки:

plot(ze(200:350))

Оценка входной задержки

Существуют различные опции для определения временной задержки от входа до выхода. Это:

  • Использование DELAYEST утилита.

  • Используя непараметрическую оценку импульсной характеристики, используя IMPULSEEST.

  • Использование оценки модели пространства состояний N4SID с рядом различных порядков и нахождением задержки 'best' one.

Использование delayest:

Давайте подробно обсудим вышеуказанные опции. Функциональные delayest возвращает оценку задержки для заданного выбора порядков полиномов числителя и знаменателя. Эта функция оценивает структуру ARX:

y(t) + a1*y(t-1) + ... + ana*y(t-na) = b1*u(t-nk) + ...+bnb*u(t-nb-nk+1)

с различными задержками и выбирает значение задержки, которое, по-видимому, лучше всего подходит. В этом процессе выбираются значения na и nb используются.

delay = delayest(ze) % na = nb = 2 is used, by default
delay =

     3

Значение 3 возвращается по умолчанию. Но это значение может измениться немного, если будут изменены предполагаемые порядки полиномов числителя и знаменателя (2 здесь). Для примера:

delay = delayest(ze,5,4)
delay =

     2

возвращает значение 2. Чтобы получить представление о том, как delayest работает, давайте оценим функцию потерь для различных вариантов задержек явно. Мы выбираем модель второго порядка (na=nb=2), который является значением по умолчанию для delayestи опробовать каждую задержку между 1 и 10. Функция потерь для различных моделей вычисляется с помощью набора данных валидации:

V = arxstruc(ze,zr,struc(2,2,1:10));

Теперь мы выбираем ту задержку, которая дает лучшую подгонку для данных валидации:

[nn,Vm] = selstruc(V,0); % nn is given as [na nb nk]

Выбранная структура была:

nn
nn =

     2     2     3

которые показывают, что лучшая модель имеет задержку nn (3) = 3.

Также можно проверить, как подгонка зависит от задержки. Эта информация возвращается во второй выходной Vm. Логарифмы квадратичной функции потерь заданы как первая строка, в то время как индексы na, nb и nk приведены в виде столбца под соответствующей функцией потерь.

Vm
Vm =

  Columns 1 through 7

   -0.1480   -1.3275   -1.8747   -0.2403   -0.0056    0.0736    0.1763
    2.0000    2.0000    2.0000    2.0000    2.0000    2.0000    2.0000
    2.0000    2.0000    2.0000    2.0000    2.0000    2.0000    2.0000
    1.0000    2.0000    3.0000    4.0000    5.0000    6.0000    7.0000

  Columns 8 through 10

    0.1906    0.1573    0.1474
    2.0000    2.0000    2.0000
    2.0000    2.0000    2.0000
    8.0000    9.0000   10.0000

The choice of 3 delays is thus rather clear, since the corresponding
loss is minimum.

Использование impulse

Чтобы получить лучшее представление о динамике, давайте вычислим импульсную характеристику системы. Будем использовать функцию impulseest для вычисления непараметрической модели импульсной характеристики. Мы строим график этого отклика с доверительным интервалом, представленным 3 стандартными отклонениями.

FIRModel = impulseest(ze);
clf
h = impulseplot(FIRModel);
showConfidence(h,3)

Заполненная светло-синяя область показывает доверительный интервал для незначительного отклика в этой оценке. Существует четкое указание на то, что импульсная характеристика «взлетает» (покидает область неопределенности) после 3 выборок. Это указывает на задержку в три интервала.

Использование n4sid оценка базового пространства состояний

Мы также можем оценить семейство параметрических моделей, чтобы найти задержку, соответствующую «лучшей» модели. В случае моделей пространства состояний область значений порядков может быть оценен одновременно и лучший порядок выбран из графика сингулярного значения Ханкеля. Выполните следующую команду для вызова n4sid в интерактивном режиме:

m = n4sid(ze,1:15); % Все порядки от 1 до 15.

График указывает порядок 3 как лучшее значение. Для этого выбора давайте вычислим импульсную характеристику модели m:

m = n4sid(ze, 3);
showConfidence(impulseplot(m),3)

Как и в случае непараметрической импульсной характеристики, существует четкое указание на то, что задержка от входа до выхода имеет три выборки.

Выбор разумной Структуры модели

В отсутствие каких-либо предварительных знаний желательно попробовать различные доступные варианты и использовать тот, который, кажется, работает лучше всего. Модели в пространстве состояний могут быть хорошей начальной точкой, поскольку для оценки модели необходимо порядок только количество состояний. Кроме того, область значений порядков может быть оценен быстро, используя n4sidдля определения наилучшего порядка, как описано в следующем разделе. Для полиномиальных моделей аналогичное преимущество реализуется с помощью arx оценщик. Модели выходной ошибки (OE) также могут быть хорошим выбором для стартовой полиномиальной модели из-за их простоты.

Определение порядка модели

После того, как вы решили использовать структуру модели, следующая задача состоит в том, чтобы определить порядки (порядки ) (ы). В целом цель должна состоять в том, чтобы не использовать порядок модели, более высокий, чем необходимо. Это может быть определено путем анализа улучшения в% подгонки как функции порядка модели. При этом желательно использовать отдельный, независимый набор данных для валидации. Выбор независимого набора данных валидации (zr в нашем примере) улучшило бы обнаружение сверхподбора кривой.

В дополнение к прогрессивному анализу нескольких порядков моделей, для некоторых структур модели может быть выполнено явное определение оптимальных порядков. Функции arxstruc и selstruc может использоваться для выбора наилучшего порядка для моделей ARX. Для нашего примера давайте проверим подгонку для всех 100 комбинаций до 10 b-параметры и до 10 a-параметры, все со значением задержки 3:

V = arxstruc(ze,zr,struc(1:10,1:10,3));

Лучшая подгонка для набора данных валидации получена для:

nn = selstruc(V,0)
nn =

    10     4     3

Давайте проверим, насколько улучшена подгонка для моделей более высокого порядка. Для этого используем функцию selstruc с одним входом. В этом случае генерируется график, показывающий подгонку как функцию от количества используемых параметров. Пользователю также предлагается ввести количество параметров. Затем стандартная программа выбирает структуру с этими многими параметрами, которые дают лучшую подгонку. Обратите внимание, что несколько различных структур модели используют одинаковое количество параметров. Выполните следующую команду для интерактивного выбора порядка модели:

nns = selstruc(V) % invoke selstrug в интерактивном режиме

Лучшая подгонка, таким образом, получена для nn = [4 4 3], в то время как мы видим, что улучшенная подгонка по сравнению с nn = [2 2 3] является довольно маргинальной.

Мы также можем подойти к этой задаче с направления уменьшения модели более высокого порядка. Если порядок выше необходимого, то дополнительные параметры в основном используются, чтобы «смоделировать» шум измерения. Эти «дополнительные» полюсы оцениваются с более низким уровнем точности (большой доверительный интервал). Если их отменяет нуль, расположенный поблизости, это указывает, что эта пара «полюс-ноль» может не потребоваться для захвата существенной динамики системы.

Для нашего примера давайте вычислим модель 4-го порядка:

th4 = arx(ze,[4 4 3]);

Давайте проверим строение полюса для этой модели. Мы также можем включать доверие области для полюсов и нулей, соответствующих 3 стандартным отклонениям, в порядок чтобы определить, насколько точно они оцениваются, а также как близко полюсы и нули находятся друг к другу.

h = iopzplot(th4);
showConfidence(h,3)

Доверительные интервалы для двух комплексно-сопряженных полюсов и нулей перекрываются, что указывает на то, что они, вероятно, отменяют друг друга. Следовательно, модель второго порядка может быть адекватной. На основе этих доказательств давайте вычислим модель ARX 2-го порядка:

th2 = arx(ze,[2 2 3]);

Мы можем проверить, насколько хорошо эта модель (th2) способен воспроизводить набор данных валидации. Чтобы сравнить моделируемый выход из двух моделей с фактическим выходом (построение графика середины 200 точек данных), мы используем compare утилита:

compare(zr(150:350),th2,th4)

График указывает, что не было существенной потери точности при снижении порядка с 4 до 2. Мы также можем проверить невязки («остатки») этой модели, т.е. то, что остается необъясненным моделью.

e = resid(ze,th2);
plot(e(:,1,[])), title('The residuals')

Мы видим, что невязки довольно малы по сравнению с уровнем сигнала выхода, что они достаточно хорошо (хотя и не идеально) некоррелированы с входом и между собой. Таким образом, мы можем быть (в предварительном порядке) удовлетворены моделью th2.

Давайте теперь проверим, можем ли мы определить порядок модели для структуры пространства состояний. Как и прежде, мы знаем, что задержка составляет 3 выборки. Мы можем попробовать все порядки от 1 до 15 с общей задержкой 3 выборки в n4sid. Выполните следующую команду, чтобы попробовать различные порядки и выбрать один в интерактивном режиме.

ms = n4sid(ze,[1:15],'InputDelay',2); % n4sid оценка с переменными порядками

Значение «InputDelay» было установлено равным 2, поскольку по умолчанию n4sid оценивает модель без сквозного соединения (которая учитывает одну задержку дискретизации между входом и выходом). Порядок по умолчанию, указанный на рисунке выше, равен 3, что хорошо согласуется с нашими более ранними выводами. Наконец, мы сравниваем, как модель пространства состояний ms и модель ARX th2 сравните при воспроизведении измеренного выхода данных валидации:

ms = n4sid(ze,3,'InputDelay',2);
compare(zr,ms,th2)

График сравнения указывает, что две модели практически идентичны.

Заключения

В этом примере описаны некоторые опции для выбора разумного порядка модели. Определение задержки заранее может упростить задачу выбора порядков. С ARX и государственно-пространственными структурами у нас есть некоторые специальные инструменты (arx и n4sid estimators) для автоматической оценки целого набора порядков моделей и выбора лучшего из них. Информация, раскрытая в этом упражнении (с использованием утилит, таких как arxstruc, selstruc, n4sid и delayest) может использоваться в качестве начальной точки при оценке моделей других структур, таких как BJ и ARMAX.

Для просмотра документации необходимо авторизоваться на сайте