Cannot launch EnergyPlus simulation from LBT in Python

test.zip (250.9 KB)

Hi everyone,

I am using the Honeybee/Dragonfly libraries in Python for building energy simulation at the urban scale.

I am almost done with the modeling and wanted to launch simulations for early results. However, I have some issues with the generation of IDF.

I checked and it seems I am doing the same way as the components in Grasshopper, using “to_openstudio_osw”, then “run_osw” and finally “run_idf” function in honeybee_energy.run.
There are no errors, but some things seem to miss in the IDF and the the simulation stops after the initialization.

I used the same model, converted into hbjson in Grasshopper and I was able to generate a proper IDF that runs smoothly. The only differences between the IDF generated in Python and in Grasshopper are:

  • the SimulationControl “zone sizing” and “plant sizing” were automatically added in Grasshopper (if I add it manually in the IDF from Python it doesn’t change anything, and I don’t see why I need to add sizing as I do not size anything… if someone knows if it’s mandatory for simulations ?).
  • Grasshopper added “Sizing:Zone” paragraphs for each of the thermal zones, and if I add manually those sizing zones in the Python IDF it works.

Why does it seems to be necessary to enable sizing to launch a simulation? even with nothing to size ? (ideal HVAC system)
And am I doing something wrong in the code for Openstudio/Honeybee not adding those “Sizing:Zone” ?

Attached you’ll see a script showing how I generate and simulate IDFs (that can be launched, I added a hbjson model and simulation parameter and an epw file). There is also a Grasshopper file that simulate the same hbjson successfully.

I hope that you can help me finding why I cannot generate the IDF properly.

Thanks in advance !

Elie

Hi @Elie_MED

Even ideal air systems need to be sized. If they aren’t sized, there’s no good way to know how much the air side economizer can be throttled to bring in outdoor air when the outdoors is cold but the zone needs cooling. In other words, you’ll usually end up with a lot of wintertime cooling load if you forego the sizing of the ideal air system flow rate (and, by extension, the air side economizer). It’s also just good practice to always run a sizing simulation at the start of an EP simulation (even when there’s no heating or cooling in the model) since the design days give info about the extreme summer and winter days in a climate.

Here is the critical line that you are missing in your code, which is in the Grasshopper component:

You can see that we pull the design days from the .ddy file that is next to the .epw and this is the recommended practice. In the event that we can’t find a .ddy next to the .epw, we can also generate them by analyzing the annual data in the EPW:

However, this is not quite as reliable since we’re only deriving the design days from a single typical year and not multiple years as the .ddy files are.

Hope that helps.

2 Likes

Hi @chris,

Thank you very much for your answer ! Every thing is clear, now the simulation is running.

I will try to have better design days for the location I will simulate in as you suggested.

Best,

Elie

2 Likes