刚度矩阵按下面形式给出Ke =Ke L +Ke N (需要两个刚度阵相加得到最终的刚度阵)
时间: 2024-03-27 09:41:07 浏览: 45
刚度矩阵按照下面的形式给出:
$K = K_e L + K_e N$
其中,$K_e$ 是单元的局部刚度矩阵,$L$ 是单元的长度,$N$ 是单元的节点编号矩阵。$K_e L$ 表示将 $K_e$ 按照比例缩放到实际长度上得到的刚度矩阵,$K_e N$ 表示将 $K_e$ 按照节点编号矩阵的形式组合在一起得到的刚度矩阵。最终的刚度矩阵 $K$ 就是这两个矩阵相加得到的结果。
在 Matlab 中,可以按照以下方式实现:
```matlab
% 定义初始变量
n = 3;
rho = 2.7 * 1e3;
S = 0.1 * 0.01;
E = 7.2 * 1e10;
I = 0.1^3 * 0.01 / 12;
L = 1;
% 计算刚度矩阵
K = zeros(2*n, 2*n); % 初始化刚度矩阵
for i = 1:n-1
K_loc = [E*S/L, 0, 0, -E*S/L, 0, 0;
0, 12*E*I/L^3, 6*E*I/L^2, 0, -12*E*I/L^3, 6*E*I/L^2;
0, 6*E*I/L^2, 4*E*I/L, 0, -6*E*I/L^2, 2*E*I/L;
-E*S/L, 0, 0, E*S/L, 0, 0;
0, -12*E*I/L^3, -6*E*I/L^2, 0, 12*E*I/L^3, -6*E*I/L^2;
0, 6*E*I/L^2, 2*E*I/L, 0, -6*E*I/L^2, 4*E*I/L];
KeL = K_loc * L;
KeN = zeros(2*n, 2*n);
KeN(2*i-1:2*i+4, 2*i-1:2*i+4) = K_loc;
K = K + KeL + KeN;
end
```
在这段代码中,我们除了计算单元的局部刚度矩阵 $K_e$ 之外,还需要计算出 $K_e L$ 和 $K_e N$。其中,$K_e L$ 的计算方法是将 $K_e$ 乘以单元的实际长度 $L$,而 $K_e N$ 的计算方法是将 $K_e$ 按照节点编号矩阵的形式组合在一起。最终,我们将 $K_e L$ 和 $K_e N$ 相加,得到了整个模型的总刚度矩阵 $K$。
阅读全文