不思議遊星歯車の転位設計(1)

不思議遊星歯車が大減速比を得られる仕組みがわかったので、つぎにそれを実現するための転位設計方法の一例を紹介します。基本は前回記載の中田先生の文献によります。


転位設計方法

設計歯車諸元

歯車諸元は、前回と同じで
サンギヤz1=15
ピニオンz2=23
固定リングギヤz3=60
出力リングギヤz4=63
モジュールm=1
圧力角α=20°
とします。

転位しない場合(標準歯車)

各歯車を標準歯車とした場合、各中心距離aは、下表のようになります。

歯車 中心距離a計算式 a
サンギヤz1×ピニオンz2 m\cdot\frac{z_1+z_2}{2} 19
ピニオンz2×固定リングギヤz3 m\cdot\frac{z_3-z_2}{2} 18.5
ピニオンz2×出力リングギヤz4 m\cdot\frac{z_4-z_2}{2} 20

中心距離aが一致しないので、遊星歯車として成立していません。

図1.標準歯車時の中心距離

中心距離を一致させるために

転位歯車を使用することで中心距離を調整することができます。可能な転位係数の組み合わせは無数に存在するので、次の条件を設けます。

  1. 出力リングギヤz4の転位係数x4は0です
  2. 中心距離aは、表に示された18.5~20の範囲内で設定します
  3. 固定リングギヤz3の転位係数は歯底が尖らない範囲内で設定します
  4. サンギヤz1,ピニオンz2の転位係数はできれば0以上0.5以内に抑えます(Z3以外は過大な転位は避けたいとの個人的な思いから)

というわけで、4番目は妥当かどうかはまだわかりません。

背景
中田先生の解析では、いきなり19.5が選択されていて、その理由が述べられていません。それでは異なる歯数の組み合わせでの中心距離設定に困るので、19.5を選んだ理由の一つとして、Z1,Z2の転位係数を適正な範囲にとどめるためと推定し、条件4を付与しました。

中心距離のトライ値

今の時点では、中心距離を決める方法が見つかっていません。そのため、文献で示されている19.5をそのまま使うことにします。

中心距離19.5でz_2,z_4計算

まず中心距離aと歯数z_4,z_2、モジュールmを使ってかみ合い圧力角α_wを求めます
α_w=\arccos( (z_4-z_2)*m/2*\cos(α)/a)=15.4663
次にかみ合い圧力角αwと工具圧力角α、歯数z4,z2から転位係数の差x4-x2を求めます
x_4-x_2=(inv(α_w)-inv(α) )/(2*\tan(α) )*(z4-z2)=-0.4479

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でz_2,z_3計算

同様に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でz_1,z_2計算

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)を得ています。

図.作図結果

なお、ピニオンカッタで加工した場合は、歯底位置にフィレットが付くので見た目の形状は異なりますが、インボリュート曲線自体はこの形状になります。

次に続く予定です。