⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 composite_streng_compute.for

📁 复合材料强度计算的程序
💻 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 + -