Class CompressorMechanicalLosses
- All Implemented Interfaces:
Serializable
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumBearing type enumeration.static enumSeal type enumeration. -
Field Summary
FieldsModifier and TypeFieldDescriptionBearing type.private doubleBuffer gas flow rate [Nm³/hr per seal].private doubleCompressor discharge pressure [bara].private doubleGas compressibility factor at seal conditions.private doubleGas molecular weight [kg/kmol].private static final org.apache.logging.log4j.Loggerprivate doubleLube oil flow rate [L/min].private doubleLube oil inlet temperature [°C].private doubleLube oil outlet temperature [°C].private intNumber of radial bearings.private intNumber of seal assemblies (typically 2 for single shaft).private intNumber of thrust bearings.private doublePrimary seal leakage rate [Nm³/hr per seal].private doubleRadial bearing power loss [kW per bearing].private doubleSeal gas supply pressure [bara].private doubleSeal gas supply temperature [°C].Seal type (default: tandem dry gas seal).private doubleSecondary seal leakage rate [Nm³/hr per seal].private doubleSeparation gas (nitrogen) flow rate [Nm³/hr per seal].private static final longprivate doubleShaft diameter at seal location [mm].private doubleShaft speed [rpm].private doubleCompressor suction pressure [bara].private doubleThrust bearing power loss [kW]. -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor with typical values for medium-sized compressor.CompressorMechanicalLosses(double shaftDiameterMm) Constructor with shaft diameter specification. -
Method Summary
Modifier and TypeMethodDescriptiondoubleCalculate required buffer gas flow rate.doubleCalculate lube oil cooler heat duty.doubleCalculate lube oil flow rate requirement.doubleCalculate dry gas seal leakage rate based on API 692 methodology.doubleCalculate radial bearing power loss.doubleCalculate secondary seal leakage for tandem arrangements.doubleCalculate separation gas (nitrogen) flow rate.doubleCalculate thrust bearing power loss.Get the bearing type.doubleGet lube oil inlet temperature.doubleGet lube oil outlet temperature.doublegetMechanicalEfficiency(double shaftPowerKW) Calculate mechanical efficiency.intGet number of radial bearings.intGet number of seals.doubleGet seal gas supply pressure requirement.doubleGet the seal differential pressure.doubleGet seal gas supply pressure.doubleGet seal gas supply temperature.Get the seal type.doubleGet shaft diameter.doubleCalculate total bearing power loss.doubleCalculate total mechanical power loss (bearings + seals).doubleGet total seal gas consumption (all flows combined).voidPrint summary of mechanical losses and seal gas consumption.voidsetBearingType(CompressorMechanicalLosses.BearingType bearingType) Set the bearing type.voidsetLubeOilInletTemp(double temperature) Set lube oil inlet temperature.voidsetLubeOilOutletTemp(double temperature) Set lube oil outlet temperature.voidsetNumberOfRadialBearings(int numberOfRadialBearings) Set number of radial bearings.voidsetNumberOfSeals(int numberOfSeals) Set number of seals.voidsetOperatingConditions(double suctionPressure, double dischargePressure, double shaftSpeed, double gasMW, double gasZ) Update operating conditions from compressor.voidsetSealGasSupplyPressure(double pressure) Set seal gas supply pressure.voidsetSealGasSupplyTemperature(double temperature) Set seal gas supply temperature.voidSet the seal type.voidsetShaftDiameter(double shaftDiameter) Set shaft diameter.
-
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 shaftDiameterShaft diameter at seal location [mm]. -
sealGasSupplyPressure
private double sealGasSupplyPressureSeal gas supply pressure [bara]. -
sealGasSupplyTemperature
private double sealGasSupplyTemperatureSeal gas supply temperature [°C]. -
private double primarySealLeakagePrimary seal leakage rate [Nm³/hr per seal].
-
secondarySealLeakage
private double secondarySealLeakageSecondary seal leakage rate [Nm³/hr per seal]. -
numberOfSeals
private int numberOfSealsNumber of seal assemblies (typically 2 for single shaft). -
bufferGasFlow
private double bufferGasFlowBuffer gas flow rate [Nm³/hr per seal]. -
separationGasFlow
private double separationGasFlowSeparation gas (nitrogen) flow rate [Nm³/hr per seal]. -
bearingType
Bearing type. -
numberOfRadialBearings
private int numberOfRadialBearingsNumber of radial bearings. -
numberOfThrustBearings
private int numberOfThrustBearingsNumber of thrust bearings. -
radialBearingLoss
private double radialBearingLossRadial bearing power loss [kW per bearing]. -
thrustBearingLoss
private double thrustBearingLossThrust bearing power loss [kW]. -
lubeOilFlowRate
private double lubeOilFlowRateLube oil flow rate [L/min]. -
lubeOilInletTemp
private double lubeOilInletTempLube oil inlet temperature [°C]. -
lubeOilOutletTemp
private double lubeOilOutletTempLube oil outlet temperature [°C]. -
suctionPressure
private double suctionPressureCompressor suction pressure [bara]. -
dischargePressure
private double dischargePressureCompressor discharge pressure [bara]. -
shaftSpeed
private double shaftSpeedShaft speed [rpm]. -
gasMolecularWeight
private double gasMolecularWeightGas molecular weight [kg/kmol]. -
gasCompressibilityZ
private double gasCompressibilityZGas 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
-
setSealType
Set the seal type.- Parameters:
sealType- seal type
-
getBearingType
Get the bearing type.- Returns:
- bearing type
-
setBearingType
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.
-