Refactor recirculation flow calculation to ensure non-negative flow rates and correct measurement position

This commit is contained in:
HorriblePerson555
2025-10-21 12:32:21 +02:00
parent 018215934e
commit 7b38c2f51a

View File

@@ -76,9 +76,11 @@ class Reactor {
const Cs = isArray(this.state.at(-1)) ? this.state.at(-1) : this.state;
const effluent = [{ topic: "Fluent", payload: { inlet: 0, F: math.sum(this.Fs), C: Cs }, timestamp: this.currentTime }];
if (this.returnPump) {
const recirculationFlow = this.returnPump.measurements.type("flow").variant("measured").position("atEquipement").getCurrentValue();
effluent[0].F -= recirculationFlow || 0;
effluent.push({ topic: "Fluent", payload: { inlet: 1, F: recirculationFlow, C: Cs }, timestamp: this.currentTime });
const recirculationFlow = this.returnPump.measurements.type("flow").variant("measured").position("atequipment").getCurrentValue();
const F_main = Math.max(effluent[0].payload.F - recirculationFlow, 0);
const F_side_constrained = effluent[0].payload.F < recirculationFlow ? effluent[0].payload.F : recirculationFlow;
effluent[0].payload.F = F_main;
effluent.push({ topic: "Fluent", payload: { inlet: 1, F: F_side_constrained, C: Cs }, timestamp: this.currentTime });
}
return effluent;
}