Internal Gains editing in Honeybee

Hello Mostapha, I need help with something similar…
I am trying to replicate a model from IES to energy plus, in GH using the Honeybee components. But as mentioned in previous FAQ/Forums it is impossible to input Sensible or Latent Gain when calculating people loads. Could please advice if there is an alternative way of doing it?

@Filippo and @Angeliki ,

You can write an OpenStudio measure to help you change the latent vs sensible people load.

Or you can just insert a single line of code into this part of the OpenStudio component:

You see under the OpenStudio SDK that there is a method to setSeneibleHeatFraction() for People Definitions.

So just add something like this:
peopleDefinition.setSeneibleHeatFraction(0.5)
… in order to set the sensible heat fraction of people to 0.5.

Note that a measure that does this very same thing will be using the same exact part of the OpenStudio SDK. It will just be within a Ruby script instead of this python component.

Remember, nothing is “impossible” when you are working with open source projects. It’s always just a matter of how deep you are willing to get into writing your own code or scripts (or how much manual work you are willing to do on the output energy model text files). Also, I will say that, for those of us getting this deep into writing their own measures, you really should be posting to forums like unmethours.com. There are some more experienced measure writers there.

Hello Chris,

Thanks for the advise, still I am a bit confused.
Please bear with me, since I am a bit new to this, when you say add a line into the open studio component, this will only provide a ‘fixed’ value for the sensibleHeatFraction, correct? (I hope this is not a stupid question)
For my project it is essential to able to manually input the sensible and latent heat gains. Is there a way I can do that ?

(I will also post to unmethours.com forum)

@Angeliki ,
Yes that one line fixes the sensible fraction at a specific ratio. You can use the other methods on the PeopleDefinition (listed in the SDK link I posted) to control other aspects of then people gains.

Good ! Thanks a lot I will check them out and get back to you !

Hi @chris

is the file/script you connected to the measure input something you wrote? or can I find that online and download?
I’m experiencing the same issue now, trying to change fraction radiant and people internal gains with OpenStudio measure. just not too sure how to write the script that is connected to ‘HB_Load openstudio Measure’

Small edit to @chris measure. I added people radiant fraction to the script.
measure.xml (3.0 KB) measure.rb (4.4 KB)

3 Likes

Hi @Tokarzewski,

Could you check the results of your measure?
I can see that it is changed in the idf but that is not reflected in the simulated results.

I have found that if you set manually the corresponding sensible fraction as well, it works.
Is this something that you could add to the inputs?

Thanks

Hi @StefanosPapathanasopoulos,

There is a clear variation in my results for different radiant fractions.
I add script that calculated peak cooling load for different radiant fractions.
PeakCoolignLoad vs RadiantFractions.gh (597.7 KB)


What kind of results do not reflect the difference in a radiant fraction?

I don’t know if I understood your question correctly.
Do you want to edit a sensible/latent ratio with OS measure?
If so, then yes. It is possible to edit sensible latent fraction through the OpenStudio measure
This script was for editing radiant fraction from sensible gains.

I add two good sources related to this topic.
OpenStudio PeopleDefinition definiton
EnergyPlus Internal gains definitions

@Tokarzewski,

Thanks for the reply.
I simulated the file you uploaded and added additional strings to get the output of sensible and latent people heat gain rate.PeakCoolignLoad vs RadiantFractions_v2.gh (603.1 KB)

I still don’t see a change between the relation of sensible heat gain changed for people.
Have a look at the attached csv file.
It is the output of the simulation. If you look at the columns C,D and F, you’ll see that the ratio of latent heat gain to total is modulating between 46-57%, which I would expect to be close to the 20% set from the OS measure.in_v2.csv (405.4 KB)

The IDF has the 0.2 set correctly (fraction radiant), but it seems it is not applied to the simualtion. If the following cell (sensible heat fraction) is set to 0.8 manually in the IDF, the results are correct. Is there a way you can incorporate an input to the sensible heat fraction cell as well in your OS measure?

image

Thanks again for responding!

@StefanosPapathanasopoulos,

The original question was if I can incorporate sensible/latent fraction into OS measure.
To be honest, I don’t know, the previous measure was my first one and it was just a simple edit.

If “Sensible Heat Fraction” is not set manually it is auto-calculated by the engine.
I didn’t know how it was calculated or what the correlation with other parameters was exactly.
Before I could only guess that this might be related to dry-bulb temperature or humidity.
That is a very interesting phenomenon that you raised here, so I looked into Engineering Reference for E+ and found sth like this.
image
image
Which means that manual input of 0.8 sensible to total holds true only at certain conditions.
For conditioned offices, 0.8 may be a good approximation.
image

@StefanosPapathanasopoulos,

I was able to add Sensible Heat Fraction to the OS measure.
I created two additonal measures that give different options.
Numbers represent inputs


So that results would be clear to understand.

I also checked if it is possible to supply more than one measure. From my quick test the results are the same when I connect 3+1 measures as they give the same results as measure 4. I attach .gh file with all 3 different measures in the zip file
PeakCoolignLoad vs RadiantFractions_v3.gh (608.6 KB) RadiantFractions OS measure.zip (7.7 KB)

@Tokarzewski

Thanks a lot for the help!
The graphs you sent above are really helpful in understanding the modelling process of E+.

I’ve actually found another way to do this, by changing the python script of OpenStudio, which saves me time from incorporating the OS measure.

You just add these two lines (you can change the name of the variable as you wish)

This works faster as well, as you don’t have to wait for the OS measure.

Stef

@StefanosPapathanasopoulos,

Happy to help,

This is a very good alternative solution that you propose.
I agree that measures extends time needed for generating each idf file.
Generating models is not a parrarel task.

Recently I did sensitivity analysis study on construction features and schedules.
I didnt include my measure as it took to much time.
If I knew your method before I could have included OS measure and probably have the same simulation time.
image

Hi @StefanosPapathanasopoulos,
Could you please expand how you managed to split the latent and sensible heat gain per person?
Did you change the python script within the HB Model to OSM? Or does this workaround no longer function in the latest HB version 1.1.0?

Optimally, there would be an input in the HB People component for both latent and sensible heat gains.

@Stranga
I have done it by modifying the OpenStudio script but that’s been tested on the previous versions of HB. I haven’t implemented this on the latest version of HB, but I don’t see a reason why this wouldn’t work.

1 Like

Hi Stefanos, any chance you could point me to where the OpenStudio Script is found? I assume this isnt the script editor found within Rhino but one that is located on a local folder?

@Shanice You just have to double click on the icon of the OpenStudio component and the script automatically pops up.

1 Like

@chris, sorry to open this thread after so long.
But in the same way the that ‘HB service hot water’ and ‘HB equipment’ components both have a latent fraction input, is it also possible to add a latent fraction input to the ‘HB people’ component?
This is because most building energy standards specify specific sensible and latent heat gains for occupants, so would be great to avoid generating unique measures to pass this information into a OSM if possible.

Hey @Stranga ,

Yes, I can do that. The people latent fraction is already exposed on the SDK layer so it’s a very quick thing to expose on the component. I’ll try to do this soon.

1 Like