四杆机构分析.docx
《四杆机构分析.docx》由会员分享,可在线阅读,更多相关《四杆机构分析.docx(16页珍藏版)》请在冰豆网上搜索。
四杆机构分析
基于matlab和ADMAS的四杆机构运动仿真
摘要:
铰链四杆机构是机械设备中最基本的机构类型之一,文中以它为研究对象建立数学模型,应用MATLAB编程与ADMAS建模分别对四杆机构进行仿真分析,获得各点的运动曲线,进行对比,两种方法各有所长,分析结果显示直观。
1引言
平面四杆机构是连杆机构中最常见的机构组成,由于其结构简单,可承受载荷大,连杆曲线具有多样性等优点,它在工程中得到广泛的运用,设计四杆机构的方法有很多,比如解析法、作图法、实验法,但这些方法都存在一定的缺点,图解法精度差,解析法的计算工作量大,不直观使其在工程运用中受到约束,如果设计平面四杆机构时能显示其运动轨迹从而将图示结果与设计要求进行对比,可以使设计显得更加直观,提高工作效率。
本文以MATLAB、ADMAS为平台,开发了一个平面四杆机构运动轨迹仿真系统,模拟四杆机构的运动仿真,并获得各点的运动轨迹坐标,使设计显得直观,更好的帮助了工程技术人员在机构分析与设计过程中进行优化,提高了工作效率,降低产品开发成本
2建立机构运动的数学模型
设原动件OA以n转/min的速度匀速转动,求各杆的运动轨迹。
将平面四杆机构看成1个封闭的四边形,连接OB、AC相交于E点,令t2=∠AOC、t4=∠BCD、t3=∠BAF、a=∠ACO、b=∠ACB、e=AC,AD、DC、CO的杆长分别为r1、r2、r3、r4,如图1所示。
图1四杆机构数学建模
由原动件OA以n转/min的速度匀速转动可得OA的角速度为:
①
则∠AOC在任意时刻的角度为:
②
其中
为任意时刻的∠AOC的弧度,是已知常量。
在三角形AOC中根据余弦定理得
③
在三角形ADC中根据余弦定理得
④
在三角形AOC中根据正弦定理得
⑤
在三角形ADC中根据正弦定理得
⑥
联立①-⑥式即可解得a、b、g、t2则
由此可得
任意时刻a点的运动轨迹坐标为(ax,ay),其中:
任意时刻b点的运动轨迹坐标为(bx,by),其中:
3.matlab程序设计
平面四杆机构运动轨迹仿真程序设计
当数学模型完成后,紧接着我们在M文件中来编写程序实现平面四杆机构的运动轨迹仿真(当然也可直接在notebook里进行编写与仿真)。
(1)定义已知常量
l1=290mm;
l2=110mm;
l3=250mm;
l4=240mm;
w2=20*pi;
(2)计算任意时刻连杆上点的轨迹坐标,并进行相关运动仿真(仅取一个周期),如下所示
图2四杆机构运动轨迹仿真
(3)源程序如下:
disp'平面四杆机构的运动'
l1=input('输入机架长度l1=');
l2=input('输入机架长度l2=');
l3=input('输入机架长度l3=');
l4=input('输入机架长度l4=');
rs=[l1l2l3l4];
minimum=min(rs);
maximum=max(rs);
ifl1<=l2&&l1<=l3&&l1<=l4
disp'此机构为双曲柄机构'
elseifl2<=l1&&l2<=l3&&l2<=l4
disp'此机构为曲柄摇杆机构'
elsedisp'此机构为双摇杆机构,本例不予考虑',break;
end
w2=input('输入主动件角速度w2=');
t=0:
10;
th2=0:
1/36:
2*pi;
th34=zeros(length(th2),2);
options=optimset('display','off');
form=1:
length(th2)
th34(m,:
)=fsolve('aa',[11],options,th2(m),l2,l3,l4,l1);
end
figure
(1)
plot(th2*180/pi,th34(:
1)*180/pi,'r',th2*180/pi,th34(:
2)*180/pi,'c')
grid
text(150,26,'杆3')
text(150,130,'杆4')
xlabel('主动件转角\theta_2(度)')
ylabel('杆3和杆4角位移(度)')
title('杆3和杆4角位移线图')
w3=(l2*w2*sin(th34(:
2)-th2'))./(l3*sin(th34(:
1)-th34(:
2)));
w4=(l2*w2*sin(th2'-th34(:
1)))./(l4*sin(th34(:
2)-th34(:
1)));
figure
(2)
plot(th2*180/pi,w3,'r',th2*180/pi,w4,'c');
grid
text(100,-11,'杆3角速度')
text(100,25,'杆4角速度')
xlabel('主动件转角\theta_2(度)')
ylabel('杆3和杆4角速度(度)')
title('杆3和杆4角速度线图')
s23=th2'-th34(:
1);
s43=th34(:
2)-th34(:
1);
s24=th2'-th34(:
2);
s34=th34(:
1)-th34(:
2);
a3=(-l2*w2^2*cos(s24)-l3*w3.^2.*cos(s34)+l4*w4.^2)./(l4*sin(s34));
a4=(l2*w2^2*cos(s23)+l3*w3.^2-l4*w4.^2.*cos(s43))./(l4*sin(s43));
figure(3)
plot(th2*180/pi,a3,'r',th2*180/pi,a4,'c');
grid
text(150,1000,'杆3相位角加速度')
text(150,-1000,'杆4相位角加速度')
xlabel('从动件角加速度')
ylabel('杆3和杆4角加速度(rad*s^(-2))')
title('杆3和杆4角加速度线图')
disp'曲柄转角连杆转角-从动杆4转角-连杆角速度-从动杆4角速度-连杆加速度-从动杆4加速度'
ydcs=[th2'*180/pi,th34(:
1)*180/pi,th34(:
2)*180/pi,w3,w4,a3,a4];
disp(ydcs)
ex=l2*cos(th2')+l3*cos(th34(:
1))-l4*cos(th34(:
2))-l1;
ey=l2*sin(th2')+l3*sin(th34(:
1))-l4*sin(th34(:
2));
ee=norm([exey]);
disp'曲柄转角X向偏差Y向偏差'
wc=[th2'*180/pi,ex,ey];
disp(wc);
fprintf(1,'偏差矢量矩阵的模ee=%3.4f\n',ee);
figure(4)
plot(th2*180/pi,ex,'r',th2*180/pi,ey,'c')
grid;
text(100,-3*10^-9,'x轴方向')
text(200,1*10^-9,'y轴方向')
title('均方根偏差曲线')
xlabel('主动件转角\theta_2(度)')
ylabel('均方根偏差')
ax=(l2.*cos(th2'));
ay=(l2.*sin(th2'));
figure(5)
plot(ax,ay,'-x');
grid;
xlabel('A点横坐标(mm)')
ylabel('A点纵坐标(mm)')
title('A点轨迹')
vax=(-l2.*sin(th2')*w2);
vay=(l2.*cos(th2')*w2);
figure(6)
plot(th2*180/pi,vax,'-x',th2*180/pi,vay,'-o');
grid;
text(50,-4000,'x轴方向')
text(50,6000,'y轴方向')
xlabel('主动件转角\theta_2(度)')
ylabel('A点横、纵坐标速度(mm/s)')
title('A点横、纵坐标速度')
aax=(-l2.*cos(th2')*w2.^2);
aay=(-l2.*sin(th2')*w2.^2);
figure(7)
plot(th2*180/pi,aax,'-x',th2*180/pi,aay,'-o');
grid;
text(150,3*10^5,'x轴方向')
text(150,-3*10^5,'y轴方向')
xlabel('主动件转角\theta_2(度)')
ylabel('A点横、纵坐标加速度(mm^2/s)')
title('A点横、纵坐标加速度')
bx=(l2.*cos(th2')+l3.*cos(th34(:
1)));
by=(l2.*sin(th2')+l3.*sin(th34(:
1)));
figure(8)
plot(bx,by,'-x');
grid;
xlabel('B点横坐标(mm)')
ylabel('B点纵坐标(mm)')
title('B点轨迹')
vbx=-l2.*sin(th2')*w2-l3.*w3.*sin(th34(:
1));
vby=l2.*cos(th2')*w2-l3.*w3.*cos(th34(:
1));
figure(9)
plot(th2*180/pi,vbx,'-x',th2*180/pi,vby,'-o');
grid;
text(50,-0.5*10^4,'x轴方向')
text(50,1.2*10^4,'y轴方向')
xlabel('主动件转角\theta_2(度)')
ylabel('B点横纵坐标方向速度(mm/s)')
title('B点速度图')
abx=-l2.*cos(th2')*w2^2-l3.*sin(th34(:
1)).*a3-w3.^2*l3.*cos(th34(:
1));
aby=-l2.*sin(th2')*w2^2+l3.*cos(th34(:
1)).*a3-w3.^2*l3.*sin(th34(:
1));
figure(10)
plot(th2*180/pi,abx,'-x',th2*180/pi,aby,'-o');
grid;
text(50,-7*10^5,'x轴方向')
text(50,0,'y轴方向')
xlabel('主动件转角\theta_2(度)')
ylabel('B点加速度横、纵坐标')
title('B点加速度轨迹')
4.ADMAS仿真分析
4.1创建机构模型
(1)创建四杆机构:
OA=110mm,AB=250mm,BC=240mm,OC=290mm;
(2)分别创建OA与ground、OA与AB、AB与BC、BC与ground之间的转动副;
(3)设OA为原动件,给OA施加驱动,令其角速度w1=20πrad/s。
如图5所示为曲柄摇杆机构的模型。
图5四杆机构模型
4.2模型仿真及绘制特性曲线
单击plotting工具按钮,对四杆机构模型进行运动仿真,并测得B、C两点的运动特性曲线(同样仅取一个周期),如图6,图7所示:
:
图6A点的运动分析曲线
图7B点的运动分析曲线
4.3模型拓展
在ADMAS中还提供了参数化建模、定义接触力与柔性体等办法建立四杆机构模型,使得仿真分析更加方便、准确,满足设计者的要求。
由于篇幅所限,故在此省略。
5.结束语
应用MATLAB强大的科学计算和绘图功能进行编程模拟四连杆机构连杆点的运动轨迹,用户只需输入四杆机构各构件的参数和原动件的角速度,就能迅速地模拟原动件转动1周时各杆件的运动轨迹以及各点的轨迹曲线,具有融计算与绘图为一体,操作简便、界面友好、速度快、准确性高的特点,与手工计算绘图相比极大地提高了工作效率。
但是在实际工程中,由于铰链之间的间隙、组成四杆机构的各个杆的弹性变形等原因,使得实际结果与理论上存在误差,在matlab中很难解决这一问题,应用ADMAS软件建立四杆机构的模型并进行仿真分析,通过定义接触力、柔性体等技术,可以很好的解决这一问题,使得机构的速度和加速度曲线更加精确。
另外在ADMAS里可以很方便的提取曲线上各点的特征值以及对曲线的各种编辑处理。
ADMAS软件在分析复杂机构的运动学和动力学特性方面有着强大的功能。
今后,我们可以有效的运用这种方法对那些复杂的机械系统机构进行类似的动态仿真分析。
参考文献