Class CompressorWashing

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

public class CompressorWashing extends Object implements Serializable
Models compressor washing (online and offline) for performance recovery.

Compressor fouling causes performance degradation over time due to:

  • Salt deposits from ingested sea air
  • Hydrocarbon deposits from process gas
  • Dust and particulates
  • Corrosion products

Washing Methods

Comparison of washing methods
Method Effectiveness Downtime Water Usage
Online (wet) 30-50% None Continuous spray
Offline (soak) 80-95% 4-8 hours Tank soak
Crank wash 90-98% 8-24 hours Multiple cycles

References

  • API 616 - Gas Turbines for Petroleum, Chemical and Gas Industry
  • GE GER-3601 - Gas Turbine Compressor Washing State of the Art
  • Siemens SGT-xxx Compressor Washing Guidelines
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
    • currentFoulingFactor

      private double currentFoulingFactor
      Current accumulated fouling factor (0 = clean, 1 = fully fouled).
    • maxAllowableFouling

      private double maxAllowableFouling
      Maximum fouling before forced shutdown (0-1).
    • dominantFoulingType

      private CompressorWashing.FoulingType dominantFoulingType
      Dominant fouling type.
    • hoursSinceLastWash

      private double hoursSinceLastWash
      Operating hours since last wash.
    • totalOperatingHours

      private double totalOperatingHours
      Total operating hours.
    • lastWashMethod

      private CompressorWashing.WashingMethod lastWashMethod
      Last wash method used.
    • washHistory

      private final List<CompressorWashing.WashEvent> washHistory
      Wash history for tracking.
    • environmentalSeverity

      private double environmentalSeverity
      Environmental severity factor (1.0 = normal, 2.0 = harsh offshore).
    • inletFilterEfficiency

      private double inletFilterEfficiency
      Inlet filtration efficiency (0-1).
    • onlineWashWaterFlow

      private double onlineWashWaterFlow
      Online wash water flow rate [L/min].
    • onlineWashDuration

      private double onlineWashDuration
      Online wash duration [minutes].
    • offlineSoakTime

      private double offlineSoakTime
      Offline soak time [hours].
    • washWaterTemperature

      private double washWaterTemperature
      Wash water temperature [°C].
    • useDetergent

      private boolean useDetergent
      Use detergent additive.
    • detergentConcentration

      private double detergentConcentration
      Detergent concentration [%].
  • Constructor Details

    • CompressorWashing

      public CompressorWashing()
      Default constructor.
    • CompressorWashing

      public CompressorWashing(CompressorWashing.FoulingType foulingType)
      Constructor with dominant fouling type.
      Parameters:
      foulingType - expected dominant fouling mechanism
  • Method Details

    • updateFouling

      public void updateFouling(double operatingHours)
      Update fouling based on operating hours.
      Parameters:
      operatingHours - hours operated since last update
    • getHeadLossFactor

      public double getHeadLossFactor()
      Calculate current head loss due to fouling.
      Returns:
      head loss factor (0 = no loss, 0.1 = 10% loss)
    • getEfficiencyDegradation

      public double getEfficiencyDegradation()
      Calculate efficiency degradation due to fouling.
      Returns:
      efficiency degradation factor (0 = no degradation)
    • isWashingRecommended

      public boolean isWashingRecommended()
      Check if washing is recommended.
      Returns:
      true if washing should be performed
    • isWashingCritical

      public boolean isWashingCritical()
      Check if washing is critical.
      Returns:
      true if compressor should be shut down for cleaning
    • performWash

      public double performWash(CompressorWashing.WashingMethod method)
      Perform compressor washing.
      Parameters:
      method - washing method to use
      Returns:
      performance recovery achieved (0-1)
    • performOnlineWash

      public double performOnlineWash()
      Perform online wet wash.
      Returns:
      performance recovery achieved
    • performOfflineWash

      public double performOfflineWash()
      Perform offline soak wash.
      Returns:
      performance recovery achieved
    • estimateWaterConsumption

      public double estimateWaterConsumption(CompressorWashing.WashingMethod method)
      Estimate wash water consumption for a method.
      Parameters:
      method - washing method
      Returns:
      water consumption in liters
    • estimateWashInterval

      public double estimateWashInterval(double maxHeadLoss)
      Estimate time between washes for target performance.
      Parameters:
      maxHeadLoss - maximum acceptable head loss (e.g., 0.05 for 5%)
      Returns:
      recommended wash interval in hours
    • calculateAnnualChemicalCost

      public double calculateAnnualChemicalCost(int washesPerYear, double chemicalCostPerLiter)
      Calculate annual wash chemical cost.
      Parameters:
      washesPerYear - number of washes per year
      chemicalCostPerLiter - cost per liter of wash solution
      Returns:
      annual chemical cost
    • getCorrectedHead

      public double getCorrectedHead(double cleanHead)
      Get corrected polytropic head accounting for fouling.
      Parameters:
      cleanHead - clean condition polytropic head [kJ/kg]
      Returns:
      fouled polytropic head [kJ/kg]
    • getCorrectedEfficiency

      public double getCorrectedEfficiency(double cleanEfficiency)
      Get corrected efficiency accounting for fouling.
      Parameters:
      cleanEfficiency - clean condition efficiency
      Returns:
      fouled efficiency
    • estimateAnnualProductionLoss

      public double estimateAnnualProductionLoss(double baseProductionRate, double avgFouling, double operatingHours)
      Estimate annual production loss due to fouling.
      Parameters:
      baseProductionRate - base production rate [units/hr]
      avgFouling - average fouling factor over year
      operatingHours - annual operating hours
      Returns:
      production loss [units]
    • getCurrentFoulingFactor

      public double getCurrentFoulingFactor()
      Gets current fouling factor.
      Returns:
      fouling factor (0-1)
    • setCurrentFoulingFactor

      public void setCurrentFoulingFactor(double fouling)
      Sets current fouling factor.
      Parameters:
      fouling - fouling factor (0-1)
    • getMaxAllowableFouling

      public double getMaxAllowableFouling()
      Gets maximum allowable fouling.
      Returns:
      max fouling threshold
    • setMaxAllowableFouling

      public void setMaxAllowableFouling(double maxFouling)
      Sets maximum allowable fouling.
      Parameters:
      maxFouling - max fouling threshold
    • getDominantFoulingType

      public CompressorWashing.FoulingType getDominantFoulingType()
      Gets dominant fouling type.
      Returns:
      fouling type
    • setDominantFoulingType

      public void setDominantFoulingType(CompressorWashing.FoulingType type)
      Sets dominant fouling type.
      Parameters:
      type - fouling type
    • getEnvironmentalSeverity

      public double getEnvironmentalSeverity()
      Gets environmental severity.
      Returns:
      severity factor
    • setEnvironmentalSeverity

      public void setEnvironmentalSeverity(double severity)
      Sets environmental severity.
      Parameters:
      severity - severity factor (1.0 normal, 2.0 harsh)
    • getInletFilterEfficiency

      public double getInletFilterEfficiency()
      Gets inlet filter efficiency.
      Returns:
      filter efficiency (0-1)
    • setInletFilterEfficiency

      public void setInletFilterEfficiency(double efficiency)
      Sets inlet filter efficiency.
      Parameters:
      efficiency - filter efficiency (0-1)
    • getHoursSinceLastWash

      public double getHoursSinceLastWash()
      Gets hours since last wash.
      Returns:
      operating hours since last wash
    • getTotalOperatingHours

      public double getTotalOperatingHours()
      Gets total operating hours.
      Returns:
      total operating hours
    • getWashHistory

      public List<CompressorWashing.WashEvent> getWashHistory()
      Gets wash history.
      Returns:
      list of wash events
    • getOnlineWashWaterFlow

      public double getOnlineWashWaterFlow()
      Gets online wash water flow rate.
      Returns:
      flow rate [L/min]
    • setOnlineWashWaterFlow

      public void setOnlineWashWaterFlow(double flowRate)
      Sets online wash water flow rate.
      Parameters:
      flowRate - flow rate [L/min]
    • getWashWaterTemperature

      public double getWashWaterTemperature()
      Gets wash water temperature.
      Returns:
      temperature [°C]
    • setWashWaterTemperature

      public void setWashWaterTemperature(double temperature)
      Sets wash water temperature.
      Parameters:
      temperature - temperature [°C]
    • isUseDetergent

      public boolean isUseDetergent()
      Checks if detergent is used.
      Returns:
      true if detergent used
    • setUseDetergent

      public void setUseDetergent(boolean useDetergent)
      Sets detergent usage.
      Parameters:
      useDetergent - true to use detergent
    • printSummary

      public void printSummary()
      Prints washing status summary.