前言
高循环疲劳,也称为高周疲劳,即作用于零件、构件的应力水平较低 ,破坏循环次数般高于104~105的疲劳 ,弹簧、传动轴等的疲劳属此类。右高循环疲劳引起的破坏可分为三个阶段:裂纹成核、裂纹扩展和最终的脆性破坏。
现有研究一般集中在第二阶段——稳定裂纹扩展过程。在线弹性断裂力学的假设下,裂纹扩展可以用Paris-Erdogan定律(循环次数与应力强度因子之间的对数线性关系)来描述。预测具有预先存在裂纹的样品的寿命(循环次数)或对裂纹路径的预测,这对于评估工程结构受到循环加载的条件至关重要,例如轴,开关等。
本文可用于任意二维几何形状的裂纹扩展分析,也可以在次基础上进一步扩展到3维裂纹扩展分析,采用的理论是基于线弹性断裂力学的假设。
在这种方法中,在每个时间步(裂纹增量)对裂纹表面进行显式建模,并且在每个时间步(裂纹扩展区)也进行(重新)网格划分。虽然重网格方法在模拟裂纹扩展时可能不是很有效(就计算时间而言),但它确实可以完成工作。
每次迭代时的裂纹角由裂纹尖端附近的位移场计算得到的应力强度因子KI和KII来预测[Erdogan等,1963],(通过将单元节点移至单元长度的四分之一来模拟裂纹奇异性的特殊单元属性):
其中应力强度因子由裂纹尖端节点位移计算
平面应力:
平面应变:
演示案例
以下图2D基本 模型为例,含裂纹预计会扩展的区域,如下图中以红色线为边缘的区域,该区域将自动划分网格。裂纹萌生的关键点 (KP ) 和预期的最终裂纹位置 (KPe) 必须定义在边界上而不是内部。裂纹扩展区的大小和预期最终裂纹位置关键点的选择不影响结果;然而,它们会影响解决方案的效率(重新划分网格的时间)和稳定性。
文后附上了所有的命令流,关于命令流的理解,读者可以后台咨询作者。
该命令流的难点在于:
|
|
FINISH
/clear
/prep7
L = 62.5
H = 60.0
R1 = 6.0
R2 = 4.0
k
k,,L
k,,L,H
k,,,H
l,1,2
l,2,3
l,3,4
l,4,1
k,,L-27.5,H/2+9
k,,,H/2+1.5
k,,L-37.5-1.5,H/2+1.5
k,,L-37.5-1.5,H/2-1.5
k,,,H/2-1.5
! 预计会扩展的区域
l,25,26
l,26,27
l,27,28
l,28,29
l,29,25
l,26,23
l,28,19
k,,L-15,H/2+9
l,18,30
l,30,21
! 通过线创建面
al,1,2,3,4
al,21,22,23,24,25
al,22,23,27,14,28,29,20,19,26
al,19,20,17,18
al,15,16,13,14
al,5,6,7,8
al,9,10,11,12
!面分割
!洞
adele,6
adele,4
adele,5
adele,2
ET,1,82
!平面应变
! 各向弹性
MP,EX,1,210000
MP,PRXY,1,0.3
LESIZE,27,1
LESIZE,14,1
LESIZE,28,1
LESIZE,29,1
LESIZE,20,1
LESIZE,19,1
LESIZE,26,1
LESIZE,22,1
LESIZE,23,1
LESIZE,1,5
LESIZE,2,5
LESIZE,3,5
LESIZE,31,5
LESIZE,30,5
AMESH,8
! 裂纹扩展区域的网格会自动划分
! boundary conditions
DK,14,,,,0,UX
DK,12,,,,0,UX
DK,12,,,,0,UY
!100 N force
!线分割
22, 0.5
23, 0.5
14, 0.01
LDELE,25
!裂纹扩展及网格自动划分
!!最大切应力准则
CSYS,
/Prep7
!! 以下参数可以自行调整
Pi=3.1415926535
Epsilon=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=1
NN=1
condition=1
t=1
k=1
HP=0
DP=0
*GET,poisson,PRXY,1,TEMP
*GET,EMX,EX,1,TEMP
GMX=EMX/2/(1+poisson)
*if,_BUTTON,EQ,0,THEN !若弹出框OK按钮被按下, _BUTTON=0,反之_BUTTON=1
CSWPLA,33,0,1,1 !定义局部坐标系
app=a
ToC='MTS criterion'
Theta3=Theta
appx=0
appy=0
*do,j,1,cycle,1
appx=a*cos(Theta3*Pi/180)+appx
appy=a*sin(Theta3*Pi/180)+appy
!循环,裂纹增量的形成
ALLSEL,ALL
rKSCON=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,THEN
KP=k
*endif
*GET,nextKP,KP,minKP,NXTH
minKP=nextKP
k=k+1
*ENDDO
k=1
*get,minKPe,KP,0,num,min
*DO,i,1,NOK,1
*if,minKPe,EQ,KPe,THEN
KPe=k
*endif
*GET,nextKP,KP,minKPe,NXTH
minKPe=nextKP
k=k+1
*ENDDO
k=1
*get,minAREA,AREA,0,num,min
AREA=k
*endif
*GET,nextAREA,AREA,minAREA,NXTH
minAREA=nextAREA
k=k+1
*ENDDO
k=1
NUMCMP,ALL !压缩编号
KP1=KP
ASEL,S,,,Area
LSLA,S
KSLL,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, , ,2
t=t+1
*endif
*enddo
t=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, , ,2
t=t+1
*endif
*enddo
t=1
ALLSEL,ALL
*do,i,1,NOK1,1
*if,POKEYPOINTS(i,1),EQ,KP,THEN
AGEN, ,All, , ,-POKEYPOINTS(i,2),-POKEYPOINTS(i,3),0, , ,1
*endif
*enddo
ADELE,Area
*ENDIF
xT=a*cos(Theta*Pi/180) !创建裂缝及其周围区域
yT=a*sin(Theta*Pi/180)
K,NOK+1,0,0
K,NOK+2,(1-Ra)*a*cos(Theta*Pi/180),(1-Ra)*a*sin(Theta*Pi/180)
K,NOK+3,xT,yT
K,NOK+4,(1-Ra)*a*cos(Theta*Pi/180),(1-Ra)*a*sin(Theta*Pi/180)
l,NOK+1,NOK+4
l,KP1,NOK+2
l,NOK+4,NOK+3
l,NOK+2,NOK+3
k,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*a
LARC,NOK+7,NOK+2,NOK+3,Ra*a
LARC,NOK+5,NOK+6,NOK+3,Ra*a
LARC,NOK+6,NOK+7,NOK+3,Ra*a
l,NOK+5,NOK+3
l,NOK+6,NOK+3
l,NOK+7,NOK+3
l,NOK+6,KPe
al,NOL+3,NOL+5,NOL+9
al,NOL+9,NOL+7,NOL+10
al,NOL+10,NOL+11,NOL+8
al,NOL+6,NOL+4,NOL+11
*if,tt,EQ,1,THEN
*do,i,1,NOK1,1 !确定KP和KPe之间的角度,即上、下地下之间的间隔
*if,POKEYPOINTS(i,1),EQ,KP,THEN
KPx=POKEYPOINTS(i,2)
KPy=POKEYPOINTS(i,3)
*endif
*if,POKEYPOINTS(i,1),EQ,KPe,THEN
KPex=POKEYPOINTS(i,2)
KPey=POKEYPOINTS(i,3)
*endif
*enddo
*if,KPex-KPx,EQ,0,THEN
Theta2=Pi/2
*else
K=(KPey-KPy)/(KPex-KPx)
Theta2=atan(K)
*endif
*if,KPex,LT,KPx,THEN
*if,KPey,GT,KPy,THEN
Theta2=Pi/2+abs(Theta2)
*endif
*if,KPey,LT,KPy,THEN
Theta2=Pi+abs(Theta2)
*endif
*endif
*if,KPex,GT,KPx,THEN
*if,KPey,LT,KPy,THEN
Theta2=3/2*Pi+abs(Theta2)
*endif
*endif
*if,KPex,EQ,KPx,THEN
*if,KPey,LT,KPy,THEN
Theta2=3/2*Pi
*endif
*endif
*if,KPey,EQ,KPy,THEN
*if,KPex,LT,KPe,THEN
Theta2=Pi
*endif
*endif
ext=-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,THEN
ext=-POKEYPOINTS(i,2)*sin(Theta2)+POKEYPOINTS(i,3)*cos(Theta2)
KPext=POKEYPOINTS(i,1)
*endif
*enddo
*endif
k=0
i=1
c=0
t=1
KPi=KP
condition=1
LSEL,U,,,ALL
*dowhile,condition
*if,POLINES(i,2),EQ,KPi,THEN
*if,POLINES(i,1),NE,C,THEN
LSEL,A, , ,POLINES(i,1)
KPi=POLINES(i,3)
C=POLINES(i,1)
i=0
t=t+1
*endif
*endif
*if,POLINES(i,3),EQ,KPi,THEN
*if,POLINES(i,1),NE,C,THEN
LSEL,A, , ,POLINES(i,1)
KPi=POLINES(i,2)
C=POLINES(i,1)
i=0
t=t+1
*endif
*endif
i=i+1
*if,KPi,EQ,KPe,THEN
condition=0
*endif
*enddo
KSLL,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,THEN
ldele,POLINES(i,1)
KSEL,A,,,NOK+1
l,POLINES(i,3),NOK+1
HP=POLINES(i,2)
HPi=i
HPj=2
POLINES(i,2)=NOK+1
*endif
*endif
*if,POLINES(i,3),EQ,KP,THEN
*get,STATUS,LINE,POLINES(i,1),LSEL
*if,STATUS,EQ,1,THEN
ldele,POLINES(i,1)
KSEL,A,,,NOK+1
l,POLINES(i,2),NOK+1
HP=POLINES(i,3)
HPi=i
HPj=3
POLINES(i,3)=NOK+1
*endif
*endif
*enddo
*endif
k=1
*else
ww=0
k=2
*do,i,1,NOL1,1
*if,POLINES(i,2),EQ,KP,THEN
*if,ww,EQ,0,THEN
DP=POLINES(i,2)
DPi=i
DPj=2
POLINES(i,2)=NOK+1
ww=1
*endif
*endif
*if,ww,EQ,0,THEN
*if,POLINES(i,3),EQ,KP,THEN
DP=POLINES(i,3)
DPi=i
DPj=3
POLINES(i,3)=NOK+1
ww=1
*endif
*endif
*enddo
*endif
*if,STATUS,EQ,1,THEN
LSEL,A,,,NOL+k
LSEL,A,,,NOL+k+4
LSEL,A,,,NOL+k+6
LSEL,A,,,NOL+12
*if,tt,NE,1,THEN
*do,q,1,NN-1,1
LSEL,A,,,NOL-(4*q-3)
LSEL,A,,,NOL-(4*q-1)
*enddo
*endif
*if,tt,NE,1,THEN
*if,k,EQ,1,THEN
ldele,NOL-1
KSEL,A,,,NOK
KSEL,A,,,NOK+1
l,NOK,NOK+1
POLINES(HPi,HPj)=NOK+1
*endif
*endif
*else
LSEL,A,,,NOL+k
LSEL,A,,,NOL+k+4
LSEL,A,,,NOL+k+6
LSEL,A,,,NOL+12
*if,tt,NE,1,THEN
*do,q,1,NN-1,1
LSEL,A,,,NOL-(4*q-4)
LSEL,A,,,NOL-(4*q-2)
*enddo
*endif
*if,tt,NE,1,THEN
*if,k,EQ,1,THEN
ldele,NOL-1
KSEL,A,,,NOK
KSEL,A,,,NOK+1
l,NOK,NOK+1
POLINES(HPi,HPj)=NOK+1
*endif
*endif
*endif
al,all !
k=0
i=0
c=0
t=1
KPi=KP
condition=1
LSEL,U,,,ALL
*dowhile,condition
*if,POLINES(i,2),EQ,KPi,THEN
*if,POLINES(i,1),NE,C,THEN
LSEL,A, , ,POLINES(i,1)
KPi=POLINES(i,3)
C=POLINES(i,1)
i=0
t=t+1
*endif
*endif
*if,POLINES(i,3),EQ,KPi,THEN
*if,POLINES(i,1),NE,C,THEN
LSEL,A, , ,POLINES(i,1)
KPi=POLINES(i,2)
C=POLINES(i,1)
i=0
t=t+1
*endif
*endif
i=i+1
*if,KPi,EQ,KPe,THEN
condition=0
*endif
*enddo
KSLL,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,THEN
ldele,POLINES(i,1)
KSEL,A,,,NOK+1
l,POLINES(i,3),NOK+1
HP=POLINES(i,2)
HPi=i
HPj=2
POLINES(i,2)=NOK+1
*endif
*endif
*if,POLINES(i,3),EQ,KP,THEN
*get,STATUS,LINE,POLINES(i,1),LSEL
*if,STATUS,EQ,1,THEN
ldele,POLINES(i,1)
KSEL,A,,,NOK+1
l,POLINES(i,2),NOK+1
HP=POLINES(i,3)
HPi=i
HPj=3
POLINES(i,3)=NOK+1
*endif
*endif
*enddo
*endif
k=1
*else
k=2
*endif
*if,STATUS,EQ,1,THEN
LSEL,A,,,NOL+k
LSEL,A,,,NOL+k+4
LSEL,A,,,NOL+k+6
LSEL,A,,,NOL+12
*if,tt,NE,1,THEN
*do,q,1,NN-1,1
LSEL,A,,,NOL-(4*q-3)
LSEL,A,,,NOL-(4*q-1)
*enddo
*endif
*if,tt,NE,1,THEN
*if,k,EQ,1,THEN
ldele,NOL-1
KSEL,A,,,NOK
KSEL,A,,,NOK+1
l,NOK,NOK+1
POLINES(HPi,HPj)=NOK+1
*endif
*endif
*else
LSEL,A,,,NOL+k
LSEL,A,,,NOL+k+4
LSEL,A,,,NOL+k+6
LSEL,A,,,NOL+12
*if,tt,NE,1,THEN
*do,q,1,NN-1,1
LSEL,A,,,NOL-(4*q-4)
LSEL,A,,,NOL-(4*q-2)
*enddo
*endif
*if,tt,NE,1,THEN
*if,k,EQ,1,THEN
ldele,NOL-1
KSEL,A,,,NOK
KSEL,A,,,NOK+1
l,NOK,NOK+1
POLINES(HPi,HPj)=NOK+1
*endif
*endif
*endif
al,all !
allsel,all
*GET,mat,AREA,AREA,ATTR,MAT !检测材料中裂纹扩展区域
GPLOT
/AUTO,1
/REP,FAST
FINISH
/PREP7
KSCON,NOK+3,rKSCON,1 !创建网格
*GET,LLength,LINE,NOL+12,LENG
LESIZE,NOL+12,,,nles !在连接 KP 和 KPe 的线上创建元素
AESIZE,NOA+1,Ra*a/10 !在裂纹的圆形区域上网格大小
AESIZE,NOA+2,Ra*a/10
AESIZE,NOA+3,Ra*a/10
AESIZE,Area,Ra*a/10
!MSHAPE,1,2D
AMESH,NOA+1
AMESH,NOA+2
AMESH,NOA+3
AMESH,Area
MSHAPE,1,2D !
AMESH,NOA+4
AMESH,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
!*enddo
clocal,33,,,,,-Theta3
CSYS,33
NROTAT,all
CSYS,0
allsel,all
AGEN,,all,,,-a*cos(Theta*Pi/180),-a*sin(Theta*Pi/180),0,,,1
CSKP,11,0,NOK+3,NOK+6,NOK+5,1,1
ATRAN,0,all,,,,0,1
DSYS,0
CSYS,0
/sol
NNNN=1
*if,j,EQ,CYCLE,THEN
NNNN=5
*endif
NSUBS,NNNN
OUTRES,all,all
solve
FINISH
/POST1
SET,LAST
PATH,K,5,30,20
KSEL,S,,,NOK+3
NSLK,S
*get,nextHN,NODE,,NXTH
PPATH,1,nextHN
LSELE,S,,,NOL+4
NSLL,S,1
NSEL,R,LOC,X,-rKSCON/2,-rKSCON/8
*get,nextHN,NODE,,NXTH
*get,DPu2,NODE,nextHN,U,X
*get,DPv2,NODE,nextHN,U,Y
PPATH,4,nextHN
LSELE,S,,,NOL+4
NSLL,S,1
NSEL,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,Y
PPATH,5,nextHN
LSELE,S,,,NOL+3
NSLL,S,1
NSEL,R,LOC,X,-rKSCON/2,-rKSCON/8
*get,nextHN,NODE,,NXTH
*get,DPu4,NODE,nextHN,U,X
*get,DPv4,NODE,nextHN,U,Y
PPATH,2,nextHN
LSELE,S,,,NOL+3
NSLL,S,1
NSEL,R,LOC,X,-rKSCON,-rKSCON/1.5
*get,nextHN,NODE,,NXTH
*get,DPu5,NODE,nextHN,U,X
*get,DPv5,NODE,nextHN,U,Y
PPATH,3,nextHN
Lnode=abs(DPu3x)
allsell,all
EPLOT
KCALC,0,-mat,3,0
*GET,KI,KCAL,,K,1
*GET,KII,KCAL,,K,2
DPP=(4*(DPu4-DPu2)-(DPu5-DPu3)/2)
*if,DPP,LT,0,THEN
KII=-1*KII
*endif
KIt=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+10
NSLL,S,1
NSEL,U,LOC,X,-Ra*a/10,Ra*a/10
NSEL,R,S,X,,,,0
*do,ij,1,20,1
NODn=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),NODu
NSEL,U,,,NODn
*enddo
DETH1=0
*do,ij,1,20,1
DETH1=DETH1+TSTRESSA(ij,4)
*enddo
DETH2=0
*do,ij,1,20,1
DETH2=DETH2+TSTRESSA(ij,4)**2
*enddo
DETH3=0
*do,ij,1,20,1
DETH3=DETH3+TSTRESSA(ij,3)
*enddo
DETH=20*DETH2-DETH1**2
numerator1=0
*do,ij,1,20,1
numerator1=numerator1+TSTRESSA(ij,4)*TSTRESSA(ij,3)
*enddo
b2=(20*numerator1-DETH1*DETH3)/DETH
sigmaxxyy=0
*do,ij,1,20,1
sigmaxxyy=sigmaxxyy+TSTRESSA(ij,3)
*enddo
sigmaxxyy=sigmaxxyy/20
positiont=0
*do,ij,1,20,1
positiont=positiont+TSTRESSA(ij,4)
*enddo
positiont=positiont/20
Tstress=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),appy
h1=-Pi/3
h2=Pi/3
pocetk=-(1+(log(epsilon/Pi))/log(2))
*do,mb,1,pocetk,1
fy1=KI*sin(h1)+KII*(3*cos(h1)-1)
fy2=KI*sin(h2)+KII*(3*cos(h2)-1)
s=(h2+h1)/2
fys=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),then
h2=s
*else
h1=s
*endif
*endif
*endif
*enddo
solution=(h1+h2)/2
theta=solution*180/Pi
*SET,FACTORS(NN,4),Theta
*if,lock,EQ,1,THEN
theta=0
*endif
*if,NN,LT,cycle,THEN
FINISH
/PREP7
ASEL,U,,,ALL
LSEL,U,,,ALL
KSEL,U,,,ALL
ASEL,A,,,Area
*DO,i,1,5,1
ASEL,A,,,NOA+i
*ENDDO
ACLEAR,ALL
ADELE,ALL
*DO,i,5,12,1
LSEL,A,,,NOL+i
*ENDDO
LDELE,ALL
*DO,i,5,7,1
KSEL,A,,,NOK+i
*ENDDO
KDELE,ALL
KSEL,A,,,NOK+3
KSCON,NOK+3
ALLSEL,ALL
Theta3=Theta3+Theta
tt=0
*endif
*endif
POLINES(HPi,HPj)=HP
POLINES(DPi,DPj)=DP
*SET,FACTORS(NN,5),app
a=ap
app=app+a
NN=NN+1
KP1=NOK+3
/REPLO
/AUTO,1
/REP,FAST
*enddo
*GET,rotX,KP,KP,LOC,X
*GET,rotY,KP,KP,LOC,Y
LOCAL,12,0,rotX,rotY,0,-Theta3,,,1,1,
DSYS,12
CSYS,12
aplot
*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.
全文结束,感谢阅读。