Программное обеспечение System Identification Toolbox™ позволяет вам использовать данные частотного диапазона для идентификации линейных моделей в командной строке и в System Identification приложении. Вы можете оценить как линейные модели непрерывного и дискретного времени с помощью данных частотного диапазона. В этой теме представлен обзор оценки модели в тулбоксе с использованием данных частотного диапазона. Для примера оценки модели с использованием данных частотного диапазона, смотрите Идентификация частотного диапазона: Оценка моделей с использованием данных частотного диапазона.
Данные частотного диапазона могут быть двух типов:
Входно-выходные данные частотного диапазона - Вы получаете данные путем вычисления преобразований Фурье входных, u (t) и выходных, y (t), сигналов во временной области. Данные являются набором входных, U (ω) и выходов, Y (ω) сигналов в частотном диапазоне. В тулбоксе входные-выходные данные частотного диапазона представлены с помощьюiddata
объекты. Для получения дополнительной информации смотрите Представление данных частотного диапазона в тулбокс.
Данные частотной характеристики - Также называемые частотной функцией или функцией частотной характеристики (FRF), данные состоят из измерений передаточной функции, G (iω), системы на дискретном наборе ω частот. Данные частотной характеристики на частотной ω говорят вам, как линейная система реагирует на синусоидальный вход той же частоты. В тулбоксе данные частотной характеристики представлены с помощьюidfrd
объекты. Для получения дополнительной информации смотрите Представление данных частотного диапазона в тулбокс. Вы можете получить данные частотной характеристики следующими способами:
Измерьте значения данных частотной характеристики непосредственно, например, с помощью анализатора спектра.
Выполните спектральный анализ временных или частотных входно-выходных данных (iddata
объекты) с помощью таких команд, как spa
и spafdr
.
Вычислите частотную характеристику идентифицированной линейной модели с помощью таких команд, как freqresp
, bode
, и idfrd
.
Рабочий процесс для оценки модели с использованием данных частотного диапазона такой же, как и для оценки с использованием данных временной области. При необходимости вы сначала подготовите данные для идентификации модели путем удаления выбросов и фильтрации данных. Затем вы оцениваете линейную параметрическую модель из данных и подтверждаете оценку.
Использование данных частотного диапазона имеет следующие преимущества:
Сжатие данных - Вы можете сжимать длинные записи данных при преобразовании данных во временной области в частотный диапазон. Для примера можно использовать логарифмически разнесенные частоты.
Неоднородность - данные частотного диапазона не должны быть равномерно разнесены. Ваши данные могут иметь частотно-зависимое разрешение, так что больше точек данных используются в необходимых областях. Для примера интересующими частотами могут быть области значений полосы пропускания системы или около резонансов системы.
Предварительная фильтрация - предварительная фильтрация данных в частотном диапазоне становится простой. Это соответствует присвоению различных весов различным частотам данных.
Сигнал непрерывного времени - можно представлять сигналы непрерывного времени, используя данные частотного диапазона, и использовать данные для оценки.
Перед выполнением оценки модели вы задаете данные частотного диапазона как объекты в тулбоксе. Можно задать как данные непрерывного времени, так и данные частотному частотному диапазону дискретного времени.
Входно-выходные данные частотного диапазона - Задайте как iddata
объект. В объекте вы сохраняете U (ω), Y (ω) и вектор частоты ω. The Domain
свойство объекта 'Frequency'
, чтобы указать, что объект содержит сигналы частотного диапазона. Если U (ω), Y (ω) являются преобразованиями Фурье дискретного времени, дискретными с интервалом
дискретизации Ts
, обозначить интервал дискретизации в iddata
объект. Если U (ω), Y (ω) являются преобразованиями Фурье сигналов непрерывного времени, задайте Ts
как 0
в iddata
объект.
Чтобы построить график данных в командной строке, используйте plot
команда.
Для примера можно построить график фазы и величины частотного диапазона входно-выходных данных.
Загрузка входных и выходных данных временной области.
load iddata1 z1
Входные входы во временной области u
и выходы y
хранятся в z1
, an iddata
объект, чей Domain
для свойства задано значение 'Time'
.
Преобразование Фурье данных для получения входных-выходных данных частотного диапазона.
zf = fft(z1);
The Domain
свойство zf
установлено в 'Frequency'
, что указывает, что это данные частотного диапазона.
Постройте график величины и фазы входных-выходных данных частотного диапазона.
plot(zf)
Данные частотной характеристики - Задайте как idfrd
объект. Если у вас есть программное обеспечение Control System Toolbox™, можно также задать данные как frd
(Control System Toolbox) объект.
Чтобы построить график данных в командной строке, используйте bode
команда.
Для примера можно построить график частотной характеристики модели передаточной функции.
Создайте модель передаточной функции вашей системы.
sys = tf([1 0.2],[1 2 1 1]);
Вычислим частотную характеристику модели передаточной функции, sys
, в 100 частотных точках. Задайте область значений частот от 0,1 рад/с до 10 рад/с.
freq = logspace(-1,1,100); frdModel = idfrd(sys,freq);
Постройте график частотной характеристики модели.
bode(frdModel)
Для получения дополнительной информации о типах данных частотного диапазона и о том, как их задать, смотрите Представление данных частотного диапазона.
Можно также преобразовать между типами данных частотного диапазона и временной области с помощью следующих команд.
Исходный формат данных | К данным временной области ( iddata объект) | К данным частотного диапазона ( iddata объект) | К данным частотной характеристики ( idfrd объект) |
---|---|---|---|
Данные временной области ( iddata объект) | Н/Д | Использовать fft | |
Данные частотной области ( iddata объект) | Использовать ifft (работает только для равномерно разнесенных данных частотного диапазона). | Н/Д | |
Данные частотной характеристики ( idfrd объект) | Не поддерживается | Использовать iddata . Программное обеспечение создает частотный диапазон iddata объект, который имеет то же отношение между выходом и входом, что и исходный idfrd данные частотной характеристики объекта. |
|
Для получения дополнительной информации о преобразовании между типами данных в приложении или в командной строке, смотрите страницу категории Transform Data.
В отличие от данных временной области, шага расчета Ts
данных частотному диапазону может быть нулем. Данные частотному диапазону с нулевым Ts
называется данными в непрерывном времени. Данные частотного диапазона с Ts
больше нуля называется данными дискретного времени.
Можно получить данные частотного частотного диапазона в непрерывном времени (Ts
= 0) следующими способами:
Сгенерируйте данные из известных аналитических выражений в непрерывном времени.
Например, предположим, что вы знаете, что частотная характеристика вашей системы , где b является константой. Также примите, что входы во временной области в вашу систему, , где a является константой, большей нуля, и u (t) равен нулю для всех раз t меньше нуля. Можно вычислить преобразование Фурье u (t), чтобы получить
Используя U (ω) и G (ω), можно затем получить выражение частотного диапазона для выходов:
Теперь можно вычислить аналитические выражения для Y (ω) и U (ω) по сетке значений частоты, и получите вектор частотного диапазона значений входно-выходных данных . Можно упаковать входно-выходные данные как непрерывное время iddata
объект путем задания нулевого шага расчета, Ts
.
Ts = 0;
zf = iddata(Ygrid,Ugrid,Ts,'Frequency',wgrid)
Вычислите частотную характеристику линейной системы непрерывного времени на сетке частот.
Например, в следующем коде вы генерируете данные частотной характеристики в непрерывном времени, FRDc
, из модели передаточной функции в непрерывном времени, sys
для сетки частот, freq
.
sys = idtf(1,[1 2 2]); freq = logspace(-2,2,100); FRDc = idfrd(sys,freq);
Измерьте амплитуды и фазы из синусоидального эксперимента, где система измерений использует сглаживающие фильтры. Вы измеряете реакцию системы на синусоидальные входы на разных частотах и упаковываете данные как idfrd
объект. Для примера, данные частотной характеристики, измеренные анализатором спектра, непрерывного времени.
Можно также провести эксперимент, используя периодические сигналы непрерывного времени (несколько синусоиды) в качестве входов для вашей системы и измерения отклика вашей системы. Затем можно упаковать входные и выходные данные как iddata
объект.
Можно получить данные частотного частотного диапазона в дискретном времени (Ts
> 0) следующими способами:
Преобразуйте измеренные значения временной области с помощью дискретного преобразования Фурье.
Для примера в следующем коде вы вычисляете дискретное преобразование Фурье данных временной области, y
, что измеряется в дискретных временных точках со шаг расчета 0,01 секунды.
t = 0:0.01:10; y = iddata(sin(2*pi*10*t),[],0.01); Y = fft(y);
Вычислите частотную характеристику линейной системы дискретного времени.
Например, в следующем коде вы генерируете данные частотной характеристики в дискретном времени, FRDd
, из модели передаточной функции в дискретном времени, sys
. Вы задаете ненулевой шаг расчета для создания модели дискретного времени.
Ts = 1; sys = idtf(1,[1 0.2 2.1],Ts); FRDd = idfrd(sys,logspace(-2,2,100));
Можно использовать данные частотного частотного диапазона в непрерывном времени, чтобы идентифицировать только модели непрерывного времени. Можно использовать данные частотного частотного диапазона в дискретном времени, чтобы идентифицировать как модели дискретного времени, так и модели непрерывного времени. Однако идентификация моделей в непрерывном времени из данных в дискретном времени требует знания поведения интерсампов данных. Для получения дополнительной информации см. «Оценка моделей непрерывного времени и дискретного времени».
Примечание
Для данных в дискретном времени программное обеспечение игнорирует данные частотного диапазона выше частоты Найквиста во время оценки.
После того, как вы представили свои данные частотному диапазону, используя iddata
или idfrd
объекты, можно подготовить данные к оценке путем удаления ложных данных и путем фильтрации данных.
Чтобы просмотреть ложные данные, постройте график данных в приложении или используйте plot
(для iddata
объекты) или bode
(для idfrd
объекты) команды. После идентификации ложных данных на графике их можно удалить. Для примера, если вы хотите удалить точки данных 20-30 из zf
, частотный частотный диапазон iddata
объект, используйте следующий синтаксис:
zf(20:30) = [];
Поскольку данные частотного диапазона не должны быть заданы с равномерным интервалом, вам не нужно заменять выбросы.
Можно также предварительно отфильтровать высокочастотный шум в данных. Можно предварительно фильтровать данные частотного диапазона в приложении или использовать idfilt
в командной строке. Данные предварительной фильтрации могут также помочь удалить дрейфы, которые являются низкочастотными нарушениями порядка. В дополнение к минимизации шума, предварительная фильтрация позволяет вам фокусировать свою модель на конкретных полосах. Интересующая область значений частот часто соответствует полосе пропускания по точкам останова на Диаграмму Боде. Например, если вы моделируете объект для приложений разработки системы управления, можно предварительно отфильтровать данные, чтобы увеличить частоты вокруг требуемой полосы пропускания замкнутой системы.
Для получения дополнительной информации см. Раздел «Фильтрация данных».
После предварительной обработки данных частотного диапазона можно использовать их для оценки моделей в непрерывном времени и дискретном времени.
Можно оценить следующие линейные параметрические модели, используя данные частотного диапазона. Шумовой компонент моделей не оценивается, кроме моделей ARX.
Тип модели | Дополнительная информация | Команды оценки | Оценка в приложении |
---|---|---|---|
Модели передаточных функций | Смотрите Модели Передаточной Функции в Приложении Системы идентификации. | ||
Модели в пространстве состояний | Предполагаемые K матрица модели пространства состояний равна нулю. | См. Оценка моделей пространства состояний в Систему идентификации Приложения. | |
Модели процессов | Модель возмущения не оценивается. | См. Оценка моделей процесса с использованием приложения. | |
Модели Полинома ввода-вывода | Можно оценить только модели output-error и ARX. | См. Оценка Полинома моделей в Приложение. | |
Линейные модели Серый ящик | Моделируйте параметры, которые связаны только с матрицей шума K не оценены. | Оценка модели серого ящика не доступна в приложении. | |
Корреляционные модели (Модели импульсной характеристики) | См. Оценку моделей импульсной характеристики с использованием Системы идентификации App. | ||
Модели частотной характеристики (Рассчитано как idfrd объекты) | См. Оценку моделей частотной характеристики в Приложении. |
Перед выполнением оценки можно задать опции оценки, такие как то, как программа обрабатывает начальные условия данных оценки. Для этого в командной строке используйте набор опций оценки, соответствующий команде estimation. Например, предположим, что вы хотите оценить модель передаточной функции из данных частотному диапазону, zf
, и вы также хотите оценить начальные условия данных. Используйте tfestOptions
набор опций, чтобы задать опции оценки, и затем оценить модель.
opt = tfestOptions('InitialCondition','estimate'); sys = tfest(zf,opt);
sys
является оценочной моделью передаточной функции. Для получения информации об извлечении оцененных значений параметров из модели, см. «Извлечение числовых данных моделей». После выполнения оценки можно подтвердить предполагаемую модель.
Примечание
Нулевое начальное условие для данных временной области не подразумевает нулевое начальное условие для соответствующих данных частотного диапазона. Для данных во временной области нулевые начальные условия означают, что система принята в состоянии покоя до начала набора данных. В частотном диапазоне начальные условия могут быть проигнорированы, только если собранные данные имеют периодический характер. Таким образом, если у вас есть данные временной области, собранные с нулевыми начальными условиями, и вы преобразовываете их в данные частотному диапазону для оценки модели, вы должны также оценить начальные условия. Вы не можете задать их как нуль.
Вы не можете выполнить следующие оценки, используя данные частотного диапазона:
Оценка шумового компонента линейной модели, кроме моделей ARX.
Оценка моделей временных рядов, использующих только спектр данные. Спектральные данные - это спектр степени сигнала, обычно сохраненный в SpectrumData
свойство idfrd
объект.
Можно оценить все поддерживаемые линейные модели как модели дискретного времени, кроме моделей процесса. Модели процесса определяются только в непрерывном времени. Для оценки моделей в дискретном времени необходимо использовать данные в дискретном времени.
Можно оценить все поддерживаемые линейные модели как модели непрерывного времени, кроме корреляционных моделей (см. impulseest
). Можно оценить модели в непрерывном времени, используя как данные в непрерывном времени, так и данные в дискретном времени. Для получения информации о данных в непрерывном времени и дискретном времени смотрите Данные в частотном частотном диапазоне в непрерывном времени и Дискретном времени.
Если вы оцениваете модель в непрерывном времени с помощью данных в дискретном времени, необходимо задать поведение интерсампов данных. Спецификация поведения интерсампов зависит от типа данных частотного диапазона.
Данные ввода-вывода частотного частотного диапазона в дискретном времени (iddata
объект) - Задайте поведение интерсampла входного сигнала во временной области u (t), который вы преобразовали Фурье, чтобы получить входной сигнал в частотный диапазон U (ω).
Данные частотной характеристики в дискретном времени (idfrd
объект) - Данные генерируются путем вычисления частотной характеристики модели дискретного времени. Задайте поведение интерсampла как метод дискретизации, принятый для вычисления модели дискретного времени из базовой модели непрерывного времени. Для получения примера смотрите «Задание поведения интерсampла для данных частотной характеристики дискретного времени».
Можно задать поведение интерсampла, которое должно быть кусочно-постоянной (удержание нулевого порядка), линейно интерполированным между выборками (удержание первого порядка) или ограниченным диапазоном. Если вы задаете данные дискретного времени из вашей системы как ограниченные по полосе значений (то есть нет степени выше частоты Nyquist), программа обрабатывает данные как непрерывное время, задавая шаг расчета равным нулю. Затем программное обеспечение оценивает модель в непрерывном времени из данных. Для получения дополнительной информации смотрите Эффект входа межвыборка на моделях непрерывного времени.
Этот пример показывает эффект интерсампового поведения на оценке моделей в непрерывном времени с использованием данных частотной характеристики в дискретном времени.
Сгенерируйте данные частотной характеристики в дискретном времени. Для этого сначала создайте модель передаточной функции в непрерывном времени, sys
. Затем преобразуйте его в модель дискретного времени, sysd
, с использованием c2d
метод команды и удержания первого порядка (FOH). Используйте модель в дискретном времени sysd
для генерации данных частотной характеристики на заданных частотах, freq
.
sys = idtf([1 0.2],[1 2 1 1]); sysd = c2d(sys,1,c2dOptions('Method','foh')); freq = logspace(-1,0,10); FRdata = idfrd(sysd,freq);
FRdata
является данными в дискретном времени. Программное обеспечение устанавливает InterSample
свойство FRdata
на 'foh'
, который является методом дискретизации, который использовался для получения sysd
от sys
.
Оцените передаточную функцию непрерывного времени третьего порядка из данных дискретного времени.
model1 = tfest(FRdata,3,1)
model1 = s + 0.2 ------------------- s^3 + 2 s^2 + s + 1 Continuous-time identified transfer function. Parameterization: Number of poles: 3 Number of zeros: 1 Number of free coefficients: 5 Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties. Status: Estimated using TFEST on frequency response data "FRdata". Fit to estimation data: 100% FPE: 2.372e-31, MSE: 8.029e-32
model1
является моделью в непрерывном времени, оцененной с использованием данных частотной характеристики в дискретном времени. Базовая динамика в непрерывном времени исходной модели третьего порядка sys
извлекаются в model1
поскольку правильное поведение интерсampла задано в FRdata
.
Теперь задайте поведение интерсampла как удержание нулевого порядка (ZOH) и оцените модель передаточной функции третьего порядка.
FRdata.InterSample = 'zoh';
model2 = tfest(FRdata,3,1)
model2 = -15.49 s - 3.309 --------------------------------- s^3 - 30.03 s^2 - 6.825 s - 17.04 Continuous-time identified transfer function. Parameterization: Number of poles: 3 Number of zeros: 1 Number of free coefficients: 5 Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties. Status: Estimated using TFEST on frequency response data "FRdata". Fit to estimation data: 94.72% FPE: 0.00485, MSE: 0.001615
model2
не захватывает динамику исходной модели sys
. Таким образом, ошибки, связанные с дискретизацией, вводятся в оценку модели, когда поведение интерсampла не задано правильно.
Этот пример показывает, как преобразовать модель данных частотной характеристики (FRD) в модель передаточной функции. Вы обрабатываете модель FRD как данные оценки, а затем оцениваете передаточную функцию.
Получите модель FRD.
Для примера используйте bode
для получения данных величины и фазового отклика для следующей системы пятого порядка:
Используйте 100 частотных точек между 0,1 рад/с, чтобы 10 рад/с, чтобы получить модель FRD. Использование frd
для создания объекта модели частотной характеристики.
freq = logspace(-1,1,100); sys0 = tf([1 0.2],[1 1 0.8 0.4 0.12 0.04]); [mag,phase] = bode(sys0,freq); frdModel = frd(mag.*exp(1j*phase*pi/180),freq);
Получите лучшее приближение третьего порядка к динамике системы путем оценки передаточной функции с 3 нулями и 3 полюсами.
np = 3; nz = 3; sys = tfest(frdModel,np,nz);
sys
- предполагаемая передаточная функция.
Сравните ответ модели FRD и предполагаемой модели передаточной функции.
bode(frdModel,sys,freq(1:50));
Модель FRD генерируется из системы пятого порядка sys0
. Пока sys
, приближение третьего порядка, не захватывает весь ответ sys0
, он захватывает ответ хорошо до приблизительно 0,6 рад/с.
После оценки модели для вашей системы можно проверить, воспроизводит ли она поведение системы в допустимых границах. Рекомендуется, чтобы вы использовали отдельные наборы данных для оценки и валидации вашей модели. Можно использовать данные временной области или частотного диапазона для проверки модели, оцененной с использованием данных частотного диапазона. Если вы используете данные валидации ввода-вывода для валидации предполагаемой модели, можно сравнить ответ моделируемой модели с выходами измеренных валидационных данных. Если вашими данными валидации являются данные частотной характеристики, можно сравнить их с частотной характеристикой модели. Для примера сравнить выход предполагаемой модели sys
к измеренным данным валидации zv
, используйте следующий синтаксис:
compare(zv,sys);
Можно также выполнить остаточный анализ. Для получения дополнительной информации см. «Валидация моделей после оценки».
Когда вы оцениваете модель, используя данные частотного диапазона, алгоритм оценки минимизирует функцию потерь (затрат). Для примера, если вы оцениваете линейную модель SISO из данных частотной характеристики f
алгоритм оценки минимизирует следующую функцию потерь методом наименьших квадратов:
Вот W
- частотно-зависимый вес, который вы задаете, G
линейная модель, которая должна быть оценена, ω - частота, и Nf количество частот, на которых данные доступны. Количество - ошибка частотной характеристики. Для входных-выходных данных частотного диапазона алгоритм минимизирует взвешенную норму выходной ошибки вместо ошибки частотной характеристики. Для получения дополнительной информации см. «Функция потерь» и «Метрики качества модели». Во время оценки ложная или неупорядоченная динамика в ваших данных может повлиять на функцию потерь и привести к неудовлетворительной оценке модели.
Неожиданная, ложная динамика - обычно наблюдается, когда области данных с высокой величиной имеют низкое отношение сигнал/шум. Ошибка подгонки вокруг этих фрагментов данных имеет большой вклад в функцию потерь. В результате алгоритм оценки может перегружать и присваивать неожиданную динамику шуму в этих областях. Для устранения этой проблемы:
Улучшите отношение сигнал/шум - можно собрать более одного набора данных и усреднить их. Если у вас есть входные-выходные данные частотного диапазона, можно объединить несколько наборов данных при помощи merge
команда. Используйте эти данные для оценки, чтобы получить улучшенный результат. Также можно фильтровать набор данных и использовать его для оценки. Для примера используйте фильтр скользящего среднего по данным, чтобы сгладить измеренный отклик. Применить фильтр сглаживания можно только в тех областях данных, где вы уверены, что немуткость обусловлена шумом, а не динамикой системы.
Уменьшите влияние определенных фрагментов данных на функцию потерь - можно задать частотно-зависимый вес. Для примера, если вы оцениваете модель передаточной функции, задайте вес в WeightingFilter
опция набора опций оценки tfestOptions
. Задайте небольшой вес в частотных областях, где существует паразитная динамика. В качестве альтернативы используйте меньше точек данных вокруг этой частотной области.
Динамика без заполнения - обычно наблюдается, когда динамика, которую вы хотите захватить, имеет низкую величину относительно остальных данных. Поскольку плохая подгонка к данным малой величины вносит меньший вклад в функцию потерь, алгоритм может игнорировать эту динамику, чтобы уменьшить ошибки на других частотах. Для устранения этой проблемы:
Задайте частотно-зависимый вес - Задайте большой вес для частотной области, где вы хотели бы захватить динамику.
Используйте больше точек данных вокруг этой области.
Для примера этих методов поиска и устранения проблем смотрите Поиск и устранение проблем с идентификацией частотного диапазона моделей передаточных функций.
Если вы не достигаете удовлетворительной модели, используя эти методы поиска и устранения проблем, попробуйте другую структуру модели или алгоритм оценки.
После оценки модели можно выполнить преобразования моделей, извлечь параметры модели, а также симулировать и предсказать реакцию модели. Некоторые из задач, которые вы можете выполнить:
Преобразование между представлениями в дискретном времени и в непрерывном времени
Преобразование между представлениями линейной модели - преобразование между представлениями линейной параметрической модели, такими как между представлениями полинома, пространства состояний и нули полюсов.
Извлечение числовых данных моделей - Например, извлечь полюса и нули модели используя pole
и zero
команды, соответственно. Вычислите частотную характеристику модели для заданного набора частот используя freqresp
.