Skip to content

Commit

Permalink
Merge pull request #5096 from NREL/v24.1.0-IOFreeze-low-speed
Browse files Browse the repository at this point in the history
v24.1.0-IOFreeze: No Load Supply Air Flow Rate Control Set To Low Speed
  • Loading branch information
jmarrec authored Mar 7, 2024
2 parents ebce271 + 5c31398 commit 7c9b367
Show file tree
Hide file tree
Showing 30 changed files with 1,038 additions and 48 deletions.
18 changes: 13 additions & 5 deletions resources/energyplus/ProposedEnergy+.idd
Original file line number Diff line number Diff line change
Expand Up @@ -37721,6 +37721,14 @@ AirLoopHVAC:UnitarySystem,
\minimum 0.0
\note Enter the supply air volume flow rate as a fraction of the heating capacity.
\note Required field when No Load Supply Air Flow Rate Method is FlowPerHeatingCapacity.
A23, \field No Load Supply Air Flow Rate Control Set To Low Speed
\type choice
\key Yes
\key No
\default Yes
\note This field is not used when Design Specification Multispeed Object Type input is present
\note When Yes is selected the minimum air flow rate is used.
\note When No is selected the maximum air flow rate is used.
N17, \field Maximum Supply Air Temperature
\type real
\units C
Expand All @@ -37733,7 +37741,7 @@ AirLoopHVAC:UnitarySystem,
\units C
\default 21.0
\note Enter the maximum outdoor dry-bulb temperature for supplemental heater operation.
A23, \field Outdoor Dry-Bulb Temperature Sensor Node Name
A24, \field Outdoor Dry-Bulb Temperature Sensor Node Name
\type node
\note If this field is blank, outdoor temperature from the weather file is used.
\note If this field is not blank, the node name specified determines the outdoor temperature used
Expand Down Expand Up @@ -37765,17 +37773,17 @@ AirLoopHVAC:UnitarySystem,
\minimum 0.0
\default 80.0
\note Enter the maximum heat recovery inlet temperature allowed for heat recovery.
A24, \field Heat Recovery Water Inlet Node Name
A25, \field Heat Recovery Water Inlet Node Name
\type node
\note Enter the name of the heat recovery water inlet node if plant water loop connections are present.
A25, \field Heat Recovery Water Outlet Node Name
A26, \field Heat Recovery Water Outlet Node Name
\type node
\note Enter the name of the heat recovery water outlet node if plant water loop connections are present.
A26, \field Design Specification Multispeed Object Type
A27, \field Design Specification Multispeed Object Type
\type choice
\key UnitarySystemPerformance:Multispeed
\note Enter the type of performance specification object used to describe the multispeed coil.
A27; \field Design Specification Multispeed Object Name
A28; \field Design Specification Multispeed Object Name
\type object-list
\object-list UnitarySystemPerformaceNames
\note The name of the performance specification object used to describe the multispeed coil.
Expand Down
85 changes: 57 additions & 28 deletions resources/model/OpenStudio.idd
Original file line number Diff line number Diff line change
Expand Up @@ -12049,6 +12049,14 @@ OS:AirLoopHVAC:UnitarySystem,
\minimum 0.0
\note Enter the supply air volume flow rate as a fraction of the heating capacity.
\note Required field when Supply air Flow Rate Method During Heating Operation is FlowPerHeatingCapacity.
A20, \field No Load Supply Air Flow Rate Control Set To Low Speed
\type choice
\key Yes
\key No
\required-field
\note This field is not used when Design Specification Multispeed Object Type input is present
\note When Yes is selected the minimum air flow rate is used.
\note When No is selected the maximum air flow rate is used.
N17, \field Maximum Supply Air Temperature
\type real
\units C
Expand All @@ -12061,7 +12069,7 @@ OS:AirLoopHVAC:UnitarySystem,
\units C
\default 21.0
\note Enter the maximum outdoor dry-bulb temperature for supplemental heater operation.
A20, \field Outdoor Dry-Bulb Temperature Sensor Node Name
A21, \field Outdoor Dry-Bulb Temperature Sensor Node Name
\type alpha
\note If this field is blank, outdoor temperature from the weather file is used.
\note If this field is not blank, the node name specified determines the outdoor temperature used
Expand Down Expand Up @@ -12095,15 +12103,15 @@ OS:AirLoopHVAC:UnitarySystem,
\minimum 0.0
\default 80.0
\note Enter the maximum heat recovery inlet temperature allowed for heat recovery.
A21, \field Heat Recovery Water Inlet Node Name
A22, \field Heat Recovery Water Inlet Node Name
\type object-list
\object-list ConnectionNames
\note Enter the name of the heat recovery water inlet node if plant water loop connections are present.
A22, \field Heat Recovery Water Outlet Node Name
A23, \field Heat Recovery Water Outlet Node Name
\type object-list
\object-list ConnectionNames
\note Enter the name of the heat recovery water outlet node if plant water loop connections are present.
A23; \field Design Specification Multispeed Object Name
A24; \field Design Specification Multispeed Object Name
\type object-list
\object-list UnitarySystemPerformaceNames
\note The name of the performance specification object used to describe the multispeed coil.
Expand Down Expand Up @@ -29052,7 +29060,7 @@ OS:ZoneHVAC:LowTemperatureRadiant:VariableFlow,
\object-list ScheduleNames

OS:ZoneHVAC:PackagedTerminalHeatPump,
\min-fields 24
\min-fields 25
A1, \field Handle
\type handle
\required-field
Expand Down Expand Up @@ -29107,6 +29115,13 @@ OS:ZoneHVAC:PackagedTerminalHeatPump,
\autosizable
\units m3/s
\minimum 0
A8, \field No Load Supply Air Flow Rate Control Set To Low Speed
\type choice
\key Yes
\key No
\required-field
\note When Yes is selected the minimum air flow rate is used.
\note When No is selected the maximum air flow rate is used.
N4, \field Outdoor Air Flow Rate During Cooling Operation
\note Must be less than or equal to supply air flow rate during cooling operation.
\type real
Expand All @@ -29130,14 +29145,14 @@ OS:ZoneHVAC:PackagedTerminalHeatPump,
\autosizable
\units m3/s
\minimum 0
A8, \field Supply Air Fan Name
A9, \field Supply Air Fan Name
\note Needs to match a fan object.
\type object-list
\required-field
\object-list FansCVandOnOff
\object-list FansSystemModel
\note Fan:ConstantVolume only works with fan operating mode is continuous.
A9, \field Heating Coil Name
A10, \field Heating Coil Name
\note Needs to match in the DX Heating Coil object.
\type object-list
\required-field
Expand All @@ -29156,7 +29171,7 @@ OS:ZoneHVAC:PackagedTerminalHeatPump,
\units C
\minimum -20
\default -8.0
A10, \field Cooling Coil Name
A11, \field Cooling Coil Name
\note Needs to match in the DX Cooling Coil object.
\type object-list
\required-field
Expand All @@ -29169,7 +29184,7 @@ OS:ZoneHVAC:PackagedTerminalHeatPump,
\units dimensionless
\minimum> 0
\default 0.001
A11, \field Supplemental Heating Coil Name
A12, \field Supplemental Heating Coil Name
\note Needs to match in the supplemental heating coil object.
\type object-list
\required-field
Expand All @@ -29186,13 +29201,13 @@ OS:ZoneHVAC:PackagedTerminalHeatPump,
\units C
\maximum 21
\default 21.0
A12, \field Fan Placement
A13, \field Fan Placement
\note Select fan placement as either blow through or draw through.
\type choice
\default DrawThrough
\key BlowThrough
\key DrawThrough
A13; \field Supply Air Fan Operating Mode Schedule Name
A14; \field Supply Air Fan Operating Mode Schedule Name
\note Enter the name of a schedule that controls fan operation. Schedule values of 0 denote
\note cycling fan operation (fan cycles with cooling or heating coil). Schedule Name values greater
\note than 0 denote constant fan operation (fan runs continually regardless of coil operation).
Expand All @@ -29202,7 +29217,7 @@ OS:ZoneHVAC:PackagedTerminalHeatPump,
\object-list ScheduleNames

OS:ZoneHVAC:PackagedTerminalAirConditioner,
\min-fields 16
\min-fields 17
A1, \field Handle
\type handle
\required-field
Expand Down Expand Up @@ -29257,6 +29272,13 @@ OS:ZoneHVAC:PackagedTerminalAirConditioner,
\autosizable
\units m3/s
\minimum 0
A8, \field No Load Supply Air Flow Rate Control Set To Low Speed
\type choice
\key Yes
\key No
\required-field
\note When Yes is selected the minimum air flow rate is used.
\note When No is selected the maximum air flow rate is used.
N4, \field Outdoor Air Flow Rate During Cooling Operation
\note Must be less than or equal to supply air flow rate during cooling operation.
\type real
Expand All @@ -29281,7 +29303,7 @@ OS:ZoneHVAC:PackagedTerminalAirConditioner,
\autosizable
\units m3/s
\minimum 0
A8, \field Supply Air Fan Name
A9, \field Supply Air Fan Name
\note Needs to match in the fan object.
\type object-list
\required-field
Expand All @@ -29290,25 +29312,25 @@ OS:ZoneHVAC:PackagedTerminalAirConditioner,
\note Fan:ConstantVolume only works when continuous fan operation is used the entire
\note simulation (all supply air fan operating mode schedule values are greater than 0).
\note If any fan operating mode schedule values are 0 a Fan:SystemModel or Fan:OnOff object must be used.
A9, \field Heating Coil Name
A10, \field Heating Coil Name
\note Needs to match in the heating coil object.
\type object-list
\required-field
\object-list HeatingCoilName
A10, \field Cooling Coil Name
A11, \field Cooling Coil Name
\note Needs to match a DX cooling coil object.
\type object-list
\required-field
\object-list CoilCoolingDX
\object-list CoolingCoilsDXSingleSpeed
\object-list CoolingCoilsDXVariableSpeed
A11, \field Fan Placement
A12, \field Fan Placement
\note Select fan placement as either blow through or draw through.
\type choice
\default DrawThrough
\key BlowThrough
\key DrawThrough
A12; \field Supply Air Fan Operating Mode Schedule Name
A13; \field Supply Air Fan Operating Mode Schedule Name
\note Enter the name of a schedule that controls fan operation. Schedule Name values of 0 denote
\note cycling fan operation (fan cycles with cooling or heating coil). Schedule Name values greater
\note than 0 denote constant fan operation (fan runs continually regardless of coil operation).
Expand Down Expand Up @@ -29501,7 +29523,7 @@ OS:ZoneHVAC:TerminalUnit:VariableRefrigerantFlow,
\note When terminal unit is used in air loop and is load controlled, this zone's thermostat will control operation.

OS:ZoneHVAC:WaterToAirHeatPump,
\min-fields 22
\min-fields 23
A1, \field Handle
\type handle
\required-field
Expand Down Expand Up @@ -29550,6 +29572,13 @@ OS:ZoneHVAC:WaterToAirHeatPump,
\autosizable
\units m3/s
\minimum 0
A7, \field No Load Supply Air Flow Rate Control Set To Low Speed
\type choice
\key Yes
\key No
\required-field
\note When Yes is selected the minimum air flow rate is used.
\note When No is selected the maximum air flow rate is used.
N4, \field Outdoor Air Flow Rate During Cooling Operation
\note Must be less than or equal to supply air flow rate during cooling operation.
\type real
Expand All @@ -29573,25 +29602,25 @@ OS:ZoneHVAC:WaterToAirHeatPump,
\autosizable
\units m3/s
\minimum 0
A7, \field Supply Air Fan Name
A8, \field Supply Air Fan Name
\required-field
\type object-list
\object-list FansOnOff
\object-list FansSystemModel
\note Needs to match Fan:SystemModel or Fan:OnOff object
A8, \field Heating Coil Name
A9, \field Heating Coil Name
\note Needs to match in the water-to-air heatpump heating coil object
\type object-list
\required-field
\object-list HeatingCoilsWaterToAirHP
\object-list HeatingCoilsWaterToAirVSHP
A9, \field Cooling Coil Name
A10, \field Cooling Coil Name
\note Needs to match in the water-to-air heatpump cooling coil object
\type object-list
\required-field
\object-list CoolingCoilsWaterToAirHP
\object-list CoolingCoilsWaterToAirVSHP
A10, \field Supplemental Heating Coil Name
A11, \field Supplemental Heating Coil Name
\note Needs to match in the supplemental heating coil object
\type object-list
\required-field
Expand All @@ -29606,26 +29635,26 @@ OS:ZoneHVAC:WaterToAirHeatPump,
\maximum 21.0
\default 21.0
\units C
A11, \field Outdoor Dry-Bulb Temperature Sensor Node Name
A12, \field Outdoor Dry-Bulb Temperature Sensor Node Name
\type alpha
\required-field
A12, \field Fan Placement
A13, \field Fan Placement
\type choice
\key BlowThrough
\key DrawThrough
\default BlowThrough
A13, \field Supply Air Fan Operating Mode Schedule Name
A14, \field Supply Air Fan Operating Mode Schedule Name
\type object-list
\object-list ScheduleNames
\note Enter the name of a schedule that controls fan operation. Schedule values of 0 denote
\note cycling fan operation (fan cycles with cooling or heating coil). Schedule values greater
\note than 0 denote constant fan operation (fan runs continually regardless of coil operation).
\note The fan operating mode defaults to cycling fan operation if this field is left blank.
A14, \field Availability Manager List Name
A15, \field Availability Manager List Name
\note Enter the name of an AvailabilityManagerAssignmentList object.
\type object-list
\object-list SystemAvailabilityManagerLists
A15, \field Heat Pump Coil Water Flow Mode
A16, \field Heat Pump Coil Water Flow Mode
\type choice
\key Constant
\key Cycling
Expand All @@ -29635,7 +29664,7 @@ OS:ZoneHVAC:WaterToAirHeatPump,
\note Constant results in 100% water flow regardless of compressor PLR
\note Cycling results in water flow that matches compressor PLR
\note ConstantOnDemand results in 100% water flow whenever the coil is on, but is 0% whenever the coil has no load
A26; \field Design Specification ZoneHVAC Sizing Object Name
A17; \field Design Specification ZoneHVAC Sizing Object Name
\note Enter the name of a DesignSpecificationZoneHVACSizing object.
\type object-list
\object-list DesignSpecificationZoneHVACSizingName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,13 @@ namespace energyplus {
unitarySystem.setDouble(AirLoopHVAC_UnitarySystemFields::NoLoadSupplyAirFlowRatePerUnitofCapacityDuringHeatingOperation, d.get());
}

// No Load Supply Air Flow Rate Control Set To Low Speed
if (modelObject.noLoadSupplyAirFlowRateControlSetToLowSpeed()) {
unitarySystem.setString(AirLoopHVAC_UnitarySystemFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed, "Yes");
} else {
unitarySystem.setString(AirLoopHVAC_UnitarySystemFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed, "No");
}

// Maximum Supply Air Temperature
if (modelObject.isMaximumSupplyAirTemperatureAutosized()) {
unitarySystem.setString(AirLoopHVAC_UnitarySystemFields::MaximumSupplyAirTemperature, "Autosize");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,14 @@ namespace energyplus {
idfObject.setDouble(ZoneHVAC_PackagedTerminalAirConditionerFields::NoLoadSupplyAirFlowRate, value.get());
}

// NoLoadSupplyAirFlowRateControlSetToLowSpeed

if (modelObject.noLoadSupplyAirFlowRateControlSetToLowSpeed()) {
idfObject.setString(ZoneHVAC_PackagedTerminalAirConditionerFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed, "Yes");
} else {
idfObject.setString(ZoneHVAC_PackagedTerminalAirConditionerFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed, "No");
}

// OutdoorAirFlowRateDuringCoolingOperation

if (modelObject.isOutdoorAirFlowRateDuringCoolingOperationAutosized()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,14 @@ namespace energyplus {
idfObject.setDouble(ZoneHVAC_PackagedTerminalHeatPumpFields::NoLoadSupplyAirFlowRate, value.get());
}

// NoLoadSupplyAirFlowRateControlSetToLowSpeed

if (modelObject.noLoadSupplyAirFlowRateControlSetToLowSpeed()) {
idfObject.setString(ZoneHVAC_PackagedTerminalHeatPumpFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed, "Yes");
} else {
idfObject.setString(ZoneHVAC_PackagedTerminalHeatPumpFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed, "No");
}

// OutdoorAirFlowRateDuringCoolingOperation

if (modelObject.isOutdoorAirFlowRateDuringCoolingOperationAutosized()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,13 @@ namespace energyplus {
idfObject.setDouble(ZoneHVAC_WaterToAirHeatPumpFields::NoLoadSupplyAirFlowRate, value.get());
}

// NoLoadSupplyAirFlowRateControlSetToLowSpeed
if (modelObject.noLoadSupplyAirFlowRateControlSetToLowSpeed()) {
idfObject.setString(ZoneHVAC_WaterToAirHeatPumpFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed, "Yes");
} else {
idfObject.setString(ZoneHVAC_WaterToAirHeatPumpFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed, "No");
}

// OutdoorAirFlowRateDuringCoolingOperation
if (modelObject.isOutdoorAirFlowRateDuringCoolingOperationAutosized()) {
idfObject.setString(ZoneHVAC_WaterToAirHeatPumpFields::CoolingOutdoorAirFlowRate, "Autosize");
Expand Down
1 change: 1 addition & 0 deletions src/energyplus/Test/AirLoopHVACUnitarySystem_GTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ TEST_F(EnergyPlusFixture, ForwardTranslator_AirLoopHVACUnitarySystem_ControlType
idf_unitary = workspace.getObjectsByType(IddObjectType::AirLoopHVAC_UnitarySystem)[0];

ASSERT_EQ("Load", idf_unitary.getString(AirLoopHVAC_UnitarySystemFields::ControlType).get());
EXPECT_EQ("Yes", idf_unitary.getString(AirLoopHVAC_UnitarySystemFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed).get());
}

std::vector<std::string> getUnitaryNodes(const Workspace& workspace) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ TEST_F(EnergyPlusFixture, ForwardTranslator_ZoneHVACPackagedTerminalAirCondition
// Check that the DX coil ends up directly onto the object, and NOT a CoilSystem:Cooling:DX wrapper
EXPECT_EQ("Coil:Cooling:DX:SingleSpeed", idf_ptac.getString(ZoneHVAC_PackagedTerminalAirConditionerFields::CoolingCoilObjectType).get());
EXPECT_EQ(cc.nameString(), idf_ptac.getString(ZoneHVAC_PackagedTerminalAirConditionerFields::CoolingCoilName).get());
EXPECT_EQ("Yes", idf_ptac.getString(ZoneHVAC_PackagedTerminalAirConditionerFields::NoLoadSupplyAirFlowRateControlSetToLowSpeed).get());

EXPECT_EQ(0u, workspace.getObjectsByType(IddObjectType::CoilSystem_Cooling_DX).size());
}
Expand Down
Loading

0 comments on commit 7c9b367

Please sign in to comment.