矩阵位移法编程大作业 (091210211) 一、编制原理 本程序的原理是基于结构力学矩阵位移法原理,以结构结点位移作基本未知量,将要分析的结构拆成已知节点力—结点力位移关系的单跨梁集合,通过强令结构发生待定的基本未知位移,在各个单跨梁受力分析结果的基础上通过保证结构平衡建立位移法的线性方程组,从而求得基本未知量。 二、程序说明 本程序是计算 3 层 11 跨框架右侧结点的位移和弯矩的程序,编译过程是按照矩阵位移法的先处理法进行的。首先将结构杆件的交汇点作为结点,共有 36个结点和 108 个位移编号,然后根据梁、柱、斜杆的不同分别建立单元刚度矩阵,然后转换为整体坐标系下的刚度矩阵,然后将所有杆件的单元刚度矩阵整合成为总体刚度矩阵,在进行整合时连续运用 for函数,最终形成108 阶的总体刚度矩阵。然后通过对荷载的分析自己确定出荷载矩阵,直接写进程序。这样就可以把36 个结点的108 个位移求得,然后再利用各个单元的单元刚度矩阵和所得的位移求得单元杆件的内力。 离散化编号如下图: 三、算法流程 结构离 散化编号 单元分析 建立梁、柱、斜杆的局部坐标系下的单元刚度矩阵 确定梁、柱、斜杆在整体坐标系下的刚度矩阵 先处理法把各个杆件的单元刚度矩阵整合成总体刚度矩阵 确定综合结点荷载矩阵 建立方程,求解位移 利用杆件单元刚度矩阵和所求位移求内力 四、源代码 %结构力学大作业 3层11跨框架矩阵位移法编程 王贝 091210211 h=input('输入单层高h:'); L=input('输入单跨度L:'); EIc=input('输入柱子的抗弯刚度EIc:'); EAc=input('输入柱子的抗压刚度EAc:'); EIb=input('输入梁的抗弯刚度EIb:'); EAb=input('输入梁的抗压刚度EAb:'); EIo=input('输入斜杆的抗弯刚度EIo:'); EAo=input('输入斜杆的抗压刚度EAo:'); q=input('输入侧向均布荷载集度q:'); T1=[1,0,0,0,0,0; 0,1,0,0,0,0; 0,0,1,0,0,0; 0,0,0,1,0,0; 0,0,0,0,1,0; 0,0,0,0,0,1];%角度为0°的转换矩阵 T2=[0,1,0,0,0,0; -1,0,0,0,0,0; 0,0,1,0,0,0; 0,0,0,0,1,0; 0,0,0,-1,0,0; 0,0,0,0,0,1];%角度为90°的转换矩阵 x=atan(h/L); T=[cos(x),sin(x),0,0,0,0; -sin(x),cos(x),0,0,0,0; 0,0,1,0,0,0; 0,0,0,cos(x),sin(x),0; 0,0,0,-sin(x),cos(x),0; 0,0,0,0,0,1];%斜杆的转换矩阵 T3=T; %梁的单元刚度矩阵 kb0=[EAb/L 0 0 -EAb/L 0 0; 0 12*EIb/(L*L*L) 6*EIb/(L*L) 0 -1...