牛头刨床运动仿真matlab程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
牛头刨床主运动机构MATLAB!序由主程序six_bar_main和子函数six_bar两部分组成。
1.主程序six_bar_main 文件
%1.输入已知数据
clear;
l1=;
l3=;
l4=;
l6=;
l61=; omega1=1; alpha1=0; hd=pi/180; du=180/pi;
%2.调用子函数six_bar 计算牛头刨床机构位移,角速度,角加速度
for n1=1:459;
theta1(n1)=-2*pi++(n1-1)*hd; ll=[l1,l3,l4,l6,l61];
[theta,omega,alpha]=six_bar(theta1(n1),omega1,alpha1,ll); s3(n1)=theta(1);
theta3(n1)=theta(2);
theta4(n1)=theta(3);
sE(n1)=theta(4); v2(n1)=omega(1);
omega3(n1)=omega(2);
omega4(n1)=omega(3); vE(n1)=omega(4);
a2(n1)=alpha(1);
alpha3(n1)=alpha(2);
alpha4(n1)=alpha(3); aE(n1)=alpha(4);
end
%3.位移、角速度、角加速度、和牛头刨床图形输出figure(3);
n1=1:459; t=(n1-1)*2*pi/360;
subplot(2,2,1); % 绘角位移及位移线图plot(t,theta3*du,'r-.');
grid on; hold on;
axis auto; [haxes,hline1,hline2]=plotyy(t,theta4*du,t,sE);
grid on; hold on; xlabel(' 时间/s') axes(haxes(1)); ylabel(' 角位移/\circ')
axes(haxes(2));
ylabel(' 位移/m') hold on;
grid on; text,,'\theta_3') text,,'\theta_4') text,,'s_E') subplot(2,2,2); % 绘角速度及速度线图plot(t,omega3,'r-.');
grid on; hold on;
axis auto; [haxes,hline1,hline2]=plotyy(t,omega4,t,vE);
grid on; hold on;
xlabel(' 时间/s') axes(haxes(1));
ylabel('角速度/rad\cdots A{-1}')
axes(haxes(2));
ylabel(' 速度/m\cdotsA{-1}')
hold on;
grid on; text,,'\omega_3') text,,'\omega_4') text,,'v_E') subplot(2,2,3); % 绘角加速度及加速度线图plot(t,alpha3,'r-.');
grid on;
hold on;
axis auto; [haxes,hline1,hline2]=plotyy(t,alpha4,t,aE);
grid on;
hold on;
xlabel(' 时间/s') axes(haxes(1));
ylabel('角加速度/rad\cdots A{-2}')
axes(haxes(2));
ylabel(' 加速度/m\cdotsA{-2}') hold on;
grid on;
text,,'\alpha_3')
text,,'\alpha_4') text,,'a_E')
subplot(2,2,4); % 牛头刨床机构n1=20;
x(1)=0;
y(1)=0;
x(2)=(s3(n1)*1000-50)*cos(theta3(n1)); y(2)=(s3(n1)*1000-50)*sin(theta3(n1));
x(3)=0; y(3)=16*1000;
x(4)=l1*1000*cos(theta1(n1)); y(4)=s3(n1)*1000*sin(theta3(n1));
x(5)=(s3(n1)*1000+50)*cos(theta3(n1)); y(5)=(s3(n1)*1000+50)*sin(theta3(n1));
x(6)=13*1000*cos(theta3(n1)); y(6)=13*1000*sin(theta3(n1));
x(7)=13*1000*cos(theta3(n1))+14*1000*cos(theta4(n1));
y(7)=13*1000*sin(theta3(n1))+14*1000*sin(theta4(n1));
x(8)=13*1000*cos(theta3(n1))+14*1000*cos(theta4(n1))-900; y(8)=161*1000;
x(9)=13*1000*cos(theta3(n1))+14*1000*cos(theta4(n1))+600; y(9)=161*1000;
x(10)=(s3(n1)*1000-50)*cos(theta3(n1)); y(10)=(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)=0; y(17)=16*1000; k=1:2;
plot(x(k),y(k)); hold on; k=3:4; plot(x(k),y(k)); hold on; k=5: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([-500 600 0 650]); title(' 牛头刨床运动仿真'); grid on;
xlabel('mm') ylabel('mm') plot(x(1),y(1),'o'); plot(x(3),y(3),'o');
plot(x(4),y(4),'o'); plot(x(6),y(6),'o'); plot(x(7),y(7),'o'); hold on; grid on; xlabel('mm') ylabel('mm') axis([-400 600 0 650]); %4牛头刨床机构运动仿真figure(2) m=moviein(20);
j=0;
for n1=1:5:360 j=j+1; clf; x(1)=0; y(1)=0; x(2)=(s3(n1)*1000-50)*cos(theta3(n1));
y(2)=(s3(n1)*1000-50)*sin(theta3(n1)); x(3)=0;
y(3)=l6*1000 x(4)=l1*1000*cos(theta1(n1)); y(4)=s3(n1)*1000*sin(theta3(n1));
x(5)=(s3(n1)*1000+50)*cos(theta3(n1)); y(5)=(s3(n1)*1000+50)*sin(theta3(n1));
x(6)=l3*1000*cos(theta3(n1)); y(6)=l3*1000*sin(theta3(n1));
x(7)=l3*1000*cos(theta3(n1))+l4*1000*cos(theta4(n1));
x(7)=l3*1000*cos(theta3(n1))+l4*1000*cos(theta4(n1));
y(7)=l3*1000*sin(theta3(n1))+l4*1000*sin(theta4(n1));
x(8)=l3*1000*cos(theta3(n1))+l4*1000*cos(theta4(n1))-900; y(8)=l61*1000;
x(9)=l3*1000*cos(theta3(n1))+l4*1000*cos(theta4(n1))+600; y(9)=l61*1000;
x(10)=(s3(n1)*1000-50)*cos(theta3(n1)); y(10)=(s3(n1)*1000-50)*sin(theta3(n1));