impulseest

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

Синтаксис

sys = impulseest(data)
sys = impulseest(data,N)
sys = impulseest(data,N,NK)
sys = impulseest(___,options)

Описание

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

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

sys = impulseest(data,N,NK) задает транспортную задержку выборок NK в предполагаемом импульсном ответе.

sys = impulseest(___,options) указывает, что опции оценки с помощью опций устанавливают options.

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

Входные параметры

data

Данные об оценке по крайней мере с одним входным сигналом и ненулевым шагом расчета.

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

Для оценки частотного диапазона data может быть одним из следующего:

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

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

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

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

    • Domain — 'Частота'

N

Порядок модели FIR. Должно быть одно из следующего:

  • Положительное целое число.

    Для данных, содержащих входные параметры Nu и Ny выходные параметры, можно также задать N как Ny-by-Nu матрица положительных целых чисел, таких, что N(i,j) представляет продолжительность импульсного ответа от входа j до вывода i.

  • [] — Определяет порядок автоматически с помощью персистентности анализа возбуждения входных данных.

NK

Транспортная задержка предполагаемого импульсного ответа, заданного как скалярное целое число. Для данных, содержащих входные параметры Nu и Ny выходные параметры, можно также задать Ny-by-Nu матрица.

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

    Можно также использовать NK = 'negative', чтобы автоматически выбрать отрицательные задержки для всех каналов ввода-вывода модели.

  • Задайте NK = 0, если задержка неизвестна. Истинная задержка затем быть обозначенной незначительными импульсными значениями ответа в начале ответа.

  • Задайте NK = 1, чтобы создать систему, ведущий коэффициент числителя которой является нулем.

Положительные значения NK, больше, чем 1, хранятся в свойстве IODelay sys (sys.IODelay = max(NK-1,0)). Отрицательные величины хранятся в свойстве InputDelay.

Импульсный ответ (вход j к выводу i) коэффициенты соответствует отрезку времени NK(i,j)*Ts : Ts : (N(ij)+NK(i,j)-1)*Ts.

Значение по умолчанию: нули (Ny, Nu)

options

Опции оценки, которые задают следующее:

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

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

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

Используйте impulseestOptions, чтобы создать набор опций.

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

sys

Предполагаемая импульсная модель ответа, возвращенная как модель idtf, которая инкапсулирует модель FIR.

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

Сообщите о полеОписание
Status

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

Method

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

Fit

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

Поле Описание
FitPercent

Мера по нормированной среднеквадратической ошибке (NRMSE) того, как хорошо ответ модели соответствует данным об оценке, выраженным как процент.

LossFcn

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

MSE

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

FPE

Итоговая ошибка прогноза для модели.

AIC

Необработанная мера по Критериям информации о Akaike (AIC) образцового качества.

AICc

Маленький объем выборки исправил AIC.

nAIC

Нормированный AIC.

BIC

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

Parameters

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

OptionsUsed

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

RandState

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

DataUsed

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

Поле Описание
Name

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

Type

Тип данных.

Length

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

Ts

'SampleTime' .

InterSample

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

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

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

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

InputOffset

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

OutputOffset

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

Для получения дополнительной информации об использовании Report см. Отчет Оценки.

Примеры

свернуть все

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

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

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

Анализируйте импульсный ответ идентифицированной модели со времени от 0 до 1.

h = impulseplot(sys,1);

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

showConfidence(h);

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

sys = impulseest(ze,[],3)

Загрузите данные об оценке

load iddata3 z3;

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

sys = impulseest(z3,35);

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

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

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

u = rand(100,1);
sys = idpoly([1 .1 .4],[0 0 0 4 -2],[1 1 .1]);
opt = simOptions('AddNoise',true);
y = sim(sys,u,opt);
data = iddata(y,u,1);

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

model = impulseest(data,20,3);

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

Оцените модель с помощью регуляризации.

load iddata3 z3;
sys1 = impulseest(z3);

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

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

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

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

h = impulseplot(sys1,sys2,70);

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

Постройте доверительный интервал.

showConfidence(h);

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

Загрузка данных.

load regularizationExampleData eData;

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

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

Получите упорядоченную импульсную модель (FIR) ответа.

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

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

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

Получите вторую модель в пространстве состояний с помощью упорядоченного сокращения модели ARX.

m2 = ssregest(eData,15);

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

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

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

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

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

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

Анализируйте импульсный ответ идентифицированной модели.

h = impulseplot(sys);

Просмотрите статистически область нулевого ответа путем щелчка правой кнопкой по графику и выбора Characteristics> Confidence Region. Также можно использовать команду showConfidence.

showConfidence(h);

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

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

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

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

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

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

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');

Советы

  • Чтобы просмотреть импульс или переходной процесс 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.

Несколько важных опций сопоставлены с оценкой:

  • При предварительном отбеливании — вход может быть предварительно побелен путем применения белящего вход фильтра порядка PW к данным. Это минимизирует эффект заброшенного хвоста (k > n) импульсного ответа.

    1. Фильтр порядка, PW применяется таким образом, что это белит входной сигнал u:

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

    2. Вводы и выводы отфильтрованы с помощью фильтра:

      uf = Au, yf = Ay

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

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

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

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

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

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

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

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

  • Непричинные эффекты — Ответ для отрицательных задержек. Это может произойти, что данные были сгенерированы частично выходной обратной связью:

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

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