matlab编写程序求两端简支多跨铰接弹性地基梁利用传递矩阵求李雅普诺夫指数
时间: 2023-08-07 21:05:00 浏览: 177
以下是MATLAB程序的一个大致框架,供参考:
1. 定义模型:定义梁的几何尺寸、材料参数、支座刚度等。
2. 建立动力学方程:将梁的弯曲振动方程和轴向振动方程转化为矩阵形式。
3. 求解特征值和特征向量:使用MATLAB的eig函数求解动力学方程的特征值和特征向量。
4. 计算传递矩阵:根据特征向量和特征值,计算传递矩阵。
5. 求解李雅普诺夫指数:使用MATLAB的lyap函数求解传递矩阵的李雅普诺夫指数。
以下是一个简单的MATLAB程序,供参考:
```matlab
% 定义模型参数
L = 10; % 长度
h = 1; % 高度
w = 0.1; % 宽度
E = 1e9; % 弹性模量
rho = 7800; % 密度
A = h * w; % 横截面积
I = w * h^3 / 12; % 惯性矩
k1 = 1e8; % 左端简支弹簧刚度
k2 = 1e8; % 右端简支弹簧刚度
% 建立动力学方程
M = [rho*A*L/3, 0, 0, 0, 0, 0;
0, rho*I, 0, 0, 0, 0;
0, 0, rho*A*L/3, 0, 0, 0;
0, 0, 0, rho*I, 0, 0;
0, 0, 0, 0, rho*A*L/3, 0;
0, 0, 0, 0, 0, rho*I];
K = [E*I/L^3, 0, -E*I/L^3, 0, 0, 0;
0, 12*E*I/L^3, 0, 0, 0, 6*E*I/L^2;
-E*I/L^3, 0, E*I/L^3, 0, 0, 0;
0, 0, 0, 12*E*I/L^3, 0, -6*E*I/L^2;
0, 0, 0, 0, E*I/L^3, 0;
0, 6*E*I/L^2, 0, -6*E*I/L^2, 0, 4*E*I/L];
K(1,1) = K(1,1) + k1/L; % 添加左端支座刚度
K(end,end) = K(end,end) + k2/L; % 添加右端支座刚度
A1 = [zeros(6), eye(6); -inv(M)*K, zeros(6)];
A2 = [zeros(6), -inv(M); -K, zeros(6)];
A = [A1, A2];
% 求解特征值和特征向量
[V,D] = eig(A);
% 计算传递矩阵
T = V(1:6,:) * inv(V(7:12,:));
% 求解李雅普诺夫指数
alpha = lyap(A', eye(12));
l = real(eig(alpha));
```
请注意,以上代码仅为示例,实际情况可能会有所不同,具体实现需要根据实际情况进行调整。
阅读全文