有限元程序设计

更新时间:2024-01-20 09:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

摘要……………………………………………………………2 第一章 题目的意义 …………………………………………2 第二章 理论分析及程序编制思路……………………………3

2.1传统方法静定桁架影响线 ……………………………3 2.2有限元法编程作影响线 ………………………………3 2.2.1 影响线绘制基本思路 ……………………………3 2.2.2桁架内力计算 ……………………………………4 2.2.3桁架内力影响线的绘制 ……………………………5

第三章 程序设计框图…………………………………………7 第四章 程序编制………………………………………………8

4.1编制说明………………………………………………8 4.2程序代码………………………………………………8

第五章 计算实例……………………………………………10 第六章 结论…………………………………………………12 参考文献………………………………………………………12

静定平面桁架影响线绘制

摘要:本课程设计介绍了平面静定桁架影响线软件编程作法。

它利用有限元的的思想,以maple为编程工具,将有限元思想与世界上最强大的符号计算与无与伦比的数值计算maple软件完美结合,快速、准确的获得结果。

关键词:maple 有限元 桁架影响线

第一章 题目的意义

有限元方法自20世纪50年代后期出现以来,就以其理论先进、功能强大以及与工程结构的复杂结构形式、材料性质和作用荷载的高度适应性,在工程结构力学计算中得到越来越广泛的应用。传统的人工计算力学方面,不仅耗费大量的人力、物力,而且计算时间长,精度低。在遇到某些更加困难的力学方程时,只能利用数值分析方法得到近似值。利用有限元思想与计算机结合,不仅能够克服上述困难,更甚将程序举一反三,运用自如。

- 1 -

第二章 理论分析及程序编制思路

2.1传统方法静定桁架影响线:

如图,做FG内力影响线:

①、作1-1截面,令P=1在截面左 侧移动,研究其右半部:

?M ?0DRB?2d?NFG?r1?0?NFG??2d1?RB???MDr1r1②、作1-1截面,令P=1在截面右 侧移动,研究其左半部:

?M ?0DRA?2d?NFG?r1?0?NFG??其他杆件内力影响线做法类似可得。

2d1?RA???MDr1r12.2有限元法编程作影响线:

2.2.1 影响线绘制基本思路

绘制桁架内力影响线,常采用静力法。即先计算出单位荷载作用在位移路径每一节点上时,目标杆件的内力。在绘制影响线时,只要早坐标系中标识出相应内力的大小,并用直线将相邻节点计算得的内力连接起来即可得到该杆件的内力影响线。

- 2 -

2.2.2 桁架内力计算

桁架结构的内力计算方法主要有:结点法、截面法、联合法。在具体计算时,规定内力符号以杆件受拉为正,受压为负。

结点法是截取桁架的一个结点为隔离体计算桁架内力的方法。结点上的荷载、支座反力和杆件轴力作用线都汇交于一点,组成了平面汇交力系,因此,结点法是利用平面汇交力系来求解内力的。在每个结点上所受到的力的合力为零。

对于任意杆件K,其两端结点分别为i、j,杆件轴力大小为Nk,如图所示。将杆件两端的受力分解到X、Y方向上可得

?Xi??Nk?cos?k??Yi??Nk?sin?k??Xj??Nk?cos?k???Yj??Nk?sin?k

对于任意的结点i,设其联接了杆件1,2,3,…,n,则

?Xi?a1N1?a2N2???anNnan??cos?n??Yi?b1N1?b2N2???bnNnbn??sin?n

对于静定平面桁架,设结点数为n,则共有n-m根杆,m个支座反力。提取系数可得2n×2n的系数矩阵。其中第2i-1行表示编号为i结点X方向分力,2i行表示i号结点Y方向分力。第j列表示编号

- 3 -

为j的杆件内力或支座反力在各结点上的投影系数。用[K]表示系数矩阵。

以各杆内力及支座反力构成一2n×1的矩阵,其中第j行表示编号为j的杆件内力或支座反力。以{R}表示。

各结点所受外力也可以构成一2n×1的矩阵, 2i-1行表示编号为i结点X方向的外力,2i行表示i号结点Y方向外力。以{P}表示。

如此,则有{P}=[K] ×{R}。

若已知外荷载{P},则可通过桁架的系数矩阵求解桁架各杆件及支座反力{R}

2.2.3 桁架内力影响线的绘制

内力影响线即表示单位移动荷载作用下结构内力变化规律的图形,是研究移动荷载的基本工具。

绘制桁架内力影响线时,移动荷载有其移动的路径,一般是桁架的上弦或下弦。桁架通常承受结点荷载,任一杆的轴力影响线在相邻结点之间为一直线。

采用静力法做桁架影响线时,需要计算出荷载作用在每一结点时杆件的内力,再用直线将计算得到的内力联接起来即可得到杆件的内力影响线。

设移动荷载通过的路径上有m个结点,则当移动荷载作用在每一个结点时,都可以通过{P}=[K] ×{R}计算得到该情况下各杆件内力{R}。分别以{R1}、{R2}、…、{Rm}表示。

在n个结点的静定桁架中,{R}是2n×1的矩阵,将{R1}、{R2}、…、

- 4 -

{Rm}合成起来,可以用一个2n×m的矩阵{RR}来表示杆件内力的变化情况。

则在这个总体内力矩阵中,第i行第j列的元素表示当移动荷载作用在路径上第j个节点时,编号为i的杆件内力。以此若要绘制任意杆件的影响线,从该矩阵中提取出对应行的内力之,并以直线连接起来即可。

- 5 -

第三章 程序设计框图

开始 静定桁架节点坐标、单元节点编号、约束信息 单元矩阵 节点坐标矩阵 计算处理 约束矩阵 单位荷载路径矩阵 循环 系数矩阵 各杆件沿荷载路径内力 桁架影响线 绘图 结束

- 6 -

第四章 程序编制

4.1编制说明

(1)程序使用MAPLE语言在maple7.0中编写

(2)本程序适用于平面静定桁架影响线的绘制,不适用于超静定桁架的计算。

(3)计算时,由于单位荷载的移动路径不唯一,应通过路径矩阵确定,路径矩阵中元素表示单位荷载依次通过的结点编号。

(4)符号说明: 参数:

XY:结点坐标矩阵; NE:杆件单元矩阵; NC:支座约束矩阵; P:荷载路径矩阵;

n1,n2:输出影响线杆件起止编号,输出编号n1到n2的杆件的影响线,当n1=n2=a时,输出第a根杆件的内力影响线。

局部变量:

ne:循环变量; kk:杆件cosα、sinα的值; te:外力矩阵{P}; st:系数矩阵[K];

np:内力矩阵{R}; NP:各荷载作用点下{R}的合成;

4.2程序代码

>work:=proc(XY,NE,NC,P,n1,n2) local ne,kk,te,st,np,NP,x,pp:

st:=Matrix(2*rowdim(XY),2*rowdim(XY),0): np:=Matrix(1,2*rowdim(XY),0): for ne to rowdim(NE) do:

- 7 -

kk:=normalize([XY[NE[ne,2],1]-XY[NE[ne,1],1],XY[NE[ne,2],2]-XY[NE[ne,1],2]]): #kk=[cosa,sina]

st[2*NE[ne,1]-1,ne]:=-kk[1]: st[2*NE[ne,2]-1,ne]:=+kk[1]: st[2*NE[ne,1],ne]:=-kk[2]: st[2*NE[ne,2],ne]:=+kk[2]; end do;

for ne to rowdim(NC) do:

st[2*NC[ne,1]+NC[ne,2]-2,rowdim(NE)+ne]:=-1: end do;

NP:=matrix(rowdim(P),2*rowdim(XY),0): for ne to rowdim(P) do:

te:=Vector(2*rowdim(XY),0): x[ne]:=XY[P[ne,1],1]: te[2*P[ne,1]]:=-1:

np:=matrix([linsolve(evalm(st*1.0),te)]): copyinto(np,NP,ne,1): end do:

NP:=transpose(NP): print(NP):

pp:=matrix(n2-n1+1,1,0): for ne from 1 to n2-n1+1 do: pp[ne,1]:=display(

plot([[XY[P[1,1],1],0],[XY[P[rowdim(P),1],1],0]],style=line,thickness=1,color=black,axes=none),

plot([[XY[P[1,1],1],0],[x[1],NP[n1-1+ne,1]]],style=line,thickness=2,color=blue),

plot([[x[coldim(NP)],NP[n1-1+ne,coldim(NP)]],[XY[P[rowdim(P),1],1],0]],style=line,thickness=2,color=blue),

plot([seq([[x[i],NP[n1-1+ne,i]],[x[i+1],NP[n1-1+ne,i+1]]],i=1..coldim(NP)-1)],style=line,thickness=2,color=blue),

textplot([seq([x[i],NP[n1-1+ne,i],NP[n1-1+ne,i]],i=1..coldim(NP))],color=red),

textplot([seq([XY[P[1,1],1]-1,0,i],i=cat(No ,n1-1+ne))],color=black,thickness=2)): od:

display(pp);

end proc:

- 8 -

第五章 计算实例

实例一

图示静定桁架,共18个结点,33根杆,3个支座反力。单位荷载分别沿上弦(2、5、8、10、13、16、18各点)和下弦(1、3、6、9、11、14、17各点)移动, 各杆件的内力影响线。

程序数据输入见附录1,计算结果见附录2。

从计算得到的影响线中提出任一杆件的影响线如移动荷载沿桁架下弦移动时编号为14的杆件的内力影响线。

再采用传统方法做该杆的影响线,结果如图。

(—)

5 3

可以看到程序计算结果与传统方式计算得到的结果一致,可知程序计算结果是正确的。

- 9 -

实例二

图示静定桁架,共14个结点,25根杆,3个支座反力。单位荷载分别沿上弦(2、4、6、8、10、12、14各点)和下弦(1、3、5、7、9、11、13各点)移动, 计算并绘制各杆件的内力影响线。

桁架数据输入如下,结果略。

XY1:=Matrix([[0,0],[0,3],[3,0],[3,3],[6,0],[6,3],[9,0],[9,3],[12,0],[12,3],[15,0],[15,3],[18,0],[18,3]]):

NE1:=Matrix([[1,2],[1,3],[2,3],[2,4],[3,4],[3,5],[4,5],[4,6],[5,6],[5,7],[6,7],[6,8],[7,8],[7,9],[7,10],[8,10],[9,10],[9,11],[9,12],[10,12],[11,12],[11,13],[11,14],[12,14],[13,14]]): NC1:=Matrix([[1,1],[1,2],[13,2]]):

- 10 -

第六章 结论

有限元法作为结构分析的一种有效方法已经被广泛采用,而有限元法与计算机程序的结合使得大型结构分析得以实现。通过以上实例,可以看出,通过有限元的方法编程计算桁架影响线的结果准确,与传统方式比较具有相当程度的优越性。效率高,结果精度高。在处理传统方式很难或无法求解的大型、复杂结构时,通过有限元程序也能够进行计算。当然程序并不是完美的,仍有许多地方可以完善,这些将在以后的工作中完成。

参考文献

[1]科学出版社 《maple9.0符号处理及应用》 黎捷 编著 [2]高等教育出版社 《结构力学I》 龙驭求 包世华 主编

- 11 -

附录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,3],[1,4],[1,2],[2,5],[3,4],[4,5],[3,6],[4,6],[4,7],[5,8],[6,7],[7,8],[6,9],[7,9],[7,10],[8,10],[9,10],[9,11],[9,12],[10,12],[10,13],[11,12],[12,13],[11,14],[11,15],[12,15],[13,16],[14,15],[15,16],[14,17],[15,17],[16,18],[17,18]]): NC:=Matrix([[1,1],[1,2],[17,2]]):

P1:=Matrix([[2],[5],[8],[10],[13],[16],[18]]): P2:=Matrix([[1],[3],[6],[9],[11],[14],[17]]):

??13????14?????12?????25??????34??????00????45?????06???36????????30????46??????33??????47???????37???58???????67????60???????78????66??????2???5????68????69?????1??79????8???XY := ???90??????710????NC := ?1?2???????1?99?????10??????17?P1 := ?10???2???120???????NE := ?8????13???910???????126????????16????911???128?????

??18?????912??????150?????1012????153???????1013??????157???1112????????180???1213?????6??????18??1114?????1115?????1215?????1316??????1415??????1516????1417??????1517??????1618?????1718??? ??1???3????6???P2 := ????9??????11? ?????14????17????- 12 -

附录2

P1路径下各杆件影响线 总体内力矩阵{RR}:

?0.??0.???-1.??0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.??0.???0.???0.???0.??0.???1.???0.?.8333-1.1790.0.0.-1..8333-.7072-.47150..50000..3333-.3727-.23570..3333.16670.-.23570.0.0..16670.-.23570.0.0..1667-.23570.0.0..8333.1667.6667-.94300.0.0.0..66670.-.94300.0.-1..6667-.7454-.47150..6667.33330.-.47150.0.0..33330.-.47150.0.0..3333-.47150.0.0..6667.3333.5000-.70720.0.0.0..50000.-.70720.0.0..50000.-.70720.0..50000.-.70720.0.0..50000.-.70720.0.0..5000-.70720.0.0..5000.5000.3333-.47150.0.0.0..33330.-.47150.0.0..33330.-.47150..6667.6667-.7454-.47150.0.-1..66670.-.94300.0.0..6667-.94300.0.0..3333.6667.1667-.23570.0.0.0..16670.-.23570.0.0..16670.-.23570..3333.3333-.3727-.23570..50000..8333-.7072-.47150.0.-1..8333-1.1790.0.0..1667.83330.??0.???0.??0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.??0.???0.???0.???-1.??0.???0.???1.?? - 13 -

- 14 -

- 15 -

P2路径下各杆件影响线 总体内力矩阵{RR}:

?0.??0.???0.??0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.??0.???0.???0.???0.??0.???1.???0.?.8333-1.1790.0.1.0..8333-.7072-.47150..50000..3333-.3727-.23570..3333.16670.-.23570.0.0..16670.-.23570.0.0..1667-.23570.0.0..8333.1667.6667-.94300.0.0.0..66670.-.94300.1.0..6667-.7454-.47150..6667.33330.-.47150.0.0..33330.-.47150.0.0..3333-.47150.0.0..6667.3333.5000-.70720.0.0.0..50000.-.70720.0.0..50000.-.70720.1..50000.-.70720.0.0..50000.-.70720.0.0..5000-.70720.0.0..5000.5000.3333-.47150.0.0.0..33330.-.47150.0.0..33330.-.47150..6667.6667-.7454-.47150.1.0..66670.-.94300.0.0..6667-.94300.0.0..3333.6667.1667-.23570.0.0.0..16670.-.23570.0.0..16670.-.23570..3333.3333-.3727-.23570..50000..8333-.7072-.47150.1.0..8333-1.1790.0.0..1667.83330.??0.???0.??0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.???0.??0.???0.???0.??0.???0.???0.???0.??0.???0.???1.?? - 16 -

- 17 -

- 18 -

本文来源:https://www.bwwdw.com/article/sibo.html

Top