Class ShutdownProfile

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

public class ShutdownProfile extends Object implements 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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • profile

      private final List<ShutdownProfile.ProfilePoint> profile
    • shutdownType

      private ShutdownProfile.ShutdownType 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

      public ShutdownProfile(ShutdownProfile.ShutdownType type, double currentSpeed)
      Constructor with shutdown type.
      Parameters:
      type - the shutdown type
      currentSpeed - current operating speed in RPM
  • Method Details

    • createProfile

      private void createProfile(ShutdownProfile.ShutdownType type, double currentSpeed)
      Create profile based on shutdown type.
      Parameters:
      type - shutdown type
      currentSpeed - 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 seconds
      initialSpeed - 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 seconds
      currentSpeed - current actual speed in RPM
      Returns:
      true if shutdown is complete
    • getCurrentPhase

      public String getCurrentPhase(double elapsedTime)
      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

      public List<ShutdownProfile.ProfilePoint> getProfilePoints()
      Get the profile points.
      Returns:
      list of profile points
    • getShutdownType

      public ShutdownProfile.ShutdownType getShutdownType()
      Get the shutdown type.
      Returns:
      shutdown type
    • setShutdownType

      public void setShutdownType(ShutdownProfile.ShutdownType type, double currentSpeed)
      Set shutdown type and rebuild profile.
      Parameters:
      type - shutdown type
      currentSpeed - 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