机械原理-MATLAB基于四杆机构运动分析的运用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB软件由美国MathWorks公司于1982年推出,经过十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件之一。

MATLAB提供了强大的矩阵处理和绘图功能。它主要包括两部分内容:核心函数和工具箱。Matlab编程代码接近数学推导公式,简洁直观,与科技人员的思维方式和书写习惯相适应,操作简易,人机交互性能好,且可以方便迅速地用三维图形、图像、声音、动画等表达计算结果,拓展思路。

编制相应的M函数文件。Pos.m用于求解位置、角度和角加速度。th1为初始角度,w1为杆1角速度,其余为杆长。将课本P35(i)、(ii)、(iii)式用MATLAB语言表述,即可编制为四杆机构求解函数文件pos.m。

function f=pos(th1,w1,l1,l2,l3,l4)

syms x21 x31 x22 x32

x1=th1*pi/180;x11=cos(x1);x12=sin(x1);

eq1=l1*x11+l2*x21-l3*x31-l4;

eq2=l1*x12+l2*x22-l3*x32;

eq3=x21^2+x22^2-1;eq4=x31^2+x32^2-1;

s=solve(eq1,eq2,eq3,eq4,x21,x22,x31,x32);

s1=double(s.x21); s2=double(s.x22);

s3=double(s.x31); s4=double(s.x32);

x2=(acos(s1(1,1)))/pi*180;

x3=(acos(s3(1,1)))/pi*180;

A=[l2*s2(1,1),-l3*s4(1,1);l2*s1(1,1),-l3*s3(1,1)];

B=[-l1*x12;-l1*x11];

w=A\(w1*B);w2=w(1,1);w3=w(2,1);

C=[-l2*w(1,1)*s1(1,1),l3*w(2,1)*s3(1,1);l2*w(1,1)*s2(1,1),-l3*w(2,1)*s4(1,1)];

D=[w(1,1);w(2,1)];E=[-l1*w1*x11;l1*w1*x12];

F=[l2*s2(1,1),-l3*s4(1,1);l2*s1(1,1),-l3*s3(1,1)];

t=F\(C*D+w1*E);a2=t(1,1);a3=t(2,1);

l1=cat(1,th1,w1,0);l2=cat(1,x2,w2,a2);

l3=cat(1,x3,w3,a3);f=(cat(2,l1,l2,l3))';

subplot(2,2,1);plot(th1,w2,'r-');hold on;title('连杆2角速度分析');

subplot(2,2,2);plot(th1,a2,'b-');hold on;title('连杆2角加速度分析');

subplot(2,2,3);plot(th1,w3,'r-');hold on;title('连杆3角速度分析');

subplot(2,2,4);plot(th1,a3,'b-');hold on;title('连杆3角加速度分析');

return

在MA TLAB命令窗口输入命令:

>> th1=60;w1=pi/3;l1=20;l2=30;l3=40;l4=45;

>> function f=pos(th1,w1,l1,l2,l3,l4)

60°,ω=pi/3时的值

即可得到

theta=

采用实时动画的方法编写draw.m文件:

function dw = draw(l1,l2,l3,l4,x1,x2,x3)

figure(2);

th1=x1*pi/180;th2=x2*pi/180;th3=x3*pi/180;

x=0:0.001:l4;plot(x,0,'r-');axis([-25,70,-25,60]);hold on

for i=0:0.1:l1;

s=i*cos(th1); c=i*sin(th1);

plot(s,c,'b-');hold on;

end;

for x=0:0.1:l3;

s2=x*cos(th3)+l4;c2=x*sin(th3);

plot(s2,c2);hold on;

end

for x=0:0.1:l2;

s3=l1*cos(th1)+x*cos(th2); c3=l1*sin(th1)+x*sin(th2);

plot(s3,c3);hold on;

end

return

代入pos.m中所得的结果,输入命令:

>>draw(l1,l2,l3,l4,y(1,1),y(2,1),y(3,1))

即可得到当前位置下的四杆图形。

实例计算

假设已知各杆的尺寸和杆1的初始角度th1及角速度w1,其分别为th1=60,w1=pi/3,l1=25,l2=40,l3=50,l4=60。

现求在图1所示位置时的杆2和3的角位移,角速度和角加速度及当前位置下的四杆机构图形。仅需输入:

>> th1=60;w1=pi/3;l1=25;l2=40;l3=50;l4=60;

>> pos(th1,w1,l1,l2,l3,l4)

>>draw(l1,l2,l3,l4,y(1,1),y(2,1),y(3,1))

若要得到四杆机构的运动图形,则输入:

>>for m=0:1:360;%步距为1°,可更改;

y=pos(m,w1,l1,l2,l3,l4);

相关文档
最新文档