求当简支梁受一10N简谐力、作用频率1-1000Hz、作用点在距离一端0.15m处时的强迫振动,获取梁中心点处的振动加速度响应,用matlab程序计算
时间: 2024-03-24 12:37:08 浏览: 18
好的,下面是matlab程序的具体实现:
```matlab
% 定义简支梁的参数
L = 1; % 长度,单位:m
A = 1; % 截面面积,单位:m^2
rho = 7800; % 密度,单位:kg/m^3
E = 2e11; % 弹性模量,单位:Pa
x0 = 0.15; % 作用点距离端点的距离,单位:m
P = 10; % 外力振幅,单位:N
% 定义频率范围
f_start = 1; % 起始频率,单位:Hz
f_end = 1000; % 终止频率,单位:Hz
f_step = 1; % 频率步长,单位:Hz
% 初始化振动加速度响应数组
a = zeros((f_end-f_start)/f_step+1, 1);
% 循环计算不同频率下的振动加速度响应
for f = f_start:f_step:f_end
% 定义振动方程的系数矩阵
omega = 2*pi*f;
M = [0, 0, 1, 0;
0, 0, 0, 1;
-rho*A*f^2/E, 0, 0, 0;
0, -1, 0, 0];
K = [0, 0, 0, 0;
0, 0, 0, 0;
0, 0, 0, x0;
0, 0, -1, 0];
D = [0, 0, 0, 0;
0, 0, 0, 0;
0, 0, 0, P/E;
0, 0, 0, 0];
% 解振动方程,得到简支梁中心点处的振动加速度响应
Keff = K + omega^2*M + 1i*omega*D;
F = [0; 0; P*sin(2*pi*f); 0];
Y = Keff\F;
a((f-f_start)/f_step+1) = abs(Y(3));
end
% 绘制振动加速度响应曲线
figure;
plot(f_start:f_step:f_end, a);
xlabel('Frequency (Hz)');
ylabel('Acceleration (m/s^2)');
title('Vibration Acceleration Response');
```
程序运行完毕后,会绘制出简支梁中心点处在不同频率下的振动加速度响应曲线。