「ベルトコンベヤのモータートルクを計算する|搬送質量・傾斜・摩擦・加速」の内容を表す技術イラスト
UNIT 01機械設計 FIG.00 · EYECATCH

ベルトコンベヤのモータートルクを計算する|搬送質量・傾斜・摩擦・加速

ベルトコンベヤの必要モータートルクを、搬送質量、摩擦、傾斜、加速時間、プーリ径、減速比から求める方法を解説。数値例とPythonコード、選定時の注意点も紹介します。

DOC NO.EKP-01-1173
DATE
REVB
READ約 13 分
目次

ベルトコンベヤの必要トルクは「抵抗力」と「加速力」を分けて考える

ベルトコンベヤのモーターを選ぶとき、搬送物の質量だけを見て出力を決めると、起動できない、坂道で停止する、減速機が過負荷になるといった問題が起こります。必要トルクは、一定速で動かし続けるための抵抗と、所定時間で速度を上げるための加速を分けて計算するのが基本です。

この記事では、ベルトと搬送物が支持面上を滑る「スライダーベッド式」を簡易モデルとして扱います。実機では、ベルトの曲げ抵抗、ローラー軸受、スクレーパー、シール、張力装置なども影響します。最終選定では、ベルトメーカーとモーターメーカーの計算条件、カタログ上の許容値を必ず確認してください。

計算の流れは次のとおりです。

  1. 搬送方向の抵抗力を求める
  2. 起動時の加速力を加える
  3. 駆動プーリのトルクと回転速度へ変換する
  4. 減速比と効率を使ってモーター軸へ換算する
  5. モーター自身などの回転慣性による加速トルクを加える
  6. 最大トルク、連続トルク、熱、減速機許容値を照合する

計算に使う記号と前提

記号意味単位
mベルトと搬送物の移動質量kg
μベルト支持面の摩擦係数なし
g重力加速度m/s²
θ搬送面の傾斜角° または rad
F_Aスクレーパーなどの付加外力N
vベルト速度m/s
t_a加速時間s
aベルトの加速度m/s²
r駆動プーリの有効半径m
η_cベルト・プーリ部の機械効率なし
i減速比(モーター回転速度÷出力回転速度)なし
η_g減速機の伝達効率なし
J_mモーター軸上で加速する回転体の慣性モーメントkg·m²

質量には、搬送物だけでなく実際に加速するベルト質量も含めます。搬送物が同時に何個載るか、滞留が起きるか、投入直後に偏るかも条件化が必要です。

一定速運転時の抵抗力を求める

水平成分と傾斜成分

上向き搬送では、支持面との摩擦と重力の斜面方向成分が抵抗になります。付加外力も含めると、一定速時の抵抗力は次式です。

$$ F_R = \mu m g \cos\theta + m g \sin\theta + F_A $$

第1項は摺動摩擦、第2項は坂を上るための力、第3項はスクレーパーやブラシなどによる外力です。水平なら $\theta=0$ なので傾斜項はゼロになります。

下向き搬送では、重力成分が駆動方向を助けるため符号が変わります。重力成分が摩擦を上回ると、負荷側がモーターを回す「オーバーホール負荷」になり得ます。その場合は、駆動トルクだけでなくブレーキ、回生、停止保持を検討します。

摩擦係数を安易に固定しない

摩擦係数は、材質、温度、汚れ、水分、摩耗、始動状態で変化します。カタログや実測値がない場合に、一般的な値を根拠なく流用するのは危険です。特に長期間停止後の始動では、運転中より大きい静止摩擦が現れることがあります。

起動時の加速力を加える

停止状態から速度 $v$ まで時間 $t_a$ で等加速度運転するなら、加速度は次式です。

$$ a = \frac{v}{t_a} $$

ベルトと搬送物を加速する力は次のとおりです。

$$ F_{acc} = ma $$

したがって、上向き起動時にプーリへ必要な周方向力は、簡易的に次式で表せます。

$$ F_{total} = F_R + F_{acc} $$

この式に含まれるのは直線移動する質量です。プーリ、ローラー、カップリング、減速機、モーターローターなどの回転慣性は別途加算します。直線質量と回転慣性を両方の項へ入れると二重計上になるため、計算モデルの境界を明確にします。

プーリ軸のトルクと回転速度へ変換する

駆動プーリの必要トルク

ベルト・プーリ部の効率を $\eta_c$ とすると、駆動プーリ軸の必要トルクは次式です。

$$ T_{out} = \frac{F_{total}r}{\eta_c} $$

プーリ径 $D$ を使う場合は $r=D/2$ です。半径と直径を取り違えると結果が2倍ずれるので、入力名と単位を固定しておくと安全です。

プーリとモーターの回転速度

ベルト速度とプーリ周速度が一致すると仮定すると、プーリ回転速度は次式です。

$$ n_{out} = \frac{60v}{2\pi r} $$

減速比を $i=n_m/n_{out}$ と定義すれば、モーター回転速度は次式です。

$$ n_m = i n_{out} $$

ここで計算した回転速度が、モーターの使用可能速度域と減速機の入力回転速度範囲に入ることを確認します。

減速機を介してモーター軸へ換算する

減速機効率を $\eta_g$ とすると、プーリ負荷をモーター軸へ換算したトルクは次式です。

$$ T_{m,load} = \frac{T_{out}}{i\eta_g} $$

さらに、モーター軸上で加速する回転体の慣性モーメントを $J_m$、モーター角加速度を $\alpha_m$ とすれば、回転慣性による加速トルクは次式です。

$$ T_{m,rot} = J_m\alpha_m $$

ベルト加速度とモーター角加速度の関係は次のようになります。

$$ \alpha_m = i\frac{a}{r} $$

起動時のモーター必要トルクは、簡易的に次式で求められます。

$$ T_m = T_{m,load} + T_{m,rot} $$

$J_m$ にはモーターローターだけでなく、モーター軸換算した減速機やカップリング等の慣性を含めます。詳細値はメーカー資料を使い、減速比の二乗による慣性換算を正しく行います。

数値例:傾斜8度のコンベヤを0.8秒で加速する

次の仮定で計算します。これは手順を示す例であり、摩擦係数や効率を実機へそのまま適用するものではありません。

項目値
移動質量 m120 kg
摩擦係数 μ0.18
傾斜角 θ8°
付加外力 F_A50 N
ベルト速度 v0.40 m/s
加速時間 t_a0.80 s
プーリ半径 r0.075 m
ベルト・プーリ効率 η_c0.92
減速比 i20
減速機効率 η_g0.85
モーター軸側の回転慣性 J_m0.0012 kg·m²

重力加速度を $g=9.80665\ \mathrm{m/s^2}$ とします。摩擦力と傾斜抵抗は次のとおりです。

$$ \mu m g \cos\theta = 0.18 \times 120 \times 9.80665 \times \cos 8^\circ \approx 209.8\ \mathrm{N} $$

$$ m g \sin\theta = 120 \times 9.80665 \times \sin 8^\circ \approx 163.8\ \mathrm{N} $$

したがって、一定速時の抵抗力は次の値です。

$$ F_R \approx 209.8 + 163.8 + 50 = 423.5\ \mathrm{N} $$

加速度と加速力は次のとおりです。

$$ a = \frac{0.40}{0.80} = 0.50\ \mathrm{m/s^2} $$

$$ F_{acc} = 120 \times 0.50 = 60.0\ \mathrm{N} $$

起動時の合計周方向力は約483.5 N、プーリ軸トルクは次の値です。

$$ T_{out} = \frac{(423.5+60.0)\times 0.075}{0.92} \approx 39.4\ \mathrm{N\cdot m} $$

モーター軸へ換算した負荷トルクは次のとおりです。

$$ T_{m,load} = \frac{39.4}{20\times0.85} \approx 2.32\ \mathrm{N\cdot m} $$

モーター角加速度は約133.3 rad/s²なので、回転慣性分は0.16 N·mです。したがって起動時の必要トルクは 約2.48 N·m です。一方、加速力を除いた一定速時のモーター軸トルクは 約2.03 N·m となります。

プーリ回転速度は約50.9 min⁻¹、モーター回転速度は約1019 min⁻¹です。トルクだけでなく、この回転速度で必要トルクを出せることをトルク・速度特性で確認します。

Pythonで計算を再現する

入力単位をSI単位系に統一した簡易計算コードです。傾斜角は度で入力し、上向き搬送を正としています。

from dataclasses import dataclass
from math import cos, pi, radians, sin


@dataclass(frozen=True)
class ConveyorInput:
    moving_mass_kg: float
    friction_coefficient: float
    incline_deg: float
    external_force_n: float
    belt_speed_m_s: float
    acceleration_time_s: float
    pulley_radius_m: float
    conveyor_efficiency: float
    gear_ratio: float
    gear_efficiency: float
    motor_side_inertia_kg_m2: float


def calculate_torque(x: ConveyorInput) -> dict[str, float]:
    if x.moving_mass_kg <= 0 or x.pulley_radius_m <= 0:
        raise ValueError("mass and pulley radius must be positive")
    if x.acceleration_time_s <= 0 or x.gear_ratio <= 0:
        raise ValueError("acceleration time and gear ratio must be positive")
    if not 0 < x.conveyor_efficiency <= 1:
        raise ValueError("conveyor efficiency must be in (0, 1]")
    if not 0 < x.gear_efficiency <= 1:
        raise ValueError("gear efficiency must be in (0, 1]")

    g = 9.80665
    theta = radians(x.incline_deg)
    friction_force = (
        x.friction_coefficient * x.moving_mass_kg * g * cos(theta)
    )
    slope_force = x.moving_mass_kg * g * sin(theta)
    resistance_force = friction_force + slope_force + x.external_force_n

    acceleration = x.belt_speed_m_s / x.acceleration_time_s
    acceleration_force = x.moving_mass_kg * acceleration
    total_force = resistance_force + acceleration_force

    output_torque = (
        total_force * x.pulley_radius_m / x.conveyor_efficiency
    )
    motor_load_torque = output_torque / (
        x.gear_ratio * x.gear_efficiency
    )

    output_speed_rpm = (
        60 * x.belt_speed_m_s / (2 * pi * x.pulley_radius_m)
    )
    motor_speed_rpm = x.gear_ratio * output_speed_rpm
    motor_angular_acceleration = (
        x.gear_ratio * acceleration / x.pulley_radius_m
    )
    motor_inertia_torque = (
        x.motor_side_inertia_kg_m2 * motor_angular_acceleration
    )

    return {
        "resistance_force_n": resistance_force,
        "total_force_n": total_force,
        "output_torque_nm": output_torque,
        "motor_load_torque_nm": motor_load_torque,
        "motor_inertia_torque_nm": motor_inertia_torque,
        "motor_required_torque_nm": motor_load_torque + motor_inertia_torque,
        "output_speed_rpm": output_speed_rpm,
        "motor_speed_rpm": motor_speed_rpm,
    }


example = ConveyorInput(
    moving_mass_kg=120,
    friction_coefficient=0.18,
    incline_deg=8,
    external_force_n=50,
    belt_speed_m_s=0.40,
    acceleration_time_s=0.80,
    pulley_radius_m=0.075,
    conveyor_efficiency=0.92,
    gear_ratio=20,
    gear_efficiency=0.85,
    motor_side_inertia_kg_m2=0.0012,
)

for name, value in calculate_torque(example).items():
    print(f"{name}: {value:.3f}")

実務では入力値と計算結果をJSONやCSVで保存すると、設計変更時の再計算、レビュー、Webツール化が容易になります。式だけでなく、値の出典、改訂日、測定条件も一緒に管理することが重要です。

モーター選定で計算値以外に確認すること

最大トルクと連続トルクを分ける

起動時トルクがモーターの瞬時最大トルクまたは起動トルクを下回るだけでは不十分です。一定速区間のトルク、加減速時間、停止時間を含め、熱的に連続運転できるかを確認します。運転区間ごとのトルクを $T_k$、時間を $t_k$ とすると、代表的な実効トルクは次式です。

$$ T_{rms} = \sqrt{\frac{\sum T_k^2 t_k}{\sum t_k}} $$

適用できる負荷周期、許容トルク、冷却条件はモーターとドライバの仕様に従います。汎用的な安全率だけで熱設計を置き換えることはできません。

減速機の出力軸条件を確認する

減速機は、入力側のモータートルクだけでなく、出力軸の許容トルク、瞬時最大トルク、ラジアル荷重、スラスト荷重、寿命で確認します。プーリを減速機出力軸へ直接取り付ける場合、ベルト張力によるオーバーハング荷重が支配条件になることがあります。

ベルトが力を伝えられるか確認する

必要トルクを発生できても、駆動プーリとベルトの間で滑れば搬送できません。摩擦駆動ベルトの伝達能力は、巻付角、接触面の摩擦、初張力、汚れや水分の影響を受けます。張力を増やすと滑りにくくなる一方、軸受荷重とベルト応力が増えるため、メーカーの張力計算と許容値を使います。

停止と下降運転を別ケースにする

傾斜コンベヤでは、停止中の逆走防止や非常停止時の保持が必要です。下降運転で負荷がモーターを回す場合、インバーターの回生能力、制動抵抗、機械ブレーキを検討します。上昇時の式だけで正逆両方向を評価しないようにします。

よくある計算ミス

  • 搬送物だけを質量に入れ、ベルト質量を忘れる
  • プーリ直径を半径として使う
  • 減速機効率を掛ける位置と割る位置を逆にする
  • モーター軸換算の慣性と直線質量を二重計上する
  • 起動トルクだけで選び、連続運転時の温度上昇を確認しない
  • 安全率をすべての不確かさの代わりに使う
  • 下降運転の重力項を上向きと同じ符号にする
  • ベルトの滑り、張力、出力軸荷重を確認しない

まとめ

ベルトコンベヤのモータートルクは、一定速時の抵抗力、加速力、プーリ半径、機械効率、減速比、回転慣性を順番に整理すると計算できます。今回の簡易モデルでは、抵抗力と加速力をプーリ軸トルクへ変換し、減速機を介してモーター軸へ換算しました。

ただし、計算値はモーター選定の入口です。最終的には、最大トルク、実効トルク、速度範囲、減速機許容値、軸荷重、ベルト伝達能力、停止保持、回生条件まで確認します。入力値と式の根拠をデータとして残しておけば、仕様変更への追従や選定ロジックのコード化にもつなげられます。

参考情報

参考になったらシェアしてください
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

機械設計・油圧・CAD・Python・AIなど、ものづくりに関わる技術を扱っています。工学知識を整理・構造化し、設計や自動化に再利用できる形へ変えていくことを目指しています。

目次