Hello, I am quite new to EnergyPlus modeling and am working on a project where I am trying to understand the impact of urban microclimate-adjusted weather files, produced through the Urban Weather Generator tool, on air source heat pump performance. To start, I am using the DOE reference model for a midrise apartment building. In OpenStudio I used the measure add_apszhp_to_each_zone to swap out all existing HVAC systems for air source heat pumps. This works and I am able to run my simulations in EnergyPlus through the run_ep_from_python functions. I am able to retrieve the timeseries output variables I need, being: "Cooling:Electricity J" and "Heating:Electricity J" from the output .csv file. This is great, because I can see how annual hourly energy consumption varies for the same building model across various microclimate weather files (different locations within the same city).
However, to truly model how microclimate influences air source heat pump performance, I want to capture the role of defrost cycling and its impact on energy consumption. The logic here is that during the winter, different microclimate relative humiditiy levels, on top of other localized environmental features, will influence the operation of defrost cycling, impacting the accumulation of frost on the outdoor coil. What I would like to do is plot defrost cycle energy consumption and use throughout the winter, which to my understanding would require the output variables: 'Output:Variable,,Heat Exchanger Defrost Time Fraction,hourly; !- HVAC Average []', 'Output:Variable,,Heating Coil Defrost Electricity Rate,hourly; !- HVAC Average [W]', 'Output:Variable,*,Heating Coil Defrost Electricity Energy,hourly; !- HVAC Sum [J]', which I see listed in my simulation output .rdd file.
Though when I try to actually plot these defrost output time series variables, from the output .eso file, converted to a .csv file, these output variables are not to be found, which I am confused about. For reference, here is how I am defining defrost cycling operation in my IDF for the object Coil:Heating:DX:SingleSpeed
:
Coil:Heating:DX:SingleSpeed,
G N1 Apartment ZN Coil Heating DX Single Speed, !- Name
Always On Discrete, !- Availability Schedule Name
Autosize, !- Gross Rated Heating Capacity {W}
3.1, !- Gross Rated Heating COP {W/W}
Autosize, !- Rated Air Flow Rate {m3/s}
773.3, !- 2017 Rated Supply Fan Power Per Volume Flow Rate {W/(m3/s)}
934.4, !- 2023 Rated Supply Fan Power Per Volume Flow Rate {W/(m3/s)}
Node 163, !- Air Inlet Node Name
Node 164, !- Air Outlet Node Name
Curve Cubic 34, !- Heating Capacity Function of Temperature Curve Name
Curve Cubic 35, !- Heating Capacity Function of Flow Fraction Curve Name
Curve Cubic 36, !- Energy Input Ratio Function of Temperature Curve Name
Curve Quadratic 59, !- Energy Input Ratio Function of Flow Fraction Curve Name
Curve Quadratic 60, !- Part Load Fraction Correlation Curve Name
FlatDefrostEIRCurve, !- Defrost Energy Input Ratio Function of Temperature Curve Name
-8, !- Minimum Outdoor Dry-Bulb Temperature for Compressor Operation {C}
, !- Outdoor Dry-Bulb Temperature to Turn On Compressor {C}
5, !- Maximum Outdoor Dry-Bulb Temperature for Defrost Operation {C}
0, !- Crankcase Heater Capacity {W}
, !- Crankcase Heater Capacity Function of Temperature Curve Name
10, !- Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation {C}
ReverseCycle, !- Defrost Strategy
OnDemand, !- Defrost Control
0.166667, !- Defrost Time Period Fraction
2000, !- Resistive Defrost Heater Capacity {W}
, !- Region number for calculating HSPF
, !- Evaporator Air Inlet Node Name
, !- Zone Name for Evaporator Placement
, !- Secondary Coil Air Flow Rate {m3/s}
; !- Secondary Coil Fan Flow Scaling Factor {m3/s}
And then for the object 'HeatExchanger:AirToAir:SensibleAndLatent':
HeatExchanger:AirToAir:SensibleAndLatent,
T S1 Apartment ZN ERV HX,!- Name
Always On - No Design Day, !- Availability Schedule Name
Autosize, !- Nominal Supply Air Flow Rate {m3/s}
0, !- Sensible Effectiveness at 100% Heating Air Flow {dimensionless}
0, !- Latent Effectiveness at 100% Heating Air Flow {dimensionless}
0, !- Sensible Effectiveness at 100% Cooling Air Flow {dimensionless}
0, !- Latent Effectiveness at 100% Cooling Air Flow {dimensionless}
T S1 Apartment ZN ERV OA Node, !- Supply Air Inlet Node Name
T S1 Apartment ZN ERV Supply Fan Inlet Node, !- Supply Air Outlet Node Name
T S1 Apartment ZN ERV Inlet Air Node, !- Exhaust Air Inlet Node Name
T S1 Apartment ZN ERV Exhaust Fan Inlet Node, !- Exhaust Air Outlet Node Name
0, !- Nominal Electric Power {W}
No, !- Supply Air Outlet Temperature Control
Rotary, !- Heat Exchanger Type
ExhaustOnly, !- Frost Control Type
1.0, !- Threshold Temperature {C}
0.167, !- Initial Defrost Time Fraction {dimensionless}
1.44, !- Rate of Defrost Time Fraction Increase {1/K}
No, !- Economizer Lockout
, !- Sensible Effectiveness of Heating Air Flow Curve Name
, !- Latent Effectiveness of Heating Air Flow Curve Name
, !- Sensible Effectiveness of Cooling Air Flow Curve Name
; !- Latent Effectiveness of Cooling Air Flow Curve Name
And for the utilized Defrost Energy Input Ratio Function of Temperature Curve Name
I am using the following FlatDefrostEIRCurve
curve:
Curve:Biquadratic,
FlatDefrostEIRCurve, !- Name
1.2, !- Coefficient1 Constant
0.0, !- Coefficient2 x
0.0, !- Coefficient3 x**2
-0.01, !- Coefficient4 y
0.0, !- Coefficient5 y**2
0.0, !- Coefficient6 x*y
0, !- Minimum Value of x
1, !- Maximum Value of x
-20, !- Minimum Value of y
10; !- Maximum Value of y
To my understanding, I am modeling reverse cycle defrosting that should occur when temperature drops to 5 °C, but beyond that I am confused about why defrost cycling just does not seem to be occurring in my simulations. Is there perhaps some parameter in my defrost cycling configuration that I am missing? Or am I perhaps misunderstanding how defrost cycling is modeled to begin with in EnergyPlus? I would think that as outdoor temperature and humidity levels fluctuate, this would influence the need for defrost cycling, and I am trying to see if I can reasonable model this. I would appreciate any advice and guidance, since this appears to be a bit above my level. Thank you!