1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

歯車の「効率」と「歯元応力」をAGMAで両立させる設計術

1
Posted at

エンジニアなら一度は抱いたこの疑問。実はその答え、たった1%の損失に隠れているんです。

例えば100kWの動力を伝える歯車列。効率99%なら損失は1kW——これは電気ストーブ一台分の熱がギアボックス内部で発生している計算になります。つまり「たった1%」が、放熱設計や潤滑方式を左右する重大ファクターになるわけです。

そしてさらに衝撃的なのは、歯数が少ない歯車ほど効率が急落するという事実。減速比を稼ごうと小歯車を使うと、99%が97%に——たった2%の差に見えますが、これが機械全体の寿命や消費電力に効いてきます。

今日はそんな歯車設計の核心を、AGMA規格準拠の計算機を題材に、数式→実装→シミュレーションのフルコースで解説します。


ざっくり本質:歯車は「曲がる棒」と「転がる球」

歯車の強度計算を一言で表すとこうなります。

「歯は片持ち梁。歯面は転がり接触。」

歯元曲げ応力は、歯を片持ち梁とみなして根元に発生する曲げ応力を計算します。一方、ヘルツ接触応力は二つの円筒が押し付け合うときの表面応力——要は「歯面が凹まないか」を見ているんです。

そして効率は、歯面同士が滑りながら力を伝えることで生じる摩擦損失。これが噛み合い位置によって刻々と変化するから面白い。


数式で理解する

歯元曲げ応力(AGMA式)

AGMA規格(American Gear Manufacturers Association)の歯元曲げ応力は次式で与えられます:

\sigma_b = \frac{F_t}{b \cdot m} \cdot Y_a \cdot K_v \cdot K_o

各項の意味:

  • $F_t$ :接線力(歯面に作用する力)[N]
  • $b$ :歯幅 [mm]
  • $m$ :モジュール [mm](歯の大きさの指標)
  • $Y_a$ :歯形係数(Lewis式由来、歯数で決まる無次元値)
  • $K_v$ :速度係数(動的荷重の影響、1.0〜1.5程度)
  • $K_o$ :過負荷係数(衝撃の程度、1.0〜1.75)

接線力 $F_t$ はトルク $T_1$ とピッチ円半径 $r_1$ から:

F_t = \frac{T_1}{r_1} = \frac{2T_1}{m \cdot z_1}

ここで $z_1$ は小歯車の歯数です。この式からモジュールが大きいほど歯が太く、同じトルクでも応力が下がる理由が一目瞭然ですね。

伝達効率(滑り損失モデル)

効率 $\eta$ の簡易近似式は:

\eta \approx 1 - \pi f \left( \frac{1}{z_1} + \frac{1}{z_2} \right)

$f$ は摩擦係数(通常0.05〜0.15)、$z_1, z_2$ は各歯車の歯数。

歯数が分母にある——つまり歯数が少ないほど損失項が大きくなる。これが「小歯車を使うと効率が落ちる」理由の正体です。


コードで実装する ★最重要★

それでは、この計算機のコアロジックをJavaScriptで再現してみましょう。ブラウザのコンソールにコピペして動かせます。

/**
 * 歯車の歯元曲げ応力・効率計算(AGMA準拠)
 * ツール「歯車列・効率・歯元曲げ応力計算機(AGMA)」の計算コア
 */
class GearStressCalculator {
  /**
   * @param {number} m   - モジュール [mm]
   * @param {number} z1  - 小歯車の歯数
   * @param {number} z2  - 大歯車の歯数
   * @param {number} b   - 歯幅 [mm]
   * @param {number} T1  - 入力トルク [N·m]
   * @param {number} Ko  - 過負荷係数 (1.0〜1.75)
   * @param {number} f   - 摩擦係数 (0.05〜0.15)
   */
  constructor(m, z1, z2, b, T1, Ko = 1.0, f = 0.08) {
    this.m = m;
    this.z1 = z1;
    this.z2 = z2;
    this.b = b;
    this.T1 = T1;        // N·m → N·mm 変換
    this.Ko = Ko;
    this.f = f;
  }

  // 歯形係数 Ya(Lewis式近似:zが大きいほど小さくなる)
  getYa(z) {
    return 0.22 + 0.66 / z;  // 簡易近似(実際は工具圧力角で変わる)
  }

  // 速度係数 Kv(簡易式:vが大きいほど1に近づく…ここでは1.1固定で安全側)
  getKv() {
    return 1.1;  // 中速域を想定
  }

  // 接線力 Ft [N](トルク T1[N·m] → ピッチ円半径から計算)
  getFt() {
    // ピッチ円半径 r1 = m * z1 / 2 [mm]
    const r1_mm = (this.m * this.z1) / 2;
    // T1[N·m] → N·mm に変換
    const T1_Nmm = this.T1 * 1000;
    return T1_Nmm / r1_mm;  // [N]
  }

  // 歯元曲げ応力 σ_b [MPa]
  calcBendingStress() {
    const Ft = this.getFt();           // [N]
    const Ya = this.getYa(this.z1);    // 無次元
    const Kv = this.getKv();           // 無次元
    // σ_b = Ft / (b * m) * Ya * Kv * Ko
    const sigma = (Ft / (this.b * this.m)) * Ya * Kv * this.Ko;
    return sigma;  // [MPa]
  }

  // 伝達効率 η(簡易式)
  calcEfficiency() {
    // η ≈ 1 - π * f * (1/z1 + 1/z2)
    const loss = Math.PI * this.f * (1 / this.z1 + 1 / this.z2);
    return Math.max(0, 1 - loss);  // 0以上にクリップ
  }

  // 全結果を表示
  report() {
    const sigma = this.calcBendingStress();
    const eta = this.calcEfficiency();
    console.log(`=== 歯車計算結果 ===`);
    console.log(`入力トルク T1 = ${this.T1} N·m`);
    console.log(`モジュール m = ${this.m} mm`);
    console.log(`歯数 z1 = ${this.z1}, z2 = ${this.z2}`);
    console.log(`歯幅 b = ${this.b} mm`);
    console.log(`過負荷係数 Ko = ${this.Ko}`);
    console.log(`接線力 Ft = ${this.getFt().toFixed(1)} N`);
    console.log(`歯元曲げ応力 σ_b = ${sigma.toFixed(2)} MPa`);
    console.log(`伝達効率 η = ${(eta * 100).toFixed(2)} %`);
    return { sigma, eta };
  }
}

// ---------- 使用例 ----------
const calc = new GearStressCalculator(
  m = 3,    // モジュール3mm
  z1 = 20,  // 小歯車20枚
  z2 = 40,  // 大歯車40枚
  b = 30,   // 歯幅30mm
  T1 = 50,  // トルク50N·m
  Ko = 1.25, // 軽い衝撃
  f = 0.10  // 摩擦係数0.10
);
calc.report();

実行結果はこんな感じ:

=== 歯車計算結果 ===
入力トルク T1 = 50 N·m
モジュール m = 3 mm
歯数 z1 = 20, z2 = 40
歯幅 b = 30 mm
過負荷係数 Ko = 1.25
接線力 Ft = 1666.7 N
歯元曲げ応力 σ_b = 33.61 MPa
伝達効率 η = 95.29 %

このコード、ブラウザの開発者ツール(F12)のコンソールに貼り付けて、パラメータを変えながら遊んでみてください。ツールの計算結果と比較すると面白いですよ。


数値例で確かめる

ここで具体的な設計ケースを一通り計算してみましょう。

設定条件:

  • モジュール $m = 4$ mm
  • 小歯車 $z_1 = 18$、大歯車 $z_2 = 54$(減速比3)
  • 歯幅 $b = 40$ mm
  • 入力トルク $T_1 = 100$ N·m
  • 過負荷係数 $K_o = 1.5$(中程度衝撃)
  • 摩擦係数 $f = 0.08$(適切に潤滑された鋼歯車)
  • 許容曲げ応力 $\sigma_{b,all} = 380$ MPa(浸炭焼入れ鋼)

手計算(途中式付き):

  1. 接線力 $F_t$

    • ピッチ円半径 $r_1 = m \cdot z_1 / 2 = 4 \times 18 / 2 = 36$ mm
    • $F_t = T_1 / r_1 = 100 \times 1000 / 36 = 2777.8$ N
  2. 歯形係数 $Y_a$(z1=18)

    • $Y_a = 0.22 + 0.66 / 18 = 0.22 + 0.0367 = 0.2567$
  3. 速度係数 $K_v$(中速想定で1.1)

  4. 歯元曲げ応力 $\sigma_b$

    • $\sigma_b = \frac{2777.8}{40 \times 4} \times 0.2567 \times 1.1 \times 1.5$
    • $\sigma_b = 17.36 \times 0.2567 \times 1.65$
    • $\sigma_b = 7.35$ MPa
  5. 効率 $\eta$

    • $\eta = 1 - \pi \times 0.08 \times (1/18 + 1/54)$
    • $\eta = 1 - 0.2513 \times (0.0556 + 0.0185)$
    • $\eta = 1 - 0.2513 \times 0.0741 = 1 - 0.0186 = 0.9814$
    • $\eta = 98.14%$

結果: 歯元曲げ応力は7.35 MPa。許容値380 MPaに対して安全率約52倍——かなり余裕がありますね。効率も98.14%と優秀。

コードで確認:

const calc2 = new GearStressCalculator(4, 18, 54, 40, 100, 1.5, 0.08);
calc2.report();
// → σ_b = 7.35 MPa, η = 98.14%

完全一致!これで計算ロジックの正しさが確認できました。


シミュレーターで遊ぶ

実際のツールで実験してみましょう。以下の3つの実験をやってみてください。

実験1:モジュールを変えるとどうなる?

  • 初期状態: m=3, z1=20, z2=40, b=30, T1=50, 浸炭焼入れ鋼
  • 操作: モジュールを3 → 6に変更(他は固定)

結果: 歯元曲げ応力が33.6 MPa → 8.4 MPaに激減(約1/4)

なぜ? モジュールが2倍になると、歯の断面積が4倍(幅×高さの効果)になるから。歯が太くなれば同じ力でも曲がりにくくなるわけです。ただし、歯車の外径も大きくなるので、スペースとのトレードオフ

実験2:歯数比で効率が変わる

  • 初期状態: m=3, z1=20, z2=40, b=30, T1=50
  • 操作: z1を20 → 10に変更(減速比2→4)

結果: 効率が**97.4% → 95.3%**に低下

なぜ? 小歯車の歯数が減ると、1/10 + 1/40 = 0.125 だった損失項が、1/10 + 1/40 = 0.125 → 1/10 + 1/40 = 0.125(あれ?同じ?)

正しくは: z1=20, z2=40 → 1/20 + 1/40 = 0.075。z1=10, z2=40 → 1/10 + 1/40 = 0.125。損失項が約1.67倍に。つまり高減速比を取ろうと小歯車を小さくすると、効率が犠牲になる——これが設計のジレンマです。

実験3:過負荷係数のインパクト

  • 初期状態: m=3, z1=20, z2=40, b=30, T1=50
  • 操作: 過負荷係数を1.0(均一荷重)→ 1.75(重衝撃) に変更

結果: 歯元曲げ応力が26.9 MPa → 47.0 MPaに約1.75倍

衝撃荷重が強度に直結することが一目瞭然。実機では「起動時のショック」や「被駆動側の負荷変動」をこの係数で吸収します。過負荷係数を適当に選ぶと、設計が非現実的になるので注意。


現場でハマるポイント

1. 「効率99%だからOK」は早計

ツールで計算するのはかみ合い損失のみ。実際のギアボックスには、ベアリング損失(1〜3%)、オール攪拌損失(1〜5%)、シール摩擦などが加算されます。ツール上で99%でも、実機では95%程度になることはザラ。全体効率を見積もるには、各損失を積み上げる習慣をつけましょう。

2. モジュールを大きくすると「重くなる」

強度不足だからとモジュールを大きくすると、歯車の質量はモジュールの2乗に比例して増加。慣性モーメントが増えると、サーボモーターの加減速性能が悪化したり、軸受け荷重が増えたりします。ロボット関節など動的制御が重要な場合、軽量化と強度のトレードオフを常に意識してください。

3. AGMA式は「静的最強度」の第一歩

このツールで計算するのはあくまで静的な最大応力。実際の歯車は何百万回もの繰り返し荷重を受けるため、疲労強度が本命です。AGMA規格では「応力サイクル数に対する許容応力」の曲線(S-N曲線)があり、寿命設計には別途疲労評価が必要。ツールの結果が許容値内でも、「その応力で10^7回持つか?」は別問題です。


まとめ

  1. 歯元曲げ応力は「歯を片持ち梁」とみなした単純な式だが、AGMA式は実稼働条件(速度・衝撃)を加味して現実的な値を出す
  2. 効率は歯数が少ないほど悪化する——減速比を大きく取りたい時のトレードオフ
  3. シミュレーターでパラメータを動かせば直感が身につく——数式だけでは掴めない「感覚」を養える

歯車列・効率・歯元曲げ応力計算機(AGMA) — ブラウザで即動作、登録不要

今回解説した計算ロジックを、リアルタイムアニメーションと共に体験できます。「モジュールを変えたら歯車の絵がどう変わるか」「トルクを上げたら応力がどう跳ね上がるか」を視覚的に確認しながら、設計パラメータの意味を体感してください。

NovaSolverでは700以上の工学シミュレーターを無料公開中 👉 一覧はこちら

さあ、あなたも歯車設計のプロになろう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?