很多人在使用ANSYS模拟焊接和增材制造过程中都面临高斯热源施加的难题,现在我来演示一下如何在ANSYS经典中使用APDL语言施加高斯热源,以及如何实现热源的移动。
打开经典界面,然后选择Parameters→Functions→Define/Edit
然后在弹出的Function Editor中选取你想要输入的热源函数,我这里使用了一个高斯体热源函数,也可以替换成高斯面热源或者双椭球热源,具体函数请自行查找文献
点击Save后,保存后缀名为.func的函数文件,其名称为func11.func
然后退出,重新选择Parameters→Functions→Read From file
选择刚才定义的函数
此时弹出对话框,要求输入函数的名称,及对应的参数的大小,我们定义名称为gauss,两个参数常量分别为qmx=1,r=1,局部坐标系选0就意味着这个函数是在全局坐标系中施加的,可以换成其他已经定义的任何局部坐标系
然后点击List→Files→Log file
然后我们就可以发现在Log file文件里自动生成了函数func11对应的数据表,其是一个维度6*20的Table表,我们在array parameter中也可以查看其具体数据,为什么会生成这段呢,其实就是ANSYS根据你所定义的函数,自动生成了一个Table表做了这个函数的插值,这样系统在计算时就可以根据这个Table表进行对应的索引,生成任何你想要的函数值了。
我们将这段代码复制下来,放在自己的代码里,在每一步热源加载时都调用,就实现了任意热源函数的定义
那么,如何调整输入参数呢,我们注意到生成的这段代码里面的*Set,_FNC_C1(1),qmx,这句话就是定义了生成的参数的大小,通过修改这里的qmx的值,我们可以定义热源函数的功率,通过修改r的值,我们可以修改热源函数的半径。
那么现在我们生成了不动的热源函数,那么如何实现热源函数的移动呢?有两种方法,一种是定义一个随时间变化的函数,比如我们的热源沿X方向移动,那么我就在上面的X项中插入一项V*Time,这样这个热源函数就会是一个随X方向变化的热源函数了。
但是显然,这样只适合单道焊接或熔覆,如果你的扫描路径很复杂,或者是Z字形或涉及到多道焊或熔覆,那么这样写起来的代码可能需要花一点心思定义热源函数,我一般采用的是第二种方法,即定义局部坐标系的方法。我们定义一个局部坐标系11,并写一个循环,让这个循环中11的坐标原点不断变化,而热源函数保持不变,而热源函数是施加在局部坐标系中的,因为局部坐标系相对于全局坐标系的位置在不断变化,那么相应地也就实现了热源函数在全局坐标系中的不断变化了。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删