exponenta event banner

modalfrf

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

Описание

пример

frf = modalfrf(x,y,fs,window) оценивает матрицу функций частотной характеристики, frf, от сигналов возбуждения, xи ответные сигналы, y, все отобраны со скоростью fs. Выходные данные, frf, является оценкой H1, вычисленной с использованием метода Уэлча с 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(Панель инструментов идентификации системы), n4sid(Панель инструментов идентификации системы), или tfest(Панель инструментов идентификации системы) для создания sys от входных и выходных сигналов временной области. Этот синтаксис позволяет использовать только 'Sensor' аргумент пары имя-значение. Для использования этого синтаксиса необходимо иметь лицензию на Toolbox™ идентификации системы.

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

пример

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;

Система может быть описана с помощью модели state-space

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 Гц.

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

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

Система может быть описана с помощью модели state-space

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

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

A=exp (AcΔt), B=Ac-1 (A-I) до н.э, C = [10000010], D = [0000],

I - тождество 4 × 4, а матрицы состояния-пространства непрерывного времени -

Ac = [0100-2k-2bkb0001k/μb/μ-2k/μ-2b/μ], до н.э = [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);

Массы управляются случайным вводом на протяжении всего измерения. Используйте модель state-space, чтобы вычислить эволюцию времени системы, начиная с начального состояния с нулем.

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;

Используйте метод подпространства для вычисления частотно-ответных функций. Разделите входной и выходной сигналы на неперекрывающиеся 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(Панель инструментов идентификации системы), n4sid(Панель инструментов идентификации системы), или tfest(Панель инструментов идентификации системы) для создания sys от входных и выходных сигналов временной области. Пример см. в разделе Модальный анализ идентифицированных моделей. Синтаксы, которые используют sys обычно требуется меньше данных, чем синтаксисы, использующие непараметрические методы. Для использования этого входного аргумента необходимо иметь лицензию на набор средств идентификации системы.

Пример: 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'. Дополнительные сведения об оценщиках H1 и H2 см. в разделе Функция переноса.

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

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

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

    Измерение должно быть одним входом/одним выходом (SISO).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Частоты, возвращаемые в виде вектора.

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

Ссылки

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

[2] Вольд, Ховард, Джон Кроули и Г. Томас Роклин. «Новые способы оценки функций частотного отклика». Звук и вибрация. Том 18, ноябрь 1984, стр. 34-38.

См. также

| | | (панель инструментов идентификации системы)

Темы

Представлен в R2017a