Модальные параметры от функций частотной характеристики
fn = modalfit(frf,f,fs,mnum)
fn = modalfit(frf,f,fs,mnum,Name,Value)
[fn,dr,ms]
= modalfit(___)
[fn,dr,ms,ofrf]
= modalfit(___)
[___] = modalfit(sys,f,mnum,Name,Value)
[___] = modalfit(
оценивает модальные параметры идентифицированной модели sys
,f
,mnum
,Name,Value
)sys
. Используйте команды оценки как ssest
или tfest
, чтобы создать sys
, начинающий с измеренной функции частотной характеристики или с сигналов ввода и вывода временного интервала. Этот синтаксис позволяет использование 'DriveIndex'
, 'FreqRange'
и аргументов пары "имя-значение" 'PhysFreq'
. Обычно требуется меньше данных, чем синтаксисы, которые используют непараметрические методы. У вас должна быть лицензия System Identification Toolbox™, чтобы использовать этот синтаксис.
Оцените функцию частотной характеристики для простой single-input/single-output системы и сравните ее с определением.
Одномерное дискретное время колеблющаяся система состоит из модульной массы, , присоединенный к стене к пружине с эластичной константой . Датчик выбирает смещение массы в Гц. Демпфер препятствует движению массы путем проявления на нем силы, пропорциональной, чтобы ускориться с затуханием постоянного .
Сгенерируйте в 3000 раз выборки. Задайте интервал выборки .
Fs = 1; dt = 1/Fs; N = 3000; t = dt*(0:N-1); b = 0.01;
Система может быть описана моделью в пространстве состояний
где вектор состояния, и соответственно смещение и скорость массы, движущая сила, и измеренный вывод. Матрицы пространства состояний
идентичность и непрерывно-разовые матрицы пространства состояний
Ac = [0 1;-1 -b]; A = expm(Ac*dt); Bc = [0;1]; B = Ac\(A-eye(2))*Bc; C = [1 0]; D = 0;
Масса управляется случайным входом в течение первых 2 000 секунд и затем оставляется возвратиться к отдыху. Используйте модель в пространстве состояний, чтобы вычислить эволюцию времени системы, начинающей со все-нулевого начального состояния. Постройте смещение массы как функция времени.
rng default u = randn(1,N)/2; u(2001:end) = 0; y = 0; x = [0;0]; for k = 1:N y(k) = C*x + D*u(k); x = A*x + B*u(k); end plot(t,y)
Оцените модальную функцию частотной характеристики системы. Используйте окно Hann, вдвое менее длинное, чем измеренные сигналы. Укажите, что вывод является смещением массы.
wind = hann(N/2); [frf,f] = modalfrf(u',y',Fs,wind,'Sensor','dis');
Функция частотной характеристики системы дискретного времени может быть выражена как Z-преобразование передаточной функции временного интервала системы, оцененной в модульном кругу. Сравните оценку modalfrf
с определением.
[b,a] = ss2tf(A,B,C,D); nfs = 2048; fz = 0:1/nfs:1/2-1/nfs; z = exp(2j*pi*fz); ztf = polyval(b,z)./polyval(a,z); plot(f,20*log10(abs(frf))) hold on plot(fz*Fs,20*log10(abs(ztf))) hold off grid ylim([-60 40])
Оцените собственную частоту и отношение затухания для режима вибрации.
[fn,dr] = modalfit(frf,f,Fs,1,'FitMethod','PP')
fn = 0.1593
dr = 0.0043
Сравните собственную частоту с , который является теоретическим значением для незатухающей системы.
theo = 1/(2*pi)
theo = 0.1592
Вычислите модальные параметры модуля Космической станции, начинающего с его массива функции частотной характеристики (FRF).
Загрузите структуру, содержащую three-input/three-output FRF массив. Система выбирается на уровне 320 Гц.
load modaldata SpaceStationFRF frf = SpaceStationFRF.FRF; f = SpaceStationFRF.f; fs = SpaceStationFRF.Fs;
Извлеките модальные параметры самых низких 24 режимов с помощью метода рациональной функции наименьших квадратов.
[fn,dr,ms,ofrf] = modalfit(frf,f,fs,24,'FitMethod','lsrf');
Сравните восстановленный массив FRF с измеренным.
for ij = 1:3 for ji = 1:3 subplot(3,3,3*(ij-1)+ji) loglog(f,abs(frf(:,ji,ij))) hold on loglog(f,abs(ofrf(:,ji,ij))) hold off axis tight title(sprintf('In%d -> Out%d',ij,ji)) if ij==3 xlabel('Frequency (Hz)') end end end
Оцените функцию частотной характеристики и модальные параметры простой системы мультивхода/мультивывода.
Идеальная одномерная колеблющаяся система состоит из двух масс, и , ограниченный между двумя стенами. Модули таковы что и . Каждая масса присоединена к самой близкой стене к пружине с эластичной константой . Идентичная пружина соединяет эти две массы. Три демпфера препятствуют движению масс путем проявления на них, обеспечивает пропорциональный, чтобы ускориться, с затуханием постоянного . Выборка датчиков и , смещения масс, в Гц.
Сгенерируйте в 30,000 раз выборки, эквивалентные 600 секундам. Задайте интервал выборки .
Fs = 50; dt = 1/Fs; N = 30000; t = dt*(0:N-1);
Система может быть описана моделью в пространстве состояний
где вектор состояния, и соответственно местоположение и скорость масса th, вектор входных движущих сил, и выходной вектор. Матрицы пространства состояний
идентичность и непрерывно-разовые матрицы пространства состояний
Набор , , и .
k = 400; b = 0.1; m = 1/10; Ac = [0 1 0 0;-2*k -2*b k b;0 0 0 1;k/m b/m -2*k/m -2*b/m]; A = expm(Ac*dt); Bc = [0 0;1 0;0 0;0 1/m]; B = Ac\(A-eye(4))*Bc; C = [1 0 0 0;0 0 1 0]; D = zeros(2);
Массы управляются случайным входом в течение измерения. Используйте модель в пространстве состояний, чтобы вычислить эволюцию времени системы, начинающей со все-нулевого начального состояния.
rng default u = randn(2,N); y = [0;0]; x = [0;0;0;0]; for kk = 1:N y(:,kk) = C*x + D*u(:,kk); x = A*x + B*u(:,kk); end
Используйте входные и выходные данные, чтобы оценить передаточную функцию системы как функция частоты. Используйте окно Hann с 15000 выборками с 9 000 выборок перекрытия между смежными сегментами. Укажите, что измеренные выходные параметры являются смещениями.
wind = hann(15000); nove = 9000; [FRF,f] = modalfrf(u',y',Fs,wind,nove,'Sensor','dis');
Вычислите теоретическую передаточную функцию как Z-преобразование передаточной функции временного интервала, оцененной в модульном кругу.
nfs = 2048; fz = 0:1/nfs:1/2-1/nfs; z = exp(2j*pi*fz); [b1,a1] = ss2tf(A,B,C,D,1); [b2,a2] = ss2tf(A,B,C,D,2); frf(1,:,1) = polyval(b1(1,:),z)./polyval(a1,z); frf(1,:,2) = polyval(b1(2,:),z)./polyval(a1,z); frf(2,:,1) = polyval(b2(1,:),z)./polyval(a2,z); frf(2,:,2) = polyval(b2(2,:),z)./polyval(a2,z);
Постройте оценки и наложите теоретические прогнозы.
for jk = 1:2 for kj = 1:2 subplot(2,2,2*(jk-1)+kj) plot(f,20*log10(abs(FRF(:,jk,kj)))) hold on plot(fz*Fs,20*log10(abs(frf(jk,:,kj)))) hold off axis([0 Fs/2 -100 0]) title(sprintf('Input %d, Output %d',jk,kj)) end end
Постройте оценки при помощи синтаксиса modalfrf
без выходных аргументов.
figure modalfrf(u',y',Fs,wind,nove,'Sensor','dis')
Оцените собственные частоты, ослабив отношения и формы режима системы. Используйте выбирающий пик метод для вычисления.
[fn,dr,ms] = modalfit(FRF,f,Fs,2,'FitMethod','pp'); fn
fn = fn(:,:,1) = 3.8466 3.8466 3.8495 3.8495 fn(:,:,2) = 3.8492 3.8490 3.8552 14.4684
Сравните собственные частоты с теоретическими прогнозами для незатухающей системы.
undamped = sqrt(eig([2*k -k;-k/m 2*k/m]))/2/pi
undamped = 2×1
3.8470
14.4259
Вычислите собственные частоты, отношения затухания и формы режима для two-input/three-output системы, взволнованной несколькими пакетами случайного шума. Каждый пакет служит в течение 1 секунды, и существует 2 секунды между концом каждого пакета и запуском следующего. Данные выбираются на уровне 4 кГц.
Загрузите файл данных. Постройте входные сигналы и выходные сигналы.
load modaldata subplot(2,1,1) plot(Xburst) title('Input Signals') subplot(2,1,2) plot(Yburst) title('Output Signals')
Вычислите функции частотной характеристики. Задайте прямоугольное окно с длиной, равной пакетному периоду и никакому перекрытию между смежными сегментами.
burstLen = 12000; [frf,f] = modalfrf(Xburst,Yburst,fs,burstLen);
Визуализируйте схему стабилизации и возвратите стабильные собственные частоты. Задайте максимальный порядок модели 30 режимов.
figure
modalsd(frf,f,fs,'MaxModes',30);
Увеличьте масштаб графика. Усредненная функция отклика имеет максимумы на уровне 373 Гц, 852 Гц и 1 371 Гц, который соответствует физическим частотам системы. Сохраните максимумы в переменную.
phfr = [373 852 1371];
Вычислите модальные параметры с помощью алгоритма наименьших квадратов объединяют экспоненциал (LSCE). Задайте порядок модели 6 режимов и задайте физические частоты для этих 3 режимов, определенных из схемы стабилизации. Функция генерирует один набор собственных частот и отношений затухания для каждой входной ссылки.
[fn,dr,ms,ofrf] = modalfit(frf,f,fs,6,'PhysFreq',phfr);
Постройте восстановленные функции частотной характеристики и сравните их с исходными единицами.
for k = 1:2 for m = 1:3 subplot(2,3,m+3*(k-1)) plot(f/1000,10*log10(abs(frf(:,m,k)))) hold on plot(f/1000,10*log10(abs(ofrf(:,m,k)))) hold off text(1,-50,[['Output ';' Input '] num2str([m k]')]) ylim([-100 -40]) end end subplot(2,3,2) title('Frequency-Response Functions')
frf
— Функции частотной характеристикиФункции частотной характеристики, заданные как вектор, матрица или трехмерный массив. frf
имеет размер p-by-m-by-n, где p является количеством интервалов частоты, m является количеством сигналов ответа, и n является количеством сигналов возбуждения, используемых, чтобы оценить передаточную функцию.
Пример: tfestimate(randn(1,1000),sin(2*pi*(1:1000)/4)+randn(1,1000)/10)
аппроксимирует частотную характеристику осциллятора.
Типы данных: single | double
Поддержка комплексного числа: Да
f
ЧастотыЧастоты, заданные как вектор. Число элементов f
должно равняться количеству строк frf
.
Типы данных: single | double
fs
— Частота дискретизации данных об измеренииЧастота дискретизации данных об измерении, заданных как положительная скалярная величина, выражается в герц.
Типы данных: single | double
mnum
— Количество режимовКоличество режимов, заданных как положительное целое число.
Типы данных: single | double
sys
— Идентифицированная системаИдентифицированная система, заданная как модель с идентифицированными параметрами. Используйте команды оценки как ssest
, n4sid
или tfest
, чтобы создать sys
, начинающий с измеренной функции частотной характеристики или с сигналов ввода и вывода временного интервала. Смотрите Модальный Анализ Идентифицированных Моделей для примера. У вас должна быть лицензия System Identification Toolbox, чтобы использовать этот входной параметр.
Пример: idss([0.5418 0.8373;-0.8373 0.5334],[0.4852;0.8373],[1 0],0,[0;0],[0;0],1)
генерирует идентифицированную модель в пространстве состояний, соответствующую модульной массе, присоединенной к стене к пружине модуля эластичная константа и демпфер с постоянными 0.01. Смещение массы выбирается на уровне 1 Гц.
Пример: idtf([0 0.4582 0.4566],[1 -1.0752 0.99],1)
генерирует идентифицированное соответствие модели передаточной функции модульной массе, присоединенной к стене к пружине модуля эластичная константа и демпфер с постоянными 0.01. Смещение массы выбирается на уровне 1 Гц.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'FitMethod','pp','FreqRange',[0 500]
использует выбирающий пик метод, чтобы выполнить подгонку и ограничивает частотный диапазон между 0 и 500 Гц.'Feedthrough'
— Присутствие сквозного соединения в предполагаемой передаточной функцииfalse
(значение по умолчанию) | true
Присутствие сквозного соединения в предполагаемой передаточной функции, заданной как пара, разделенная запятой, состоящая из 'Feedthrough'
и логического значения. Этот аргумент доступен, только если 'FitMethod'
задан как 'lsrf'
.
Типы данных: логический
'FitMethod'
— Алгоритм подбора'lsce'
(значение по умолчанию) | 'lsrf'
| 'pp'
Алгоритм подбора, заданный как пара, разделенная запятой, состоящая из 'FitMethod'
и 'lsce'
, 'lsrf'
или 'pp'
.
'lsce'
— Комплекс наименьших квадратов Экспоненциальный Метод. Если вы задаете 'lsce'
, то fn
является вектором с элементами mnum
, независимыми от размера frf
.
'lsrf'
— Метод оценки рациональной функции наименьших квадратов. Если вы задаете 'lsrf'
, то fn
является вектором с элементами mnum
, независимыми от размера frf
. Метод описан в [3]. Смотрите, что Непрерывно-разовая Оценка Передаточной функции Использует Непрерывно-разовые Данные Частотного диапазона (System Identification Toolbox) для получения дополнительной информации. Этот алгоритм обычно требует меньшего количества данных, чем непараметрические подходы и является единственным, который работает на неоднородный f
.
'pp'
— Выбирающий пик Метод. Для frf
, вычисленного из сигналов возбуждения n и сигналов ответа m, fn
является mnum
-by-m-by-n массив с одной оценкой fn
и одной оценкой dr
на frf
.
'FreqRange'
— Частотный диапазонЧастотный диапазон, заданный как пара, разделенная запятой, состоящая из 'FreqRange'
и двухэлементный вектор увеличения положительных значений, содержавших в области значений, задан в f
.
Типы данных: single | double
'PhysFreq'
— Собственные частоты для физических режимовСобственные частоты для физических режимов, чтобы включать в анализ, заданный как пара, разделенная запятой, состоящая из 'PhysFreq'
и вектор значений частоты в области значений, заполненной f
. Функция включает в анализ те режимы с собственными частотами, самыми близкими к значениям, заданным в векторе. Если вектор содержит значения частоты m, то fn
и dr
имеют строки m каждый, и ms
имеет столбцы m. Если вы не задаете этот аргумент, то функция использует целый частотный диапазон в f
.
Типы данных: single | double
'DriveIndex'
— Индексы функции частотной характеристики ведущей точки[1 1]
(значение по умолчанию) | двухэлементный вектор положительных целых чиселИндексы функции частотной характеристики ведущей точки, заданной как пара, разделенная запятой, состоящая из 'DriveIndex'
и двухэлементный вектор положительных целых чисел. Первый элемент вектора должен быть меньше чем или равен количеству откликов системы. Второй элемент вектора должен быть меньше чем или равен количеству системных возбуждений. Формы режима нормированы к единице, модальной на основе ведущей точки.
Пример: 'DriveIndex',[2 3]
указывает, что функцией частотной характеристики ведущей точки является frf(:,2,3)
.
Типы данных: single | double
fn
— Собственные частотыСобственные частоты, возвращенные как матрица или трехмерный массив. Размер fn
зависит от выбора алгоритма подбора, заданного с '
FitMethod
'
:
Если вы задаете 'lsce'
или 'lsrf'
, то fn
является вектором с элементами mnum
, независимыми от размера frf
. Если система имеет больше, чем mnum
колебательные режимы, то метод 'lsrf'
возвращает первый mnum
наименее ослабленные режимы, отсортированные в порядке увеличения собственной частоты.
Если вы задаете 'pp'
, то fn
является массивом размера mnum
-by-m-by-n с одной оценкой fn
и одной оценкой dr
на frf
.
dr
— Затухание отношенийЗатухание отношений для собственных частот в fn
, возвращенном как матрица или трехмерный массив, одного размера как fn
.
ms
— Векторы формы режимаВекторы формы режима, возвращенные как матрица. ms
имеет столбцы mnum
, каждый содержащий вектор формы режима длины q, где q является большим из количества каналов возбуждения и количества каналов ответа.
ofrf
— Восстановленные функции частотной характеристикиВосстановленные функции частотной характеристики, возвращенные как вектор, матрица или трехмерный массив с тем же размером как frf
.
Комплексный экспоненциальный метод наименьших квадратов вычисляет импульсный ответ, соответствующий каждой функции частотной характеристики и подгонкам к ответу, набор комплекса ослабил синусоиды с помощью метода Прони.
Выбранная ослабленная синусоида может быть брошена в форме
где:
f s является частотой дискретизации.
fi является частотой синусоиды.
bi является коэффициентом затухания.
Ai и ϕi являются амплитудой и фазой синусоиды.
ai называется амплитудами, и xi называются полюсами. Метод Прони выражает выбранный функциональный h (n) как суперпозиция N/2 режимы (и таким образом амплитуды N и полюса):
Полюса являются корнями полинома с коэффициентами c 0, c 1, …, c N –1:
Коэффициенты найдены с помощью авторегрессивной модели L = 2N выборки h:
Чтобы найти полюса, алгоритм использует функцию roots
. Если полюса известны, возможно определить частоты и факторы затухания путем идентификации мнимых и действительных частей логарифмов полюса. Последний шаг решает для амплитуд и восстанавливает импульсное использование ответа
Следующая наивная реализация MATLAB® обобщает процедуру:
N = 4; L = 2*N; h = rand(L,1); c = hankel(h(1:N),h(L-N:L-1))\-h(N+1:L); x = roots([1;c(N:-1:1)]).'; p = log(x); hrec = x.^((0:L-1)')*(x.^((0:L-1)')\h(1:L)); sum(h-hrec)
ans = 3.2613e-15 - 1.9297e-16i
Выбирающий пик метод принимает, что каждый значительный пик в функции частотной характеристики соответствует точно одному естественному режиму. Близко к пику система принята, чтобы вести себя как ослабленный гармонический осциллятор одной степени свободы:
где H является функцией частотной характеристики, f r является незатухающей резонансной частотой, ζ r = , b / (4mk) 1/2 является относительным затуханием, b является постоянным затуханием, k является эластичной константой, и m является массой.
Учитывая пик, расположенный в fp, процедура берет пик и постоянное число точек любой стороне, заменяет массовый термин на фиктивную переменную, d, и вычисляет модальные параметры путем решения системы уравнений
[1] Allemang, Рэндалл Дж. и Дэвид Л. Браун. “Экспериментальный Модальный Анализ и Динамический Синтез Компонента, Издание III: Модальная Оценка Параметра”. Технический отчет AFWAL TR-87-3069. Авиационные лаборатории Мастера Военно-воздушных сил, Авиационная база ВВС Мастера-Patterson, OH, декабрь 1987.
[2] Брандт, Андерс. Шум и анализ вибрации: анализ сигнала и экспериментальные процедуры. Чичестер, Великобритания: John Wiley & Sons, 2011.
[3] Ozdemir, Ахмет Арда и Суэт Гумассой. "Оценка Передаточной функции System Identification Toolbox через Подбор кривой Вектора". Продолжения 20-го Мирового Конгресса Международной федерации Автоматического управления, Тулузы, Франция, июль 2017.
modalfrf
| modalsd
| n4sid
| tfest
| tfestimate
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.