热源开发实例

1. SYSWELD计算的基本原理

传热方程(见高校传热学教材)是一个精确方程,SYSWELD是一个解这个方程的软件,包含完整的前处理、求解、后处理模块。它的基本原理就是解微分方程,求解器类型未知,有兴趣的可以参看它的手册。

传热方程中有个热源项,那是一个函数。SYSWELD将之视为热能密度分布函数,它的全域积分就是总能量输入。

很显然,不同焊接方法,热流密度分布函数都不一样。激光柱、电子束柱形状类似柱面,而埋弧焊类似椭球。由于这种形似,就可以使用数学函数来描述热源。

2. 高斯热源

上文提到了利用数学函数描述热源的基本原理,详细资料参见《焊接热过程与熔池形态(武传松 山东大学 2008 )》第二章的内容。

这本书的2.4.1节给出了高斯热源的形式,这里把它编写成SYSWELD可以识别的函数形式,以它为例,描述SYSWELD热源的开发过程。

3. 热源描述

热源斑点:电弧传给焊件的热能中,有95%落在以rH为半径的加热斑点内。在加热斑点上热流的分布,一般近似用高斯函数描述。

图片1.png

图片2.png

图片3.png

这就是热源的数学函数形式,SYSWELD热源开发要做的,就是用FORTRAN描述它,让SYSWELD在求解过程中调用。

1. SYSWELD对热源的处理

x0y0z0 表示热源中心在由焊接线和参考线确定的局部坐标系(以焊接线开始点为坐标原点,焊接线指向参考线方向为x0,沿着焊接线方向为y0右手定则确定z0)中的坐标。

ay   热源进入方向是沿着z0轴的反方向,ay是热源进入方向沿着y0轴旋转的角度,顺时针为正。假设不旋转。

参考线、焊接线都是在前处理(画图)过程中指定的。

图片4.png

SYSWELD会将热源作上述处理,像这样:

图片5.png

因此要编写热源,绝对坐标xyz和绝不坐标x0y0z0的关系一定要搞清楚,这是高中课本坐标平移部分的内容,不会的需要回去补习。

热原函数的基本形式是这样的(注意已经写成了fortran格式):

F   = Q0 * EXP( - R^2 / R0^2 )

现在要做的就是怎么让这个函数沿着y0轴移动。

如下图所示的这个点,它的热载荷是多少呢?

这个点的局部坐标是(x0y0z0),因此它的绝对坐标是(x-x0y-y0z-z0),

图片6.png

所以,这个点的热载荷为:

F   = Q0 *EXP ( - R^2 / R0^2 )

R^2= ( XX-X0 )^2 + ( YY-Y0-VY*TT )^2

XXYYZZbdfct.fct文件中用来表示坐标的,这里沿用。这是容易理解的:YY-Y0-VY*T中的VY是热源延y0轴的移动速度(注意热源只沿着y0轴移动,这是SYSWELD的处理方法),TT是时间。

R0是认为指定的,它代表了热源作用面的大小。

1. SYSWELD热源的格式

SYSWELD热源是数十行(视复杂程度而定)的fortran代码,前面提到过,它就是描述了一个概率密度函数。在帮助文档的table process章节中详细描述了它的语法,可以自行翻看。

下面开始热源编制(红色的是正式代码,其它的全部是解释和说明)。.

(1) 程序起始

TABLE : GAUSS SOURCE

1 / FORTRAN

FUNCTION F(X)

 

这一段是程序的开始段,是固定的格式,SYSWELD只认这样的格式,“GAUSS SOURCE”是热源的名称,在SYSWELD计算设置中,你能看到它,因此名字要起好,不然调用的时候你不认得。

下面是ID和说明,FUNCTION F(X)表示定义了一个函数,叫做F(x)

(2) 定义变量

热源中的变量有四个:xyzt,因此需要四个变量来存储,和其它任意程序一样,需要提前定义才能使用。

DIMENSION X(4)

      XX = X(1)   ; X 坐标

      YY = X(2)   ; Y坐标

      ZZ = X(3)   ; Z坐标

      TT = X(4)   ; 时间

这段程序中定义了4个变量,DIMENSIONFortran中著名的关键词,用途广泛,不会的请补习。

XXYYZZSYSWELD的绝对坐标(很重要,请一定搞清楚绝对坐标和局部坐标的区别)。

(3) 热源参数设定

公式中,Q0R0是需要指定的,而热源起始点一般都是(0,0,0),所以要这样设置这些参数:

Q0 = 1500    ; 最大热流密度处,为高斯热源的最大值点

      R0 = 1    ; 热源的作用范围

      X0 = 0    ; 热源的起始坐标

      Y0 = 0    ; 热源的起始坐标

      Z0 = 0   ; 热源的起始坐标

      VY = 0   ; 热源的移动速度

      K = -1 常量,计算用的

(4) 计算R^2

R^2计算很简单,前面已经给出了:

R2=( XX-X0 )^2 + ( YY-Y0-VY*T )^2

(5) 计算R0^2

R02 = R0*R0

(6) 计算F

      A    = R2 / R02

      A    = K * A

      A    = EXP( A )

F    = Q0 * A

(7) 结尾

      RETURN

      END

FIN TABLE

(8) 使用

完整程序(红色部分)汇总如下:

LISTE : 

GAUSS SOURCE

FIN LISTE

C

C 12

C

TABLE : GAUSS SOURCE

1 / FORTRAN

FUNCTION F(X)

DIMENSION X(4)

XX = X(1)

YY = X(2)

ZZ = X(3)

TT = X(4)

Q0 = 1500    ; 最大热流密度处,为高斯热源的最大值点

R0 = 1    ; 热源的作用范围

X0 = 0    ; 热源的起始坐标

Y0 = 0    ; 热源的起始坐标

Z0 = 0   ; 热源的起始坐标

VY = 0   ; 热源的移动速度

K = -1 ; 常量,计算用的

R2 = ( XX-X0 )^2 + ( YY-Y0-VY*T )^2

R02 = R0*R0

A = R2 / R02

A = K * A

A = EXP( A )

F = Q0 * A

      RETURN

      END

FIN TABLE前面三行加粗的是fct文件的起始,把上述代码存成myfirstsouce.fct文件,放在bdfct.fct这个文件所在的目录,然后在校核当中调用:

图片7.png

注意在load function文件的时候一定要选择我们保存的myfirstsouce.fct,如果你不怕麻烦,直接把它写在bdfct.fct中也可以。 

(1条)
默认 最新
@卢鸣飞
评论 点赞 1
点赞 2 评论 1 收藏 3
关注