Class CompressorWashing
java.lang.Object
neqsim.process.equipment.compressor.CompressorWashing
- All Implemented Interfaces:
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
| 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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumFouling type affecting compressor.static classRecord of a wash event.static enumCompressor washing method types. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleCurrent accumulated fouling factor (0 = clean, 1 = fully fouled).private doubleDetergent concentration [%].private CompressorWashing.FoulingTypeDominant fouling type.private doubleEnvironmental severity factor (1.0 = normal, 2.0 = harsh offshore).private doubleOperating hours since last wash.private doubleInlet filtration efficiency (0-1).private CompressorWashing.WashingMethodLast wash method used.private static final org.apache.logging.log4j.Loggerprivate doubleMaximum fouling before forced shutdown (0-1).private doubleOffline soak time [hours].private doubleOnline wash duration [minutes].private doubleOnline wash water flow rate [L/min].private static final longprivate doubleTotal operating hours.private booleanUse detergent additive.private final List<CompressorWashing.WashEvent> Wash history for tracking.private doubleWash water temperature [°C]. -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.CompressorWashing(CompressorWashing.FoulingType foulingType) Constructor with dominant fouling type. -
Method Summary
Modifier and TypeMethodDescriptiondoublecalculateAnnualChemicalCost(int washesPerYear, double chemicalCostPerLiter) Calculate annual wash chemical cost.doubleestimateAnnualProductionLoss(double baseProductionRate, double avgFouling, double operatingHours) Estimate annual production loss due to fouling.doubleestimateWashInterval(double maxHeadLoss) Estimate time between washes for target performance.doubleEstimate wash water consumption for a method.doublegetCorrectedEfficiency(double cleanEfficiency) Get corrected efficiency accounting for fouling.doublegetCorrectedHead(double cleanHead) Get corrected polytropic head accounting for fouling.doubleGets current fouling factor.Gets dominant fouling type.doubleCalculate efficiency degradation due to fouling.doubleGets environmental severity.doubleCalculate current head loss due to fouling.doubleGets hours since last wash.doubleGets inlet filter efficiency.doubleGets maximum allowable fouling.doubleGets online wash water flow rate.doubleGets total operating hours.Gets wash history.doubleGets wash water temperature.booleanChecks if detergent is used.booleanCheck if washing is critical.booleanCheck if washing is recommended.doublePerform offline soak wash.doublePerform online wet wash.doublePerform compressor washing.voidPrints washing status summary.voidsetCurrentFoulingFactor(double fouling) Sets current fouling factor.voidSets dominant fouling type.voidsetEnvironmentalSeverity(double severity) Sets environmental severity.voidsetInletFilterEfficiency(double efficiency) Sets inlet filter efficiency.voidsetMaxAllowableFouling(double maxFouling) Sets maximum allowable fouling.voidsetOnlineWashWaterFlow(double flowRate) Sets online wash water flow rate.voidsetUseDetergent(boolean useDetergent) Sets detergent usage.voidsetWashWaterTemperature(double temperature) Sets wash water temperature.voidupdateFouling(double operatingHours) Update fouling based on operating hours.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
logger
private static final org.apache.logging.log4j.Logger logger -
currentFoulingFactor
private double currentFoulingFactorCurrent accumulated fouling factor (0 = clean, 1 = fully fouled). -
maxAllowableFouling
private double maxAllowableFoulingMaximum fouling before forced shutdown (0-1). -
dominantFoulingType
Dominant fouling type. -
hoursSinceLastWash
private double hoursSinceLastWashOperating hours since last wash. -
totalOperatingHours
private double totalOperatingHoursTotal operating hours. -
lastWashMethod
Last wash method used. -
washHistory
Wash history for tracking. -
environmentalSeverity
private double environmentalSeverityEnvironmental severity factor (1.0 = normal, 2.0 = harsh offshore). -
inletFilterEfficiency
private double inletFilterEfficiencyInlet filtration efficiency (0-1). -
onlineWashWaterFlow
private double onlineWashWaterFlowOnline wash water flow rate [L/min]. -
onlineWashDuration
private double onlineWashDurationOnline wash duration [minutes]. -
offlineSoakTime
private double offlineSoakTimeOffline soak time [hours]. -
washWaterTemperature
private double washWaterTemperatureWash water temperature [°C]. -
useDetergent
private boolean useDetergentUse detergent additive. -
detergentConcentration
private double detergentConcentrationDetergent concentration [%].
-
-
Constructor Details
-
CompressorWashing
public CompressorWashing()Default constructor. -
CompressorWashing
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
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
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 yearchemicalCostPerLiter- 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 yearoperatingHours- 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
Gets dominant fouling type.- Returns:
- fouling type
-
setDominantFoulingType
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
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.
-