Программное обеспечение 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 (λ) и частотный вектор λ. Domain свойство объекта имеет значение 'Frequency', чтобы указать, что объект содержит сигналы частотной области. Если U (λ), Y (λ) - дискретно-временные преобразования Фурье дискретно-временных сигналов, дискретизируемые с интервалом дискретизацииTs, обозначить интервал выборки в iddata объект. Если U (λ), Y (λ) являются преобразованиями Фурье сигналов непрерывного времени, укажитеTs как 0 в iddata объект.
Для печати данных в командной строке используйте plot команда.
Например, можно построить график фазы и величины входных-выходных данных частотной области.
Загрузка входных-выходных данных временной области.
load iddata1 z1
Входные данные временной области u и результаты y хранятся в z1один iddata объект, чей Domain свойство имеет значение 'Time'.
Преобразование Фурье данных для получения входных-выходных данных частотной области.
zf = fft(z1);
Domain имущество zf имеет значение 'Frequency', указывая, что это данные частотной области.
Постройте график величины и фазы входных-выходных данных частотной области.
plot(zf)

Данные частотного отклика - укажите как idfrd объект. При наличии программного обеспечения Control System Toolbox™ можно также указать данные как frd(Панель инструментов системы управления).
Для печати данных в командной строке используйте 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 данные частоты-отклика объекта. |
|
Дополнительные сведения о преобразовании между типами данных в приложении или в командной строке см. на странице Преобразовать категорию данных.
В отличие от данных временной области, время выборки Ts данных частотной области могут быть равны нулю. Данные частотной области с нулем Ts называется данными непрерывного времени. Данные частотной области с Ts больше нуля называется дискретно-временными данными.
Можно получить данные частотной области непрерывного времени (Ts = 0) следующими способами:
Создание данных из известных аналитических выражений непрерывного времени.
Например, предположим, что частотно-отклик вашей системы равен + jλ), где b - константа. Также предположим, что входы временной области в вашу систему − atsinw0t, где a - константа больше нуля, а u (t) - ноль для всех времен t меньше нуля. Можно вычислить преобразование Фурье u (t) для получения
2 + w02]
Используя U (λ) и G (λ), можно получить выражение частотной области для выходов:
U (λ)
Теперь можно вычислить аналитические выражения для Y (λ) и U (λ) по сетке частотных ., startn) и получить вектор частотно-доменных входных-выходных данных 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.
Перед выполнением оценки можно задать опции оценки, например, как программное обеспечение обрабатывает начальные условия данных оценки. Для этого в командной строке используйте набор опций оценки, соответствующий команде оценки. Например, предположим, что требуется оценить модель передаточной функции из данных частотной области, zf, а также требуется оценить начальные условия данных. Используйте tfestOptions задайте параметры оценки, а затем оцените модель.
opt = tfestOptions('InitialCondition','estimate'); sys = tfest(zf,opt);
sys - расчетная модель передаточной функции. Сведения о извлечении оценочных значений параметров из модели см. в разделе Извлечение числовых данных модели. После выполнения оценки можно проверить расчетную модель.
Примечание
Нулевое начальное условие для данных временной области не подразумевает нулевое начальное условие для соответствующих данных частотной области. Для данных временной области нулевые начальные условия означают, что система находится в состоянии покоя до начала сбора данных. В частотной области исходные условия могут игнорироваться только в том случае, если собираемые данные носят периодический характер. Таким образом, если данные временной области собраны с нулевыми начальными условиями и они преобразуются в данные частотной области для оценки модели, необходимо также оценить исходные условия. Их нельзя указать как ноль.
С помощью данных частотной области невозможно выполнить следующие оценки:
Оценка шумовой составляющей линейной модели, за исключением моделей ARX.
Оценка моделей временных рядов с использованием только спектральных данных. Данные спектра - это спектр мощности сигнала, обычно хранящийся в SpectrumData свойство idfrd объект.
Можно оценить все поддерживаемые линейные модели как модели дискретного времени, за исключением моделей процессов. Модели процессов определяются только в непрерывном режиме. Для оценки моделей дискретного времени необходимо использовать данные дискретного времени.
Можно оценить все поддерживаемые линейные модели как модели непрерывного времени, за исключением корреляционных моделей (см. impulseest). Модели непрерывного времени можно оценить, используя данные непрерывного и дискретного времени. Сведения о непрерывных и дискретных данных см. в разделе Непрерывные и дискретные данные частотной области.
При оценке модели непрерывного времени с использованием данных дискретного времени необходимо указать поведение данных между образцами. Спецификация интерсамплярного поведения зависит от типа данных частотной области.
Дискретно-временные данные на входе-выходе частотной области (iddata object) - укажите интерсамплярное поведение входного сигнала временной области u (t), который был преобразован Фурье для получения входного сигнала частотной области U (λ).
Дискретно-временные частотно-ответные данные (idfrd object) - данные генерируются путем вычисления частотно-отклика дискретно-временной модели. Укажите поведение между образцами как метод дискретизации, предполагаемый для вычисления дискретной модели времени из базовой модели непрерывного времени. Пример см. в разделе Указание межсамплерного поведения для дискретных частотно-ответных данных.
Можно задать поведение между образцами, которое должно быть кусочно постоянным (удержание нулевого порядка), линейно интерполированным между выборками (удержание первого порядка) или ограниченным диапазоном. При указании дискретных временных данных из системы как ограниченных по полосе (то есть без мощности выше частоты Найквиста), программа рассматривает данные как непрерывное время, устанавливая время выборки равным нулю. Затем программное обеспечение оценивает модель непрерывного времени на основе данных. Дополнительные сведения см. в разделе Влияние поведения входных интерсампл на модели непрерывного времени.
В этом примере показано влияние интерсимпульсного поведения на оценку моделей непрерывного времени с использованием данных дискретного частотного отклика.
Формирование дискретно-временных частотно-ответных данных. Для этого сначала создайте модель функции переноса непрерывного времени, 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 потому что правильное поведение между образцами указано в FRdata.
Теперь укажите интерсамплярное поведение как удержание нулевого порядка (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. Таким образом, ошибки, связанные с выборкой, вводятся в оценку модели, когда поведение между выборками указано неправильно.
В этом примере показано, как преобразовать модель данных частотного отклика (FRD) в модель передаточной функции. Модель FRD рассматривается как данные оценки, а затем оценивается передаточная функция.
Получение модели FRD.
Например, использовать bode для получения данных о величине и фазовой характеристике для следующей системы пятого порядка:
4s2 + 0 12s + 0,04
Используйте 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алгоритм оценки минимизирует следующую функцию потерь наименьших квадратов:
(ωk)) |2
Здесь W - определяемый частотно-зависимый вес, G - линейная модель, которая должна быть оценена, λ - частота, а Nf - число частот, на которых доступны данные. Величина startk)) является погрешностью частоты-отклика. Для данных ввода-вывода в частотной области алгоритм минимизирует взвешенную норму выходной ошибки вместо ошибки частотного отклика. Дополнительные сведения см. в разделах Функция потери и Показатели качества модели. Во время оценки ложная или неусвоенная динамика в данных может повлиять на функцию потерь и привести к неудовлетворительной оценке модели.
Неожиданная, ложная динамика - обычно наблюдается, когда области данных с высокой величиной имеют низкое отношение сигнал/шум. Ошибка подгонки вокруг этих частей данных имеет большой вклад в функцию потерь. В результате алгоритм оценки может переопределить и назначить неожиданную динамику шуму в этих областях. Чтобы устранить эту проблему:
Улучшение отношения сигнал/шум - можно собрать несколько наборов данных и усреднить их. При наличии данных ввода-вывода в частотной области можно объединить несколько наборов данных с помощью merge команда. Используйте эти данные для оценки, чтобы получить улучшенный результат. Кроме того, можно отфильтровать набор данных и использовать его для оценки. Например, используйте фильтр скользящего среднего по данным для сглаживания измеренного отклика. Фильтр сглаживания применяется только в тех областях данных, где вы уверены в том, что беспорядок обусловлен шумом, а не динамикой системы.
Уменьшите влияние определенных частей данных на функцию потери - можно указать частотно-зависимый вес. Например, при оценке модели передаточной функции укажите вес в WeightingFilter опции набора опций оценки tfestOptions. Укажите небольшой вес в частотных областях, где существует паразитная динамика. Либо используйте меньше точек данных вокруг этой частотной области.
Ненапряженная динамика - обычно наблюдается, когда динамика, которую вы хотите захватить, имеет низкую величину по сравнению с остальными данными. Поскольку плохая подгонка к данным низкой величины вносит меньший вклад в функцию потерь, алгоритм может игнорировать эту динамику, чтобы уменьшить ошибки на других частотах. Чтобы устранить эту проблему:
Указать частотно-зависимый вес (Specify a frequency-dependent weight) - укажите большой вес для частотной области, в которой требуется фиксировать динамику.
Используйте дополнительные точки данных вокруг этой области.
Пример этих методов поиска и устранения неисправностей см. в разделе Устранение неполадок при идентификации частотной области моделей передаточных функций.
Если с помощью этих методов поиска и устранения неисправностей не удается получить удовлетворительную модель, попробуйте использовать другую структуру модели или алгоритм оценки.
После оценки модели можно выполнить преобразования модели, извлечь параметры модели, а также смоделировать и спрогнозировать отклик модели. Можно выполнить следующие задачи:
Преобразование между представлениями дискретного времени и непрерывного времени
Преобразование между представлениями линейной модели - преобразование между представлениями линейной параметрической модели, например между представлениями полинома, состояния-пространства и нулевого полюса.
Извлечение числовых данных модели - например, извлечение полюсов и нулей модели с помощью pole и zero соответственно. Вычислить частотную характеристику модели для указанного набора частот с помощью freqresp.
Использование модели для проектирования элементов управления