《钢架及matlab算法》由会员分享,可在线阅读,更多相关《钢架及matlab算法(13页珍藏版)》请在金锄头文库上搜索。
1、结构力学大作业一、 编程原理如图 1-1,所计算结构为 5 层高,9 跨在第 3 跨布置斜杆,节点为刚接的框架。(1) 位移编码以杆件为单元,将结构拆分,建立整体坐标系,并对节点位移按图 1-2 所示编码。(2) 单元分析所有单元均为平面弯曲式自由单元如图 1-3 所示。杆件的单元刚度矩阵3222232200161640001616004EAEAl lIIEllKEAEAl lIIEl lll 其中3210640EAlIlK 2120160EAlIElK21220160EAlIEKll232201640EAlIEKll(3) 建立局部坐标系分别建立如图 1-4 所示的竖向分体系局部坐标系,水平
2、分体系局部坐标系和斜杆分体系坐标系。(4) 建立分体系刚度分别建立三个分体系的 105105 的刚度矩阵,引入循环变量,依次对相应位移刚度赋值。(5) 坐标转换对竖向坐标系和斜杆体系进行转置,其坐标转换阵为 10T301LhdT其中 。2dLh(6) 建立整体刚度方程将三个刚度矩阵相加,得到整体刚度方程。(7) 建立荷载矩阵外力的矩阵为单元杆端力与单元等效节点荷载矩阵之和。因本结构只在第一列柱子上有水平均布荷载作用,所以外力矩阵为 1051 的 0 矩阵,与 1051 的等效节点荷载叠加后可得荷载矩阵。(8) 边界条件处理因为柱底与大地刚接,所以支座处不发生位移,利用置零置一法对刚度矩阵进行处
3、理,使位移满足条件。(9) 联立方程求解通过方程 求出位移矩阵 。则 58,88,118,148,178 位移编号所对应的FK位移值为所求点位移。(10) 通过位移求解弯矩将位移带回到单元方程中,求出对应的力 ,竖直分体系的位移需进行一个转FK置再代入计算最后的 。M二 说明程序本程序使用matlab 软件通过矩阵位移法对题目进行编程设计,按照提示输入柱子的抗弯刚度EIc ;柱子的抗压刚度EAc ;梁的抗弯刚度EIb;梁的抗压刚度 EAb;斜杆的抗弯刚度EIo ;斜杆的抗压刚度EAo ;侧向均布荷载集度q,便可得到最右端节点的位移和弯矩。在建立刚度矩阵,引入ii 和jj 作为循环变量,根据刚度
4、矩阵特点对节点逐列逐跨进行矩阵块的循环赋值。在建立节点力矩阵的过程中,首先对外力进行化简,找出等效力的规律,然后进行力的矩阵的赋值。在整体坐标系下,通过力与刚度和位移的关系,联立方程求解节点的位移矩阵,再将节点位移代回到局部坐标系下的平衡方程中求出杆端力。该程序借用matlab软件中大量的矩阵赋值和矩阵运算语句,通过对杆件单元和节点的数据化处理,实现计算机对结构的计算,改程序经过简单修改后即可按照输入指令,计算n 列 n跨任意位置加斜杆的钢架体系,具有一定的普遍性。三 算法流程开始定义变量 EIc,EAc,EIb输入变量 EIc,EAc,EIb竖向分体系刚度矩阵赋值水平分体系刚度矩阵赋值斜向分
5、体系刚度矩阵赋值力的矩阵赋值求解方程边界条件处理单元后处理输出 M, 结束四 源代码disp(五层,九跨,第三跨有斜杆钢架求解:);L=input(跨度 L=n);h=input(层高 h =n);EIc=input(柱的抗弯刚度 EIc=n);EAc=input(柱的抗压 EAc=n);EIb=input(梁的抗弯刚度 EIb=n);EAb=input(梁的抗压 EAb=n);EIo=input(斜杆的抗弯刚度 EIo =n);EAo=input(斜杆的抗压刚度 EAo =n);q=input(水平均布荷载集度 q =n);a=zeros(180,180);e=zeros(180,180);
6、x=zeros(180,180);S1=EAc/h;S2=12*EIc/(h3);S3=6*EIc/(h2);S4=4*EIc/h;S5=2*EIc/h;for jj=1:1:10a(3*jj-2:3*jj,3*jj-2:3*jj)=S1 0 0;0 S2 S3;0 S3 S4;a(30+3*jj-2:30+3*jj,30+3*jj-2:30+3*jj)=2*S1 0 0;0 2*S2 0;0 0 2*S4 ;a(3*jj-2:3*jj,30+3*jj-2:30+3*jj)=-S1 0 0;0 -S2 S3;0 -S3 S5;a(30+3*jj-2:30+3*jj,3*jj-2:3*jj)=-
7、S1 0 0;0 -S2 -S3;0 S3 S5;for ii=1:1:4a(30*ii+3*jj-2:30*ii+3*jj,30*(ii+1)+3*jj-2:30*(ii+1)+3*jj)=-S1 0 0;0 -S2 S3;0 -S3 S5;%K12%a(30*(ii+1)+3*jj-2:30*(ii+1)+3*jj,30*ii+3*jj-2:30*ii+3*jj)=-S1 0 0;0 -S2 -S3;0 S3 S5;%K21%a(30*(ii+1)+3*jj-2:30*(ii+1)+3*jj,30*(ii+1)+3*jj-2:30*(ii+1)+3*jj)=2*S1 0 0;0 2*S2
8、0;0 0 2*S4 ;%K22%enda(150+3*jj-2:150+3*jj,150+3*jj-2:150+3*jj)=S1 0 0;0 S2 -S3;0 -S3 S4;endT=zeros(180,180);for ii=1:3:178T(ii:ii+2,ii:ii+2)=0 1 0;-1 0 0;0 0 1;endK1=T*a*T; S1=EAb/L;S2=12*EIb/(L3);S3=6*EIb/(L2);S4=4*EIb/L;S5=2*EIb/L;for ii=1:1:5e(30*ii+1:30*ii+3,30*ii+4:30*ii+6)=-S1 0 0;0 -S2 S3;0 -
9、S3 S5;e(30*ii+1:30*ii+3,30*ii+1:30*ii+3)=S1 0 0;0 S2 S3;0 S3 S4;e(30*ii+4:30*ii+6,30*ii+4:30*ii+6)=2*S1 0 0;0 2*S2 0;0 0 2*S4 ;e(30*ii+4:30*ii+6,30*ii+1:30*ii+3)=-S1 0 0;0 -S2 -S3;0 S3 S5;for jj=2:1:9e(30*ii+3*jj-2:30*ii+3*jj,30*ii+3*(jj+1)-2:30*ii+3*(jj+1)=-S1 0 0;0 -S2 S3;0 -S3 S5;e(30*ii+3*(jj+1)
10、-2:30*ii+3*(jj+1),30*ii+3*jj-2:30*ii+3*jj)=-S1 0 0;0 -S2 -S3;0 S3 S5;e(30*ii+3*(jj+1)-2:30*ii+3*(jj+1),30*ii+3*(jj+1)-2:30*ii+3*(jj+1)=2*S1 0 0;0 2*S2 0;0 0 2*S4 ;end e(30+30*ii-2:30+30*ii,30+30*ii-2:30+30*ii)=S1 0 0;0 S2 -S3;0 -S3 S4;endK2=e;d=(h2+L2)(1/2);S1=EAo/d;S2=12*EIo/(d3);S3=6*EIo/(d2);S4=4
11、*EIo/d;S5=2*EIo/d;for ii=0:1:3x(7+30*ii:7+30*ii+2,40+30*ii:40+30*ii+2)=-S1 0 0;0 -S2 S3;0 -S3 S5;x(40+30*ii:40+30*ii+2,40+30*ii:40+30*ii+2)=S1 0 0;0 S2 -S3;0 -S3 S4;x(40+30*ii:40+30*ii+2,7+30*ii:7+30*ii+2)=-S1 0 0;0 -S2 -S3;0 S3 S5;x(7+30*ii:7+30*ii+2,7+30*ii:7+30*ii+2)=S1 0 0;0 S2 S3;0 S3 S4;endR=z
12、eros(180,180);for ii=1:3:178R(ii:ii+2,ii:ii+2)=L/d h/d 0;-h/d L/d 0;0 0 1;endK3=R*x*R;K=K1+K2+K3;F0=zeros(180,1);z=zeros(180,1);z(3,1)=-q*(h2)/12;z(153,1)=q*(h2)/12;z(1,1)=0.5*q*h;z(151,1)=0.5*q*h;for ii=1:2z(1+30*ii,1)=q*h;endF1=z;F=F0+F1;K(1:30,:)=0;K(:,1:30)=0;K(1:30,1:30)=eye(30);F(1:30,1)=0;x1=
13、KF;disp(x1);M1=zeros(5,1);for ii=1:5M1(ii,1)=0 6*EIb/(L2) 2*EIb/L 0 -6*EIb/(L2) 4*EIb/L *x1(25+30*ii:30+30*ii,1);endM2=zeros(5,1);x2=zeros(6,1);for ii=0:1:4x2(1:3,1)=x1(28+30*ii:28+30*ii+2,1);x2(4:6,1)=x1(58+30*ii:58+30*ii+2,1); T=zeros(6,6);for jj=1:3:6T(jj:jj+2,jj:jj+2)=0 1 0;-1 0 0;0 0 1;endx2=T*
14、x2;M2(ii+1,1)=0 6*EIc/(h2) 2*EIc/h 0 -6*EIc/(h2) 4*EIc/h*x2;endM3=zeros(5,1);x3=zeros(6,1);for ii=0:1:3x3(1:3,1)=x1(58+30*ii:58+30*ii+2,1);x3(4:6,1)=x1(88+30*ii:88+30*ii+2,1);T=zeros(6,6);for jj=1:3:6T(jj:jj+2,jj:jj+2)=0 1 0;-1 0 0;0 0 1;endx3=T*x3;M3(ii+1,1)=0 6*EIc/(h2) 4*EIc/h 0 -6*EIc/(h2) 2*EIc
15、/h*x3;endQ=zeros(5,4);Q(1:5,1)=1;2;3;4;5;Q(1:5,2)=M1;Q(1:5,3)=M2;Q(1:5,4)=M3;disp(从左至右依次为,节点层数,梁端弯矩,节点下侧 弯矩和节点上侧弯 );disp(Q)disp(钢架侧移量(最右侧))disp(从左至右依次为,节点层数,节点侧向位移 );y=1 x1(58,1);2 x1(88,1);3 x1(118,1);4 x1(148,1);5 x1(178,1);disp(y)五层,九跨,第三跨有斜杆钢架求解:跨五层,九跨,第三跨有斜杆钢架求解:跨度 L=2层高 h =3柱的抗弯刚水平均布荷载集度 q =10从左至右依次为,节点层数,梁端弯矩,节点下侧弯矩和节点上侧弯1.0000 -3.3579 0.8163 2.54162.0000 -2.9404 1.3526 1.58773.0000 -2.1682 1.2875 0.88074.0000 -1.3040 1.0161 0.28795.0000 -0.5237 0.5237 0钢架侧移量(最右侧)从左至右依次为,节点层数,节点侧向位移1.0000