Class ProcessEquipmentMonitor

java.lang.Object
neqsim.process.safety.risk.condition.ProcessEquipmentMonitor
All Implemented Interfaces:
Serializable

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

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • equipment

      private ProcessEquipmentInterface equipment
    • equipmentName

      private String 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

      private String bottleneckConstraint
    • history

    • maxHistorySize

      private int maxHistorySize
    • lastUpdated

      private Instant lastUpdated
  • Constructor Details

    • ProcessEquipmentMonitor

      public ProcessEquipmentMonitor(ProcessEquipmentInterface equipment)
      Creates a monitor for the specified process equipment.
      Parameters:
      equipment - NeqSim process equipment to monitor
    • ProcessEquipmentMonitor

      public ProcessEquipmentMonitor(String equipmentName)
      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 Kelvin
      pressure - pressure in bara
      capacityUtilization - 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

      public ProcessEquipmentInterface getEquipment()
      Gets the monitored equipment.
      Returns:
      process equipment
    • setEquipment

      public void setEquipment(ProcessEquipmentInterface equipment)
      Sets the monitored equipment.
      Parameters:
      equipment - process equipment to monitor
    • getEquipmentName

      public String getEquipmentName()
      Gets equipment name.
      Returns:
      equipment name
    • setDesignTemperatureRange

      public void setDesignTemperatureRange(double min, double max)
      Sets design temperature range.
      Parameters:
      min - minimum design temperature in Kelvin
      max - maximum design temperature in Kelvin
    • setDesignPressureRange

      public void setDesignPressureRange(double min, double max)
      Sets design pressure range.
      Parameters:
      min - minimum design pressure in bara
      max - 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

      public String getBottleneckConstraint()
      Gets the bottleneck constraint name.
      Returns:
      bottleneck constraint name or empty string
    • getLastUpdated

      public Instant getLastUpdated()
      Gets last update time.
      Returns:
      last update instant
    • 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 weight
      pressWeight - pressure weight
      capWeight - capacity utilization weight
    • toMap

      public Map<String,Object> toMap()
      Converts current state to map for JSON serialization.
      Returns:
      map representation