Class PressureControlValve

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, ValveInterface, SimulationInterface, NamedInterface

public class PressureControlValve extends ControlValve
Pressure control valve (PCV) for automatic pressure regulation.

PressureControlValve automatically modulates its opening to maintain a downstream pressure setpoint. It extends ControlValve and adds pressure control logic with proportional control action.

Key features:

  • Automatic pressure control
  • Configurable pressure setpoint
  • Proportional control action
  • Configurable control gain
  • Min/max opening limits

Control modes:

  • DOWNSTREAM: Maintains downstream (outlet) pressure at setpoint (most common)
  • UPSTREAM: Maintains upstream (inlet) pressure at setpoint (back-pressure control)
  • DIFFERENTIAL: Maintains pressure difference across valve

Common applications:

  • Gas pressure reduction stations
  • Compressor anti-surge recycle control
  • Separator pressure control
  • Back-pressure control on vessels
  • Steam pressure regulation

Example usage:

PressureControlValve pcv = new PressureControlValve("PCV-101", inletStream);
pcv.setPressureSetpoint(25.0); // Control to 25 bara downstream
pcv.setControlMode(PressureControlValve.ControlMode.DOWNSTREAM);
pcv.setControllerGain(5.0); // Proportional gain
pcv.setCv(300.0);
pcv.run();

System.out.println("Valve opening: " + pcv.getPercentValveOpening() + "%");
System.out.println("Process variable: " + pcv.getProcessVariable() + " bara");
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • pressureSetpoint

      private double pressureSetpoint
      Pressure setpoint in bara.
    • controlMode

      private PressureControlValve.ControlMode controlMode
      Control mode.
    • controllerGain

      private double controllerGain
      Proportional controller gain.
    • processVariable

      private double processVariable
      Current process variable (measured pressure) in bara.
    • controlError

      private double controlError
      Control error (setpoint - PV).
    • autoMode

      private boolean autoMode
      Enable/disable automatic control.
  • Constructor Details

    • PressureControlValve

      public PressureControlValve(String name)
      Constructor for PressureControlValve.
      Parameters:
      name - name of the pressure control valve
    • PressureControlValve

      public PressureControlValve(String name, StreamInterface inStream)
      Constructor for PressureControlValve.
      Parameters:
      name - name of the pressure control valve
      inStream - inlet stream
  • Method Details

    • setPressureSetpoint

      public void setPressureSetpoint(double setpoint)
      Set the pressure setpoint.
      Parameters:
      setpoint - pressure setpoint in bara
    • getPressureSetpoint

      public double getPressureSetpoint()
      Get the pressure setpoint.
      Returns:
      pressure setpoint in bara
    • setControlMode

      public void setControlMode(PressureControlValve.ControlMode mode)
      Set the control mode.
      Parameters:
      mode - control mode (DOWNSTREAM, UPSTREAM, or DIFFERENTIAL)
    • getControlMode

      public PressureControlValve.ControlMode getControlMode()
      Get the control mode.
      Returns:
      current control mode
    • setControllerGain

      public void setControllerGain(double gain)
      Set the controller gain.
      Parameters:
      gain - proportional gain (typical range: 1.0 to 10.0)
    • getControllerGain

      public double getControllerGain()
      Get the controller gain.
      Returns:
      controller gain
    • getProcessVariable

      public double getProcessVariable()
      Get the current process variable (measured pressure).
      Returns:
      process variable in bara
    • getControlError

      public double getControlError()
      Get the control error.
      Returns:
      control error (setpoint - PV) in bara
    • setAutoMode

      public void setAutoMode(boolean auto)
      Enable or disable automatic control mode.
      Parameters:
      auto - true for automatic, false for manual
    • isAutoMode

      public boolean isAutoMode()
      Check if valve is in automatic control mode.
      Returns:
      true if automatic, false if manual
    • run

      public void run()

      Override run method to implement pressure control logic.

    • toString

      public String toString()

      Returns a string representation specific to control valves.

      Returns a string representation specific to pressure control valves.

      Overrides:
      toString in class ControlValve