JingheSu 发表于 2011-11-28 21:13:50

分享一个焊接实例[单元生死+子程序]

这几天看了看版上焊接的帖子,学着做了一个考虑单元生死的单道焊接问题.
现在分享出来供新手们学习.6.10里面死单元在后处理的时候可以自己不显
示了,挺方便的.但是如果模型大的时候建模型可能会很繁琐.自己写的程序
也常常导致cae假死.



具体的参数都是随便取得没有什么太大的意义.有问题欢迎讨论,呵呵.
附上INP+for文件

gaohe 发表于 2011-12-8 17:40:49

JingheSu 发表于 2011-12-8 17:12 static/image/common/back.gif
呵呵,我也是初学者,你这个问题好像前面有人讨论过,应该是不可以。

肯定是可以的,文献中好多人这么做,只不过没有现成的例子分享。 大致的思路是用usdfld, 我最近正在研究

caole421 发表于 2011-11-29 10:47:06

学习下,谢谢!

polaris0925 发表于 2011-12-6 10:08:35

问一下楼主,为什么你的热源加上所有的单元上,而不是加在焊料单元上吗?

JingheSu 发表于 2011-12-6 10:51:48

polaris0925 发表于 2011-12-6 10:08 static/image/common/back.gif
问一下楼主,为什么你的热源加上所有的单元上,而不是加在焊料单元上吗? ...

分布式热源应该是一个等效的热源,而不是实际的热源形式,是为了模拟焊接过程的热源的

lungo999 发表于 2011-12-6 11:50:25

JingheSu 发表于 2011-12-6 10:51 static/image/common/back.gif
分布式热源应该是一个等效的热源,而不是实际的热源形式,是为了模拟焊接过程的热源的 ...

不知道这个模拟要多久的计算时间

JingheSu 发表于 2011-12-6 12:19:57

lungo999 发表于 2011-12-6 11:50 static/image/common/back.gif
不知道这个模拟要多久的计算时间

网格细的话会很久很久。。,我这个只有3000网格

polaris0925 发表于 2011-12-7 15:32:15

JingheSu 发表于 2011-12-6 10:51 static/image/common/back.gif
分布式热源应该是一个等效的热源,而不是实际的热源形式,是为了模拟焊接过程的热源的 ...

你这个例子是个平板,所以你选择整个部分作为等效热源。那如果几何情况是别的情况,比如是个管子,方管,或者园管而不是平面的话,你这个等效热源还可以这么写吗?另外还想请教你一个问题,就是关于子程序的,我看到你的子程序定义了X0,YO,ZO,但是在后面并没有用到,也没有做热源的移动。这个怎么理解呢?谢谢啊

JingheSu 发表于 2011-12-7 16:28:29

polaris0925 发表于 2011-12-7 15:32 static/image/common/back.gif
你这个例子是个平板,所以你选择整个部分作为等效热源。那如果几何情况是别的情况,比如是个管子,方管, ...

我不是做焊接的,仅仅是最近有个东西要用,所以学了学,可能回答的不专业,呵呵
对其他非平板情况,只要你的这个热源尺寸比焊缝尺寸大不了太多应该也可以适用,否则可能得根据实际观察的热源形状修正一下了,比如来个坐标变换。
至于子程序中热源的移动,是靠改变当前时刻的热源中心位置来实现的,初始是(x0,y0,z0),t时刻是(x0+t*V,y0,z0),你看看是不是。

cheng_se 发表于 2011-12-8 16:44:26

polaris0925 发表于 2011-12-7 15:32 static/image/common/back.gif
你这个例子是个平板,所以你选择整个部分作为等效热源。那如果几何情况是别的情况,比如是个管子,方管, ...

x0,y0,z0作用是定义焊接初始点,只要定义了就在全局坐标中用到,不需要在公式中重现

cheng_se 发表于 2011-12-8 16:46:25

本帖最后由 cheng_se 于 2011-12-8 16:48 编辑

JingheSu 发表于 2011-12-7 16:28 http://forum.simwe.com/static/image/common/back.gif
我不是做焊接的,仅仅是最近有个东西要用,所以学了学,可能回答的不专业,呵呵
对其他非平板情况,只要 ...

谢谢版主邀请。我这里有个球形焊接程序,版主可以看看,它里边的热源路线设置是非规则焊接的一个基础

gaohe 发表于 2011-12-8 17:06:09

简单看了下楼主的模型,你用的是modelchange 来激活单元的吧? 这样的话对于大模型 或者multi-pass welding的话 需要太多的step
我想请教楼主, 有没有可能通过子程序来控制单元的生死。比如只有满足与移动torch特定距离的内的单元被激活?我写字程序方面比较弱 希望楼主赐教

JingheSu 发表于 2011-12-8 17:09:15

cheng_se 发表于 2011-12-8 16:46 static/image/common/back.gif
谢谢版主邀请。我这里有个球形焊接程序,版主可以看看,它里边的热源路线设置是非规则焊接的一个基础 ...

实际上我对非平板焊接热源如何处理很是不懂,多谢提供例子,我再看看。
另外想了解一下,aba中焊接模拟相变和潜热是如何考虑的?

JingheSu 发表于 2011-12-8 17:12:23

gaohe 发表于 2011-12-8 17:06 static/image/common/back.gif
简单看了下楼主的模型,你用的是modelchange 来激活单元的吧? 这样的话对于大模型 或者multi-pass welding ...

呵呵,我也是初学者,你这个问题好像前面有人讨论过,应该是不可以。

gaohe 发表于 2011-12-8 17:16:23

JingheSu 发表于 2011-12-8 17:09 static/image/common/back.gif
实际上我对非平板焊接热源如何处理很是不懂,多谢提供例子,我再看看。
另外想了解一下,aba中焊接模拟相 ...

固液相变的话,材料属性可以定义。固液温度和潜热的话,有专门的软件可以算,我用的事JMat Pro。
固固相变的话,要写子程序。把CCT表放进去

JingheSu 发表于 2011-12-8 19:01:30

本帖最后由 JingheSu 于 2011-12-8 19:01 编辑

gaohe 发表于 2011-12-8 17:40 static/image/common/back.gif
肯定是可以的,文献中好多人这么做,只不过没有现成的例子分享。 大致的思路是用usdfld, 我最近正在研究 ...
其实还有一个问题,就是如果可以用子程序控制单元的生死,边界条件的变化应该也需要控制吧?

gaohe 发表于 2011-12-8 20:22:20

本帖最后由 gaohe 于 2011-12-8 20:23 编辑

JingheSu 发表于 2011-12-8 19:01 static/image/common/back.gif
其实还有一个问题,就是如果可以用子程序控制单元的生死,边界条件的变化应该也需要控制吧? ...
我的想法是这样的。母体还是定义钢铁属性。 filler metal 的材料属性 我想定义一个梯度,比如在torch正下方到沿着焊接方向10mm之内。10mm之外filler metal材料没有属性。这个在UI里用解析场就可以很容易的做到,关键是怎么让这个梯度属性随着时间(也就是torch的移动)而移动,我还在想。这个其实可以通过定义给材料属性几个variable来实现。
实在不行,只能靠写子程序了。但是我编程比较差,呵呵

JingheSu 发表于 2011-12-8 21:18:13

gaohe 发表于 2011-12-8 20:22 static/image/common/back.gif
我的想法是这样的。母体还是定义钢铁属性。 filler metal 的材料属性 我想定义一个梯度,比如在torch正下 ...

我的意思是热边界条件,比如焊接过程中焊缝两侧开始需要定义边界,最后由于已经是实体的内部而不需要定义热边界了

gaohe 发表于 2011-12-9 16:50:04

我贴了个关于激活材料属性的子程序,在另一个帖子,如果您感兴趣,请移步一起讨论。
http://forum.simwe.com/forum.php?mod=viewthread&tid=999435&pid=2649508&page=1&extra=#pid2649508

polaris0925 发表于 2011-12-11 15:25:09

本帖最后由 polaris0925 于 2011-12-11 15:30 编辑

JingheSu 发表于 2011-12-7 16:28 http://forum.simwe.com/static/image/common/back.gif
我不是做焊接的,仅仅是最近有个东西要用,所以学了学,可能回答的不专业,呵呵
对其他非平板情况,只要 ...

我也觉得应该是这样,可是在程序中好像没有体现热源中心位置呀。在你的程序里面,X0,Y0和Z0是表示焊接初始位置吗?如果那样的话,热源中心位置是X,Y,Z把。可是问题是在程序里面变量t(时间)都没有用到,这是为什么?这样子怎么让热源随着焊料的增加而移动呢?你看看程序
页: [1] 2 3 4 5
查看完整版本: 分享一个焊接实例[单元生死+子程序]