机械原理创新设计
自动打印机
一、总功能及设计参数
自动打印机的功能是将输入的产品包装盒打印上某种标记,然后输出。 自动打印机的设计参数
二、功能分解
主要有两个过程,一是将包装盒传输到某个位置,打印上标记后将其输出,要求实现间歇传动。二是在包装盒上打印标记。 三、机构选型
对于包装盒的输送和输出,选用皮带传动,间歇传动有不完全齿轮实现。对包装盒的打印过程先有凸轮实现运动形式的转换再由连杆机构实现打印过程。 四、运动循环图
运动循环时间T=1s。
五、总体方案设计
电动机的转速为1500r/min,由蜗杆蜗轮将转速降为60r/min,偏心轮O2实现杆L1的上下运动,O4上的不完全齿轮实现皮带上的工作台的间歇运动。 六、尺寸确定
蜗杆的头数为2,蜗轮的齿数是50,m=2。Ro2=40mm,O1O2=20mm。O1到皮带的距离是64.34mm。O1,O3、O4上的齿轮是齿数为26,m=2的标准齿轮。O4上的不完全齿轮的齿数为6,m=4。滚子的半径为10mm。L1=300,L2=135mm,L3=L4=90mm,L5=128mm。
七、运动分析
编写程序对O2、L1、L2、L3L4、L5组成的机构进行运动分析。主程序如下:
#include
void bark(n1,n2,n3,k,r1,r2,gam,t,w,e,p,vp,ap) int n1,n2,n3,k; double r1,r2,gam;
double p[20][2],vp[20][2],ap[20][2];
double t[10],w[10],e[10];
{
double rx2,ry2,rx3,ry3; if(n2!=0) {
rx2=r1*cos(t[k]); ry2=r1*sin(t[k]);
p[n2][1]=p[n1][1]+rx2; p[n2][2]=p[n1][2]+ry2;
vp[n2][1]=vp[n1][1]-ry2*w[k]; vp[n2][2]=vp[n1][2]+rx2*w[k];
ap[n2][1]=ap[n1][1]-ry2*e[k]-rx2*w[k]*w[k]; ap[n2][2]=ap[n1][2]+rx2*e[k]-ry2*w[k]*w[k]; } if(n3!=0) {
rx3=r2*cos(t[k]+gam); ry3=r2*sin(t[k]+gam); p[n3][1]=p[n1][1]+rx3; p[n3][2]=p[n1][2]+ry3;
vp[n3][1]=vp[n1][1]-ry3*w[k]; vp[n3][2]=vp[n1][2]+rx3*w[k];
ap[n3][1]=ap[n1][1]-ry3*e[k]-rx3*w[k]*w[k]; ap[n3][2]=ap[n1][2]+rx3*e[k]-ry3*w[k]*w[k]; } }
/****************rrpk********************************************/ void rrpk(m,n1,n2,n3,k1,k2,k3,r1,r2,vr2,ar2,t,w,e,p,vp,ap) int m,n1,n2,n3,k1,k2,k3; double r1,*r2,*vr2,*ar2;
double p[20][2],vp[20][2],ap[20][2]; double t[10],w[10],e[10]; {
double dx12,dy12,dx31,dy31,dx32,dy32; double ssq,phi,ep,u,fp,cb,sb,ct,st,q,ev,fv,ea,fa; t[k2]=t[k3];
dx12=p[n1][1]-p[n2][1]; dy12=p[n1][2]-p[n2][2]; ssq=dx12*dx12+dy12*dy12; phi=atan2(dy12,dx12);
ep=sqrt(ssq)*cos(phi-t[k3]); u=sqrt(ssq)*sin(phi-t[k3]); if((r1-fabs(u))
printf(
} else {
fp=sqrt(r1*r1-u*u); if(m>0) { *r2=ep+fp; } else { *r2=ep-fp; } cb=cos(t[k3]); sb=sin(t[k3]);
p[n3][1]=p[n2][1]+(*r2)*cb; p[n3][2]=p[n2][2]+(*r2)*sb; dx31=p[n3][1]-p[n1][1]; dy31=p[n3][2]-p[n1][2]; dx32=p[n3][1]-p[n2][1]; dy32=p[n3][2]-p[n2][2]; t[k1]=atan2(dy31,dx31); ct=cos(t[k1]); st=sin(t[k1]);
q=dy31*sb+dx31*cb;
ev=vp[n2][1]-vp[n1][1]-(*r2)*w[k3]*sb; fv=vp[n2][2]-vp[n1][2]+(*r2)*w[k3]*cb; w[k1]=(-ev*sb+fv*cb)/q; *vr2=-(ev*dx31+fv*dy31)/q; vp[n3][1]=vp[n1][1]-r1*w[k1]*st; vp[n3][2]=vp[n1][2]+r1*w[k1]*ct;
ea=ap[n2][1]-ap[n1][1]+w[k1]*w[k1]*dx31-w[k3]*w[k3]*(*r2)*cb; ea=ea-2.0*w[k3]*(*vr2)*sb-e[k3]*dy32;
fa=ap[n2][2]-ap[n1][2]+w[k1]*w[k1]*dy31-w[k3]*w[k3]*(*r2)*sb; fa=fa+2.0*w[k3]*(*vr2)*cb-e[k3]*dx32; e[k1]=(-ea*sb+fa*cb)/q; *ar2=-(ea*dx31+fa*dy31)/q;
ap[n3][1]=ap[n1][1]-r1*w[k1]*w[k1]*ct-r1*e[k1]*st; ap[n3][2]=ap[n1][2]-r1*w[k1]*w[k1]*st+r1*e[k1]*ct; w[k2]=w[k3]; e[k2]=e[k3]; } }
/***************rprk*******************************************/ void rprk(m,n1,n2,k1,k2,r1,r2,vr2,ar2,t,w,e,p,vp,ap)
int m,n1,n2,k1,k2;
double r1,*r2,*vr2,*ar2;
double p[20][2],vp[20][2],ap[20][2]; double t[10],w[10],e[10]; {
double dx21,dy21,test,phi,alpha,ct,st,q,vx21,vy21,ea,fa; dx21=p[n2][1]-p[n1][1]; dy21=p[n2][2]-p[n1][2];
test=dx21*dx21+dy21*dy21-r1*r1; if(test
printf(
*r2=sqrt(test);
phi=atan2(dy21,dx21); alpha=atan(r1/(*r2)); if(m>0) {
t[k1]=phi+alpha; } else {
t[k1]=phi-alpha; } t[k2]=t[k1]; ct=cos(t[k1]); st=sin(t[k1]);
q=dx21*ct+dy21*st;
vx21=vp[n2][1]-vp[n1][1]; vy21=vp[n2][2]-vp[n1][2]; w[k1]=(vy21*ct-vx21*st)/q; w[k2]=w[k1];
*vr2=(vy21*dy21+vx21*dx21)/q;
ea=ap[n2][1]-ap[n1][1]+w[k1]*w[k1]*dx21+2.0*w[k1]*(*vr2)*st; fa=ap[n2][2]-ap[n1][2]+w[k1]*w[k1]*dy21-2.0*w[k1]*(*vr2)*ct; e[k1]=-(ea*st-fa*ct)/q; e[k2]=e[k1];
*ar2=(ea*dx21+fa*dy21)/q; } }
static double p[20][3],vp[20][3],ap[20][3],del,t[10],w[10],e[10];
static int ic;
double r12,r23,r45,r56,r67,l1,l2; double pi,dr;
double r2,vr2,ar2; int i,m; main() {
FILE *fp;
pi=3.1415926; dr=pi/(180.0);
r12=20; r23=40; r45=135; r56=90; r67=90; l1=300; l2=128; p[1][1]=0.0; p[1][2]=0.0;
p[5][1]=-135.0; p[5][2]=334.64; p[8][1]=-265.0; p[8][2]=334.64; t[1]=0.0; w[1]=2*pi; e[1]=0.0; t[9]=90.0*dr; w[9]=0.0; e[9]=0.0; t[8]=-90.0*dr; w[8]=0.0; e[8]=0.0; del=10.0;
printf(
printf(
fprintf(fp,
t[1]=i*del*dr;
bark(1,2,0,1,r12,0.0,0.0,t,w,e,p,vp,ap); /*调用单级杆件运动分析子程序*/
rrpk(1,2,1,3,2,3,9,r23,&r2,&vr2,&ar2,t,w,e,p,vp,ap); /*调用rrp杆件运动分析子程序*/
p[3][2]+=l1;
rprk(1,5,3,4,5,0.0,&r2,&vr2,&ar2,t,w,e,p,vp,ap); /*调用rpr杆件运动分析子程序*/ t[5]+=pi;
bark(5,6,0,5,r56,0.0,0.0,t,w,e,p,vp,ap);
rrpk(1,6,8,7,7,8,8,r67,&r2,&vr2,&ar2,t,w,e,p,vp,ap); p[7][2]-=l2;
printf(
fprintf(fp,
}
fclose(fp); getch(); }
得到如下数据:
NO THETAI S7 V7 A7 deg
1 0.000 2 10.000 3 20.000 4 30.000 5 40.000 6 50.000 7 60.000 8 70.000 9 80.000 10 90.000 11 100.000 12 110.000 13 120.000 14 130.000 15 140.000 16 150.000 17 160.000 18 170.000 19 180.000 20 190.000 21 200.000 22 210.000 23 220.000 24 230.000 25 240.000 26 250.000 27 260.000 28 270.000 29 280.000 30 290.000 31 300.000 32 310.000 33 320.000 mm 135.010 mm/s -83.775 -89.418 -90.947 -87.804 -80.078 -68.389 -53.647 -36.802 -18.692 0.000 18.692 36.802 53.647 68.389 80.078 87.804 90.947 89.418 83.775 75.107 64.714 53.767 43.088 33.110 23.950 15.521 7.623 0.000 -7.623 -15.521 -23.950 -33.110 -43.088 mm/s/s -265.212 -134.303 27.645 198.017 354.381 481.583 574.046 633.740 666.134 676.270 666.134 633.740 574.046 481.583 354.381 198.017 27.645 -134.303 -265.212 -350.903 -390.247 -392.974 -373.340 -344.448 -315.640 -292.468 -277.766 -272.757 -277.766 -292.468 -315.640 -344.448 -373.340
126.017 123.603 121.087 118.594 116.252 114.182 112.481 111.221 110.448 110.188 110.448 111.221 112.481 114.182 116.252 118.594 121.087 123.603 126.017 128.229 130.173 131.819 133.163 134.220 135.010 135.557 135.877 135.983 135.877 135.557 134.220 133.163
34 330.000 131.819 -53.767 -392.974 35 340.000 130.173 -64.714 -390.247 36 350.000 128.229 -75.107 -350.903 37 360.000 126.017 -83.775 -265.212
可知打印装置的最低位置为距O1 110.188mm,最高位置为135.983mm。 工作台每次移动的距离为6*4*3.14=75.36mm,于是便可实现工作台每秒钟移动75.36mm打印一个包装盒的功能。
机械原理创新设计
自动打印机
一、总功能及设计参数
自动打印机的功能是将输入的产品包装盒打印上某种标记,然后输出。 自动打印机的设计参数
二、功能分解
主要有两个过程,一是将包装盒传输到某个位置,打印上标记后将其输出,要求实现间歇传动。二是在包装盒上打印标记。 三、机构选型
对于包装盒的输送和输出,选用皮带传动,间歇传动有不完全齿轮实现。对包装盒的打印过程先有凸轮实现运动形式的转换再由连杆机构实现打印过程。 四、运动循环图
运动循环时间T=1s。
五、总体方案设计
电动机的转速为1500r/min,由蜗杆蜗轮将转速降为60r/min,偏心轮O2实现杆L1的上下运动,O4上的不完全齿轮实现皮带上的工作台的间歇运动。 六、尺寸确定
蜗杆的头数为2,蜗轮的齿数是50,m=2。Ro2=40mm,O1O2=20mm。O1到皮带的距离是64.34mm。O1,O3、O4上的齿轮是齿数为26,m=2的标准齿轮。O4上的不完全齿轮的齿数为6,m=4。滚子的半径为10mm。L1=300,L2=135mm,L3=L4=90mm,L5=128mm。
七、运动分析
编写程序对O2、L1、L2、L3L4、L5组成的机构进行运动分析。主程序如下:
#include
void bark(n1,n2,n3,k,r1,r2,gam,t,w,e,p,vp,ap) int n1,n2,n3,k; double r1,r2,gam;
double p[20][2],vp[20][2],ap[20][2];
double t[10],w[10],e[10];
{
double rx2,ry2,rx3,ry3; if(n2!=0) {
rx2=r1*cos(t[k]); ry2=r1*sin(t[k]);
p[n2][1]=p[n1][1]+rx2; p[n2][2]=p[n1][2]+ry2;
vp[n2][1]=vp[n1][1]-ry2*w[k]; vp[n2][2]=vp[n1][2]+rx2*w[k];
ap[n2][1]=ap[n1][1]-ry2*e[k]-rx2*w[k]*w[k]; ap[n2][2]=ap[n1][2]+rx2*e[k]-ry2*w[k]*w[k]; } if(n3!=0) {
rx3=r2*cos(t[k]+gam); ry3=r2*sin(t[k]+gam); p[n3][1]=p[n1][1]+rx3; p[n3][2]=p[n1][2]+ry3;
vp[n3][1]=vp[n1][1]-ry3*w[k]; vp[n3][2]=vp[n1][2]+rx3*w[k];
ap[n3][1]=ap[n1][1]-ry3*e[k]-rx3*w[k]*w[k]; ap[n3][2]=ap[n1][2]+rx3*e[k]-ry3*w[k]*w[k]; } }
/****************rrpk********************************************/ void rrpk(m,n1,n2,n3,k1,k2,k3,r1,r2,vr2,ar2,t,w,e,p,vp,ap) int m,n1,n2,n3,k1,k2,k3; double r1,*r2,*vr2,*ar2;
double p[20][2],vp[20][2],ap[20][2]; double t[10],w[10],e[10]; {
double dx12,dy12,dx31,dy31,dx32,dy32; double ssq,phi,ep,u,fp,cb,sb,ct,st,q,ev,fv,ea,fa; t[k2]=t[k3];
dx12=p[n1][1]-p[n2][1]; dy12=p[n1][2]-p[n2][2]; ssq=dx12*dx12+dy12*dy12; phi=atan2(dy12,dx12);
ep=sqrt(ssq)*cos(phi-t[k3]); u=sqrt(ssq)*sin(phi-t[k3]); if((r1-fabs(u))
printf(
} else {
fp=sqrt(r1*r1-u*u); if(m>0) { *r2=ep+fp; } else { *r2=ep-fp; } cb=cos(t[k3]); sb=sin(t[k3]);
p[n3][1]=p[n2][1]+(*r2)*cb; p[n3][2]=p[n2][2]+(*r2)*sb; dx31=p[n3][1]-p[n1][1]; dy31=p[n3][2]-p[n1][2]; dx32=p[n3][1]-p[n2][1]; dy32=p[n3][2]-p[n2][2]; t[k1]=atan2(dy31,dx31); ct=cos(t[k1]); st=sin(t[k1]);
q=dy31*sb+dx31*cb;
ev=vp[n2][1]-vp[n1][1]-(*r2)*w[k3]*sb; fv=vp[n2][2]-vp[n1][2]+(*r2)*w[k3]*cb; w[k1]=(-ev*sb+fv*cb)/q; *vr2=-(ev*dx31+fv*dy31)/q; vp[n3][1]=vp[n1][1]-r1*w[k1]*st; vp[n3][2]=vp[n1][2]+r1*w[k1]*ct;
ea=ap[n2][1]-ap[n1][1]+w[k1]*w[k1]*dx31-w[k3]*w[k3]*(*r2)*cb; ea=ea-2.0*w[k3]*(*vr2)*sb-e[k3]*dy32;
fa=ap[n2][2]-ap[n1][2]+w[k1]*w[k1]*dy31-w[k3]*w[k3]*(*r2)*sb; fa=fa+2.0*w[k3]*(*vr2)*cb-e[k3]*dx32; e[k1]=(-ea*sb+fa*cb)/q; *ar2=-(ea*dx31+fa*dy31)/q;
ap[n3][1]=ap[n1][1]-r1*w[k1]*w[k1]*ct-r1*e[k1]*st; ap[n3][2]=ap[n1][2]-r1*w[k1]*w[k1]*st+r1*e[k1]*ct; w[k2]=w[k3]; e[k2]=e[k3]; } }
/***************rprk*******************************************/ void rprk(m,n1,n2,k1,k2,r1,r2,vr2,ar2,t,w,e,p,vp,ap)
int m,n1,n2,k1,k2;
double r1,*r2,*vr2,*ar2;
double p[20][2],vp[20][2],ap[20][2]; double t[10],w[10],e[10]; {
double dx21,dy21,test,phi,alpha,ct,st,q,vx21,vy21,ea,fa; dx21=p[n2][1]-p[n1][1]; dy21=p[n2][2]-p[n1][2];
test=dx21*dx21+dy21*dy21-r1*r1; if(test
printf(
*r2=sqrt(test);
phi=atan2(dy21,dx21); alpha=atan(r1/(*r2)); if(m>0) {
t[k1]=phi+alpha; } else {
t[k1]=phi-alpha; } t[k2]=t[k1]; ct=cos(t[k1]); st=sin(t[k1]);
q=dx21*ct+dy21*st;
vx21=vp[n2][1]-vp[n1][1]; vy21=vp[n2][2]-vp[n1][2]; w[k1]=(vy21*ct-vx21*st)/q; w[k2]=w[k1];
*vr2=(vy21*dy21+vx21*dx21)/q;
ea=ap[n2][1]-ap[n1][1]+w[k1]*w[k1]*dx21+2.0*w[k1]*(*vr2)*st; fa=ap[n2][2]-ap[n1][2]+w[k1]*w[k1]*dy21-2.0*w[k1]*(*vr2)*ct; e[k1]=-(ea*st-fa*ct)/q; e[k2]=e[k1];
*ar2=(ea*dx21+fa*dy21)/q; } }
static double p[20][3],vp[20][3],ap[20][3],del,t[10],w[10],e[10];
static int ic;
double r12,r23,r45,r56,r67,l1,l2; double pi,dr;
double r2,vr2,ar2; int i,m; main() {
FILE *fp;
pi=3.1415926; dr=pi/(180.0);
r12=20; r23=40; r45=135; r56=90; r67=90; l1=300; l2=128; p[1][1]=0.0; p[1][2]=0.0;
p[5][1]=-135.0; p[5][2]=334.64; p[8][1]=-265.0; p[8][2]=334.64; t[1]=0.0; w[1]=2*pi; e[1]=0.0; t[9]=90.0*dr; w[9]=0.0; e[9]=0.0; t[8]=-90.0*dr; w[8]=0.0; e[8]=0.0; del=10.0;
printf(
printf(
fprintf(fp,
t[1]=i*del*dr;
bark(1,2,0,1,r12,0.0,0.0,t,w,e,p,vp,ap); /*调用单级杆件运动分析子程序*/
rrpk(1,2,1,3,2,3,9,r23,&r2,&vr2,&ar2,t,w,e,p,vp,ap); /*调用rrp杆件运动分析子程序*/
p[3][2]+=l1;
rprk(1,5,3,4,5,0.0,&r2,&vr2,&ar2,t,w,e,p,vp,ap); /*调用rpr杆件运动分析子程序*/ t[5]+=pi;
bark(5,6,0,5,r56,0.0,0.0,t,w,e,p,vp,ap);
rrpk(1,6,8,7,7,8,8,r67,&r2,&vr2,&ar2,t,w,e,p,vp,ap); p[7][2]-=l2;
printf(
fprintf(fp,
}
fclose(fp); getch(); }
得到如下数据:
NO THETAI S7 V7 A7 deg
1 0.000 2 10.000 3 20.000 4 30.000 5 40.000 6 50.000 7 60.000 8 70.000 9 80.000 10 90.000 11 100.000 12 110.000 13 120.000 14 130.000 15 140.000 16 150.000 17 160.000 18 170.000 19 180.000 20 190.000 21 200.000 22 210.000 23 220.000 24 230.000 25 240.000 26 250.000 27 260.000 28 270.000 29 280.000 30 290.000 31 300.000 32 310.000 33 320.000 mm 135.010 mm/s -83.775 -89.418 -90.947 -87.804 -80.078 -68.389 -53.647 -36.802 -18.692 0.000 18.692 36.802 53.647 68.389 80.078 87.804 90.947 89.418 83.775 75.107 64.714 53.767 43.088 33.110 23.950 15.521 7.623 0.000 -7.623 -15.521 -23.950 -33.110 -43.088 mm/s/s -265.212 -134.303 27.645 198.017 354.381 481.583 574.046 633.740 666.134 676.270 666.134 633.740 574.046 481.583 354.381 198.017 27.645 -134.303 -265.212 -350.903 -390.247 -392.974 -373.340 -344.448 -315.640 -292.468 -277.766 -272.757 -277.766 -292.468 -315.640 -344.448 -373.340
126.017 123.603 121.087 118.594 116.252 114.182 112.481 111.221 110.448 110.188 110.448 111.221 112.481 114.182 116.252 118.594 121.087 123.603 126.017 128.229 130.173 131.819 133.163 134.220 135.010 135.557 135.877 135.983 135.877 135.557 134.220 133.163
34 330.000 131.819 -53.767 -392.974 35 340.000 130.173 -64.714 -390.247 36 350.000 128.229 -75.107 -350.903 37 360.000 126.017 -83.775 -265.212
可知打印装置的最低位置为距O1 110.188mm,最高位置为135.983mm。 工作台每次移动的距离为6*4*3.14=75.36mm,于是便可实现工作台每秒钟移动75.36mm打印一个包装盒的功能。