Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

CoilCoolingDXMultiSpeed coil in AirLoopHVAC - unitary system wrapper

If I am not too mistaken, the following snippet of a measure for OpenStudio 2.9.1 should create an empty AirLoopHVAC and populate it with an AirLoopHVACUnitarySystem. Then cooling coil, heating coil and supply fan of this unitary system are reset, presumably to erase them from the unitary system. Then a CoilCoolingDXMultiSpeed is created and three stages CoilCoolingDXMultiSpeedStageData are assigned to it, and that cooling coil is then assigned to the unitary system. Finally, the unitary system is inserted into the air loop HVAC.

air_loop_HVAC = OpenStudio::Model::AirLoopHVAC.new(model)

unitary_system = OpenStudio::Model::AirLoopHVACUnitarySystem.new(model)

unitary_system.resetCoolingCoil()
unitary_system.resetHeatingCoil()
unitary_system.resetSupplyFan()

cooling_coil = OpenStudio::Model::CoilCoolingDXMultiSpeed.new(model)
cooling_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
cooling_coil.addStage(cooling_stage)
cooling_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
cooling_coil.addStage(cooling_stage)
cooling_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
cooling_coil.addStage(cooling_stage)

unitary_system.setCoolingCoil(cooling_coil)

unitary_system.addToNode(air_loop_HVAC.supplyOutletNode)

This does seem to populate the HVAC diagram in the OpenStudio Application exactly as intended, including the unitary system only showing a cooling coil, i.e. no heating coil or supply fan. I then manually add a heating coil and variable speed supply fan to the air loop, after the unitary system, and throw in a Setpoint ManagerOutdoorAirReset for good measure, before connecting zones to this via AirTerminalSingleDuctVAVReheat terminals. So, in this sense, I am using the unitary system solely as a "wrapper" (as someone else on Unmet Hours had referred to this approach several years back) for the CoilCoolingDXMultiSpeed, which otherwise would not be allowed in the air loop.

When I do this, I get the following error upon running the .OSM file.

Program Version,EnergyPlus, Version 9.2.0-921312fa1d, YMD=2020.11.05 08:51, * Severe * <root>[UnitarySystemPerformance:Multispeed][Air Loop HVAC Unitary System 1 Unitary System Performance][flow_ratios][2] - Missing required property 'heating_speed_supply_air_flow_ratio'. * Fatal * Errors occurred on processing input file. Preceding condition(s) cause termination. ...Summary of Errors that led to program termination: ..... Reference severe error count=1 ..... Last severe error=<root>[UnitarySystemPerformance:Multispeed][Air Loop HVAC Unitary System 1 Unitary System Performance][flow_ratios][2] - Missing required property 'heating_speed_supply_air_flow_ratio'. *** Warning: Node connection errors not checked - most system input has not been read (see previous warning). *** Fatal error -- final processing. Program exited before simulations began. See previous error messages. *** EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors. *** EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors. *** EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 1 Severe Errors; Elapsed Time=00hr 00min 0.26sec

So, then I examine the .OSM file, and there is no UnitarySystemPerformance:Multispeed object. However, the .IDF file does have a UnitarySystemPerformance:Multispeed object, and it shows that the cooling speeds are autosized, while the heating speeds are sized at 1, but only the first two of three that show up. The third is blank, and I am assuming this may be the cause of the error. The OpenStudio Application has no interface to set this, so after searching the OpenStudio 2.9.1 SDK, I find that the following should at least tell me what those speed ratios are:

multispeed_object = unitary_system.designSpecificationMultispeedObject() # .to_UnitarySystemPerformanceMultispeed.get
puts "MultiSpeed Object = #{multispeed_object}"
puts "MultiSpeed Object AirFlow Ratio Fields = #{multispeed_object.supplyAirflowRatioFields()}"

There is also also a setSupplyAirflowRatioFields() methods that I wanted to use if I ever made it past this. Unfortunately, OpenStudio does not seem to even recognize the designSpecificationMultispeedObject() method, though. The measure just terminates with an error there.

Can anyone help me make it past this hurdle, or perhaps suggest another way to implement a CoilCoolingDXMultiSpeed in an air loop?

CoilCoolingDXMultiSpeed coil in AirLoopHVAC - unitary system wrapper

If I am not too mistaken, the following snippet of a measure for OpenStudio 2.9.1 should create an empty AirLoopHVAC and populate it with an AirLoopHVACUnitarySystem. Then cooling coil, heating coil and supply fan of this unitary system are reset, presumably to erase them from the unitary system. Then a CoilCoolingDXMultiSpeed is created and three stages CoilCoolingDXMultiSpeedStageData are assigned to it, and that cooling coil is then assigned to the unitary system. Finally, the unitary system is inserted into the air loop HVAC.

air_loop_HVAC = OpenStudio::Model::AirLoopHVAC.new(model)

unitary_system = OpenStudio::Model::AirLoopHVACUnitarySystem.new(model)

unitary_system.resetCoolingCoil()
unitary_system.resetHeatingCoil()
unitary_system.resetSupplyFan()

cooling_coil = OpenStudio::Model::CoilCoolingDXMultiSpeed.new(model)
cooling_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
cooling_coil.addStage(cooling_stage)
cooling_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
cooling_coil.addStage(cooling_stage)
cooling_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
cooling_coil.addStage(cooling_stage)

unitary_system.setCoolingCoil(cooling_coil)

unitary_system.addToNode(air_loop_HVAC.supplyOutletNode)

This does seem to populate the HVAC diagram in the OpenStudio Application exactly as intended, including the unitary system only showing a cooling coil, i.e. no heating coil or supply fan. I then manually add a heating coil and variable speed supply fan to the air loop, after the unitary system, and throw in a Setpoint ManagerOutdoorAirReset for good measure, before connecting zones to this via AirTerminalSingleDuctVAVReheat terminals. So, in this sense, I am using the unitary system solely as a "wrapper" (as someone else on Unmet Hours had referred to this approach several years back) for the CoilCoolingDXMultiSpeed, which otherwise would not be allowed in the air loop.

When I do this, I get the following error upon running the .OSM file.

Program Version,EnergyPlus, Version 9.2.0-921312fa1d, YMD=2020.11.05 08:51,
 * ** Severe  * ** <root>[UnitarySystemPerformance:Multispeed][Air Loop HVAC Unitary System 1 Unitary System Performance][flow_ratios][2] - Missing required property 'heating_speed_supply_air_flow_ratio'.
 * **  Fatal  * ** Errors occurred on processing input file. Preceding condition(s) cause termination.
 ...Summary of Errors that led to program termination:
 ..... Reference severe error count=1
 ..... Last severe error=<root>[UnitarySystemPerformance:Multispeed][Air Loop HVAC Unitary System 1 Unitary System Performance][flow_ratios][2] - Missing required property 'heating_speed_supply_air_flow_ratio'.
 *** ************* Warning:  Node connection errors not checked - most system input has not been read (see previous warning).
 *** ************* Fatal error -- final processing.  Program exited before simulations began.  See previous error messages.
 *** ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.
 *** ************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors.
 *** ************* EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 1 Severe Errors; Elapsed Time=00hr 00min  0.26sec

0.26sec

So, then I examine the .OSM file, and there is no UnitarySystemPerformance:Multispeed object. However, the .IDF file does have a UnitarySystemPerformance:Multispeed object, and it shows that the cooling speeds are autosized, while the heating speeds are sized at 1, but only the first two of three that show up. The third is blank, and I am assuming this may be the cause of the error. The OpenStudio Application has no interface to set this, so after searching the OpenStudio 2.9.1 SDK, I find that the following should at least tell me what those speed ratios are:

multispeed_object = unitary_system.designSpecificationMultispeedObject() # .to_UnitarySystemPerformanceMultispeed.get
puts "MultiSpeed Object = #{multispeed_object}"
puts "MultiSpeed Object AirFlow Ratio Fields = #{multispeed_object.supplyAirflowRatioFields()}"

There is also also a setSupplyAirflowRatioFields() methods that I wanted to use if I ever made it past this. Unfortunately, OpenStudio does not seem to even recognize the designSpecificationMultispeedObject() method, though. The measure just terminates with an error there.

Can anyone help me make it past this hurdle, or perhaps suggest another way to implement a CoilCoolingDXMultiSpeed in an air loop?

CoilCoolingDXMultiSpeed coil in AirLoopHVAC - unitary system wrapper

If I am not too mistaken, the following snippet of a measure for OpenStudio 2.9.1 should create an empty AirLoopHVAC and populate it with an AirLoopHVACUnitarySystem. Then cooling coil, heating coil and supply fan of this unitary system are reset, presumably to erase them from the unitary system. Then a CoilCoolingDXMultiSpeed is created and three stages CoilCoolingDXMultiSpeedStageData are assigned to it, and that cooling coil is then assigned to the unitary system. Finally, the unitary system is inserted into the air loop HVAC.

air_loop_HVAC = OpenStudio::Model::AirLoopHVAC.new(model)

unitary_system = OpenStudio::Model::AirLoopHVACUnitarySystem.new(model)

unitary_system.resetCoolingCoil()
unitary_system.resetHeatingCoil()
unitary_system.resetSupplyFan()

cooling_coil = OpenStudio::Model::CoilCoolingDXMultiSpeed.new(model)
cooling_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
cooling_coil.addStage(cooling_stage)
cooling_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
cooling_coil.addStage(cooling_stage)
cooling_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
cooling_coil.addStage(cooling_stage)

unitary_system.setCoolingCoil(cooling_coil)

unitary_system.addToNode(air_loop_HVAC.supplyOutletNode)

This does seem to populate the HVAC diagram in the OpenStudio Application exactly as intended, including the unitary system only showing a cooling coil, i.e. no heating coil or supply fan. I then manually add a heating coil and variable speed supply fan to the air loop, after the unitary system, and throw in a Setpoint ManagerOutdoorAirReset for good measure, before connecting zones to this via AirTerminalSingleDuctVAVReheat terminals. So, in this sense, I am using the unitary system solely as a "wrapper" (as someone else on Unmet Hours had referred to this approach several years back) for the CoilCoolingDXMultiSpeed, which otherwise would not be allowed in the air loop.

When I do this, I get the following error upon running the .OSM file.

Program Version,EnergyPlus, Version 9.2.0-921312fa1d, YMD=2020.11.05 08:51,
** Severe  ** <root>[UnitarySystemPerformance:Multispeed][Air Loop HVAC Unitary System 1 Unitary System Performance][flow_ratios][2] - Missing required property 'heating_speed_supply_air_flow_ratio'.
**  Fatal  ** Errors occurred on processing input file. Preceding condition(s) cause termination.
...Summary of Errors that led to program termination:
..... Reference severe error count=1
..... Last severe error=<root>[UnitarySystemPerformance:Multispeed][Air Loop HVAC Unitary System 1 Unitary System Performance][flow_ratios][2] - Missing required property 'heating_speed_supply_air_flow_ratio'.
************* Warning:  Node connection errors not checked - most system input has not been read (see previous warning).
************* Fatal error -- final processing.  Program exited before simulations began.  See previous error messages.
************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.
************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors.
************* EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 1 Severe Errors; Elapsed Time=00hr 00min  0.26sec

So, then I examine the .OSM file, and there is no UnitarySystemPerformance:Multispeed object. However, the .IDF file does have a UnitarySystemPerformance:Multispeed object, and it shows that the cooling speeds are autosized, while the heating speeds are sized at 1, but only the first two of three that show up. The third is blank, and I am assuming this may be the cause of the error. The OpenStudio Application has no interface to set this, so after searching the OpenStudio 2.9.1 SDK, I find that the following should at least tell me what those speed ratios are:

multispeed_object = unitary_system.designSpecificationMultispeedObject() # .to_UnitarySystemPerformanceMultispeed.get
puts "MultiSpeed Object = #{multispeed_object}"
puts "MultiSpeed Object AirFlow Ratio Fields = #{multispeed_object.supplyAirflowRatioFields()}"

There is also also a setSupplyAirflowRatioFields() methods that I wanted to use if I ever made it past this. Unfortunately, OpenStudio does not seem to even recognize the designSpecificationMultispeedObject() method, though. The measure just terminates with an error there.

Can anyone help me make it past this hurdle, or perhaps suggest another way to implement a CoilCoolingDXMultiSpeed in an air loop?