Skip to the content.

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:

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:

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:

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:

Minimum: 3.0 mm wall thickness

5. Actuator Sizing

The required actuator thrust is calculated from:

  1. Fluid Force: Force to overcome pressure across the seat
    F_fluid = P_design × A_seat
    
  2. Packing Friction: Typically 15% of fluid force
    F_packing = 0.15 × F_fluid
    
  3. Seat Load: For tight shutoff (Class IV/V)
    F_seat = π × d_seat × 7 N/mm
    
  4. 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:

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\)