modalfrf

Частотная характеристика функционирует для модального анализа

Синтаксис

frf = modalfrf(x,y,fs,window)
frf = modalfrf(x,y,fs,window,noverlap)
frf = modalfrf(___,Name,Value)
[frf,f,coh] = modalfrf(___)
[frf,f] = modalfrf(sys)
frf = modalfrf(sys,f)
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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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