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

[原创] 基于PCL的螺栓连接快速建模-----多点约束和梁单元法

[复制链接]
发表于 2013-7-4 22:04:25 | 显示全部楼层 |阅读模式 来自 山东济南
        毕业已经快三个月了,好久没有来仿真论坛了,也好久没有来MSC专区了,今天就给大家分享下自己做螺栓连接的方法和经验吧。
        在有限元计算中,螺栓连接处理方式可难可易,简单点可以用节点重合的方式来进行拟合,但是节点拟合认为得提高了连接刚度,对于结果的精确性有较大影响。看到论坛中也有关于螺栓连接讨论的帖子。我就不多说了,我采用的方法是多点约束和梁单元法。 通过梁单元来模拟螺栓杆,然后将各端面节点与梁单元节点通过MPC耦合起来即可。图 1-a为结构中常见的螺栓连接模型,图 1-b为利用多点约束和梁单元法建立的螺栓连接模型。由图 1可以看出螺栓杆由两个梁单元模拟,通过多点约束将连接件上的节点耦合到梁单元的节点上,共由三个MPC组成。
    下面就是利用PCL编程实现快速建模,
建模过程如下:
1、螺栓连接模型的参数化。螺栓连接中需要确定螺栓连接的位置、连接件的厚度、螺栓直径等参数。由图 1可知,通过得到关键点1与关键点2的全局坐标,即可确定螺栓连接的位置及朝向。而后建立Z轴沿着从关键点1到关键点2的局部柱坐标系,R轴与θ 轴只需与Z轴垂直即可,无特别要求。定义关键点1距离结合面距离为h1,关键点1距离关键点2距离为h2,则连接件的厚度分别为h1与h2- h1。螺栓直径则可在单元属性中直接修改梁单元截面即可。对于螺栓连接的预紧力,可简单通过MPC的耦合半径范围来模拟,定义MPC_1的最小半径为r1min,最大半径为r1max,MPC_2的最小半径为r2min,最大半径为r2max; MPC_3的最小半径为r3min,最大半径为r3max,可通过修改最大最小半径来设定MPC的耦合半径范围,进而改变螺栓连接的局部刚度,达到模拟预紧力的效果。综上所述,需要参数化的有三部分组成,关键点1与关键点2坐标、连接件厚度以及MPC耦合半径。
选用记事本格式保存各参数信息,通过编写读入函数将各螺栓连接的参数信息保存到一个数组中,部分文本读入函数为
FUNCTION coord_read ( file_name)
global real bolt_parameter (virtual)
global integer count_num
IF ( TEXT_OPEN( file_name, "or", 0, 0, fid) == 0 ) THEN
count_num = 0
WHILE(TEXT_READ ( fid, "%14G%", 0, zuobiao, "") == 0 )
count_num += 1
bolt_parameter (i, 1:14) = zuobiao
END WHILE
TEXT_CLOSE(fid, "")
end if
END FUNCTION
通过上述程序,可将记事本中的参数信息读入名为bolt_parameter的数组中,螺栓个数信息保存在count_num中。
2、建模过程的PCL实现
通过关键点1与关键点2建立局部柱坐标,使得局部坐标Z轴方向为关键点1到关键点2的矢量方向,然后在局部柱坐标下建立两个梁单元,梁单元长度通过h1与h2控制。而后需要建立梁单元节点与连接面节点的多点耦合约束,通过内置函数list_create_node_att_value即可实现选取特定坐标中指定范围内的节点,利用内置函数fem_create_mpc_nodal2即可自动建立多点约束。最终编写的部分建模程序如下
function coord_creat ()
global real bolt_parameter (virtual)
asm_const_coord_3point( "#", "Coord 0", 2, point1, point2, point3, coord_id )
fem_create_elems_1( "Bar ", "Bar2", "1", "Standard", 3, bar_node1, bar_node2, "", "", "", "", "", "", fem_create_elemen_elems_created )
db_count_mpcs(num)
num=num+1
list_create_node_att_value( coord_values1, [TRUE, FALSE, TRUE], ["range", "equal", "range"], [0.0049999999, 0.0049999999, 0.5], coord_id, "lista", uil_list_create_current_list )
fem_create_mpc_nodal2( num, "RBE2", 0., 2, [TRUE, FALSE], ["0", "0"], [ @
"`lista`","`bar_node1`"], ["UX,UY,UZ,RX,RY,RZ", ""] )
uil_list_a.clear(  )
end function
利用上述函数可实现单个螺栓连接的自动建模。若有多个螺栓连接,则使用For循环语句循环调用即可。
    利用上述程序可以实现螺栓连接得快速建模,举个例子吧。
   
    经过LMS模态锤击实验,结果误差在百分之五之内,此方法建模准确性还是可靠的。
    希望对大家有所帮助,有疑问回复即可O(∩_∩)O~!
   

本帖子中包含更多资源

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

×

评分

1

查看全部评分

发表于 2013-7-6 11:17:37 | 显示全部楼层 来自 贵州六盘水
Simdroid开发平台
学习了!
回复 不支持

使用道具 举报

发表于 2013-7-6 14:17:22 | 显示全部楼层 来自 黑龙江哈尔滨
中间那层MPC是干嘛的?
回复 不支持

使用道具 举报

 楼主| 发表于 2013-7-7 12:04:26 | 显示全部楼层 来自 山东济南
superuirui 发表于 2013-7-6 14:17
中间那层MPC是干嘛的?

中间那层MPC是模拟结合面的,将连接件与被连接件结合面上的部分节点耦合。
回复 不支持

使用道具 举报

发表于 2013-7-7 16:33:29 | 显示全部楼层 来自 河南洛阳
楼主厉害,我每次都要手动建立一组组mpc做螺栓,苦恼死!决定入门下pcl,再来消化你的帖子!
回复 不支持

使用道具 举报

发表于 2013-7-7 18:03:03 | 显示全部楼层 来自 河北沧州
楼主辛苦了~~~~
回复 不支持

使用道具 举报

发表于 2013-7-7 19:52:04 | 显示全部楼层 来自 黑龙江哈尔滨
lygtsuccess 发表于 2013-7-7 12:04
中间那层MPC是模拟结合面的,将连接件与被连接件结合面上的部分节点耦合。 ...

螺栓与接合面间没有直接作用,而你的模型现在有直接作用了啊
回复 不支持

使用道具 举报

 楼主| 发表于 2013-7-8 09:47:40 | 显示全部楼层 来自 欧洲
superuirui 发表于 2013-7-7 19:52
螺栓与接合面间没有直接作用,而你的模型现在有直接作用了啊

这个是的,但是连接件结合面是由作用力的,如果不耦合起来,结合面位置就没有作用力。我中间的是一个bar单元,只受拉压,个人觉得影响不太大,呵呵!
回复 不支持

使用道具 举报

发表于 2013-11-2 16:43:47 | 显示全部楼层 来自 湖北武汉
Element——Connector——Fastener好像可以直接定义螺栓。就是没研究明白Connector Properties里面Stiffness Values(KTi)和Rotational Values(KRi)两个值该专门设定,不知道楼主有没有研究过。
回复 不支持

使用道具 举报

发表于 2014-3-17 22:33:24 | 显示全部楼层 来自 湖北襄阳
这个学习了
回复 不支持

使用道具 举报

发表于 2014-4-21 20:08:15 | 显示全部楼层 来自 广西柳州
看不懂...先马住
回复 不支持

使用道具 举报

发表于 2014-12-11 16:44:34 | 显示全部楼层 来自 上海
谢谢分享,楼主厉害
回复 不支持

使用道具 举报

发表于 2014-12-12 09:56:35 | 显示全部楼层 来自 重庆沙坪坝区
superuirui 发表于 2013-7-7 19:52
螺栓与接合面间没有直接作用,而你的模型现在有直接作用了啊

中间那个mpc要不要呢
回复 不支持

使用道具 举报

发表于 2015-4-5 14:26:18 | 显示全部楼层 来自 天津
感谢楼主分享,请问楼主现在还用patran吗 ,能否帮忙解决下这个问题:http://forum.simwe.com/thread-1123014-1-1.html
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 07:18 , Processed in 0.058541 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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