Class OnlineCalibrator

java.lang.Object
neqsim.process.calibration.OnlineCalibrator
All Implemented Interfaces:
Serializable

public class OnlineCalibrator extends Object implements Serializable
Online calibrator for continuously updating model parameters based on real-time data.

Designed for integration with AI platforms that require auto-calibrating physics models. Supports incremental updates for real-time applications and full recalibration for periodic maintenance.

Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • processSystem

      private final ProcessSystem processSystem
    • tunableParameters

      private final List<String> tunableParameters
    • calibrationHistory

      private final List<OnlineCalibrator.DataPoint> calibrationHistory
    • deviationThreshold

      private double deviationThreshold
    • maxHistorySize

      private int maxHistorySize
    • lastCalibration

      private Instant lastCalibration
    • lastQuality

      private CalibrationQuality lastQuality
  • Constructor Details

    • OnlineCalibrator

      public OnlineCalibrator(ProcessSystem processSystem)
      Creates an online calibrator for a process system.
      Parameters:
      processSystem - the process system to calibrate
  • Method Details

    • setTunableParameters

      public void setTunableParameters(List<String> params)
      Configures which parameters can be tuned online.
      Parameters:
      params - list of tunable parameter names
    • setDeviationThreshold

      public void setDeviationThreshold(double threshold)
      Sets the deviation threshold that triggers recalibration.
      Parameters:
      threshold - relative deviation threshold (e.g., 0.1 for 10%)
    • setMaxHistorySize

      public void setMaxHistorySize(int size)
      Sets the maximum history size for calibration data.
      Parameters:
      size - maximum number of data points to retain
    • recordDataPoint

      public boolean recordDataPoint(Map<String,Double> measurements, Map<String,Double> predictions)
      Records a data point and checks if calibration is needed.
      Parameters:
      measurements - actual measured values
      predictions - model predicted values
      Returns:
      true if deviation exceeds threshold
    • recordDataPoint

      public boolean recordDataPoint(Map<String,Double> measurements, Map<String,Double> predictions, Map<String,Double> conditions)
      Records a data point with operating conditions.
      Parameters:
      measurements - actual measured values
      predictions - model predicted values
      conditions - operating conditions (P, T, etc.)
      Returns:
      true if deviation exceeds threshold
    • checkDeviation

      private boolean checkDeviation(OnlineCalibrator.DataPoint point)
      Checks if any variable exceeds the deviation threshold.
      Parameters:
      point - the data point to check
      Returns:
      true if deviation exceeds threshold, false otherwise
    • incrementalUpdate

      public CalibrationResult incrementalUpdate(Map<String,Double> measurements, Map<String,Double> predictions)
      Performs incremental calibration update (fast, for real-time).
      Parameters:
      measurements - current measured values
      predictions - current predicted values
      Returns:
      calibration result
    • fullRecalibration

      public CalibrationResult fullRecalibration()
      Performs full recalibration using historical data.
      Returns:
      calibration result
    • calculateQuality

      private CalibrationQuality calculateQuality(int samples, double rmse)
      Calculates calibration quality metrics.
      Parameters:
      samples - the number of samples used
      rmse - the root mean square error
      Returns:
      the calibration quality assessment
    • getQualityMetrics

      public CalibrationQuality getQualityMetrics()
      Gets the calibration quality metrics.
      Returns:
      calibration quality or null if never calibrated
    • getLastCalibrationTime

      public Instant getLastCalibrationTime()
      Gets the last calibration timestamp.
      Returns:
      last calibration time or null
    • getHistorySize

      public int getHistorySize()
      Gets the calibration history size.
      Returns:
      number of data points in history
    • clearHistory

      public void clearHistory()
      Clears the calibration history.
    • exportHistory

      public List<OnlineCalibrator.DataPoint> exportHistory()
      Exports calibration history for external analysis.
      Returns:
      list of data points