NREL / EnergyPlus

EnergyPlus™ is a whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water use in buildings.
https://energyplus.net
Other
1.13k stars 389 forks source link

Update documentation for heat recovery chillers and provide an example #10189

Closed mdahlhausen closed 1 year ago

mdahlhausen commented 1 year ago

This is a documentation update request raised in this unmet hours question

The Chiller:Electric object documentation states: Note that heat recovery is only available with Condenser Type = WaterCooled.

This appears to be incorrect, as heat recovery has been supported in EnergyPlus for some time #2973.

This issue is two-fold: 1) Update the documentation to clarify air-cooled chillers are allowed. 2) Provide an example .idf file with an air-cooled heat recovery chiller.

lincolnharmer commented 1 year ago

It looks like the documentation is actually correct

Severe GetElectricEIRChillerInput: Chiller:Electric:EIR="CH-1" ~~~ Heat Recovery requires a Water Cooled Condenser.

rraustad commented 1 year ago

The fatal error with heat recovery used with Chiller:Electric:EIR and Chiller:Electric:ReformulatedEIR appears to be a mistake. The Chiller:Electric model does not have this same error and in fact has a different error that states that condenser flow rate is required for heat recovery. These 3 chiller models should handle heat recovery the same way.

            // Condenser flow rate must be specified for heat reclaim
            if (thisChiller.CondenserType == DataPlant::CondenserType::AirCooled ||
                thisChiller.CondenserType == DataPlant::CondenserType::EvapCooled) {
                if (thisChiller.CondVolFlowRate <= 0.0) {
                    ShowSevereError(
                        state, format("Invalid {}={:.6R}", state.dataIPShortCut->cNumericFieldNames(10), state.dataIPShortCut->rNumericArgs(10)));
                    ShowSevereError(state, "Condenser fluid flow rate must be specified for Heat Reclaim applications.");
                    ShowContinueError(state,
                                      "Entered in " + state.dataIPShortCut->cCurrentModuleObject + '=' + state.dataIPShortCut->cAlphaArgs(1));
                    ErrorsFound = true;
                }
            }
Myoldmopar commented 1 year ago

So I wonder if we just modify that check, maybe things will "just work :tm:"? It they did, we could potentially squeeze this in for 23.2. If it's going to take any investigation, we're probably past time.