目录摘要 ............................................................................ - 3 -第一章题目的意义...................................................... - 4 -第二章理论分析......................................................... - 4 -2.1位移法的基本概念.. (4)2.2平面桁架分析的基本问题 (7)第三章程序设计框图..................................................- 12 -第四章程序代码........................................................- 13 -4.1计算平面桁架位移法的程序代码 .. (13)第五章应用..............................................................- 16 -5.1例一 .. (16)5.2例二 (19)第六章结论······························································- 22 -参考文献 ·····································································- 22 -平面桁架位移法计算的MAPLE程序设计摘要本文利用位移法编写MAPLE程序来计算平面桁架各节点位移、各杆的轴力。
通过虚设位移和约束处的位移处理,由位移表示出杆件轴力,把杆件轴力和支反力转化为节点力,建立节点力的平衡方程,根据线性代数知识求解多元一次方程组,求解出杆件内力。
所以,通过MAPLE输入特征矩阵和约束条件,采用后处理方法编写MAPLE程序代码计算出平面桁架各节点位移、约束处的支反力和各杆件内力。
本文通过2个计算实例表明其计算结果较为理想。
关键词:平面桁架;位移法;MAPLE;程序设计平面桁架位移法的MAPLE程序设计第一章题目的意义平面桁架在我们的生活中到处可见,房屋、桥梁、电视塔等等都可以发现,因而平面桁架的求解变得尤为重要。
在以往我们学过的力学知识中,我们发现平面桁架求解是相当复杂的,运算量比较的大,然而我们利用的平面桁架位移法的MAPLE程序设计则大大降低了运算量,也极大的提高了运算精度。
第二章理论分析2.1位移法的基本概念位移法是计算超静定结构的另一种基本的、也是有效的方法,不仅如此,对于静定结构,位移法也是一种计算方法。
力法从未知力/缀余力入手,力法的基本原理,是对于超静定结构中任意两点的相对变形都是0,也就说所有的力在该位置上产生的变形之和为0,因此力法可以称之为位移协调法。
位移法与之相对应,即对于处于平衡状态下的结构体系来讲,结构中的任意一点或任意组成部分也是处于平衡状态的,因此该点或部分必然存在内力的平衡,以内力平衡为基础所构建的线性方程组来求解结构内力,也是一种极佳的方法。
因为结构的内力与变形之间存在着必然的、确定的联系,因此结构的内力平衡一般从位移为未知量来入手,最终求得结构内力。
这种以位移为初始未知数求解结构内力的方法称为位移法。
位移法的基本原理,是以在小变形的基础的结构体系中,内力是可以叠加的,位移也是可以叠加的。
结构中的受力、变形是可以分阶段、分次发生的,分阶段、分次发生的受力、变形是可以线性叠加的,叠加的结果与这些力、变形同时发生的结构所产生的内力、变形是相同的。
位移法可按两种思路求解结点位移和杆端弯矩:典型方程法和平衡方程法。
下面给出典型方程法的解题思路和解题步骤。
1、截面直杆的转角位移方程各种因素共同作用下杆端弯矩的表达式称为转角位移方程。
①两端固定梁转角位移方程:②一端固定一端铰支梁转角位移方程:③ 一端固定一端定向支承梁转角位移方程:④已知杆端弯矩,可由杆件的矩平衡方程求出剪力:其中是相应的简支梁在荷载作用下的杆端剪力;M AB,M BA的正负按位移法规定。
2、直接列平衡方程法:位移法方程实质上是静力平衡方程。
对于结点角位移,相应的是结点的力矩平衡方程;对于结点线位移,相应的是截面的投影平衡方程。
用基本体系方法计算时,是借助于基本体系这个工具,以达到分步、分项写出平衡方程的目的。
也可以不用基本体系,直接由转角位移方程,写出各杆件的杆端力表达式,在有结点角位移处,建立结点的力矩平衡方程;在有结点线位移处,建立截面的投影平衡方程。
这些方程也就是位移法的基本方程。
正负号的规定结点转角、杆转角、杆端弯矩和剪力一律以顺时针为正。
其中:形常数(刚度系数)2.2 平面桁架分析的基本问题要解决平面桁架问题,首先,要了解平面桁架的基本假设:1.各杆件都用光滑铰链链接。
2.各杆件都是直的,其轴线位于同一平面内,且通过铰链的中心。
3.荷载与支座的约束反力都作用在节点上且位于轴线的平面内。
4.各杆件的自重或略去不计,或平均分配到杆件两端的节点上。
桁架中各杆件都是二力杆,杆件的内力都是轴力。
其次,在平面桁架分析的基本问题中,我们利用理论力学进行分析的方法一般有:1.节点法:假想地截取平衡桁架的一部分为分离体,若分离体只包含一个节点,称为节点法。
节点处的平衡力系为平面汇交力系。
2.截面法:若分离体包含两个以上的节点,称为截面法,为平面任意力系的平衡。
3.节点法和截面法的混合应用。
用结构力学进行分析的方法有:1.节点法:假想地截取平衡桁架的一部分为分离体,若分离体只包含一个节点,称为节点法。
节点处的平衡力系为平面汇交力系。
2.截面法:若分离体包含两个以上的节点,称为截面法,为平面任意力系的平衡。
3.节点法和截面法的混合应用。
用结构力学进行分析的方法有:1.力法:是以多余未知力为基本未知量,基本未知量的数目等于结构的超静定次数。
2.位移法:是以独立的结点位移(结点角位移与独立结点线位移)为基本未知量,基本未知量的数目与超静定的次数无关。
关于位移法的简例(《结构力学Ⅰ》【第二版】包世华p274)先举一个简单的桁架例子,以便于具体地了解位移法的基本思路。
图7-1a 为一个对称结构,承受对称荷载Fp 。
结点B 只发生竖向位移⊿,水平位移为零。
在位移法中,把此竖向位移⊿选作基本未知量。
这是因为:如果能设法把位移⊿求出,那么各杆的伸长变形即可求出,从而各杆的内力就可求出,整个问题也就迎刃而解了。
由此看出,位移⊿确是一个关键的未知量。
现在进一步讨论如何求基本未知量⊿的问题。
计算分为两步: 第一步,从结构中选取一个杆件进行分析。
图7-2a 中杆AB ,如已知杆端B 沿杆轴向的位移u i (即杆的伸长),则杆端力F Ni 应为 i i i Ni u l EA F (7-1) 式中E 、A i 、l i 分别为杆件的弹性模量、截面面积和长度。
系数EA i / l i 是使杆端产生单位位移时所需施加的杆端力,称为杆件的刚度系数。
式(7-1)表明杆件的杆端力F Ni 与杆端位移u i 之间的关系,称为杆件的刚度方程。
图 7 - 1 图 7 - 2第二步,把各杆件综合成结构。
综合时各杆在B 端的位移是相同的,即都由B 改变到B ’,此为变形协调条件,各杆端位移u i 与基本未知量⊿间的关系为(图7-2b )i i a u sin ∆= (a ) 再考虑结点B 的平衡条件∑Fy=0,得(图7-1b )∑==51sin i p i N F a F(b )其中各杆的轴力FNi 可由(7-1)表示,再利用式(a )可用基本未知量⊿表示,代入式(b ),既得p i i ii F a l EA =∆∑=251sin (c ) 这就是位移法的基本方程,它代表平衡方程,是用位移表示的平衡方程。
由此可求出基本未知量⊿= ∑=512sin i i ai ipl EA F (d )至此,完成了位移法计算中的关键一步。
基本未知量⊿求出以后,其余为题就迎刃而解了。
例如,为了求各杆的轴力,可将式(d )代入(a ),再代入式(7-1),可得i i i i i i i i a l EA a l EA FN 251sin sin ∑== (e) 将图7-1a 的尺寸代入式(d )和(e ),设各杆EA 相同,得 EAa F p 637.0=∆ F N1=F N5=0.159F pF N2=F N4=0.255F pF N3=0.319F p在图7-1a 中,如只有2根杆,结构是静定的;当杆数大于(或等于)3时,结构是超静定的,均可用上述方法计算。
可见,用位移法计算时,计算方法并不因结构的静定或超静定而有所不同。
第三章程序设计框图第四章程序代码4.1 计算平面桁架位移法的程序代码>restart:with(linalg):with(plots):printlevel:=0:interface( showassumed=0):Warning, the protected names norm and trace have been redefined and unprotectedWarning, the name changecoords has been redefined>XY:=matrix([[0,0],[1.5,0],[2.25,0],[3,0],[4.5,0],[3,-0.5 ],[1.5,-0.5]]):>NE:=matrix([[1,2,E,A],[2,3,E,A],[3,4,E,A],[4,5,E,A],[5,6 ,E,A],[4,6,E,A],[3,6,E,A],[6,7,E,A],[3,7,E,A],[2,7,E,A],[ 1,7,E,A]]):>NP:=matrix([[1,2,-8],[2,2,-8],[3,2,-6],[4,2,-8],[5,2,-8] ]):> NC:=matrix([[1,1],[1,2],[5,2]]):初始数据的处理>truss:=proc()平面桁架位移法求解子程序global XY,NE,NP,NC:localx1,y1,x2,y2,L,cosa,sina,k1,T1,T2,T,ss,a,f,solu,k,i,j,uv,p p,ff,nf:uv:=matrix(rowdim(XY)*2,1,0):pp:=matrix(rowdim(XY)*2,1,0) :ff:=matrix(rowdim(NE),1,0):nf:=matrix(rowdim(XY)*2,1,0): ht:=(XY,NE)->display(plot([seq([XY[i,1],XY[i,2]],i=1..row dim(XY))],style=point,color=red,symbol=circle,symbolsize= 30),plot([seq([[XY[NE[i,1],1],XY[NE[i,1],2]],[XY[NE[i,2], 1],XY[NE[i,2],2]]],i=1..rowdim(NE))],color=blue,thickness =2),textplot([seq([XY[i,1],XY[i,2],i],i=1..rowdim(XY))],c olor=red),axes=none):绘图程序代码for k from 1 to rowdim(XY) do;虚设位移uv[2*k-1,1]:=u[k];uv[2*k,1]:=v[k];od;for k from 1 to rowdim(NC) do;约束处的位移处理i:=NC[k,1]: j:=NC[k,2]:uv[2*i-2+j,1]:=0:od;for k from 1 to rowdim(NE) do; 有虚设位移求杆件内力i:=NE[k,1]: j:=NE[k,2]:x1:=XY[i,1]: y1:=XY[i,2]:x2:=XY[j,1]: y2:=XY[j,2]:L:=sqrt((x2-x1)**2+(y2-y1)**2):cosa:=(x2-x1)/L :sina:=(y2-y1)/L:k1:=NE[k,3]*NE[k,4]/L:T1:=cosa*k1: T2:=sina*k1:T:=matrix([[-T1,-T2,T1,T2]]);ss:=matrix([[uv[2*i-1,1]],[uv[2*i,1]],[uv[2*j-1,1]],[uv[2 *j,1]]]);ff[k,1]:=det(simplify(multiply(T,ss))):od;for k from 1 to rowdim(NE) do;把轴力化为节点力i:=NE[k,1]: j:=NE[k,2]:x1:=XY[i,1]: y1:=XY[i,2]:x2:=XY[j,1]: y2:=XY[j,2]:L:=sqrt((x2-x1)**2+(y2-y1)**2):cosa:=(x2-x1)/L : sina:=(y2-y1)/L:pp[2*i-1,1]:=pp[2*i-1,1]-cosa*ff[k,1]:pp[2*i,1]:=pp[2*i,1 ]-sina*ff[k,1]:pp[2*j-1,1]:=pp[2*j-1,1]+cosa*ff[k,1]:pp[2*j,1]:=pp[2*j,1 ]+sina*ff[k,1]:od;for k from 1 to rowdim(NC) do;把支座反力引入节点力i:=NC[k,1]: j:=NC[k,2]:pp[2*i-2+j,1]:=X[i,j]+pp[2*i-2+j,1]:od;for k from 1 to rowdim(NP) do;已知载荷的处理i:=NP[k,1]: j:=NP[k,2]:nf[2*i-2+j,1]:=NP[k,3]:od;for k from 1 to rowdim(NC) do;约束出的位移由支反力替代i:=NC[k,1]: j:=NC[k,2]:uv[2*i-2+j,1]:=X[i,j]:od;for k from 1 to 2*rowdim(XY) do;节点平衡方程f[k]:=pp[k,1]=nf[k,1];od;solu:=solve({seq(f[i],i=1..rowdim(XY)*2)},{seq(uv[i,1],i= 1..rowdim(XY)*2)});位移与支座反力的求解ff:=subs(solu,evalm(ff)):for k from 1 to rowdim(NE) do;i:=NE[k,1]: j:=NE[k,2]:print(F[N,i,j]=evalf(ff[k,1],4)):od;ht(XY,NE);end proc:> truss();子程序的引用=F-33.00N12,,F=-33.00,,N23F=-33.00,,N34F-33.00=,,N4534.79F=N56,,-8.000F=N46,,-5.408F=N36,,37.50=F,,N67-5.408F=N37,,-8.000=F,,N2734.79=FN17,,第五章应用5.1 例一>XY:=matrix([[0,0],[0,6],[3,0],[3,3],[3,7],[6,0],[6,6],[6 ,8],[9,0],[9,9],[12,0],[12,6],[12,8],[15,0],[15,3],[15,7] ,[18,0],[18,6]]):>NE:=matrix([[1,2,E,A],[1,3,E,A],[1,4,E,A],[2,5,E,A],[5,4,E,A],[5,8,E,A],[4,3,E,A],[4,6,E,A],[4,7,E,A],[3,6,E,A],[6,7,E,A],[6,9,E,A],[7,8,E,A],[7,9,E,A],[7,10,E,A],[8,10,E ,A],[9,10,E,A],[10,12,E,A],[10,13,E,A],[9,11,E,A],[9,12,E ,A],[12,13,E,A],[13,16,E,A],[15,16,E,A],[16,18,E,A],[12,15,E,A],[17,18,E,A],[15,17,E,A],[14,17,E,A],[14,15,E,A],[11,14,E,A],[11,15,E,A],[11,12,E,A]]):> NP:=matrix([[5,2,-10],[8,2,-10]]):> NC:=matrix([[1,1],[1,2],[17,2]]):➢ truss();⏹= F ,,N 120. = F ,,N 1315. = F ,,N 14-21.21 = F ,,N 250. = F ,,N 54-10. = F ,,N 580. = F ,,N 430. = F ,,N 46-7.08 = F ,,N 47-14.14 = F ,,N 3615. = F ,,N 67 4.993 = F ,,N 6910. = F ,,N 78-10. = F ,,N 79-11.18 = F ,,N 710-7.070 = F ,,N 8100.= F ,,N 91010.= F ,,N 1012-7.070= F ,,N 10130.= F ,,N 911 5.= F ,,N 9120.= F ,,N 12130.= F ,,N 13160.= F ,,N 15160.= F ,,N 16180.= F ,,N 1215-7.070= F ,,N 17180.= F ,,N 1517-7.070= F ,,N 1417 5.= F ,,N 14150.= F ,,N 1114 5.= F ,,N 1115-.01= F ,,N 1112-.015.2 例二>XY:=matrix([[0,0],[2,-2],[2,0],[4,-2],[4,0],[6,-2],[6,0] ,[8,0],[10,-2],[10,0],[12,-2],[12,0],[14,-2],[14,0],[16,0 ]]):>NE:=matrix([[1,2,E,A],[1,3,E,A],[2,3,E,A],[2,4,E,A],[3,4 ,E,A],[3,5,E,A],[5,4,E,A],[4,6,E,A],[4,7,E,A],[5,7,E,A],[ 6,7,E,A],[6,8,E,A],[7,8,E,A],[6,9,E,A],[8,9,E,A],[8,10,E, A],[9,10,E,A],[9,11,E,A],[10,11,E,A],[10,12,E,A],[11,12,E ,A],[11,13,E,A],[11,14,E,A],[12,14,E,A],[13,14,E,A],[13,1 5,E,A],[14,15,E,A]]):> NP:=matrix([[5,2,-10],[8,2,-10]]):> NC:=matrix([[1,1],[1,2],[15,2]]): >truss();17.68F=N12,,-12.50=FN13,,-12.50=FN23,,F=12.50,,N2417.68=F,,N34F-25.=N35,,-10.F=N54,,27.50=FN46,,F=-3.535,,N47-25.=FN57,,F=2.500,,N67F-3.535=N68,,-27.50=FN78,,F=30.,,N69F-10.60=N89,,F=-22.50N810,,F=7.500,,N91022.50=FN911,,-10.60=FN1011,,-15.F=N1012,,= F ,,N 11120.= F ,,N 11137.500= F ,,N 111410.60= F ,,N 1214-15.= F ,,N 1314-7.500= F ,,N 131510.60= F ,,N 1415-7.500第六章结论本次课程利用结构力学位移法编写MAPLE程序计算平面桁架的受力。