牛头刨床机构运动分析

更新时间:2024-03-06 13:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

.

高等机构学

题 目: 牛头刨床机构运动分析 院系名称: 机械与动力学院 专业班级: 机械工程 学生姓名: 学 号: 学生姓名: 学 号: 学生姓名: 学 号: 指导教师:

2015年 12 月 17日

.

.

.

.

目 录

一 问题描述 ....................................................... - 1 - 二 运动分析 ....................................................... - 1 -

2.1矢量法构建机构独立位置方程 ................................ - 1 - 2.2机构速度分析 .............................................. - 2 - 2.3机构加速度分析 ............................................ - 2 - 2.4机构运动线图绘制 .......................................... - 2 - 三 总结 ........................................................... - 4 - 附录一:Matlab程序 ............................................... - 4 -

.

.

牛头刨床机构运动分析

一 问题描述

如图1-1所示的牛头刨床机构中,h?800mm,h1?360mm,h2?120mm,

lAB?200mm,lCD?960mm,lDE?160mm。设曲柄以等角速度?1?5rad/s逆时针方向

回转,试对其进行运动分析,求出该机构中各从动件的方位角、角速度和角加速度以及各机构的运动线图。

图1-1 牛头刨床机构

二 运动分析

2.1矢量法构建机构独立位置方程

如图2-1所示,以E为坐标原点建立直角坐标系,并标出各杆矢量及其方位角。其中共有四个未知量S3,?3,?4,Sc。

图2-1 坐标系建立

.

.

以两个封闭图形ABDEA和EDCFE为基准构建两个封闭矢量位置方程,即:

AE?l1?S3?l4

h?Sc?l3?l4

将上述矢量方程分别沿X轴和Y轴进行投影,得牛头刨床机构的独立位置方程如下:

s3cos?3?l4cos?4?h2?l1cos?1 s3sin?3?l4sin?4?h1?l1sin?1

l3cos?3?l4cos?4?sc l3sin?3?l4sin?4?h

利用Matlab进行编程求解,可求得各机构的位置,程序见附录一。

2.2机构速度分析

将机构的位置方程对时间求一次导数,并写成矩阵的形式,得机构的速度方程如下:

?cos?3?sin?3??0??0

?s3sin?3s3cos?3?l3sin?3l3cos?3?l4sin?4l4cos?4?l4sin?4l4cos?40??s3???l1sin?1?????lcos??0?31???????1 1?0?1???4??????0??sc?0??利用Matlab进行编程求解,可求得各机构的角速度或速度,程序见附录一。

2.3机构加速度分析

将机构的速度方程对时间求一次导数,并写成矩阵的形式,得机构的加速度方程如下:

?cos?3?sin?3??0??0?s3sin?3s3cos?3?l3sin?3l3cos?3?l4sin?4l4cos?4?l4sin?4l4cos?40??s3???sin?3?s3sin?3?s3?3cos?3????cos?0?s3cos?3?s3?3sin?333???????01???4??l3?3cos?3????0??sc??l3?3sin?3?0??l1?1cos?1???l?sin??1???1?11??0??0??

?l4?4cos?4?l4?4sin?4?l4?4cos?4?l4?4sin?40??s3????0???3?0???4????0??sc?利用Matlab进行编程求解,可求得各机构的角加速度或加速度,程序见附录一。

2.4机构运动线图绘制

通过Matlab进行计算求解,得到各构件的位置、速度和加速度,如表2-1所示。

.

.

根据所求得的各构件的位置、速度及加速度,进行机构运动线图的绘制,如图2-2所示。程序见附录一。

表2-1 各构件的位置、速度和加速度

?1 ?3 /(°) 0 10 20 30 40 250 ?4 sc /m ?3 ?4 vc /(m/s) -0.1186 0.59014 0.80426 0.95165 ?3 2?4 ac /(m/s) 11.1924 2/(rad/s) /(rad/s) 10.34853 -28.9655 5.27322 3.31001 65.51205 332.5941 0.539965 -0.10981 0.307637 65.65572 332.192 0.537252 0.253198 -0.708 -1.4824 -2.2013 66.46514 329.9402 0.521815 0.535518 69.26803 322.3034 0.466438 0.820063 92.111 0.274304 8.030792 -22.3241 8.786682 -14.0462 6.181163 -8.15262 4.348798 67.72708 326.4727 0.497238 0.712078 -1.94254 2.075193 -4.54589 3.149956 264.8277 -0.04979 -0.82757 2.028851 -1.11722 -4.69775 11.43938 -6.41322 -3.3503 10.5192 8.37744 -4.37216 260 90.23848 269.4158 -0.00563 -1.04127 2.550617 -1.40769 -4.11972 10.07757 -5.58217 270 87.96417 274.9881 0.048015 -1.22769 3.009584 -1.65755 0.53947 360 65.53832 332.5205 -0.15556 0.435637 -0.16809 -29.4084 11.39973 位移线图40015角速度线图5?4角速度 / rad?s-1?4?3速度/m?s-1角位移 / ?2000位移/m00?3Scvc0024时间/s6-18-5024时间/s6-58角加速度线图2020牛头刨床运动仿真800600?4角加速度 / rad?s-2?3-20ac-40-1080加速度/m?s-2mm0104002000-200-2000200mm400600800024时间/s6

图2-2 机构的运动线图

.

.

三 总结

通过对牛头刨床机构的运动分析,让我们学会了如何使用矩阵法建立平面机构的运动方程。对机构进行运动分析的关键是独立位置方程的建立和求解,由于独立位置方程是一个非线性方程组,计算难度较大。本文借用了Matlab软件进行编程求解独立位置方程,同时对牛头刨床机构进行了运动仿真,并绘制了牛头刨床机构的运动线图,完成了从理论分析到编程求解的运动分析过程。

附录一:Matlab程序

(1)子函数PosionFun.m

function f=Position_Fun(x,theta1,h,h1,h2,l1,l3,l4) f=[ x(1)*cos(x(2))+l4*cos(x(3))-h2-l1*cos(theta1); x(1)*sin(x(2))+l4*sin(x(3))-h1-l1*sin(theta1); l3*cos(x(2))+l4*cos(x(3))-x(4); l3*sin(x(2))+l4*sin(x(3))-h]; end

(2)子函数Six_Bar.m function

[theta,omega,alpha]=Six_Bar(theta0,theta1,omega1,alpha1,h,h1,h2,l1,l3,l4)

theta=fsolve(@(x)Position_Fun(x,theta1,h,h1,h2,l1,l3,l4),theta0); S3=theta(1); theta3=theta(2); theta4=theta(3); Sc=theta(4);

%计算连杆3、连杆4、滑块2和C点的速度

A=[ cos(theta3) -S3*sin(theta3) -l4*sin(theta4) 0; sin(theta3) S3*cos(theta3) l4*cos(theta4) 0; 0 -l3*sin(theta3) -l4*sin(theta4) 1; 0 l3*cos(theta3) l4*cos(theta4) 0]; B=[-l1*sin(theta1);l1*cos(theta1);0;0];

omega=A\\(omega1*B); v3=omega(1);

.

.

omega3=omega(2); omega4=omega(3); vc=omega(4);

%计算连杆3、连杆4的角加速度,滑块2及C点的加速度 A=[ cos(theta3) -S3*sin(theta3) -l4*sin(theta4) 0; sin(theta3) S3*cos(theta3) l4*cos(theta4) 0; 0 -l3*sin(theta3) -l4*sin(theta4) 1; 0 l3*cos(theta3) l4*cos(theta4) 0]; At=[-sin(theta3) -l4*omega4*cos(theta4) 0;

cos(theta3) -l4*omega4*sin(theta4) 0;

0 -l3*omega3*cos(theta3) -l4*omega4*cos(theta4) 0; 0 -l3*omega3*sin(theta3) -l4*omega4*sin(theta4) 0]; B=[-l1*sin(theta1);l1*cos(theta1);0;0];

Bt=[-l1*omega1*cos(theta1);-l1*omega1*sin(theta1);0;0];

alpha=A\\(-At*omega+alpha1*B+omega1*Bt); a3=alpha(1); alpha3=alpha(2); alpha4=alpha(3); ac=alpha(4); end

(3)主程序SixBar_main.m

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 牛头刨床机构运动分析 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%

%输入已知数据 clear; l1=0.2; l3=0.96; l4=0.16;

.

-v3*sin(theta3)-S3*omega3*cos(theta3) v3*cos(theta3)-S3*omega3*sin(theta3)

.

h=0.8; h1=0.36; h2=0.12; omega1=5; alpha1=0; hd=pi/180; du=180/pi;

theta0=[0.3;60*hd;270*hd;0.45]; %%

%调用子函数 Six_Bar 计算牛头刨床机构位移,角速度,角加速度 for n1=1:459

theta1(n1)=-2*pi+5.8119+(n1-1)*hd;

[theta,omega,alpha]=Six_Bar(theta0,theta1(n1),omega1,alpha1,h,h1,h2,l1,l3,l4);

S3(n1)=theta(1); %滑块2相对于CD杆的位移 theta3(n1)=theta(2); %杆3转过的角度 theta4(n1)=theta(3); %杆4转过的角度 Sc(n1)=theta(4); %杆5的位移

v3(n1)=omega(1); %滑块2相对于CD杆的速度 omega3(n1)=omega(2); %杆3转过的角速度 omega4(n1)=omega(3); %杆4转过的角速度 vc(n1)=omega(4); %杆5的速度

a3(n1)=alpha(1); %滑块2相对于CD杆的加速度 alpha3(n1)=alpha(2); %杆3转过的角加速度 alpha4(n1)=alpha(3); %杆4转过的角加速度 ac(n1)=alpha(4); %杆5的加速度

theta0=theta; end

thetaOmegaAlpha=[theta3'*du,theta4'*du,Sc',omega3',omega4',vc',alpha3',alpha4',ac'];

xlswrite('Positon_Speed_Acceleration.xls',thetaOmegaAlpha,'sheet1','b1:

.

.

j459');

%%

% 位移,角速度,角加速度和四杆机构图形输出 figure(1); n1=1:459;

t=(n1-1)*2*pi/360;

% 绘角位移和位移线图 subplot(2,2,1);

plot(t,theta3*du,'r-.','LineWidth',1.5); hold on; grid on; axis auto;

[haxes,hline1,hline2]=plotyy(t,theta4*du,t,Sc); set(hline1,'LineWidth',1.5); set(hline2,'LineWidth',1.5); grid on; hold on;

title('位移线图'); xlabel('时间/s'); axes(haxes(1));

ylabel('角位移 / \\circ'); axes(haxes(2)); ylabel('位移/m'); hold on; grid on;

text(2.75,-0.4,'\\theta_3'); text(3,0.65,'\\theta_4'); text(5,-0.25,'S_c');

% 绘角速度及速度线图 subplot(2,2,2);

plot(t,omega3,'r-.','LineWidth',1.5); grid on; hold on; axis auto;

.

.

[haxes,hline1,hline2]=plotyy(t,omega4,t,vc); set(hline1,'LineWidth',1.5); set(hline2,'LineWidth',1.5); grid on; hold on;

title('角速度线图'); xlabel('时间/s'); axes(haxes(1));

ylabel('角速度 / rad\\cdots^{-1}'); axes(haxes(2));

ylabel('速度/m\\cdots^{-1}'); grid on;hold on;

text(1.25,0.55,'\\omega_3'); text(4.65,2.25,'\\omega_4'); text(5,-2.85,'v_c');

% 绘角加速度和加速度线图 subplot(2,2,3);

plot(t,alpha3,'r-.','LineWidth',1.5); grid on; hold on;

[haxes,hline1,hline2]=plotyy(t,alpha4,t,ac); set(hline1,'LineWidth',1.5); set(hline2,'LineWidth',1.5); grid on; hold on;

title('角加速度线图'); xlabel('时间/s'); axes(haxes(1));

ylabel('角加速度 / rad\\cdots^{-2}'); axes(haxes(2));

ylabel('加速度/m\\cdots^{-2}'); grid on;hold on; text(3,6.5,'\\alpha_3'); text(4.25,17.5,'\\alpha_4'); text(1.25,-4.5,'a_c');

.

.

%绘制牛头刨床机构 subplot(2,2,4); n1=20; x(1)=0; y(1)=0;

x(2)=l4*1000*cos(theta4(n1)); y(2)=l4*1000*sin(theta4(n1));

x(3)=l4*1000*cos(theta4(n1))+(S3(n1)*1000-50)*cos(theta3(n1)); y(3)=l4*1000*sin(theta4(n1))+(S3(n1)*1000-50)*sin(theta3(n1)); x(4)=h2*1000; y(4)=h1*1000;

x(5)=x(4)+l1*1000*cos(theta1(n1)); y(5)=y(4)+l1*1000*sin(theta1(n1)); x(6)=x(3)+100*cos(theta3(n1)); y(6)=y(3)+100*sin(theta3(n1));

x(7)=l4*1000*cos(theta4(n1))+l3*1000*cos(theta3(n1)); y(7)=l4*1000*sin(theta4(n1))+l3*1000*sin(theta3(n1)); x(8)=x(7)-900; y(8)=h*1000; x(9)=x(7)+600; y(9)=h*1000;

x(10)=l4*1000*cos(theta4(n1))+(S3(n1)*1000-50)*cos(theta3(n1)); y(10)=l4*1000*sin(theta4(n1))+(S3(n1)*1000-50)*sin(theta3(n1)); x(11)=x(10)+25*cos(pi/2-theta3(n1)); y(11)=y(10)-25*sin(pi/2-theta3(n1)); x(12)=x(11)+100*cos(theta3(n1)); y(12)=y(11)+100*sin(theta3(n1)); x(13)=x(12)-50*cos(pi/2-theta3(n1)); y(13)=y(12)+50*sin(pi/2-theta3(n1)); x(14)=x(10)-25*cos(pi/2-theta3(n1)); y(14)=y(10)+25*sin(pi/2-theta3(n1)); x(15)=x(10); y(15)=y(10); x(16)=0; y(16)=0;

.

.

x(17)=x(4); y(17)=y(4); k=1:3;

plot(x(k),y(k)); hold on; k=4:5;

plot(x(k),y(k)); hold on; k=6:9;

plot(x(k),y(k)); hold on; k=10:15;

plot(x(k),y(k)); hold on; k=16:17;

plot(x(k),y(k),'-.'); hold on; grid on;

axis([-350 800 -250 950]); title('牛头刨床运动仿真'); grid on; xlabel('mm'); ylabel('mm'); plot(x(1),y(1),'o'); plot(x(2),y(2),'o'); plot(x(4),y(4),'o'); plot(x(5),y(5),'o'); plot(x(7),y(7),'o'); %%

%牛头刨床机构运动仿真 figure(2) m=moviein(20); j=0;

for n1=1:5:360 j=j+1; clf;

.

.

x(1)=0; y(1)=0;

x(2)=l4*1000*cos(theta4(n1)); y(2)=l4*1000*sin(theta4(n1));

x(3)=l4*1000*cos(theta4(n1))+(S3(n1)*1000-50)*cos(theta3(n1)); y(3)=l4*1000*sin(theta4(n1))+(S3(n1)*1000-50)*sin(theta3(n1)); x(4)=h2*1000; y(4)=h1*1000;

x(5)=x(4)+l1*1000*cos(theta1(n1)); y(5)=y(4)+l1*1000*sin(theta1(n1)); x(6)=x(3)+100*cos(theta3(n1)); y(6)=y(3)+100*sin(theta3(n1));

x(7)=l4*1000*cos(theta4(n1))+l3*1000*cos(theta3(n1)); y(7)=l4*1000*sin(theta4(n1))+l3*1000*sin(theta3(n1)); x(8)=x(7)-900; y(8)=h*1000; x(9)=x(7)+600; y(9)=h*1000;

x(10)=l4*1000*cos(theta4(n1))+(S3(n1)*1000-50)*cos(theta3(n1)); y(10)=l4*1000*sin(theta4(n1))+(S3(n1)*1000-50)*sin(theta3(n1)); x(11)=x(10)+25*cos(pi/2-theta3(n1)); y(11)=y(10)-25*sin(pi/2-theta3(n1)); x(12)=x(11)+100*cos(theta3(n1)); y(12)=y(11)+100*sin(theta3(n1)); x(13)=x(12)-50*cos(pi/2-theta3(n1)); y(13)=y(12)+50*sin(pi/2-theta3(n1)); x(14)=x(10)-25*cos(pi/2-theta3(n1)); y(14)=y(10)+25*sin(pi/2-theta3(n1)); x(15)=x(10); y(15)=y(10); x(16)=0; y(16)=0; x(17)=x(4); y(17)=y(4); k=1:3;

plot(x(k),y(k));

.

.

hold on; k=4:5;

plot(x(k),y(k)); hold on; k=6:9;

plot(x(k),y(k)); hold on; k=10:15;

plot(x(k),y(k)); hold on; k=16:17;

plot(x(k),y(k),'-.'); hold on; grid on;

axis([-350 800 -250 950]); title('牛头刨床运动仿真'); grid on; xlabel('mm'); ylabel('mm'); plot(x(1),y(1),'o'); plot(x(2),y(2),'o'); plot(x(4),y(4),'o'); plot(x(5),y(5),'o'); plot(x(7),y(7),'o'); axis equal; m(j)=getframe; end for i=1:3 movie(m) end

.

本文来源:https://www.bwwdw.com/article/ilaa.html

Top