Package neqsim.process.util.reconciliation
package neqsim.process.util.reconciliation
Data reconciliation and steady-state detection for online process optimization.
This package provides two complementary capabilities for online process optimization:
1. Steady-State Detection (SSD) — monitors process variables over a sliding window and determines when the process has reached steady state using the R-statistic (ratio of filtered to unfiltered variance), optional slope and std.dev tests. Only steady-state data should be fed into reconciliation or model calibration.
2. Data Reconciliation — weighted least squares (WLS) adjustment of plant measurements so that mass (and energy) balance constraints are exactly satisfied, with gross error detection via normalized residual tests and iterative elimination of faulty sensors.
Key classes:
SteadyStateDetector- Monitors variables and evaluates steady-state status using R-statistic, slope, and std.dev criteriaSteadyStateVariable- A monitored variable with sliding window and computed statisticsSteadyStateResult- Result of SSD evaluation with per-variable diagnosticsDataReconciliationEngine- WLS solver with gross error detection and eliminationReconciliationVariable- A single measured variable with value, uncertainty, and reconciled resultReconciliationResult- Complete reconciliation result with statistics, JSON export, and text report
Typical online workflow:
// 1. Monitor for steady state
SteadyStateDetector ssd = new SteadyStateDetector(30);
ssd.addVariable(new SteadyStateVariable("feed", 30).setUncertainty(20.0));
ssd.addVariable(new SteadyStateVariable("gas", 30).setUncertainty(15.0));
ssd.addVariable(new SteadyStateVariable("liquid", 30).setUncertainty(10.0));
// 2. Push readings and check
ssd.updateVariable("feed", 1000.5);
ssd.updateVariable("gas", 600.2);
ssd.updateVariable("liquid", 399.1);
SteadyStateResult ssResult = ssd.evaluate();
// 3. When steady, reconcile
if (ssResult.isAtSteadyState()) {
DataReconciliationEngine engine = ssd.createReconciliationEngine();
engine.addMassBalanceConstraint("Sep", new String[] {"feed"}, new String[] {"gas", "liquid"});
ReconciliationResult recResult = engine.reconcile();
System.out.println(recResult.toReport());
}
- Version:
- 1.0
- Author:
- Process Optimization Team
- See Also:
-
ClassesClassDescriptionData reconciliation engine using weighted least squares (WLS) with linear constraints.Result of a data reconciliation run.A measured process variable participating in data reconciliation.Steady-State Detector (SSD) for process variables.Result of a steady-state detection evaluation.A monitored process variable for steady-state detection.