• 题目:油田用小型往复泵主体机构运动、动力分析、飞轮设计
•
已知条件:L1=0.063m,L2=0.333m, 曲柄组件质量m1=40kg, 质心在B点,转动惯量忽略不计,曲柄转速140r/min, 连杆组件质量 m2=26kg,质心在BC连线上距离B点0.111m处,绕质心转动惯量J2=0.25kg〃m2;活塞组件质量m3=16kg ,质心在C点,活塞在吸入冲程受力忽略为零,在压B
缩冲程受力4500NA。
任务:编程以实现 2C3n14
运动分析:每隔10°,求出各位置时连杆2的角位置、角速度、角加速度,活塞3的位移、速度、加速度
动力分析:每隔10°,求出各位置时曲柄上平衡力矩和各运动副反力的大小和方向
选曲柄为等效构件,并设等效驱动力矩为常数,许用运动不均匀系数[]=1/5,求安装在曲柄轴上飞轮的转动惯量。
下为 C语言程序
#include
#include
#define PI 3.1415926
void main ()
{ FILE *fp;
int i,th[37];
double L1=0.063, L2=0.333, a;
double w1, w2[37], Sc[37],Vc[37], a2[37], ac[37];
double th1[37],th2[37];
double
as2x[37],as2y[37],P12x[37],P12y[37],P11x[37],P11y[37],P13[37],M12[37];double
R43[37],R12x[37],R12y[37],R12[37],th12[37],R23x[37],R23y[37],R23[37],th23[37],R41x[37],R41y[37],R41[37],th41[37];
double Mb0[37],G1,G2,G3,m1=40.0,m2=26.0,m3=15.6,J2=0.25,fr,g=9.8;double Mb[37],Wr[37],Md,Wd[37],W[37],Wmax,Wmin,dtWm,Jf,delta=0.2;
if ((fp=fopen(\"wenjian.txt\",\"w\"))==NULL)
{printf (\"cannot open file.\\n\");
exit (1);
}
w1=140*2*PI/60;
G1=m1*g;
G2=m2*g;
G3=m3*g;
for (i=0;i
{
/*运动分析*/
th[i]=10*i;
th1[i]=PI*th[i]/180;
th2[i]=asin(-L1*sin(th1[i])/L2);
Sc[i]=L1*cos(th1[i])+L2*cos(th2[i]);
w2[i]=-L1*cos(th1[i])*w1/(L2*cos(th2[i]));
Vc[i]=-L1*sin(th1[i])*w1-L2*sin(th2[i]*w2[i]);
a=L1*sin(th1[i])*w1*w1+L2*sin(th2[i])*w2[i]*w2[i];
a2[i]=a/(L2*cos(th2[i]));
ac[i]=-L1*cos(th1[i])*w1*w1-L2*cos(th2[i])*w2[i]*w2[i]-L2*sin(th2[i])*a2[i];
/*动力分析*/
as2x[i]=2*L1*w1*w1*cos(PI+th1[i])/3+ac[i]/3;
as2y[i]=2*L1*w1*w1*sin(PI+th1[i])/3;
P12x[i]=-m2*as2x[i];
P12y[i]=-m2*as2y[i];
M12[i]=-J2*a2[i];
P13[i]=-m3*ac[i];
if(i
fr=0;
else fr=4500;
R43[i]=G3-(P12y[i]-G2)/3+((P12x[i]/3+P13[i]-fr)*L2*sin(th2[i])-M12[i])/(L2*cos(th2[i]));
R12x[i]=-(P12x[i]+P13[i]-fr);
R12y[i]=G2+G3-P12y[i]-R43[i];
R12[i]=sqrt(R12x[i]*R12x[i]+R12y[i]*R12y[i]);
th12[i]=atan2(R12y[i],R12x[i]);
th12[i]=th12[i]*180/PI;
if (th12[i]
R23x[i]=fr-P13[i];
R23y[i]=G3-R43[i];
R23[i]=sqrt(R23x[i]*R23x[i]+R23y[i]*R23y[i]);
th23[i]=atan2(R23y[i],R23x[i]);
th23[i]=th23[i]*180/PI;
if (th23[i]
P11x[i]=m1*w1*w1*L1*cos(th1[i]);
P11y[i]=m1*w1*w1*L1*sin(th1[i]);
R41x[i]=-P11x[i]+R12x[i];
R41y[i]=G1+R12y[i]-P11y[i];
R41[i]=sqrt(R41x[i]*R41x[i]+R41y[i]*R41y[i]);
th41[i]=atan2(R41y[i],R41x[i]);
th41[i]=th41[i]*180/PI;
if (th41[i]
Mb0[i]=sin(th1[i])*(P11x[i]-R12x[i])*L1-cos(th1[i])*(P11y[i]-R12y[i]-G1)*L1;th2[i]=180*th2[i]/PI;
}
/*飞轮设计*/
for (i=0;i
{
Mb[i]=Mb0[i]+Mb0[i+12]+Mb0[i+24];
Mb[i+12]=Mb[i];
Mb[i+24]=Mb[i];
}
Mb[36]=Mb[0];
Wr[0]=0.0;
for (i=0;i
{ Wr[i+1]=Wr[i]+0.5*(Mb[i]+Mb[i+1])*10*PI/180;
}
Md=Wr[36]/(2*PI);
for (i=0;i
{Wd[i]=Md*i*PI*10/180;
W[i]=Wd[i]-Wr[i];
}
Wmax=W[0];
Wmin=W[0];
for (i=1;i
{if (W[i]>Wmax) Wmax=W[i];
if(W[i]
}
dtWm=Wmax-Wmin;
Jf=900*dtWm/(PI*PI*140*140*delta);
/*输出运动分析结果*/
fputs( \"----------运动分析结果--------\\n\",fp);
fputs(\"θ1(°) θ2 (°) Sc(m) ω2 (rad/s) Vc(m/s) α2(rad/s^2)
ac(m/s^2)\\n\",fp);
for (i=0;i
{fprintf (fp,\"%d\\t\", th[i]);
fprintf(fp,\"%8.3f\\t%8.3f\\t%8.3f\\t\",th2[i], Sc[i],w2[i]);
fprintf(fp,\" %8.3f\\t%8.3f\\t%8.3f\\n\",Vc[i],a2[i],ac[i]);
}
/*输出运动分析结果*/
fputs( \"----------动力分析结果--------\\n\",fp);
fputs(\"θ(°) R43(N) R12(N) β12(°) R23(N) β23 (°) R41(N) β41(°) Mb0(Nm) Mb(Nm)\\n\",fp);
for (i=0;i
{fprintf (fp,\"%d\\t\", th[i]);
fprintf(fp,\"%-8.3f\\t%-8.3f\\t%-8.3f\\t\",R43[i],R12[i],th12[i]);
fprintf(fp,\" %-8.3f\\t%-8.3f\\t%-8.3f\\t%-8.3f\\t%-8.3f\\t%-8.3f\\n\",R23[i],th23[i],R41[i],th41[i],Mb0[i],Mb[i]);
}
/*输出飞轮设计结果*/
fputs(\"----------飞轮设计结果---------\\n\",fp);
fprintf(fp,\"动力矩Md(Nm):%f\\n最大盈亏功△Wm(J):%f\\n飞轮转动惯量
飞轮矩JF(Kg.m^2):%f\\n平均功率P(W):%f\\n
GAD(Nm^2):%f\\n\",Md,dtWm,Jf,Md*w1,4*g*Jf);
fputs(\"θ(°) Wr(J) Wd(J) △Wm(J)\\n\",fp);
for (i=0;i
{fprintf (fp,\"%d\\t\", th[i]);
fprintf(fp,\"%-8.3f\\t%-8.3f\\t%-8.3f\\n\",(-1)*Wr[i],Wd[i],W[i]);
}
fclose (fp);
}