Valve Mechanical Design
This document describes the mechanical design calculations for control valves in NeqSim, implemented in the ValveMechanicalDesign class.
Overview
The valve mechanical design module provides sizing and design calculations for control valves based on IEC 60534, ANSI/ISA-75, and ASME B16.34 standards. The calculations enable:
- Valve body sizing and pressure rating selection
- Body wall thickness estimation
- Weight estimation for procurement and installation planning
- Actuator sizing for control applications
- Module dimension calculation for layout planning
Design Standards Reference
| Standard | Description |
|---|---|
| IEC 60534 | Industrial-process control valves |
| ANSI/ISA-75.01 | Flow Equations for Sizing Control Valves |
| ANSI/ISA-75.08 | Face-to-Face Dimensions for Flanged Globe-Style Control Valve Bodies |
| ASME B16.34 | Valves - Flanged, Threaded, and Welding End |
| API 6D | Pipeline and Piping Valves |
Design Calculations
1. ANSI Pressure Class Selection
The pressure class is automatically selected based on the design pressure:
| Design Pressure | ANSI Class |
|---|---|
| ≤ 19.6 bara | Class 150 |
| ≤ 51.1 bara | Class 300 |
| ≤ 102.1 bara | Class 600 |
| ≤ 153.2 bara | Class 900 |
| ≤ 255.3 bara | Class 1500 |
| ≤ 425.5 bara | Class 2500 |
// Design pressure with 10% margin
designPressure = operatingPressure × 1.10
2. Nominal Valve Size
The nominal valve size is calculated from the Cv coefficient using the ISA correlation for globe valves:
Cv ≈ 10 × d²
Where d is the nominal pipe size in inches. Rearranging:
d = sqrt(Cv / 10)
The calculated size is then rounded to the nearest standard pipe size:
- 0.5”, 0.75”, 1”, 1.5”, 2”, 3”, 4”, 6”, 8”, 10”, 12”, 14”, 16”, 18”, 20”, 24”
3. Face-to-Face Dimensions
Face-to-face dimensions are per ANSI/ISA-75.08 for globe-style control valves:
| Nominal Size (in) | Face-to-Face (mm) |
|---|---|
| ≤ 1.0 | 108 |
| 1.5 | 117 |
| 2.0 | 152 |
| 3.0 | 203 |
| 4.0 | 241 |
| 6.0 | 292 |
| 8.0 | 356 |
| 10.0 | 432 |
| 12.0 | 495 |
| > 12.0 | 508 + (size - 12) × 30 |
Adjustment for Pressure Class:
- Class 600+: multiply by 1.05
- Class 900+: multiply by 1.15
4. Body Wall Thickness
Wall thickness is calculated using the ASME B16.34 pressure vessel formula:
t = (P × R) / (S × E - 0.6 × P) + CA
Where:
P= design pressure (MPa)R= inner radius (mm)S= allowable stress = 138 MPa (carbon steel at ambient)E= joint efficiency = 1.0 (forged body)CA= corrosion allowance
Minimum: 3.0 mm wall thickness
5. Actuator Sizing
The required actuator thrust is calculated from:
- Fluid Force: Force to overcome pressure across the seat
F_fluid = P_design × A_seat - Packing Friction: Typically 15% of fluid force
F_packing = 0.15 × F_fluid - Seat Load: For tight shutoff (Class IV/V)
F_seat = π × d_seat × 7 N/mm - Total Thrust:
F_total = (F_fluid + F_packing + F_seat) × 1.25
6. Weight Estimation
Valve weight is estimated using empirical correlations:
Body Weight
W_body = 2.5 × (size_inches)^2.5 × (class / 150)^0.5
Trim and Bonnet
W_trim = 0.3 × W_body
Actuator Weight
W_actuator = 0.015 × F_thrust + 5.0 kg (minimum 10 kg)
Total Weight
W_total = W_body + W_trim + W_actuator
Usage Example
import neqsim.process.equipment.valve.ThrottlingValve;
import neqsim.process.mechanicaldesign.valve.ValveMechanicalDesign;
// Create and run valve
ThrottlingValve valve = new ThrottlingValve("PCV-101", inletStream);
valve.setOutletPressure(60.0, "bara");
valve.run();
// Get mechanical design
ValveMechanicalDesign mechDesign = (ValveMechanicalDesign) valve.getMechanicalDesign();
mechDesign.calcDesign();
// Access results
System.out.println("ANSI Class: " + mechDesign.getAnsiPressureClass());
System.out.println("Nominal Size: " + mechDesign.getNominalSizeInches() + " inches");
System.out.println("Face-to-Face: " + mechDesign.getFaceToFace() + " mm");
System.out.println("Body Wall: " + mechDesign.getBodyWallThickness() + " mm");
System.out.println("Actuator Thrust: " + mechDesign.getRequiredActuatorThrust() + " N");
System.out.println("Total Weight: " + mechDesign.getWeightTotal() + " kg");
API Reference
ValveMechanicalDesign Class
| Method | Return | Description |
|---|---|---|
calcDesign() |
void | Performs all mechanical design calculations |
getAnsiPressureClass() |
int | Returns ANSI class (150, 300, 600, 900, 1500, 2500) |
getNominalSizeInches() |
double | Returns nominal valve size in inches |
getFaceToFace() |
double | Returns face-to-face dimension in mm |
getBodyWallThickness() |
double | Returns body wall thickness in mm |
getRequiredActuatorThrust() |
double | Returns required actuator thrust in N |
getActuatorWeight() |
double | Returns estimated actuator weight in kg |
getDesignPressure() |
double | Returns design pressure in bara |
getDesignTemperature() |
double | Returns design temperature in °C |
getWeightTotal() |
double | Returns total valve weight in kg |
Valve Sizing Standards
NeqSim supports multiple valve sizing standards that can be selected via setValveSizingStandard():
| Standard | Description | Best For |
|---|---|---|
default |
IEC 60534-based calculation | General control valves |
IEC 60534 |
Full IEC 60534-2-1 implementation | Engineering calculations |
IEC 60534 full |
Extended IEC 60534 with all factors | Detailed sizing studies |
prod choke |
Production choke sizing with Cd | Wellhead chokes |
Example: Setting Sizing Standard
ValveMechanicalDesign mechDesign = (ValveMechanicalDesign) valve.getMechanicalDesign();
mechDesign.setValveSizingStandard("IEC 60534");
Valve Characteristics
Available valve characteristics for flow control:
| Characteristic | Formula | Application |
|---|---|---|
| Linear | Cv/Cv₁₀₀ = opening/100 |
Constant ΔP systems |
| Equal Percentage | Cv/Cv₁₀₀ = R^((opening/100)-1) |
Variable ΔP, process control |
| Quick Opening | Cv/Cv₁₀₀ = sqrt(opening/100) |
On/off, safety applications |
| Modified Parabolic | Cv/Cv₁₀₀ = opening²/10000 |
Compromise between linear/EQ% |
Example: Setting Valve Characteristic
ValveMechanicalDesign mechDesign = (ValveMechanicalDesign) valve.getMechanicalDesign();
mechDesign.setValveCharacterization("equal percentage");
IEC 60534 Gas Sizing Formula
For compressible fluids, the Kv (or Cv) is calculated using:
\[K_v = \frac{Q}{N_9 \cdot P_1 \cdot Y} \sqrt{\frac{M \cdot T \cdot Z}{x}}\]Where:
- $Q$ = volumetric flow rate at inlet conditions (m³/h)
- $N_9$ = 24.6 (numerical constant for SI units)
- $P_1$ = inlet pressure (kPa abs)
- $Y$ = expansion factor = $1 - \frac{x}{3 \cdot F_\gamma \cdot x_T}$
- $M$ = molecular weight (g/mol)
- $T$ = temperature (K)
- $Z$ = compressibility factor
- $x$ = pressure drop ratio = $\Delta P / P_1$
- $F_\gamma$ = specific heat ratio factor = $\gamma / 1.40$
- $x_T$ = pressure drop ratio factor at choked flow
Choked Flow
When $x \geq F_\gamma \cdot x_T$, flow becomes choked and:
\(Y = \frac{2}{3}\) \(x_{effective} = F_\gamma \cdot x_T\)
Related Documentation
- Valve Equipment - Valve simulation overview
- Compressor Mechanical Design - Compressor mechanical design
- Process Package - Package overview
- Safety Systems - Safety valve sizing