IronBug Air Source Heat Pump

Hi @MingboPeng,
We can simulate an air source heat pump via the Honeybee DOAS HVAC Template and the result is a Plant Component with the Heat Pump defined via a program.

Hot_Water_Loop_Central_Air_Source_Heat_Pump_Init_Pgrm, !- Name
SET Loop_Exit_Temp = 48.8888888888889, !- Program Line 1
SET Loop_Delta_Temp = 11.1111111111111, !- Program Line 2
SET Cp = @CPHW Loop_Exit_Temp, !- Program Line 3
SET rho = @RhoH2O Loop_Exit_Temp, !- Program Line 4
SET Hot_Water_Loop_Central_Air_Source_Heat_Pump…

Can we do something similar with Ironbug and define Exit Temp, COP, Curves,… of the user defined Heat Pump?
Thank you

Hi @BestiaParda

It is likely a new component that OpenStudio hasn’t added an icon for it.
Could you attach the osm file for me to check it, and I can try to recreate it with Ironbug?

@MingboPeng here is the file:
in.osm (816.4 KB)

Thank you

Hi @BestiaParda, just wanted to keep you posted. I am still working on adding EMS to Ironbug, but it’s quite complicated which is one of reasons that OpenStudio App doesn’t support adding or editing EMS.

I am like 70% done here, will let you know once I have something working for you to test.

Thank you @MingboPeng for your time.
Let me know if you need data from a typical air source heat pump

Hi @BestiaParda, I am getting close to finishing adding the EMS to Ironbug, and starting to do some tests with it.

That would be great if you could provide me some simple models with air source heat pump, and I can use them for prototyping and testing.

I was trying to look for which Honeybee DOAS HVAC template you used in your model, but I couldn’t find it. Could you point me which did you use?

Hello @MingboPeng, here is the Honeybee DOAS Template:

I have attached two files with the heating mode and the cooling mode of the air source heat pump.

AirSourceHeatPump_Cooling.csv (1.6 KB)
AirSourceHeatPump_Heating.csv (1.7 KB)

You should use only the heating mode of the heat pump.
Please let me know if you need other information.
Thank you

Hi @MingboPeng and all!
Just to add to the conversation on simulating air-source heat pump. There is a new object capable of simulating air-source heat pump, which was added, I believe, in EnergyPlus 9.3: HeatPump:PlantLoop:EIR:Heating

There are issues with it not autosizing, but besides that all looks good:

Is there any chance we can see this object implemented in Ironbug? Alternatively, what is the best way to inject this object into an existing Ironbug model?

Anyway, thanks a lot @MingboPeng for your great work!

Thanks @BestiaParda

I have finished all EMS elements for recreating this “Central Air Source Heat Pump” which is defined here: openstudio-standards/Prototype.CentralAirSourceHeatPump.rb at master · NREL/openstudio-standards · GitHub

But based on my understanding, I found an issue that COP curve defined in the model was not set correctly to the heat pump, I will need to get the confirmation from OpenStudio team. COP curve is not set to CentralAirSourceHeatPump · Issue #1111 · NREL/openstudio-standards · GitHub

Once the issue is cleared, I will compile a new version of Ironbug that has EMS, and you can take it from there. Here is a screenshot that I am able to manage all EMS elements (actuators, sensors, variables, programs) along with HVAC system.

Hi @dmitry, it’s good to know that E+ has added a new object for supporting air source heat pump. But I don’t think this has been added to OpenStudio. We will have to wait for OpenStudio team for it. I’d suggest you to submit an issue for this case, so that they will get attentions on this new object. Issues · NREL/OpenStudio · GitHub

Without OpenStudio’s support, it’ll be very difficult to add it to Ironbug. However, you might be able to inject the E+ object to idf file via “add_string” input on “Model To OSM” component with some post-processing scripts. Or maybe you write your own measure to inject it. I am not sure if you want to dive into any of above paths. It is possible but not easy.

Hi @BestiaParda,

I have added the EMS to Ironbug (1.0 MB) , and you can find following example to model the air source heat pump: (73.4 KB)

I have tested it, and it ran all fine with EMS.
Please let me know if you find any issues.

1 Like

Great work @MingboPeng,

I have checked the EMS with different COP curves and temperatures and works fine.
I can’t find the component inside the sql file to review the consumption of the heat pump but I will keep searching…

Thank you for your time and work.

Hi @MingboPeng,

I have eliminated the Zone Packaged Terminal to try to follow the Heat Pump consumption and I think that the EMS program is not working properly.
I upload your file without the Thermal Zone Equipment and you can see that there is no electricity end use heating.
I have upgraded to OS 3.2 and EP 9.5. (67.6 KB)

Thanks @BestiaParda for testing out and keeping me posted. I will take a look over this weekend.

1 Like

Hi @BestiaParda,

I spent some time this weekend to debug this issue. There were two issues in my previous sample file:

  1. EMS metered output variable for HP was not set correctly for EndUseCategory: it was set to “Baseboard” by mistake.

  2. The customized air source heat pump was not recognized as a heating equipment in OpenStudio, so we have to set OperationHeatingLoadScheme by ourselves to ensure the HP will be used correctly.

With above fixes, now I am able to get HP running correctly with output values:

Here is the updated example file: (75.4 KB)

To use the example file correctly, you will need to update the Ironbug with following zip file: (1.3 MB)

Thanks, and please let me know if you find any issues.


Amazing work Mingbo! This is fantastic to have access to air-source heat pump functionality in Ironbug.

When I activate the three boolean toggles, I receive a two severe errors on the ‘HB RUN OSM’ component as follows:

  1. ** Severe ** FindRootSimpleController: Controller error for controller = “CONTROLLER WATER COIL 1”
  2. ************* ** Severe ** FindRootSimpleController: Previous controller action error continues for controller = CONTROLLER WATER COIL 1

I am running off EnergyPlus, Version 9.4.0-998c4b761e and had updated Ironbug with your “” file. Do you have any idea why I might be getting these errors?

This is awesome, is there a possibility to model Solar Desiccant evaporative cooling system.

Hi @MingboPeng,

It works now and I can find all the variables related to the HP in the rdd file like the Heating Demand Rate (W).
This is fantastic!!

Hi @Stranga,
I think you should upgrade to EP 9.5 and OS 3.2.

1 Like

A bit of an update. I’ve added a feature request for an air-source heat pump model for OpenStudio and it has been implemented in OpenStudio 3.3.

I’m just wondering if there are plans on updating Ironbug to support OpenStudio 3.1.0+? And, generally, is Ironbug going to be integrated into the Ladybug Tools releases to be in line with the compatibility matrix?

Thank you


Hi @MingboPeng,

I have upgraded to OS 3.3 and EP 9.6 and Ironbug works fine.
As @dmitry mentioned, OS 3.3 has included the HeatPump:PlantLoop:Heating Object so I think that we don’t need the EMS program anymore.
Can we inject new objects to Ironbug? is there a way, as users, to add new objects to Ironbug?

Thank you Mingo