注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

htbbzzg的博客

与朋友们分享 CAE 资料和经验

 
 
 

日志

 
 

【转载】在 ANSYS/Ls-dyna 中实现物体按指定轨迹运动(其他载荷的添加类似)  

2013-07-30 07:11:50|  分类: Ls-Dyna 资料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1、 准备工作
1.1 确定施加载荷对象
    确定欲施加位移载荷的实体,获取实体的 part ID;
    如果是多个实体,可以通过定义一个part 集,这样在添加载荷时可以节省不少时间。
    如果位移载荷是作用在多个节点上,必须定义节点集,关于节点集的定义可以用命令 cm,具体请查阅 help。
1.2 确定轨迹。
    首先分析你的运动类型,是一维运动问题,或者是二维平面运动问题,抑或三维空间运动问题。

    其次,获取物体在不同时间段的位移。

    第三,约束多余的自由度。

    一方面保证物体确实按设定轨迹运动,防止由于碰撞等改变物体的轨迹;另一方面节省存储空间,提高求解速度。
1.3 适当简化问题
    如果对物体的变形、应力等不关心,可以将该物体定义为刚体,提高求解速度。定义刚体可以用命令 edmp,rigid,,具体用法请查阅 help。
2、 定义数组
    如果是一维运动问题,比如沿 x  轴运动,可以通过两组参数来定义运动,并可以约束该物体在其他方向的自由度(包括转动)。
    或者不约束其他方向的自由度,通过数组定义物体在其他方向的位移和转动均为 0,即不随时间变化。这个方法相比之下比约束自由度麻烦些。而且我认为比上一种方法的计算量要大,会导致计算速度变慢。
    我们采用约束自由度,通过定义数组来实现物体的运动。两个数组分别为时间数组和 x 轴方向的位移数组。
    定义数组可以用如下命令。
        *dim, time, ,LengthOfTime
        *dim, Xdisp, ,LengthOfXdisp
        Time(1)=0,1,2,3
        Xdisp(1)=5,10,-5,2
    其中 time 和 Xdisp 是数组名,可以根据各自喜好设定,最好是能表示数组的含义;
    LenthOfTime 和 LengthOfXdisp 分别是t ime 和 Xdisp 数组的长度,两者必须相等,也就是说时间和位移是一一对应的关系。位移为负值表示物体运动方向与坐标轴方向相反。
    如果是二维运动问题,需要再定义一个数组,即随时间变化沿 Y  轴方向运动的轨迹。
    同样可以通过与上面类似的命令来实现。时间数组可以与定义 x  轴运动时一致,也可以另外再定义。若采用相同的时间数组,y  轴方向的位移数组的长度就必须和 x  轴方向的一致。若两者长度不一致,可以另外再定义一个时间数组。这里采用与 x 轴运动一致的时间数组。
        *dim,Ydisp ,LengthOfYdisp
        Ydisp(1)=0,8,-4,0
    对于三维问题依次类推。
    需要说明的几点:
        1 如果数组比较大,可以写在另外的 txt 文件中,在定义数组名之后添加载荷曲线之前通过 /input,命令读入 ansys 中就可以了。需要注意的是,定义的数组名称和 txt  文件中的数组名称必须一一对应;
        2 如果位移变化比较复杂,比如说不断来回方向运动,那么时间数组的步长要尽可能的小。因为 lsdyna 会根据数组进行插值,如果时间数组步长较大,插值出来的位移数组不一定完全是你定义的载荷曲线,会有些偏差,可能会影响到物体运动迹。

    在定义其他曲线时也是一样的道理,比如定义应力-应变关系曲线时,尽可能的使数组的步长小。
        3、 添加载荷曲线
        载荷曲线可以添加,也可以不添加。建议不添加,因为如果载荷曲线比较多,很容易混淆不同载荷曲线的意义,导致载荷添加错误。如果要添加,可以通过 Edcurve  命令实现,然后在施加载荷时指定载荷曲线就可以了。Edcurve 命令的具体用法请查阅 help 手册。这里不添加载荷曲线,载荷通过数组直接定义。
        4、 施加载荷
        施加载荷是通过 edload  来实现。

        载荷类型分为两大类:

        (1) 一种是将载荷施加在刚体上。若前面定义了该物体为刚体,可以通过 EDLOAD, ADD, RBUX,  , compont, TIME, XDISP 来实现。

        其中:

            RBUX 为刚体沿 x  轴方向的位移,类似的还有沿 y  轴方向的位移 RBUY,沿 z 轴方向的位移 RBUZ。

            后面一项为载荷曲线的名称。若定义了载荷曲线,就将相应载荷曲线的 id  填上,后面的数组就不需要填写了。因为我们前面没有定义载荷曲线,所以载荷曲线 id  空着不填,依次在后面填上时间数组名称和 x  轴方向位移数组名称。
            Componnt 为欲施加载荷的 part  的 id  或者是节点集的名称。
        对于 y  轴方向和 z  轴方向的位移可以采取同样处理方式,只需将 XDISP 替换为所定义的 y  轴或者 z  轴方向位移的数组名称即可。
        (2) 另一种是将载荷施加在非刚体上。操作基本类似。比如定义物体沿x 方向的位移,只需
将RBUX 改为UX 即可。其他的依此类推。
        5、 其他
        在 lsdyna 中位移条件是当作载荷来处理的。对于施加其他载荷,比如转动、速度、加速度、力和转矩等也可以用类似的办法添加,对于刚体也是用同样的方法处理。顺便提一句,在 abaqus/explicit  中,同样可以实现物体按指定轨迹运动,不过在 abaqus/explicit  中位移条件是当边界条件处理的。

  评论这张
 
阅读(1328)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016