Class PhysicsBasedRiskMonitor

java.lang.Object
neqsim.process.safety.risk.realtime.PhysicsBasedRiskMonitor
All Implemented Interfaces:
Serializable

public class PhysicsBasedRiskMonitor extends Object implements 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:
  • Field Details

  • Constructor Details

    • PhysicsBasedRiskMonitor

      public PhysicsBasedRiskMonitor(ProcessSystem processSystem)
      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

      public void setBaseFailureRate(String equipmentName, double failureRate)
      Sets base failure rate for specific equipment.
      Parameters:
      equipmentName - equipment name
      failureRate - failure rate in failures per hour
    • setDesignTemperatureRange

      public void setDesignTemperatureRange(String equipmentName, double minTemp, double maxTemp)
      Sets design limits for equipment temperature monitoring.
      Parameters:
      equipmentName - equipment name
      minTemp - minimum design temperature in Kelvin
      maxTemp - maximum design temperature in Kelvin
    • setDesignPressureRange

      public void setDesignPressureRange(String equipmentName, double minPressure, double maxPressure)
      Sets design limits for equipment pressure monitoring.
      Parameters:
      equipmentName - equipment name
      minPressure - minimum design pressure in bara
      maxPressure - maximum design pressure in bara
    • assess

      Performs a physics-based risk assessment.

      This method:

      1. Reads current T, P, and capacity utilization from all equipment
      2. Uses ProcessSystem.findBottleneck() to identify limiting equipment
      3. Calculates health indices based on physics deviations
      4. 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

      private void analyzeBottleneck(PhysicsBasedRiskMonitor.PhysicsBasedRiskAssessment assessment)
      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

      private void calculateRiskScores(PhysicsBasedRiskMonitor.PhysicsBasedRiskAssessment assessment)
      Calculates physics-weighted risk scores for each equipment.
      Parameters:
      assessment - assessment to populate
    • calculateOverallRisk

      private void calculateOverallRisk(PhysicsBasedRiskMonitor.PhysicsBasedRiskAssessment assessment)
      Calculates overall system risk score.
      Parameters:
      assessment - assessment to populate
    • getProcessSystem

      public ProcessSystem getProcessSystem()
      Gets the process system being monitored.
      Returns:
      process system
    • getEquipmentMonitor

      public ProcessEquipmentMonitor getEquipmentMonitor(String equipmentName)
      Gets equipment monitor for specific equipment.
      Parameters:
      equipmentName - equipment name
      Returns:
      equipment monitor or null
    • getEquipmentMonitors

      public Map<String, ProcessEquipmentMonitor> getEquipmentMonitors()
      Gets all equipment monitors.
      Returns:
      map of equipment name to monitor
    • getLastAssessment

      public Instant getLastAssessment()
      Gets last assessment time.
      Returns:
      last assessment instant