Модальные параметры от функций частотной характеристики
[___] = modalfit(
оценивает модальные параметры идентифицированной модели sys
,f
,mnum
,Name,Value
)sys
. Используйте команды оценки, такие как ssest
(System Identification Toolbox) или tfest
(System Identification Toolbox) для создания sys
начиная с измеренной функции частотной характеристики или с входных и выходных сигналов во временной области. Этот синтаксис позволяет использовать 'DriveIndex'
, 'FreqRange'
, и 'PhysFreq'
Аргументы пары "имя-значение". Обычно это требует меньше данных, чем синтаксисы, которые используют непараметрические методы. Для использования этого синтаксиса необходимо иметь лицензию System Identification Toolbox™.
Оцените функцию частотной характеристики для простой системы с одним входом/одним выходом и сравните ее с определением.
Одномерное дискретное время система состоит из модуля массы, , прикрепленный к стенке пружиной с упругой константой . Датчик дискретизирует перемещение массы при Гц. Демпфер препятствует движению массы, прикладывая к ней силу, пропорциональную скорости, с постоянной демпфирования .
Сгенерируйте 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;
Масса управляется случайным входом в течение первых 2000 секунд, а затем уходит, чтобы вернуться к восстановлению. Используйте модель пространства состояний, чтобы вычислить временную эволюцию системы, начиная с полностью нулевого начального состояния. Постройте график смещения массы как функции времени.
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)
Оцените модальную функцию частотной характеристики системы. Используйте половину окна Ханна, пока измеренные сигналы. Задайте, что выходом является перемещение массы.
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
Вычислите модальные параметры модуля Space Station, начиная с его массива функции частотной характеристики (FRF).
Загрузите структуру, содержащую массив 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
Используйте входные и выходные данные, чтобы оценить передаточную функцию системы как функцию от частоты. Используйте 15000-образцевое окно Ханна с 9000 выборками перекрытия между смежными сегментами. Задайте, что измеренные выходы являются перемещениями.
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
Вычислите естественные частоты, коэффициенты затухания и формы режима для системы с двумя входами/тремя выходами, возбуждаемой несколькими всплесками случайного шума. Каждый пакет длится 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 Гц и 1371 Гц, которые соответствуют физическим частотам системы. Сохраните максимумы в переменную.
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
(System Identification Toolbox), n4sid
(System Identification Toolbox), или tfest
(System Identification Toolbox) для создания 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
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'FitMethod','pp','FreqRange',[0 500]
использует метод пикового захвата для выполнения подгонки и ограничивает частотную область значений от 0 до 500 Гц.'Feedthrough'
- Наличие прохода в расчетной передаточной функцииfalse
(по умолчанию) | true
Наличие сквозного соединения в предполагаемой передаточной функции, заданной как разделенная разделенными запятой парами, состоящая из 'Feedthrough'
и логическое значение. Этот аргумент доступен только в том случае, если 'FitMethod'
задается как 'lsrf'
.
Типы данных: logical
'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 = 2 N отсчетах 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/( 4 mk)1/2 - относительное демпфирование, b - константа демпфирования, k - упругая константа, и m - масса.
Учитывая пик, расположенный на fp, процедура берёт пик и фиксированное число точек на обе стороны, заменяет массовый член на фиктивную переменную, d и вычисляет модальные параметры, решая систему уравнений
[1] Аллеманг, Рэндалл Дж., и Дэвид Л. Браун. Экспериментальный модальный анализ и динамический синтез компонентов, Vol. III: Оценка модальных параметров. Технический отчет AFWAL-TR-87-3069. Военно-воздушные лаборатории Райта, Райт-Паттерсон-Эйр-Форс-Бэз, OH, декабрь 1987 года.
[2] Брандт, Андерс. Анализ шума и вибрации: анализ сигналов и экспериментальные процедуры. Chichester, UK: John Wiley & Sons, 2011.
[3] Оздемир, Ахмет Арда и Суат Гумуссой. «Оценка передаточной функции в System Identification Toolbox через векторный подбор кривой». Материалы XX Всемирного конгресса Международной федерации автоматического управления, Тулуза, Франция, июль 2017 года.
modalfrf
| modalsd
| tfestimate
| n4sid
(System Identification Toolbox) | tfest
(Набор System Identification Toolbox)
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.