- 36.00 KB
- 2022-06-16 12:04:58 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话: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