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

Unable to Scale Minimum OA #140

Open
adhilton25 opened this issue Apr 13, 2017 · 1 comment
Open

Unable to Scale Minimum OA #140

adhilton25 opened this issue Apr 13, 2017 · 1 comment

Comments

@adhilton25
Copy link

Right now, the forward translator gets the Minimum Outside Air Schedule from OS:Controller:OutdoorAir. When the Controller:OutdoorAir is setting the outside air flow rate the Minimum Outside Air Schedule can be used to scale the minimum outside air with a decimal multiplier. This is incredibly useful for changing unoccupied/occupied OA operation. In an ideal would there would be 0% OA during unoccupied hours, but due to leaky dampers, it's not unrealistic to see maybe ~3% OA when the dampers are commanded to 0%. To model this I would create a Minimum Outside Air Schedule that would have some fractional value during unoccupied hours and 1 during occupied hours.

Now the Availability Schedule for Controller:MechanicalVentilation determines its' operation from values that are 0, disabling it, or values that are > 0, enabling it. When the controller is enabled the Minimum Outside Air Schedule assigned to the Controller:OutsideAir will not be taken into account, as was commented. The fact that the same schedule is used in both places, means that you can't scale the minimum outside air with the schedule assigned to Minimum Outside Air Schedule. This schedule can only be used to either allow the Controller:MechanicalVentilation to control the outside air flow rate (when the schedule value is 1) or set the outside air flow rate to 0 (when the schedule value is 0).

I see a couple of different solutions...

  1. Create an additional dialog to allow the user to specify the availability schedule for Controller:MechanicalVentilation
  2. Create a new schedule to use for the Availability Schedule of Controller:MechanicalVentilation that has 0 for all times when the Minimum Outside Air Schedule is >0 and 1 when the Minimum Outside Air Schedule is 1.
  3. Only create Controller:MechanicalVentilation when DCV is used or something other than ZoneSum is desired. The only consequence here is that the outside air schedule attached to the DesignSpecification:OutdoorAir won't be factored in.

There is an OS object field for Controller:MechanicalVentilation Availability Schedule and there is a setter in the API for it. The broader issue here is that unless you know the above, the user won't have their Minimum Outside Air Schedule realized if they are using something other than 0s or 1s in the assigned schedule.

Hopefully that all makes sense...

@jmarrec
Copy link
Collaborator

jmarrec commented Apr 21, 2020

If I'm following correctly, this is only a problem in the OpenStudioApplication, and you can always use the API / write a measure to do it by explicitly calling ControllerMechanicalVentilation::setAvailabilitySchedule and setting it to anything but the model.alwaysOnDiscreteSchedule(), in which case it will use that and never check the ControllerOutdoorAir's min OA Schedule.

https://github.com/NREL/OpenStudio/blob/17912d4d6be39e999fdd174908189b8a61b2ada5/src/energyplus/ForwardTranslator/ForwardTranslateControllerMechanicalVentilation.cpp#L76-L113

This should be transferred to the https://github.com/NREL/OpenStudioApplication instead.

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