不思議遊星歯車が大減速比を得られる仕組みがわかったので、つぎにそれを実現するための転位設計方法の一例を紹介します。基本は前回記載の中田先生の文献によります。
転位設計方法
設計歯車諸元
歯車諸元は、前回と同じで
サンギヤz1=15
ピニオンz2=23
固定リングギヤz3=60
出力リングギヤz4=63
モジュールm=1
圧力角α=20°
とします。
転位しない場合(標準歯車)
各歯車を標準歯車とした場合、各中心距離aは、下表のようになります。
歯車 | 中心距離a計算式 | a |
サンギヤz1×ピニオンz2 | 19 | |
ピニオンz2×固定リングギヤz3 | 18.5 | |
ピニオンz2×出力リングギヤz4 | 20 |
中心距離aが一致しないので、遊星歯車として成立していません。
中心距離を一致させるために
転位歯車を使用することで中心距離を調整することができます。可能な転位係数の組み合わせは無数に存在するので、次の条件を設けます。
- 出力リングギヤz4の転位係数x4は0です
- 中心距離aは、表に示された18.5~20の範囲内で設定します
- 固定リングギヤz3の転位係数は歯底が尖らない範囲内で設定します
- サンギヤz1,ピニオンz2の転位係数はできれば0以上0.5以内に抑えます(Z3以外は過大な転位は避けたいとの個人的な思いから)
というわけで、4番目は妥当かどうかはまだわかりません。
背景
中田先生の解析では、いきなり19.5が選択されていて、その理由が述べられていません。それでは異なる歯数の組み合わせでの中心距離設定に困るので、19.5を選んだ理由の一つとして、Z1,Z2の転位係数を適正な範囲にとどめるためと推定し、条件4を付与しました。
中心距離のトライ値
今の時点では、中心距離を決める方法が見つかっていません。そのため、文献で示されている19.5をそのまま使うことにします。
中心距離19.5で計算
まず中心距離aと歯数、モジュールmを使ってかみ合い圧力角を求めます
次にかみ合い圧力角αwと工具圧力角α、歯数z4,z2から転位係数の差x4-x2を求めます
Pythonによる計算過程
>>> def inv(v): ... return math.tan(v)-v >>> al=math.pi/9 >>> z2=23 >>> z4=63 >>> a=19.5 >>> m=1 >>> alw=math.acos((z4-z2)*m/2*math.cos(al)/a) >>> xdiff42= (inv(alw)-inv(al))/(2*math.tan(al))*(z4-z2) -0.4478915078845974
したがってxdiff42=x4-x2ですが、x4=0としたので、x2=+0.4479です。
中心距離19.5で計算
同様にz3とz2は
>>> z2=23 >>> z3=60 >>> a=19.5 >>> alw=math.acos((z3-z2)*m/2*math.cos(al)/a) >>> xdiff32= (inv(alw)-inv(al))/(2*math.tan(al))*(z3-z2) =1.1740619510038663
ここでx2=0.4479なので,xdiff32=x3-x2より
x3=1.1740+0.4479=1.62195
固定リングギヤの転位係数が決まりました。
中心距離19.5で計算
z1とz2は外歯車同士なので、符号が変わります。
>>> z2=23 >>> z1=15 >>> a=19.5 >>> alw=math.acos((z1+z2)*m/2*math.cos(al)/a) >>>xsum12= (inv(alw)-inv(al))/(2*math.tan(al))*(z1+z2) =0.5456628631920384
ここでx2=0.4479なので,xsum12=x1+x2より
x1=54566-0.4479=0.09776
サンギヤの転位係数が決まりました。
以上まとめると各歯車の転位係数は下表のようになります。
記号 | 歯数 | 転位係数 |
z1 | 15 | 0.0977 |
z2 | 23 | 0.4497 |
z3 | 60 | 1.6219 |
z4 | 63 | 0.0 |
前回の図10に示した表と一致しています。
Pythonによる全計算過程
すべての計算をベタに書いたのが次のスクリプトです。中心距離a=19.5と決め打ちしていますが、ここを手動で書き換えるか、ループを使って複数水準を計算するようにしてもいいと思います。
import math # Function to calculate the involute function def inv(angle): return math.tan(angle) - angle # Given values for the gear system Z1 = 15 # 歯数 of sun gear Z2 = 23 # 歯数 of pinion Z3 = 60 # 歯数 of internal gear Z3 Z4 = 63 # 歯数 of internal gear Z4 (profile shift coefficient is 0) a = 19.5 # 中心距離 for all pairs m = 1 # モジュール al = math.radians(20) # 圧力角, in radians # Calculating the actual working pressure angle and profile shift coefficients for different pairs # For Sun gear and Pinion (Z1 and Z2) alw_12 = math.acos((Z1 + Z2) * m / (2 * a) * math.cos(al)) xsum12 = (inv(alw_12) - inv(al)) / (2 * math.tan(al)) * (Z1 + Z2) # For Pinion and Internal gear Z3 alw_23 = math.acos((Z3 - Z2) * m / (2 * a) * math.cos(al)) xsum23 = (inv(alw_23) - inv(al)) / (2 * math.tan(al)) * (Z3 - Z2) # For Pinion and Internal gear Z4 (Z4's shift coefficient is 0) alw_24 = math.acos((Z4 - Z2) * m / (2 * a) * math.cos(al)) xsum24 = (inv(alw_24) - inv(al)) / (2 * math.tan(al)) * (Z4 - Z2) # Calculating individual profile shift coefficients x_Z4 = 0 # Z4's shift coefficient x_Z2 = -xsum24 x_Z1 = xsum12 - x_Z2 x_Z3 = xsum23 + x_Z2 # Displaying the results print("Gear Pair Z1 and Z2 (Sun and Pinion):") print(" Working Pressure Angle (radians):", alw_12) print(" Profile Shift Coefficient Difference:", xsum12) print("\nGear Pair Z2 and Z3 (Pinion and Internal Gear Z3):") print(" Working Pressure Angle (radians):", alw_23) print(" Profile Shift Coefficient Difference:", xsum23) print("\nGear Pair Z2 and Z4 (Pinion and Internal Gear Z4):") print(" Working Pressure Angle (radians):", alw_24) print(" Profile Shift Coefficient Difference:", xsum24) print("\nIndividual Gear Profile Shift Coefficients:") print(" Z1 (Sun):", x_Z1) print(" Z2 (Pinion):", x_Z2) print(" Z3 (Internal Gear Z3):", x_Z3) print(" Z4 (Internal Gear Z4):", x_Z4)
以下がその結果です。
Gear Pair Z1 and Z2 (Sun and Pinion): Working Pressure Angle (radians): 0.4138038578354265 Profile Shift Coefficient Difference: 0.5456628631920413 Gear Pair Z2 and Z3 (Pinion and Internal Gear Z3): Working Pressure Angle (radians): 0.47014357553073866 Profile Shift Coefficient Difference: 1.1740619510038663 Gear Pair Z2 and Z4 (Pinion and Internal Gear Z4): Working Pressure Angle (radians): 0.2699384818371098 Profile Shift Coefficient Difference: -0.44789150788459436 Individual Gear Profile Shift Coefficients: Z1 (Sun): 0.0977713553074469 Z2 (Pinion): 0.44789150788459436 Z3 (Internal Gear Z3): 1.6219534588884608 Z4 (Internal Gear Z4): 0
内歯車の尖り判定
転位が大きすぎると、内歯車の歯隙部の歯底(外歯車でいうところの歯先歯厚(top land theckness))が尖りだします。これを判定するために、外歯車の歯先歯厚計算式を使いますが、歯末のたけを1.25に変更しています。
そのプログラムを以下に示します。上述のプログラムを利用するので、末尾に追加してください。最後行のsaが歯底の厚さになります。0以上は必須で、製造・工具限界でどこまで許容できるかで下限値を決めてください。
# Pitch Diameter d = Z3 * m # Root Diameter df = d + 2 * m * (1.25 + x_Z3) # Base Circle Diameter db = d * math.cos(al) # tip pressure angle alf = math.acos(db / df) # half of top land angle psf = math.pi /(2* Z3) + 2 * x_Z3 * math.tan(al) / Z3 + (inv(al) - inv(alf)) # top land thickness sa = psf * df print("\nThe Calculation of Top Land Thickness") print(" tip pressure angle(radians):", alf) print(" half of top land angle(radians):", psf) print(" top land thickness:", sa)
結果は以下のようにtop landが0.0823>0となるので、尖っているように見えますが、かろうじて平坦部(本当は円弧部)が残っています。
The Calculation of Top Land Thickness tip pressure angle(radians): 0.5402236911096935 half of top land angle(radians): 0.0012523756164095068 top land thickness: 0.08233606595132012
実際にCADで作図した結果が下図です。同じ結果(0.0823)を得ています。
なお、ピニオンカッタで加工した場合は、歯底位置にフィレットが付くので見た目の形状は異なりますが、インボリュート曲線自体はこの形状になります。
次に続く予定です。