impulseest

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

Описание

пример

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

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

пример

sys = impulseest(data,n) оценивает nмодель импульсной характеристики I порядка, которая соответствует временной области значений 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.

Щелкните правой кнопкой мыши график и выберите Характеристики > Доверительная область, чтобы просмотреть область статистически нулевого отклика. Также можно использовать 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;

Оцените конечную импульсную характеристику модели 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);

Получите модель регуляризованной импульсной характеристики (конечной импульсной характеристики) с порядком 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.

Просмотрите статистически нулевую область отклика, щелкнув правой кнопкой мыши по графику и выбрав «Характеристики» > «Доверием область». Также можно использовать 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.1s Постройте график данных.

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 (Control System Toolbox) с по крайней мере одним входным сигналом и ненулевым шагом расчета.

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

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

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

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

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

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

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

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

  • Если 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 модель, которая инкапсулирует модель конечную импульсную характеристику.

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

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

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

Method

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

Fit

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

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

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

LossFcn

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

MSE

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

FPE

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

AIC

Необработанная мера качества модели 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% значимости.

Алгоритмы

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

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

y(t)=tg(τ)u(tτ)dτ

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

y(t)=k=1g(k)u(tk)

Значения g (k) являются discrete-time impulse response coefficients.

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

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

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

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

    Задайте регуляризирующее ядро, используя RegularizationKernel Аргумент пары "имя-значение" из impulseestOptions.

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

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

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

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

      uf = Au, yf = Ay

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

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

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

    y(t)=k=1ng(k)u(tk)k=1NAaky(tk)

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

  • Noncausal effects - Включите ответ на отрицательные лаги. Используйте эту опцию, если данные оценки включают выходную обратную связь:

    u(t)=k=0h(k)y(tk)+r(t)

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