我想研究系统的响应。
我想找到簧上质量(m1)的共振频率和簧下质量(m2)的共振频率。
因为我不确定我是否理解共振的含义。假设我们有一个悬挂系统,我们用 0.1(m) 的阶跃响应进行刺激。
这意味着,例如在 1(Hz) 时,簧上质量 (m1) 以高水平振动?在 10(Hz) 时,簧下质量 (m2) 在高位振动?
我读过波特图,我做了一些你可以在下面看到的事情,但我不知道这是否是找到共振频率的方法。也许FFT是我正在寻找的?
在我的波特图中(下图):
蓝线:第一个峰值对应于簧上质量的共振频率(m1)?和橙色线:第二个峰值(高于橙色线的第一个峰值)对应于簧下质量(m2)的共振频率?
如果是,我怎样才能得到这些值?我需要在我的代码中添加什么?
我可以将单位从分贝更改为米吗?
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;