Lsdyna实现物体按指定轨迹运动

【教程】Lsdyna 实现物体按指定轨迹运动(其他载荷的添加类似)

By lojade

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 分别是time 和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 来实现。但是,载荷类型分为两大类。

一种是将载荷施加在刚体上。若前面你定义了该物体为刚体,可以通过

EDLOAD,ADD,RBUX, , compont,TIME,XDISP来实现。

RBUX 为刚体沿x 轴方向的位移,类似的还有沿y 轴方向的位移RBUY ,沿轴方向的位移RBUZ 。后面一项为载荷曲线的名称。若定义了载荷曲线,就将相应的载荷曲线的id 填上,后面的数组就不需要填写了。Componnt 为欲施加载荷的part 的id 或者是节点集的名称。因为我们前面没有定义载荷曲线,所以载荷曲线id 空着不填,依次在后面填上时间数组名称和x 轴方向位移数组名称。

对于y 轴方向和z 轴方向的位移可以采取同样处理方式,只需将XDISP 替换为你定义的y 轴或者z 轴方向位移的数组名称即可。

另一种是将载荷施加在非刚体上。操作基本类似。比如定义物体沿x 方向的位移,只需将RBUX 改为UX 即可。其他的依此类推。

5、 其他

在lsdyna 中位移条件是当作载荷来处理的。对于施加其他载荷,比如转动、速度、加速度、力和转矩等也可以用类似的办法添加,对于刚体也是用同样的方法处理。顺便提一句的是,在abaqus/explicit中,同样可以实现物体按指定轨迹运动,不过在abaqus/explicit位移条件是当边界条件处理的。

最近任务比较多,时间比较紧。考虑到论坛上有几位坛友急需帮助,晚上加班至凌晨将此教程赶出来。整个操作均采用命令流形式,若对命令流不熟悉,通过help 查找命令可以得到相应的GUI 操作提示。限于水平有限,不足之处请各位批评指正。

【教程】Lsdyna 实现物体按指定轨迹运动(其他载荷的添加类似)

By lojade

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 分别是time 和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 来实现。但是,载荷类型分为两大类。

一种是将载荷施加在刚体上。若前面你定义了该物体为刚体,可以通过

EDLOAD,ADD,RBUX, , compont,TIME,XDISP来实现。

RBUX 为刚体沿x 轴方向的位移,类似的还有沿y 轴方向的位移RBUY ,沿轴方向的位移RBUZ 。后面一项为载荷曲线的名称。若定义了载荷曲线,就将相应的载荷曲线的id 填上,后面的数组就不需要填写了。Componnt 为欲施加载荷的part 的id 或者是节点集的名称。因为我们前面没有定义载荷曲线,所以载荷曲线id 空着不填,依次在后面填上时间数组名称和x 轴方向位移数组名称。

对于y 轴方向和z 轴方向的位移可以采取同样处理方式,只需将XDISP 替换为你定义的y 轴或者z 轴方向位移的数组名称即可。

另一种是将载荷施加在非刚体上。操作基本类似。比如定义物体沿x 方向的位移,只需将RBUX 改为UX 即可。其他的依此类推。

5、 其他

在lsdyna 中位移条件是当作载荷来处理的。对于施加其他载荷,比如转动、速度、加速度、力和转矩等也可以用类似的办法添加,对于刚体也是用同样的方法处理。顺便提一句的是,在abaqus/explicit中,同样可以实现物体按指定轨迹运动,不过在abaqus/explicit位移条件是当边界条件处理的。

最近任务比较多,时间比较紧。考虑到论坛上有几位坛友急需帮助,晚上加班至凌晨将此教程赶出来。整个操作均采用命令流形式,若对命令流不熟悉,通过help 查找命令可以得到相应的GUI 操作提示。限于水平有限,不足之处请各位批评指正。


相关内容

  • 高一物理平抛运动的规律1
  • 5.3探究平抛运动的规律 三维教学目标 1.知识与技能 (1)知道平抛运动的特点是初速度方向水平,只有竖直方向受重力作用,运动轨迹是抛物线: (2)知道平抛运动形成的条件: (3)理解平抛运动是匀变速运动,其加速度为g : (4)会用平抛运动规律解答有关问题. 2.过程与方法 (1)在知识教学中应同 ...

  • 研控步进电机及驱动器适配表
  • 研控步进电机及驱动器适配表 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件.在非超载的情况下,电机的转速.停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角.这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点.使得在 ...

  • 全国电子设计竞赛论文
  • 文章来源: http://www.fxdzw.com/xpzl.htm 悬挂运动控制系统(E题) 一.任务 设计一电机控制系统,控制物体在倾斜(仰角≤100度)的板上运动. 在一白色底板上固定两个滑轮,两只电机(固定在板上)通过穿过滑轮的吊绳控制一物体在板上运动,运动范围为80cm×100cm.物体 ...

  • 电子设计竞赛论文
  • 悬挂运动控制系统(E题)---学生作品 毕业设计(论文) 原创 摘要:悬挂轨迹控制系统是一电机控制系统,控制物体在80cm×100cm的范围内作直线.圆.寻迹等运动,并且在运动时能显示运动物体的坐标.设计采用AT89S51单片机作为核心器件实现对物体运动轨迹的自动控制,通过多圈电位器实现对悬挂物位置 ...

  • 高一物理平抛物体的运动1
  • 5.3 平抛物体的运动 一.教学目标 1. 知道平抛运动的特点是初速度方向为水平,只在竖直方向受重力作用, 运动轨迹是抛物线. 2. 理解平抛运动是匀变速运动,其加速度为g 3. 理解平抛运动可以看作水平方向的匀速直线运动与竖直方向的自由落体 运动的合运动,并且这两个运动互不影响. 4.会用平抛运动 ...

  • 三维动画设计师理论试卷(A)
  • : 号证考准 : 名姓 :校学 三维动画设计师理论试卷(A ) 注 意 事 项 1. 考试时间:60分钟. 2. 请首先按要求在试卷的标封处填写你的姓名.准考证号和的在单位的名称. 3. 请仔细新闻记者各种题目的回答要求,在规定的位置填写的您的答案. 图 1 图2 4. 不要在试卷上乱写乱画,不要在 ...

  • 管道清灰机器人设计
  • 管道清灰机器人的设计 摘 要 本设计内容为管道清灰机器人,主要对管道清灰机器人结构系统的设计,机器人的末端操作器即手指是可替换夹具,操作臂有四个自由度,可实现在工作空间范围内的物体的转移,旋转角可达360度,手爪一次可载荷5kg . 操作臂的动力源为舵机,总共有5个舵机,它们分别控制腰部旋转,大臂. ...

  • 精品资料牛顿运动定律的应用经典例题大集合
  • 第二讲牛顿运动定律的应用例 1.物体 B 放在物体 A 上,A.B 的上下表面均与斜面平行(如图),当两者以相同的初 速度 靠惯性沿光滑固定斜面 C 向上做匀减速运动时, A.A 受到 B 的摩擦力沿斜面方向向上. B.A 受到 B 的摩擦力沿斜面方向向下. C.A.B 之间的摩擦力为零. D.A. ...

  • 运动生物力学
  • 运动生物力学 运动生物力学:是生物力学的一个重要分支,是研究体育运动中人体机械规律的科学. 运动生物力学的主要任务:提高运动能力,预防运动损伤 运动生物力学的研究方法分为测量方法和分析方法,其中测量方法可以分为运动学测量.动力学测量.人体测量.肌电图测量 运动学测量的参数:(角)位移.(角)速度.( ...