油圧シリンダのサイクルタイムを計算する|伸び・保持・戻り時間と必要油量

「油圧シリンダのサイクルタイムを計算する|伸び・保持・戻り時間と必要油量」の内容を表す技術イラスト

油圧シリンダの速度が分かっても、機械全体の処理能力を判断するには情報が足りません。

実際の設備では、シリンダが伸びてから一定時間保持し、その後に戻り、次の動作まで待機します。この一連の所要時間がサイクルタイムです。

伸び
  ↓
加圧・保持
  ↓
戻り
  ↓
待機
  ↓
次のサイクル

この記事では、複動片ロッドシリンダを対象に、伸び・保持・戻りを含む1サイクルの計算方法を整理します。

目次

サイクルタイムの基本構成

シリンダ1往復のサイクルタイムを \(t_{\mathrm{cycle}}\) とすると、\[ t_{\mathrm{cycle}} = t_{\mathrm{extend}} + t_{\mathrm{hold,1}} + t_{\mathrm{retract}} + t_{\mathrm{hold,2}} \]

です。

ここで、

  • \(t_{\mathrm{extend}}\):伸び時間
  • \(t_{\mathrm{retract}}\):戻り時間
  • \(t_{\mathrm{hold,1}}\):伸び端での保持時間
  • \(t_{\mathrm{hold,2}}\):戻り端での待機時間

です。

実機では、方向制御弁の切換時間、圧力上昇時間、センサー確認時間、ワーク搬入・排出時間、他軸の動作時間、シリンダ端部の減速時間などが加わる場合があります。

シリンダの受圧面積を求める

シリンダ内径を \(D\)、ロッド径を \(d\) とします。

伸び側の受圧面積は、\[ A_1 = \frac{\pi D^2}{4} \]

です。

戻り側の環状面積は、\[ A_2 = \frac{\pi(D^2-d^2)}{4} \]

です。

片ロッドシリンダでは \(A_1>A_2\) なので、同じ流量を供給するなら、一般に戻り側の方が速く動きます。

1ストロークに必要な油量

ストロークを \(L\) とすると、伸び側へ供給する理論油量は、\[ V_{\mathrm{extend}} = A_1L \]

戻り側へ供給する理論油量は、\[ V_{\mathrm{retract}} = A_2L \]

です。

面積を \(\mathrm{mm^2}\)、ストロークを \(\mathrm{mm}\) で計算し、油量をLへ変換する場合は、\[ V[\mathrm{L}] = \frac{ A[\mathrm{mm^2}] L[\mathrm{mm}] }{ 10^6 } \]

となります。

1往復でシリンダへ供給される理論油量は、\[ V_{\mathrm{cycle}} = V_{\mathrm{extend}} + V_{\mathrm{retract}} \]

です。

これはタンク容量そのものではありません。同じ作動油が回路内を循環するため、1サイクルの供給油量とタンクの保有油量は分けて考えます。

流量から移動時間を求める

流量 \(Q\) がL/min、必要油量 \(V\) がLの場合、\[ t[\mathrm{s}] = \frac{ 60V[\mathrm{L}] }{ Q[\mathrm{L/min}] } \]

です。

したがって、\[ t_{\mathrm{extend}} = \frac{ 60V_{\mathrm{extend}} }{ Q_{\mathrm{extend}} } \]\[ t_{\mathrm{retract}} = \frac{ 60V_{\mathrm{retract}} }{ Q_{\mathrm{retract}} } \]

となります。

伸び側と戻り側で流量設定が異なる場合は、それぞれの実流量を使用します。

計算例|内径80 mm・ロッド径45 mm・ストローク500 mm

次の条件を考えます。

項目値
シリンダ内径80 mm
ロッド径45 mm
ストローク500 mm
伸び側流量30 L/min
戻り側流量25 L/min
伸び端保持時間2.0 s
戻り端待機時間2.0 s

伸び側面積は、\[ A_1 = \frac{ \pi \times 80^2 }{ 4 } \approx 5026.5\ \mathrm{mm^2} \]

です。

戻り側面積は、\[ A_2 = \frac{ \pi(80^2-45^2) }{ 4 } \approx 3436.1\ \mathrm{mm^2} \]

です。

伸びに必要な油量は、\[ V_{\mathrm{extend}} = \frac{ 5026.5 \times 500 }{ 10^6 } \approx 2.513\ \mathrm{L} \]

です。

戻りに必要な油量は、\[ V_{\mathrm{retract}} = \frac{ 3436.1 \times 500 }{ 10^6 } \approx 1.718\ \mathrm{L} \]

です。

したがって、1往復の理論供給油量は、\[ V_{\mathrm{cycle}} = 2.513+1.718 \approx 4.231\ \mathrm{L} \]

となります。

伸び時間と戻り時間

伸び時間は、\[ t_{\mathrm{extend}} = \frac{ 60 \times 2.513 }{ 30 } \approx 5.03\ \mathrm{s} \]

です。

戻り時間は、\[ t_{\mathrm{retract}} = \frac{ 60 \times 1.718 }{ 25 } \approx 4.12\ \mathrm{s} \]

です。

保持時間と待機時間を含めると、\[ t_{\mathrm{cycle}} = 5.03+2.0+4.12+2.0 \approx 13.15\ \mathrm{s} \]

となります。

1時間あたりの理論サイクル数

1時間は3,600秒なので、\[ N = \frac{ 3600 }{ t_{\mathrm{cycle}} } \]

です。

今回の例では、\[ N = \frac{ 3600 }{ 13.15 } \approx 274\ \mathrm{cycle/h} \]

となります。

これは停止や異常がない理論値です。実際の生産能力には、ワーク交換、センサー待ち、他軸とのインターロック、品質確認、段取り替え、チョコ停、保全停止などが影響します。

平均流量だけでポンプを選ばない

1サイクルの理論供給油量が約4.231 L、サイクルタイムが約13.15秒なら、時間平均流量は、\[ Q_{\mathrm{avg}} = \frac{ 60V_{\mathrm{cycle}} }{ t_{\mathrm{cycle}} } \]

です。

したがって、\[ Q_{\mathrm{avg}} = \frac{ 60 \times 4.231 }{ 13.15 } \approx 19.3\ \mathrm{L/min} \]

となります。

しかし、伸び工程では30 L/minが必要です。平均流量だけを見てポンプを選ぶと、要求する伸び速度を満たせません。

蓄圧器などでピーク流量を補わない場合、ポンプ、バルブ、配管は工程ごとの最大要求流量を基準に確認します。

戻り配管の流量は供給流量と同じとは限らない

伸び時にヘッド側へ \(Q_1\) を供給すると、ロッド側から押し出される流量は、\[ Q_{\mathrm{out,extend}} = Q_1 \frac{ A_2 }{ A_1 } \]

です。

今回の例では、\[ Q_{\mathrm{out,extend}} = 30 \frac{ 3436.1 }{ 5026.5 } \approx 20.5\ \mathrm{L/min} \]

です。

一方、戻り時にロッド側へ25 L/minを供給すると、ヘッド側から出る流量は、\[ Q_{\mathrm{out,retract}} = 25 \frac{ A_1 }{ A_2 } \]

なので、\[ Q_{\mathrm{out,retract}} = 25 \frac{ 5026.5 }{ 3436.1 } \approx 36.6\ \mathrm{L/min} \]

となります。

ポンプからの供給は25 L/minでも、戻り配管には約36.6 L/minが流れます。方向制御弁、戻り配管、フィルタ、クーラの選定では、この戻り流量も確認する必要があります。

理論時間と実時間が一致しない理由

基本式は、\[ t = \frac{V}{Q} \]

ですが、実機ではポンプ流量、内部漏れ、油温、粘度、クッション機構、比例制御、圧力上昇時間、作動油の圧縮性、ホースの膨張、負荷変動などによって差が生じます。

特に端部減速を行う場合は、ストローク全体を一定速度として扱わず、\[ t_{\mathrm{move}} = t_{\mathrm{fast}} + t_{\mathrm{deceleration}} \]

のように区間を分けて計算します。

工程を分割して計算する

より実務的には、サイクルを工程ごとの状態として扱います。

工程計算方法
高速伸び区間油量 ÷ 高速流量
減速伸び区間油量 ÷ 減速流量
加圧実測値または回路モデル
保持設定時間
高速戻り区間油量 ÷ 戻り流量
戻り端待機設定時間

工程 \(i\) の所要時間を \(t_i\) とすると、\[ t_{\mathrm{cycle}} = \sum_{i=1}^{n}t_i \]

です。

この形式にすると、PLCのステップ、タイムチャート、実測ログと計算結果を対応させやすくなります。

Pythonでサイクルタイムを計算する

from dataclasses import dataclass
from math import pi


@dataclass
class CylinderCycle:
    bore_mm: float
    rod_mm: float
    stroke_mm: float
    extend_flow_l_min: float
    retract_flow_l_min: float
    extended_hold_s: float = 0.0
    retracted_hold_s: float = 0.0


def calculate_cycle(spec: CylinderCycle) -> dict[str, float]:
    if spec.bore_mm <= 0:
        raise ValueError("bore_mm must be > 0")
    if not 0 <= spec.rod_mm < spec.bore_mm:
        raise ValueError("rod_mm must be in [0, bore_mm)")
    if spec.stroke_mm <= 0:
        raise ValueError("stroke_mm must be > 0")
    if spec.extend_flow_l_min <= 0:
        raise ValueError("extend_flow_l_min must be > 0")
    if spec.retract_flow_l_min <= 0:
        raise ValueError("retract_flow_l_min must be > 0")

    cap_area_mm2 = pi * spec.bore_mm**2 / 4
    annulus_area_mm2 = pi * (
        spec.bore_mm**2 - spec.rod_mm**2
    ) / 4

    extend_volume_l = (
        cap_area_mm2 * spec.stroke_mm / 1_000_000
    )
    retract_volume_l = (
        annulus_area_mm2 * spec.stroke_mm / 1_000_000
    )

    extend_time_s = (
        60 * extend_volume_l / spec.extend_flow_l_min
    )
    retract_time_s = (
        60 * retract_volume_l / spec.retract_flow_l_min
    )

    cycle_time_s = (
        extend_time_s
        + spec.extended_hold_s
        + retract_time_s
        + spec.retracted_hold_s
    )

    return_flow_extend_l_min = (
        spec.extend_flow_l_min
        * annulus_area_mm2
        / cap_area_mm2
    )

    return_flow_retract_l_min = (
        spec.retract_flow_l_min
        * cap_area_mm2
        / annulus_area_mm2
    )

    return {
        "extend_volume_l": extend_volume_l,
        "retract_volume_l": retract_volume_l,
        "cycle_volume_l": extend_volume_l + retract_volume_l,
        "extend_time_s": extend_time_s,
        "retract_time_s": retract_time_s,
        "cycle_time_s": cycle_time_s,
        "cycles_per_hour": 3600 / cycle_time_s,
        "return_flow_extend_l_min": return_flow_extend_l_min,
        "return_flow_retract_l_min": return_flow_retract_l_min,
    }

計算で起こりやすい失敗

伸び側と戻り側へ同じ面積を使う。
片ロッドシリンダでは、戻り側はロッド断面積を差し引きます。

L/minと秒を直接組み合わせる。
時間を秒で求める場合は、分から秒への換算係数60が必要です。

移動時間だけをサイクルタイムとする。
保持、加圧、弁切換、センサー待ち、他のアクチュエータの時間を追加します。

平均流量だけでポンプを選ぶ。
各工程で同時に必要となるピーク流量を確認します。

ポンプ流量をそのまま戻り配管流量とする。
片ロッドシリンダでは面積比によって戻り流量がポンプ流量を上回る場合があります。

理論値を設備保証値とする。
最終的には実機で時間、流量、圧力、油温を測定し、計算との差を確認します。

まとめ

油圧シリンダの移動時間は、必要油量を供給流量で割って求めます。\[ t[\mathrm{s}] = \frac{ 60V[\mathrm{L}] }{ Q[\mathrm{L/min}] } \]

伸び側と戻り側の油量は、\[ V_{\mathrm{extend}} = \frac{\pi D^2L}{4} \]\[ V_{\mathrm{retract}} = \frac{\pi(D^2-d^2)L}{4} \]

です。

1サイクルの所要時間は、\[ t_{\mathrm{cycle}} = t_{\mathrm{extend}} + t_{\mathrm{hold,1}} + t_{\mathrm{retract}} + t_{\mathrm{hold,2}} \]

として求められます。

ただし、ポンプやバルブを選ぶときは、サイクル全体の平均流量だけでなく、工程ごとのピーク流量とシリンダから押し出される戻り流量も確認します。

この計算を工程データとして構造化すれば、油圧回路設計だけでなく、PLCタイムチャート、設備能力計算、実測ログ分析、Web計算ツールへ展開できます。

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

この記事を書いた人

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

目次