Class CompressorConstraintConfig

java.lang.Object
neqsim.process.equipment.compressor.CompressorConstraintConfig
All Implemented Interfaces:
Serializable

public class CompressorConstraintConfig extends Object implements Serializable
Configuration class for compressor operational constraints.

This class consolidates all configurable constraint parameters for compressor operation including:

  • Surge and stonewall margins
  • Speed limits (minimum and maximum)
  • Power limits
  • Temperature limits
  • Anti-surge control settings
  • Driver constraints

Example Usage

CompressorConstraintConfig config = new CompressorConstraintConfig();
config.setMinSurgeMargin(0.10); // 10% minimum surge margin
config.setMinStonewallMargin(0.05); // 5% minimum stonewall margin
config.setMaxPowerUtilization(0.95); // 95% max power
config.setMaxDischargeTemperature(473.15); // 200°C max

compressor.setConstraintConfig(config);
Version:
1.0
Author:
NeqSim Development Team
See Also:
  • Field Details

    • serialVersionUID

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

      private double minSurgeMargin
      Minimum surge margin as fraction of surge flow (0-1).
    • minStonewallMargin

      private double minStonewallMargin
      Minimum stonewall margin as fraction of stonewall flow (0-1).
    • antiSurgeControlMargin

      private double antiSurgeControlMargin
      Anti-surge control line margin above surge line (0-1).
    • maxRecycleValveOpening

      private double maxRecycleValveOpening
      Anti-surge recycle valve maximum opening (0-1).
    • minSpeedRatio

      private double minSpeedRatio
      Minimum speed as fraction of rated speed.
    • maxSpeedRatio

      private double maxSpeedRatio
      Maximum speed as fraction of rated speed.
    • ratedSpeed

      private double ratedSpeed
      Rated speed in RPM.
    • maxPowerUtilization

      private double maxPowerUtilization
      Maximum power utilization as fraction of available power (0-1).
    • maxPower

      private double maxPower
      Maximum power in kW (absolute limit).
    • minPower

      private double minPower
      Minimum power in kW (for stable operation).
    • maxDischargeTemperature

      private double maxDischargeTemperature
      Maximum discharge temperature in Kelvin.
    • maxTemperatureRisePerStage

      private double maxTemperatureRisePerStage
      Maximum temperature rise per stage in Kelvin.
    • maxSuctionTemperature

      private double maxSuctionTemperature
      Maximum suction temperature in Kelvin.
    • maxDischargePressure

      private double maxDischargePressure
      Maximum discharge pressure in bara.
    • minSuctionPressure

      private double minSuctionPressure
      Minimum suction pressure in bara.
    • maxPressureRatioPerStage

      private double maxPressureRatioPerStage
      Maximum pressure ratio per stage.
    • driverCurve

      private transient DriverCurve driverCurve
      Associated driver curve (may be null).
    • driverPowerMargin

      private double driverPowerMargin
      Driver power margin required (0-1).
    • maxShaftTorque

      private double maxShaftTorque
      Maximum shaft torque in Nm.
    • maxVibration

      private double maxVibration
      Maximum vibration amplitude in mm/s.
    • useAntiSurgeControl

      private boolean useAntiSurgeControl
      Whether to use anti-surge control.
    • allowNearSurgeOperation

      private boolean allowNearSurgeOperation
      Whether to allow operation near surge (within control margin).
    • enforceHardLimits

      private boolean enforceHardLimits
      Whether to enforce hard limits (vs soft warnings).
  • Constructor Details

    • CompressorConstraintConfig

      public CompressorConstraintConfig()
      Default constructor with industry-standard defaults.
    • CompressorConstraintConfig

      public CompressorConstraintConfig(double surgeMargin, double stonewallMargin)
      Constructor with surge and stonewall margins.
      Parameters:
      surgeMargin - minimum surge margin (0-1)
      stonewallMargin - minimum stonewall margin (0-1)
  • Method Details

    • createAggressiveConfig

      public static CompressorConstraintConfig createAggressiveConfig()
      Creates a config with aggressive (minimal) margins for maximum capacity.
      Returns:
      config with minimal margins
    • createConservativeConfig

      public static CompressorConstraintConfig createConservativeConfig()
      Creates a config with conservative margins for safe operation.
      Returns:
      config with conservative margins
    • createAPI617Config

      public static CompressorConstraintConfig createAPI617Config()
      Creates a config based on API 617 requirements.
      Returns:
      API 617 compliant config
    • getMinSurgeMargin

      public double getMinSurgeMargin()
      Gets the minimum surge margin.
      Returns:
      surge margin as fraction (0-1)
    • setMinSurgeMargin

      public void setMinSurgeMargin(double margin)
      Sets the minimum surge margin.
      Parameters:
      margin - surge margin as fraction (0-1)
    • getMinStonewallMargin

      public double getMinStonewallMargin()
      Gets the minimum stonewall margin.
      Returns:
      stonewall margin as fraction (0-1)
    • setMinStonewallMargin

      public void setMinStonewallMargin(double margin)
      Sets the minimum stonewall margin.
      Parameters:
      margin - stonewall margin as fraction (0-1)
    • getAntiSurgeControlMargin

      public double getAntiSurgeControlMargin()
      Gets the anti-surge control margin.
      Returns:
      control margin as fraction (0-1)
    • setAntiSurgeControlMargin

      public void setAntiSurgeControlMargin(double margin)
      Sets the anti-surge control margin.
      Parameters:
      margin - control margin as fraction (0-1)
    • getMaxRecycleValveOpening

      public double getMaxRecycleValveOpening()
      Gets the maximum recycle valve opening.
      Returns:
      max opening as fraction (0-1)
    • setMaxRecycleValveOpening

      public void setMaxRecycleValveOpening(double opening)
      Sets the maximum recycle valve opening.
      Parameters:
      opening - max opening as fraction (0-1)
    • getMinSpeedRatio

      public double getMinSpeedRatio()
      Gets the minimum speed ratio.
      Returns:
      min speed as fraction of rated
    • setMinSpeedRatio

      public void setMinSpeedRatio(double ratio)
      Sets the minimum speed ratio.
      Parameters:
      ratio - min speed as fraction of rated
    • getMaxSpeedRatio

      public double getMaxSpeedRatio()
      Gets the maximum speed ratio.
      Returns:
      max speed as fraction of rated
    • setMaxSpeedRatio

      public void setMaxSpeedRatio(double ratio)
      Sets the maximum speed ratio.
      Parameters:
      ratio - max speed as fraction of rated
    • getRatedSpeed

      public double getRatedSpeed()
      Gets the rated speed.
      Returns:
      rated speed in RPM
    • setRatedSpeed

      public void setRatedSpeed(double speed)
      Sets the rated speed.
      Parameters:
      speed - rated speed in RPM
    • getMinSpeed

      public double getMinSpeed()
      Gets the minimum speed in RPM.
      Returns:
      minimum speed
    • getMaxSpeed

      public double getMaxSpeed()
      Gets the maximum speed in RPM.
      Returns:
      maximum speed
    • getMaxPowerUtilization

      public double getMaxPowerUtilization()
      Gets the maximum power utilization.
      Returns:
      max utilization as fraction (0-1)
    • setMaxPowerUtilization

      public void setMaxPowerUtilization(double utilization)
      Sets the maximum power utilization.
      Parameters:
      utilization - max utilization as fraction (0-1)
    • getMaxPower

      public double getMaxPower()
      Gets the maximum power.
      Returns:
      max power in kW
    • setMaxPower

      public void setMaxPower(double power)
      Sets the maximum power.
      Parameters:
      power - max power in kW
    • getMinPower

      public double getMinPower()
      Gets the minimum power.
      Returns:
      min power in kW
    • setMinPower

      public void setMinPower(double power)
      Sets the minimum power.
      Parameters:
      power - min power in kW
    • getMaxDischargeTemperature

      public double getMaxDischargeTemperature()
      Gets the maximum discharge temperature.
      Returns:
      max discharge temp in Kelvin
    • setMaxDischargeTemperature

      public void setMaxDischargeTemperature(double tempKelvin)
      Sets the maximum discharge temperature.
      Parameters:
      tempKelvin - max discharge temp in Kelvin
    • setMaxDischargeTemperatureCelsius

      public void setMaxDischargeTemperatureCelsius(double tempCelsius)
      Sets the maximum discharge temperature in Celsius.
      Parameters:
      tempCelsius - max discharge temp in Celsius
    • getMaxTemperatureRisePerStage

      public double getMaxTemperatureRisePerStage()
      Gets the maximum temperature rise per stage.
      Returns:
      max temp rise in Kelvin
    • setMaxTemperatureRisePerStage

      public void setMaxTemperatureRisePerStage(double tempRise)
      Sets the maximum temperature rise per stage.
      Parameters:
      tempRise - max temp rise in Kelvin
    • getMaxSuctionTemperature

      public double getMaxSuctionTemperature()
      Gets the maximum suction temperature.
      Returns:
      max suction temp in Kelvin
    • setMaxSuctionTemperature

      public void setMaxSuctionTemperature(double tempKelvin)
      Sets the maximum suction temperature.
      Parameters:
      tempKelvin - max suction temp in Kelvin
    • getMaxDischargePressure

      public double getMaxDischargePressure()
      Gets the maximum discharge pressure.
      Returns:
      max discharge pressure in bara
    • setMaxDischargePressure

      public void setMaxDischargePressure(double pressure)
      Sets the maximum discharge pressure.
      Parameters:
      pressure - max discharge pressure in bara
    • getMinSuctionPressure

      public double getMinSuctionPressure()
      Gets the minimum suction pressure.
      Returns:
      min suction pressure in bara
    • setMinSuctionPressure

      public void setMinSuctionPressure(double pressure)
      Sets the minimum suction pressure.
      Parameters:
      pressure - min suction pressure in bara
    • getMaxPressureRatioPerStage

      public double getMaxPressureRatioPerStage()
      Gets the maximum pressure ratio per stage.
      Returns:
      max pressure ratio
    • setMaxPressureRatioPerStage

      public void setMaxPressureRatioPerStage(double ratio)
      Sets the maximum pressure ratio per stage.
      Parameters:
      ratio - max pressure ratio
    • getDriverCurve

      public DriverCurve getDriverCurve()
      Gets the driver curve.
      Returns:
      driver curve or null if not set
    • setDriverCurve

      public void setDriverCurve(DriverCurve driver)
      Sets the driver curve.
      Parameters:
      driver - driver curve
    • getDriverPowerMargin

      public double getDriverPowerMargin()
      Gets the driver power margin.
      Returns:
      power margin as fraction (0-1)
    • setDriverPowerMargin

      public void setDriverPowerMargin(double margin)
      Sets the driver power margin.
      Parameters:
      margin - power margin as fraction (0-1)
    • getMaxShaftTorque

      public double getMaxShaftTorque()
      Gets the maximum shaft torque.
      Returns:
      max torque in Nm
    • setMaxShaftTorque

      public void setMaxShaftTorque(double torque)
      Sets the maximum shaft torque.
      Parameters:
      torque - max torque in Nm
    • getMaxVibration

      public double getMaxVibration()
      Gets the maximum vibration.
      Returns:
      max vibration in mm/s
    • setMaxVibration

      public void setMaxVibration(double vibration)
      Sets the maximum vibration.
      Parameters:
      vibration - max vibration in mm/s
    • isUseAntiSurgeControl

      public boolean isUseAntiSurgeControl()
      Checks if anti-surge control is enabled.
      Returns:
      true if enabled
    • setUseAntiSurgeControl

      public void setUseAntiSurgeControl(boolean use)
      Sets whether to use anti-surge control.
      Parameters:
      use - true to enable
    • isAllowNearSurgeOperation

      public boolean isAllowNearSurgeOperation()
      Checks if near-surge operation is allowed.
      Returns:
      true if allowed
    • setAllowNearSurgeOperation

      public void setAllowNearSurgeOperation(boolean allow)
      Sets whether near-surge operation is allowed.
      Parameters:
      allow - true to allow
    • isEnforceHardLimits

      public boolean isEnforceHardLimits()
      Checks if hard limits are enforced.
      Returns:
      true if enforced
    • setEnforceHardLimits

      public void setEnforceHardLimits(boolean enforce)
      Sets whether hard limits are enforced.
      Parameters:
      enforce - true to enforce
    • copy

      Creates a copy of this configuration.
      Returns:
      copy of config