当前位置:文档之家› 平面连杆机构运动分析

平面连杆机构运动分析

平面连杆机构运动分析
平面连杆机构运动分析

大作业(一)

平面连杆机构的运动分析

班级:

姓名:姓名:姓名:

指导教师:

完成日期:

一、题目及原始数据

、平面连杆机构的运动分析题目:

如图所示,为一平面六杆机构。设已知各构件的尺寸如表 所示,又知原动

件1以等角速度1ω= 1rad/s 沿逆时针方向回转,试求各从动件的角位移、角速度及角加速度以及位移E 点的位移、速度及加速度的变化情况。

表 平面六杆机构的尺寸参数

2'l =65mm,G x =,G y = 题 号 1l 2l

3l 4l 5l 6l

α

A B

C

1-A

25 60° 1l =

1l =24

1l =

要求每组(每三人为一组,每人一题)至少打印一份源程序,每个同学计 算出原动件从 0o到 360o时(计算点数 N=36)所要求各运动变量的大小,并绘出各组应的运动线图以及 E 点的轨迹曲线。

二、平面连杆机构运动分析方程

、位移方程:

4312l4cos cos l1cos 0h θθθ--= 43311l4sin s sin l1sin 0h θθθ+--= 43l4cos l3cos s c 0θθ+-?= 43l4sin l3 sin h 0θθ+-=

[]3

43c v v ωω

、速度方程:

34333

4331434

3

cos l4sin s sin 0sin l4cos s cos 0V 0l4sin l3sin 10

l4cos l3cos 0θθθθ

θθθθθθ--?????

?=??---????

[]211V l1sin l1cos 00θθ=-

[]3343V c v v ωω=

3V V1\V2=

、加速度方程:

3344333333

4433333

11144334433

sin 14cos v sin s cos 014sin ?v cos s sin 0014cos 13cos 00

14sin 13sin 0A ωθωθθωθω

ωθθωθωθωθωθωθ+????--+?

?=??????

[]112343c A =v v ωω

11111112A A A =?

[]1211A l1cos l1sin 00θθ=--

11112A A A =+

[]3343A a c a γγ=

321A A \A =

三、计算程序框图

迭代次数IT=0IT=IT+1

调用位置方程(1)子程序代入的初值θi ,并计算f i

|f i |≤E

求得θi 值

Y IT>IT max

N 停止

Y 调系数矩阵A

V

调用高斯消去法子程序

求解A △θi =f i

求出△θi

θi =θi +△θi

四、计算源程序主程序

%输入已知数据

clear

l1=;

l2=;

l3=;

l4=;

l5=;

l6=;

l22=;

xg=;

yg=;

omega1=1;

alph1=0;

hd=pi/180;

du=180/pi;

t1=1:10:361;

theta2=1:10:361;

theta3=1:10:361;

theta5=1:10:361;

theta6=1:10:361;

omega2=1:10:361;

omega3=1:10:361;

omega5=1:10:361;

omega6=1:10:361;

alph2=1:10:361;

alph3=1:10:361;

alph5=1:10:361;

alph6=1:10:361;

xe=1:10:361;

ye=1:10:361;

V=1:10:361;

a=1:10:361;

theta1=0;

options=gaoptimset('PopulationSize',100,'Generations',10000,'StallGenLimit',500,'TolFun',1e-100);

theta0=ga(@(thet) weiyi_0(thet,theta1),4,options);

if theta0(1)<0

theta0(1)=theta0(1)+2*pi;end

if theta0(1)>2*pi

theta0(1)=theta0(1)-2*pi;end

if theta0(2)<0

theta0(2)=theta0(2)+2*pi;end

if theta0(2)>2*pi

theta0(2)=theta0(2)-2*pi;end

if theta0(3)<0

theta0(3)=theta0(3)+2*pi;end

if theta0(3)>2*pi

theta0(3)=theta0(3)-2*pi;end

if theta0(4)<0

theta0(4)=theta0(4)+2*pi;end

if theta0(4)>2*pi

theta0(4)=theta0(4)-2*pi;

end

%调用子函数Fun_jixie计算该六杆机构的各杆角位移、角速度、角加速度以及E点的角位移、角速度、角加速度

for n1=1:10:361

theta1=(n1-1)*hd;

t1(n1)=theta1*du;

theta=fsolve(@(thet) weiyi(thet,theta1),theta0);

if theta(1)<0

theta(1)=theta(1)+2*pi;end

if theta(1)>2*pi

theta(1)=theta(1)-2*pi;end

if theta(2)<0

theta(2)=theta(2)+2*pi;end

if theta(2)>2*pi

theta(2)=theta(2)-2*pi;end

if theta(3)<0

theta(3)=theta(3)+2*pi;end

if theta(3)>2*pi

theta(3)=theta(3)-2*pi;end

if theta(4)<0

theta(4)=theta(4)+2*pi;end

if theta(4)>2*pi

theta(4)=theta(4)-2*pi;end

[xe(n1),ye(n1)]=weiyi_E(theta1,theta,l1,l2,l22);

[omega,alph] = Fun_jixie(theta1,omega1,l1,l2,l3,l5,l6,l22,theta);

[V(n1),a(n1)]=sudu_jasudu_E(omega(1),alph(1),theta,theta1,omega1,l1,l2,l22,alph1); theta2(n1)=theta(1);theta3(n1)=theta(2);theta5(n1)=theta(3);theta6(n1)=theta(4);omega2(n1)=o mega(1);omega3(n1)=omega(2);omega5(n1)=omega(3);omega6(n1)=omega(4);

alph2(n1)=alph(1);alph3(n1)=alph(2);alph5(n1)=alph(3);alph6(n1)=alph(4);

theta0=theta;

end

%绘制各杆件的角位移、角速度、角加速度

n2=1:10:361;

n1=1:10:361;

figure(1);%%%%%%

subplot(2,2,1)%绘制位移线图

plot((n1-1),theta2(n2)*du,'r-',(n1-1),theta3(n2)*du,'g-',(n1-1),theta5(n2)*du,'y-',(n1-1),th eta6(n2)*du,'k-','LineWidth',;

title('各杆角位移线图');

xlabel('原动件1\theta_1/\circ');

ylabel('角位移/\circ');

grid on;hold on;

text(200,60,'θ2');

text(200,150,'θ3');

text(200,350,'θ5');

text(200,260,'θ6');

%%%%%%

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

plot((n1-1),omega2(n2),'r-',(n1-1),omega3(n2),'g-',(n1-1),omega5(n2),'y-',(n1-1),omega6(n2), 'k-','LineWidth',;

title('各杆角速度线图');

xlabel('原动件1\theta_1/\circ');

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

grid on;hold on;

%%%%%%

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

plot((n1-1),alph2(n2),'r-',(n1-1),alph3(n2),'g-',(n1-1),alph5(n2),'y-',(n1-1),alph6(n2),'k-' ,'LineWidth',;

title('各杆角加速度线图');

xlabel('原动件1\theta_1/\circ');

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

grid on;hold on;

%%%%%%%

%求E点的位移

figure(2)

subplot(2,2,1)

plot(xe(n1),ye(n1),'r-','LineWidth',;

title('E的位移线图');

xlabel('E在x方向位移');

ylabel('E在y方向位移');

grid on;hold on;

%求E点角速度与角加速度

subplot(2,2,2)%绘制E点角速度

plot((n1-1),V(n1),'r-','LineWidth',;

title('E点角速度');

xlabel('原动件1\theta_1/\circ');

ylabel('E点角速度/rad\cdots^{-1}');

grid on;hold on;

subplot(2,2,3)%绘制E点角加速度

plot((n1-1),a(n1),'r-','LineWidth',;

title('E点角加速度');

xlabel('原动件1\theta_1/\circ');

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

grid on;hold on;

%将数据输出到Exel表中

xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',t1(n1)','sheet1','A1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',theta2(n1)'*du,'sheet1','B1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',theta3(n1)'*du,'sheet1','C1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',theta5(n1)'*du,'sheet1','D1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',theta6(n1)'*du,'sheet1','E1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',omega2(n1)','sheet1','F1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',omega3(n1)','sheet1','G1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',omega5(n1)','sheet1','H1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',omega6(n1)','sheet1','I1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',alph2(n1)','sheet1','J1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',alph3(n1)','sheet1','K1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',alph5(n1)','sheet1','L1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',alph6(n1)','sheet1','M1'); xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',V(n1)','sheet1','N1');

xlswrite('E:\机械原理大作业\平面六杆机构\Matlab程序\',a(n1)','sheet1','O1');

从动件角位移,角速度,角加速度

function [omega,alph ] = Fun_jixie( theta1,omega1,l1,l2,l3,l5,l6,l22,theta)

%从动件角位移

theta2=theta(1);theta3=theta(2);theta5=theta(3);theta6=theta(4);

%%%%%%

%计算从动件角速度

A=[ -l2*sin(theta2), l3*sin(theta3), 0, 0;

l2*cos(theta2), -l3*cos(theta3), 0, 0;

-l22*sin(theta2 - pi/3), -l3*sin(theta3), -l5*sin(theta5), l6*sin(theta6);

l22*cos(theta2 - pi/3), l3*cos(theta3), l5*cos(theta5), -l6*cos(theta6)];

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

omega=A\(omega1*B);

omega2=omega(1);omega3=omega(2);omega5=omega(3);omega6=omega(4);

%%%%%

%计算角从动件角加速度

A=[ -l2*sin(theta2), l3*sin(theta3), 0, 0;

l2*cos(theta2), -l3*cos(theta3), 0, 0;

-l22*sin(theta2 - pi/3), -l3*sin(theta3), -l5*sin(theta5), l6*sin(theta6);

l22*cos(theta2 - pi/3), l3*cos(theta3), l5*cos(theta5), -l6*cos(theta6)];

At=[-l2*omega2*cos(theta2),l3*omega3*cos(theta3), 0, 0;

-l2*omega2*sin(theta2),l3*omega3*sin(theta3), 0, 0;

-l22*omega2*cos(theta2 - pi/3),-l3*omega3*cos(theta3),-l5*omega5*cos(theta5),l6*omega6*cos(theta6);

-l22*omega2*sin(theta2 - pi/3),-l3*omega3*sin(theta3),-l5*omega5*sin(theta5),l6*omega6*sin(theta6)];

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

alph=A\(-At*omega+omega1*Bt);

end

点角速度,角加速度

function [V,a]=sudu_jasudu_E(omega,alph,theta,theta1,omega1,l1,l2,l22,alph1)

%求E点角速度

A=[-l1*sin(theta1),-l2*sin(theta(2))+l22*sin(pi/3-theta(1));l1*cos(theta1),l2*cos(theta(1))-l22*cos(pi/3-theta(1))];

B=[omega1;omega(1)];

Vx=-l1*sin(theta1)*omega1-l2*sin(theta(2))+l22*sin(pi/3-theta(1))*omega(1);

Vy=l1*cos(theta1)*omega1+l2*cos(theta(1))-l22*cos(pi/3-theta(1))*omega(1);

V=sqrt(Vx^2+Vy^2);

%求E点角加速度

D1=[alph1;alph(1)];

D2=[-l1*cos(theta1)*omega1,-l2*cos(theta(1))*omega(1)-l22*cos(pi/3-theta(1))*omega(1);-l1*si n(theta1)*omega1,-l2*sin(theta(2))*omega(1)+l22*sin(pi/3-theta(1))*omega(1)];

a1=A*D1+D2*B;

a=sqrt(a1(1)^2+a1(2)^2);

end

E点位移

function [ xe,ye ] = weiyi_E( theta1,theta,l1,l2,l22)

xe=l1*cos(theta1)+l2*cos(theta(1))+l22*cos(pi/3-theta(1));

ye=l1*sin(theta1)+l2*sin(theta(2))+l22*sin(pi/3-theta(1));

end

五、计算结果

1-C

1-A

各杆角位移变化:主动杆1 从动杆2 从动杆3 从动杆5 从动杆6 角速度变化:主动杆1 从动杆2 从动杆3 从动杆5 从动杆6 角加速度变化:从动杆2 从动杆3 从动杆5 从动杆6 E点速度 E点加速度

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

160

170

180

190

200

210

220

230

250 260 270 280 290 300 310 320 330 340 350 360 1-B 0 10 20 30 40 50 60 70 80 90 100 110 120

140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360

相关主题
文本预览
相关文档 最新文档