modalfrf

Функции частотной характеристики для модального анализа

Описание

пример

frf = modalfrf(x,y,fs,window) оценивает матрицу функций частотной характеристики, frf, от сигналов возбуждения, xи ответные сигналы, y, все дискретизированные со скоростью fs. Выход, frf, является H 1 оценкой, вычисленной с помощью метода Уэлча с window для окна сигналов. x и y должно иметь одинаковое число строк. Если x или y является матрицей, каждый столбец представляет сигнал. Матрица функции частотной характеристики, frf, вычисляется с точки зрения динамической гибкости и отклика системы, y, содержит измерения ускорения.

frf = modalfrf(x,y,fs,window,noverlap) задает noverlap выборки перекрытия между смежными сегментами.

пример

frf = modalfrf(___,Name,Value) задает опции, используя аргументы пары "имя-значение", используя любую комбинацию входов из предыдущих синтаксисов. Опции включают оценщик, строение измерения и тип датчика, измеряющего отклик системы.

пример

[frf,f,coh] = modalfrf(___) также возвращает вектор частоты, соответствующий каждой функции частотной характеристики, а также матрицу множественной когерентности.

[frf,f] = modalfrf(sys) вычисляет функцию частотной характеристики идентифицированной модели sys. Используйте команды оценки, такие как ssest (System Identification Toolbox), n4sid (System Identification Toolbox), или tfest (System Identification Toolbox) для создания sys от входных и выходных сигналов во временной области. Этот синтаксис позволяет использовать только 'Sensor' аргумент пары "имя-значение". Для использования этого синтаксиса необходимо иметь лицензию System Identification Toolbox™.

frf = modalfrf(sys,f) задает частоты, на которых будут вычисляться frf. Этот синтаксис позволяет использовать только 'Sensor' аргумент пары "имя-значение". Для использования этого синтаксиса необходимо иметь лицензию System Identification Toolbox.

пример

modalfrf(___) без выходных аргументов строит графики функций частотной характеристики на текущей фигуре. Графики ограничены первыми четырьмя возбуждениями и четырьмя откликами.

Примеры

свернуть все

Визуализируйте функцию частотной характеристики возбуждения молота с одним входом/одним выходом.

Загрузите файл данных, который содержит:

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

  • Yhammer Ответ системы на вход. Yhammer измеряется как перемещение.

Дискретизация сигналов осуществляется на частоте 4 кГц. Постройте график возбуждения и выходных сигналов.

load modaldata

subplot(2,1,1)
plot(thammer,Xhammer(:))
ylabel('Force (N)')
subplot(2,1,2)
plot(thammer,Yhammer(:))
ylabel('Displacement (m)')
xlabel('Time (s)')

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type line.

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

clf
winlen = size(Xhammer,1);
modalfrf(Xhammer(:),Yhammer(:),fs,winlen,'Sensor','dis')

Figure contains 2 axes. Axes 1 with title FRF11 contains an object of type line. Axes 2 contains an object of type line.

Вычислите функции частотной характеристики для системы с двумя входами/двумя выходами, возбужденными случайным шумом.

Загрузите файл данных, содержащий Xrand, входной сигнал возбуждения и Yrand, а отклик системы. Вычислите функции частотной характеристики с помощью 5000-выборочного окна Ханна и 50% перекрытия между смежными сегментами данных. Задайте, что выходные измерения являются перемещениями.

load modaldata
winlen = 5000;

frf = modalfrf(Xrand,Yrand,fs,hann(winlen),0.5*winlen,'Sensor','dis');

Используйте функции графического изображения modalfrf чтобы визуализировать ответы.

modalfrf(Xrand,Yrand,fs,hann(winlen),0.5*winlen,'Sensor','dis')

Figure contains 8 axes. Axes 1 with title FRF11 contains an object of type line. Axes 2 contains an object of type line. Axes 3 with title FRF12 contains an object of type line. Axes 4 contains an object of type line. Axes 5 with title FRF21 contains an object of type line. Axes 6 contains an object of type line. Axes 7 with title FRF22 contains an object of type line. Axes 8 contains an object of type line.

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

Одномерное дискретное время система состоит из модуля массы, m, прикрепленный к стенке пружиной с упругой константой k=1. Датчик дискретизирует перемещение массы при Fs=1 Гц. Демпфер препятствует движению массы, прикладывая к ней силу, пропорциональную скорости, с постоянной демпфирования b=0.01.

Сгенерируйте 3000 временных выборок. Определите интервал дискретизации Δt=1/Fs.

Fs = 1;
dt = 1/Fs;
N = 3000;
t = dt*(0:N-1);
b = 0.01;

Система может быть описана моделью пространства состояний

x(k+1)=Ax(k)+Bu(k),y(k)=Cx(k)+Du(k),

где x=[rv]T - вектор состояния, r и v являются соответственно перемещением и скоростью массы, u является движущей силой, и y=r - измеренный выход. Матрицы пространства состояний

A=exp(AcΔt),B=Ac-1(A-I)Bc,C=[10],D=0,

I является 2×2 единичные, и матрицы пространства состояний в непрерывном времени

Ac=[01-1-b],Bc=[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)

Figure contains an axes. The axes contains an object of type line.

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

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])

Figure contains an axes. The axes contains 2 objects of type line.

Оцените естественную частоту и коэффициент затухания для режима вибрации.

[fn,dr] = modalfit(frf,f,Fs,1,'FitMethod','PP')
fn = 0.1593
dr = 0.0043

Сравните естественную частоту с 1/2π, которое является теоретическим значением для незаполненной системы.

theo = 1/(2*pi)
theo = 0.1592

Оцените функцию частотной характеристики и модальные параметры простой системы с несколькими входами/несколькими выходами.

Идеальная одномерная колебательная система состоит из двух масс, m1 и m2, ограниченный между двумя стенками. Модули такие, что m1=1 и m2=μ. Каждая масса присоединена к ближайшей стенке пружиной с упругой константой k. Идентичная пружина соединяет две массы. Три демпфера препятствуют движению масс, прикладывая к ним силы, пропорциональные скорости с постоянной демпфирования b. Выборка датчиков r1 и r2, смещения масс, при Fs=50 Гц.

Сгенерируйте 30 000 временных выборок, эквивалентных 600 секундам. Определите интервал дискретизации Δt=1/Fs.

Fs = 50;
dt = 1/Fs;
N = 30000;
t = dt*(0:N-1);

Система может быть описана моделью пространства состояний

x(k+1)=Ax(k)+Bu(k),y(k)=Cx(k)+Du(k),

где x=[r1v1r2v2]T - вектор состояния, ri и vi являются соответственно местоположением и скоростью ith-я масса, u=[u1u2]T является вектором входа движущих сил, и y=[r1r2]T - вектор выхода. Матрицы пространства состояний

A=exp(AcΔt),B=Ac-1(A-I)Bc,C=[10000010],D=[0000],

I является 4×4 единичные, и матрицы пространства состояний в непрерывном времени

Ac=[0100-2k-2bkb0001k/μb/μ-2k/μ-2b/μ],Bc=[00100001/μ].

Набор k=400, b=0.1, и μ=1/10.

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

Figure contains 4 axes. Axes 1 with title Input 1, Output 1 contains 2 objects of type line. Axes 2 with title Input 1, Output 2 contains 2 objects of type line. Axes 3 with title Input 2, Output 1 contains 2 objects of type line. Axes 4 with title Input 2, Output 2 contains 2 objects of type line.

Постройте график оценок с помощью синтаксиса modalfrf без выходных аргументов.

figure
modalfrf(u',y',Fs,wind,nove,'Sensor','dis')

Figure contains 8 axes. Axes 1 with title FRF11 contains an object of type line. Axes 2 contains an object of type line. Axes 3 with title FRF12 contains an object of type line. Axes 4 contains an object of type line. Axes 5 with title FRF21 contains an object of type line. Axes 6 contains an object of type line. Axes 7 with title FRF22 contains an object of type line. Axes 8 contains an object of type line.

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

[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

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

Загрузите структуру, содержащую входные возбуждения и измерения выходного акселерометра. Система отбирается с частотой дискретизации 1024 Гц в течение около 3,9 секунд.

load modaldata SteelFrame
X = SteelFrame.Input;
Y = SteelFrame.Output;
fs = SteelFrame.Fs;

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

[frf,f] = modalfrf(X,Y,fs,1000,'Estimator','subspace','Order',36);

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

modalsd(frf,f,fs,'MaxModes',15)

Figure contains an axes. The axes with title Stabilization Diagram contains 4 objects of type line. These objects represent Stable in frequency, Stable in frequency and damping, Not stable in frequency, Averaged response function.

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

свернуть все

Сигналы возбуждения, заданные в виде вектора или матрицы.

Типы данных: single | double

Сигналы отклика, заданные как вектор или матрица.

Типы данных: single | double

Частота дискретизации, заданная как положительная скалярная величина, выраженная в герцах.

Типы данных: single | double

Окно, заданное как целое число или как строка или вектор-столбец. Использование window для разделения сигнала на сегменты:

  • Если window является целым числом, тогда modalfrf делит x и y в сегменты длины window и окон каждого сегмента с прямоугольным окном этой длины.

  • Если window является вектором, тогда modalfrf делит x и y в сегменты той же длины, что и вектор, и окна каждый сегмент используя window.

  • Если 'Estimator' задается как 'subspace', затем modalfrf игнорирует форму window и использует свою длину, чтобы определить количество частотных точек в возвращенной функции частотной характеристики.

Если длина x и y нельзя разделить точно на целое число сегментов с noverlap перекрывая выборки, сигналы усекаются соответственно.

Список доступных окон см. в разделе Windows.

Пример: hann(N+1) и (1-cos(2*pi*(0:N)'/N))/2 оба задают окно Ханна длины N  + 1.

Типы данных: single | double

Количество перекрывающихся выборок, заданное как положительное целое число.

  • Если window является скаляром, тогда noverlap должно быть меньше window.

  • Если window является вектором, тогда noverlap должно быть меньше длины window.

Типы данных: double | single

Идентифицированная система, заданная как модель с идентифицированными параметрами. Используйте команды оценки, такие как ssest (System Identification Toolbox), n4sid (System Identification Toolbox), или tfest (System Identification Toolbox) для создания sys от входных и выходных сигналов во временной области. Смотрите Модальный анализ идентифицированных моделей для примера. Синтаксисы, которые используют 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 Гц.

Частоты, заданные как вектор, выраженный в Гц.

Типы данных: single | double

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Sensor','vel','Est','H1' задает, что сигнал отклика состоит из измерений скорости и что оценщик выбора H1.

Оценщик, заданный как разделенная разделенными запятой парами, состоящая из 'Estimator' и 'H1', 'H2', 'Hv', или 'subspace'. Смотрите Передаточную функцию для получения дополнительной информации о H 1 и H оценщиках 2.

  • Использование 'H1' когда шум некоррелирован с сигналами возбуждения.

  • Использование 'H2' когда шум некоррелирован с ответными сигналами. В этом случае количество сигналов возбуждения должно равняться количеству сигналов отклика.

  • Использование 'Hv' чтобы минимизировать расхождение между смоделированными и оцененными данными отклика путем минимизации трассировки матрицы ошибок. H v - среднее геометрическое значение H 1 и H 2: H v = (H 1 H 2)1/2

    Измерение должно быть single-input/single-output (SISO).

  • Использование 'subspace' вычислить функции частотной характеристики с помощью модели пространства состояний. В этом случае noverlap аргумент игнорируется. Этот метод обычно требует меньше данных, чем непараметрические подходы. Посмотрите n4sid (System Identification Toolbox) для получения дополнительной информации.

Наличие сквозного соединения в модели пространства состояний, заданное как разделенная запятой пара, состоящее из 'Feedthrough' и логическое значение. Этот аргумент доступен только в том случае, если 'Estimator' задается как 'subspace'.

Типы данных: logical

Строение измерения для равного количества каналов возбуждения и отклика, заданная как разделенная разделенными запятой парами, состоящая из 'Measurement' и 'fixed', 'rovinginput', или 'rovingoutput'.

  • Использование 'fixed' при наличии источников возбуждения и датчиков в фиксированных местах расположения системы. Каждое возбуждение способствует каждому ответу.

  • Использование 'rovinginput' когда измерения являются результатом теста возбуждения (или roving hammer) ровинга. Один датчик сохраняется в фиксированном местоположении системы. Один источник возбуждения помещается в нескольких местах и вырабатывает по одному отклику датчика на место. Вывод функции frf(:,:,i) = modalfrf(x(:,i),y(:,i)).

  • Использование 'rovingoutput' когда измерения являются результатом теста roving sensor. Один источник возбуждения поддерживается в фиксированном местоположении системы. Один датчик помещается в несколько местоположений и реагирует на одно возбуждение в каждом местоположении. Вывод функции frf(:,i) = modalfrf(x(:,i),y(:,i)).

Порядок модели пространства состояний, заданный как разделенная разделенными запятой парами, состоящая из 'Order' и целое число или вектор-строка из целых чисел. Если вы задаете вектор из целых чисел, то функция выбирает оптимальное значение порядка из заданной области. Этот аргумент доступен только в том случае, если 'Estimator' задается как 'subspace'.

Типы данных: single | double

Тип датчика, заданный как разделенная разделенными запятой парами, состоящая из 'Sensor' и 'acc', 'dis', или 'vel'.

  • 'acc' - Напряжение сигнала отклика пропорционально ускорению.

  • 'dis' - Напряжение сигнала отклика пропорционально перемещению.

  • 'vel' - Напряжение сигнала отклика пропорционально скорости.

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

свернуть все

Функции частотной характеристики, возвращенные в виде вектора, матрицы или трехмерные массивы. frf имеет размер p -by- m -by- n, где p - количество интервалов частоты, m - количество откликов, а n - количество сигналов возбуждения.

Частоты, возвращенные как вектор.

Множественная матрица когерентности, возвращенная как матрица. coh имеет по одному столбцу для каждого ответного сигнала.

Ссылки

[1] Брандт, Андерс. Анализ шума и вибрации: анализ сигналов и экспериментальные процедуры. Chichester, UK: John Wiley & Sons, 2011.

[2] Vold, Hovard, John Crowley, and G. Thomas Rocklin. Новые способы оценки функций частотной характеристики. Звук и вибрация. Том 18, ноябрь 1984, стр. 34-38.

Введенный в R2017a