《连续体平面问题的有限元分析.doc》由会员分享,可在线阅读,更多相关《连续体平面问题的有限元分析.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、连续体平面问题的有限元分析【题目】:正方形薄板四周受均匀载荷的作用,该结构在边界上受正向分布压力,P=1kN/m,同时在沿对角线y轴上受一对集中压力,载荷为2kN,板厚t=1,泊松比=0,见下图: Y 2kN 1kN/m x o 2kN 摘要:有限单元法作为一门课程在现实工程中的应用已经十分的广泛,利本文用计算机,结合FORTRAN语言和有限单元法的理论课知识,对平面应力问题的薄板进行内力值的计算和相应的结构分析,并可以将由计算机计算的实际结果与由用弹性力学理论知识计算出来的解答相比较。关键词:连续体;平面应力;应力;节点;单元一、 理论依据与分析:此问题,为弹性力学里的平面应力问题,在板的内
2、部,到处都有【1】:z=0,yz=0,xz=0;x=f1(x,y),y=f2(x,y),xy=f3(x,y),应力具有这种性质的问题,称为平面应力问题。弹性薄板在工程中应用很广泛,对于一些简单的情况,如等厚、单跨、无大孔口,外形规则(如矩形,圆形等)的薄板,已有一些解答和表格可资利用盘【2】。由于连续平板的连续性,仅需要取其在第一象限的四分之一部分研究计算,然后做出一些辅助线将平板分成若干部分,在为每个部分选择分子单元,采用此模型化为4个全等的三角形单元,利用其对称性,四分之一的边界约束,荷载可等效如图所示。 1kN/m二、 程序原理及实现: 用FORTRAN程序的实现。有节点信息文件NODE
3、.IN和单元信息文件ELEMENT.IN,经过计算分析后输出一个一般性的文件DATA.OUT。模型基本信息由文件BASIC.IN生成。该程序的特点如下:问题类型:可用于计算弹性力学平面应力问题和平面应变问题。单元类型:采用常应变三角形单元。位移模式:用线性位移模式。载荷类型:节点载荷,非节点载荷应先转换为等效节点载荷。材料性质:弹性体由单一的均匀材料组成。约束方式:为“0”位移固定约束,为保证无刚体位移,弹性体至少应有三个自由度的独立约束。方程求解:针对半带宽刚度方程的GUASS消去法。输出文件:由手工生成节点信息文件NODE.IN,和单元信息文件ELEMENT,IN。结果文件:输出一般的结果
4、文件DATA.OUT。三、 程序的原理如框图:开始 输入数据(子程序READ_IN)BASIC.IN(基本信息文件)NODE.IN(节点信息文件)ELEMEENT.IN(单元信息文件)形成单元刚度矩阵(子程序FORM_KE)以半带存储方式形成整体刚度矩阵(BAND K)形成节点载荷向量(子程序FORM_P) 处理边界条件(子程序DO_BC)求解方程获得节点位移(子程序SOLVE)计算单元及节点应力(子程序) 输出文件DATA.OUT 结束 说明:(1)主要变量:ID: 问题类型码:,ID=1时的平面应力问题,ID=2时的平面应变问题N_NODE: 节点个数N_LOAD: 节点荷载个数N_DOF
5、: 自由度,N_DOF=N_NODE*2(平面问题)N_ELE: 单元个数N_BAND: 矩阵半带宽N_BC: 有约束的节点个数PE: 弹性模量PR: 泊松比PT: 厚度LJK_ELE(I,3):单元节点编号数组,LJK_ELE(I,1),LJK_ELE(I,2),LJK_ELE(I,3)分别放单元I的三个节点的整体编号。X(N_NODE),Y(N_NODE):节点坐标数组,X(I),Y(I)分别存放节点I的x,y坐标值。LJK_U(N_BC,3):节点载荷数组,P_LJK(I,1)表示第I个作用有节点载荷的节点的编号,P_LJK(I,2),P_LJK(I,3)分别为该节点沿x,y方向的节点载
6、荷数值。AK(N_DOF,N_BAND): 整体刚度矩阵AKE(6,6): 单元刚度矩阵BB(3,6): 位移.应变转换矩阵(三节点单元的几何矩阵)DD(3,3): 弹性矩阵SS(3,6): 应力矩阵RESULT_N(N_NOF): 节点荷载数组,存放节点荷载向量,解方程后该矩阵存放节点位移DISP_E(6): 单元的节点位移向量STS_ELE(N_ELE,3): 单元的应力分量STS_ND(N_NODE,3): 节点的应力分量(2) 子程序说明:READ_IN: 读入数据 BAND_K: 形成半带宽的整体刚度矩阵FORM_FE: 计算单元刚度矩阵 FORM_P: 计算节点载荷CAL_AREA
7、: 计算单元面积 DO_BC: 处理边界条件CLA_DD: 计算单元弹性矩阵 SOLVE: 计算节点位移CLA_BB: 计算单元位移.应变关系矩阵CAL_STS: 计算单元和节点应力(3) 文件处理:源程序文件:chengxu,for 程序读入的数据文件:BASIC.IN,NODE.IN,ELEMENT.IN(需要手工生成)程序输出的数据文件:DATA.OUT(4) 数据文件格式:需读入的模型、基本信息文件BASIC.IN的格式如下表:栏目格式说明实际需输入的数据基本模型数据第1行,每两个数之间用“,”号隔开问题类型,单元个数,节点个数,有约束的节点数,有载荷的节点数材料性质第2行,每两个数之
8、间用“,”号隔开弹性模量,泊松比,单元厚度节点约束信息在材料性质输入行之后另起行,每两个数之间用“,”号隔开LJK_U(N_BC,3)位移约束的节点编号,该节点x方向约束代码,该节点y方向代码节点载荷信息在节点约束信息输入行之后另起行,每两个数之间用“,”号隔开P_IJK(N_LOAD,3)载荷作用的节点编号,该节点x方向载荷该节点y方向载荷, 需读入的节点信息文件NODE.IN的格式如下表栏目格式说明实际需输入的数据节点信息每行为一个节点的信息(每行三个数,每两个数之间用空格或“,”分开LJK_U(N_BC,3)节点号,该节点的x坐标,该节点y方向坐标需读入的单元信息文件ELEMENT.IN
9、的格式如下表栏目格式说明实际需输入的数据单元信息每行为一个单元的信息(每行有14个整型数4个为单元节点编号,对于3节点编号,第4个节点编号与第3个节点编号相同,后10个数无用,可输入“0”,每两个整型数之间用至少一个空格分开NE_ANSYS(N_ELE,14)单元的节点号1(空格)单元的节点号2(空格)单元的节点号3(空格)单元的节点号4(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0(空格)0 输出结果文件DATA.OUT格式如下表栏目实际需输入的数据节点位移I RESULT_N(2*I_1) RESULT_N(2*I)节点号 x方向位移 y方向位移
10、单元应力的三个分量IE STE_ELE(IE,1) STE_ELE(IE,2) STE_ELE(IE,3)单元号 x方向应力 y方向应力 剪切应力节点应力的三个分量I STS_ND(I,1) STS_ND(I,2) STS_ND(I,3)节点号 x方向应力 y方向应力 剪切应力四、算例原始数据和程序分析:(1) 模型基本信息文件BASIC.IN的数据为1,4,6,5,31,0,1.1,1,0,2,1,0,4,1,1,5,0,1,6,0,11,-0.5,-1.5,3,-1,-1,6,-0.5,-0.5(2) 手工准备的节点信息文件NODE.IN的数据为1 0.0 2.02 0.0 1.03 1.
11、0 1.0 4 0. 0.5 1.0 0.6 2.0 0.(3) 手工准备的单元信息文件ELEMENT.IN的数据为1 2 3 3 0 0 0 0 1 1 1 1 0 12 4 5 5 0 0 0 0 1 1 1 1 0 25 3 2 2 0 0 0 0 1 1 1 1 0 33 5 6 6 0 0 0 0 1 1 1 1 0 4(4) 源程序文件chengxu,for为:PROGRAM FEM2DDIMENSION IJK_ELE(500,3),X(500),Y(500),IJK_U(50,3),P_IJK(50,3),&RESULT_N(500),AK(500,100)DIMENSION
12、STS_ELE(500,100),STS_ND(500,3)OPEN(4,FILE=BASIC.IN)OPEN(5,FILE=NODE.IN)OPEN(6,FILE=ELEMENT.IN)OPEN(8,FILE=DATA.OUT)OPEN(9,FILE=FOR_POST.DAT)READ(4,*)ID,N_ELE,N_NODE,N_BC,N_LOADIF(ID.EQ.1)WRITE(8,20)IF(ID.EQ.2)WRITE(8,25)20 FORMAT(/5X,=PLANE STRESS PROBLEM=)25 FORMAT(/5X,=PLANE STRAINPROBLEM=)CALL RE
13、AD_IN(ID,N_ELE,N_NODE,N_BC,N_BAND,N_LOAD,PE,PR,PT,& IJK_ELE,X,Y,IJK_U,P_IJK)CALL BAND_K(N_DOF,N_BAND,N_ELE,IE,N_NODE,& IJK_ELE,X,Y,PE,PR,PT,AK)CALL FROM_P(N_ELE,N_NODE,N_LOAD,N_DOF,IJK_ELE,X,Y,P_IJK, & RESULT_N)CALL DO_BC(N_BC,N_BAND,N_DOF,IJK_U,AK,RESULT_N)CALL SOLVE(N_NODE,N_DOF,N_BAND,AK,RESULT_N
14、)CALL CAL_STS(N_ELE,N_NODE,N_DOF,PE,PR,IJK_ELE,X,Y,RESULT_N& STS_ELE,STS_ND)C to putout a data fileWRITE(9,70)REAL(N_NODE),REAL(N_ELE)70 FORMAT(2f9.4)WRITE(9,71)(X(I),Y(I),RESULT_N(2*I-1),RESULT_N(2*I),&STS_ND(I,1),STS_ND(I,2),STS_ND(I,3),I=1,N_NODE)71 FORMAT(7F9.4)WRITE(9,72)(REAL(IJK_ELE(I,1),REAL
15、(IJK_ELE(I,2).&REAL(IJK_ELE(I,3)REAL(IJK_ELE(I,3),&STS_ELE(I,1),STS_ELE(I,2),STS_ELE(I,3),I=1,N_ELE)72 FORMAT(7F9.4)C CLOSE(4)CLOSE(5)CLOSE(8)CLOSE(9)ENDCC to get the original data in order to model the problemSUBROUTINE READ_IN(ID,N_ELE,N_NODE,N_BC,N_BAND,N_LOAD,PE,PR,&PT,IJK_ELE,X,Y,IJK_U,P_IJK)DI
16、MENSION IJK_ELE(500,3),X(N_NODE),Y(N_NODE),IJK_U(N_BC,3),& P_IJK(N_LOAD,3),NE,ANSYS(N_ELE,14)REAL ND_ANSYS(N_NODE,3)READ(4,*)PE,PR,PTREAD(4,*)(IJK_U(I,J),J=1,3),I=1,N_BC)READ(5,*)(ND_ANSYS(I,J),J=1,3),I=1,N_ELE)DO 10 I=1,N_NODEX(I)=ND_ANSYS(I,2)Y(I)=ND_ANSYS(I,3)10 CONTINUE DO 11 I=1,N_ELEDO 11 J=1,
17、3 IJK_ELE(I,J)=NE_ANSYS(I,J)11 CONTINUEN_BAND=0DO 20 IE=1,N_ELE DO 20 I=1,3 DO 20 J=1,3IW=IABS(IJKK_ELE(IE,I)-IJK_ELE(IE,J)IF(N_BAND.LT.IW)N_BAND=IW20 CONTINUE N=BAND=(N_BAND+1)*2IF(ID.EQ.1) THENELSEPE=PE/(1.0-PR*PR)PR=PR/(1.0-PR)END IFRETURN ENDCC to form the stiffness matrix of elementSUBROUTINE F
18、ORM_KE(IE,N_NODE,N_ELE,IJK_ELE,X,Y,PE,PR,PT,AKE)DIMENSION IJK_ELE(500,3),X(N_NODE),Y(N_NODE),BB(3,6),DD(3,3), & AKE(6,6),SS(6,6)CALL CAL_DD(PE,PR,DD)CALL CAL_BB(IE,N_NODE,N_ELE,IJK_ELE,X,Y,AE,BB)DO 10 I=1,3 DO 10 J=1,6 SS(I,J)=SS(I,J)+DD(I,K)*BB(K,J) DO 20 I=1,6DO 20 J=1,6 AKE(I,J)=0.0 DO 20 K=1,320
19、 AKE(I,J)=AKE(I,J)+SS(K,I)*BB(K,J)*AE*PT RETURNENDC to form banded global stiffness matrixSUBROUTINE BAND_K(N_DOF,N_BAND,N_ELE,IE,N_NODE,IJK_ELE,X,Y,PE,& PR,PT,AK) DIMENSIONIJK_ELE(500,3),X(N_NODE),Y(N_NODE),AKE(6,6),AK(500,100) N_DOF=2*N_NODEDO 40 I=1,N_DOFDO 40 J=1,N_BAND40 AK(I,J)=0 DO 50 IE=1,N_
20、ELECALL FORM_KE(IE,N_NODE,N_ELE,IJK_ELE,X,Y,PE,PR,PT,AKE)DO 50 I=1,3DO 50 II=1,2IH=2*(I=1)+IIDO 50 J=1,3DO 50 JJ=1,2IL=2*(J-1)+JJIZL=2*(IJK_ELE(IE,J)-1)+JJIDL=IZL-IDH+1IF(IDL.LE.0) THENELSEAK(IDH,IDL)=AK(IDH,IDL)+AKE(IH,IL)END IF50 CONTINUERETURNENDCC to calculate the area of element SUBROUTINE CAL_
21、AREA(IE,N_NODE,IJK_ELE,X,Y,AE)DIMENSION IJK_ELE(500,3),X(N_NODE),Y(N_NODE)I=IJK_ELE(IE,1)J=IJK_ELE(IE,2)K=IJK_ELE(IE,3)XIJ=X(J)-X(I)YJJ=Y(J)-Y(I)XIK=X(K)-X(I)YIK=Y(K)-Y(I)AE=(XIJ*YIK-XIK*YIJ)/2.0RETURNENDCC to calculate the elastic matrix of element SUBROUTINE CAL_DD(PE,PR,DD)DIMENSION DD(3,3)DO 10
22、I=1,3 DO 10 J=1,310 DD(I,J)=0.0 DD(1,1)=PE/(1.0-PR*PR)DD(1,2)=PE*PR/(1.0-PR*PR)DD(2,1)=DD(1,2)DD(2,2)=DD(1,1)DD(3,3)=PE/(1.0+PR)*2.0)RETURNENDCC to calculate the strain-displacement matrix of elementSUBROUTINE CAL_BB(IE,N_NODE,N_ELE,IJK_ELE,X,Y,AE,BB)DIMENSION IJK_ELE(500,3),X(N_NODE),Y(N_NODE),BB(3
23、,6)I=IJK_ELE(IE,1)J=IJK_ELE(IE,2)K=IJK_ELE(IE,3)DO 10 II=1,3 DO 10 JJ=1,310 BB(II JJ)=0.0 BB(1,1)=Y(J)-Y(K)BB(1,3)=Y(K)-Y(I)BB(1,5)=Y(I)-Y(J)BB(2,2)=X(K)-X(J)BB(2,4)=X(I)-X(K)BB(2,6)=X(J)-X(I)BB(3,1)=BB(2,2)BB(3,2)=BB(1,1)BB(3,3)=BB(2,4)BB(3,4)=BB(1,3)BB(3,5)=BB(2,6)BB(3,6)=BB(1,5)CALL CAL_AREA(IE,N
24、_NODE,IJK_ELE,X,Y,AE)DO 20 I1=1,3 DO 20 J1=1,620 BB(I1,J1)=BB(I1,J1)/(2.0*AE) RETURNENDCC to form the global load matrix SUBROUTINE FORM_P(N_ELE,N_NODE,N_LOAD,N_DOF,IJK_ELE,IJK_ELE,X,Y,P_IJK,& RESULT_N)DIMENSION IJK_ELE(500,3),X(N_NODE),Y(N_NODE),P_IJK(N_LOAD,3),& RESULT_N(N_DOF)DO 10 I=1,N_DOF10 RE
25、SULT_N(I)=0.0DO 20 I=1,N_LOADII=P_IJK(I,1)RESULT_N(2*II-1)=P_IJK(I,2)20 RESULT_N(2*II)=P_IJK(I,3) RETURN ENDCC to deal with BC(u) (here only for fixed displacement) using 1-0 methodSUBROUTINE DO_BC(N_BC,N_BAND,N_DOF,IJK_U,AK,RESULT_N)DIMENSION RESULT_N(N_DOF),IJK_U(N_BC,3),AK(500,100)DO 30 I=1,N_BC
26、IR=IJK_U(I,1) DO 30 J=2,3IF(IJK+U(I,J).EQ.0)THENELSEII=2*IR+J-3AK(II,1)=1.0RESULT_N(II)=0.0DO 10 JJ=2,N=BAND10 AK(II,JJ)=0.0 DO 20 JJ=2,II20 AK(II-JJ+1,JJ)=0.0 END IF30 CONTINUERETURNENDCC to solve the banded FEM equation by GAUSS eliminationSUBROUTINE SOLVE(N_NODE,N_DOF,N_BAND,AK,RESULT_N)DIMENTION
27、 RESULT_N(N_DOF),AK(500,100)DO 20 K=1,N_DOF-1IF(N_DOF,GT.K+N_BAND-1)IM=K+N_BAND-1IF(N_DOF,LE.K+N_BAND-1)IM=N_DOFDO 20 I=K+1,IM L=I-K+1 C=AK(K,L)/AK(K,1) IW=N_BAND-L+1DO 10 J=1,IWM=J+I-K10 AK(I,J)=AK(I,J)-C*AK(K,M)20 RESULT_N(I)=RESULT_N(I)-C*RESULT_N(K) RESULT_N(N_DOF)=RESULT_N(N_DOF)/AK(N_DOF,1)DO
28、40 I1=1,N_DOF-1 I=N_DOF-I1 IF(N_BAND.GT.N_DOF-I-1)JQ=N_DOF-I+1 IF(N_BAND.LE.N_DOF-I-1)JQ=N_BANDDO 30 J=2,JQ K=J+I-130 RESULT_N(I)=RESULT_N(I)-AK(I,J)*RESULT_N(K)40 RESULT_N(I)=RESULT_N(I)/AK(I,1) WRITE(8,50)50 FORMAT(/12X,*RESULT BY FEM2D *,/8X,&-DISPLACEMENT OF NODE-/5X,NODE NO,8X,X-DISP,8X,Y-DISP)
29、DO 60 I=1,N_NODE60 WRITE(8,70) I,RESULT_N(2*I-1),RESULT_N(2*I)70 FORMAT(8X,I5,7X,2E15.6) RESULTENDCC calculate the stress component of element and nodeSUBROUTINECAL_STS(N_ELE,N_NODE,N_DOF,PE,PR,IJK_ELE,X,Y,RESULT_N,&STS_ELE,STS_ND)DIMENSION IJK_ELE(500,3),X(N_NODE),Y(N_NODE),DD(3,3),BB(3,6),&SS(3,6)
30、,RESULT_N(N_DOF),DISP_E(6) DIMENSION STS_ELE(500,3),STS_ND(500,3)WRITE(8,10)10 FORMAT(/8X,-STRESS OF ELEMENT-) CALL CAL_DD(PE,PR,DD) DO 50 IE=1,N_ELECALL CAL_BB(IE,N_NODE,N_ELE,IJK_ELE,X,Y,AE,BB)DO 20 I=1,3 DO 20 J=1,6 SS(I,J)=0.0 DO 20 K=1,320 SS(I,J)=SS(I,J)+DD(I,K)*BB(K,L) DO 30 I=1,3 DO 30 I=1,3
31、DO 30 J=1,2 IH=2*(I-1)+J IW=2*(IJK_ELE(IE,I)-1)+J30 DISP_E(IH)=RESULT_N(IW) STX=0 STY=0 TXY=0DO 40 J=1,6 STX=STX+SS(1,J)*DISP_E(J) STY=STY+SS(2,J)*DISP_E(J)40 TXY=TXY+SS(3,J)*DISP_E(J) STS_ELE(IE,1)=STX STS_ELE(IE,2)=STYSTS_ELE(IE,3)=TXY50 WRITE(8,60)IE,STX,STY,TXY60 FORMAT(1X,ELEMENT NO.=,I5/18X,ST
32、X=,E12.6,5X,STY=, &E12.6,2X,TXY=,E12.6)C the following part is to calculate stress component of nodeWRITE(8,55)55 FORMAT(/8X,-STRESSES OF NODE-) DO 90 I=1,N_NODEA=0.B=0.C=0.II=0DO 70 K=1,N_ELEDO 70 J=1,3IF(IJK_ELE(K,J).EQ.I) THEN II=II+1 A=A+STS_ELE(K,1) B=B+STS_ELE(K,2)C=C+STS_ELE(K,3)END IF70 CONT
33、INUE STS_ND(I,1)=A/IISTS_ND(I,2)=B/IISTS_ND(I,3)=C/IIWRITE(8,75)I,STS_ND(I,1),STS_ND(I,2),STS_ND(I,3)75 FORMAT(1X,NODE NO.=I5/18X,STX=,E12.6,5X,STY=, &E12.6,2X,TXY=,E12.6)90 CONTONUE RETURNEND C FEM2D program end五,算例结果:chengxu,for所输出的数据文件DATA.OUT数据内容如下: =PLANE STRESS PROBLEM= *RESULTS BY FEM2D* -DIS
34、PLACEMENT OF NODE- NODE NO X-DISP Y-DISP 1 .E+00 -.52527E+01 2 .E+00 -.22527E+01 3 -.10879E+01 -.E+01 4 E+00 .E+00 5 -.E+00 .E+00 6 -.E+01 .E+00 -STRESS OF ELEMENT- ELEMENT NO.= 1 STX=-.E+01TXY=.E+00 ELEMENT NO.= 2 STX=-.E+00TXY=.E+00 ELEMENT NO.= 3 STX=-.E+01TXY=.E+00 ELEMENT NO. 4 STX=-E+01TXY=-E+
35、00 -STRESS OF NODE- NODE NO. 1 STX=-.E+01 STY=-E+01TXY=.E+00 NODE NO.= 2 STX=-.E+01 STY=-E+01 TXY=.E+00 NODE NO. 3 STX=-.E+01 STY=-E+01TXY=.E+00 NODE NO. 4 STX=-.E+00 STY=-E+01TXY=.E+00 NODE NO.= 5 STX=-E+00 STY=-E+01TXY=-E-01 NODE NO.= 6 STX=-E+01 STY=-E+01TXY=-E+00 六、结论(本次课程设计体会与总结):本次有限单元法课程设计,是我们对有限单元法在工程中的应用有了进一步的体会,对FORTRAN语言也有了进一步的了解,更加熟练了程序的编写过程,我们受益匪浅。参考文献: 1、吴家龙.弹性力学.北京:高等教育出版社,2001年.102页 2、朱伯芳.有限单元法原理与应用.北京:中国水利水电出版社,1998年.192页 .
限制150内