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

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

Введение

Выбор структуры модели обычно является первым шагом к своей оценке. Существуют различные возможности для структуры - пространство состояний, передаточные функции и полиномиальные формы, такие как 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 со многими различными порядками и нахождением задержки 'лучшей'.

Используя 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) могут также быть хорошим выбором для стартовой полиномиальной модели из-за их простоты.

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

Если вы решили структуру модели использовать, следующая задача состоит в том, чтобы определить порядок (порядки). В общем случае цель должна быть, чтобы не использовать порядок модели выше, чем необходимый. Это может быть определено путем анализа улучшения %fit как функция порядка модели. При выполнении этого желательно использовать отдельный, независимый набор данных в валидации. Выбор независимого набора данных валидации (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 selstruc в интерактивном режиме

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

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

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

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

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

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

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

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 средства оценки) для того, чтобы автоматически оценить полный набор порядков модели и выбрать лучший среди них. Информация показана этим осуществлением (использующий утилиты, такие как arxstruc, selstruc, n4sid и delayest) мог использоваться в качестве начальной точки при оценке моделей других структур, таких как BJ и ARMAX.