Class UtilityAirSystem
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.util.UtilityAirSystem
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, SimulationInterface, NamedInterface
Models utility air systems for offshore and onshore facilities.
Utility air systems provide compressed air for:
- Instrument air - Clean, dry air for pneumatic instruments and controls
- Plant air - General purpose air for tools and cleaning
- Service air - Air for maintenance activities
- Breathing air - Respirable air for personnel (higher purity)
Design Standards
- ISO 8573-1 - Compressed Air Quality Classes
- NORSOK P-002 - Process System Design
- API RP 11P - Packaged Reciprocating Compressors
Typical Specifications
| Service | Pressure | Dew Point | Oil Content |
|---|---|---|---|
| Instrument Air | 7-8 barg | -40°C | <0.01 mg/m³ |
| Plant Air | 6-7 barg | +3°C | <1 mg/m³ |
| Breathing Air | 5-7 barg | -40°C | <0.003 mg/m³ |
- Version:
- 1.0
- Author:
- NeqSim Development Team
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAir consumer (equipment or system using compressed air).static enumISO 8573-1 Air Quality Classes.static enumAir compressor type.static enumAir dryer type. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate doubleAftercooler outlet temperature [°C].private doubleprivate UtilityAirSystem.CompressorTypeCompressor type.private doubleprivate final List<UtilityAirSystem.AirConsumer> private doubleDischarge pressure [barg].private doubleprivate UtilityAirSystem.DryerTypeDryer type.private doubleRelative humidity at inlet [%].private doubleInlet temperature [°C].private doubleInstrument air demand fraction.private static final org.apache.logging.log4j.Loggerprivate intNumber of compressors (N+1 redundancy typical).private doublePlant air demand fraction.private doubleReceiver tank volume [m³].private static final longprivate doubleService/breathing air fraction.private doubleprivate booleanprivate UtilityAirSystem.AirQualityClassTarget air quality class.private doubleTotal air demand [Nm³/hr].Fields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionUtilityAirSystem(String name) Default constructor.UtilityAirSystem(String name, double airDemandNm3h) Constructor with capacity.UtilityAirSystem(String name, double airDemandNm3h, UtilityAirSystem.AirQualityClass qualityClass) Constructor with quality specification. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConsumer(String name, double demandNm3h, UtilityAirSystem.AirQualityClass quality) Add an air consumer by parameters.voidaddConsumer(UtilityAirSystem.AirConsumer consumer) Add an air consumer.voidautoSize()Auto-size system based on demand.doublecalculateAnnualOperatingCost(double electricityCostPerKWh, double operatingHoursPerYear) Calculate annual operating cost.private doublecalculateSaturationPressure(double temperatureC) Calculate saturation pressure of water vapor.doubleGets achieved dew point.doubleGets compressor power.Gets compressor type.doubleGets condensate volume.doubleGets discharge pressure.doubleGets dryer purge air loss.Gets dryer type.doubleGets inlet relative humidity.doubleGets inlet temperature.intGets number of compressors.doubleGets receiver holdup time at full demand.doubleGets receiver volume.doubleGets specific energy consumption.Gets target quality class.doubleGets total air demand.booleanChecks if quality target is met.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.private voidSelect appropriate dryer for quality requirement.voidSets compressor type.voidsetDischargePressure(double pressure) Sets discharge pressure.voidSets dryer type.voidsetInletRelativeHumidity(double humidity) Sets inlet relative humidity.voidsetInletTemperature(double temperature) Sets inlet temperature.voidsetNumberOfCompressors(int number) Sets number of compressors.voidsetReceiverVolume(double volume) Sets receiver volume.voidSets target quality class.voidsetTotalAirDemand(double demand) Sets total air demand.toJson()Gets results as JSON.private voidUpdate total demand from consumers.Methods inherited from class ProcessEquipmentBaseClass
copy, displayResult, equals, getConditionAnalysisMessage, getController, getEffectiveCapacityFactor, getEnergyStream, getEntropyProduction, getExergyChange, getFailureMode, getMassBalance, getMassBalance, getMechanicalDesign, getMinimumFlow, getPressure, getPressure, getProperty, getReport_json, getResultTable, getSpecification, getTemperature, getTemperature, getThermoSystem, hashCode, initMechanicalDesign, isActive, isActive, isCapacityAnalysisEnabled, isFailed, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setCapacityAnalysisEnabled, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setPressure, setRegulatorOutSignal, setSpecification, setTemperature, simulateDegradedOperation, simulateTrip, solved, toJsonMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagName, setName, setTagNameMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface NamedInterface
getName, getTagName, setName, setTagNameMethods inherited from interface ProcessEquipmentInterface
getCapacityDuty, getCapacityMax, getExergyChange, getFluid, getOperatingEnvelopeViolation, getRestCapacity, getSimulationValidationErrors, isSimulationValid, isWithinOperatingEnvelope, needRecalculation, validateSetupMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, runTransient, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTime
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
logger
private static final org.apache.logging.log4j.Logger logger -
targetQuality
Target air quality class. -
compressorType
Compressor type. -
dryerType
Dryer type. -
numberOfCompressors
private int numberOfCompressorsNumber of compressors (N+1 redundancy typical). -
receiverVolume
private double receiverVolumeReceiver tank volume [m³]. -
dischargePressure
private double dischargePressureDischarge pressure [barg]. -
inletTemperature
private double inletTemperatureInlet temperature [°C]. -
inletRelativeHumidity
private double inletRelativeHumidityRelative humidity at inlet [%]. -
aftercoolerOutletTemp
private double aftercoolerOutletTempAftercooler outlet temperature [°C]. -
totalAirDemand
private double totalAirDemandTotal air demand [Nm³/hr]. -
instrumentAirFraction
private double instrumentAirFractionInstrument air demand fraction. -
plantAirFraction
private double plantAirFractionPlant air demand fraction. -
serviceAirFraction
private double serviceAirFractionService/breathing air fraction. -
consumers
-
compressorPowerKW
private double compressorPowerKW -
dryerPurgeLoss
private double dryerPurgeLoss -
condensateVolumeM3h
private double condensateVolumeM3h -
actualDewPointC
private double actualDewPointC -
specificEnergyKWhPerNm3
private double specificEnergyKWhPerNm3 -
systemRunning
private boolean systemRunning
-
-
Constructor Details
-
UtilityAirSystem
-
UtilityAirSystem
Constructor with capacity.- Parameters:
name- system nameairDemandNm3h- total air demand in Nm³/hr
-
UtilityAirSystem
public UtilityAirSystem(String name, double airDemandNm3h, UtilityAirSystem.AirQualityClass qualityClass) Constructor with quality specification.- Parameters:
name- system nameairDemandNm3h- total air demandqualityClass- target air quality
-
-
Method Details
-
addConsumer
Add an air consumer.- Parameters:
consumer- air consumer to add
-
addConsumer
Add an air consumer by parameters.- Parameters:
name- consumer namedemandNm3h- air demand [Nm³/hr]quality- required quality class
-
updateTotalDemand
private void updateTotalDemand()Update total demand from consumers. -
selectDryerForQuality
private void selectDryerForQuality()Select appropriate dryer for quality requirement. -
autoSize
public void autoSize()Auto-size system based on demand. -
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-
calculateSaturationPressure
private double calculateSaturationPressure(double temperatureC) Calculate saturation pressure of water vapor.- Parameters:
temperatureC- temperature in °C- Returns:
- saturation pressure in kPa
-
getCompressorPowerKW
public double getCompressorPowerKW()Gets compressor power.- Returns:
- total compressor power [kW]
-
getSpecificEnergy
public double getSpecificEnergy()Gets specific energy consumption.- Returns:
- energy per Nm³ [kWh/Nm³]
-
getDryerPurgeLoss
public double getDryerPurgeLoss()Gets dryer purge air loss.- Returns:
- purge loss [Nm³/hr]
-
getCondensateVolume
public double getCondensateVolume()Gets condensate volume.- Returns:
- condensate [m³/hr]
-
getActualDewPoint
public double getActualDewPoint()Gets achieved dew point.- Returns:
- dew point [°C]
-
isQualityTargetMet
public boolean isQualityTargetMet()Checks if quality target is met.- Returns:
- true if achieved dew point meets target
-
getReceiverHoldupMinutes
public double getReceiverHoldupMinutes()Gets receiver holdup time at full demand.- Returns:
- holdup time [minutes]
-
calculateAnnualOperatingCost
public double calculateAnnualOperatingCost(double electricityCostPerKWh, double operatingHoursPerYear) Calculate annual operating cost.- Parameters:
electricityCostPerKWh- electricity costoperatingHoursPerYear- annual operating hours- Returns:
- annual cost
-
toJson
Gets results as JSON.- Specified by:
toJsonin interfaceProcessEquipmentInterface- Overrides:
toJsonin classProcessEquipmentBaseClass- Returns:
- JSON string
-
getTargetQuality
Gets target quality class.- Returns:
- quality class
-
setTargetQuality
Sets target quality class.- Parameters:
quality- quality class
-
getCompressorType
Gets compressor type.- Returns:
- compressor type
-
setCompressorType
Sets compressor type.- Parameters:
type- compressor type
-
getDryerType
-
setDryerType
Sets dryer type.- Parameters:
type- dryer type
-
getDischargePressure
public double getDischargePressure()Gets discharge pressure.- Returns:
- pressure [barg]
-
setDischargePressure
public void setDischargePressure(double pressure) Sets discharge pressure.- Parameters:
pressure- pressure [barg]
-
getTotalAirDemand
public double getTotalAirDemand()Gets total air demand.- Returns:
- demand [Nm³/hr]
-
setTotalAirDemand
public void setTotalAirDemand(double demand) Sets total air demand.- Parameters:
demand- demand [Nm³/hr]
-
getInletTemperature
public double getInletTemperature()Gets inlet temperature.- Returns:
- temperature [°C]
-
setInletTemperature
public void setInletTemperature(double temperature) Sets inlet temperature.- Parameters:
temperature- temperature [°C]
-
getInletRelativeHumidity
public double getInletRelativeHumidity()Gets inlet relative humidity.- Returns:
- humidity [%]
-
setInletRelativeHumidity
public void setInletRelativeHumidity(double humidity) Sets inlet relative humidity.- Parameters:
humidity- humidity [%]
-
getReceiverVolume
public double getReceiverVolume()Gets receiver volume.- Returns:
- volume [m³]
-
setReceiverVolume
public void setReceiverVolume(double volume) Sets receiver volume.- Parameters:
volume- volume [m³]
-
getNumberOfCompressors
public int getNumberOfCompressors()Gets number of compressors.- Returns:
- number of compressors
-
setNumberOfCompressors
public void setNumberOfCompressors(int number) Sets number of compressors.- Parameters:
number- number of compressors
-