下面是我用APDL写的程序。程序基于经典层合板理论。写的比较冗长,希望牛人能够给点意见,有没有哪位大侠用ANSYS做过层合板缺口件强度。希望交流交流程序写的很辛苦。
/prep7
*AFUN,DEG !参数定义为角度
OVER=1 !定义控制结束的参数,OVER=0,循环结束
N=8 !定义总层数
H=1 !定义总厚度
TK=H/N !定义每层的厚度
PX=100 !定义x方向外载荷
PY=0 !定义y方向外载荷
PXY=0 !定义xy方向剪切载荷
*dim,ARG,array,N !定义铺层的角度
ARG(1)=0
ARG(2)=45
ARG(3)=-45
ARG(4)=90
ARG(5)=90
ARG =-45
ARG(7)=45
ARG =0
Strainx=0 !定义中面x方向应变
strainy=0 !定义中面y方向应变
strainxy=0 !定义中面xy方向应变
*dim,strainSTEP,array,2*N !定义各个阶段的应变
*dim,pxstep,array,2*N !定义各个阶段的应力
*dim,strain1,array,N !定义各层x方向主应变
*DIM,Strain2,array,N !定义各层y方向主应变
*dim,Strain12,array,N !定义各层xy方向主应变
*dim,s1,array,N !定义各层X方向主应力
*dim,s2,array,N !定义各层Y方向主应力
*dim,s12,array,N !定义各层XY方向的剪应力
!****************************************************************
!*Define the strength parameter of lamia
!****************************************************************
XT=2250 !定义纤维方向拉伸强度
XC=1600 !定义纤维方向压缩强度
YT=34.5 !定义基体方向拉伸强度
YC=200 !定义基体方向压缩强度
s=110 !定义剪切强度
F1=1/XT-1/XC
F2=1/YT-1/YC
F11=1/(XT*XC)
F22=1/(YT*YC)
F66=1/(S**2)
F12=(-1/2)*sqrt(F11*F22)
*dim,a,array,N !定义系数a
*Dim,b,array,N !定义系数b
*dim,R,array,N !定义各层的强度比
Rmin=1000000 !定义最小强度比
RminN=0 !定义最小强度比层号
!****************************************************************
!*Define the parameter of lamia
!****************************************************************
E1=1.35E5
E2=0.8E4
V21=0.34
V12=E2*V21/E1
G12=4.5E3
VV=1/(1.0-V21*V12)
*dim,Q11,array,N !定义退化刚度系数
*dim,Q22,array,N
*dim,Q12,array,N
*dim,Q66,array,N
*dim,HQ11,array,N !定义偏轴刚度系数
*dim,HQ12,array,n
*dim,HQ16,array,n
*dim,HQ22,array,n
*dim,HQ26,array,n
*dim,HQ66,array,n
*dim,z,array,N+1
*do,i,1,nint(N/2+1-0.5)
z =-H/2+(i-1)*Tk
z(N+2-i)=-z
*enddo
*do,i,1,n !给退化刚度系数赋初值
Q11 =VV*E1
Q22 =VV*E2
Q12 =V21*VV*E2
Q66 =G12
*enddo
!*****************************************************************
!***********************进入循环计算层合板强度********************
!*****************************************************************
*do,J,1,2*n+1
*if,over,NE,0,then !判断层合板是否失效
*do,i,1,n
RM=COS(ARG )
RN=SIN(ARG )
RM2=RM*RM
RM4=RM2*RM2
RN2=RN*RN
RN4=RN2*RN2
RMN=RM*RN
RMN2=RMN*RMN
HQ11 =Q11 *RM4+2.0*(Q12 +2.0*Q66 )*RMN2+Q22 *RN4
HQ12 =(Q11 +Q22 -4.0*Q66 )*RMN2+Q12 *(RM4+RN4)
HQ16 =-RMN*RN2*Q22 +RM2*RMN*Q11 -RMN*(RM2-RN2)*(Q12 +2.0*Q66 )
HQ22 =Q11 *RN4+2.0*(Q12 +2.0*Q66 )*RMN2+Q22 *RM4
HQ26 =-RMN*RM2*Q22 +RMN*RN2*Q11 +RMN*(RM2-RN2)*(Q12 +2.0*Q66 )
HQ66 =(Q11 +Q22 -2*Q12 )*RMN2+Q66 *(RM2-RN2)*(RM2-RN2)
*enddo
!************************************* ****************************
!*Dedine Z Coordinate of Each Lamia
!*****************************************************************
A11=0
A12=0
A22=0
A26=0
A66=0
A16=0
B11=0
B12=0
B22=0
B26=0
B66=0
B16=0
D11=0
D12=0
D22=0
D26=0
D66=0
D16=0
!*****************************************************************
!* Define The Stiffness of Laminate
!*****************************************************************
*Do,i,1,N !积分求解层合板的刚度系数
A11=A11+HQ11 *(z(i+1)-z )
A12=A12+HQ12 *(z(i+1)-z )
A22=A22+HQ22 *(z(i+1)-z )
A26=A26+HQ26 *(z(i+1)-z )
A16=A16+HQ16 *(z(i+1)-z )
A66=A66+HQ66 *(z(i+1)-z )
B11=B11+0.5*HQ11 *(Z(i+1)**2-z **2)
B12=B12+0.5*HQ12 *(Z(i+1)**2-z **2)
B22=B22+0.5*HQ22 *(Z(i+1)**2-z **2)
B26=B26+0.5*HQ26 *(Z(i+1)**2-z **2)
B16=B16+0.5*HQ16 *(Z(i+1)**2-z **2)
B66=B66+0.5*HQ66 *(Z(i+1)**2-z **2)
D11=D11+1/3*HQ11 *(z(i+1)**3-z **3)
D12=D12+1/3*HQ12 *(z(i+1)**3-z **3)
D22=D22+1/3*HQ22 *(z(i+1)**3-z **3)
D16=D16+1/3*HQ16 *(z(i+1)**3-z **3)
D26=D26+1/3*HQ11 *(z(i+1)**3-z **3)
D66=D11+1/3*HQ11 *(z(i+1)**3-z **3)
*enddo
!*****************************************************************
!* Define The roughness of Laminate
!*****************************************************************
DA=(A11*A22*A66+2*A12*A26*A16-A16**2*A22) !求解层合板的柔度系数
DA=DA-A11*A26**2-A12**2*A66
HA11=(A22*A66-A26**2)/DA
HA12=(A16*A26-A12*A66)/DA
HA22=(A11*A66-A16**2)/DA
HA66=(A11*A22-A12**2)/DA
HA16=(A12*A26-A12*A16)/DA
HA26=(A12*A16-A11*A26)/DA
!*****************************************************************
!* Caculate The Strain and stress of each Lamina
!*****************************************************************
STRAINX=HA11*PX+HA12*PY+HA16*PXY !计算层合板的应变
STRAINY=HA12*PX+HA22*PY+HA26*PXY
STRAINXY=HA16*PX+HA26*PY+HA66*PXY
strainstep(j)=STRAINX !记录下各个阶段的应变
pxstep(j)=PX !记录下各个阶段的应力
*Do,i,1,N !计算各层的主应变
RM=COS(ARG )
RN=SIN(ARG )
RMN=RM*RN
RM2=RM*RM
RN2=RN*RN
strain1 =RM2*STRAINX+RN2*STRAINY+(RMN)*STRAINXY
Strain2 =RN2*STRAINX+RM2*STRAINY+(-RMN)*STRAINXY
STrain12 =-2*RMN*STRAINX+2*RMN*STRAINY+(RM2-RN2)*STRAINXY
S1 =strain1 *Q11 +strain2 *Q12 !计算各层的主应力
S2 =STrain1 *Q12 +STRAIN2 *Q22
s12 =strain12 *Q66
a =F11*(s1 **2)+F22*(S2 **2)
a =a +2*F12*s1 *s2 +F66*(S12 **2)
b =F1*S1 +F2*S2
R =-b /(2*a )+sqrt(b **2+4*a )/(2*a )
*enddo
*Vscfun,Rmin,min,R(1) !求出最小强度比
*Vscfun,RminN,lmin,R(1) !求出最小强度所在的层号
*if,s1(RminN)*(Rmin),gt,0,then !判断破坏层的失效模式
*if,s1(RminN)*(Rmin),lt,xt,then !并进行刚度退化
Q22(RminN)=Q22(RminN)*(10e-14)
Q12(RminN)=Q12(RminN)*(10e-14)
Q66(RminN)=Q66(RminN)*(10e-14)
*else
Q22(RminN)=Q22(RminN)*(10e-14)
Q12(RminN)=Q12(RminN)*(10e-14)
Q66(RminN)=Q66(RminN)*(10e-14)
Q11(RminN)=Q11(RminN)*(10e-14)
*ENDIF
*ELSEIF,s1(RminN)*(Rmin),le,0,then
*if,(-1)*s1(RminN)*(Rmin),lt,xc,then
Q22(RminN)=Q22(RminN)*(10e-14)
Q12(RminN)=Q12(RminN)*(10e-14)
Q66(RminN)=Q66(RminN)*(10e-14)
*else
Q22(RminN)=Q22(RminN)*(10e-14)
Q12(RminN)=Q12(RminN)*(10e-14)
Q66(RminN)=Q66(RminN)*(10e-14)
Q11(RminN)=Q11(RminN)*(10e-14)
*endIF
*endif
*do,i,1,n !检查是否还有其他层破坏
*if,R ,eq,Rmin,then
Q11 =Q11(RminN)
Q22 =Q22(RminN)
Q12 =Q12(RminN)
Q66 =Q66(RminN)
*Endif
*Enddo
PX=PX*(RMIN) !外载荷按比例增加继续加载
PY=PY*(RMIN)
PXY=PXY*(RMIN)
*IF,Rmin,lt,1,THEN !判断层合板是否能继续承载
over=0
*endif
*else !全部单层完全破坏,退去循环
*ENDIF
*enddo
|