exponenta event banner

impulseest

Непараметрическая оценка импульсной характеристики

Описание

пример

sys = impulseest(data) оценивает модель импульсной характеристики sys, также известная как модель конечной импульсной характеристики (FIR), использующая данные временной или частотной области data. Функция использует анализ стойкости возбуждения на входных данных для выбора порядка модели (количество ненулевых коэффициентов импульсной характеристики).

Использовать непараметрическую оценку импульсной характеристики для анализа входных/выходных данных на эффекты обратной связи, задержки и значительные временные константы.

пример

sys = impulseest(data,n) оценивает nмодель импульсной характеристики третьего порядка, соответствующая временному диапазону 0:Ts:(n–1)*Ts, где Ts - время выборки данных.

пример

sys = impulseest(data,n,nk) определяет задержку передачи nk выборки в оцененной импульсной характеристике.

пример

sys = impulseest(___,opt) задание параметров оценки с помощью набора параметров opt.

Примеры

свернуть все

Оценка непараметрической модели импульсной характеристики с использованием данных из фена. На вход подается напряжение на нагреватель, а на выход - температура нагревателя. Используйте первые 500 выборок для оценки.

Загрузите данные и используйте первые 500 выборок для оценки модели.

load dry2
ze = dry2(1:500);
sys = impulseest(ze);

ze является iddata объект, содержащий данные временной области. sys, идентифицированная непараметрическая модель импульсной характеристики, является idtf модель.

Проанализируйте импульсную характеристику идентифицированной модели от 0 до 1.

h = impulseplot(sys,1);

Figure contains an axes. The axes with title From: Voltage To: Temperature contains 2 objects of type line. This object represents sys.

Щелкните правой кнопкой мыши график и выберите Характеристики (Characteristics) > Доверительная область (Confidence Region), чтобы просмотреть область статистически нулевого отклика. Кроме того, можно использовать showConfidence команда.

showConfidence(h);

Figure contains an axes. The axes with title From: Voltage To: Temperature contains 2 objects of type line. This object represents sys.

Первое значимо ненулевое значение отклика происходит через 0,24 секунды, или третье отставание. Это означает, что задержка транспортировки составляет 3 выборки. Чтобы создать модель, которая накладывает задержку 3-запаздывания, установите для задержки передачи, которая является третьим аргументом, значение 3. Также необходимо задать второй аргумент, порядок n, до значения по умолчанию [] в качестве местозаполнителя.

sys1 = impulseest(ze,[],3);
h1 = impulseplot(sys1,1);
showConfidence(h1);

Figure contains an axes. The axes with title From: Voltage To: Temperature contains 2 objects of type line. This object represents sys1.

Отклик идентично равен нулю до 0,24 с.

Загрузка оценочных данных

load iddata3 z3;

Оценка модели FIR 35-го порядка.

n = 35;
sys = impulseest(z3,n);

Можно подтвердить порядок моделей sys отображением количества терминов.

nsys = size(sys.num)
nsys = 1×2

     1    35

Набор n кому [] чтобы функция автоматически определяла n. Отображение порядка модели.

n = [];
sys1 = impulseest(z3,n);
nsys1 = size(sys1.Numerator)
nsys1 = 1×2

     1    70

Заказ модели - 70. Значение по умолчанию для заказа: [], поэтому установка порядка [] эквивалентно отсутствию спецификации.

Оценка модели импульсной характеристики с задержкой переноса 3 выборок.

Если вы заранее знаете о наличии задержки во входных/выходных данных, используйте значение задержки в качестве транспортной задержки для оценки импульсной характеристики.

Создание данных, содержащих 3-образную задержку ввода-вывода.

Создайте случайный входной сигнал. Построение idpoly модель, которая включает три задержки выборки, реализуемые с помощью трех начальных нулей в многочлене B.

u = rand(100,1);
A = [1 .1 .4];
B = [0 0 0 4 -2];
C = [1 1 .1];
sys = idpoly(A,B,C);

Моделирование реакции модели y к шумовому сигналу, используя AddNoise опция и время выборки 1 с. Заключить в капсулу y в iddata объект.

opt = simOptions('AddNoise',true);
y = sim(sys,u,opt);
data = iddata(y,u,1);

Оценка и построение графика модели 20-го порядка без задержки переноса.

n = 20;
model1 = impulseest(data,n);
impulseplot(model1);

Figure contains an axes. The axes with title From: u1 To: y1 contains 2 objects of type line. This object represents model1.

График показывает, что импульсная характеристика включает ненулевые выборки в течение 3-секундного периода задержки.

Оценка модели с задержкой переноса 3 выборок.

nk = 3;
model2 = impulseest(data,n,nk);
impulseplot(model2)

Figure contains an axes. The axes with title From: u1 To: y1 contains 2 objects of type line. This object represents model2.

Первые три выборки идентичны 0.

Получение регуляризованных оценок модели импульсной характеристики с использованием опции оценки регуляризации ядра.

Оценка модели с использованием регуляризации. impulseest выполняет регуляризованные оценки по умолчанию, используя настроенное и коррелированное ядро ('TC').

load iddata3 z3;
sys1 = impulseest(z3);

Оценка модели без регуляризации.

opt = impulseestOptions('RegularizationKernel','none');
sys2 = impulseest(z3,opt);

Сравните импульсную характеристику обеих моделей.

h = impulseplot(sys2,sys1,70);
legend('sys2','sys1')

Figure contains an axes. The axes with title From: u1 To: y1 contains 4 objects of type line. These objects represent sys2, sys1.

Как показано на графике, использование регуляризации делает ответ более плавным.

Постройте график доверительного интервала.

showConfidence(h);

Figure contains an axes. The axes with title From: u1 To: y1 contains 4 objects of type line. These objects represent sys2, sys1.

Неопределенность в вычисленном ответе уменьшается при больших лагах для модели с использованием регуляризации. Регуляризация уменьшает дисперсию в цене некоторого смещения. Настройка 'TC' регуляризация такова, что дисперсная ошибка доминирует над общей ошибкой.

Загрузите оценочные данные.

load regularizationExampleData eData;

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

num = [0.02008 0.04017 0.02008];
den = [1 -1.561 0.6414];
Ts = 1;
trueSys = idtf(num,den,Ts);

Получить модель регуляризованной импульсной характеристики (FIR) с порядком 70.

opt = impulseestOptions('RegularizationKernel','DC');
m0 = impulseest(eData,70,opt);

Преобразуйте модель в модель с пространством состояний и уменьшите порядок модели.

m1 = idss(m0);
m1 = balred(m1,15);

Оценка второй модели состояния-пространства непосредственно из eData путем использования регуляризованного уменьшения модели ARX.

m2 = ssregest(eData,15);

Сравните импульсные характеристики истинной системы и расчетных моделей.

impulse(trueSys,m1,m2,50);   
legend('trueSys','m1','m2');

Figure contains an axes. The axes with title From: u1 To: y1 contains 6 objects of type line. These objects represent trueSys, m1, m2.

Три реакции модели похожи.

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

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

load iddata3 z3;
opt = impulseestOptions('pw',4,'RegularizationKernel','none');
sys = impulseest(z3,[],'negative',opt);

sys является некаузальной моделью, содержащей значения отклика для отрицательного времени.

Проанализируйте импульсную характеристику идентифицированной модели.

h = impulseplot(sys);

Figure contains an axes. The axes with title From: u1 To: y1 contains 2 objects of type line. This object represents sys.

Просмотрите статистически нулевую область ответа, щелкнув правой кнопкой мыши на графике и выбрав Характеристики (Characteristics) > Доверительная область (Confidence Region). Кроме того, можно использовать showConfidence команда.

showConfidence(h);

Figure contains an axes. The axes with title From: u1 To: y1 contains 2 objects of type line. This object represents sys.

Большое значение отклика при t=0 (нулевое отставание) предполагает, что данные поступают из процесса, содержащего прохождение. То есть вход мгновенно влияет на выход. Большое значение отклика может также указывать на прямую обратную связь, такую как пропорциональное управление без некоторой задержки, так что y(t) частично определяет u(t).

Другими признаками обратной связи в данных являются значительные значения ответа, такие как значения -7 и -9.

Вычислить модель импульсной характеристики для данных частотной характеристики.

Загрузить данные частотной характеристики, содержащие измеренную амплитуду AMP и этап PHA для частотного вектора W.

load demofr;

Создание сложной частотной характеристики zfr и инкапсулировать его в idfrd объект, имеющий время выборки 0,1 с. Постройте график данных.

zfr = AMP.*exp(1i*PHA*pi/180);
Ts = 0.1;
data = idfrd(zfr,W,Ts);

Оценка модели импульсной характеристики по data и постройте график ответа.

sys = impulseest(data);
impulseplot(sys)

Figure contains an axes. The axes contains 2 objects of type line. This object represents sys.

Определите параметрические и непараметрические модели для набора данных и сравните их отклик на шаг.

Оценка модели импульсной характеристики sys1 (непараметрическая) и модель состояния-пространства sys2 (параметрический) с использованием набора оценочных данных z1.

load iddata1 z1;
sys1 = impulseest(z1);
sys2 = ssest(z1,4);

sys1 - модель дискретно-временной идентифицированной передаточной функции. sys2 - модель состояния-пространства, идентифицированная в непрерывном времени.

Сравнение ответов на шаги для sys1 и sys2.

step(sys1,'b',sys2,'r');
legend('impulse response model','state-space model');

Figure contains an axes. The axes with title From: u1 To: y1 contains 2 objects of type line. These objects represent impulse response model, state-space model.

Входные аргументы

свернуть все

Оценочные данные, указанные как iddata объект, idfrd, или frd(Панель инструментов системы управления), по крайней мере, с одним входным сигналом и ненулевым временем выборки.

Для оценки временной области укажите data как iddata объект, содержащий значения входного и выходного сигналов.

Для оценки частотной области укажите data в качестве одного из следующих:

  • Данные частотной характеристики (idfrd объект или frd объект)

  • iddata объект со следующими свойствами:

    • InputData - преобразование Фурье входного сигнала

    • OutputData - преобразование Фурье выходного сигнала

    • Domain - «Частота»

Порядок модели FIR, указанный как положительное целое число, []или матрица.

  • Если data содержит один входной канал и выходной канал, или если требуется применить один и тот же порядок модели ко всем парам ввода/вывода, укажите n как положительное целое число.

  • Если data содержит Nu входных каналов и Ny выходных каналов, и вы хотите указать отдельные порядки моделей для пар ввода/вывода, укажите n в качестве матрицы Ny-by-Nu положительных целых чисел, так что N (i, j) представляет длину импульсной характеристики от входа j к выходу i.

  • Если функция должна определять заказ автоматически, укажите n как []. Программное обеспечение использует анализ стойкости возбуждения на входных данных для выбора порядка.

Пример: sys = impulseest(data,70) оценивает модель импульсной характеристики порядка 70.

Задержка переноса в оцененной импульсной характеристике, заданная как скалярное целое число, 'negative'или матрица Ny-by-Nu, где Ny - количество выходов, а Nu - количество входов. Импульсная характеристика (вход j производить i) коэффициенты соответствуют интервалу времени nk(i,j)*Ts : Ts : (n(ij)+nk(i,j)-1)*Ts.

  • Если известно значение задержки транспортировки, укажите nk как скалярное целое число или матрица скалярных целых чисел.

  • Если значение задержки неизвестно, укажите nk как 0. После оценки импульсной характеристики можно определить истинную задержку по незначительным значениям импульсной характеристики в начальной части характеристики. Пример поиска истинной задержки см. в разделе Идентификация непараметрической модели импульсной характеристики из данных.

  • Для генерации коэффициентов импульсной характеристики для отрицательных значений времени, что полезно для анализа обратной связи, используйте отрицательное целое число. Если задано отрицательное значение, оно должно быть одинаковым для всех выходных каналов. Можно также указать nk как 'negative' для автоматического выбора отрицательных лагов для всех каналов ввода/вывода модели. Пример использования отрицательных значений времени см. в разделе Проверка измеренных данных на эффекты обратной связи.

  • Для создания системы, ведущий числительный коэффициент которой равен нулю, укажите nk как 1.

Функция сохраняет положительные значения nk больше 1 в IODelay имущество sys (sys.IODelay = max(nk-1,0)) и отрицательные значения в InputDelay собственность.

Параметры оценки, указанные как impulseestOptions набор опций, задающий следующее:

  • Порядок предварительного фильтра

  • Алгоритм регуляризации

  • Смещения входных и выходных данных

  • Дополнительные параметры, такие как структура

Использовать impulseestOptions для создания набора опций.

Выходные аргументы

свернуть все

Модель расчетной импульсной характеристики, возвращенная как idtf модель, которая инкапсулирует модель FIR.

Информация о результатах оценки и используемых опциях хранится в Report свойство модели. Report имеет следующие поля:

Поле отчетаОписание
Status

Сводка состояния модели, указывающая, была ли модель создана путем построения или получена путем оценки.

Method

Используется команда оценки.

Fit

Количественная оценка оценки, возвращенная как структура. Дополнительные сведения об этих показателях качества см. в разделе Метрики качества функции потери и модели. Структура имеет следующие поля:

ОбластьОписание
FitPercent

Нормализованная среднеквадратическая ошибка (NRMSE) измерения того, насколько хорошо отклик модели соответствует данным оценки, выраженным в процентах fit = 100 (1-NRMSE).

LossFcn

Значение функции потерь после завершения оценки.

MSE

Показатель среднеквадратичной ошибки (MSE) того, насколько хорошо отклик модели соответствует данным оценки.

FPE

Ошибка окончательного прогноза для модели.

AIC

Показатель качества модели Raw Akaike Information Criteria (AIC).

AICc

Небольшая выборка с поправкой на AIC.

nAIC

Нормализованная AIC.

BIC

Байесовские информационные критерии (BIC).

Parameters

Оценочные значения параметров модели.

OptionsUsed

Набор опций, используемый для оценки. Если пользовательские параметры не были настроены, это набор параметров по умолчанию. Посмотрите impulseestOptions для получения дополнительной информации.

RandState

Состояние потока случайных чисел в начале оценки. Пустое, [], если рандомизация не использовалась во время оценки. Дополнительные сведения см. в разделе rng.

DataUsed

Атрибуты данных, используемых для оценки, возвращаемые в виде структуры со следующими полями:

ОбластьОписание
Name

Имя набора данных.

Type

Тип данных.

Length

Количество выборок данных.

Ts

Время выборки.

InterSample

Поведение ввода между образцами, возвращаемое как одно из следующих значений:

  • 'zoh' - Удержание нулевого порядка поддерживает кусочно-постоянный входной сигнал между выборками.

  • 'foh' - Удержание первого порядка поддерживает кусочно-линейный входной сигнал между выборками.

  • 'bl' - Поведение с ограниченной полосой указывает, что входной сигнал непрерывного времени имеет нулевую мощность выше частоты Найквиста.

InputOffset

Смещение удалено из входных данных временной области во время оценки. Для нелинейных моделей это [].

OutputOffset

Смещение удалено из выходных данных временной области во время оценки. Для нелинейных моделей это [].

Дополнительные сведения об использовании Report, см. Отчет по оценке.

Совет

  • Просмотр импульсной или ступенчатой характеристики sys, используйте либо impulseplot или stepplotсоответственно.

  • Значительное значение импульсной характеристики sys для отрицательных значений времени указывает на наличие обратной связи в данных.

  • Чтобы просмотреть область незначительной импульсной характеристики (статистически нулевая) на графике, щелкните правой кнопкой мыши график и выберите Характеристики (Characteristics) > Доверительная область (Confidence Region). На графике появляется патч, изображающий область нулевого отклика. Импульсная характеристика в любое время является значимой, только если она лежит вне области нулевой характеристики. Уровень значимости зависит от количества стандартных отклонений, указанных в showConfidence или параметры в редакторе свойств. Общий выбор - 3 стандартных отклонения, что даёт 99,7% значимости.

Алгоритмы

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

Импульсная характеристика, g, является выходом системы, когда вход является импульсным сигналом. Выходной отклик на общий вход, u (t), является сверткой с импульсным откликом. В непрерывном времени:

y (t) =∫−∞tg (

В дискретное время:

y (t) =∑k=1∞g (k) u (t − k)

Значения g (k) являются дискретными коэффициентами импульсной характеристики.

Можно оценить значения из наблюдаемых входных/выходных данных несколькими различными способами. impulseest оценивает первые n коэффициентов с использованием метода наименьших квадратов для получения модели конечной импульсной характеристики (FIR) порядка n.

impulseest предоставляет несколько важных вариантов оценки:

  • Регуляризация - регуляризация оценки наименьших квадратов. При регуляризации алгоритм формирует оценку предшествующего распада и взаимной корреляции между g(k), а затем объединяет эту предыдущую оценку с текущей информацией о g из наблюдаемых данных. Этот подход приводит к оценке, которая имеет меньшую дисперсию, но также некоторое смещение. Для кодирования предыдущей оценки можно выбрать одно из нескольких ядер.

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

    Укажите регуляризирующее ядро с помощью RegularizationKernel Аргумент пары имя-значение impulseestOptions.

  • Предварительное отбеливание (Prewitening) - предварительное отбеливание входных данных путем применения фильтра, отбеливающего входные данные, порядка PW к данным. Использование предварительного преобразования при выполнении нерегулируемой оценки. Использование фильтра предварительного отбеливания минимизирует эффект забытого хвоста (k > n) импульсной характеристики. Для достижения предварительного отбеливания алгоритм:

    1. Определение фильтра A порядка PW отбеливание входного сигнала u:

      1/A = A(u)e, где A является многочленом и e белый шум.

    2. Фильтрация входов и выходов с помощью A:

      uf = Au, yf = Ay

    3. Использует отфильтрованные сигналы uf и yf для оценки.

    Задание предварительного преобразования с помощью PW аргумент пары имя-значение impulseestOptions.

  • Авторегрессионные параметры - дополняют базовую базовую модель FIR NA авторегрессионные параметры, что делает его моделью ARX.

    y (t) =∑k=1ng (k) u (t k) −∑k=1NAaky (t − k)

    Этот параметр дает лучшие результаты для малых n и допускает несмещенные оценки, когда данные генерируются в замкнутом цикле. impulseest использует NA = 5 для t > 0 и NA = 0 (без авторегрессионного компонента) для t < 0.

  • Некаузальные эффекты - включить отклик на отрицательные задержки. Используйте эту опцию, если оценочные данные включают обратную связь:

    u (t) =∑k=0∞h (k) y (t k) + r (t)

    где h (k) - импульсная характеристика регулятора, а r - уставка или член возмущения. Алгоритм обрабатывает существование и характер такой обратной связи h и оценивает h так же, как g просто путем торговли местами между y и u в вызове оценки. Используяimpulseest с указанием отрицательных задержек, mi = импульсный (data, nk,  nb), nk < 0 возвращает модельmi с импульсной характеристикой

    [h (-nk), h (-nk-1),..., h (0), g (1), g (2),..., g (nb + nk)]

    с выравниванием, соответствующим лагам [nk, nk + 1,.., 0,1,2,..., nb + nk]. Алгоритм достигает этого выравнивания, потому что входная задержка (InputDelay) модели mi является nk.

Для системы с множеством входов и множеством выходов импульсная характеристика g (k) является матрицей ny-by-nu, где ny - количество выходов, а nu - количество входов. Элемент i-j матрицы g (k) описывает поведение i-го выхода после импульса на j-м входе.

Представлен в R2012a