机械原理-MATLAB基于四杆机构运动分析的运用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);