Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to E+ autosizing of minimum damper positions for VAV terminals #1391

Open
asparke2 opened this issue Oct 14, 2022 · 3 comments
Open

Comments

@asparke2
Copy link
Member

Currently, openstudio-standards runs it's own version of the VRP calculations to adjust the minimum damper position upward for critical zones (in air_loop_hvac_adjust_minimum_vav_damper_positions()), which reduced the overall minimum OA for the VAV airloops. These adjusted minimum damper positions and the adjusted minimum system OA flow rate are then hard-sized in the model. This was done because EnergyPlus could not account for a target minimum ventilation efficiency in autosizing.

As of EnergyPlus 9.4.0 (OpenStudio 3.1.0), this autosizing capability has been added. Switching to use this capability would allow us to remove a large amount of complex code in air_loop_hvac_adjust_minimum_vav_damper_positions(). If we ever decide to remove backward compatibility with OS versions < 3.10, we could also switch to this approach and greatly reduce the complexity of the VAV damper position logic.

In order to use the EnergyPlus autosizing approach, the following fields must be set:

  1. In the AirLoopHVAC Sizing:System object, sizing_system.setSystemOutdoorAirMethod('Standard62.1VentilationRateProcedure')
  2. In the Sizing:Zone for each zone on the system, sizing_zone.setDesignMinimumZoneVentilationEfficiency(min_evz), where min_evz is the minimum ventilation efficiency used to increase minimum damper positions. This gives EnergyPlus a target to use when adjust the minimum damper position upward when autosizing. Current assumption is that for DOE-pre-1980 and 1980-2004, the dampers were NOT adjusted, implying min_evz = 0 and for all other templates, min_evz = 0.6
  3. In the Sizing:Zone for each zone on the system, sizing_zone.setCoolingMinimumAirFlowFraction(min_damper_position), where min_damper_position is determined by air_terminal_single_duct_vav_reheat_minimum_damper_position(). This gives EnergyPlus a minimum flow fraction to use when autosizing the minimum damper position.
  4. In the AirTerminal:SingleDuct:VAV:Reheat or AirTerminal:SingleDuct:VAV:NoReheat for each zone on the system, tell EnergyPlus to Autosize the minimu damper position using terminal.autosizeConstantMinimumAirFlowFraction(). This autosizing will use the info in Sizing:Zone object, starting with the minimum damper position as the lower bound and increasing to meet the minimum Evz as required.

Implementation of this approach would be greatly simplified by the removal of the model_create_prototype_model() code from openstudio-standards, as this method currently has a series of hard-coded assumptions for specially setting the damper positions in the VAV systems for operating rooms in the Hospital and Outpatient models.

@asparke2
Copy link
Member Author

This has not been completed, #1373 did not use the approach described above.

@asparke2 asparke2 reopened this Oct 20, 2022
@lymereJ
Copy link
Collaborator

lymereJ commented Apr 3, 2023

That approach (native feature in EnergyPlus) still has one major issue.

The EnergyPlus calculated minimum damper positions can result in a minimum system primary air flow rate that is lower than the required system outdoor air intake (Vot). When this happens no adjustment is made to the MDPs and the modeled OA ends being smaller than required. This impacts the overall energy use of the system. We currently do have something built in OpenStudio-Standards to deal with that situation (not perfect, but does enforce the minimum OA intake).

That's something to consider if we do decide to move forward.

@lymereJ
Copy link
Collaborator

lymereJ commented Apr 13, 2023

Reference issue: NREL/EnergyPlus#9959

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants