如何获得共振频率(波德图)? (2-DOF系统的响应)

时间:2016-03-20 09:03:13

标签: matlab frequency amplitude transfer-function magnitude

我想研究系统的反应。

我想找到簧载质量的共振频率(m1)和非簧载质量的共振频率(m2)。

因为我不确定我是否理解了共振的含义。假设我们有一个悬架系统,我们用阶跃响应0.1(m)激励。

这意味着,例如在1(Hz)时,簧载质量(m1)在高水平振动?在10(Hz)时,非簧载质量(m2)在高水平振动?

我已经阅读过波特情节,我做了一些事情,如下所示,但我不知道这是否是找到谐振频率的方法。也许FFT是我正在寻找的?

在我的波德图中(下图):

蓝线:第一个峰值对应于簧载质量的共振频率(m1)?和橙线:第二个峰值(高于橙色线的第一个峰值)对应于非簧载质量的共振频率(m2)?

如果是,我怎样才能获得这些值?我需要添加到我的代码中吗?

我可以将单位从分贝更改为m吗?

clc;
clear all;
close all;

%% Parameters
m1 = 400;    % Sprung Mass (kg)
m2 = 40;     % Unsprung Mass (kg)
k1 = 21000;  % Suspension Stiffness (N/m)
k2 = 150000; % Tire Stiffness (N/m)
b1 = 1500;   % Suspension Damping (N*s/m)
b2 = 0;      % Tire Damping Coefficient (N*s/m)

%% Transfer Function
num1 = [(0) (0) (b1*b2) (b1*k2+b2*k1) (k1*k2)];
den1 = [(m1*m2) (m1*b1+m1*b2+m2*b1) (m1*k1+m1*k2+m2*k1+b1*b2) (b1*k2+k1*b2) (k1*k2)];
G1 = tf(num1,den1); % G1(s) = X1(s)/Xr(s)
num2 = [(0) (m1*b2) (m1*k2+b1*b2) (b1*k2+b2*k1) (k1*k2)];
den2 = [(m1*m2) (m1*b1+m1*b2+m2*b1) (m1*k1+m1*k2+m2*k1+b1*b2) (b1*k2+k1*b2) (k1*k2)];
G2 = tf(num2,den2); % G2(s) = X2(s)/Xr(s)

%% Results
figure;
step(0.1*G1,0:0.01:5);
hold on;
step(0.1*G2,0:0.01:5);
title('');
legend('m1','m2');
xlabel('Time (s)');
ylabel('Amplitude (m)');
axis([]);
grid on;

figure;
bode(G1);
hold on;
bode(G2);
title('');
legend('m1','m2');
axis([]);
grid on;

Reaponse, Bode Plot and 2 DOF System

0 个答案:

没有答案