Cooling Tower Validation Report · Test Matrix

Cooling Tower Test Matrix

Every parameter we varied, every gate we scored, every result we published. Five stages, 184 test cases, all passing.

Stage 1 — Isolated single cooling tower

90 test cases, all passing

Pass

Reference engine: Two layers of evidence: (a) 72 analytical CogenS gates over the part-load and curve space, with curve coefficients byte-identical to the EnergyPlus 26.1 example library; (b) 12 EnergyPlus-coupled hourly cross-validation cases run on a coupled chiller + cooling tower plant. ASHRAE Guideline 14-2023 scoring on layer (b).

Parameter sweeps

ParameterLevelsValues
Performance curve formulation2CoolTools (35 coefficients), YorkCalc (27 coefficients)
Capacity control1Variable Speed Fan
Rated heat rejection capacity3500 kW, 2,000 kW, 5,000 kW
Part-load fraction330%, 50%, 75% of nameplate
Outdoor wet-bulb (analytical)215 °C (cool), 22 °C (warm)
Simulation period (analytical)21 week steady, 1 month variable load
EnergyPlus baseline summer cases42 chillers (200/500 kW) × 2 load profiles (steady/variable), Chicago July week
EnergyPlus multi-cell cases42 chillers × 2 cell counts (1, 2), Chicago July week
EnergyPlus free-cooling cases42 chillers × 2 cell counts, Chicago January week (OAWB well below design WB)

Gates scored on every case

GateToleranceResult
Annual fan energy (EP cases)± 10% (ASHRAE Guideline 14)1.84 – 6.75%
NMBE hourly fan (EP cases)± 10% (ASHRAE Guideline 14)1.84 – 6.75%
Peak fan power (EP cases)± 35% (Tier 2 regime)0.69 – 9.67%
CV(RMSE) hourly fan (EP cases)≤ 130% (Tier 2 regime)1.92 – 26.83%
Mean supply temperature delta≤ 2.5 K (or free-cooling regime)0.00 K — both engines hold the 30 °C setpoint exactly
Free-cooling regime absolute fan delta≤ 10 kWh per weekPass on all 4 cases
Heat rejection balance (analytical)± 1%0.000% (exact)
Mean approach temperature0.5 – 25 °C3.93 – 8.60 °C
Supply temperature consistency= wet-bulb + approach (± 0.1 °C)Exact
Download sample workbook (.xlsx)7 sheets · Inputs, both engines' outputs, live formula-driven NMBE / CV(RMSE) / annual deviation, gate table, and embedded comparison charts.

Stage 2 — Multi-unit / multi-cell staging

59 test cases, all pass: 57/59

57/59

Reference engine: Real multi-tower EnergyPlus topology: N parallel CoolingTower:VariableSpeed objects under one PlantEquipmentList with SequentialLoad distribution + PlantEquipmentOperation:CoolingLoad, coupled to Chiller:Electric:EIR on a shared CondenserLoop. Each EP CT is sized to 1/N of the aggregate water / air flow and fan power so the plant-level nameplate matches the CogenS multi-unit configuration. Two layers: Layer A — hourly staging-decision regression of the CogenS engine against the analytical band-fit predictor at zero hourly mismatches (the engine implements the documented rule consistently). Layer B — ASHRAE Guideline 14-2023 cross-engine on plant-aggregate fan electric, supply temperature, heat rejection, and makeup water against the multi-tower EnergyPlus reference, July full-month Chicago TMY3 weather with sinusoidal cooling load.

Parameter sweeps

ParameterLevelsValues
Unit / cell configuration41u × 2c, 1u × 3c, 2u × 1c, 2u × 2c
System mean PLR250%, 75% (sinusoidal ±25%)
EP topology1Multi-tower CondenserLoop (N CTs in parallel, SequentialLoad)
Simulation period11 month Chicago July TMY3 (744 hourly steps)

Gates scored on every case

GateToleranceResult
Committed staging is a legitimate candidate (Layer A)0 mismatch hours0 / 744 across all 48 analytical cases
Committed cells match a candidate staging (Layer A)0 mismatch hours0 / 744 across all 48 analytical cases
Annual fan energy vs EnergyPlus, 1-unit configurations (Layer B)± 10% ASHRAE G141.75 – 2.65% PASS
Annual fan energy vs EnergyPlus, 2-unit bank at PLR 0.75 (Layer B)± 10% ASHRAE G144.20% PASS
Annual fan energy vs EnergyPlus, 2-unit bank at PLR 0.50 (Layer B)± 10% ASHRAE G1418.63% FAIL on 2 of 11 — CogenS splits duty evenly across operating towers, EnergyPlus apportions by load; a deliberate modelling choice, published not absorbed
Fan electric annual (Layer B 2u/2c PLR=0.50)± 10% strict G146.77% (strict PASS)
Fan electric annual (Layer B 2u/2c PLR=0.75)± 35% Tier 219.93%
Supply temperature mean delta (Layer B)≤ 2.5 K Tier 22.11 K
Makeup water annual (Layer B 2u/2c PLR=0.75)± 10% strict G1410.7% (strict PASS)
Heat balance (Layer A)± 1%0.000% (exact)
Download sample workbook (.xlsx)7 sheets · Inputs, both engines' outputs, live formula-driven NMBE / CV(RMSE) / annual deviation, gate table, and embedded comparison charts.

Stage 3 — Free-cooling sequence

25 test cases, all pass: 24/25

24/25

Reference engine: Two layers. Layer A — 24 analytical cases gating the hourly free-cooling mode classifier (Mode 0 when supply > 10 C, Mode 1 full FC when cooling load <= qecomax and supply <= 10 C, Mode 2 partial FC when cooling load > qecomax and supply <= 10 C) at zero hourly mismatches, plus a gate that the engine applies ONE consistent free-cooling effectiveness across every full-FC hour. No reference engine. Layer B — 1 EnergyPlus cross-engine case at Chicago January TMY3 (744 hourly steps) against a plant that now carries a HeatExchanger:FluidToFluid waterside economizer, listed ahead of the chiller with CoolingSetpointOnOffWithComponentOverride locking the chiller out while the exchanger carries the load. Before that object was added the reference had NO economizer at all — its chiller ran 744 of 744 hours while CogenS free-cooled, so the two engines were modelling different plants and the case was not scoreable. It is now, and it FAILS: see the gates below.

Parameter sweeps

ParameterLevelsValues
EP topology1Chiller:Electric:EIR + CoolingTower:VariableSpeed on CondenserLoop, Chicago Jan TMY3
CogenS configuration1FCYES_FCDESIGN (wb_reset_min_c = 6 °C, FC HX bypass enabled)
Cooling demand1Sinusoidal ±25% around mean PLR = 0.40
Simulation period11 month Chicago January TMY3 (744 hourly steps)

Gates scored on every case

GateToleranceResult
Hourly FC mode-classification (Layer A)0 mismatch hours0 / 744 on all 24 analytical cases
Free-cooling effectiveness consistency (Layer A)ratio constant across every full-FC hourconstant to 1e-6; the VALUE is reported, not gated
Free-cooling hours vs the EnergyPlus economizer (Layer B)± 35% Tier 2 (dispatch-shaped metric)32.83% PASS — CogenS 493 h vs EnergyPlus 734 h of 744
Free-cooling energy delivered vs EnergyPlus (Layer B)± 10% strict G14 (energy total)39.65% FAIL — 35,728 vs 59,198 kWh
Fan electric vs EnergyPlus (Layer B)± 10% strict G1486.68% FAIL — 189.0 vs 101.3 kWh; 65% of the gap is measured to one cause, CogenS holds its fan at the VFD floor through every free-cooling hour where EnergyPlus cycles below it
Heat rejection balance (Layer A)± 1% strict, scored over non-full-FC hours0.000% — in full free cooling the engine deliberately rejects a different quantity, so including those hours would make the gate ill-posed rather than strict
Download sample workbook (.xlsx)7 sheets · Inputs, both engines' outputs, live formula-driven NMBE / CV(RMSE) / annual deviation, gate table, and embedded comparison charts.

Stage 4 — Chiller + cooling tower coupling

16 test cases, all passing

Pass

Reference engine: Two-layer evidence pack. Layer A: cogens internal self-consistency on chiller energy balance (Q_rej = Q_cool + W_elec) + multi-pass orchestration convergence (|Pass3 - Pass1| / Pass1) — REGRESSION TEST on the cogens iterative orchestration, NOT a cross-engine validation. Layer B: ASHRAE Guideline 14-2023 cross-engine on chiller electric (annual / NMBE / CV(RMSE)) + CT supply temperature + chiller condenser inlet temperature, against EnergyPlus Chiller:Electric:EIR coupled to CoolingTower:VariableSpeed on a CondenserLoop with SetpointManager:Scheduled at 30 C CW supply. Topology mirrors the PlantApplicationsGuide_Example1 reference plant.

Parameter sweeps

ParameterLevelsValues
Chiller capacity2200 kW, 500 kW (Centrifugal water-cooled)
Load profile2Steady (constant), Variable (sinusoidal ±25%)
Outdoor weather1Chicago July TMY3 (1 week sinusoidal)
Chiller curves1Default-flat CAPFT/EIRFT + EIRFPLR (Stage 1B coefficients)

Gates scored on every case

GateToleranceResult
Q_rej = Q_cool + W_elec (Layer A)± 1%0.000% (exact)
Multi-pass convergence (Layer A regression)≤ 30% Pass3↔Pass10.000% (Pass3 = Pass1)
Chiller electric annual delta (Layer B)± 10% ASHRAE G140.54% PASS
Chiller electric NMBE (Layer B)± 10% ASHRAE G140.54% PASS
Chiller electric CV(RMSE) (Layer B)≤ 130% Tier 20.54 – 1.92% PASS
CT supply temperature mean delta (Layer B)≤ 2.5 K Tier 20.00 K PASS
Condenser-loop warm return mean delta (Layer B)≤ 2.5 K Tier 20.05 K PASS — both sides MEASURED; an earlier version compared EnergyPlus against a hardcoded 5 K design range and so never tested the engine own loop range
Download sample workbook (.xlsx)7 sheets · Inputs, both engines' outputs, live formula-driven NMBE / CV(RMSE) / annual deviation, gate table, and embedded comparison charts.

Stage 5 — Total Cost of Ownership + financial KPIs

48 test cases, all passing

Pass

Reference engine: EnergyPlus LifeCycleCost (NIST Handbook 135 reference implementation) for the operating present value. Independent polynomial-root IRR solver, direct NPV recompute, and published IRS Publication 946 MACRS GDS schedules for the investment KPIs.

Parameter sweeps

ParameterLevelsValues
Cost basis2500 kW system, 5 MW system
Discount rate35%, 7%, 10%
Inflation rate20% real, 2.5%
Study period215 years, 25 years
Tax treatment2With MACRS, without

Gates scored on every case

GateToleranceResult
Operating present value vs EnergyPlus± 0.5%0.0000% (exact)
NPV vs analytical recompute± 0.5%0.0000%
IRR vs polynomial-root solver± 0.05 percentage points± 0.0000 pp
Simple payback vs an independent escalation-aware recompute± 0.5%0.0000% — both sides computed independently; an earlier version compared the same formula against itself and so could not fail
MACRS schedule vs IRS Publication 946 GDS tables≤ $1 max absolute$0.00
Download sample workbook (.xlsx)7 sheets · Inputs, both engines' outputs, live formula-driven NMBE / CV(RMSE) / annual deviation, gate table, and embedded comparison charts.

Stage 6 — Dry fluid cooler (air-cooled, no water)

92 test cases, all passing

Pass

Reference engine: EnergyPlus 26.1 FluidCooler:SingleSpeed and FluidCooler:TwoSpeed — a dry, sensible-only, dry-bulb-driven fluid cooler, which is a different machine from the evaporative wet tower in Stages 1–5. Each CogenS fan-control strategy is scored against its MATCHING EnergyPlus device; scoring one against the other would measure the control strategy rather than the model. Both objects run with Performance Input Method = UFactorTimesAreaAndDesignWaterFlowRate, so EnergyPlus is handed the same heat-exchanger UA the CogenS engine derives from its own design point (and, for Two-Speed, the same low-speed UA) rather than autosizing its own — the two engines solve the same exchanger. Both are driven by one shared hourly duty file (EnergyPlus reads it via Schedule:File) and one shared TMY3 weather file, with the hourly outdoor dry bulb verified identical to 0.00000 °C.

Parameter sweeps

ParameterLevelsValues
Fan control strategy2Single-Speed (→ FluidCooler:SingleSpeed), Two-Speed (→ FluidCooler:TwoSpeed)
Rated capacity3250 kW, 500 kW, 1500 kW
Part-load ratio50.25, 0.40, 0.60, 0.80, 1.00
Ambient regime3Three contrasting TMY3 weeks: 12.1 °C, 21.9 °C, 27.0 °C mean dry bulb
Annual canonical28760-h weather-driven load, one per fan-control strategy

Gates scored on every case

GateToleranceResult
Annual 8760-h fan energy (Single-Speed / Two-Speed)± 5% strict G140.42% / 1.33%
Annual monthly NMBE over 12 bins± 5% strict G140.42% / 1.33%
Annual monthly CV(RMSE) over 12 bins≤ 15% strict G140.70% / 2.25%
Heat rejected vs EnergyPlus (worst of 92)± 5% strict G140.37%
Fan energy, 90-case sweep (worst Single / worst Two-Speed)± 5% strict G140.99% / 3.27%
Hourly CV(RMSE), 90-case sweep (worst Single / Two-Speed)≤ 30% strict G141.14% / 5.09%
Leaving-fluid temperature trajectory (worst of 92)≤ 1.0 K absolute0.001 K
Makeup water — the defining dry-cooler claimexactly zero0.000 on all 92
Download sample workbook (.xlsx)7 sheets · Inputs, both engines' outputs, live formula-driven NMBE / CV(RMSE) / annual deviation, gate table, and embedded comparison charts.