牛头刨床运动仿真matlab程序.docx
- 文档编号:27513358
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:11
- 大小:35.49KB
牛头刨床运动仿真matlab程序.docx
《牛头刨床运动仿真matlab程序.docx》由会员分享,可在线阅读,更多相关《牛头刨床运动仿真matlab程序.docx(11页珍藏版)》请在冰豆网上搜索。
牛头刨床运动仿真matlab程序
_main和子函数
角加速度
附录
牛头刨床主运动机构MATLAB程序由主程序six」six_bar两部分组成。
1.主程序six_bar_main文件
%1.输入已知数据clear;
11=0.125;
13=0.600;
14=0.150;
16=0.275;
161=0.575;
omega1=1;
alpha仁0;
hd=pi/180;
du=180/pi;
%2.调用子函数six_bar计算牛头刨床机构位移,角速度,
forn1=1:
459;
theta1(n1)=-2*pi+5.8199+(n1-1)*hd;
II=[I1,I3,I4,I6,I61];
[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©);
n1=1:
459;
t=(n1-1)*2*pi/360;
subplot(2,2,1);%绘角位移及位移线图plot(t,theta3*du,'r-.');
gridon;
holdon;
axisauto;
[haxes,hline1,hline2]=plotyy(t,theta4*du,t,sE);
gridon;
holdon;
xlabel('时间/s')
axes(haxes
(1));
ylabel('角位移八circ')
axes(haxes
(2));
ylabel('位移/m')
holdon;
gridon;
text(1.15,-0.15,'\theta_3')
text(3.40,0.27,'\theta_4')
text(2.25,-0.15,'s_E')
subplot(2,2,2);%绘角速度及速度线图
plot(t,omega3,'r-.');
gridon;
holdon;
axisauto;
[haxes,hline1,hline2]=plotyy(t,omega4,t,vE);
gridon;
holdon;
xlabel('时间/s')
axes(haxes
(1));
ylabel('角速度/rad\cdotsA{-1}')
axes(haxes
(2));
ylabel('速度/m\cdotsA{-1}')
holdon;
gridon;
text(3.1,0.35,'\omega_3')
text(2.1,0.1,'\omega_4')
text(5.5,0.45,'v_E')
subplot(2,2,3);%绘角加速度及加速度线图
plot(t,alpha3,'r-.');
gridon;
holdon;
axisauto;
[haxes,hline1,hline2]=plotyy(t,alpha4,t,aE);gridon;
holdon;
xlabel('时间/s')
axes(haxes
(1));
ylabel('角加速度/rad\cdotsA{-2}')
axes(haxes
(2));
ylabel('加速度/m\cdotsA{-2}')
holdon;
gridon;
text(1.5,0.3,'\alpha_3')
text(3.5,0.51,'\alpha_4')
text(1.5,-0.11,'a_E')
subplot(2,2,4);%牛头刨床机构
n1=20;
x
(1)=0;
y(i)=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⑷=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));
holdon;
k=3:
4;
plot(x(k),y(k));
holdon;
k=5:
9;
plot(x(k),y(k));
holdon;
k=10:
15;
plot(x(k),y(k));
holdon;
k=16:
17;
plot(x(k),y(k));
holdon;
gridon;
axis([-5006000650]);title('牛头刨床运动仿真');gridon;
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⑺,y(7),'o');
holdon;
gridon;
xlabel('mm')
ylabel('mm')
axis([-4006000650]);
%4牛头刨床机构运动仿真
figure
(2)
m=moviein(20);
j=0;
forn仁1:
5:
360
j=j+1;
elf;
x
(1)=0;
y(i)=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⑷=l1*1000*cos(theta1(n1));
y⑷=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));
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)=l6*1000;
k=1:
2;
plot(x(k),y(k));
holdon;
k=3:
4
plot(x(k),y(k));
holdon;
k=5:
9;
plot(x(k),y(k));
holdon;
k=10:
15;
plot(x(k),y(k));
holdon;
k=16:
17;
plot(x(k),y(k));
holdon;
gridon;
axis([-5006000650]);
title('牛头刨床运动仿真');gridon;
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⑺,y(7),'o');
axisequal;
m(j)=getframe;
end
movie(m)
2.子函数six_bar文件
function[theta,omega,alpha]=six_bar(theta1,omega1,alpha1,ll)
11=11
(1);
l3=ll
(2);
14=11(3);
16=11(4);
161=11(5);
%1计算角位移和线位移
s3=sqrt((l1*cos(theta1))*(l1*cos(theta1))+(l6+l1*sin(theta1))*(l6+l1*sin(t
heta1)));
theta3=acos((l1*cos(theta1))/s3);
theta4=pi-asin((l61-l3*sin(theta3))/l4);
sE=l3*cos(theta3)+l4*cos(theta4);
theta
(1)=s3;
theta
(2)=theta3;
theta(3)=theta4;
theta(4)=sE;
%2计算角速度和线速度
%从动件位置参数矩阵
A=[sin(theta3),s3*cos(theta3),0,0;-cos(theta3),s3*sin(theta3),0,0;
0,l3*sin(theta3),l4*(theta4),1;
0,l3*cos(theta3),l4*cos(theta4),0];
%3计算角加速度和加速度
A=[sin(theta3),s3*cos(theta3),0,0;%从动件位置参数矩阵
cos(theta3),-s3*sin(theta3),0,0;
0,l3*sin(theta3),l4*(theta4),1;
0,l3*cos(theta3),l4*cos(theta4),0];
At=[omega3*cos(theta3),(v2*cos(theta3)-s3*omega3*sin(theta3)),0,0;
-omega3*sin(theta3),(-v2*sin(theta3)-s3*omega3*cos(theta3)),0,0;
0,l3*omega3*cos(theta3),l4*omega4*cos(theta4),0;
0,-l3*omega3*sin(theta3),-l4*omega4*sin(theta4),0];
Bt=[-l1*omega1*sin(theta1);-l1*omega1*cos(theta1);0;0];
alpha=A\(-At*omega+omega1*Bt);
a2=alpha
(1);
alpha3=alpha
(2);
alpha4=alpha(3);
aE=alpha(4);
%机构从动件的加速度矩阵
%a2表示滑块2的加速度
%alpha3表示杆件3的角加速度
%alpha4表示杆件4的角加速度
%构件5的加速度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 牛头 刨床 运动 仿真 matlab 程序