Class CompressorMechanicalLosses

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

public class CompressorMechanicalLosses extends Object implements Serializable
Models mechanical losses and seal gas consumption for centrifugal compressors.

This class provides calculations for:

  • Dry gas seal (DGS) consumption per API 692
  • Bearing power losses per API 617
  • Seal oil system requirements (for oil seals)
  • Buffer gas requirements

References:

  • API 692 - Dry Gas Sealing Systems for Axial, Centrifugal, Rotary Screw Compressors
  • API 617 - Axial and Centrifugal Compressors and Expander-compressors
  • API 614 - Lubrication, Shaft-Sealing and Oil-Control Systems
Version:
1.0
Author:
NeqSim Development Team
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • logger

      private static final org.apache.logging.log4j.Logger logger
    • sealType

      Seal type (default: tandem dry gas seal).
    • shaftDiameter

      private double shaftDiameter
      Shaft diameter at seal location [mm].
    • sealGasSupplyPressure

      private double sealGasSupplyPressure
      Seal gas supply pressure [bara].
    • sealGasSupplyTemperature

      private double sealGasSupplyTemperature
      Seal gas supply temperature [°C].
    • primarySealLeakage

      private double primarySealLeakage
      Primary seal leakage rate [Nm³/hr per seal].
    • secondarySealLeakage

      private double secondarySealLeakage
      Secondary seal leakage rate [Nm³/hr per seal].
    • numberOfSeals

      private int numberOfSeals
      Number of seal assemblies (typically 2 for single shaft).
    • bufferGasFlow

      private double bufferGasFlow
      Buffer gas flow rate [Nm³/hr per seal].
    • separationGasFlow

      private double separationGasFlow
      Separation gas (nitrogen) flow rate [Nm³/hr per seal].
    • bearingType

      Bearing type.
    • numberOfRadialBearings

      private int numberOfRadialBearings
      Number of radial bearings.
    • numberOfThrustBearings

      private int numberOfThrustBearings
      Number of thrust bearings.
    • radialBearingLoss

      private double radialBearingLoss
      Radial bearing power loss [kW per bearing].
    • thrustBearingLoss

      private double thrustBearingLoss
      Thrust bearing power loss [kW].
    • lubeOilFlowRate

      private double lubeOilFlowRate
      Lube oil flow rate [L/min].
    • lubeOilInletTemp

      private double lubeOilInletTemp
      Lube oil inlet temperature [°C].
    • lubeOilOutletTemp

      private double lubeOilOutletTemp
      Lube oil outlet temperature [°C].
    • suctionPressure

      private double suctionPressure
      Compressor suction pressure [bara].
    • dischargePressure

      private double dischargePressure
      Compressor discharge pressure [bara].
    • shaftSpeed

      private double shaftSpeed
      Shaft speed [rpm].
    • gasMolecularWeight

      private double gasMolecularWeight
      Gas molecular weight [kg/kmol].
    • gasCompressibilityZ

      private double gasCompressibilityZ
      Gas compressibility factor at seal conditions.
  • Constructor Details

    • CompressorMechanicalLosses

      public CompressorMechanicalLosses()
      Default constructor with typical values for medium-sized compressor.
    • CompressorMechanicalLosses

      public CompressorMechanicalLosses(double shaftDiameterMm)
      Constructor with shaft diameter specification.
      Parameters:
      shaftDiameterMm - shaft diameter in mm
  • Method Details

    • calculatePrimarySealLeakage

      public double calculatePrimarySealLeakage()
      Calculate dry gas seal leakage rate based on API 692 methodology.

      The leakage through a dry gas seal depends on:

      • Seal differential pressure
      • Shaft diameter (seal size)
      • Gas properties (MW, Z-factor)
      • Seal design (gap, face geometry)

      Typical primary seal leakage: 0.5-3.0 Nm³/hr per seal for properly functioning DGS.

      Returns:
      primary seal leakage rate in Nm³/hr (total for all seals)
    • calculateSecondarySealLeakage

      public double calculateSecondarySealLeakage()
      Calculate secondary seal leakage for tandem arrangements.

      Secondary seal operates at lower pressure differential (typically to flare/vent).

      Returns:
      secondary seal leakage in Nm³/hr (total)
    • calculateBufferGasFlow

      public double calculateBufferGasFlow()
      Calculate required buffer gas flow rate.

      Buffer gas is injected between primary and secondary seals to prevent process gas contamination of the secondary seal and bearing area.

      Returns:
      buffer gas flow rate in Nm³/hr (total)
    • calculateSeparationGasFlow

      public double calculateSeparationGasFlow()
      Calculate separation gas (nitrogen) flow rate.

      Separation gas prevents bearing oil mist from entering the seal area.

      Returns:
      separation gas flow rate in Nm³/hr (total)
    • getRequiredSealGasSupplyPressure

      public double getRequiredSealGasSupplyPressure()
      Get seal gas supply pressure requirement.

      Seal gas must be supplied at a pressure higher than the reference pressure (suction or discharge depending on seal location).

      Returns:
      required seal gas supply pressure in bara
    • getSealDifferentialPressure

      public double getSealDifferentialPressure()
      Get the seal differential pressure.
      Returns:
      differential pressure across primary seal [bar]
    • getTotalSealGasConsumption

      public double getTotalSealGasConsumption()
      Get total seal gas consumption (all flows combined).
      Returns:
      total seal gas consumption in Nm³/hr
    • calculateRadialBearingLoss

      public double calculateRadialBearingLoss()
      Calculate radial bearing power loss.

      Based on API 617 and bearing vendor correlations. Power loss depends on:

      • Shaft speed
      • Bearing load (rotor weight)
      • Oil viscosity
      • Bearing geometry
      Returns:
      radial bearing power loss in kW (total for all radial bearings)
    • calculateThrustBearingLoss

      public double calculateThrustBearingLoss()
      Calculate thrust bearing power loss.

      Thrust bearing handles axial load from pressure differential across impellers.

      Returns:
      thrust bearing power loss in kW
    • getTotalBearingLoss

      public double getTotalBearingLoss()
      Calculate total bearing power loss.
      Returns:
      total bearing mechanical loss in kW
    • calculateLubeOilFlowRate

      public double calculateLubeOilFlowRate()
      Calculate lube oil flow rate requirement.

      Lube oil flow must be sufficient to remove heat generated by bearing friction.

      Returns:
      lube oil flow rate in L/min
    • calculateLubeOilCoolerDuty

      public double calculateLubeOilCoolerDuty()
      Calculate lube oil cooler heat duty.
      Returns:
      heat duty in kW
    • getTotalMechanicalLoss

      public double getTotalMechanicalLoss()
      Calculate total mechanical power loss (bearings + seals).

      This represents the additional power required beyond the gas compression power to account for mechanical friction.

      Returns:
      total mechanical loss in kW
    • getMechanicalEfficiency

      public double getMechanicalEfficiency(double shaftPowerKW)
      Calculate mechanical efficiency.

      Mechanical efficiency = 1 - (mechanical losses / shaft power)

      Parameters:
      shaftPowerKW - shaft power in kW
      Returns:
      mechanical efficiency (0-1)
    • setOperatingConditions

      public void setOperatingConditions(double suctionPressure, double dischargePressure, double shaftSpeed, double gasMW, double gasZ)
      Update operating conditions from compressor.
      Parameters:
      suctionPressure - suction pressure [bara]
      dischargePressure - discharge pressure [bara]
      shaftSpeed - shaft speed [rpm]
      gasMW - gas molecular weight [kg/kmol]
      gasZ - gas compressibility factor
    • getSealType

      Get the seal type.
      Returns:
      seal type
    • setSealType

      public void setSealType(CompressorMechanicalLosses.SealType sealType)
      Set the seal type.
      Parameters:
      sealType - seal type
    • getBearingType

      public CompressorMechanicalLosses.BearingType getBearingType()
      Get the bearing type.
      Returns:
      bearing type
    • setBearingType

      public void setBearingType(CompressorMechanicalLosses.BearingType bearingType)
      Set the bearing type.
      Parameters:
      bearingType - bearing type
    • getShaftDiameter

      public double getShaftDiameter()
      Get shaft diameter.
      Returns:
      shaft diameter in mm
    • setShaftDiameter

      public void setShaftDiameter(double shaftDiameter)
      Set shaft diameter.
      Parameters:
      shaftDiameter - shaft diameter in mm
    • getNumberOfSeals

      public int getNumberOfSeals()
      Get number of seals.
      Returns:
      number of seal assemblies
    • setNumberOfSeals

      public void setNumberOfSeals(int numberOfSeals)
      Set number of seals.
      Parameters:
      numberOfSeals - number of seal assemblies
    • getNumberOfRadialBearings

      public int getNumberOfRadialBearings()
      Get number of radial bearings.
      Returns:
      number of radial bearings
    • setNumberOfRadialBearings

      public void setNumberOfRadialBearings(int numberOfRadialBearings)
      Set number of radial bearings.
      Parameters:
      numberOfRadialBearings - number of radial bearings
    • getSealGasSupplyPressure

      public double getSealGasSupplyPressure()
      Get seal gas supply pressure.
      Returns:
      seal gas supply pressure in bara
    • setSealGasSupplyPressure

      public void setSealGasSupplyPressure(double pressure)
      Set seal gas supply pressure.
      Parameters:
      pressure - seal gas supply pressure in bara
    • getSealGasSupplyTemperature

      public double getSealGasSupplyTemperature()
      Get seal gas supply temperature.
      Returns:
      temperature in °C
    • setSealGasSupplyTemperature

      public void setSealGasSupplyTemperature(double temperature)
      Set seal gas supply temperature.
      Parameters:
      temperature - temperature in °C
    • getLubeOilInletTemp

      public double getLubeOilInletTemp()
      Get lube oil inlet temperature.
      Returns:
      temperature in °C
    • setLubeOilInletTemp

      public void setLubeOilInletTemp(double temperature)
      Set lube oil inlet temperature.
      Parameters:
      temperature - temperature in °C
    • getLubeOilOutletTemp

      public double getLubeOilOutletTemp()
      Get lube oil outlet temperature.
      Returns:
      temperature in °C
    • setLubeOilOutletTemp

      public void setLubeOilOutletTemp(double temperature)
      Set lube oil outlet temperature.
      Parameters:
      temperature - temperature in °C
    • printSummary

      public void printSummary()
      Print summary of mechanical losses and seal gas consumption.