Thermal Energy Storage Validation Report · Test Matrix
Thermal Energy Storage Test Matrix
Every parameter we varied, every gate we scored, every result we published. Five stages, 84 test cases spanning hot and chilled service and both charge and discharge duty, all passing.
Stage 4 — Standby thermal decay (hot and chilled)
12 test cases, all passing
Reference engine: EnergyPlus 26.1.0 WaterHeater:Stratified — isolated standby tank with both heaters disabled (capacity 0), matched geometry and skin-loss coefficient, a constant ambient schedule, and no plant connections. Every transport term is identically zero in this regime, which is what makes it a clean test of the shell-loss physics on its own — and also why it cannot, by itself, tell you whether a tank puts energy in the right place.
Parameter sweeps
| Parameter | Levels | Values |
|---|---|---|
| Tank volume | 2 | 10 m³, 50 m³ |
| Insulation U-value | 3 | 0.3, 0.5, 1.0 W/m²·K |
| Service mode | 2 | Hot (90 °C tank into 20 °C ambient — loses heat), chilled (5 °C tank in a 25 °C plant room — GAINS heat) |
| Stratification nodes | 1 | 5 |
| Initial tank state | 1 | Uniform at the service temperature |
| Simulation period | 1 | 1 week (168 h) |
Gates scored on every case
| Gate | Tolerance | Result |
|---|---|---|
| Tank-mean trajectory NMBE | ±10% (ASHRAE Guideline 14) | Hot -1.02% to -0.22%; chilled +0.05% to +0.36%. 12 / 12 PASS. |
| Tank-mean trajectory CV(RMSE) | ≤30% | Hot 0.25% to 1.10%; chilled 0.05% to 0.36%. 12 / 12 PASS. |
| Week-long tank-average decay (or rise, chilled) | diagnostic | Hot: CogenS 4.91–23.46 °C vs EP 4.58–22.33 °C. Chilled: both engines -1.31 to -6.39 °C, agreeing to the reported precision. |
| Shell loss / gain against EnergyPlus | ±2% | Hot -1.3% to -0.3%; chilled -0.1% to +0.0%. The engine integrates the full tank surface including both end caps. |
| Energy conservation (idle tank) | shell loss = stored-energy drop, ±2% | Ratio 1.006 – 1.007 across the sweep. |
Stage 4b — Hot-water storage, discharge duty
18 test cases, all passing
Reference engine: EnergyPlus 26.1.0 WaterHeater:Stratified with the use-side port wired — peak draw, hourly draw-fraction schedule and makeup-temperature schedule, with no plant loop so the only energy paths are shell loss and the draw. Both engines are driven with the SAME energy: EnergyPlus runs first and its own per-interval use-side heat transfer becomes the CogenS request, so what is scored is purely how each engine distributes that energy through the tank.
Parameter sweeps
| Parameter | Levels | Values |
|---|---|---|
| Tank volume | 2 | 10 m³, 50 m³ |
| Insulation U-value | 3 | 0.3, 0.5, 1.0 W/m²·K |
| Draw intensity | 3 | 0.5, 1.0, 2.0 tank turnovers per day |
| Draw schedule | 1 | Two 3-hour blocks per day with idle recovery windows |
| Service temperatures | 1 | 90 °C stored, 60 °C return, 20 °C ambient |
| Project timestep | 1 | 15 minutes (672 steps) |
Gates scored on every case
| Gate | Tolerance | Result |
|---|---|---|
| Tank-mean temperature | NMBE ±10%, CV(RMSE) ≤30% | 18 / 18. |NMBE| ≤ 1.21%. |
| Thermocline stratification | NMBE ±10%, CV(RMSE) ≤30% on the operating band | 18 / 18. RMSE 0.83 – 1.81 K on a 30 K band. |
| Delivered supply temperature | NMBE ±10%, CV(RMSE) ≤30% | 18 / 18. |NMBE| ≤ 1.80%. |
Stage 4c — Chilled-water storage, discharge duty
18 test cases, all passing
Reference engine: EnergyPlus 26.1.0 WaterHeater:Stratified with the use-side ports inverted for chilled service — chilled supply drawn from the BOTTOM, warm return admitted at the TOP, and an ambient warmer than the tank throughout. This is the first cross-simulation validation chilled-water storage has had.
Parameter sweeps
| Parameter | Levels | Values |
|---|---|---|
| Tank volume | 2 | 10 m³, 50 m³ |
| Insulation U-value | 3 | 0.3, 0.5, 1.0 W/m²·K |
| Draw intensity | 3 | 0.5, 1.0, 2.0 tank turnovers per day |
| Service temperatures | 1 | 5 °C stored, 14 °C return, 25 °C plant room |
| Usable temperature band | 1 | 9 K (about a third of the hot-water band) |
| Project timestep | 1 | 15 minutes (672 steps) |
Gates scored on every case
| Gate | Tolerance | Result |
|---|---|---|
| Tank-mean temperature | NMBE ±10%, CV(RMSE) ≤30% | 18 / 18. |NMBE| ≤ 3.91%. |
| Thermocline stratification | NMBE ±10%, CV(RMSE) ≤30% on the operating band | 18 / 18. RMSE 0.07 – 0.18 K on a 9 K band. |
| Delivered chilled-water supply temperature | NMBE ±10%, CV(RMSE) ≤30% | 18 / 18. |NMBE| ≤ 3.85%. |
Stage 4d — Hot-water storage, charge duty
18 test cases, all passing
Reference engine: EnergyPlus 26.1.0 WaterHeater:Stratified with the use-side port heights swapped so plant supply displaces the tank from the top down — the geometric mirror of Stage 4b. A real tank charges every night and discharges every day, so scoring only the draw side would leave half the duty cycle unmeasured.
Parameter sweeps
| Parameter | Levels | Values |
|---|---|---|
| Tank volume | 2 | 10 m³, 50 m³ |
| Insulation U-value | 3 | 0.3, 0.5, 1.0 W/m²·K |
| Charge intensity | 3 | 0.5, 1.0, 2.0 tank turnovers per day |
| Initial tank state | 1 | Discharged — uniform 60 °C return temperature |
| Plant supply | 1 | 90 °C entering the top of the tank |
| Project timestep | 1 | 15 minutes (672 steps) |
Gates scored on every case
| Gate | Tolerance | Result |
|---|---|---|
| Tank-mean temperature | NMBE ±10%, CV(RMSE) ≤30% | 18 / 18. |NMBE| ≤ 1.51%. |
| Thermocline stratification | NMBE ±10%, CV(RMSE) ≤30% on the operating band | 18 / 18. RMSE 0.79 – 2.05 K on a 30 K band. |
| Returned temperature at the plant port | NMBE ±10%, CV(RMSE) ≤30% | 18 / 18. |NMBE| ≤ 0.51%. |
Stage 4e — Chilled-water storage, charge duty
18 test cases, all passing
Reference engine: EnergyPlus 26.1.0 WaterHeater:Stratified configured for chilled charge — 5 °C supply admitted at the BOTTOM with displaced warm water leaving the top. Overnight charging is where a chilled-storage business case is made, and the temperature returned to the chiller sets that machine entering-water temperature and therefore its efficiency.
Parameter sweeps
| Parameter | Levels | Values |
|---|---|---|
| Tank volume | 2 | 10 m³, 50 m³ |
| Insulation U-value | 3 | 0.3, 0.5, 1.0 W/m²·K |
| Charge intensity | 3 | 0.5, 1.0, 2.0 tank turnovers per day |
| Initial tank state | 1 | Discharged — uniform 14 °C return temperature |
| Chiller supply | 1 | 5 °C entering the bottom of the tank |
| Project timestep | 1 | 15 minutes (672 steps) |
Gates scored on every case
| Gate | Tolerance | Result |
|---|---|---|
| Tank-mean temperature | NMBE ±10%, CV(RMSE) ≤30% | 18 / 18. |NMBE| ≤ 2.49%. |
| Thermocline stratification | NMBE ±10%, CV(RMSE) ≤30% on the operating band | 18 / 18. RMSE 0.10 – 0.25 K on a 9 K band. |
| Returned temperature at the chiller port | NMBE ±10%, CV(RMSE) ≤30% | 18 / 18. |NMBE| ≤ 1.20%. |