机械原理大作业2凸轮机构大作业..大作业(二)凸轮机构设计(题号:_________)班级:________________________学号:________________________姓名:________________________同组其他人员:________________________完成日期:________________________凸轮机构大作业题目目录1、题目及原始数据;2、推杆的运动规律及凸轮廓线方程;3、计算程序框图4、计算程序;5、计算结果及分析;6、凸轮机构图(包括推杆及凸轮理论和实际廓线,并标出有关尺寸及计算结果7、体会及建议8、参考书利用计算机辅助设计完成下列偏置式直动滚子推杆盘形凸轮机构(推杆的移动副导路位于凸轮盘回转中心的右侧) 或摆动滚子推杆盘形凸轮机构的设计,设计已知数据如下表所示,机构中凸轮沿着逆时针方向做匀速转动表1两种凸轮机构的从动件运动规律直动推杆组题号推程运动规律回程运动规律5-B等加速等减速运动五次多项式运动表2两种凸轮机构的推杆在近休、推程、远休及回程阶段的凸轮转角题号近休凸轮转角推程凸轮转角远休凸轮转角回程凸轮转角B0゜~45゜45゜~225゜225゜~270゜270゜~360゜表3偏置直动滚子推杆盘形凸轮机构的已知参数题号初选基圆半偏距e/mm滚子半径推杆行程许用压力角许用最小曲率径r0/mmrt/mmh/mm半径[ρamin][α1] [α2]B20+10153530゜75゜0.3rt要求:每两人一组,每组中至少打印出一份源程序。
每人都要打印:原始数据;凸轮理论轮廓曲线和实际轮廓曲线的坐标值;推程和回程的最大压力角,以及出现最大压力角时凸轮相应的转角,凸轮实际轮廓曲线的最小曲率半径,以及相应的凸轮转角;凸轮的基圆半径整个设计过程所选取的计算点数N=72~120利用计算机绘出凸轮的理论轮廓曲线和实际轮廓曲线二、推杆运动规律及凸轮轮廓方程推程: 等加速s2h2/20远休:sh等减速sh2h(0)2/02回程:五次多项式整理得;s=h[1-10((12)/o)3+15((12)/o)46((12)/o)5]理论轮廓廓线方程x(s0s)sinecosy(s0s)cosesin工作廓线方程x x rtcosy y rtsin实际廓线方程sin(dx/d)/(dx/d)2(dy/d)2cos(dy/d)/(dx/d)2(dy/d)2x' x rrcosy' y rrsin三、计算程序框图开始读入:r0,r0,rt,h或(φ),e或(lAB、lOA)δ1,δ2,δ3,δ4,[α1],[α2],[ρamin],N计算:s0I=1计算:s,x,y,ds/dδ,dx/dδ,dy/dδ,x′,y′r0=r0+r0r0=r0=r0计算:α|α|>[α1]?是回程?|α|>[α2]?选出α1max及相应的凸轮转角计算:ρ选出α及相应的凸轮转角2maxρ <0?|ρ|-rt≥[ρamin]?计算ρa选出|ρamin|及相应的凸轮转角δaminI=I+1I ≤N?打印:x,y,x′,y′,ρamin,δamin,α1max,δ1max,α2max,δ2max,r0,δ,s结束四、计算程序#include#include#include#definePI3.141592653doublefact[72][2];doubletheory[72][2];intang1=180,ang2=225,ang3=315;doubleh=35,rb=20,b=1;doubleA1=30*PI/180,A2=75*PI/180;doubleP=18.2,e=10;doubleSo,r=15;doubleS(intI){doubles;doubleA;doubleB;if(I<=ang1/2){A=I*PI/180;B=ang1*PI/180;s=2*h*pow(A/B,2);}elseif((I>ang1/2)&&(I<=ang1)){A=I*PI/180;B=ang1*PI/180;s=h-2*h*pow((B-A)/B,2);}elseif(I<=ang2)s=h;elseif(I<=ang3){A=(I-ang2)*PI/180;B=(ang3-ang2)*PI/180;s=h*(1-10*pow(A/B,3)+15*pow(A/B,4)-6*pow(A/B,5));}elses=0;return(s);}doubleds(intQ){doubleA,B,C;if(Q<=ang1/2){A=Q*PI/180;B=ang1*PI/180;C=4*h*A/(B*B);}elseif((Q>ang1/2)&&(Q<=ang1)){A=Q*PI/180;B=ang1*PI/180;C=4*h*(B-A)/(B*B);}elseif(Q<=ang2)C=0;elseif(Q<=ang3){A=(Q-ang2)*PI/180;B=(ang3-ang2)*PI/180;C=h*(-30*A*A/pow(B,3)+60*pow(A,3)/pow(B,4)-30*pow(A,4)/pow(B,5));}elseC=0;returnC;}doubledss(intB3){doubleA,B,C;if(B3<=ang1/2){A=B3*PI/180;C=ang1*PI/180;B=4*h/(C*C);}elseif(B3>ang1/2&&B3<=ang1){A=B3*PI/180;C=ang1*PI/180;B=-4*h/(C*C);}elseif(B3<=ang2)B=0;elseif(B3<=ang3){A=(B3-ang2)*PI/180;C=(ang3-ang2)*PI/180;B=h*(-60*A/pow(C,3)+240*A*A/pow(C,4)-120*A*A*A/pow(C,5));}elseB=0;return(B);}voidxy(intang){doubleA,B,C,E,F,dx,dy;A=ang*PI/180;B=S(ang);C=ds(ang);dx=(So+B)*cos(A)+sin(A)*C-e*sin(A);dy=-sin(A)*(So+B)+C*cos(A)-e*cos(A);E=r*dy/sqrt(dx*dx+dy*dy);F=r*dx/sqrt(dx*dx+dy*dy);theory[ang/5][0]=(So+B)*sin(A)+e*cos(A);theory[ang/5][1]=(So+B)*cos(A)-e*sin(A);fact[ang/5][0]=theory[ang/5][0]-E;fact[ang/5][1]=theory[ang/5][1]+F;}doublea(intB1)/*****求解压力角****/{doubleA,B;A=sqrt((ds(B1)-e)*(ds(B1)-e));B=S(B1);returnatan(A/(B+So));}doublep(intB2){doubledx,dy,dxx,dyy;doubleA,B,C,D,E;A=B2*PI/180;B=ds(B2);C=S(B2);D=dss(B2);dx=(So+C)*cos(A)+sin(A)*B-e*sin(A);dy=-sin(A)*(So+C)+B*cos(A)-e*cos(A);dxx=-(C+So)*sin(A)+cos(A)*B+D*sin(A)-e*cos(A);dyy=-cos(A)*(So+C)-B*sin(A)+D*cos(A)-sin(A)*B+e*sin(A);E=sqrt(pow(dx*dx+dy*dy,3))/sqrt(pow((dx*dyy-dxx*dy),2));return(E);}voidmain( ){ FILE*fp;inti;intk,h,l;doubleangle1max=0,angle2max=0,pmin=1000;if((fp=fopen("sanying","w"))==NULL){printf("Cann'topenthisfile.\n");exit(0);}fprintf(fp,"\nTheKinematicParametersofPoint4\n");fprintf(fp,"xyx'y'");// 计算数据并写入文件for(;i!=360;){rb=rb+b;So=sqrt(rb*rb-e*e);for(i=0;i<=ang1;i=i+5){if(a(i)>A1||p(i)A2||p(i)
p(i)){pmin=p(i);h=i;}}for(i=ang2;i<=ang3;i=i+5){if(angle2maxp(i)){pmin=p(i);h=i;}}for(i=0;i<72;i++){fprintf(fp,"\n");{fprintf(fp,"%12.3f\t%12.3f\t%12.3f\t%12.3f\t",theory[i][0],theory[i][1],fact[i][0],fact[i][1]);}}fclose(fp);printf("理论坐标(x,y)");printf("实际坐标(x,y)");printf("\n");for(i=0;i<72;i++){printf("%f。