Class StartupProfile

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

public class StartupProfile extends Object implements Serializable
Defines a startup profile for compressor startup sequences.

This class defines the sequence of speed/time points that define how a compressor should be started. It includes safety checks and holds during the startup process.

Version:
1.0
Author:
esol
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • profile

      private final List<StartupProfile.ProfilePoint> profile
    • minimumIdleSpeed

      private double minimumIdleSpeed
    • idleHoldTime

      private double idleHoldTime
    • warmupRampRate

      private double warmupRampRate
    • normalRampRate

      private double normalRampRate
    • minimumOilPressure

      private double minimumOilPressure
    • minimumLubeOilTemperature

      private double minimumLubeOilTemperature
    • maximumVibration

      private double maximumVibration
    • requireAntisurgeOpen

      private boolean requireAntisurgeOpen
    • antisurgeOpeningDuration

      private double antisurgeOpeningDuration
  • Constructor Details

    • StartupProfile

      public StartupProfile()
      Default constructor creating a standard startup profile.
    • StartupProfile

      public StartupProfile(double minimumIdleSpeed)
      Constructor with minimum idle speed.
      Parameters:
      minimumIdleSpeed - minimum idle speed in RPM
  • Method Details

    • createDefaultProfile

      private void createDefaultProfile()
      Create a default startup profile.
    • addProfilePoint

      public void addProfilePoint(double time, double targetSpeed, double holdDuration, String checkDescription)
      Add a custom profile point.
      Parameters:
      time - elapsed time in seconds
      targetSpeed - target speed in RPM (-1 means ramp to final)
      holdDuration - time to hold at this speed in seconds
      checkDescription - description of checks
    • clearProfile

      public void clearProfile()
      Clear the profile and add custom points.
    • getTargetSpeedAtTime

      public double getTargetSpeedAtTime(double elapsedTime, double finalTargetSpeed)
      Get the target speed at a given elapsed time during startup.
      Parameters:
      elapsedTime - time since startup began in seconds
      finalTargetSpeed - the final target operating speed in RPM
      Returns:
      target speed in RPM
    • getTotalDuration

      public double getTotalDuration(double finalTargetSpeed)
      Get the total expected startup duration.
      Parameters:
      finalTargetSpeed - final target speed in RPM
      Returns:
      total duration in seconds
    • isStartupComplete

      public boolean isStartupComplete(double elapsedTime, double currentSpeed, double targetSpeed, double tolerance)
      Check if startup is complete at the given time.
      Parameters:
      elapsedTime - time since startup began in seconds
      currentSpeed - current actual speed in RPM
      targetSpeed - final target speed in RPM
      tolerance - speed tolerance in RPM
      Returns:
      true if startup is complete
    • getCurrentPhase

      public String getCurrentPhase(double elapsedTime)
      Get the current phase description.
      Parameters:
      elapsedTime - time since startup began in seconds
      Returns:
      phase description string
    • getProfilePoints

      public List<StartupProfile.ProfilePoint> getProfilePoints()
      Get the profile points.
      Returns:
      list of profile points
    • 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
    • getIdleHoldTime

      public double getIdleHoldTime()
      Get idle hold time.
      Returns:
      time in seconds
    • setIdleHoldTime

      public void setIdleHoldTime(double time)
      Set idle hold time.
      Parameters:
      time - time in seconds
    • getWarmupRampRate

      public double getWarmupRampRate()
      Get warmup ramp rate.
      Returns:
      rate in RPM/s
    • setWarmupRampRate

      public void setWarmupRampRate(double rate)
      Set warmup ramp rate.
      Parameters:
      rate - rate in RPM/s
    • 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
    • getMinimumOilPressure

      public double getMinimumOilPressure()
      Get minimum oil pressure requirement.
      Returns:
      pressure in bara
    • setMinimumOilPressure

      public void setMinimumOilPressure(double pressure)
      Set minimum oil pressure requirement.
      Parameters:
      pressure - pressure in bara
    • getMinimumLubeOilTemperature

      public double getMinimumLubeOilTemperature()
      Get minimum lube oil temperature.
      Returns:
      temperature in K
    • setMinimumLubeOilTemperature

      public void setMinimumLubeOilTemperature(double temperature)
      Set minimum lube oil temperature.
      Parameters:
      temperature - temperature in K
    • getMaximumVibration

      public double getMaximumVibration()
      Get maximum vibration limit.
      Returns:
      vibration in mm/s
    • setMaximumVibration

      public void setMaximumVibration(double vibration)
      Set maximum vibration limit.
      Parameters:
      vibration - vibration in mm/s
    • isRequireAntisurgeOpen

      public boolean isRequireAntisurgeOpen()
      Check if antisurge must be open before start.
      Returns:
      true if required
    • setRequireAntisurgeOpen

      public void setRequireAntisurgeOpen(boolean required)
      Set whether antisurge must be open.
      Parameters:
      required - true if required
    • getAntisurgeOpeningDuration

      public double getAntisurgeOpeningDuration()
      Get antisurge opening duration.
      Returns:
      duration in seconds
    • setAntisurgeOpeningDuration

      public void setAntisurgeOpeningDuration(double duration)
      Set antisurge opening duration.
      Parameters:
      duration - duration in seconds
    • createFastProfile

      public static StartupProfile createFastProfile(double finalSpeed)
      Create a fast startup profile (for emergency restarts).
      Parameters:
      finalSpeed - target operating speed in RPM
      Returns:
      a fast startup profile
    • createSlowProfile

      public static StartupProfile createSlowProfile(double finalSpeed, double minimumIdle)
      Create a slow startup profile (for cold starts).
      Parameters:
      finalSpeed - target operating speed in RPM
      minimumIdle - minimum idle speed in RPM
      Returns:
      a slow startup profile