• 36.00 KB
  • 2022-06-16 12:04:58 发布

分享一个Python写的克林根贝尔格锥齿轮设计程序.doc

  • 11页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
分享一个Python写的克林根贝尔格锥齿轮设计程序这是一个Python语言写的克林根贝尔格锥齿轮的设计与校核程序获取初始参数frommathimportpiaspifrommathimportsinassinfrommathimportcosascosfrommathimporttanastanfrommathimportatanasatanfrommathimportacosasacosfrommathimportasinasasinfrommathimportsqrtassqrtfrommathimportdegreesasdegreesfrommathimportradiansasradianstheta_t=radians(135)alpha_n=radians(20)theta_k=0de1=150beta_m_temp=radians(35)u=1delta_s=atan(sin(theta_t)/(u+cos(theta_t)))mnm=0.5me_min=1z1=1b=1ha_t=1K=1.2S_F=1.4Y_FS=4.35sigmal_FP=1000/S_FT1=1200/ur0=135z0=5whilemnm< 分享一个Python写的克林根贝尔格锥齿轮设计程序这是一个Python语言写的克林根贝尔格锥齿轮的设计与校核程序获取初始参数frommathimportpiaspifrommathimportsinassinfrommathimportcosascosfrommathimporttanastanfrommathimportatanasatanfrommathimportacosasacosfrommathimportasinasasinfrommathimportsqrtassqrtfrommathimportdegreesasdegreesfrommathimportradiansasradianstheta_t=radians(135)alpha_n=radians(20)theta_k=0de1=150beta_m_temp=radians(35)u=1delta_s=atan(sin(theta_t)/(u+cos(theta_t)))mnm=0.5me_min=1z1=1b=1ha_t=1K=1.2S_F=1.4Y_FS=4.35sigmal_FP=1000/S_FT1=1200/ur0=135z0=5whilemnm< me_min:    de1+=1    Re=de1/(2*sin(delta_s))    b=int(round(Re*0.333,0))    mnm=int(0.1*b/0.5)*0.5    z1=int(round((de1-b*sin(delta_s))*cos(beta_m_temp)/mnm,0))    me_min=26.3*pow(K*T1*Y_FS/(z1*z1*sqrt(u*u+1)*sigmal_FP),1/3)    Ri=Re-b*cos(theta_k)    gamma=asin(mnm*z0/(2*r0))    Rm=Re-0.5*b*cos(theta_k)    zc=z1/sin(delta_s)    beta_m=acos(mnm*zc/(2*Rm))    Md=sqrt(Rm*Rm+r0*r0-2*Rm*r0*sin(beta_m-gamma))    rb=Md/(1+z0/zc)    phi_i=acos((Ri*Ri+Md*Md-r0*r0)/(2*Re*Md))    beta_i=atan((Ri-rb*cos(phi_i))/(rb*sin(phi_i)))        mni=2*Ri*cos(beta_i)/zc    zv_i1=z1/cos(delta_s)*pow(cos(beta_i),3)    xg=1.1*ha_t-(mni*zv_i1*sin(alpha_n)*sin(alpha_n)+b*sin(theta_k))/(2*mnm)    print("z1:",z1)print("b:",b)print("mnm:",mnm)print("de1:",de1)print("xg:",xg)初始参数获取效果,(实际要慢慢修调齿宽系数和模数与齿宽的系数,会得到不同的效果)Python3.2(r32:88445,Feb202011,21:29:02)[MSCv.150032bit(Intel)]onwin32Type"copyright","credits"or"license()"formoreinformation.>>>================================RESTART================================>>>z1:42b:44mnm:4.0de1:244xg:-2.30326>>>详细计算#---module import---frommathimportpiaspifrommathimportsinassinfrommathimportcosascosfrommathimporttanastanfrommathimportatanasatanfrommathimportacosasacosfrommathimportasinasasinfrommathimportsqrtassqrtfrommathimportdegreesasdegreesfrommathimportradiansasradians#---selfdefinefunction----defanghex(x):    x_result=[]    x_int=int(x)    x_minute=int((x-x_int)*60)    x_second=int(round((x-x_int-x_minute/60.0)*3600,0))    ifx_second==60:        x_minute=x_minute+1        x_second=0    ifx_minute==60:        x_int=x_int+1        x_minute=0    x_result.append(x_int)    x_result.append(x_minute)    x_result.append(x_second)    returnx_resultdefinv(x):    result=tan(x)-x    returnresult#-------------------------------#---characters----blank=10#--basic elements---alpha_n=radians(20)z1=43z2=z1u=z2/z1T1=1200/u#-----------------------------K=1.2S_H=1.1S_F=1.4Y_FS=4.35sigmal_HP=1500/S_Hsigmal_FP=1000/S_Fde1_min=1636*pow(K*T1/(u*sigmal_HP*sigmal_HP),1/3)me_min=26.3*pow(K*T1*Y_FS/(z1*z1*sqrt(u*u+1)*sigmal_FP),1/3)print("u:".rjust(blank),u)print("d_min:".rjust(blank),de1_min)print("me_min:".rjust(blank),me_min)#-------------------------theta_t=radians(135)delta_s=atan(sin(theta_t)/(u+cos(theta_t)))delta_b=atan(u*sin(theta_t)/(1+u*cos(theta_t)))delta_t=delta_s+delta_bprint("delta_s:".rjust(blank),degrees(delta_s),anghex(degrees(delta_s)))print("delta_b:".rjust(blank),degrees(delta_b),anghex(degrees(delta_b)))print("delta_t:".rjust(blank),degrees(delta_t),anghex(degrees(delta_t)))#外锥距de1=248de2=u*de1Re=de1/(2*sin(delta_s))print("Re:".rjust(blank),Re)print("de1:".rjust(blank),de1)print("de2:".rjust(blank),de2)#齿宽b_try_q=Re*0.2b_try_l=Re*0.286b_try_h=Re*0.333print("b_try_q:".rjust(blank),b_try_q)print("b_try_l:".rjust(blank),b_try_l)print("b_try_h:".rjust(blank),b_try_h)#齿数mnm=4b=40beta_m_temp=radians(35)z1_try=(de1-b*sin(delta_s))*cos(beta_m_temp)/mnmprint("z1_try:".rjust(blank),z1_try)#中点锥距theta_k=0Rm=Re-0.5*b*cos(theta_k)print("Rm:".rjust(blank),Rm)#假想平面齿轮齿数zc=z1/sin(delta_s)print("zc:".rjust(blank),zc)#实际中点螺旋角beta_m=acos(mnm*zc/(2*Rm))print("beta_m:".rjust(blank),degrees(beta_m),anghex(degrees(beta_m)))#机床距检验r0=100z0=5Md_min=0Md_max=400gamma=asin(mnm*z0/(2*r0))Md=sqrt(Rm*Rm+r0*r0-2*Rm*r0*sin(beta_m-gamma))print("gamma:".rjust(blank),degrees(gamma),anghex(degrees(gamma)))print("Md:".rjust(blank),Md)ifMd>Md_minandMdmnmandmnm>mni:    print("check:".rjust(blank),"modulecheckpass!")else:    print("check:".rjust(blank),"modulecheckfail!!")#法向齿槽最大处的锥距Ry=sqrt(pow((zc-z0)/(zc+z0),2)*Md*Md+r0*r0)print("Ry:".rjust(blank),Ry)#辅助值x_t1=0x_t2=-x_t1ha_t=1.0ha0=1.25*ha_t*mnmHw=2*(x_t1*mnm+ha0*tan(alpha_n))print("Hw:".rjust(blank),Hw)#法向最大齿槽宽zp=z2/sin(delta_b)En_y1=pi*rb/zp-HwEn_y2=En_y1+4*x_t1*mnmEn_e1=pi*mne/2-HwEn_e2=En_e1+4*x_t1*mnmprint("En_y1:".rjust(blank),En_y1)print("En_y2:".rjust(blank),En_y2)print("En_e1:".rjust(blank),En_e1)print("En_e2:".rjust(blank),En_e2)ifRi Re:    En_max=max(En_e1,En_e2)print("En_max:".rjust(blank),En_max)#法向最小齿槽宽En_i1=pi*mni/2-HwEn_i2=En_i1+4*x_t1*mnmEn_min=max(En_i1,En_i2)print("En_i1:".rjust(blank),En_i1)print("En_i2:".rjust(blank),En_i2)print("En_min:".rjust(blank),En_min)#大端槽底检验ke=3.8ifEn_max0.2*mnm:    print("check:".rjust(blank),"[En_min>0.2*mnm]tcheckpass!")else:    print("check:".rjust(blank),"pleaseredesignklingelnberggear!")#不产生根切的径向变位系数zv_i1=z1/(cos(delta_s)*pow(cos(beta_i),3))xg=1.1*ha_t-(mni*zv_i1*sin(alpha_n)*sin(alpha_n)+b*sin(theta_k))/(2*mnm)print("xg:".rjust(blank),xg)#径向变位系数(迭代运算)k=2*cos(beta_m)/(z2*sqrt(u*u+1))alpha_tm=atan(tan(alpha_n)/cos(beta_m))count=0x1=xg/2x11=x1+0.02print("","-"*36)whileabs(x11-x1)> 0.01:    k11=sqrt((1+k*(ha_t-x1))*(1+k*(ha_t-x1))-cos(alpha_tm)*cos(alpha_tm))    k22=sqrt((1+u*u*k*(ha_t+x1))*(1+u*u*k*(ha_t+x1))-cos(alpha_tm)*cos(alpha_tm))    f11=u*u/k11-1/k22-(u*u-1)/sin(alpha_tm)    f22=u*u*k*(1+k*(ha_t-x1))/(k11*k11*k11)+u*u*k*(1+u*u*k*(ha_t+x1))/(k22*k22*k22)    f33=x1-f11/f22    x22=x1    x1=f33    x11=x22    count+=1    print("iter:".rjust(blank),count,"  x1:",x1)print(" ","-"*36)x2=-x1print("x1:".rjust(blank),x1)print("x2:".rjust(blank),x2)#齿顶高x1=round(x1,3)x2=-x1ha1=(ha_t+x1)*mnmha2=(ha_t+x2)*mnmprint("ha1:".rjust(blank),ha1)print("ha2:".rjust(blank),ha2)#全齿高h=ha0+ha_t*mnmprint("h:".rjust(blank),h)#当量齿轮齿数delta_n=alpha_nzv_n1=z1/(cos(delta_n)*pow(cos(beta_m),3))zv_n2=z2/(cos(delta_n)*pow(cos(beta_m),3))print("zv_n1:".rjust(blank),zv_n1)print("zv_n2:".rjust(blank),zv_n2)#工艺分锥角delta_Es=delta_s-theta_kdelta_Eb=delta_b+theta_kprint("delta_Es:".rjust(blank),degrees(delta_Es),anghex(degrees(delta_Es)))print("delta_Eb:".rjust(blank),degrees(delta_Eb),anghex(degrees(delta_Eb)))#刀盘干涉检验lamda=((ha0+x1*mnm-0.5*b*sin(theta_k))/tan(alpha_n)+ha0*tan(alpha_n))/Redelta_h=Rm*tan(theta_k)*cos(delta_Eb)XA=sqrt(2*h*(Re+tan(delta_Eb)+ha2-delta_h)-(h/cos(delta_Eb))*(h/cos(delta_Eb)))YA=Re-h*tan(delta_Eb)XB=sqrt(2*h*(Ri+tan(delta_Eb)+ha2-delta_h)-(h/cos(delta_Eb))*(h/cos(delta_Eb)))YB=Ri-h*tan(delta_Eb)XM=Md*sin(phi_e-lamda)YM=Md*cos(phi_e-lamda)MA=sqrt((XA-XM)*(XA-XM)+(YA-YM)*(YA-YM))MB=sqrt((XB-XM)*(XB-XM)+(YB-YM)*(YB-YM))ifMA=0.3*mnm:    print("check:".rjust(blank),"s_ani>=0.3*mnm,tcheckpass!")else:    print("check".rjust(blank),"pinionroughneedrevised!")#中点分度圆直径dm1=de1-b*cos(theta_k)*sin(delta_Es)dm2=de2-b*cos(theta_k)*sin(delta_Eb)print("dm1:".rjust(blank),dm1)print("dm2:".rjust(blank),dm2)#大端齿顶圆直径dae1=de1+2*ha1*cos(delta_Es)-b*sin(theta_k)*cos(delta_Es)dae2=de2+2*ha2*cos(delta_Eb-pi/2)-b*sin(theta_k)*cos(delta_Eb)print("dae1:".rjust(blank),dae1)print("dae2:".rjust(blank),dae2)#小端齿顶圆直径dai1=dae1-2*b*cos(theta_k)*sin(delta_Es)dai2=dae2-2*b*cos(theta_k)*sin(delta_Eb)print("dai1:".rjust(blank),dai1)print("dai2:".rjust(blank),dai2)#实际齿宽b_ba=b*cos(theta_k)print("b_ba:".rjust(blank),b_ba) 实际运行效果Python3.2(r32:88445,Feb202011,21:29:02)[MSCv.150032bit(Intel)]onwin32Type"copyright","credits"or"license()"formoreinformation.>>>================================RESTART================================>>>        u:1.0    d_min:150.394  me_min:3.85543  delta_s:67.5[67,30,0]  delta_b:67.5[67,30,0]  delta_t:135.0[135,0,0]      Re:134.685      de1:248      de2:248.0  b_try_q:26.137  b_try_l:38.946  b_try_h:44.353  z1_try:43.37      Rm:114.685      zc:46.294  beta_m:35.328[35,24,48]    gamma:5.6787[5,44,21]      Md:108.632    check:Mdcheckpass!      rb:97.946    phi_e:47.804[47,13,18]    phi_i:68.688[68,35,42]  beta_e:43.8916[43,20,52]  beta_i:32.365[32,43,9]      mne:4.87355      mni:3.60653    check:modulecheckpass!      Ry:132.75      Hw:3.20234    En_y1:2.005    En_y2:2.005    En_e1:2.6762    En_e2:2.6762  En_max:2.005    En_i1:1.45169    En_i2:1.45169  En_min:1.45169    check:[En_max0.2*mnm]    check pass!      xg:-8.926  ------------------------------------    iter:1  x1:-3.20125    iter:2  x1:-3.7185    iter:3  x1:-2.0316    iter:4  x1:-1.8053    iter:5  x1:-0.17797    iter:6  x1:-4.92593e-05    iter:7  x1:-2.12643e-15  ------------------------------------      x1:-2.12643e-15      x2:2.12643e-15      ha1:4.0      ha2:4.0        h:9.0    zv_n1:84.042    zv_n2:84.042delta_Es:67.5[67,30,0]delta_Eb:67.5[67,30,0]    check:toolinterference,    checkpass!    check:s_ani>=0.3*mnm,    checkpass!      dm1:211.853      dm2:211.853    dae1:251.073    dae2:255.03    dai1:177.78    dai2:181.735    b_ba:40.0