热源开发实例
1. SYSWELD计算的基本原理
传热方程(见高校传热学教材)是一个精确方程,SYSWELD是一个解这个方程的软件,包含完整的前处理、求解、后处理模块。它的基本原理就是解微分方程,求解器类型未知,有兴趣的可以参看它的手册。
传热方程中有个热源项,那是一个函数。SYSWELD将之视为热能密度分布函数,它的全域积分就是总能量输入。
很显然,不同焊接方法,热流密度分布函数都不一样。激光柱、电子束柱形状类似柱面,而埋弧焊类似椭球。由于这种形似,就可以使用数学函数来描述热源。
2. 高斯热源
上文提到了利用数学函数描述热源的基本原理,详细资料参见《焊接热过程与熔池形态(武传松 山东大学 2008 )》第二章的内容。
这本书的2.4.1节给出了高斯热源的形式,这里把它编写成SYSWELD可以识别的函数形式,以它为例,描述SYSWELD热源的开发过程。
3. 热源描述
热源斑点:电弧传给焊件的热能中,有95%落在以rH为半径的加热斑点内。在加热斑点上热流的分布,一般近似用高斯函数描述。
这就是热源的数学函数形式,SYSWELD热源开发要做的,就是用FORTRAN描述它,让SYSWELD在求解过程中调用。
1. SYSWELD对热源的处理
x0,y0,z0 表示热源中心在由焊接线和参考线确定的局部坐标系(以焊接线开始点为坐标原点,焊接线指向参考线方向为x0,沿着焊接线方向为y0,右手定则确定z0轴)中的坐标。
ay 热源进入方向是沿着z0轴的反方向,ay是热源进入方向沿着y0轴旋转的角度,顺时针为正。假设不旋转。
参考线、焊接线都是在前处理(画图)过程中指定的。
SYSWELD会将热源作上述处理,像这样:
因此要编写热源,绝对坐标x、y、z和绝不坐标x0、y0、z0的关系一定要搞清楚,这是高中课本坐标平移部分的内容,不会的需要回去补习。
热原函数的基本形式是这样的(注意已经写成了fortran格式):
F = Q0 * EXP( - R^2 / R0^2 )
现在要做的就是怎么让这个函数沿着y0轴移动。
如下图所示的这个点,它的热载荷是多少呢?
这个点的局部坐标是(x0,y0,z0),因此它的绝对坐标是(x-x0,y-y0,z-z0),
所以,这个点的热载荷为:
F = Q0 *EXP ( - R^2 / R0^2 )
且R^2= ( XX-X0 )^2 + ( YY-Y0-VY*TT )^2
XX、YY、ZZ是bdfct.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) 定义变量
热源中的变量有四个:x、y、z、t,因此需要四个变量来存储,和其它任意程序一样,需要提前定义才能使用。
DIMENSION X(4)
XX = X(1) ; X 坐标
YY = X(2) ; Y坐标
ZZ = X(3) ; Z坐标
TT = X(4) ; 时间
这段程序中定义了4个变量,DIMENSION是Fortran中著名的关键词,用途广泛,不会的请补习。
XX、YY、ZZ是SYSWELD的绝对坐标(很重要,请一定搞清楚绝对坐标和局部坐标的区别)。
(3) 热源参数设定
公式中,Q0、R0是需要指定的,而热源起始点一般都是(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这个文件所在的目录,然后在校核当中调用:
注意在load function文件的时候一定要选择我们保存的myfirstsouce.fct,如果你不怕麻烦,直接把它写在bdfct.fct中也可以。