Class PhysicsBasedRiskMonitor
java.lang.Object
neqsim.process.safety.risk.realtime.PhysicsBasedRiskMonitor
- All Implemented Interfaces:
Serializable
Physics-based risk monitor that directly integrates with NeqSim process simulation.
This class provides risk assessment that is directly derived from the actual process physics:
- Capacity utilization from NeqSim equipment (compressor speed, separator loading, etc.)
- Bottleneck detection using ProcessSystem.findBottleneck()
- Temperature/pressure deviations from equipment operating conditions
- Equipment health based on physics-based condition monitoring
Unlike generic risk frameworks, this class leverages NeqSim's built-in physics calculations to provide more accurate and meaningful risk assessments.
Example usage:
ProcessSystem process = new ProcessSystem();
// ... add equipment and configure process ...
process.run();
PhysicsBasedRiskMonitor monitor = new PhysicsBasedRiskMonitor(process);
monitor.setBaseFailureRates("Compressor1", 0.0001); // failures/hour
PhysicsBasedRiskAssessment assessment = monitor.assess();
System.out.println("Overall risk score: " + assessment.getOverallRiskScore());
System.out.println("Bottleneck: " + assessment.getBottleneckEquipment());
System.out.println("Highest risk equipment: " + assessment.getHighestRiskEquipment());
- Version:
- 1.0
- Author:
- NeqSim Development Team
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRisk assessment result derived from physics-based calculations. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Map<String, ProcessEquipmentMonitor> private Instantprivate ProcessSystemprivate static final long -
Constructor Summary
ConstructorsConstructorDescriptionPhysicsBasedRiskMonitor(ProcessSystem processSystem) Creates a physics-based risk monitor for a process system. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidAnalyzes system bottleneck using NeqSim's physics-based bottleneck detection.private voidAnalyzes capacity utilizations from NeqSim equipment.assess()Performs a physics-based risk assessment.private voidCalculates overall system risk score.private voidCalculates physics-weighted risk scores for each equipment.getEquipmentMonitor(String equipmentName) Gets equipment monitor for specific equipment.Gets all equipment monitors.Gets last assessment time.Gets the process system being monitored.private voidInitializes equipment monitors from the process system.voidsetBaseFailureRate(String equipmentName, double failureRate) Sets base failure rate for specific equipment.voidsetDesignPressureRange(String equipmentName, double minPressure, double maxPressure) Sets design limits for equipment pressure monitoring.voidsetDesignTemperatureRange(String equipmentName, double minTemp, double maxTemp) Sets design limits for equipment temperature monitoring.private voidUpdates all equipment monitors from current process state.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
processSystem
-
equipmentMonitors
-
baseFailureRates
-
lastAssessment
-
-
Constructor Details
-
PhysicsBasedRiskMonitor
Creates a physics-based risk monitor for a process system.- Parameters:
processSystem- NeqSim process system to monitor
-
-
Method Details
-
initializeMonitors
private void initializeMonitors()Initializes equipment monitors from the process system. -
setBaseFailureRate
Sets base failure rate for specific equipment.- Parameters:
equipmentName- equipment namefailureRate- failure rate in failures per hour
-
setDesignTemperatureRange
Sets design limits for equipment temperature monitoring.- Parameters:
equipmentName- equipment nameminTemp- minimum design temperature in KelvinmaxTemp- maximum design temperature in Kelvin
-
setDesignPressureRange
Sets design limits for equipment pressure monitoring.- Parameters:
equipmentName- equipment nameminPressure- minimum design pressure in baramaxPressure- maximum design pressure in bara
-
assess
Performs a physics-based risk assessment.This method:
- Reads current T, P, and capacity utilization from all equipment
- Uses ProcessSystem.findBottleneck() to identify limiting equipment
- Calculates health indices based on physics deviations
- Computes risk scores weighted by utilization and consequence
- Returns:
- physics-based risk assessment
-
updateEquipmentMonitors
private void updateEquipmentMonitors()Updates all equipment monitors from current process state. -
analyzeBottleneck
Analyzes system bottleneck using NeqSim's physics-based bottleneck detection.- Parameters:
assessment- assessment to populate
-
analyzeCapacityUtilizations
private void analyzeCapacityUtilizations(PhysicsBasedRiskMonitor.PhysicsBasedRiskAssessment assessment) Analyzes capacity utilizations from NeqSim equipment.- Parameters:
assessment- assessment to populate
-
calculateRiskScores
Calculates physics-weighted risk scores for each equipment.- Parameters:
assessment- assessment to populate
-
calculateOverallRisk
Calculates overall system risk score.- Parameters:
assessment- assessment to populate
-
getProcessSystem
Gets the process system being monitored.- Returns:
- process system
-
getEquipmentMonitor
Gets equipment monitor for specific equipment.- Parameters:
equipmentName- equipment name- Returns:
- equipment monitor or null
-
getEquipmentMonitors
Gets all equipment monitors.- Returns:
- map of equipment name to monitor
-
getLastAssessment
-