?中国石油大学(华东)机械原理课程设计
?题目:油田用小型往复泵主体机构运动、动力分析、飞轮设计
?
已知条件: | L1=0.063m,L2=0.333m, | 曲柄组件质量 |
m1=40kg,质心在B点,转动惯量忽略不计,曲柄转速140r/min,
连杆组件质量 | m2=26kg, | 质心在 | BC连线上距离 | B点 | C | ||
0.111m处,绕质心转动惯量 | J2=0.25kg | 〃 | m2;活塞组件质量 | ||||
m3=16kg,质心在C点,活塞在吸入冲程受力忽略为零,在压 B 2 缩冲程受力4500N。A | |||||||
任务:编程以实现 | n1 | ||||||
4运动分析:每隔10°,求出各位置时连杆2的角位置、角速
度、角加速度,活塞3的位移、速度、加速度
动力分析:每隔10°,求出各位置时曲柄上平衡力矩和各运
动副反力的大小和方向
选曲柄为等效构件,并设等效驱动力矩为常数,许用运动不均匀系数[]=1/50,求安装在曲柄轴上飞轮的转动惯量。
C语言
#include<stdio.h>
#include<math.h>
voidmain()
{FILE*fp;
inti,j,k,p;
doublew1,PIB,ab,G1,G2,G3;
double1=0.063,l2=0.333,lk=0.111,PI=3.1415926,m1=40,m2=26,m3=15.6,g=9.8,J2=0.25; doubleQ1[37],Q2[37],w2[37],sc[37],vc[37],aa2[37],ac[37];
double
a2x[37],a2y[37],a2[37],pi2x[37],pi2y[37],MI2[37],pi3[37],pi1x[37],pi1y[37],R43[37],Mb0[37],Mb[37];
doubleR12[37],R12x[37],R12y[37],a12[37],b12[37];
doubleR23[37],R23x[37],R23y[37],a23[37],b23[37];
doubleR41[37],R41x[37],R41y[37],a41[37],b41[37];
doubleWr[37],Wd[37],WW[37];
doubleMd,WWmax,WWmin,EEmax,JF;
doubledt=0.02;
w1=2*140*PI/60;/*-- | 转速140转/分 | --*/ |
ab=-l1*w1*w1;/*-- | 切向加速度--*/ |
PIB=-m1*ab;/*--求惯性力Pib--*/
G1=m1*g; | G2=m2*g; | G3=m3*g; |
if((fp=fopen("c:\\wenjian.txt","w"))==NULL)
{printf("cannotopenfile.\n");
}
for(i=0;i<37;i++)
{
/*--运动分析--*/
Q1[i]=i*PI/18;/*-- 每次增加10度--*/
Q2[i]=asin(-l1*sin(Q1[i])/l2);/*--l2sin(Q2[i])=-l1*sin(Q1[i])--*/
sc[i]=l1*cos(Q1[i])+l2*cos(Q2[i]);
w2[i]=(-l1*cos(Q1[i])*w1)/(l2*cos(Q2[i]));
vc[i]=-l1*sin(Q1[i])*w1-l2*sin(Q2[i])*w2[i];
aa2[i]=(l1*sin(Q1[i])*w1*w1+l2*sin(Q2[i])*w2[i]*w2[i])/(l2*cos(Q2[i]));/*-- 求阿尔法2--*/
ac[i]=-l1*cos(Q1[i])*w1*w1-l2*cos(Q2[i])*w2[i]*w2[i]-l2*sin(Q2[i])*aa2[i];
/*--动力分析--*/
if(Q1[i]>=0&&Q1[i]<=PI)p=0;/*-- | 吸入冲程受力为 | 0--*/ |
elsep=4500;/*--压缩冲程受力 | 4500--*/ |
a2x[i]=l1*w1*w1*cos(PI+Q1[i])+lk*(ac[i]-l1*w1*w1*cos(PI+Q1[i]))/l2; a2y[i]=l1*w1*w1*sin(PI+Q1[i])+lk*(-l1*w1*w1*sin(PI+Q1[i]))/l2; a2[i]=sqrt(a2x[i]*a2x[i]+a2y[i]*a2y[i]);
pi2x[i]=-m2*a2x[i];
pi2y[i]=-m2*a2y[i];
MI2[i]=-J2*aa2[i];
pi3[i]=-m3*ac[i];
pi1x[i]=PIB*cos(Q1[i]);
pi1y[i]=PIB*sin(Q1[i]);
R43[i]=((pi3[i]-p)*l2*sin(Q2[i])+pi2x[i]*lk*sin(Q2[i])-(pi2y[i]-G2)*lk*cos(Q2[i])-MI2[i])/(l2*cos(Q2[i]))+G3;
/*--R12大小以及方向的确定 --*/
R12x[i]=p-pi3[i]-pi2x[i];
R12y[i]=G3+G2-pi2y[i]-R43[i];
R12[i]=sqrt(R12x[i]*R12x[i]+R12y[i]*R12y[i]);
{if(R12x[i]>=0&&R12y[i]>=0) a12[i]=atan(R12y[i]/R12x[i]); if(R12x[i]<=0) a12[i]=atan(R12y[i]/R12x[i])+PI;
}
if(R12x[i]>=0&&R12y[i]<=0) a12[i]=atan(R12y[i]/R12x[i])+2*PI;
b12[i]=a12[i]*180/PI;
/*--R23大小以及方向的确定 --*/
R23x[i]=p-pi3[i]; R23y[i]=G3-R43[i];
R23[i]=sqrt(R23x[i]*R23x[i]+R23y[i]*R23y[i]);
{if(R23x[i]>=0&&R23y[i]>=0) a23[i]=atan(R23y[i]/R23x[i])-PI;
if(R23x[i]<=0) a23[i]=atan(R23y[i]/R23x[i]);
if(R23x[i]>=0&&R23y[i]<=0) }b23[i]=a23[i]*180/PI;
a23[i]=atan(R23y[i]/R23x[i])+PI;
/*--R41大小以及方向的确定 --*/
R41x[i]=R12x[i]-pi1x[i]; R41y[i]=R12y[i]+G1-pi1y[i];
R41[i]=sqrt(R41x[i]*R41x[i]+R41y[i]*R41y[i]);
{if(R41x[i]>=0&&R41y[i]>=0) a41[i]=atan(R41y[i]/R41x[i]);
if(R41x[i]<=0) a41[i]=atan(R41y[i]/R41x[i])+PI;
if(R41x[i]>=0&&R41y[i]<=0) }b41[i]=a41[i]*180/PI;
a41[i]=atan(R41y[i]/R41x[i])+2*PI;
Mb0[i]=sin(Q1[i])*(pi1x[i]-R12x[i])*l1-cos(Q1[i])*(pi1y[i]-R12y[i]-G1)*l1; }
for(i=0;i<=12;i++)
{j=i+12;
k=i+24;
Mb[i]=Mb0[i]+Mb0[j]+Mb0[k];
Mb[j]=Mb[i];
Mb[k]=Mb[i];
}
/*--飞轮的分析--*/
Wr[0]=0;
for(i=0;i<37;i++)
Wr[i+1]=Wr[i]+0.5*(Mb[i]+Mb[i+1])*(Q1[i+1]-Q1[i]);
Md=Wr[36]/(2*PI);
for(i=0;i<37;i++)
{Wd[i]=Md*i*PI/18;
WW[i]=Wd[i]-Wr[i];
}
WWmax=WW[0];
WWmin=WW[0];
for(i=0;i<37;i++)
{if(WW[i]>WWmax) WWmax=WW[i];
if(WW[i]<WWmin)
WWmin=WW[i];}
EEmax=WWmax-WWmin;/*-- 求最大盈亏功--*/
JF=900*EEmax/(PI*PI*140*140*dt);
fputs("以下为运动分析结果 | :\n",fp); | Vc | α2 | ac\n",fp); | |||
fputs(" | φφ2 | Sc | ω2 | ||||
for(i=0;i<37;i++)
{fprintf(fp,"%-3d | %-8.2f | %-8.3f%-8.3f | %-8.3f | %-8.3f | %-8.3f\n",10*i,Q2[i]*180/PI,sc[i |
],w2[i],vc[i],aa2[i],ac[i]);
}
fputs("\n以下为动力分析结果 | :\n\n",fp); | R23 | β2 | R41 | β3 | Mb0 | |||
fputs(" | φ1 | R43 | R12 | β1 | |||||
Mb\n",fp);
for(i=0;i<37;i++)
{fprintf(fp,"%3d%7.2f%7.2f%7.2f%7.2f%7.2f%7.2f%7.2f%7.2f%7.2f\n",10*i,R43[i],R12[i],b12[i],R23[i],b23[i],R41[i],b41[i],Mb0[i],Mb[i]);
}
fputs("\n以下为飞轮设计结果 | :\n\n",fp); | %.2f\n最大盈亏功为 | %.2f\n飞轮转动惯量 | |
fprintf(fp,"动力矩 | Md=%.2f\n | 平均功率为 | ||
JF>=%.2f\n飞轮矩=%.2f\n",Md,Md*w1,EEmax,JF,4*g*JF);
fputs(" | φ1Wr | Wd | ΔW\n",fp); |
for(i=0;i<37;i++)
{fprintf(fp,"%-3d | %-8.2f | %-7.2f | %-7.2f\n",10*i,(-1)*Wr[i],Wd[i],WW[i]); |
}
fclose(fp);
}