TL;DR — Relief Valve / PSV ไม่ได้ "พยายามหลีกเลี่ยง" Choked Flow แต่กลับ ยอมให้เกิด เพราะมันคือสภาวะที่ระบายของไหลได้เร็วที่สุดที่แรงดันต้นทางจะสามารถผลักออกไปได้ ภายใต้สภาวะ choked: Pback/Pset≤r∗P_{back}/P_{set} \le r^* โดย r∗=(2k+1)k/(k−1)r^* = \left(\frac{2}{k+1}\right)^{k/(k-1)} (≈ 0.528 สำหรับอากาศ) — Mach number ที่ throat = 1 และอัตราการไหลไม่ขึ้นกับ backpressure อีกต่อไป ทำให้ขนาดวาล์ว "predictable" สำหรับสภาวะฉุกเฉินที่ออกแบบเอาไว้


ทำไมถึงสำคัญ

เคยมีกรณีในโรงกลั่นแห่งหนึ่ง — วิศวกรหน้าใหม่ size PSV สำหรับ vapor relief แล้วใส่ correction factor KbK_b (backpressure) ไม่ถูกต้อง เพราะคิดว่า "ของไหลจะ stick at the throat แล้ว flow จะลดลง" จึงเพิ่ม factor เผื่อไว้

ผลคือเลือก orifice ใหญ่เกินจริง 2 ขนาด (จาก K → P) ค่าวาล์วเพิ่มขึ้น 40% และเมื่อ trip จริง downstream piping ออกแบบไม่พอกับ flow rate ที่สูงเกิน — เกิด overpressure ที่ flare header แทน

ปัญหาคือเข้าใจผิดในธรรมชาติของ choked flow: มันไม่ใช่อุปสรรค มันคือ feature


1. Choked Flow คืออะไร?

เมื่อก๊าซไหลผ่าน restriction (เช่น orifice, throat, หรือ nozzle ของ PSV) และความเร็วของก๊าซที่จุดแคบที่สุดถึง ความเร็วเสียง (Mach 1) — สภาวะนี้เรียกว่า choked หรือ critical flow

หลังจาก choked แล้ว:

  • ความเร็วที่ throat ไม่เพิ่มขึ้นอีก ไม่ว่าจะลด downstream pressure ลงเท่าไหร่
  • Mass flow rate คงที่ ตามสมการ critical flow
  • คลื่น pressure information จาก downstream ไม่สามารถวิ่งย้อนกลับขึ้นมาที่ throat ได้ (เพราะ Mach ที่ throat = 1 ทำให้คลื่นเสียงกลับสวนทางไม่ทัน)

เงื่อนไขทางคณิตศาสตร์

ก๊าซจะ choke เมื่อ pressure ratio ระหว่าง downstream/upstream ต่ำกว่า critical pressure ratio:

PbackPo≤r∗=(2k+1)k/(k−1)\frac{P_{back}}{P_o} \le r^* = \left(\frac{2}{k+1}\right)^{k/(k-1)}

โดย:

  • PoP_o = stagnation pressure ที่ต้นทาง (= set pressure + overpressure allowance ใน PSV)
  • PbackP_{back} = pressure ที่ downstream ของ throat
  • k=Cp/Cvk = C_p/C_v = ratio of specific heats

ค่า r∗r^* สำหรับก๊าซทั่วไป

ก๊าซkkr∗r^*choke เมื่อ Pback/Po≤P_{back}/P_o \le
Air1.400.52852.8%
Steam (superheated)1.330.54654.6%
Steam (saturated, dry)1.1350.57757.7%
Methane1.310.54654.6%
Hydrogen1.410.52752.7%
CO₂1.300.54654.6%
Argon1.670.48748.7%

ตีความ: สำหรับอากาศ — ถ้า upstream อยู่ที่ 10 bar(a) และ downstream ต่ำกว่า 5.28 bar(a) → choked อัตโนมัติ


2. ทำไม PSV ถึง "ยอม" ให้เกิด Choked Flow?

มี 3 เหตุผลที่ทำให้ choked flow ไม่ใช่ปัญหาแต่เป็น คุณสมบัติที่ออกแบบไว้ตั้งใจ

เหตุผลที่ 1 — Mass flow ต่อพื้นที่หน้าตัดสูงสุด

ที่ choked condition อัตราการไหลเชิงมวลต่อพื้นที่ (mass flux, G=m˙/AG = \dot{m}/A) มีค่ามากที่สุด สำหรับ stagnation condition ที่กำหนด

Gmax=PokRTo(2k+1)(k+1)/(k−1)G_{max} = P_o \sqrt{\frac{k}{R T_o} \left(\frac{2}{k+1}\right)^{(k+1)/(k-1)}}

PSV หน้าที่หลักคือ ระบายของไหลออกให้ทันก่อนที่ระบบจะรับแรงดันเกินกว่าจะรับได้ — ยิ่ง mass flux สูง ขนาด orifice ที่ต้องการก็ยิ่งเล็ก ราคาวาล์วถูก ตอบสนองเร็ว

เหตุผลที่ 2 — Decoupling จาก downstream

สภาวะ non-choked: flow rate ขึ้นกับทั้ง PoP_o และ PbackP_{back} — ถ้า downstream piping มี pressure drop ที่ไม่คาดคิด หรือมี backpressure จาก flare header ระดับ flow rate จะเปลี่ยน → ทำนายไม่ได้

สภาวะ choked: flow rate ขึ้นกับ PoP_o เพียงอย่างเดียว — downstream เปลี่ยนยังไงก็ไม่กระทบ (ตราบใดที่ยังคง choked) → predictable

สำหรับ safety device ที่ต้อง รับรองว่าจะระบายได้ตามที่คำนวณ ไม่ว่าระบบดาวน์สตรีมจะเป็นอย่างไร — Predictable คือคุณค่าสูงสุด

เหตุผลที่ 3 — Self-limiting in upset scenarios

ใน worst-case (fire case, blocked outlet) แรงดันต้นทางสูงขึ้นเรื่อยๆ จนชน set pressure → PSV เปิด → flow choked ทันที (เพราะ atmospheric หรือ flare header pressure ต่ำกว่า 50% ของ set อยู่แล้วในกรณีส่วนใหญ่)

ผลคือ ระบบไม่สามารถ "overflow" ระบาย PSV ได้ — แม้ภายในจะมีพลังงานสะสมมาก flow rate ที่ออกไปจำกัดด้วย choked condition และคำนวณได้ล่วงหน้า


3. สมการ Sizing ตาม API 520 Part I

API 520 Part I §5.6 แบ่งการ size PSV สำหรับก๊าซเป็น 2 กรณี — โดยพิจารณา pressure ratio:

กรณีที่ 1 — Critical Flow (Choked)

เมื่อ Pb/P1≤r∗P_b/P_1 \le r^* :

A=WCKdKbKcP1TZMA = \frac{W}{C K_d K_b K_c P_1} \sqrt{\frac{T Z}{M}}

(US units; SI version มีค่าคงที่ต่างกัน — ดู API 520 ตาราง 9)

โดย:

  • WW = required mass flow (lbm/hr หรือ kg/hr)
  • CC = coefficient ขึ้นกับ kk (เช่น C=356C = 356 สำหรับ k=1.4k=1.4 ใน US units)
  • KdK_d = discharge coefficient (≈ 0.975 conventional, 0.65 pilot)
  • KbK_b = backpressure correction (= 1.0 ในสภาวะ choked เพราะ backpressure ไม่กระทบ)
  • KcK_c = combination correction (= 1.0 ปกติ, 0.9 ถ้ามี rupture disk upstream)
  • P1P_1 = relieving pressure (= set + accumulation, abs)
  • TT = relieving temperature (R หรือ K)
  • ZZ = compressibility factor
  • MM = molecular weight

สังเกตว่า Kb=1.0K_b = 1.0 — เป็น proof ทางคณิตศาสตร์ว่า backpressure ไม่กระทบเมื่อ choked

กรณีที่ 2 — Subsonic Flow (Non-choked)

เมื่อ Pb/P1>r∗P_b/P_1 > r^* :

A=W735F2KdKcTZMP1(P1−P2)A = \frac{W}{735 F_2 K_d K_c}\sqrt{\frac{T Z}{M P_1 (P_1 - P_2)}}

โดย:

  • F2F_2 = subsonic flow factor (function ของ kk และ pressure ratio)
  • P2=PbP_2 = P_b = backpressure (abs)

ในกรณีนี้ backpressure เข้ามาในสูตรโดยตรง — และ flow rate ขึ้นกับทั้ง upstream และ downstream

ทำไมมี 2 สมการ?

เพราะ physics ต่างกันที่ choking threshold:

  • ก่อน choke: ก๊าซขยายตัวต่อเนื่อง pressure ratio drives flow
  • หลัง choke: ก๊าซขยายตัวด้วยความเร็วสูงสุดแล้ว → flow ขึ้นกับแค่ upstream stagnation

สมการที่ 1 simpler และ predictable — เป็นเหตุผลที่วิศวกร PSV ชอบ ให้ระบบทำงานในโซน choked


4. ผลในทางปฏิบัติ — ออกแบบยังไง?

✅ ดี — โซน choked

ส่วนใหญ่ของ PSV ใน gas service อยู่ในโซน choked โดยธรรมชาติ เพราะ:

  • Discharge ไป atmosphere → Pb≈1P_b ≈ 1 bar(a) ≪ 50% ของ set pressure
  • Discharge ไป flare header → backpressure 0.3-1.5 bar(g) ยังต่ำกว่า threshold

Design implication: ใช้ conventional PSV ได้ ราคาถูก (Kd≈0.975K_d ≈ 0.975)

⚠️ ระวัง — Backpressure สูง

ถ้า downstream piping/flare header มี backpressure สูงพอที่จะหลุดออกจาก choked zone:

สำหรับ conventional PSV:

  • Built-up backpressure ≤ 10% ของ set pressure → safe
  • เกิน 10% → spring force ไม่พอ ทำให้วาล์วปิดไม่สนิท chattering

ทางออกเมื่อ backpressure > 10%:

  • ใช้ Balanced bellows PSV — bellows ปกป้อง disc area จาก backpressure → ทนได้ถึง 50%
  • ใช้ Pilot-operated PSV — sensing line จับ upstream pressure โดยตรง → ทนได้ถึง 70-90%

📊 Decision matrix

backpressure / set pressure | recommended PSV type
─────────────────────────────────────────────────
< 10%                       | Conventional (cheapest)
10% – 50%                   | Balanced bellows
> 50%                       | Pilot-operated

5. Worked Example

โจทย์: PSV ระบาย air จากถัง upstream

  • Set pressure PsetP_{set} = 10 bar(g) → P1P_1 = 11 + 10% accumulation ≈ 12.0 bar(a)
  • Backpressure = atmosphere → PbP_b = 1.013 bar(a)
  • Required flow WW = 5,000 kg/hr
  • T1T_1 = 60°C = 333 K, MM = 29, ZZ ≈ 1.0, kk = 1.4

Step 1 — Check choked condition:

r∗=(21.4+1)1.4/0.4=0.528r^* = \left(\frac{2}{1.4+1}\right)^{1.4/0.4} = 0.528 Pb/P1=1.013/12.0=0.084P_b/P_1 = 1.013 / 12.0 = 0.084

0.084<0.5280.084 < 0.528 → Choked ✓ ใช้สมการ critical flow

Step 2 — คำนวณ orifice area (SI units, API 520 ตาราง 9):

A=W13160⋅Kd⋅Kb⋅Kc⋅P1⋅CT⋅ZMA = \frac{W}{13160 \cdot K_d \cdot K_b \cdot K_c \cdot P_1 \cdot C}\sqrt{\frac{T \cdot Z}{M}}

กับค่า C=0.0395C = 0.0395 (สำหรับ k=1.4k=1.4 ใน SI units), Kd=0.975K_d = 0.975, Kb=Kc=1.0K_b = K_c = 1.0:

A=500013160×0.975×1×1×12.0×0.0395333×1.029A = \frac{5000}{13160 \times 0.975 \times 1 \times 1 \times 12.0 \times 0.0395}\sqrt{\frac{333 \times 1.0}{29}} A=50006088×11.48=0.821×3.388≈2.78 in2A = \frac{5000}{6088} \times \sqrt{11.48} = 0.821 \times 3.388 ≈ 2.78 \text{ in}^2

Step 3 — เลือก API 526 orifice letter:

  • L = 2.853 in² → เลือก L (ใหญ่ที่สุดที่ใกล้และไม่ต่ำกว่า)

Step 4 — ตรวจสอบ:

Wactual=13160⋅0.975⋅1⋅1⋅12.0⋅0.0395⋅2.853/11.48W_{actual} = 13160 \cdot 0.975 \cdot 1 \cdot 1 \cdot 12.0 \cdot 0.0395 \cdot 2.853 / \sqrt{11.48} Wactual=17370/3.388≈5,127 kg/hr>5,000 kg/hr✓W_{actual} = 17370 / 3.388 ≈ 5,127 \text{ kg/hr} > 5,000 \text{ kg/hr} ✓

ข้อสังเกต: ตอนที่ valve เปิด air จะ choke ทันทีเพราะ atmospheric pressure ≪ 50% × 12 bar(a) — เราไม่ต้องคิด correction สำหรับ backpressure เลย (Kb=1.0K_b = 1.0)


6. ความเข้าใจผิดที่พบบ่อย

❌ "Choked flow คือ flow ที่ติดขัด"

ถูกต้อง: Choked flow คือ flow ที่ เร็วที่สุดที่ก๊าซจะวิ่งผ่าน restriction ได้ ที่ Mach 1 ที่ throat — มันไม่ใช่การ "ติด" แต่เป็น "limit ของ compressible flow physics"

❌ "ลด backpressure ลงอีก จะเพิ่ม flow rate"

ถูกต้อง: เมื่อ choked แล้ว — flow rate ไม่เพิ่ม ไม่ว่า backpressure จะลดลงเท่าไหร่ ของไหลที่ throat วิ่งเสียงแล้ว เร็วกว่านี้ไม่ได้ (อย่างน้อยที่ throat ตัวเดียวกัน)

❌ "ออกแบบให้หลีกเลี่ยง choked เลย"

ถูกต้อง: ตรงข้าม — วิศวกรอยาก อยู่ในโซน choked เพราะ predictable และ K_b = 1.0 (ไม่ต้องแก้ correction factor)

❌ "ใส่ K_b > 1.0 เผื่อ choked"

ถูกต้อง: KbK_b คือ correction ต่ำลง จาก 1.0 เมื่อ subsonic — เมื่อ choked Kb=1.0K_b = 1.0 พอดี ใส่ค่าเกินทำให้ undersize valve (ผิดทางตรงข้าม)


7. สรุป — Decision Tree

flowchart TD
    Start["PSV sizing<br/><span style='font-size:12px;opacity:0.7'>gas / vapor service</span>"]
    Check{"P<sub>b</sub> / P<sub>1</sub>  vs  r*"}
    Choked["<b>CHOKED</b><br/><span style='font-size:12px;opacity:0.75'>Critical flow</span><br/>Eq. 5.7  ·  K<sub>b</sub> = 1.0"]
    Subsonic["<b>SUBSONIC</b><br/><span style='font-size:12px;opacity:0.75'>Non-critical flow</span><br/>Eq. 5.8  ·  K<sub>b</sub> &lt; 1.0"]
    Select["<b>เลือก API 526 orifice letter</b><br/><span style='font-size:12px;opacity:0.85;letter-spacing:0.04em'>D · E · F · G · H · J · K · L · M · N · P · Q · R · T · T2</span>"]

    Start --> Check
    Check -->|"≤ r*"| Choked
    Check -->|"&gt; r*"| Subsonic
    Choked --> Select
    Subsonic --> Select

    %% Brand-aligned palette: cream/ink base + a desaturated sage for the
    %% preferred path (choked) and warm-tan for the cautious path (subsonic).
    %% The terminal box uses brand orange to anchor the conclusion.
    classDef chokedStyle  fill:#eef3e6,stroke:#5a7d4a,stroke-width:1.75px,color:#2d4a2b
    classDef subsonicStyle fill:#f7ecdd,stroke:#a87a47,stroke-width:1.75px,color:#5b4023
    classDef defaultBox   fill:#ffffff,stroke:#141413,stroke-width:1.5px,color:#141413
    classDef terminal     fill:#141413,stroke:#141413,stroke-width:1.5px,color:#fbf7f4

    class Choked chokedStyle
    class Subsonic subsonicStyle
    class Start,Check defaultBox
    class Select terminal

8. Take-away

  1. Choked flow เป็น default state ของ PSV ใน gas service — เพราะ atmospheric/flare backpressure มักต่ำกว่า critical ratio
  2. ในโซน choked ของไหลที่ออกขึ้นกับแรงดันต้นทางเท่านั้น — backpressure ไม่กระทบ → predictable
  3. API 520 มี 2 สมการ — Eq. 5.7 (choked) และ Eq. 5.8 (subsonic) เลือกตาม Pb/P1P_b/P_1 vs r∗r^*
  4. ออกแบบให้อยู่ในโซน choked — ใช้ conventional valve (Kb=1.0K_b = 1.0) ราคาถูก
  5. เมื่อ backpressure สูง ใช้ balanced bellows (≤ 50%) หรือ pilot-operated (≤ 70-90%)

ลองใช้เครื่องคำนวณ PSV ของเรา

เครื่องคำนวณ Relief Valve ของ DekEn ทำตาม API 520 Part I เต็มรูปแบบ — รวมการตรวจสอบ choked/subsonic อัตโนมัติ + เลือก API 526 orifice letter ให้

→ Relief Valve Calculator


เอกสารอ้างอิง

  1. API Standard 520 Part I — "Sizing, Selection, and Installation of Pressure-relieving Devices: Part I — Sizing and Selection" (2020, 10th ed.) §5.6, §5.7
  2. API Standard 526 — "Flanged Steel Pressure-relief Valves" (2017, 7th ed.) — Orifice letter dimensions
  3. API Standard 521 — "Pressure-relieving and Depressuring Systems" (2020, 7th ed.) §4.4 — Fire case sizing
  4. John, J.E.A., Keith, T.G. — "Gas Dynamics" (2006) Ch. 5 — Choked flow theory
  5. Crane Technical Paper No. 410 — "Flow of Fluids Through Valves, Fittings, and Pipe" (2018) §3-4