传递矩阵法求简支梁固有频率的近似解 --matlab程序
时间: 2023-10-06 17:10:59 浏览: 276
以下是使用传递矩阵法求简支梁固有频率的近似解的 MATLAB 程序:
```matlab
% 简支梁固有频率的传递矩阵法求解
% 参考文献:陈承钰. 结构动力学[M]. 北京: 清华大学出版社, 2004.
clear all; close all; clc;
% 参数设置
L = 1; % 梁长
E = 2.1e11; % 弹性模量
I = 1.33e-5; % 截面惯性矩
rho = 7800; % 材料密度
n = 10; % 分段数
dx = L / n; % 分段长度
w = 1; % 梁的宽度
h = 0.1; % 梁的厚度
% 计算传递矩阵
c = sqrt(E*I/rho/w/h^3); % 传播速度
k = c^2; % 刚度系数
m = rho*w*h*dx; % 质量
beta = dx / c; % 时间步长
T = beta * 50; % 总模拟时间
N = ceil(T / beta); % 时间步数
A = [0 1; -k/m 0]; % 动力学矩阵
B = [0; dx/m]; % 输入矩阵
C = [1 0]; % 输出矩阵
D = 0; % 直接通道矩阵
Phi1 = expm(beta*A); % 矩阵指数函数
Phi2 = inv(A)*(Phi1-eye(size(A))); % 矩阵指数函数积分
% 计算传递矩阵
P = eye(size(A));
for i = 1:n
P = Phi2*P;
end
T = C*P*B; % 传递矩阵
f = sqrt(1/T/I/rho/w/h^3); % 固有频率
fprintf('固有频率为 %f Hz\n', f);
```
程序中,我们首先设置了梁的基本参数,包括长度、弹性模量、截面惯性矩、材料密度等。然后按照传递矩阵法的步骤,计算了传递矩阵,并从中计算得到了固有频率。最后,使用 fprintf 函数输出结果。
需要注意的是,该程序只是传递矩阵法的一个简单实现,不一定适用于所有情况。在实际应用中,应根据具体情况调整参数和计算方法。
阅读全文