impulseest

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

Описание

пример

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

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

пример

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

Оцените 35-й порядок модель FIR.

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).

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

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

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

Для оценки временного интервала задайте 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

Необработанная мера по Критериям информации о Akaike (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 с помощью метода наименьших квадратов, чтобы получить модель конечной импульсной характеристики (FIR) порядка n.

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

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

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

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

  • Prewhitening — Предварительно побелите вход путем применения белящего вход фильтра порядка 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.

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

    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 является количеством входных параметров. ij элемент матричного g (k) описывает поведение i th выход после импульса в j th вход.

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