Suggested Improvements for HVAC Templates

Wow, thank you again for such a fast respond :slight_smile:

I personally work as an energy modeler for half of year, and I don’t have enough experience in Open Studio. And I doubt I would ever became an energy modeler if I couldn’t visualize the energy, as cool as, you did with Ladybug tools :cowboy_hat_face:
There are curves for basically everything, and the need for individual components appears with each new project.
Energy Plus have curves by default for fans, coils, heat pumps etc., and unfortunately I didnt have enough experience to test so many HVAC components, and see if Honeybe creates curves for that. But I can definitely keep you posted on that.
However, I believe, having curves as an input for at least central plant controls, boilers and chillers would be really useful.

Another thing, that would be great to have, is to have an ability to create hybrid HVAC systems (I believe it is very difficult to code tho). But something like creating variable speed fan in Packaged Single Zone AC, and using this system not only for single zone, but also as a multi-zone. I’m bringing this example because that was my first issue. I was trying to graft/flatten,and other GH magic with HB_zone input, but it still didn’t model as I needed, because Single Zone HVAC is limited by only creating one HVAC per zone, obviously… So I had to do that by hands in OpenStudio, which was a bit painful, but the simulation was successful with multiple zones in Single Zone HVAC. And I believe creating variable speed fans was one of the features in the very early Honeybee releases…

Also, I would really appreciate the ability of changing the default system’s heating/cooling coils on something else. Perhaps there could be a component like “HVAC_system_list” but “Coil_list”. I imagine how many tests there are must be done in order for that to work without crashing… But from my own experience, the heating and cooling coils in the system like “17. Ground Source WSHP + DOAS” can be easily replaced from district heating/cooling to Hot Water Boiler and Absorption Chiller, without errors.
[And perhaps that test can be done by Brute Force, that u described :smiley: (sort of cheating)]

The cool thing about Open Studio is the HVAC interface. (Except, there is no ctrl+c/ctrl+v, or just a simple “search” command). But maybe, instead of doing all of what I just described, it is easier just to use OS interface, but to make it possible to create parametric simulations from already existing OS file, which would involve even the changes in geometry. But I, again, believe or Rhino or OS will crush eventually during the parametric runs…

Anyways, I will keep u posted on glitches and wished :slight_smile: I already have some in my reserve, I just need to find time to find my old models and highlight what was the issue.
(One of them was disappeared Cooling load, that I was able to solve by simply changing zone program).

@mrbro ,

I hope you don’t mind that I’m moving your response to a new topic since there are a lot of good suggestions here and they deserve their own discussion. To respond to the questions/issues that you brought up:

Curves - I would definitely like to know if any of the HVAC templates are missing curves for particular equipment so keep me posted if you find any more. I think a simple implementation of curves for boilers, chillers and fans is relatively easy to do and, as you have said, just exposing these should be enough to cover the most important pieces of equipment. I have created a github issue for this and I’ll try to address it when I get the chance. I don’t know exactly when I’ll have the time to sit down and do it but it will be sometime before the next table release in a few months.

Variable Speed Fans with Packaged Single Zone Template- This can be addressed by enabling demand controlled ventilation for this HVAC template, which is definitely do-able and I’ll address it once I get the chance. I probably could have been publicized better but you can change the fans of most systems to be variable speed by setting denamdControlledVent_ on the airDetails to True. Perhaps I should change the name of this input as it’s not always obvious that you need a variable speed fan to run demand controlled ventilation and that this is an easy way to enable a variable fan when you need it.

Packaged Single Zone Template Applied as Multizone - This is something that we can change. I didn’t realize that people would have a need to run multiple zones for the single zone system but it makes sense. For example, if you have an entire apartment off of one “single zone” loop. I guess the “zone” in this sense refers to the area governed by one thermostat and not necessarily the number of different microclimates or rooms. We can enable the single-zone template system to abide by the same rules about data trees as the other systems do and I think this is better than limiting this capability as we are doing now.

Enable Swapping Out Source of Cooling/Heating for System 17 - With regards to the system 17 template that you bring up, Ihave actually had it on my agenda for a while to re-vamp how you assign ground source heating/cooling. My office has a lot of projects with centralized GSHPs that use hydronic distribution (like fan coil units) and so I would ideally like to put the option to have almost all of the HVAC templates as “ground sourced” right next to the option to have the chiller “water-cooled” or “air cooled”. What this means for the system 17 template is that you can use it like a normal WSHP system when you set the chiller to be “water-cooled” instead of “ground-sourced”. For an example of what I am talking about, try setting the VRF+DOAS template to be “water-cooled” an you’ll see that you get it with a boiler + chiller. So this particular situation should be addressed soon.

1 Like

I just pushed a large commit that addressed the last two of the issues listed here:

I’ll try to get to the others when I get the chance.

1 Like

Is it possible to add different effectiveness values for Heat Recovery (Sensible vs Latent)?
e.g. like so:

That’s a good question, @mrbro . I have been thinking for some time that I should replace the two inputs that are currently devoted to heat recovery (the integer that sets the recovery and the effectiveness) with one input for sensible effectiveness and another for latent effectiveness. So, if someone wants to simulate sensibke-only heat recovery, they just set the latent effectiveness to 0. I’ll plan to implement this when I get the chance:

Hey guys :slightly_smiling_face:!

About HVAC Templates, do you know where I can find the files that describe each HVAC system from “HVACSystemsList” in my computer? I need to edit something in one template, but I couldn’t locate them…

@mrbro ,
I took care of the heat recovery capabilities with this change:

I also added the ability to use a variable fan with the Packaged single-zone systems (just set demandControlledVentilation_ to True.

@ligiana.fonseca ,
All of the code that builds the HVAC systems lives within the ExportToOpenStudio component here:

Can I ask what it is that you need to edit in the template? It might be something that you can already change with the heating/cooling/air details or there might be a measure to change what you are interested in.

1 Like

Thank you Chris for your work, it is extremely helpful and cool! :slight_smile:
Modeling HVACs with Honeybee becoming more and more engineer-friendly

There are few more things that I encountered recently with HVACs:

  1. 1st was an issue with constant volume system fans. (Im still modeling DOAS system #11). As a baseline model, I had too model all the fans as Constant Volume, so I could prescribe to replace it with Variable Speed Fans as a measure. Honeybee creates “FAN CONSTANT VOLUME” in each HVAC loop (WHich is great and what I need), but it also creates FAN ON OFF in each space separately from the HVAC template. Please see image bellow:image
    As a result, the model has and Constan Volume Fans, and Variable (please see bellow:)
    For my purpose, I need to match the Rated Power with the ones in the HVAC loops. I can describe how I made it within Open Studio. In Thermal Zones I selected the “Zone HVAC Four Pipe Fan Coil”, changed the Capacity Control Method from “Cycling Fan” to “ASHRAE90CariableFan”; then I changed the Low Speed Supply Air Flow Ratio to 0.5,; And Medium Speed Supply Air Flow Ratio set to 0. Image bellow shows the changes in OS:
    Also I matched the Fan Efficiency, Motor Efficiency and Pressure Rise with the ones in the HVAC loops (since there was a mismatch):
    And it helped:
    And, obviously, the HVAC loops should have Fan Constant Volume (This is the default in grasshopper).
    The difference in Energy Performance is huge (Just for a reference)

  2. 2nd Issue is adding more than 1 chillers, boilers and pumps into 1 loop.
    Based on ASHRAE 90.1-2016 (img bellow)
    If stuff like Total Chiller Capacity is less than 300 tons => one chiller; or Individual less than 100 tons => Recipirocating and so on and so on. In case of Chiller type, well it is a performance curve task, which I already brought up before (changing the performance curve is so far the most painfull task to do by hands, after creating a multiple zone singlezone hvacs :smiley: ). But in terms of total chiller plant capacity, if it is autosized, there will be a need to add more chillers. Same with Boilers.
    I can show an example:

    So reffering to ASHRAE ,I added them manually, and sized them equally (in my case it is 0.5 size, since only two of each).
    With respect to Pumps, it is still unclear for me how to calculate the amount of needed pumps. But perhaps it could be a nice feature to add multiple pumps as well.

  3. PUMP Variable Speed VS Constant. I brought up this topic (unlike the chiller types) because it does not require changes in performance load curves. There is a default node in OpenStudio that has Variable or Constant Pumps.

Thank you :slight_smile:


Thank you, Chris!

I am still in the process of learning simulation in E+, under my advisor’s help. She is great with E+, but doesn’t work with GH. So, we are like a team in this field.
I was testing Ideal Loads in my model. However, it is giving me a lot of unmet hours, and I want it to be 0 in order to have a system that perfectly meets my conditioning needs. One way to do it would be changing the cooling limit of IL to “NoLimit”, but I can’t edit this in HB components, right? I’ve read in this forum that one should change the design day to resize the HVAC system. Is it the only way to have the perfect IL? My HB is creating automatically 7 design days: 3 for winter and 4 for summer (why does it do it?). I’ve tried to “erase” 5 of these design days from the ddy file and reimport the 2 left ones to HB, but it still didn’t create my perfect IL. I am probably going to need the use of statistics to calculate these design days (for heating and cooling) and import them to HB, right? However, I thought that there was a way to edit the HVAC IL system code in order to change the cooling limit to “NoLimit”… So, it seems that I can do it, right? But I would need to use the “Export to Open Studio” component? It is not working in my file… and I don’t know why. I am receiving the message in the image attached.

1 Like

It kind of worked now. Just “erasing” 5 of the 7 design days decreased my unmet hours of one zone from 4,084 to 24h. It was not 0, but much closer. Also, when I changed the cooling limit directly in E+ to “NoLimit”, I couldn’t get 0… but, I think that this is not so important. The important thing is that these 2 design days will work to use another HVAC system.
Anyway… would it be possible to add an input for heating and cooling limit in HB?

hah same story with my adviser! :slight_smile:
I just recently figured out with the help of UnmetHours forum, that the unmet hours can also occur because of the temperature tolerances. By default it is 0.2 K. If I have such issue, I usually change it manualy inside OpenStudio (dunno where it is in E+). See img bellow, maybe it will help you. Change it from 0.2 to 2.0.

Another thing that might help, is to change your Setpoint Manager! Which is another cool thing that could be added into Honeybee! Unfortunatelly so far I have to do it manualy in Open Studio… More detailed info on setpoints you can find here:

1 Like

Also, when creating the DOAS #11 system, with central cooling and heating loops, it creates a chilled water loop and a hot water loop. But it does not creates a cooling tower. It may (and it is!) cause a lot of troubles with heat rejection. It works fine if you dont have an ERV in your model, but once you put erv to each DOAS loop, the simulation crashes because of to extreme temperatures during summer! The boilers are just exploding! :smiley: So is it possible to create an opportunity to create a condenser loop??

P.S. The ability to model variable/single/two-speed cooling tower would be also cool…

Just for the reference, the energy consumption is very different, and I am surprised the energy simulation was running without the heat rejection… [Single speed Cooling Tower serving two chillers. Before and After]

@ligiana.fonseca ,
The suggestions that @mrbro gave are good ones. In addition to his points, I would add the following:

  1. The reason why there is an autosized cooling limit on the ideal air loads system by default is because you cannot include an airside economizer with an ideal air loads system without having some limit on the size of the system. So, if you want to remove this limit, you can set the airside economizer to False (or 0) like so:

    … and the limit will be removed. However, you will not have the benefit of free cooling from outdoor air in cooler outdoor conditions and so this may not be representative of the real cooling load that your building will have (sine most HVAC systems these days include airside economizers).

  2. One way to increase the size of the autosized system is to edit the design day like you have. An easier way to do this is to increase the factor that gets multiplied by the autosized amount to give you the actual system size used in the simulation. These values are greater than 1 by default (default values come from ASHRAE). However, they can be increased further by changing these inputs on the EP Sim Par component like so:


@mrbro ,
To answer your question about how to create condenser loops with Honeybee, most HVAC templates will allow you to switch between an air cooled chiller and a water cooled chiller (including a condenser loop and cooling tower) using the _heatRejectionType input on the coolingDetails like so:

If you are using the most recent version of the components on the github, you will see that you can also use this same input to create an infinite-capacity ground source condenser loop so that you can model systems with ground source heat pumps.

1 Like

Also, I know that this is partially my fault for choosing such a vague title for a discussion (Suggested Improvements for HVAC Templates) but having all of these different topics in one discussion is going to make it difficult for others in the community to use the information posted here. So, I’d appreciate it if you could post any new suggestions for HVAC upgrades in their own separate discussions and only post back here things related to the questions already asked on this thread. Thank you in advance!

1 Like

Thank you very much for your help, @mrbro and @chris :grin:

A post was split to a new topic: How are Water Source VRFs Connected to the Condenser in Honeybee

Also, perhaps you should check what space in particular have unmet hours. Sometimes it can be a tiny little mud-room that just need a baseboard heater, which will solve the issue, or can be ignored at all… Sometimes it also can be due to a complexity of your model, where there are a lot of small spaces with different thermostats, and HVAC just being crazy… In that case, if you dont need to calculate thermal loads of those spaces, you could sacrifice a little bit and simplify your model. At least that what helps me sometimes!

True! Boilers, furnaces, heat pumps, and air conditioners are some of the most expensive pieces of HVAC equipment in the home. It’s our responsibility to make them last as long as possible. The boiler installation service professionals are also in our service to never let us suffer. These HVAC units are a great investment for us and therefore they must be given a proper care and repair.

I agree with the above post.