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, n4sid, или tfest создать sys от сигналов ввода и вывода временного интервала. Этот синтаксис позволяет использование только 'Sensor' аргумент пары "имя-значение". У вас должна быть лицензия System Identification Toolbox™, чтобы использовать этот синтаксис.

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

пример

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

Примеры

свернуть все

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

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

  • 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)')

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

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

Вычислите функцию частотной характеристики для two-input/two-output системы, взволнованной случайным шумом.

Загрузите файл данных, который содержит Xrand, входной сигнал возбуждения и Yrand, отклик системы. Вычислите функцию частотной характеристики с помощью окна Hann с 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')

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

Одномерное дискретное время колеблющаяся система состоит из модульной массы, 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;

Масса управляется случайным входом в течение первых 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

Сравните собственную частоту с 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 соответственно местоположение и скорость iмасса th, 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

Используйте входные и выходные данные, чтобы оценить передаточную функцию системы как функция частоты. Используйте окно 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/six-output набора данных, соответствующего стальной конструкции.

Загрузите структуру, содержащую входные возбуждения и выходные измерения акселерометра. Система производится на уровне 1 024 Гц в течение приблизительно 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)

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

свернуть все

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

Типы данных: 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 оба задают окно Hann длины N  + 1.

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

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

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

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

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

Идентифицированная система, заданная как модель идентифицированными параметрами. Используйте команды оценки как ssest, n4sid, или tfest создать 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 1H2) 1/2

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

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

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

Типы данных: логический

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

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

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

  • Используйте 'rovingoutput' когда измерения следуют из мобильного теста датчика. Один источник возбуждения сохранен в фиксированном местоположении системы. Один датчик помещается в несколько местоположений и отвечает на одно возбуждение на местоположение. Функциональный выход 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] Брандт, Андерс. Шум и анализ вибрации: анализ сигнала и экспериментальные процедуры. Чичестер, Великобритания: John Wiley & Sons, 2011.

[2] Vold, Håvard, Джон Кроули и Г. Томас Роклин. “Новые Способы Оценить Функции Частотной характеристики”. Звук и Вибрация. Издание 18, ноябрь 1984, стр 34–38.

Введенный в R2017a