Class StartupProfile
java.lang.Object
neqsim.process.equipment.compressor.StartupProfile
- All Implemented Interfaces:
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classInner class representing a point in the startup profile. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate final List<StartupProfile.ProfilePoint> private booleanprivate static final longprivate double -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor creating a standard startup profile.StartupProfile(double minimumIdleSpeed) Constructor with minimum idle speed. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddProfilePoint(double time, double targetSpeed, double holdDuration, String checkDescription) Add a custom profile point.voidClear the profile and add custom points.private voidCreate a default startup profile.static StartupProfilecreateFastProfile(double finalSpeed) Create a fast startup profile (for emergency restarts).static StartupProfilecreateSlowProfile(double finalSpeed, double minimumIdle) Create a slow startup profile (for cold starts).doubleGet antisurge opening duration.getCurrentPhase(double elapsedTime) Get the current phase description.doubleGet idle hold time.doubleGet maximum vibration limit.doubleGet minimum idle speed.doubleGet minimum lube oil temperature.doubleGet minimum oil pressure requirement.doubleGet normal ramp rate.Get the profile points.doublegetTargetSpeedAtTime(double elapsedTime, double finalTargetSpeed) Get the target speed at a given elapsed time during startup.doublegetTotalDuration(double finalTargetSpeed) Get the total expected startup duration.doubleGet warmup ramp rate.booleanCheck if antisurge must be open before start.booleanisStartupComplete(double elapsedTime, double currentSpeed, double targetSpeed, double tolerance) Check if startup is complete at the given time.voidsetAntisurgeOpeningDuration(double duration) Set antisurge opening duration.voidsetIdleHoldTime(double time) Set idle hold time.voidsetMaximumVibration(double vibration) Set maximum vibration limit.voidsetMinimumIdleSpeed(double speed) Set minimum idle speed.voidsetMinimumLubeOilTemperature(double temperature) Set minimum lube oil temperature.voidsetMinimumOilPressure(double pressure) Set minimum oil pressure requirement.voidsetNormalRampRate(double rate) Set normal ramp rate.voidsetRequireAntisurgeOpen(boolean required) Set whether antisurge must be open.voidsetWarmupRampRate(double rate) Set warmup ramp rate.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
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 secondstargetSpeed- target speed in RPM (-1 means ramp to final)holdDuration- time to hold at this speed in secondscheckDescription- 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 secondsfinalTargetSpeed- 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 secondscurrentSpeed- current actual speed in RPMtargetSpeed- final target speed in RPMtolerance- speed tolerance in RPM- Returns:
- true if startup is complete
-
getCurrentPhase
Get the current phase description.- Parameters:
elapsedTime- time since startup began in seconds- Returns:
- phase description string
-
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
Create a fast startup profile (for emergency restarts).- Parameters:
finalSpeed- target operating speed in RPM- Returns:
- a fast startup profile
-
createSlowProfile
Create a slow startup profile (for cold starts).- Parameters:
finalSpeed- target operating speed in RPMminimumIdle- minimum idle speed in RPM- Returns:
- a slow startup profile
-