![]() |
|
前言
高循环疲劳,也称为高周疲劳,即作用于零件、构件的应力水平较低 ,破坏循环次数般高于104~105的疲劳 ,弹簧、传动轴等的疲劳属此类。右高循环疲劳引起的破坏可分为三个阶段:裂纹成核、裂纹扩展和最终的脆性破坏。
现有研究一般集中在第二阶段——稳定裂纹扩展过程。在线弹性断裂力学的假设下,裂纹扩展可以用Paris-Erdogan定律(循环次数与应力强度因子之间的对数线性关系)来描述。预测具有预先存在裂纹的样品的寿命(循环次数)或对裂纹路径的预测,这对于评估工程结构受到循环加载的条件至关重要,例如轴,开关等。
本文可用于任意二维几何形状的裂纹扩展分析,也可以在次基础上进一步扩展到3维裂纹扩展分析,采用的理论是基于线弹性断裂力学的假设。
在这种方法中,在每个时间步(裂纹增量)对裂纹表面进行显式建模,并且在每个时间步(裂纹扩展区)也进行(重新)网格划分。虽然重网格方法在模拟裂纹扩展时可能不是很有效(就计算时间而言),但它确实可以完成工作。
每次迭代时的裂纹角由裂纹尖端附近的位移场计算得到的应力强度因子KI和KII来预测[Erdogan等,1963],(通过将单元节点移至单元长度的四分之一来模拟裂纹奇异性的特殊单元属性):

其中应力强度因子由裂纹尖端节点位移计算

平面应力:
平面应变:
演示案例
以下图2D基本 模型为例,含裂纹预计会扩展的区域,如下图中以红色线为边缘的区域,该区域将自动划分网格。裂纹萌生的关键点 (KP ) 和预期的最终裂纹位置 (KPe) 必须定义在边界上而不是内部。裂纹扩展区的大小和预期最终裂纹位置关键点的选择不影响结果;然而,它们会影响解决方案的效率(重新划分网格的时间)和稳定性。
文后附上了所有的命令流,关于命令流的理解,读者可以后台咨询作者。
该命令流的难点在于:
|
|


FINISH/clear/prep7L = 62.5H = 60.0R1 = 6.0R2 = 4.0kk,,Lk,,L,Hk,,,Hl,1,2l,2,3l,3,4l,4,1k,,L-27.5,H/2+9k,,,H/2+1.5k,,L-37.5-1.5,H/2+1.5k,,L-37.5-1.5,H/2-1.5k,,,H/2-1.5! 预计会扩展的区域l,25,26l,26,27l,27,28l,28,29l,29,25l,26,23l,28,19k,,L-15,H/2+9l,18,30l,30,21! 通过线创建面al,1,2,3,4al,21,22,23,24,25al,22,23,27,14,28,29,20,19,26al,19,20,17,18al,15,16,13,14al,5,6,7,8al,9,10,11,12!面分割!洞adele,6adele,4adele,5adele,2ET,1,82!平面应变! 各向弹性MP,EX,1,210000MP,PRXY,1,0.3LESIZE,27,1LESIZE,14,1LESIZE,28,1LESIZE,29,1LESIZE,20,1LESIZE,19,1LESIZE,26,1LESIZE,22,1LESIZE,23,1LESIZE,1,5LESIZE,2,5LESIZE,3,5LESIZE,31,5LESIZE,30,5AMESH,8! 裂纹扩展区域的网格会自动划分! boundary conditionsDK,14,,,,0,UXDK,12,,,,0,UXDK,12,,,,0,UY!100 N force!线分割22, 0.523, 0.514, 0.01LDELE,25
!裂纹扩展及网格自动划分!!最大切应力准则CSYS,/Prep7!! 以下参数可以自行调整Pi=3.1415926535Epsilon=5e-5 ! 裂纹扩展方程数值解的误差Ra=0.5 !圆形区域半径与裂纹长度之比nles=50 !连接 KP 和 KPe 的线上的单元数量!命令multipro可以生成一个简单且有多行提示的对话框,最多容纳10个参数的提示multipro,'start',6*cset,1,3,Area,'Area Number',3*cset,4,6,KP,'Keypoint of start',27*cset,7,9,KPe,'Keypoint of end',33*cset,10,12,a,'Length of Initial Crack [mm]',1*cset,13,15,ap,'Crack Increment [mm]',1*cset,16,18,Theta,'Angle of Initial Crack []',0*cset,19,21,cycle,'Number of increments',20*cset,22,24,sigmay,'Yield stress [MPa]',160*cset,25,27,lock,'Locked angle',0*cset,61,62,'MMTS criterion'multipro,'end'!! 以下量不可变tt=1NN=1condition=1t=1k=1HP=0DP=0*GET,poisson,PRXY,1,TEMP*GET,EMX,EX,1,TEMPGMX=EMX/2/(1+poisson)*if,_BUTTON,EQ,0,THEN !若弹出框OK按钮被按下, _BUTTON=0,反之_BUTTON=1CSWPLA,33,0,1,1 !定义局部坐标系app=aToC='MTS criterion'Theta3=Thetaappx=0appy=0*do,j,1,cycle,1appx=a*cos(Theta3*Pi/180)+appxappy=a*sin(Theta3*Pi/180)+appy!循环,裂纹增量的形成ALLSEL,ALLrKSCON=0.0005*a*get,NOL,lines,,count*get,NOK,kp,,count*if,tt,EQ,1,THEN*get,NOA,areas,,count*get,minKP,KP,0,num,min*DO,i,1,NOK,1*if,minKP,EQ,KP,THENKP=k*endif*GET,nextKP,KP,minKP,NXTHminKP=nextKPk=k+1*ENDDOk=1*get,minKPe,KP,0,num,min*DO,i,1,NOK,1*if,minKPe,EQ,KPe,THENKPe=k*endif*GET,nextKP,KP,minKPe,NXTHminKPe=nextKPk=k+1*ENDDOk=1*get,minAREA,AREA,0,num,minAREA=k*endif*GET,nextAREA,AREA,minAREA,NXTHminAREA=nextAREAk=k+1*ENDDOk=1NUMCMP,ALL !压缩编号KP1=KPASEL,S,,,AreaLSLA,SKSLL,S*get,NOL1,lines,,count*get,NOK1,kp,,count*DIM,POLINES,TABLE,NOL1,3,1,NOL,POF*DO,i,1,3,1*SET,POLINES(0,i),i*ENDDO*DO,i,1,NOL1,1*SET,POLINES(i,0),i*ENDDO*DIM,POKEYPOINTS,TABLE,NOK1,3,1,NOKP,POKP*DO,i,1,3,1*SET,POKEYPOINTS(0,i),i*ENDDO*DO,i,1,NOK1,1*SET,POKEYPOINTS(i,0),i*ENDDO*DIM,FACTORS,TABLE,cycle,7,1,NOKP,POKP*DO,i,1,7,1*SET,FACTORS(0,i),i*ENDDO*DO,i,1,cycle,1*SET,FACTORS(i,0),i*ENDDO*DIM,TSTRESSA,TABLE,20,4,1,NOKP,POKP*DO,i,1,4,1*SET,TSTRESSA(0,i),i*ENDDO*DO,i,1,20,1*SET,TSTRESSA(i,0),i*ENDDO*do,i,1,NOL,1*GET,status,LINE,i,LSEL*if,status,EQ,1,THEN*SET,POLINES(t,1),i*VGET,POLINES(t,2),LINE,i,KP,1, , ,2*VGET,POLINES(t,3),LINE,i,KP,2, , ,2t=t+1*endif*enddot=1*do,i,1,NOK,1*GET,status,KP,i,KSEL*if,status,EQ,1,THEN*SET,POKEYPOINTS(t,1),i*VGET,POKEYPOINTS(t,2),KP,i,LOC,X, , ,2*VGET,POKEYPOINTS(t,3),KP,i,LOC,Y, , ,2t=t+1*endif*enddot=1ALLSEL,ALL*do,i,1,NOK1,1*if,POKEYPOINTS(i,1),EQ,KP,THENAGEN, ,All, , ,-POKEYPOINTS(i,2),-POKEYPOINTS(i,3),0, , ,1*endif*enddoADELE,Area*ENDIFxT=a*cos(Theta*Pi/180) !创建裂缝及其周围区域yT=a*sin(Theta*Pi/180)K,NOK+1,0,0K,NOK+2,(1-Ra)*a*cos(Theta*Pi/180),(1-Ra)*a*sin(Theta*Pi/180)K,NOK+3,xT,yTK,NOK+4,(1-Ra)*a*cos(Theta*Pi/180),(1-Ra)*a*sin(Theta*Pi/180)l,NOK+1,NOK+4l,KP1,NOK+2l,NOK+4,NOK+3l,NOK+2,NOK+3k,NOK+5,xT-Ra*a*sin(Theta*Pi/180),yT+Ra*a*cos(Theta*Pi/180)k,NOK+6,xT+Ra*a*cos(Theta*Pi/180),yT+Ra*a*sin(Theta*Pi/180)k,NOK+7,xT+Ra*a*sin(Theta*Pi/180),yT-Ra*a*cos(Theta*Pi/180)LARC,NOK+4,NOK+5,NOK+3,Ra*aLARC,NOK+7,NOK+2,NOK+3,Ra*aLARC,NOK+5,NOK+6,NOK+3,Ra*aLARC,NOK+6,NOK+7,NOK+3,Ra*al,NOK+5,NOK+3l,NOK+6,NOK+3l,NOK+7,NOK+3l,NOK+6,KPeal,NOL+3,NOL+5,NOL+9al,NOL+9,NOL+7,NOL+10al,NOL+10,NOL+11,NOL+8al,NOL+6,NOL+4,NOL+11*if,tt,EQ,1,THEN*do,i,1,NOK1,1 !确定KP和KPe之间的角度,即上、下地下之间的间隔*if,POKEYPOINTS(i,1),EQ,KP,THENKPx=POKEYPOINTS(i,2)KPy=POKEYPOINTS(i,3)*endif*if,POKEYPOINTS(i,1),EQ,KPe,THENKPex=POKEYPOINTS(i,2)KPey=POKEYPOINTS(i,3)*endif*enddo*if,KPex-KPx,EQ,0,THENTheta2=Pi/2*elseK=(KPey-KPy)/(KPex-KPx)Theta2=atan(K)*endif*if,KPex,LT,KPx,THEN*if,KPey,GT,KPy,THENTheta2=Pi/2+abs(Theta2)*endif*if,KPey,LT,KPy,THENTheta2=Pi+abs(Theta2)*endif*endif*if,KPex,GT,KPx,THEN*if,KPey,LT,KPy,THENTheta2=3/2*Pi+abs(Theta2)*endif*endif*if,KPex,EQ,KPx,THEN*if,KPey,LT,KPy,THENTheta2=3/2*Pi*endif*endif*if,KPey,EQ,KPy,THEN*if,KPex,LT,KPe,THENTheta2=Pi*endif*endifext=-POKEYPOINTS(1,2)*sin(Theta2)+POKEYPOINTS(1,3)*cos(Theta2)Kpext=POKEYPOINTS(1,1)*do,i,2,NOK1,1*if,-POKEYPOINTS(i,2)*sin(Theta2)+POKEYPOINTS(i,3)*cos(Theta2),GT,ext,THENext=-POKEYPOINTS(i,2)*sin(Theta2)+POKEYPOINTS(i,3)*cos(Theta2)KPext=POKEYPOINTS(i,1)*endif*enddo*endifk=0i=1c=0t=1KPi=KPcondition=1LSEL,U,,,ALL*dowhile,condition*if,POLINES(i,2),EQ,KPi,THEN*if,POLINES(i,1),NE,C,THENLSEL,A, , ,POLINES(i,1)KPi=POLINES(i,3)C=POLINES(i,1)i=0t=t+1*endif*endif*if,POLINES(i,3),EQ,KPi,THEN*if,POLINES(i,1),NE,C,THENLSEL,A, , ,POLINES(i,1)KPi=POLINES(i,2)C=POLINES(i,1)i=0t=t+1*endif*endifi=i+1*if,KPi,EQ,KPe,THENcondition=0*endif*enddoKSLL,S*get,STATUS,KP,KPext,KSEL*if,STATUS,EQ,1,THEN*if,tt,EQ,1,THEN*do,i,1,NOL1,1*if,POLINES(i,2),EQ,KP,THEN*get,STATUS,LINE,POLINES(i,1),LSEL*if,STATUS,EQ,1,THENldele,POLINES(i,1)KSEL,A,,,NOK+1l,POLINES(i,3),NOK+1HP=POLINES(i,2)HPi=iHPj=2POLINES(i,2)=NOK+1*endif*endif*if,POLINES(i,3),EQ,KP,THEN*get,STATUS,LINE,POLINES(i,1),LSEL*if,STATUS,EQ,1,THENldele,POLINES(i,1)KSEL,A,,,NOK+1l,POLINES(i,2),NOK+1HP=POLINES(i,3)HPi=iHPj=3POLINES(i,3)=NOK+1*endif*endif*enddo*endifk=1*elseww=0k=2*do,i,1,NOL1,1*if,POLINES(i,2),EQ,KP,THEN*if,ww,EQ,0,THENDP=POLINES(i,2)DPi=iDPj=2POLINES(i,2)=NOK+1ww=1*endif*endif*if,ww,EQ,0,THEN*if,POLINES(i,3),EQ,KP,THENDP=POLINES(i,3)DPi=iDPj=3POLINES(i,3)=NOK+1ww=1*endif*endif*enddo*endif*if,STATUS,EQ,1,THENLSEL,A,,,NOL+kLSEL,A,,,NOL+k+4LSEL,A,,,NOL+k+6LSEL,A,,,NOL+12*if,tt,NE,1,THEN*do,q,1,NN-1,1LSEL,A,,,NOL-(4*q-3)LSEL,A,,,NOL-(4*q-1)*enddo*endif*if,tt,NE,1,THEN*if,k,EQ,1,THENldele,NOL-1KSEL,A,,,NOKKSEL,A,,,NOK+1l,NOK,NOK+1POLINES(HPi,HPj)=NOK+1*endif*endif*elseLSEL,A,,,NOL+kLSEL,A,,,NOL+k+4LSEL,A,,,NOL+k+6LSEL,A,,,NOL+12*if,tt,NE,1,THEN*do,q,1,NN-1,1LSEL,A,,,NOL-(4*q-4)LSEL,A,,,NOL-(4*q-2)*enddo*endif*if,tt,NE,1,THEN*if,k,EQ,1,THENldele,NOL-1KSEL,A,,,NOKKSEL,A,,,NOK+1l,NOK,NOK+1POLINES(HPi,HPj)=NOK+1*endif*endif*endifal,all !k=0i=0c=0t=1KPi=KPcondition=1LSEL,U,,,ALL*dowhile,condition*if,POLINES(i,2),EQ,KPi,THEN*if,POLINES(i,1),NE,C,THENLSEL,A, , ,POLINES(i,1)KPi=POLINES(i,3)C=POLINES(i,1)i=0t=t+1*endif*endif*if,POLINES(i,3),EQ,KPi,THEN*if,POLINES(i,1),NE,C,THENLSEL,A, , ,POLINES(i,1)KPi=POLINES(i,2)C=POLINES(i,1)i=0t=t+1*endif*endifi=i+1*if,KPi,EQ,KPe,THENcondition=0*endif*enddoKSLL,S*get,STATUS,KP,KPext,KSEL*if,STATUS,EQ,1,THEN*if,tt,EQ,1,THEN*do,i,1,NOL1,1*if,POLINES(i,2),EQ,KP,THEN*get,STATUS,LINE,POLINES(i,1),LSEL*if,STATUS,EQ,1,THENldele,POLINES(i,1)KSEL,A,,,NOK+1l,POLINES(i,3),NOK+1HP=POLINES(i,2)HPi=iHPj=2POLINES(i,2)=NOK+1*endif*endif*if,POLINES(i,3),EQ,KP,THEN*get,STATUS,LINE,POLINES(i,1),LSEL*if,STATUS,EQ,1,THENldele,POLINES(i,1)KSEL,A,,,NOK+1l,POLINES(i,2),NOK+1HP=POLINES(i,3)HPi=iHPj=3POLINES(i,3)=NOK+1*endif*endif*enddo*endifk=1*elsek=2*endif*if,STATUS,EQ,1,THENLSEL,A,,,NOL+kLSEL,A,,,NOL+k+4LSEL,A,,,NOL+k+6LSEL,A,,,NOL+12*if,tt,NE,1,THEN*do,q,1,NN-1,1LSEL,A,,,NOL-(4*q-3)LSEL,A,,,NOL-(4*q-1)*enddo*endif*if,tt,NE,1,THEN*if,k,EQ,1,THENldele,NOL-1KSEL,A,,,NOKKSEL,A,,,NOK+1l,NOK,NOK+1POLINES(HPi,HPj)=NOK+1*endif*endif*elseLSEL,A,,,NOL+kLSEL,A,,,NOL+k+4LSEL,A,,,NOL+k+6LSEL,A,,,NOL+12*if,tt,NE,1,THEN*do,q,1,NN-1,1LSEL,A,,,NOL-(4*q-4)LSEL,A,,,NOL-(4*q-2)*enddo*endif*if,tt,NE,1,THEN*if,k,EQ,1,THENldele,NOL-1KSEL,A,,,NOKKSEL,A,,,NOK+1l,NOK,NOK+1POLINES(HPi,HPj)=NOK+1*endif*endif*endifal,all !allsel,all*GET,mat,AREA,AREA,ATTR,MAT !检测材料中裂纹扩展区域GPLOT/AUTO,1/REP,FASTFINISH/PREP7KSCON,NOK+3,rKSCON,1 !创建网格*GET,LLength,LINE,NOL+12,LENGLESIZE,NOL+12,,,nles !在连接 KP 和 KPe 的线上创建元素AESIZE,NOA+1,Ra*a/10 !在裂纹的圆形区域上网格大小AESIZE,NOA+2,Ra*a/10AESIZE,NOA+3,Ra*a/10AESIZE,Area,Ra*a/10!MSHAPE,1,2DAMESH,NOA+1AMESH,NOA+2AMESH,NOA+3AMESH,AreaMSHAPE,1,2D !AMESH,NOA+4AMESH,NOA+5/prep7!*do,ii,1,NOK,1! *GET,NODCS,KP,ii,ATTR,NODE! *if,ii,NE,KP,THEN! NMODIF,NODCS,,,,-Theta3,0,0! *endif!*enddoclocal,33,,,,,-Theta3CSYS,33NROTAT,allCSYS,0allsel,allAGEN,,all,,,-a*cos(Theta*Pi/180),-a*sin(Theta*Pi/180),0,,,1CSKP,11,0,NOK+3,NOK+6,NOK+5,1,1ATRAN,0,all,,,,0,1DSYS,0CSYS,0/solNNNN=1*if,j,EQ,CYCLE,THENNNNN=5*endifNSUBS,NNNNOUTRES,all,allsolveFINISH/POST1SET,LASTPATH,K,5,30,20KSEL,S,,,NOK+3NSLK,S*get,nextHN,NODE,,NXTHPPATH,1,nextHNLSELE,S,,,NOL+4NSLL,S,1NSEL,R,LOC,X,-rKSCON/2,-rKSCON/8*get,nextHN,NODE,,NXTH*get,DPu2,NODE,nextHN,U,X*get,DPv2,NODE,nextHN,U,YPPATH,4,nextHNLSELE,S,,,NOL+4NSLL,S,1NSEL,R,LOC,X,-rKSCON,-rKSCON/1.5*get,nextHN,NODE,,NXTH*get,DPu3,NODE,nextHN,U,X*get,DPu3x,NODE,nextHN,LOC,X*get,DPv3,NODE,nextHN,U,YPPATH,5,nextHNLSELE,S,,,NOL+3NSLL,S,1NSEL,R,LOC,X,-rKSCON/2,-rKSCON/8*get,nextHN,NODE,,NXTH*get,DPu4,NODE,nextHN,U,X*get,DPv4,NODE,nextHN,U,YPPATH,2,nextHNLSELE,S,,,NOL+3NSLL,S,1NSEL,R,LOC,X,-rKSCON,-rKSCON/1.5*get,nextHN,NODE,,NXTH*get,DPu5,NODE,nextHN,U,X*get,DPv5,NODE,nextHN,U,YPPATH,3,nextHNLnode=abs(DPu3x)allsell,allEPLOTKCALC,0,-mat,3,0*GET,KI,KCAL,,K,1*GET,KII,KCAL,,K,2DPP=(4*(DPu4-DPu2)-(DPu5-DPu3)/2)*if,DPP,LT,0,THENKII=-1*KII*endifKIt=EMX/(3*(1+poisson)*(1+(3-poisson)/(1+poisson)))*sqrt(2*Pi/Lnode)*(4*(DPv4-DPv2)-(DPv5-DPv2)/2)KIIt=EMX/(3*(1+poisson)*(1+(3-poisson)/(1+poisson)))*sqrt(2*Pi/Lnode)*(4*(DPu4-DPu2)-(DPu5-DPu3)/2)rc=1/2/Pi*(KI/sigmay)*(KI/sigmay)LSEL,S,,,NOL+10NSLL,S,1NSEL,U,LOC,X,-Ra*a/10,Ra*a/10NSEL,R,S,X,,,,0*do,ij,1,20,1NODn=NODE(0,0,0)*GET,NODxx,NODE,NODn,S,X*GET,NODyy,NODE,NODn,S,Y*GET,NODu,NODE,NODn,LOC,X*SET,TSTRESSA(ij,1),NODxx*SET,TSTRESSA(ij,2),NODyy*SET,TSTRESSA(ij,3),NODxx-NODyy*SET,TSTRESSA(ij,4),NODuNSEL,U,,,NODn*enddoDETH1=0*do,ij,1,20,1DETH1=DETH1+TSTRESSA(ij,4)*enddoDETH2=0*do,ij,1,20,1DETH2=DETH2+TSTRESSA(ij,4)**2*enddoDETH3=0*do,ij,1,20,1DETH3=DETH3+TSTRESSA(ij,3)*enddoDETH=20*DETH2-DETH1**2numerator1=0*do,ij,1,20,1numerator1=numerator1+TSTRESSA(ij,4)*TSTRESSA(ij,3)*enddob2=(20*numerator1-DETH1*DETH3)/DETHsigmaxxyy=0*do,ij,1,20,1sigmaxxyy=sigmaxxyy+TSTRESSA(ij,3)*enddosigmaxxyy=sigmaxxyy/20positiont=0*do,ij,1,20,1positiont=positiont+TSTRESSA(ij,4)*enddopositiont=positiont/20Tstress=sigmaxxyy-b2*positiont*set,FACTORS(NN,1),KI*set,FACTORS(NN,2),KII*set,FACTORS(NN,3),Tstress*SET,FACTORS(NN,6),appx*SET,FACTORS(NN,7),appyh1=-Pi/3h2=Pi/3pocetk=-(1+(log(epsilon/Pi))/log(2))*do,mb,1,pocetk,1fy1=KI*sin(h1)+KII*(3*cos(h1)-1)fy2=KI*sin(h2)+KII*(3*cos(h2)-1)s=(h2+h1)/2fys=KI*sin(s)+KII*(3*cos(s)-1)*if,fy1,NE,0,then*if,fys,NE,0,then*if,fy1/abs(fy1),NE,fys/abs(fys),thenh2=s*elseh1=s*endif*endif*endif*enddosolution=(h1+h2)/2theta=solution*180/Pi*SET,FACTORS(NN,4),Theta*if,lock,EQ,1,THENtheta=0*endif*if,NN,LT,cycle,THENFINISH/PREP7ASEL,U,,,ALLLSEL,U,,,ALLKSEL,U,,,ALLASEL,A,,,Area*DO,i,1,5,1ASEL,A,,,NOA+i*ENDDOACLEAR,ALLADELE,ALL*DO,i,5,12,1LSEL,A,,,NOL+i*ENDDOLDELE,ALL*DO,i,5,7,1KSEL,A,,,NOK+i*ENDDOKDELE,ALLKSEL,A,,,NOK+3KSCON,NOK+3ALLSEL,ALLTheta3=Theta3+Thetatt=0*endif*endifPOLINES(HPi,HPj)=HPPOLINES(DPi,DPj)=DP*SET,FACTORS(NN,5),appa=apapp=app+aNN=NN+1KP1=NOK+3/REPLO/AUTO,1/REP,FAST*enddo*GET,rotX,KP,KP,LOC,X*GET,rotY,KP,KP,LOC,YLOCAL,12,0,rotX,rotY,0,-Theta3,,,1,1,DSYS,12CSYS,12aplot*ENDIF
On the Crack Extension in Plates Under Plane Loading and Transverse Shear
Mikula Jakub, Numerické modelování šišení trhlin v rámci platnosti LELM. Brno: Vysoké učení technické v Brně, Fakulta strojního inženýrství, 2012. 60s.
全文结束,感谢阅读。