油圧シリンダの動作速度は、基本的に流量と有効面積から決まります。
基本式は、
です。
ここで、
- :シリンダ速度
- :シリンダへ流入する体積流量
- :流体が作用する有効面積
を表します。
式だけを見ると非常に単純ですが、複動シリンダでは伸び側と戻り側で有効面積が異なります。
そのため、同じ流量を供給しても、
となります。
Parkerの油圧シリンダ資料でも、シリンダ速度は流量を有効面積で割る関係として整理されています。
まずピストン面積を求める
シリンダ内径を とすると、ピストン全面積は、
です。
たとえば内径が、
なら、
です。
SI単位へ変換すると、
となります。
この面積が、一般的な片ロッド複動シリンダの伸び側有効面積です。
戻り側ではロッド面積を引く
戻り側では、ピストン面積の一部をロッドが占めています。
ロッド径を とすると、ロッド断面積は、
です。
したがって戻り側の環状面積は、
となります。
Parkerの資料でも、rod end areaはピストン面積からロッド面積を引いて求める形で示されています。
たとえば、
とします。
ロッド面積は、
です。
戻り側有効面積は、
です。
つまり、
となります。
同じ流量なら戻り側の方が速い
速度は、
なので、面積が小さいほど速度は大きくなります。
片ロッドシリンダでは、
なので、同じ流量なら通常、
です。
ここは油圧回路設計で非常に重要です。
「ポンプ流量が30 L/minだから、往復とも同じ速度」と考えることはできません。
L/minをm³/sへ変換する
流量をL/minで扱う場合、そのままSI式へ入れることはできません。
なので、
です。
たとえば、
なら、
です。
伸び側速度の計算例
先ほどの条件、
を使います。
ピストン面積は、
です。
したがって伸び速度は、
です。
mm/sへ変換すると、
です。
戻り側速度の計算例
戻り側有効面積は、
なので、
です。
したがって、
つまり、
です。
同じ30 L/minでも、
- 伸び:約99.5 mm/s
- 戻り:約145.5 mm/s
となります。
この差はロッド径によって変化します。
速度比は面積比から求められる
供給流量が同じなら、
です。
したがって速度比は、
となります。
これは非常に便利な関係です。
前の例では、
なので、戻り速度は伸び速度の約1.46倍になります。
必要流量を逆算する
実設計では、
シリンダを100 mm/sで動かしたい。必要流量はいくらか。
という逆算もよく使います。
基本式、
を変形すると、
です。
たとえば、
なら、
です。
L/minへ変換すると、
となります。
つまり80 mm内径のシリンダを約100 mm/sで伸ばすには、理想条件で約30 L/min必要です。
ストローク時間も求められる
ストローク長を とすると、移動時間は、
です。
また、
なので、
とも表せます。
Parkerのシリンダ資料でも、シリンダ容積を面積×ストロークで求め、流量から移動時間を計算する関係が示されています。
たとえば、
なら、
です。
速度計算とストローク時間計算は同じ体積収支の別表現です。
実際の速度は理論値と一致しないことがある
ここまでの式は、
と仮定した理論計算です。
実際には、
- ポンプ内部漏れ
- シリンダ内部漏れ
- バルブの流量特性
- 配管圧力損失
- 油の圧縮性
- ホース膨張
- 負荷変動
- 温度・粘度
- メータイン・メータアウト制御
などによって実速度が変化します。
したがって、
は基礎となる理論速度として扱うのが適切です。
特に流量調整弁を使用する場合、ポンプ吐出流量ではなく、実際にシリンダへ流入する流量を使う必要があります。
伸び側と戻り側では排出流量も違う
シリンダ速度が決まれば、反対室から排出される流量も計算できます。
たとえば伸び動作では、ロッド側から排出される流量は、
です。
一方、戻り動作では、ボトム側から、
が排出されます。
戻り動作ではロッド側へ流入する流量よりも、ボトム側から排出される流量の方が大きくなる場合があります。
これは、
- 戻り配管
- バルブ
- タンク戻りライン
- フィルタ
の流量選定に関係します。
シリンダ速度だけでなく、各ポートの流量まで計算できるようにすると実務で使いやすくなります。
Pythonでシリンダ速度を計算する
まず円面積を関数化します。
import math
def circle_area_m2(diameter_mm: float) -> float:
if diameter_mm <= 0:
raise ValueError("直径は0より大きい必要があります")
diameter_m = diameter_mm / 1000.0
return math.pi * diameter_m**2 / 4.0
次に流量を変換します。
def flow_m3_s(flow_l_min: float) -> float:
if flow_l_min < 0:
raise ValueError("流量は0以上である必要があります")
return flow_l_min / 1000.0 / 60.0
シリンダ速度は、
def cylinder_speed_m_s(
flow_l_min: float,
area_m2: float,
) -> float:
if area_m2 <= 0:
raise ValueError("有効面積は0より大きい必要があります")
return flow_m3_s(flow_l_min) / area_m2
とできます。
伸び側・戻り側をまとめて計算する
def cylinder_speeds(
bore_mm: float,
rod_mm: float,
flow_l_min: float,
) -> dict[str, float]:
piston_area = circle_area_m2(bore_mm)
rod_area = circle_area_m2(rod_mm)
annulus_area = piston_area - rod_area
if annulus_area <= 0:
raise ValueError(
"ロッド径はシリンダ内径より小さくしてください"
)
extend_speed = cylinder_speed_m_s(
flow_l_min,
piston_area,
)
retract_speed = cylinder_speed_m_s(
flow_l_min,
annulus_area,
)
return {
"extend_m_s": extend_speed,
"retract_m_s": retract_speed,
}
この構造なら、
入力
↓
面積計算
↓
流量単位変換
↓
速度計算
を分離してテストできます。
計算データとして保存する
再利用可能な設計データにするなら、結果だけでなく途中値も保持すると便利です。
{
"cylinder": {
"bore_mm": 80.0,
"rod_mm": 45.0,
"stroke_mm": 500.0
},
"flow": {
"value": 30.0,
"unit": "L/min"
},
"areas": {
"piston_mm2": 5026.5,
"annulus_mm2": 3436.1
},
"speed": {
"extend_mm_s": 99.5,
"retract_mm_s": 145.5
}
}
この形式なら後から、
- 推力
- ストローク時間
- 排出流量
- 配管流速
- 圧力損失
- ポンプ必要流量
へ同じデータを接続できます。
ポンプ流量計算とつなげる
前段でポンプ吐出流量を、
として求められるなら、そのままシリンダ速度へ接続できます。
押しのけ容積
↓
ポンプ回転数
↓
容積効率
↓
ポンプ吐出流量
↓
シリンダ有効面積
↓
伸び・戻り速度
という計算チェーンになります。
ここまでつながると、「ポンプを選ぶ」と「シリンダ速度を確認する」を別々の作業として扱う必要がなくなります。
推力計算とも共通の面積を使える
シリンダ推力は、
です。
速度は、
です。
同じ有効面積 を使って、
圧力 × 面積 → 推力
流量 ÷ 面積 → 速度
という対称的な関係があります。
つまりシリンダ内径とロッド径を一度構造化しておけば、推力と速度の両方へ再利用できます。
これはシリンダ設計計算をコード化するときの重要な設計ポイントです。
よくある計算ミス
代表的なのは、伸び側と戻り側で同じ面積を使うことです。
片ロッドシリンダでは、戻り側は必ずロッド面積を差し引きます。
また、
- L/minをm³/sへ変換し忘れる
- mm²をm²へ変換し忘れる
- ポンプ吐出流量をそのままシリンダ実流量とみなす
- 戻り側の排出流量を供給流量と同じと思う
- ロッド径を直径ではなく半径として扱う
といった単位・幾何のミスも起こりやすい部分です。
計算式そのものより、単位と有効面積の定義を固定することが重要です。
まとめ
油圧シリンダ速度の基本式は、
です。
片ロッド複動シリンダでは、伸び側面積は、
戻り側面積は、
となります。
したがって同じ供給流量なら、
となるのが基本です。
さらに、
を使えば必要流量を逆算でき、
からストローク時間も求められます。
油圧シリンダ速度計算は単独の式ではなく、
ポンプ流量 → シリンダ速度 → ストローク時間 → 排出流量 → 配管選定
へつながる設計計算の中心部分です。
内径、ロッド径、ストローク、流量を構造化データとして持っておけば、推力計算や圧力損失計算とも共通化でき、油圧設計の自動計算へ発展させやすくなります。
参考情報
Parker公式の油圧計算資料では、シリンダ面積、シリンダ速度、必要流量、ポンプ流量などの基本式がまとめられています。
ParkerのMobile Cylinder Products and Application Guideでは、ピストン面積、ロッド側面積、シリンダ速度、必要流量、シリンダ容積の関係が整理されています。
ParkerのBasic Hydraulic Formulasでも、シリンダ速度、ロッド側環状面積、ストローク時間の関係が確認できます。

