Class ProcessEquipmentMonitor
java.lang.Object
neqsim.process.safety.risk.condition.ProcessEquipmentMonitor
- All Implemented Interfaces:
Serializable
Physics-based equipment monitor that directly integrates with NeqSim process equipment.
This class connects reliability monitoring directly to NeqSim's process simulation physics, automatically extracting condition indicators (temperature, pressure, capacity utilization) from the equipment's actual process state.
Key features:
- Automatic temperature/pressure monitoring from equipment
- Capacity utilization from CapacityConstrainedEquipment interface
- Health index calculation based on physics deviations
- Failure rate adjustment based on operating conditions
Example usage:
ProcessEquipmentMonitor monitor = new ProcessEquipmentMonitor(separator); monitor.setDesignTemperatureRange(273.15, 373.15); // Design T range in K monitor.setDesignPressureRange(1.0, 50.0); // Design P range in bara monitor.setBaseFailureRate(0.0001); // per hour // After process simulation runs: monitor.update(); // Reads T, P, capacity from equipment double failureRate = monitor.getAdjustedFailureRate(); double health = monitor.getHealthIndex();
- Version:
- 1.0
- Author:
- NeqSim Development Team
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA recorded reading from the monitor. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate doubleprivate Stringprivate doubleprivate doubleprivate doubleprivate doubleprivate ProcessEquipmentInterfaceprivate Stringprivate doubleprivate Instantprivate doubleprivate doubleprivate doubleprivate intprivate doubleprivate doubleprivate doubleprivate static final longprivate double -
Constructor Summary
ConstructorsConstructorDescriptionProcessEquipmentMonitor(String equipmentName) Creates a monitor with name only (for testing without equipment).ProcessEquipmentMonitor(ProcessEquipmentInterface equipment) Creates a monitor for the specified process equipment. -
Method Summary
Modifier and TypeMethodDescriptionprivate doubleCalculates health contribution from capacity utilization.private doubleCalculates health contribution from pressure.private doubleCalculates health contribution from temperature.doubleGets adjusted failure rate (based on current conditions).doubleGets base failure rate.Gets the bottleneck constraint name.doubleGets current capacity utilization.doubleGets current pressure reading.doubleGets current temperature reading.Gets the monitored equipment.Gets equipment name.doublegetFailureProbability(double hours) Gets probability of failure within specified time period.doubleGets current health index.Gets monitoring history.Gets last update time.doubleGets estimated remaining useful life based on health trend.private voidRecalculates health index and adjusted failure rate based on current readings.voidsetBaseFailureRate(double rate) Sets base failure rate.voidsetCurrentValues(double temperature, double pressure, double capacityUtilization) Manually sets current values (for testing or external data integration).voidsetDesignPressureRange(double min, double max) Sets design pressure range.voidsetDesignTemperatureRange(double min, double max) Sets design temperature range.voidsetEquipment(ProcessEquipmentInterface equipment) Sets the monitored equipment.voidsetMaxCapacityUtilization(double maxUtilization) Sets maximum capacity utilization threshold.voidsetWeights(double tempWeight, double pressWeight, double capWeight) Sets indicator weights for health calculation.toMap()Converts current state to map for JSON serialization.voidupdate()Updates monitor by reading current values from equipment.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
equipment
-
equipmentName
-
minDesignTemperature
private double minDesignTemperature -
maxDesignTemperature
private double maxDesignTemperature -
minDesignPressure
private double minDesignPressure -
maxDesignPressure
private double maxDesignPressure -
maxCapacityUtilization
private double maxCapacityUtilization -
temperatureWeight
private double temperatureWeight -
pressureWeight
private double pressureWeight -
capacityWeight
private double capacityWeight -
baseFailureRate
private double baseFailureRate -
adjustedFailureRate
private double adjustedFailureRate -
healthIndex
private double healthIndex -
currentTemperature
private double currentTemperature -
currentPressure
private double currentPressure -
currentCapacityUtilization
private double currentCapacityUtilization -
bottleneckConstraint
-
history
-
maxHistorySize
private int maxHistorySize -
lastUpdated
-
-
Constructor Details
-
ProcessEquipmentMonitor
Creates a monitor for the specified process equipment.- Parameters:
equipment- NeqSim process equipment to monitor
-
ProcessEquipmentMonitor
Creates a monitor with name only (for testing without equipment).- Parameters:
equipmentName- equipment name
-
-
Method Details
-
update
public void update()Updates monitor by reading current values from equipment.This method reads temperature, pressure, and capacity utilization directly from the NeqSim equipment and recalculates health index and failure rate.
-
setCurrentValues
public void setCurrentValues(double temperature, double pressure, double capacityUtilization) Manually sets current values (for testing or external data integration).- Parameters:
temperature- temperature in Kelvinpressure- pressure in baracapacityUtilization- capacity utilization 0-1
-
recalculateHealth
private void recalculateHealth()Recalculates health index and adjusted failure rate based on current readings. -
calculateTemperatureHealth
private double calculateTemperatureHealth()Calculates health contribution from temperature.- Returns:
- health value 0-1 (1 = optimal)
-
calculatePressureHealth
private double calculatePressureHealth()Calculates health contribution from pressure.- Returns:
- health value 0-1 (1 = optimal)
-
calculateCapacityHealth
private double calculateCapacityHealth()Calculates health contribution from capacity utilization.- Returns:
- health value 0-1 (1 = optimal)
-
getFailureProbability
public double getFailureProbability(double hours) Gets probability of failure within specified time period.- Parameters:
hours- time period in hours- Returns:
- probability of failure (0-1)
-
getRemainingUsefulLife
public double getRemainingUsefulLife()Gets estimated remaining useful life based on health trend.- Returns:
- remaining useful life in hours, or Double.POSITIVE_INFINITY if not degrading
-
getEquipment
Gets the monitored equipment.- Returns:
- process equipment
-
setEquipment
Sets the monitored equipment.- Parameters:
equipment- process equipment to monitor
-
getEquipmentName
-
setDesignTemperatureRange
public void setDesignTemperatureRange(double min, double max) Sets design temperature range.- Parameters:
min- minimum design temperature in Kelvinmax- maximum design temperature in Kelvin
-
setDesignPressureRange
public void setDesignPressureRange(double min, double max) Sets design pressure range.- Parameters:
min- minimum design pressure in baramax- maximum design pressure in bara
-
setMaxCapacityUtilization
public void setMaxCapacityUtilization(double maxUtilization) Sets maximum capacity utilization threshold.- Parameters:
maxUtilization- maximum utilization (1.0 = 100%)
-
setBaseFailureRate
public void setBaseFailureRate(double rate) Sets base failure rate.- Parameters:
rate- base failure rate in failures per hour
-
getBaseFailureRate
public double getBaseFailureRate()Gets base failure rate.- Returns:
- base failure rate in failures per hour
-
getAdjustedFailureRate
public double getAdjustedFailureRate()Gets adjusted failure rate (based on current conditions).- Returns:
- adjusted failure rate in failures per hour
-
getHealthIndex
public double getHealthIndex()Gets current health index.- Returns:
- health index 0-1 (1 = optimal)
-
getCurrentTemperature
public double getCurrentTemperature()Gets current temperature reading.- Returns:
- temperature in Kelvin
-
getCurrentPressure
public double getCurrentPressure()Gets current pressure reading.- Returns:
- pressure in bara
-
getCurrentCapacityUtilization
public double getCurrentCapacityUtilization()Gets current capacity utilization.- Returns:
- capacity utilization 0-1
-
getBottleneckConstraint
Gets the bottleneck constraint name.- Returns:
- bottleneck constraint name or empty string
-
getLastUpdated
-
getHistory
Gets monitoring history.- Returns:
- list of monitor readings
-
setWeights
public void setWeights(double tempWeight, double pressWeight, double capWeight) Sets indicator weights for health calculation.- Parameters:
tempWeight- temperature weightpressWeight- pressure weightcapWeight- capacity utilization weight
-
toMap
-