You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am seeing a few issues with the forward translator for the UnitarySystemPerformance:Multispeed object. Some cause simulation failure, while others impact the intended operation of the system.
Current Behavior
(1) The Heating (or Cooling) Speed Supply Air Flow Ratio X fields seem to appear only to the highest speed of cooling, rather than the highest speed of cooling or heating. This can result in speed levels being excluded from operation. The coil objects contain all appropriate speed data - the issue appears contained to the UnitarySystemPerformance:Multispeed object.
Example where Number of Speeds for Cooling > Number of Speeds for Heating
Example where Number of Speeds for Heating > Number of Speeds for Cooling
(2) When there are more cooling speed levels than heating speed levels, the Heating Speed Supply Air Flow Ratio X fields for the speed levels above the number of speeds for heating are left blank, causing simulation failure. According to the documentation, these fields for speeds higher than the "number of speeds" should still be articulated. (See image above where Number of Speeds for Cooling > Number of Speeds for Heating).
Expected Behavior
The number of Heating (or Cooling) Speed Supply Air Flow Ratio X fields should match the higher of the Number of Speeds for Heating and Number of Speeds for Cooling. And any speed level above the Number of Speeds for Heating/Cooling should be populated with a 1.
Steps to Reproduce
Define an OpenStudio that uses multispeed heating and cooling coils in a unitary system. One instance should have more cooling stages, and the other should have more heating stages.
Run the model or forward translator to get the resulting IDF.
Examine the UnitarySystemPerformance:Multispeed objects to see the described behavior.
I don't know if this is the issue, but the code below shows the maxStages variable getting set first by heating and then the same variable name set by cooling before being used in the for loop that follows. Because cooling is set second, that could explain why the number of Speed Supply Air Flow Ratio X fields seems to follow the number of speeds for cooling.
Some additional details about your environment for this issue (if relevant):
Platform (Operating system, version): Windows
Version of OpenStudio (if using an intermediate build, include SHA): OpenStudio 3.8.0
Context
These errors limit a user's ability to model multispeed systems with different numbers of heating/cooling speeds. Getting this to work properly requires edits to the IDF, which is not realistic for many applications. We are using these objects for modeling measure scenarios in ComStock.
The text was updated successfully, but these errors were encountered:
Issue overview
I am seeing a few issues with the forward translator for the UnitarySystemPerformance:Multispeed object. Some cause simulation failure, while others impact the intended operation of the system.
Current Behavior
(1) The Heating (or Cooling) Speed Supply Air Flow Ratio X fields seem to appear only to the highest speed of cooling, rather than the highest speed of cooling or heating. This can result in speed levels being excluded from operation. The coil objects contain all appropriate speed data - the issue appears contained to the UnitarySystemPerformance:Multispeed object.
Example where Number of Speeds for Cooling > Number of Speeds for Heating
Example where Number of Speeds for Heating > Number of Speeds for Cooling
(2) When there are more cooling speed levels than heating speed levels, the Heating Speed Supply Air Flow Ratio X fields for the speed levels above the number of speeds for heating are left blank, causing simulation failure. According to the documentation, these fields for speeds higher than the "number of speeds" should still be articulated. (See image above where Number of Speeds for Cooling > Number of Speeds for Heating).
Expected Behavior
The number of Heating (or Cooling) Speed Supply Air Flow Ratio X fields should match the higher of the Number of Speeds for Heating and Number of Speeds for Cooling. And any speed level above the Number of Speeds for Heating/Cooling should be populated with a 1.
Steps to Reproduce
Example OSM and resulting IDF when Num Speeds Heating > Num Speeds Cooling:
in_MoreHeatingSpeeds.osm.txt
in_MoreHeatingSpeeds.idf.txt
Example OSM and resulting IDF when Num Speeds Cooling > Num Speeds Heating:
in_MoreCoolingSpeeds.osm.txt
in_MoreCoolingSpeeds.idf.txt
Possible Solution
I don't know if this is the issue, but the code below shows the maxStages variable getting set first by heating and then the same variable name set by cooling before being used in the for loop that follows. Because cooling is set second, that could explain why the number of Speed Supply Air Flow Ratio X fields seems to follow the number of speeds for cooling.
https://github.com/NREL/OpenStudio/blob/develop/src/energyplus/ForwardTranslator/ForwardTranslateAirLoopHVACUnitarySystem.cpp#L483-L532
Details
Environment
Some additional details about your environment for this issue (if relevant):
Context
These errors limit a user's ability to model multispeed systems with different numbers of heating/cooling speeds. Getting this to work properly requires edits to the IDF, which is not realistic for many applications. We are using these objects for modeling measure scenarios in ComStock.
The text was updated successfully, but these errors were encountered: