找回密码
 注册
Simdroid-非首页
查看: 256|回复: 2

[子程序] 多焊道焊接

[复制链接]
发表于 2016-5-25 22:32:41 | 显示全部楼层 |阅读模式 来自 湖南长沙
本人最近做了一个法兰-薄壁圆管的多焊道焊接,焊缝的形状和网格如图所示,子程序如下:      SUBROUTINE DFLUX(FLUX,SOL,JSTEP,JINC,TIME,NOEL,NPT,COORDS,JLTYP,
     1                 TEMP,PRESS,SNAME)
C
      INCLUDE 'ABA_PARAM.INC'


      DIMENSION COORDS(3),FLUX(2),TIME(2)
      CHARACTER*80 SNAME
C
      u=20
      i=220
      effi=0.535
      v=1.333
      q=u*i*effi
      r1=48.93
      r2=44.80
      r3=44.45
      vr1=v/r1
      vr2=v/r2
      vr3=v/r3
C
      phi1=vr1*TIME(2)
C
      phi2=vr2*(TIME(2)-230.4)
C
      phi3=vr3*(TIME(2)-441.6)
C
      x=COORDS(1)
      y=COORDS(2)
      z=COORDS(3)
C
      x01=0
      y01=1.45
      z01=r1
C INITIAL COORDINATES OF 1ST PASS      
      x02=0
      y02=8.7
      z02=r2
C INITIAL COORDINATES OF 2ND PASS         
      x03=0
      y03=10
      z03=r3
C INITIAL COORDINATES OF 3RD PASS         
      a1=6
C REAR semiaxis  direction
      b1=0.8
C depth direction
      c1=5.5
C width direction
      aa1=2.5
C FRONT semi axis  direction
      f1=1.4
C heat efficiency of front semi-ellipsoid      
      a2=5
C REAR semiaxis  direction
      b2=6
C depth direction
      c2=4
C width direction
      aa2=2
C FRONT semi axis  direction
      f2=1.4
C heat efficiency of front semi-ellipsoid      
      a3=4
C REAR semiaxis  direction
      b3=0.8
C depth direction
      c3=0.3
C width direction
      aa3=1.5
C FRONT semi axis  direction
      f3=1.4
C heat efficiency of front semi-ellipsoid

      PI=3.1415926      
      beta=0.000
      aacos1=a1/cos(beta)
      cccos1=c1*cos(beta)
      aaacos1=aa1/cos(beta)
      cccos1=c1*cos(beta)
      heat1=6.0*sqrt(3.0)*q*f1/(aa1*b1*c1*PI*sqrt(PI))
      heat2=6.0*sqrt(3.0)*q*(2.0-f1)/(a1*b1*c1*PI*sqrt(PI))
C
      aacos2=a2/cos(beta)
      cccos2=c2*cos(beta)
      aaacos2=aa2/cos(beta)
      cccos2=c*cos(beta)
      heat3=6.0*sqrt(3.0)*q*f2/(aa2*b2*c2*PI*sqrt(PI))
      heat4=6.0*sqrt(3.0)*q*(2.0-f2)/(a2*b2*c2*PI*sqrt(PI))
C      
      aacos3=a3/cos(beta)
      cccos3=c3*cos(beta)
      aaacos3=aa3/cos(beta)
      cccos3=c3*cos(beta)
      heat5=6.0*sqrt(3.0)*q*f3/(aa3*b3*c3*PI*sqrt(PI))
      heat6=6.0*sqrt(3.0)*q*(2.0-f3)/(a3*b3*c3*PI*sqrt(PI))
C
      IF(-60.45.LE.x.LE.0) THEN
      theta1=acos(z/sqrt(x*x+z*z))
      ELSE
      theta1=2*PI-acos(z/sqrt(x*x+z*z))
      ENDIF      
C
      IF(-53.41.LE.x.LE.0) THEN
      theta2=acos(z/sqrt(x*x+z*z))
      ELSE
      theta2=2*PI-acos(z/sqrt(x*x+z*z))
      ENDIF      
C
      IF(-45.15.LE.x.LE.0) THEN
      theta3=acos(z/sqrt(x*x+z*z))
      ELSE
      theta3=2*PI-acos(z/sqrt(x*x+z*z))
      ENDIF      
C      
      deta1=theta1-phi1
      x1=sqrt(x*x+z*z)*sin(deta1)
      y1=1.45
      z1=sqrt(x*x+z*z)*cos(deta1)
C
      deta2=theta2-phi2
      x2=sqrt(x*x+z*z)*sin(deta2)
      y2=8.7
      z2=sqrt(x*x+z*z)*cos(deta2)
C      
      deta3=theta3-phi3
      x3=sqrt(x*x+z*z)*sin(deta3)
      y3=10
      z3=sqrt(x*x+z*z)*cos(deta3)
C
      shape1=exp(-3.0*(x1-x01)**2/aaacos1**2-3.0*(y1-y01)**2/b1**2
     $        -3.0*(z1-z01)**2/cccos1**2)
      shape2=exp(-3.0*(x1-x01)**2/aacos1**2-3.0*(y1-y01)**2/b1**2
     $        -3.0*(z1-z01)**2/cccos1**2)
C      
      shape3=exp(-3.0*(x2-x02)**2/aaacos2**2-3.0*(y2-y02)**2/b2**2
     $        -3.0*(z2-z02)**2/cccos2**2)
      shape4=exp(-3.0*(x2-x02)**2/aacos2**2-3.0*(y2-y02)**2/b2**2
     $        -3.0*(z2-z02)**2/cccos2**2)
C      
      shape5=exp(-3.0*(x3-x03)**2/aaacos3**2-3.0*(y3-y03)**2/b3**2
     $        -3.0*(z3-z03)**2/cccos3**2)
      shape6=exp(-3.0*(x3-x03)**2/aacos3**2-3.0*(y3-y03)**2/b3**2
     $        -3.0*(z3-z03)**2/cccos3**2)      
C     JLTYP=1,表示为体热源
      JLTYP=1
      DO JSTEP=1,64,1     
      IF(theta1.GE.phi1)   THEN
      FLUX(1)=heat1*shape1
C      ELSEIF(JSTEP==1.OR.63.OR.64)                           THEN
C      FLUX(1)=0            
      else
      FLUX(1)=heat2*shape2
      ENDIF
      ENDDO      
C
      DO JSTEP=65,126,1      
      IF(theta2.GE.phi2) THEN
      FLUX(1)=heat3*shape3
C      ELSEIF(JSTEP==125.OR.126)                              THEN
C      FLUX(1)=0           
      else
      FLUX(1)=heat4*shape4
      ENDIF
      ENDDO      
C
      DO JSTEP=127,188,1      
      IF(theta3.GE.phi3)THEN
      FLUX(1)=heat5*shape5
C      ELSEIF(JSTEP==187.OR.188)                              THEN
C      FLUX(1)=0         
      else
      FLUX(1)=heat6*shape6
      ENDIF
      ENDDO      
C      
      RETURN
      END

请群里的大神帮我看看子程序是不是有什么问题,inp文件比较大,没有上传。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2016-10-12 19:09:26 | 显示全部楼层 来自 中国
楼主留个Q吧,小弟也是做焊接的,向您学习一下
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-1 21:32 , Processed in 0.028873 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表