?? composite_streng_compute.for
字號:
基于經典層合板理論的強度計算(APDL)
下面是我用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(6)=-45
ARG(7)=45
ARG(8)=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(i)=-H/2+(i-1)*Tk
z(N+2-i)=-z(i)
*enddo
*do,i,1,n !給退化剛度系數賦初值
Q11(i)=VV*E1
Q22(i)=VV*E2
Q12(i)=V21*VV*E2
Q66(i)=G12
*enddo
!*****************************************************************
!***********************進入循環計算層合板強度********************
!*****************************************************************
*do,J,1,2*n+1
*if,over,NE,0,then !判斷層合板是否失效
*do,i,1,n
RM=COS(ARG(i))
RN=SIN(ARG(i))
RM2=RM*RM
RM4=RM2*RM2
RN2=RN*RN
RN4=RN2*RN2
RMN=RM*RN
RMN2=RMN*RMN
HQ11(i)=Q11(i)*RM4+2.0*(Q12(i)+2.0*Q66(i))*RMN2+Q22(i)*RN4
HQ12(i)=(Q11(i)+Q22(i)-4.0*Q66(i))*RMN2+Q12(i)*(RM4+RN4)
HQ16(i)=-RMN*RN2*Q22(i)+RM2*RMN*Q11(i)-RMN*(RM2-RN2)*(Q12(i)+2.0*Q66(i))
HQ22(i)=Q11(i)*RN4+2.0*(Q12(i)+2.0*Q66(i))*RMN2+Q22(i)*RM4
HQ26(i)=-RMN*RM2*Q22(i)+RMN*RN2*Q11(i)+RMN*(RM2-RN2)*(Q12(i)+2.0*Q66(i))
HQ66(i)=(Q11(i)+Q22(i)-2*Q12(i))*RMN2+Q66(i)*(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(i)*(z(i+1)-z(i))
A12=A12+HQ12(i)*(z(i+1)-z(i))
A22=A22+HQ22(i)*(z(i+1)-z(i))
A26=A26+HQ26(i)*(z(i+1)-z(i))
A16=A16+HQ16(i)*(z(i+1)-z(i))
A66=A66+HQ66(i)*(z(i+1)-z(i))
B11=B11+0.5*HQ11(i)*(Z(i+1)**2-z(i)**2)
B12=B12+0.5*HQ12(i)*(Z(i+1)**2-z(i)**2)
B22=B22+0.5*HQ22(i)*(Z(i+1)**2-z(i)**2)
B26=B26+0.5*HQ26(i)*(Z(i+1)**2-z(i)**2)
B16=B16+0.5*HQ16(i)*(Z(i+1)**2-z(i)**2)
B66=B66+0.5*HQ66(i)*(Z(i+1)**2-z(i)**2)
D11=D11+1/3*HQ11(i)*(z(i+1)**3-z(i)**3)
D12=D12+1/3*HQ12(i)*(z(i+1)**3-z(i)**3)
D22=D22+1/3*HQ22(i)*(z(i+1)**3-z(i)**3)
D16=D16+1/3*HQ16(i)*(z(i+1)**3-z(i)**3)
D26=D26+1/3*HQ11(i)*(z(i+1)**3-z(i)**3)
D66=D11+1/3*HQ11(i)*(z(i+1)**3-z(i)**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(i))
RN=SIN(ARG(i))
RMN=RM*RN
RM2=RM*RM
RN2=RN*RN
strain1(i)=RM2*STRAINX+RN2*STRAINY+(RMN)*STRAINXY
Strain2(i)=RN2*STRAINX+RM2*STRAINY+(-RMN)*STRAINXY
STrain12(i)=-2*RMN*STRAINX+2*RMN*STRAINY+(RM2-RN2)*STRAINXY
S1(i)=strain1(i)*Q11(i)+strain2(i)*Q12(i) !計算各層的主應力
S2(i)=STrain1(i)*Q12(i)+STRAIN2(i)*Q22(i)
s12(i)=strain12(i)*Q66(i)
a(i)=F11*(s1(i)**2)+F22*(S2(i)**2)
a(i)=a(i)+2*F12*s1(i)*s2(i)+F66*(S12(i)**2)
b(i)=F1*S1(i)+F2*S2(i)
R(i)=-b(i)/(2*a(i))+sqrt(b(i)**2+4*a(i))/(2*a(i))
*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(i),eq,Rmin,then
Q11(i)=Q11(RminN)
Q22(i)=Q22(RminN)
Q12(i)=Q12(RminN)
Q66(i)=Q66(RminN)
*Endif
*Enddo
PX=PX*(RMIN) !外載荷按比例增加繼續加載
PY=PY*(RMIN)
PXY=PXY*(RMIN)
*IF,Rmin,lt,1,THEN !判斷層合板是否能繼續承載
over=0
*endif
*else !全部單層完全破壞,退去循環
*ENDIF
*enddo
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -