Class ExpanderCapacityStrategy
java.lang.Object
neqsim.process.equipment.capacity.ExpanderCapacityStrategy
- All Implemented Interfaces:
EquipmentCapacityStrategy
Capacity strategy for expander equipment.
This strategy evaluates expander capacity based on multiple constraints including:
- Power generation (compared to design power)
- Speed limits (minimum and maximum)
- Pressure ratio limits
- Flow rate limits
- Version:
- 1.0
- Author:
- NeqSim Development Team
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleDefault design speed in RPM.static final doubleDefault maximum power ratio (fraction of design).private static final doubleDefault max pressure ratio for turboexpanders.static final doubleDefault maximum speed ratio.static final doubleDefault minimum speed ratio.private doubleprivate doubleprivate double -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.ExpanderCapacityStrategy(double maxPowerRatio, double minSpeedRatio, double maxSpeedRatio) Constructor with custom constraints. -
Method Summary
Modifier and TypeMethodDescriptiondoubleevaluateCapacity(ProcessEquipmentInterface equipment) Evaluates the current capacity utilization of the equipment.doubleevaluateMaxCapacity(ProcessEquipmentInterface equipment) Evaluates the maximum capacity of the equipment.doublegetAvailableMargin(ProcessEquipmentInterface equipment) Gets the available margin before hitting the bottleneck constraint.getBottleneckConstraint(ProcessEquipmentInterface equipment) Gets the bottleneck constraint (highest utilization).getConstraints(ProcessEquipmentInterface equipment) Gets all capacity constraints for this equipment.Class<? extends ProcessEquipmentInterface> Gets the equipment class this strategy handles.getName()Gets a descriptive name for this strategy.intGets the priority of this strategy.getViolations(ProcessEquipmentInterface equipment) Gets the list of constraint violations for this equipment.booleanisWithinHardLimits(ProcessEquipmentInterface equipment) Checks if the equipment is operating within all hard limits.booleanisWithinSoftLimits(ProcessEquipmentInterface equipment) Checks if the equipment is operating within all soft limits (design values).voidsetMaxPowerRatio(double maxPowerRatio) Sets the maximum power ratio.voidsetMaxSpeedRatio(double maxSpeedRatio) Sets the maximum speed ratio.voidsetMinSpeedRatio(double minSpeedRatio) Sets the minimum speed ratio.booleansupports(ProcessEquipmentInterface equipment) Checks if this strategy supports the given equipment.
-
Field Details
-
DEFAULT_MAX_POWER_RATIO
public static final double DEFAULT_MAX_POWER_RATIODefault maximum power ratio (fraction of design).- See Also:
-
DEFAULT_MIN_SPEED_RATIO
public static final double DEFAULT_MIN_SPEED_RATIODefault minimum speed ratio.- See Also:
-
DEFAULT_MAX_SPEED_RATIO
public static final double DEFAULT_MAX_SPEED_RATIODefault maximum speed ratio.- See Also:
-
DEFAULT_DESIGN_SPEED
private static final double DEFAULT_DESIGN_SPEEDDefault design speed in RPM.- See Also:
-
DEFAULT_MAX_PRESSURE_RATIO
private static final double DEFAULT_MAX_PRESSURE_RATIODefault max pressure ratio for turboexpanders.- See Also:
-
maxPowerRatio
private double maxPowerRatio -
minSpeedRatio
private double minSpeedRatio -
maxSpeedRatio
private double maxSpeedRatio
-
-
Constructor Details
-
ExpanderCapacityStrategy
public ExpanderCapacityStrategy()Default constructor. -
ExpanderCapacityStrategy
public ExpanderCapacityStrategy(double maxPowerRatio, double minSpeedRatio, double maxSpeedRatio) Constructor with custom constraints.- Parameters:
maxPowerRatio- maximum power ratio (e.g., 1.1 for 110% of design)minSpeedRatio- minimum speed ratiomaxSpeedRatio- maximum speed ratio
-
-
Method Details
-
supports
Checks if this strategy supports the given equipment.- Specified by:
supportsin interfaceEquipmentCapacityStrategy- Parameters:
equipment- the equipment to check- Returns:
- true if this strategy can evaluate the equipment
-
getPriority
public int getPriority()Gets the priority of this strategy.When multiple strategies support the same equipment, the one with higher priority is used. Default priority is 0. Use positive values for more specific strategies.
- Specified by:
getPriorityin interfaceEquipmentCapacityStrategy- Returns:
- the priority value (higher = more preferred)
-
getName
Gets a descriptive name for this strategy.- Specified by:
getNamein interfaceEquipmentCapacityStrategy- Returns:
- strategy name
-
getEquipmentClass
Gets the equipment class this strategy handles.- Specified by:
getEquipmentClassin interfaceEquipmentCapacityStrategy- Returns:
- the equipment class
-
evaluateCapacity
Evaluates the current capacity utilization of the equipment.Returns a value between 0 and 1+ where:
- 0.0 = no load
- 1.0 = at design capacity
- >1.0 = over capacity
- Specified by:
evaluateCapacityin interfaceEquipmentCapacityStrategy- Parameters:
equipment- the equipment to evaluate- Returns:
- capacity utilization as a fraction
-
evaluateMaxCapacity
Evaluates the maximum capacity of the equipment.Returns the maximum capacity in the equipment's natural units (e.g., flow rate, power, duty).
- Specified by:
evaluateMaxCapacityin interfaceEquipmentCapacityStrategy- Parameters:
equipment- the equipment to evaluate- Returns:
- maximum capacity
-
getConstraints
Gets all capacity constraints for this equipment.Returns a map of constraint name to constraint object. The constraints include both the current value and the design/limit values.
- Specified by:
getConstraintsin interfaceEquipmentCapacityStrategy- Parameters:
equipment- the equipment to get constraints for- Returns:
- map of constraint name to CapacityConstraint
-
getViolations
Gets the list of constraint violations for this equipment.Returns only the constraints that are currently violated (utilization > 1.0 or outside limits).
- Specified by:
getViolationsin interfaceEquipmentCapacityStrategy- Parameters:
equipment- the equipment to check- Returns:
- list of violated constraints
-
getBottleneckConstraint
Gets the bottleneck constraint (highest utilization).- Specified by:
getBottleneckConstraintin interfaceEquipmentCapacityStrategy- Parameters:
equipment- the equipment to evaluate- Returns:
- the constraint with highest utilization, or null if none
-
isWithinHardLimits
Checks if the equipment is operating within all hard limits.- Specified by:
isWithinHardLimitsin interfaceEquipmentCapacityStrategy- Parameters:
equipment- the equipment to check- Returns:
- true if no hard limits are violated
-
isWithinSoftLimits
Checks if the equipment is operating within all soft limits (design values).- Specified by:
isWithinSoftLimitsin interfaceEquipmentCapacityStrategy- Parameters:
equipment- the equipment to check- Returns:
- true if no soft limits are violated
-
getAvailableMargin
Gets the available margin before hitting the bottleneck constraint.- Specified by:
getAvailableMarginin interfaceEquipmentCapacityStrategy- Parameters:
equipment- the equipment to evaluate- Returns:
- available margin as a fraction (0.2 = 20% headroom)
-
setMaxPowerRatio
public void setMaxPowerRatio(double maxPowerRatio) Sets the maximum power ratio.- Parameters:
maxPowerRatio- the maximum power ratio
-
setMinSpeedRatio
public void setMinSpeedRatio(double minSpeedRatio) Sets the minimum speed ratio.- Parameters:
minSpeedRatio- the minimum speed ratio
-
setMaxSpeedRatio
public void setMaxSpeedRatio(double maxSpeedRatio) Sets the maximum speed ratio.- Parameters:
maxSpeedRatio- the maximum speed ratio
-