双自由度车轮车身系统受不同频率正弦激励下的振动响应,并将不同频率下的对应的位移和时间曲线放在一起对比的matlab代码
时间: 2024-03-04 22:49:20 浏览: 120
以下是一个简单的双自由度车轮车身系统的MATLAB代码,用于计算不同频率下的振动响应,并将其可视化。代码中使用了ode45函数来求解微分方程,使用subplot函数将所有图像放在一起进行对比。
```
% 双自由度车轮车身系统的振动响应
% 定义系统参数
m1 = 1000;
m2 = 200;
k1 = 50000;
k2 = 500000;
c1 = 1000;
c2 = 5000;
% 定义正弦激励的频率
f = [0.2, 0.5, 1, 2, 5, 10];
for i = 1:length(f)
% 定义时间范围和初值条件
tspan = [0, 10];
y0 = [0, 0, 0, 0];
% 定义正弦激励函数
w = 2 * pi * f(i);
p = @(t) 10 * sin(w * t);
% 定义微分方程
f = @(t, y) [y(2); (-k1*y(1) - c1*y(2) + k1*y(3) + c1*y(4) + p(t))/m1;
y(4); (k1*y(1) + c1*y(2) - k1*y(3) - c1*y(4))/m2];
% 使用ode45函数求解微分方程
[t, y] = ode45(f, tspan, y0);
% 绘制图像
subplot(2,3,i)
plot(t, y(:,1), 'r', t, y(:,3), 'b')
xlabel('Time (s)')
ylabel('Displacement (m)')
title(['Frequency = ', num2str(f(i)), ' Hz'])
legend('Body', 'Wheel')
end
```
阅读全文