Class ShutdownProfile
java.lang.Object
neqsim.process.equipment.compressor.ShutdownProfile
- All Implemented Interfaces:
Serializable
Defines a shutdown profile for compressor shutdown sequences.
This class defines the sequence of speed/time points that define how a compressor should be stopped. It includes safety considerations for normal and emergency shutdowns.
- Version:
- 1.0
- Author:
- esol
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classInner class representing a point in the shutdown profile.static enumEnum for shutdown types. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate booleanprivate final List<ShutdownProfile.ProfilePoint> private doubleprivate static final longprivate ShutdownProfile.ShutdownType -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor creating a normal shutdown profile.ShutdownProfile(ShutdownProfile.ShutdownType type, double currentSpeed) Constructor with shutdown type. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcreateCoastdownProfile(double currentSpeed) Create coastdown profile (natural deceleration).private voidcreateEmergencyProfile(double currentSpeed) Create emergency shutdown profile.private voidcreateNormalProfile(double currentSpeed) Create normal shutdown profile.private voidcreateProfile(ShutdownProfile.ShutdownType type, double currentSpeed) Create profile based on shutdown type.private voidcreateRapidProfile(double currentSpeed) Create rapid shutdown profile.doubleGet antisurge open delay.doubleGet coastdown time.getCurrentPhase(double elapsedTime) Get the current phase description.doubleGet depressurization time.doubleGet emergency ramp rate.doubleGet idle rundown time.doubleGet maximum depressurization rate.doubleGet minimum idle speed.doubleGet normal ramp rate.Get the profile points.doubleGet rapid ramp rate.Get the shutdown type.doublegetTargetSpeedAtTime(double elapsedTime, double initialSpeed) Get the target speed at a given elapsed time during shutdown.doubleGet the total expected shutdown duration.booleanCheck if antisurge opens on shutdown.booleanisShutdownComplete(double elapsedTime, double currentSpeed) Check if shutdown is complete.voidsetAntisurgeOpenDelay(double delay) Set antisurge open delay.voidsetCoastdownTime(double time) Set coastdown time.voidsetDepressurizationTime(double time) Set depressurization time.voidsetEmergencyRampRate(double rate) Set emergency ramp rate.voidsetIdleRundownTime(double time) Set idle rundown time.voidsetMaximumDepressurizationRate(double rate) Set maximum depressurization rate.voidsetMinimumIdleSpeed(double speed) Set minimum idle speed.voidsetNormalRampRate(double rate) Set normal ramp rate.voidsetOpenAntisurgeOnShutdown(boolean open) Set whether antisurge opens on shutdown.voidsetRapidRampRate(double rate) Set rapid ramp rate.voidsetShutdownType(ShutdownProfile.ShutdownType type, double currentSpeed) Set shutdown type and rebuild profile.booleanshouldOpenAntisurge(double elapsedTime) Check if antisurge valve should be opened.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
profile
-
shutdownType
-
normalRampRate
private double normalRampRate -
rapidRampRate
private double rapidRampRate -
emergencyRampRate
private double emergencyRampRate -
coastdownTime
private double coastdownTime -
minimumIdleSpeed
private double minimumIdleSpeed -
idleRundownTime
private double idleRundownTime -
openAntisurgeOnShutdown
private boolean openAntisurgeOnShutdown -
antisurgeOpenDelay
private double antisurgeOpenDelay -
depressurizationTime
private double depressurizationTime -
maximumDepressurizationRate
private double maximumDepressurizationRate
-
-
Constructor Details
-
ShutdownProfile
public ShutdownProfile()Default constructor creating a normal shutdown profile. -
ShutdownProfile
Constructor with shutdown type.- Parameters:
type- the shutdown typecurrentSpeed- current operating speed in RPM
-
-
Method Details
-
createProfile
Create profile based on shutdown type.- Parameters:
type- shutdown typecurrentSpeed- current speed in RPM
-
createNormalProfile
private void createNormalProfile(double currentSpeed) Create normal shutdown profile.- Parameters:
currentSpeed- current speed in RPM
-
createRapidProfile
private void createRapidProfile(double currentSpeed) Create rapid shutdown profile.- Parameters:
currentSpeed- current speed in RPM
-
createEmergencyProfile
private void createEmergencyProfile(double currentSpeed) Create emergency shutdown profile.- Parameters:
currentSpeed- current speed in RPM
-
createCoastdownProfile
private void createCoastdownProfile(double currentSpeed) Create coastdown profile (natural deceleration).- Parameters:
currentSpeed- current speed in RPM
-
getTargetSpeedAtTime
public double getTargetSpeedAtTime(double elapsedTime, double initialSpeed) Get the target speed at a given elapsed time during shutdown.- Parameters:
elapsedTime- time since shutdown began in secondsinitialSpeed- the speed when shutdown started in RPM- Returns:
- target speed in RPM
-
getTotalDuration
public double getTotalDuration()Get the total expected shutdown duration.- Returns:
- duration in seconds
-
isShutdownComplete
public boolean isShutdownComplete(double elapsedTime, double currentSpeed) Check if shutdown is complete.- Parameters:
elapsedTime- time since shutdown began in secondscurrentSpeed- current actual speed in RPM- Returns:
- true if shutdown is complete
-
getCurrentPhase
Get the current phase description.- Parameters:
elapsedTime- time since shutdown began in seconds- Returns:
- phase description string
-
shouldOpenAntisurge
public boolean shouldOpenAntisurge(double elapsedTime) Check if antisurge valve should be opened.- Parameters:
elapsedTime- time since shutdown began in seconds- Returns:
- true if antisurge should be open
-
getProfilePoints
Get the profile points.- Returns:
- list of profile points
-
getShutdownType
-
setShutdownType
Set shutdown type and rebuild profile.- Parameters:
type- shutdown typecurrentSpeed- current operating speed in RPM
-
getNormalRampRate
public double getNormalRampRate()Get normal ramp rate.- Returns:
- rate in RPM/s
-
setNormalRampRate
public void setNormalRampRate(double rate) Set normal ramp rate.- Parameters:
rate- rate in RPM/s
-
getRapidRampRate
public double getRapidRampRate()Get rapid ramp rate.- Returns:
- rate in RPM/s
-
setRapidRampRate
public void setRapidRampRate(double rate) Set rapid ramp rate.- Parameters:
rate- rate in RPM/s
-
getEmergencyRampRate
public double getEmergencyRampRate()Get emergency ramp rate.- Returns:
- rate in RPM/s
-
setEmergencyRampRate
public void setEmergencyRampRate(double rate) Set emergency ramp rate.- Parameters:
rate- rate in RPM/s
-
getCoastdownTime
public double getCoastdownTime()Get coastdown time.- Returns:
- time in seconds
-
setCoastdownTime
public void setCoastdownTime(double time) Set coastdown time.- Parameters:
time- time in seconds
-
getMinimumIdleSpeed
public double getMinimumIdleSpeed()Get minimum idle speed.- Returns:
- speed in RPM
-
setMinimumIdleSpeed
public void setMinimumIdleSpeed(double speed) Set minimum idle speed.- Parameters:
speed- speed in RPM
-
getIdleRundownTime
public double getIdleRundownTime()Get idle rundown time.- Returns:
- time in seconds
-
setIdleRundownTime
public void setIdleRundownTime(double time) Set idle rundown time.- Parameters:
time- time in seconds
-
isOpenAntisurgeOnShutdown
public boolean isOpenAntisurgeOnShutdown()Check if antisurge opens on shutdown.- Returns:
- true if enabled
-
setOpenAntisurgeOnShutdown
public void setOpenAntisurgeOnShutdown(boolean open) Set whether antisurge opens on shutdown.- Parameters:
open- true to open on shutdown
-
getAntisurgeOpenDelay
public double getAntisurgeOpenDelay()Get antisurge open delay.- Returns:
- delay in seconds
-
setAntisurgeOpenDelay
public void setAntisurgeOpenDelay(double delay) Set antisurge open delay.- Parameters:
delay- delay in seconds
-
getDepressurizationTime
public double getDepressurizationTime()Get depressurization time.- Returns:
- time in seconds
-
setDepressurizationTime
public void setDepressurizationTime(double time) Set depressurization time.- Parameters:
time- time in seconds
-
getMaximumDepressurizationRate
public double getMaximumDepressurizationRate()Get maximum depressurization rate.- Returns:
- rate in bar/min
-
setMaximumDepressurizationRate
public void setMaximumDepressurizationRate(double rate) Set maximum depressurization rate.- Parameters:
rate- rate in bar/min
-