Matlab在机械原理课程设计中的应用研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab在机械原理课程设计中的应用研究作者:刘相权
来源:《教育教学论坛》2016年第52期
(北京信息科技大学机电工程学院,北京 100192)
摘要:本文以六杆机构牛头刨床为例,在运动学分析的基础上,应用Matlab软件编程实现了牛头刨床的位移、速度和加速度的变化曲线,完成了对牛头刨床的运动仿真,通过使用Matlab,为机械原理课程设计的改进提供了一个新的思路。
关键词:Matlab;机械原理;课程设计;六杆机构;运动仿真
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)52-0077-02
机械原理课程设计是机械原理课程重要的实践环节,培养学生机械系统运动方案设计的初步能力。目前机械原理课程设计的方法有图解法和解析法两种,图解法需要学生列出矢量方程式,作图求解,其优点是几何概念清晰、形象,缺点是作图比较烦琐、精度不高[1]。解析法需要学生针对给定机构建立运动学模型,求解出位移方程、速度方程和加速度方程、编程求解,根据求解结果绘制相应曲线。解析法需要学生具有一定的编程能力,其优点是求解精度高,培养了学生运用现代化的手段解决设计问题的能力。
Matlab是美国Mathworks公司开发的大型科学计算软件,本文以机械原理课程设计中常见的牛头刨床为例,首先利用矩阵法对机构进行运动学分析,然后利用Matlab编程求解,绘制仿真曲线,直观再现牛头刨床从动件的运动规律。
一、牛头刨床工作原理概述
牛头刨床是一种用于平面切削加工的机床,图1所示为牛头刨床主运动机构的运动简图,由导杆机构1-2-3-4-5带动刨头5及其上的刨刀作往复切削运动。刨头右行时,刨刀速度较低,刨刀进行切削,为工作行程。刨头左行时,刨刀快速退回,刨刀不切削,有急回特性,为空回行程。设计数据如表1所示。在工作行程中,牛头刨床受到很大的切削阻力(在切削前后各有一段约0.05H的空刀距离,H为行程距离),而空回行程中则没有切削阻力[2]。
二、Matlab仿真分析及参数测量
当牛头刨床六杆机构中导杆CD处于左极限位置时,曲柄与x轴夹角为194.84度,刨头上E点坐标为(796.52,-495.5),为便于分析,以此位置作为曲柄顺时针旋转和刨头位移的起
始位置,在Matlab中编写程序,首先定义各杆长度及曲柄旋转角速度,然后根据先前推导的运动学方程编程实现[3],其源代码如下:
n1=72;w1=2*pi*n1/60;Lac=430;
Lcg=796.52;Lab=110;Lcd=810;Lde=291.6;
dy1=[];ddy1=[];Pos=[];
for theta1=(194.82/180*pi):-pi/100:
(194.82/180*pi-2*pi)
S3=sqrt((Lab*cos(theta1))^2+(Lac+Lab*sin(theta1))^2);
theta3=acos(Lab*cos(theta1)/S3);
theta4=pi-asin((Lcg-Lcd*sin(theta3))/Lde);
Se=Lcd*cos(theta3)+Lde*cos(theta4);
SS=[theta1,theta3,theta4,S3,Se]';
Pos=[Pos,SS];
A=[cos(theta3),-S3*sin(theta3),0,0;
sin(theta3),S3*cos(theta3),0,0;
0,-Lcd*sin(theta3),-Lde*sin(theta4),-1;
0,Lcd*cos(theta3),Lde*cos(theta4),0];
B=[-Lab*sin(theta1)*w1,Lab*cos(theta1)*w1,0,0]';
dy=A\B;
dy1=[dy1,dy];
dA=[-dy(2)*sin(theta3),
-dy(1)*sin(theta3)-S3*dy(2)*cos(theta3),0,0;
dy(2)*cos(theta3),
dy(1)*cos(theta3)-S3*dy(2)*sin(theta3),0,0;
0,-Lcd*dy(2)*cos(theta3),-Lde*dy(3)*cos(theta4),0; 0,-Lcd*dy(2)*sin(theta3),-Lde*dy(3)*sin(theta4),0]; dB=[-Lab*cos(theta1)*w1^2,-Lab*sin(theta1)*w1^2,0,0]'; ddy=A\(dB-dA*dy);
ddy1=[ddy1,ddy];
end
theta1=-1*(Pos(1,:)*180/pi-194.82);
theta3=Pos(2,:)*180/pi;
theta4=Pos(3,:)*180/pi;
S3=Pos(4,:);
Se=Pos(5,:)+495.5;
Ve=-1*dy1(4,:);
Acc=ddy1(4,:);
plot(theta1,Se),grid on
xlabel('曲柄转角(^o)');
ylabel('刨刀位移(mm)');
axis([0,360,0,450]);
title('位移曲线')
plot(theta1,Ve(1,:)),grid on
xlabel('曲柄转角(^o)');
ylabel('刨刀速度(mm/s)');
axis([0,360,-2250,1500]);
title('速度曲线')
plot(theta1,Acc(1,:)),grid on
xlabel('曲柄转角(^o)');
ylabel('刨刀加速度(mm/s^2)');
axis([0,360,-20000,20000]);
title('加速度曲线')
编好程序后,可调用绘图函数绘制相应的位移、速度和加速度曲线。
三、结束语
将Matlab引入机械原理课程设计的教学中,能够使学生掌握利用解析法计算公式设计机构的实际技能,提高学生利用计算机进行机械设计的能力,激发学生的学习兴趣,使其动手能力和创新能力均得到提高。
参考文献:
[1]孙恒,作模.机械原理[M].北京:高等教育出版社,2012.
[2]罗洪田.机械原理课程设计指导书[M].北京:高等教育出版社,1998.
[3]杨绿云.Matlab软件在机械原理教学中的应用[J].郑州工业大学学报,2010,5:P525-526