基于ADAMS的运用平行四边形连杆机构的铲车设计及其仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工程技术学院07级机制07班设计者王同学
学号 2007307200731 指导教师李老师
日期:2010年4月5日
基于ADAMS的运用平行四边形连杆机构的铲车设计及其运动仿真
一、设计原理
由机械原理可以知道在平面四杆机构中当两根连架杆长度一样时,连杆在运动过程中会在任意时刻做瞬时平动,刚体瞬心位于无穷远处,连杆不会绕着自身旋转即角速度为0。
正是基于这一原理,在铲车设计中,把两根驱动铲斗的斗杆液压缸的长度设计相等并作为连架杆,让铲斗作为连杆,以车身为机架,这样铲斗在上升的过程中不会发生旋转,这样铲斗内的货物不会掉出来。
二、设计分析
铲车的工作主要是靠驱动铲斗的2根液压斗杆油缸和驱动斗杆油缸的1根动臂油缸来完成,铲车工作一次主要包括以下8个过程:
1.铲车运动到指定工作位置;
2.动臂油缸工作使得铲斗到达货物堆放位置;
3.驱动铲斗的2根斗杆油缸工作使得铲斗装上货物;
4.动臂油缸工作使得铲斗上升;
5.铲车到达卸货的位置;
6.2根斗杆油缸协调工作使得铲斗翻转卸掉货物;
7.动臂油缸和斗杆油缸协调工作使得铲斗快速恢复到水平位置(未工作
时的位置);
8.铲车返回,开始下一次铲运工作。
可以看出铲车要完成一次卸运工作3根油缸的协调工作非常重要,因此要靠一定的函数设计的驱动来驱动油缸完成工作。
在此认为油缸的行程是线性变化的,而考虑到ADAMS中的STEP函数可以实现此功能,为此本次设计中运用STEP函数,分别对3根液压油缸编写STEP函数已达到所需功能。
本次仿真主要是对3根油缸和铲斗运动的仿真,对于车体及其尺寸和挖掘动作及其过程中的受力分析和振动未做详尽设计和分析。
三、建立构件模型
铲车有车身、斗杆油缸、动臂油缸和铲斗组成,模型中还有路面,依次建模。
1.创建车厢
(1)启动ADAMS/View,选择新建模型,命名为forklift,并将系统的长度单位设置为m。
(2)设置工作栅格。
单击菜单【Settings】→【Working Gird】后,在弹出的设置工作栅格对话框中,将Size设置为X(5.5),Y(4),
Spacing设置为X(0.1),Y(0.1)。
(3)设置图标。
单击菜单【Setting】→【Icon】,弹出图标设置对话框,
在New Size输入框中输入0.3。
(4)打开坐标窗口。
按下F4键,打开坐标窗口,当鼠标在图形区移动时,在坐标窗口中显示了当前鼠标所在位置的坐标值。
(5)绘制原始车厢:单击图标,勾选closed,在path选项框中选择About center,在length中输入2.4。
移动鼠标,按住Ctrl键用鼠标左键分别点击(-5,2.2,0),(-3.5,2.2,0),(-1.5.,0.7,0),(-1,0.7,0),(-1,-2,0),(-5,-2,0),(-5,2.2,0),然后点击鼠标右键,右键点击创建的车厢,选着Rename,在对话框中输入Body,单击apply。
(6)(-4.2,-2.2,0)单击,勾选Length和Radius,并在对话框中分别输入2.4,0.5,单击点(-4.2,-2.2,0),向右拖动并点击鼠标,使得圆柱体水平。
在工具栏中的Edit选项中选着move栏弹出:
在Relative to the 下拉框中选择About the ,在右边的model下拉框中选择 maker,在右边对话框中单击鼠标右键,选择All,接着点击pick,移动鼠标,单击点(-4.2,-2.2,0)处的marker点,点击上述move对话框Rotate下的Y图标。
右键点击,选择,
勾选Copy,在下面的下拉框中选择from to 选项,点击刚刚创建的圆柱
体,点击,分别选择点(-4.2,-2.2,0)和(-1.8,-2.2,0)。
至此圆柱体创建完毕。
(7)单击,单击Body,单击Part2。
重复布尔减运算减去两个圆柱体。
车厢创建完毕。
如图所示:
2.绘制车轮:
(1)单击,勾选 Minor Radius 和 Major Radius ,并在对话框中分别输入0.1和0.3 ,单击点(-4.2,-2.2,0),右击车轮,选择Rename,在对话框中输入 back_left_wheel,调出move对话框在Translate下面
的对话框中输入-1.2,点击,这样左后轮就创建完毕。
(2)单击,单击点(-4.2.,-2.2,0),创建一个轮子,右键单击,选择Rename,在对话框中输入back_right_wheel,调出move对话框在
Translate下面输入2.4点击,这样右后轮创建完毕。
(3)以相同的方法利用点(-1.8,-2.2,0)分别创建前左轮front_left_wheel和前右轮front_right_wheel。
3.创建车轴:
为创建方便,隐藏车厢。
右键单击车厢,选择Hide,单击,勾选Length和Radius,分别输入2.4和0.2,用鼠标左键选择左后轮的中
心,接着选择右后轮的中心,右键单击创建的圆柱体,选择Rename,在对话框中输入back_shaft,用同样的办法创建前轴front_shaft。
至此车轴创建完毕。
如下图所示:
至此车身创建完毕。
选择工具栏中Edit选项中的Appearance选项,右击Entity对话框,在All中选择Guesses中的Body,在Visibility中选择On如下图所示:
整个车身模型如图:
4.创建斗杆油缸:
(1)隐藏车身。
创建第一根油缸:单击使视图正向,点击,在Length输入框中输入3,Radius中输入0.1,单击点(-2.8,0.3,0)向右拖动并点击鼠标,使得圆柱体水平,右击新创建的圆柱体选择
Rename,在对话框中输入oil_cylinder_1_1。
点击击,在Length输入框中输入2.5,在Radius中输入0.15,单击点(-1.3,0.3,0),向右拖动并点击鼠标,使得圆柱体水平,右击新创建的圆柱体,选择Rename,
在对话框中输入oil_cylinder_1_2。
点击,调整视图使得油缸左侧能够被看得见。
单击,勾选Inside,在Thickness中输入0.025,把鼠标移动到
oil_cylinder_1_2的左侧面上,当箭头与oil_cylinder_1_2表面垂直时点击鼠标右击。
第一根油缸创建完毕。
(2)创建第二根油缸:单击使视图正向,点击,在Length输入框中输入3,Radius中输入0.1,单击点(-2.4,0.5,0)向右拖动并点击鼠标,使得圆柱体水平,右击新创建的圆柱体选择Rename,在对话
框中输入oil_cylinder_2_1。
点击击,在Length输入框中输入2.5在Radius中输入0.15,单击点(-0.9,0.3,0),向右拖动并点击鼠标,使得圆柱体水平,右击新创建的圆柱体,选择Rename,在对话框中输入
oil_cylinder_2_2。
点击,调整视图使得油缸左侧能够被看得见。
单击,勾选Inside,在Thickness中输入0.025,把鼠标移动到
oil_cylinder_2_2的左侧面上(也就是看的见的),当箭头与oil_cylinder_2_2表面垂直时点击鼠标右击。
第二根油缸创建完毕。
5.创建动臂油缸:
(3)单击使视图正向,点击,Radius中输入0.1,单击点(-1.7,-0.5,0),拖动鼠标,当鼠标指到(-1.2,-1.3,0)时点击左键,右击新创建的圆柱体选择Rename,在对话框中输入oil_cylinder_3_1。
点击击,在Radius中输入0.15,单击oil_cylinder_3_1的中心即(-1.45,-0.9,0),拖动鼠标当鼠标指到(-1,-1.6,0)时点击左键,右击新创建的圆柱体,选择Rename,在对话框中输入oil_cylinder_3_2。
点击,调整视图使得油缸左上侧能够被看得见。
单击,勾选
Inside,在Thickness中输入0.025,把鼠标移动到oil_cylinder_3_2的左侧面上(也就是看的见的),当箭头与oil_cylinder_3_2表面垂直时点击鼠标右击。
动臂油缸油缸创建完毕。
三根油缸模型如下:
6.创建铲斗:
(1)点击,在Length中输入1,用鼠标左键依次点击(1,0.6,0)
(1.8,0.6,0),(1.8,-0.8,0),(1,-0.8,0), (1,0.6,0),然后点击鼠标右键。
右击创建的拉伸体,选择Rename,在对话框中输入shovel。
(2)点击,勾选Length、Height、Depth分别输入1.4,1.4,1用鼠标左键点击点(1.8,0.6,0),向右方拖动鼠标并点击左键使得创建的Box 水平。
点击,调整视图方向使得新创建的Box_1的上面和右面能够
被看见,点击,在Radius中输入1.4,用鼠标移向Box最右下边的边的边上点击鼠标左键和右键,这时后在上倒出圆角。
(3)点击,在Length中输入1,依次点击(1.8,0.6,0),(3.2,0.2,0),(3.3,0.6,0),(1.8,0.6,0),再点击鼠标右键。
(4)实施布尔减运算,点击,先用鼠标点击Box_1,再点击新创建的拉伸体。
(5)点击,使得用布尔减运算得到的Box_1的上面能够看的见。
点
击,在Thickness中输入0.1,鼠标移动到Box_1的上表面,点击鼠标的左键和右键。
得到搂空的装货物的实体。
如图所示:
(6)实施布尔加运算,点击,用鼠标先后点击shovel和Box_1,至此
铲斗创建完毕。
7.创建路面
单击,用鼠标左键一次点击(-5,-2.6,0),(5,-2.6,0),(5,-3.3,0),(-5,-3.3,0),(-5,-2.6,0),再点击鼠标右键。
路面创建完毕。
如图:
三、添加运动副
1.添加固定副:点击,分别添加大地和Road之间的JIONT_23、Body
和back_shaft之间JIONT_9、添加Body和front_sahft之间的JIONT_10。
2.添加转动副:点击,分别创建:
(1)back_left_wheel和back_shaft之间的JIONT_5,
(2)back_right_wheel和back_shaft之间的JIONT_6,
(3)fr2ont_left_wheel和front_shaft之间的JIONT_7,
(4)front_right_wheel和front_shaft之间的JIONT_8,
(5)oil_cylinder_1_1和Body之间的JIONT_12,
(6)oil_cylinder_2_1和Body之间的JIONT_13,
(7)oil_cylinder_2_1和oil_cylinder3_1之间的JIONT_15,
(8)oil_cylinder_3_2和Body之间的JIONT_14,
(9)oil_cylinder_1_2和shovel之间的JIONT_21,
(10)oil_cylinder_2_2和shovel之间的JIONT_22;
3.添加移动副:点击,分别创建:
(1)back_left_wheel和Road之间的JIONT_2,
(2)back_right_wheel和Road之间的JIONT_1,
(3)front_left_wheel和Road之间的JIONT_4,
(4)front_right_wheel和road之间的JIONT_3,
(5)oil_cylinder_1_1和oil_cylinder_1_2之间的JIONT_18,
(6)oil_cylinder_2_1和oil_cylinder_2_2之间的JIONT_19,重命名
为mition_oil_cylinder_2
(7)oil_cylinder_3_1和oil_cylinder_3_2之间的JIONT_20,重命名
为mition_oil_cylinder_3。
五、添加驱动
添加Translational Joint Motion :
(1) 点击,选择JIONT_18,右击motion_1,选择Rename
在对话框中输入motion_oil_cylinder_1,
(2) 点击,选择JIONT_19,右击motion_2,选择Rename
在对话框中输入motion_oil_cylinder_2,
(3) 点击,选择JIONT_20,右击motion_3,选择Rename
在对话框中输入motion_oil_cylinder_3,
(4)点击,选择JIONT_3,右击motion_4,选择Rename
在对话框中输入motion_wheel_road。
六、改变驱动函数
(1)右击motion_oil_cylinder_1,选择Modify,在弹出的对话框中点击
,在弹出的对话框中输入:
step(time,4,0,8,-0.78)+step(time,14,0,16,-0.45)+step(time,16,0,18,1.23)
如图所示
(2)以相同的操作将motion_oil_cylinder_2的驱动函数改为:
step(time,4,0,8,-0.78)+step(time,14,0,16,0.45)+step(time,16,0,18,0.33) (3)以相同的操作将motion_oil_cylinder_3的驱动函数改为:
step(time,2,0,4,0.175)+step(time,8,0,12,-0.5)+step(time,16,0,18,0.325) (4)以相同的操作将motion_wheel_road的驱动函数改为:step(time,0,0,2,-1)+step(time,12,0,14,-3)+step(time,18,0,20,4)
七、运动及仿真
1.点击,将End Time设置为20s,将Steps设置为800,点击,
进行仿真。
2.对斗杆油缸的运动分析:
(1)取oil_cylinder_1_2和oil_cylinder_2_2进行速度分析:
从图中看出:
0—14s:两根斗杆油缸的速度相同,在此过程中铲斗完成装运和抬升货物阶段;
14—16s:oil_cylinder_1_2的速度正向,oil_cylinder_2_2的速度反向,铲斗翻转卸货;
16—18s oil_cylinder_1_2速度反向,oil_cylinder_2_2速度反向,铲斗卸货后回来;
18—20s:两根油缸速度相同,油缸和铲斗回到初始工作状态。
(2)取铲斗的角速度进行分析
从中可以看出:
0—14s:在卸货前,铲斗角速度为0,即铲斗平动,不会发生翻转,货物不会掉下来;
14—16s:铲斗发生翻转并在15.4s时候角速度达到最大,16s时候货物完全卸掉;
16-18s:铲斗在斗杆油缸的作用下铲斗速度反向,回到水平位置;18—20s:铲斗回到初始工作位置。
(3)取铲斗相对Z轴的角动量分析:
从中可以看出:
0—14s:在卸货前铲斗平动:
14—15s:角动量为负,铲斗绕着Z轴顺时针旋转,完成卸货;
16—18s:角动量为正,铲斗绕着Z轴逆时针旋转,回到水平位置;18—20s:角动量为0,铲斗回到水平位置。
八、总结
从上述分析中可以看出,运用平行四边形连杆机构的铲车可以实现在铲斗抬升货物的过程中不发生翻转的功能,从而保证货物在抬升的过程中不会因为翻转而掉出来。
同时利用ADAMS中Step函数编写3根油缸的位移函数,保证3根油缸的协调动作,使得铲车顺利完成一次工作过程。
九、结束语
最开始的时候,由于在机械创新设计技术课上,我看到有一个减小槽轮速度波动的装置,在拨盘上面串联一个曲柄和拨盘一起组成一个曲柄连
杆机构,使得拨盘做变速运动,这样使得槽轮的速度波动大为减小。
考虑到ADAMS的主要功能是进行动力学分析,因此打算做一个机构来验证。
但是由于曲柄连杆机构速度变化不确定,不一定就使槽轮速度波动减小,况且曲柄连杆机构尺寸计算复杂,驱动函数设计也不容易,于是在ADAMS 上做了一段时间之后,放弃了。
后来我发现了荟园开水房对面的工地上停着一辆挖掘机,就想设计挖掘机,回去之后就上网查了一些挖掘机的资料,发现挖掘机尽管只有3根液压缸,但是它们相互协调作用可以完成挖土、倒土等许多动作。
而且其外形尺寸也必须有很好的设计才行,但是ADAMS的建模功能不强,我连画个光滑过度的圆角也很困难,于是在ADAMS上做了一些尝试后,我又放弃了。
在图书馆翻书时,看到一本机械原理书上看到设计这个铲车的原理,于是我欣喜若狂,决定设计着一个。
在本次设计中遇到不少的问题,首先便是在车身建立完成后,车轮的Contact力也加了,但是当给车身一个初速度时车在前进的过程中,车身会上下跳动。
我百思不得其解,我看过别人的车是不跳动的,我想了好久,终于想到原来车轮与路面之间有Contact力,当车的质量很大而且车身质量相对车轮不对称分布时,转矩不平衡会发生跳动。
由此我想到3种解决办法:第一,将车轮质量对车轮对称分布,第二,将车身搂空,第三改变车的质量。
考虑到我的车是间歇运动,于是我去除了Contact力,改为移动副,编写Step函数,这也是设计的缺点。
也许可以改变质量和动摩擦系数,通过加驱动力,利用牛顿运动定律来计算。
在设计中我还解决了一个问题,那就是在我仿真的时候,出现这样一个对话框:
就是雅可比矩阵奇异的意思,于是我想应该是动力学方程无解,我就不知道什么意思,后来在解决另外一个也是雅可比矩阵奇异的时候,知道约束过多时,ADAMS的运动方程没有解,果然犯了想当然的错误,认为液压缸会选旋转,所以要加上驱动,但是机构自由度为1,只有一个驱动,于是去到液压缸驱动后仿真正常。
这次设计加深了对ADAMS的运用也知道其它必要的基础很重要对设计和仿真起着重要作用。
同时非常感谢老师在课堂上教给我们的知识使得我能有机会利用ADAMS做出自己的设计。
十、参考文献
1. 李增刚. ADAMS入门详解与实例. 北京:国防工业出版社,2007
2.廖汉元孔建益机械原理北京:机械工业出版,2007。