From 879a5185c36176a7f58263cb5328c7be88578546 Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Mon, 4 Sep 2023 12:15:25 +0200 Subject: [PATCH] Wrap up VersionTranslator testing! fix ruby test setup issues as well --- .../test/3_7_0/test_vt_Coils_Latent.rb | 18 +- .../test/3_7_0/test_vt_Coils_Latent_solo.osm | 56 +-- .../test_vt_Coils_Latent_unitary_eqfit.osm | 64 ++-- .../test_vt_Coils_Latent_unitary_vsdeqfit.osm | 77 ++-- .../test/3_7_0/test_vt_Coils_Latent_wahp.osm | 275 ++++++-------- .../test/VersionTranslator_GTest.cpp | 344 +++++++++++++++++- 6 files changed, 544 insertions(+), 290 deletions(-) diff --git a/src/osversion/test/3_7_0/test_vt_Coils_Latent.rb b/src/osversion/test/3_7_0/test_vt_Coils_Latent.rb index cc6e047934f..2b84f3d6792 100644 --- a/src/osversion/test/3_7_0/test_vt_Coils_Latent.rb +++ b/src/osversion/test/3_7_0/test_vt_Coils_Latent.rb @@ -121,7 +121,7 @@ def make_unitary_vsdeqfit_model() u_hc_vsd_eq.setHeatingCoil(hc_vsd_eq) u_both_eq = make_unitary(m, "Unitary Both VsdEq") - cc_eq = make_hc_vsdeqfit(m, "CC VsdEq Unitary Both") + cc_eq = make_cc_vsdeqfit(m, "CC VsdEq Unitary Both") u_both_eq.setCoolingCoil(cc_eq) hc_eq = make_hc_vsdeqfit(m, "HC VsdEq Unitary Both") u_both_eq.setHeatingCoil(hc_eq) @@ -141,6 +141,13 @@ def make_wahp_eqfit(m, name) supplementalHC = OpenStudio::Model::CoilHeatingElectric.new(m) wahp = OpenStudio::Model::ZoneHVACWaterToAirHeatPump.new(m, m.alwaysOnDiscreteSchedule, supplyFan, hc, cc, supplementalHC) wahp.setName(name) + + # Deleted and moved to child + wahp.setMaximumCyclingRate(MAX_CYCLING_RATE) + wahp.setFractionofOnCyclePowerUse(0.05) # Just deleted + wahp.setHeatPumpTimeConstant(HEAT_PUMP_TIME_CONSTANT) + wahp.setHeatPumpFanDelayTime(HEAT_PUMP_FAN_DELAY_TIME) + return wahp end @@ -155,13 +162,20 @@ def make_wahp_vsdeqfit(m, name) supplementalHC = OpenStudio::Model::CoilHeatingElectric.new(m) wahp = OpenStudio::Model::ZoneHVACWaterToAirHeatPump.new(m, m.alwaysOnDiscreteSchedule, supplyFan, hc, cc, supplementalHC) wahp.setName(name) + + # Deleted and moved to child + wahp.setMaximumCyclingRate(MAX_CYCLING_RATE) + wahp.setFractionofOnCyclePowerUse(0.05) # Just deleted + wahp.setHeatPumpTimeConstant(HEAT_PUMP_TIME_CONSTANT) + wahp.setHeatPumpFanDelayTime(HEAT_PUMP_FAN_DELAY_TIME) + return wahp end def make_wahp_model() m = Model.new wahp_eq = make_wahp_eqfit(m, "WAHP Eq") - wahp_vsd_eq = make_wahp_eqfit(m, "WAHP VsdEq") + wahp_vsd_eq = make_wahp_vsdeqfit(m, "WAHP VsdEq") m.save("test_vt_Coils_Latent_wahp.osm", true) end diff --git a/src/osversion/test/3_7_0/test_vt_Coils_Latent_solo.osm b/src/osversion/test/3_7_0/test_vt_Coils_Latent_solo.osm index 1c147d5e609..285c43ecb1d 100644 --- a/src/osversion/test/3_7_0/test_vt_Coils_Latent_solo.osm +++ b/src/osversion/test/3_7_0/test_vt_Coils_Latent_solo.osm @@ -1,10 +1,10 @@ OS:Version, - {60e8614d-0825-4c65-b2a1-c9689d9bf15e}, !- Handle + {36c73a11-9c06-4f97-90e8-e71929191dc7}, !- Handle 3.6.1; !- Version Identifier OS:Coil:Cooling:WaterToAirHeatPump:EquationFit, - {568362b4-e5d0-4a10-9d6f-72d24d95eefd}, !- Handle + {9739f2db-8508-44f0-b227-4fefd9142102}, !- Handle CC Eq Solo, !- Name , !- Water Inlet Node Name , !- Water Outlet Node Name @@ -18,14 +18,14 @@ OS:Coil:Cooling:WaterToAirHeatPump:EquationFit, 30, !- Rated Entering Water Temperature {C} 27, !- Rated Entering Air Dry-Bulb Temperature {C} 19, !- Rated Entering Air Wet-Bulb Temperature {C} - {6f164986-f163-4518-963d-dcffc3f28702}, !- Total Cooling Capacity Curve Name - {4c6e8dc5-5bb5-4326-a2a4-5657cb289caf}, !- Sensible Cooling Capacity Curve Name - {21c962f9-f386-4105-8053-a96ab4489b4c}, !- Cooling Power Consumption Curve Name + {7a507a35-ab8f-4009-a513-5d4b2e749d59}, !- Total Cooling Capacity Curve Name + {549d72cf-a1dd-4fca-9176-4e2f08788de6}, !- Sensible Cooling Capacity Curve Name + {b54c1273-1f55-4bdf-a487-00140d0922c9}, !- Cooling Power Consumption Curve Name 1.5, !- Nominal Time for Condensate Removal to Begin {s} 0.02; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} OS:Curve:QuadLinear, - {6f164986-f163-4518-963d-dcffc3f28702}, !- Handle + {7a507a35-ab8f-4009-a513-5d4b2e749d59}, !- Handle TotCoolCapCurve, !- Name -0.68126221, !- Coefficient1 Constant 1.99529297, !- Coefficient2 w @@ -42,7 +42,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuintLinear, - {4c6e8dc5-5bb5-4326-a2a4-5657cb289caf}, !- Handle + {549d72cf-a1dd-4fca-9176-4e2f08788de6}, !- Handle Curve Quint Linear 1, !- Name 2.24209455, !- Coefficient1 Constant 7.28913391, !- Coefficient2 v @@ -62,7 +62,7 @@ OS:Curve:QuintLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuadLinear, - {21c962f9-f386-4105-8053-a96ab4489b4c}, !- Handle + {b54c1273-1f55-4bdf-a487-00140d0922c9}, !- Handle CC Eq Solo coolingPowerConsumptionCurve, !- Name -3.20456384, !- Coefficient1 Constant 0.47656454, !- Coefficient2 w @@ -79,7 +79,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, - {d8ab937b-2dff-46e4-aa68-c5e19faef497}, !- Handle + {13998366-bef3-4610-9b6f-f73f6ebbc585}, !- Handle CC VsdEq Solo, !- Name , !- Water-to-Refrigerant HX Water Inlet Node Name , !- Water-to-Refrigerant HX Water Outlet Node Name @@ -92,11 +92,11 @@ OS:Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.02, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} Yes, !- Use Hot Gas Reheat - {74ceedae-133b-44a8-8308-c5015959d058}, !- Energy Part Load Fraction Curve Name - {e77d09fb-31de-4145-b004-d7414d88334d}; !- Speed Data List + {72249a5f-a6e9-4101-9b39-2b2471eba269}, !- Energy Part Load Fraction Curve Name + {500e1b47-b71c-4117-b5be-d80d8e6b2374}; !- Speed Data List OS:Curve:Quadratic, - {74ceedae-133b-44a8-8308-c5015959d058}, !- Handle + {72249a5f-a6e9-4101-9b39-2b2471eba269}, !- Handle Curve Quadratic 1, !- Name 0.85, !- Coefficient1 Constant 0.15, !- Coefficient2 x @@ -105,11 +105,11 @@ OS:Curve:Quadratic, 1; !- Maximum Value of x OS:ModelObjectList, - {e77d09fb-31de-4145-b004-d7414d88334d}, !- Handle + {500e1b47-b71c-4117-b5be-d80d8e6b2374}, !- Handle CC VsdEq Solo Speed Data List; !- Name OS:Coil:Cooling:DX:VariableSpeed, - {6a6fc7bf-4edb-4451-a5de-1581ed6ca087}, !- Handle + {90ac0122-105b-4a7f-a910-db48d935b7d4}, !- Handle CC DXVsd Solo, !- Name , !- Indoor Air Inlet Node Name , !- Indoor Air Outlet Node Name @@ -118,7 +118,7 @@ OS:Coil:Cooling:DX:VariableSpeed, autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.02, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} - {44277ad4-a793-445b-9ca3-190baf15890a}, !- Energy Part Load Fraction Curve Name + {292f4068-f2a9-4b15-84a6-12bc27c17b4f}, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type 0, !- Evaporative Condenser Pump Rated Power Consumption {W} @@ -130,10 +130,10 @@ OS:Coil:Cooling:DX:VariableSpeed, 0, !- Basin Heater Capacity {W/K} 2, !- Basin Heater Setpoint Temperature {C} , !- Basin Heater Operating Schedule Name - {500e3693-7993-4ffa-99ec-3d3130051418}; !- Speed Data List + {5b0a3c49-0f7c-4931-b51b-ab53ee2dedc7}; !- Speed Data List OS:Curve:Quadratic, - {44277ad4-a793-445b-9ca3-190baf15890a}, !- Handle + {292f4068-f2a9-4b15-84a6-12bc27c17b4f}, !- Handle CC DXVsd Solo EnergyPartLoadFractionCurve, !- Name 0.85, !- Coefficient1 Constant 0.15, !- Coefficient2 x @@ -142,11 +142,11 @@ OS:Curve:Quadratic, 1; !- Maximum Value of x OS:ModelObjectList, - {500e3693-7993-4ffa-99ec-3d3130051418}, !- Handle + {5b0a3c49-0f7c-4931-b51b-ab53ee2dedc7}, !- Handle CC DXVsd Solo Speed Data List; !- Name OS:Coil:Heating:WaterToAirHeatPump:EquationFit, - {56d941e1-9ed5-4acb-bf5a-a7cb4f93daaa}, !- Handle + {8e908b01-eee0-492a-8a72-69627b3a6231}, !- Handle HC Eq Solo, !- Name , !- Water Inlet Node Name , !- Water Outlet Node Name @@ -159,11 +159,11 @@ OS:Coil:Heating:WaterToAirHeatPump:EquationFit, 20, !- Rated Entering Water Temperature {C} 20, !- Rated Entering Air Dry-Bulb Temperature {C} 1, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity - {49cd69cf-1011-4fcf-8492-58a03e16232e}, !- Heating Capacity Curve Name - {964f7679-22e7-4bb2-b760-8cc0377e7f4f}; !- Heating Power Consumption Curve Name + {f2be97cf-1684-45d7-9fea-f825b282929e}, !- Heating Capacity Curve Name + {0cd20c98-6f3c-4784-9d50-c222fd6514b9}; !- Heating Power Consumption Curve Name OS:Curve:QuadLinear, - {49cd69cf-1011-4fcf-8492-58a03e16232e}, !- Handle + {f2be97cf-1684-45d7-9fea-f825b282929e}, !- Handle Curve Quad Linear 1, !- Name -5.50102734, !- Coefficient1 Constant -0.96688754, !- Coefficient2 w @@ -180,7 +180,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuadLinear, - {964f7679-22e7-4bb2-b760-8cc0377e7f4f}, !- Handle + {0cd20c98-6f3c-4784-9d50-c222fd6514b9}, !- Handle HC Eq Solo heatingPowerConsumptionCurve, !- Name -7.47517858, !- Coefficient1 Constant 6.40876653, !- Coefficient2 w @@ -197,7 +197,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit, - {25a2973e-18cc-44e4-bdc6-46b4081eac29}, !- Handle + {b9b8152c-d9f4-4916-a193-bdb31ae4dbae}, !- Handle HC VsdEq Solo, !- Name , !- Water-to-Refrigerant HX Water Inlet Node Name , !- Water-to-Refrigerant HX Water Outlet Node Name @@ -207,11 +207,11 @@ OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit, autosize, !- Rated Heating Capacity At Selected Nominal Speed Level {W} autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} - {c2f39d3e-c0ea-4ef2-9400-44c7105b398f}, !- Energy Part Load Fraction Curve Name - {e1706fbe-b4d0-4c4d-9e10-e59840c3e069}; !- Speed Data List + {9c34dffd-e3ae-499e-9632-365aaf0adbae}, !- Energy Part Load Fraction Curve Name + {e7e4204d-f0c2-431f-877f-92d440ef4610}; !- Speed Data List OS:Curve:Quadratic, - {c2f39d3e-c0ea-4ef2-9400-44c7105b398f}, !- Handle + {9c34dffd-e3ae-499e-9632-365aaf0adbae}, !- Handle Curve Quadratic 2, !- Name 0.85, !- Coefficient1 Constant 0.15, !- Coefficient2 x @@ -220,6 +220,6 @@ OS:Curve:Quadratic, 1; !- Maximum Value of x OS:ModelObjectList, - {e1706fbe-b4d0-4c4d-9e10-e59840c3e069}, !- Handle + {e7e4204d-f0c2-431f-877f-92d440ef4610}, !- Handle HC VsdEq Solo Speed Data List; !- Name diff --git a/src/osversion/test/3_7_0/test_vt_Coils_Latent_unitary_eqfit.osm b/src/osversion/test/3_7_0/test_vt_Coils_Latent_unitary_eqfit.osm index dc00a93af37..bf546982167 100644 --- a/src/osversion/test/3_7_0/test_vt_Coils_Latent_unitary_eqfit.osm +++ b/src/osversion/test/3_7_0/test_vt_Coils_Latent_unitary_eqfit.osm @@ -1,10 +1,10 @@ OS:Version, - {487e9a06-ec14-494a-82d0-d4c78a60ef2c}, !- Handle + {3302470b-4939-4889-b871-20825b3e3067}, !- Handle 3.6.1; !- Version Identifier OS:AirLoopHVAC:UnitarySystem, - {6caf8643-f5b9-4aad-92dd-8c474ccb822a}, !- Handle + {6f98ca78-64cb-4360-93a0-ac972a1b1128}, !- Handle Unitary CC Eq, !- Name Load, !- Control Type , !- Controlling Zone or Thermostat Location @@ -17,7 +17,7 @@ OS:AirLoopHVAC:UnitarySystem, , !- Supply Air Fan Operating Mode Schedule Name , !- Heating Coil Name 1, !- DX Heating Coil Sizing Ratio - {556d4b9e-bf6e-4c66-a3ca-850545fd7101}, !- Cooling Coil Name + {6b63c40f-c043-4e5b-8a0f-dc105a4f0e76}, !- Cooling Coil Name No, !- Use DOAS DX Cooling Coil 2, !- DOAS DX Cooling Coil Leaving Minimum Air Temperature {C} SensibleOnlyLoadControl, !- Latent Load Control @@ -50,7 +50,7 @@ OS:AirLoopHVAC:UnitarySystem, 1; !- Ancilliary Off-Cycle Electric Power {W} OS:Coil:Cooling:WaterToAirHeatPump:EquationFit, - {556d4b9e-bf6e-4c66-a3ca-850545fd7101}, !- Handle + {6b63c40f-c043-4e5b-8a0f-dc105a4f0e76}, !- Handle CC Eq Unitary, !- Name , !- Water Inlet Node Name , !- Water Outlet Node Name @@ -64,14 +64,14 @@ OS:Coil:Cooling:WaterToAirHeatPump:EquationFit, 30, !- Rated Entering Water Temperature {C} 27, !- Rated Entering Air Dry-Bulb Temperature {C} 19, !- Rated Entering Air Wet-Bulb Temperature {C} - {a808deb9-2d13-4582-8ad4-05eb5c002c2b}, !- Total Cooling Capacity Curve Name - {1a4d1622-b30a-4eba-a133-9c58114809b2}, !- Sensible Cooling Capacity Curve Name - {4c917bd3-cce1-42c1-ba93-277a9697a20e}, !- Cooling Power Consumption Curve Name + {9cfd5bfc-0934-47b8-be94-b82f643a7b0c}, !- Total Cooling Capacity Curve Name + {3e8ecf1a-a437-4c7b-a61f-97bea500ac97}, !- Sensible Cooling Capacity Curve Name + {d18af99c-1fd2-4fa9-9f44-0946d31bf252}, !- Cooling Power Consumption Curve Name 1.5, !- Nominal Time for Condensate Removal to Begin {s} 0.02; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} OS:Curve:QuadLinear, - {a808deb9-2d13-4582-8ad4-05eb5c002c2b}, !- Handle + {9cfd5bfc-0934-47b8-be94-b82f643a7b0c}, !- Handle TotCoolCapCurve, !- Name -0.68126221, !- Coefficient1 Constant 1.99529297, !- Coefficient2 w @@ -88,7 +88,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuintLinear, - {1a4d1622-b30a-4eba-a133-9c58114809b2}, !- Handle + {3e8ecf1a-a437-4c7b-a61f-97bea500ac97}, !- Handle Curve Quint Linear 1, !- Name 2.24209455, !- Coefficient1 Constant 7.28913391, !- Coefficient2 v @@ -108,7 +108,7 @@ OS:Curve:QuintLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuadLinear, - {4c917bd3-cce1-42c1-ba93-277a9697a20e}, !- Handle + {d18af99c-1fd2-4fa9-9f44-0946d31bf252}, !- Handle CC Eq Unitary coolingPowerConsumptionCurve, !- Name -3.20456384, !- Coefficient1 Constant 0.47656454, !- Coefficient2 w @@ -125,7 +125,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:AirLoopHVAC:UnitarySystem, - {cad1fd9d-a425-4ad4-a6a1-413d7882ba67}, !- Handle + {aa30338c-6984-4f86-a63a-4e4f978c37e7}, !- Handle Unitary HC Eq, !- Name Load, !- Control Type , !- Controlling Zone or Thermostat Location @@ -136,7 +136,7 @@ OS:AirLoopHVAC:UnitarySystem, , !- Supply Fan Name , !- Fan Placement , !- Supply Air Fan Operating Mode Schedule Name - {79b751b8-d80e-4d25-91a0-4b066c723be8}, !- Heating Coil Name + {c1c5ec02-4bd2-4677-b29d-82c5259961af}, !- Heating Coil Name 1, !- DX Heating Coil Sizing Ratio , !- Cooling Coil Name No, !- Use DOAS DX Cooling Coil @@ -171,7 +171,7 @@ OS:AirLoopHVAC:UnitarySystem, 1; !- Ancilliary Off-Cycle Electric Power {W} OS:Coil:Heating:WaterToAirHeatPump:EquationFit, - {79b751b8-d80e-4d25-91a0-4b066c723be8}, !- Handle + {c1c5ec02-4bd2-4677-b29d-82c5259961af}, !- Handle HC Eq Unitary, !- Name , !- Water Inlet Node Name , !- Water Outlet Node Name @@ -184,11 +184,11 @@ OS:Coil:Heating:WaterToAirHeatPump:EquationFit, 20, !- Rated Entering Water Temperature {C} 20, !- Rated Entering Air Dry-Bulb Temperature {C} 1, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity - {8b5bc1dc-cd08-41cb-b0ee-de1077589a0a}, !- Heating Capacity Curve Name - {bc6d2d24-401e-4a96-a6bd-c0ef61d3723b}; !- Heating Power Consumption Curve Name + {658e02d7-0cdc-43dd-aa91-77939549e57f}, !- Heating Capacity Curve Name + {9ea0cff9-b563-4d43-9683-a90e91c788f2}; !- Heating Power Consumption Curve Name OS:Curve:QuadLinear, - {8b5bc1dc-cd08-41cb-b0ee-de1077589a0a}, !- Handle + {658e02d7-0cdc-43dd-aa91-77939549e57f}, !- Handle Curve Quad Linear 1, !- Name -5.50102734, !- Coefficient1 Constant -0.96688754, !- Coefficient2 w @@ -205,7 +205,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuadLinear, - {bc6d2d24-401e-4a96-a6bd-c0ef61d3723b}, !- Handle + {9ea0cff9-b563-4d43-9683-a90e91c788f2}, !- Handle HC Eq Unitary heatingPowerConsumptionCurve, !- Name -7.47517858, !- Coefficient1 Constant 6.40876653, !- Coefficient2 w @@ -222,7 +222,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:AirLoopHVAC:UnitarySystem, - {993eff9d-9c53-4ba2-8d16-e60a42a9e688}, !- Handle + {5c888d05-5265-4e4e-8eba-8479be101a14}, !- Handle Unitary Both Eq, !- Name Load, !- Control Type , !- Controlling Zone or Thermostat Location @@ -233,9 +233,9 @@ OS:AirLoopHVAC:UnitarySystem, , !- Supply Fan Name , !- Fan Placement , !- Supply Air Fan Operating Mode Schedule Name - {8885e19e-883b-4251-be58-5706b90f8466}, !- Heating Coil Name + {861c44f7-d6be-43c0-9e39-956e2278337e}, !- Heating Coil Name 1, !- DX Heating Coil Sizing Ratio - {791742b1-c0a2-4525-a69d-79d1c431af49}, !- Cooling Coil Name + {b84730ba-5538-4772-b094-79d4ad4c726e}, !- Cooling Coil Name No, !- Use DOAS DX Cooling Coil 2, !- DOAS DX Cooling Coil Leaving Minimum Air Temperature {C} SensibleOnlyLoadControl, !- Latent Load Control @@ -268,7 +268,7 @@ OS:AirLoopHVAC:UnitarySystem, 1; !- Ancilliary Off-Cycle Electric Power {W} OS:Coil:Cooling:WaterToAirHeatPump:EquationFit, - {791742b1-c0a2-4525-a69d-79d1c431af49}, !- Handle + {b84730ba-5538-4772-b094-79d4ad4c726e}, !- Handle CC Eq Unitary Both, !- Name , !- Water Inlet Node Name , !- Water Outlet Node Name @@ -282,14 +282,14 @@ OS:Coil:Cooling:WaterToAirHeatPump:EquationFit, 30, !- Rated Entering Water Temperature {C} 27, !- Rated Entering Air Dry-Bulb Temperature {C} 19, !- Rated Entering Air Wet-Bulb Temperature {C} - {8cd06a2b-0bac-4e3a-bfcb-f4115e10c71f}, !- Total Cooling Capacity Curve Name - {2efa4557-a233-4ec1-abe0-efe007101626}, !- Sensible Cooling Capacity Curve Name - {ecbfac5f-bbd5-4f12-872f-952c730356d0}, !- Cooling Power Consumption Curve Name + {cfe2ea9a-79fc-4381-9876-8e797cf14837}, !- Total Cooling Capacity Curve Name + {090b4e7f-61f2-4ac8-baca-182495b12e85}, !- Sensible Cooling Capacity Curve Name + {91707c1a-0291-4213-be15-cecbf5a6dcc7}, !- Cooling Power Consumption Curve Name 1.5, !- Nominal Time for Condensate Removal to Begin {s} 0.02; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} OS:Curve:QuadLinear, - {8cd06a2b-0bac-4e3a-bfcb-f4115e10c71f}, !- Handle + {cfe2ea9a-79fc-4381-9876-8e797cf14837}, !- Handle TotCoolCapCurve 1, !- Name -0.68126221, !- Coefficient1 Constant 1.99529297, !- Coefficient2 w @@ -306,7 +306,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuintLinear, - {2efa4557-a233-4ec1-abe0-efe007101626}, !- Handle + {090b4e7f-61f2-4ac8-baca-182495b12e85}, !- Handle Curve Quint Linear 2, !- Name 2.24209455, !- Coefficient1 Constant 7.28913391, !- Coefficient2 v @@ -326,7 +326,7 @@ OS:Curve:QuintLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuadLinear, - {ecbfac5f-bbd5-4f12-872f-952c730356d0}, !- Handle + {91707c1a-0291-4213-be15-cecbf5a6dcc7}, !- Handle CC Eq Unitary Both coolingPowerConsumptionCurve, !- Name -3.20456384, !- Coefficient1 Constant 0.47656454, !- Coefficient2 w @@ -343,7 +343,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Coil:Heating:WaterToAirHeatPump:EquationFit, - {8885e19e-883b-4251-be58-5706b90f8466}, !- Handle + {861c44f7-d6be-43c0-9e39-956e2278337e}, !- Handle HC Eq Unitary Both, !- Name , !- Water Inlet Node Name , !- Water Outlet Node Name @@ -356,11 +356,11 @@ OS:Coil:Heating:WaterToAirHeatPump:EquationFit, 20, !- Rated Entering Water Temperature {C} 20, !- Rated Entering Air Dry-Bulb Temperature {C} 1, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity - {7d778352-bb52-408f-b2cb-dbfb42d8d6fc}, !- Heating Capacity Curve Name - {13e5dd21-a809-405f-aaea-5b27527a673b}; !- Heating Power Consumption Curve Name + {b57f43a0-f0d5-4565-8da5-aabf6be9103c}, !- Heating Capacity Curve Name + {d383764f-2704-449b-a61e-c0d9540b8ae2}; !- Heating Power Consumption Curve Name OS:Curve:QuadLinear, - {7d778352-bb52-408f-b2cb-dbfb42d8d6fc}, !- Handle + {b57f43a0-f0d5-4565-8da5-aabf6be9103c}, !- Handle Curve Quad Linear 2, !- Name -5.50102734, !- Coefficient1 Constant -0.96688754, !- Coefficient2 w @@ -377,7 +377,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuadLinear, - {13e5dd21-a809-405f-aaea-5b27527a673b}, !- Handle + {d383764f-2704-449b-a61e-c0d9540b8ae2}, !- Handle HC Eq Unitary Both heatingPowerConsumptionCurve, !- Name -7.47517858, !- Coefficient1 Constant 6.40876653, !- Coefficient2 w diff --git a/src/osversion/test/3_7_0/test_vt_Coils_Latent_unitary_vsdeqfit.osm b/src/osversion/test/3_7_0/test_vt_Coils_Latent_unitary_vsdeqfit.osm index 231ea555d00..47d25f74f7b 100644 --- a/src/osversion/test/3_7_0/test_vt_Coils_Latent_unitary_vsdeqfit.osm +++ b/src/osversion/test/3_7_0/test_vt_Coils_Latent_unitary_vsdeqfit.osm @@ -1,10 +1,10 @@ OS:Version, - {6f0380f5-67fe-4492-ad7c-7073adf9d9b0}, !- Handle + {aa454afe-db2b-4569-8756-bf2403449f84}, !- Handle 3.6.1; !- Version Identifier OS:AirLoopHVAC:UnitarySystem, - {2d838eba-10ca-4fb8-a3c8-1d19ac663295}, !- Handle + {a73a233f-8de3-4652-abf6-5b16fafefc64}, !- Handle Unitary CC VsdEq, !- Name Load, !- Control Type , !- Controlling Zone or Thermostat Location @@ -17,7 +17,7 @@ OS:AirLoopHVAC:UnitarySystem, , !- Supply Air Fan Operating Mode Schedule Name , !- Heating Coil Name 1, !- DX Heating Coil Sizing Ratio - {a648d160-0ceb-417e-ae9b-1ef39a3a9b08}, !- Cooling Coil Name + {06166c33-d20b-4d1f-b063-8fe9e0b5320d}, !- Cooling Coil Name No, !- Use DOAS DX Cooling Coil 2, !- DOAS DX Cooling Coil Leaving Minimum Air Temperature {C} SensibleOnlyLoadControl, !- Latent Load Control @@ -50,7 +50,7 @@ OS:AirLoopHVAC:UnitarySystem, 1; !- Ancilliary Off-Cycle Electric Power {W} OS:Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, - {a648d160-0ceb-417e-ae9b-1ef39a3a9b08}, !- Handle + {06166c33-d20b-4d1f-b063-8fe9e0b5320d}, !- Handle CC VsdEq Unitary, !- Name , !- Water-to-Refrigerant HX Water Inlet Node Name , !- Water-to-Refrigerant HX Water Outlet Node Name @@ -63,11 +63,11 @@ OS:Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.02, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} Yes, !- Use Hot Gas Reheat - {167ad337-1c17-4dcf-8ddc-0031cf38d328}, !- Energy Part Load Fraction Curve Name - {a2da6689-e224-4d82-af0e-c6b70b6a9ebb}; !- Speed Data List + {5a1117f9-7203-4f2f-9d93-a492df156198}, !- Energy Part Load Fraction Curve Name + {d8f655d3-ff96-4d13-8746-23cdeaf20c1f}; !- Speed Data List OS:Curve:Quadratic, - {167ad337-1c17-4dcf-8ddc-0031cf38d328}, !- Handle + {5a1117f9-7203-4f2f-9d93-a492df156198}, !- Handle Curve Quadratic 1, !- Name 0.85, !- Coefficient1 Constant 0.15, !- Coefficient2 x @@ -76,11 +76,11 @@ OS:Curve:Quadratic, 1; !- Maximum Value of x OS:ModelObjectList, - {a2da6689-e224-4d82-af0e-c6b70b6a9ebb}, !- Handle + {d8f655d3-ff96-4d13-8746-23cdeaf20c1f}, !- Handle CC VsdEq Unitary Speed Data List; !- Name OS:AirLoopHVAC:UnitarySystem, - {4f6eca8a-9b60-4d56-9587-a7547ebc39d4}, !- Handle + {a31dd916-30bf-4eb7-a2d6-7d7318eee2d2}, !- Handle Unitary CC DXVsd, !- Name Load, !- Control Type , !- Controlling Zone or Thermostat Location @@ -93,7 +93,7 @@ OS:AirLoopHVAC:UnitarySystem, , !- Supply Air Fan Operating Mode Schedule Name , !- Heating Coil Name 1, !- DX Heating Coil Sizing Ratio - {0860de88-7667-4700-9a2d-38f1223933e6}, !- Cooling Coil Name + {3509b1fa-1329-4dde-afc9-e3f113a8d734}, !- Cooling Coil Name No, !- Use DOAS DX Cooling Coil 2, !- DOAS DX Cooling Coil Leaving Minimum Air Temperature {C} SensibleOnlyLoadControl, !- Latent Load Control @@ -126,7 +126,7 @@ OS:AirLoopHVAC:UnitarySystem, 1; !- Ancilliary Off-Cycle Electric Power {W} OS:Coil:Cooling:DX:VariableSpeed, - {0860de88-7667-4700-9a2d-38f1223933e6}, !- Handle + {3509b1fa-1329-4dde-afc9-e3f113a8d734}, !- Handle CC DXVsd Unitary, !- Name , !- Indoor Air Inlet Node Name , !- Indoor Air Outlet Node Name @@ -135,7 +135,7 @@ OS:Coil:Cooling:DX:VariableSpeed, autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} 0.02, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} - {34959e1b-6dca-4588-b2db-66d0607abe56}, !- Energy Part Load Fraction Curve Name + {aa15dcfd-0a00-448f-b420-6d0ee722f943}, !- Energy Part Load Fraction Curve Name , !- Condenser Air Inlet Node Name AirCooled, !- Condenser Type 0, !- Evaporative Condenser Pump Rated Power Consumption {W} @@ -147,10 +147,10 @@ OS:Coil:Cooling:DX:VariableSpeed, 0, !- Basin Heater Capacity {W/K} 2, !- Basin Heater Setpoint Temperature {C} , !- Basin Heater Operating Schedule Name - {3a6074a8-8b5e-40da-b92a-c924d37e7792}; !- Speed Data List + {12b10568-1201-45ca-a886-7b648a045819}; !- Speed Data List OS:Curve:Quadratic, - {34959e1b-6dca-4588-b2db-66d0607abe56}, !- Handle + {aa15dcfd-0a00-448f-b420-6d0ee722f943}, !- Handle CC DXVsd Unitary EnergyPartLoadFractionCurve, !- Name 0.85, !- Coefficient1 Constant 0.15, !- Coefficient2 x @@ -159,11 +159,11 @@ OS:Curve:Quadratic, 1; !- Maximum Value of x OS:ModelObjectList, - {3a6074a8-8b5e-40da-b92a-c924d37e7792}, !- Handle + {12b10568-1201-45ca-a886-7b648a045819}, !- Handle CC DXVsd Unitary Speed Data List; !- Name OS:AirLoopHVAC:UnitarySystem, - {4ad30900-1eea-4b5b-848e-4bad1da1f599}, !- Handle + {65947409-582c-417c-9bce-7d4835578ff6}, !- Handle Unitary HC VsdEq, !- Name Load, !- Control Type , !- Controlling Zone or Thermostat Location @@ -174,7 +174,7 @@ OS:AirLoopHVAC:UnitarySystem, , !- Supply Fan Name , !- Fan Placement , !- Supply Air Fan Operating Mode Schedule Name - {b946f1e5-2409-40d0-b63f-273ad450eb91}, !- Heating Coil Name + {ce7262f6-9de5-48b3-9ce3-b572561126b5}, !- Heating Coil Name 1, !- DX Heating Coil Sizing Ratio , !- Cooling Coil Name No, !- Use DOAS DX Cooling Coil @@ -209,7 +209,7 @@ OS:AirLoopHVAC:UnitarySystem, 1; !- Ancilliary Off-Cycle Electric Power {W} OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit, - {b946f1e5-2409-40d0-b63f-273ad450eb91}, !- Handle + {ce7262f6-9de5-48b3-9ce3-b572561126b5}, !- Handle HC VsdEq Unitary, !- Name , !- Water-to-Refrigerant HX Water Inlet Node Name , !- Water-to-Refrigerant HX Water Outlet Node Name @@ -219,11 +219,11 @@ OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit, autosize, !- Rated Heating Capacity At Selected Nominal Speed Level {W} autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} - {73c08482-9b9e-4117-8dc5-9bb0a03afe86}, !- Energy Part Load Fraction Curve Name - {7a29274f-0e0c-4097-8f33-d4880bddb88a}; !- Speed Data List + {f155cd8c-5475-4c37-8272-5ceb27e1bb45}, !- Energy Part Load Fraction Curve Name + {509a5102-a4a9-4907-aa57-7d0c0c438a8b}; !- Speed Data List OS:Curve:Quadratic, - {73c08482-9b9e-4117-8dc5-9bb0a03afe86}, !- Handle + {f155cd8c-5475-4c37-8272-5ceb27e1bb45}, !- Handle Curve Quadratic 2, !- Name 0.85, !- Coefficient1 Constant 0.15, !- Coefficient2 x @@ -232,11 +232,11 @@ OS:Curve:Quadratic, 1; !- Maximum Value of x OS:ModelObjectList, - {7a29274f-0e0c-4097-8f33-d4880bddb88a}, !- Handle + {509a5102-a4a9-4907-aa57-7d0c0c438a8b}, !- Handle HC VsdEq Unitary Speed Data List; !- Name OS:AirLoopHVAC:UnitarySystem, - {1879a143-0473-403f-b0db-80f1d124f408}, !- Handle + {50b4bee3-2429-4c28-acab-e9f3d0be16b8}, !- Handle Unitary Both VsdEq, !- Name Load, !- Control Type , !- Controlling Zone or Thermostat Location @@ -247,9 +247,9 @@ OS:AirLoopHVAC:UnitarySystem, , !- Supply Fan Name , !- Fan Placement , !- Supply Air Fan Operating Mode Schedule Name - {07593fb1-3d18-44da-be7f-844f2cfcf583}, !- Heating Coil Name + {b02cd86d-69b5-47e7-af50-154601781732}, !- Heating Coil Name 1, !- DX Heating Coil Sizing Ratio - , !- Cooling Coil Name + {ec04f6a8-4557-4bdf-a244-62a7425eeab7}, !- Cooling Coil Name No, !- Use DOAS DX Cooling Coil 2, !- DOAS DX Cooling Coil Leaving Minimum Air Temperature {C} SensibleOnlyLoadControl, !- Latent Load Control @@ -281,22 +281,25 @@ OS:AirLoopHVAC:UnitarySystem, 2, !- Ancilliary On-Cycle Electric Power {W} 1; !- Ancilliary Off-Cycle Electric Power {W} -OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit, - {b64c86b4-b567-4135-a5cd-6f54cbdca0c1}, !- Handle +OS:Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, + {ec04f6a8-4557-4bdf-a244-62a7425eeab7}, !- Handle CC VsdEq Unitary Both, !- Name , !- Water-to-Refrigerant HX Water Inlet Node Name , !- Water-to-Refrigerant HX Water Outlet Node Name , !- Indoor Air Inlet Node Name , !- Indoor Air Outlet Node Name 1, !- Nominal Speed Level {dimensionless} - autosize, !- Rated Heating Capacity At Selected Nominal Speed Level {W} + autosize, !- Gross Rated Total Cooling Capacity At Selected Nominal Speed Level {W} autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} - {a36363d8-639d-45aa-b627-e0bb56340f38}, !- Energy Part Load Fraction Curve Name - {0a3f1904-210d-4d17-9f72-6c7794fe681b}; !- Speed Data List + 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} + 0.02, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + Yes, !- Use Hot Gas Reheat + {2385fac1-8934-46bf-b460-aadf5ba84360}, !- Energy Part Load Fraction Curve Name + {55909c8f-1c11-4868-84a5-6209e47d09ff}; !- Speed Data List OS:Curve:Quadratic, - {a36363d8-639d-45aa-b627-e0bb56340f38}, !- Handle + {2385fac1-8934-46bf-b460-aadf5ba84360}, !- Handle Curve Quadratic 3, !- Name 0.85, !- Coefficient1 Constant 0.15, !- Coefficient2 x @@ -305,11 +308,11 @@ OS:Curve:Quadratic, 1; !- Maximum Value of x OS:ModelObjectList, - {0a3f1904-210d-4d17-9f72-6c7794fe681b}, !- Handle + {55909c8f-1c11-4868-84a5-6209e47d09ff}, !- Handle CC VsdEq Unitary Both Speed Data List; !- Name OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit, - {07593fb1-3d18-44da-be7f-844f2cfcf583}, !- Handle + {b02cd86d-69b5-47e7-af50-154601781732}, !- Handle HC VsdEq Unitary Both, !- Name , !- Water-to-Refrigerant HX Water Inlet Node Name , !- Water-to-Refrigerant HX Water Outlet Node Name @@ -319,11 +322,11 @@ OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit, autosize, !- Rated Heating Capacity At Selected Nominal Speed Level {W} autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} - {c975eb7e-176f-453f-a309-8c434195da7d}, !- Energy Part Load Fraction Curve Name - {0f66ac78-a623-4eb7-aa65-8ba00f098326}; !- Speed Data List + {52e933d5-4005-4c4a-b5e9-ad5c6e46edcd}, !- Energy Part Load Fraction Curve Name + {9ea88679-68b4-43ea-8ad3-d82c3a81bf01}; !- Speed Data List OS:Curve:Quadratic, - {c975eb7e-176f-453f-a309-8c434195da7d}, !- Handle + {52e933d5-4005-4c4a-b5e9-ad5c6e46edcd}, !- Handle Curve Quadratic 4, !- Name 0.85, !- Coefficient1 Constant 0.15, !- Coefficient2 x @@ -332,6 +335,6 @@ OS:Curve:Quadratic, 1; !- Maximum Value of x OS:ModelObjectList, - {0f66ac78-a623-4eb7-aa65-8ba00f098326}, !- Handle + {9ea88679-68b4-43ea-8ad3-d82c3a81bf01}, !- Handle HC VsdEq Unitary Both Speed Data List; !- Name diff --git a/src/osversion/test/3_7_0/test_vt_Coils_Latent_wahp.osm b/src/osversion/test/3_7_0/test_vt_Coils_Latent_wahp.osm index d34c5b6b0ab..b8dbd9042d1 100644 --- a/src/osversion/test/3_7_0/test_vt_Coils_Latent_wahp.osm +++ b/src/osversion/test/3_7_0/test_vt_Coils_Latent_wahp.osm @@ -1,12 +1,12 @@ OS:Version, - {f8f2a87c-9610-498f-8b91-dcd4ca397b6d}, !- Handle + {e95f4061-757f-4a95-b7a5-debbf870adf7}, !- Handle 3.6.1; !- Version Identifier OS:Fan:OnOff, - {ed39fd56-9103-417c-8094-e262bfd58bc9}, !- Handle + {be6ef059-b770-4941-a99b-f8eec32ba48c}, !- Handle WAHP Eq Fan On Off, !- Name - {882b93c0-d281-4489-8f22-bc75a9d62eb7}, !- Availability Schedule Name + {6ffab889-b571-4d82-8102-94f1f2adec3c}, !- Availability Schedule Name 0.6, !- Fan Total Efficiency 300, !- Pressure Rise {Pa} autosize, !- Maximum Flow Rate {m3/s} @@ -14,18 +14,18 @@ OS:Fan:OnOff, 1, !- Motor In Airstream Fraction , !- Air Inlet Node Name , !- Air Outlet Node Name - {89ac396a-7f95-44d1-aa6f-cad408033997}, !- Fan Power Ratio Function of Speed Ratio Curve Name - {5273bf34-61b6-4151-b3da-6188d60769bf}, !- Fan Efficiency Ratio Function of Speed Ratio Curve Name + {7e668d86-0c4f-4ac0-a39c-8b7bc2d5a016}, !- Fan Power Ratio Function of Speed Ratio Curve Name + {e6718264-5e6c-45f1-a096-4fdec9096174}, !- Fan Efficiency Ratio Function of Speed Ratio Curve Name ; !- End-Use Subcategory OS:Schedule:Constant, - {882b93c0-d281-4489-8f22-bc75a9d62eb7}, !- Handle + {6ffab889-b571-4d82-8102-94f1f2adec3c}, !- Handle Always On Discrete, !- Name - {b869b5f1-d09f-4955-8ec2-349918622da4}, !- Schedule Type Limits Name + {1a9029f3-a017-4d44-8aa7-85d49b899d18}, !- Schedule Type Limits Name 1; !- Value OS:ScheduleTypeLimits, - {b869b5f1-d09f-4955-8ec2-349918622da4}, !- Handle + {1a9029f3-a017-4d44-8aa7-85d49b899d18}, !- Handle OnOff, !- Name 0, !- Lower Limit Value 1, !- Upper Limit Value @@ -33,7 +33,7 @@ OS:ScheduleTypeLimits, Availability; !- Unit Type OS:Curve:Exponent, - {89ac396a-7f95-44d1-aa6f-cad408033997}, !- Handle + {7e668d86-0c4f-4ac0-a39c-8b7bc2d5a016}, !- Handle Fan On Off Power Curve, !- Name 1, !- Coefficient1 Constant 0, !- Coefficient2 Constant @@ -46,7 +46,7 @@ OS:Curve:Exponent, ; !- Output Unit Type OS:Curve:Cubic, - {5273bf34-61b6-4151-b3da-6188d60769bf}, !- Handle + {e6718264-5e6c-45f1-a096-4fdec9096174}, !- Handle Fan On Off Efficiency Curve, !- Name 1, !- Coefficient1 Constant 0, !- Coefficient2 x @@ -56,7 +56,7 @@ OS:Curve:Cubic, 1; !- Maximum Value of x OS:Coil:Cooling:WaterToAirHeatPump:EquationFit, - {7ac39e05-b3b3-4498-ab86-7d0eee006d29}, !- Handle + {d6db38b8-4461-4ea6-83e0-1395f52b9284}, !- Handle CC Eq WAHP, !- Name , !- Water Inlet Node Name , !- Water Outlet Node Name @@ -70,14 +70,14 @@ OS:Coil:Cooling:WaterToAirHeatPump:EquationFit, 30, !- Rated Entering Water Temperature {C} 27, !- Rated Entering Air Dry-Bulb Temperature {C} 19, !- Rated Entering Air Wet-Bulb Temperature {C} - {b4c9f3d9-810a-4407-9476-f1452ccbaad6}, !- Total Cooling Capacity Curve Name - {74124275-392f-43f0-8342-a32073aa3a89}, !- Sensible Cooling Capacity Curve Name - {747a012b-e0db-4669-80f5-f68c5b75c0e9}, !- Cooling Power Consumption Curve Name + {b76f513e-d7c5-4a3e-b4b5-d0c26ce4a447}, !- Total Cooling Capacity Curve Name + {a81b2fec-69f4-425c-bfc8-6757b4bd5052}, !- Sensible Cooling Capacity Curve Name + {fa6231dd-e754-46f9-9174-8224fe24d250}, !- Cooling Power Consumption Curve Name 1.5, !- Nominal Time for Condensate Removal to Begin {s} 0.02; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} OS:Curve:QuadLinear, - {b4c9f3d9-810a-4407-9476-f1452ccbaad6}, !- Handle + {b76f513e-d7c5-4a3e-b4b5-d0c26ce4a447}, !- Handle TotCoolCapCurve, !- Name -0.68126221, !- Coefficient1 Constant 1.99529297, !- Coefficient2 w @@ -94,7 +94,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuintLinear, - {74124275-392f-43f0-8342-a32073aa3a89}, !- Handle + {a81b2fec-69f4-425c-bfc8-6757b4bd5052}, !- Handle Curve Quint Linear 1, !- Name 2.24209455, !- Coefficient1 Constant 7.28913391, !- Coefficient2 v @@ -114,7 +114,7 @@ OS:Curve:QuintLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuadLinear, - {747a012b-e0db-4669-80f5-f68c5b75c0e9}, !- Handle + {fa6231dd-e754-46f9-9174-8224fe24d250}, !- Handle CC Eq WAHP coolingPowerConsumptionCurve, !- Name -3.20456384, !- Coefficient1 Constant 0.47656454, !- Coefficient2 w @@ -131,7 +131,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Coil:Heating:WaterToAirHeatPump:EquationFit, - {bae2f1f9-e6dd-4d52-853e-8a996ef09fd2}, !- Handle + {62441607-6ae4-4bf3-99cb-59d38a748ffe}, !- Handle HC Eq WAHP, !- Name , !- Water Inlet Node Name , !- Water Outlet Node Name @@ -144,11 +144,11 @@ OS:Coil:Heating:WaterToAirHeatPump:EquationFit, 20, !- Rated Entering Water Temperature {C} 20, !- Rated Entering Air Dry-Bulb Temperature {C} 1, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity - {1c56ac72-9b14-49fe-9f3b-d5c9cc786b28}, !- Heating Capacity Curve Name - {f644103d-0c10-4f49-ba7b-6097e532b0b6}; !- Heating Power Consumption Curve Name + {7839a406-cd11-4c13-97d2-990238d62954}, !- Heating Capacity Curve Name + {2e1711a7-0983-4db7-bf09-7bd63c0168d7}; !- Heating Power Consumption Curve Name OS:Curve:QuadLinear, - {1c56ac72-9b14-49fe-9f3b-d5c9cc786b28}, !- Handle + {7839a406-cd11-4c13-97d2-990238d62954}, !- Handle Curve Quad Linear 1, !- Name -5.50102734, !- Coefficient1 Constant -0.96688754, !- Coefficient2 w @@ -165,7 +165,7 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Curve:QuadLinear, - {f644103d-0c10-4f49-ba7b-6097e532b0b6}, !- Handle + {2e1711a7-0983-4db7-bf09-7bd63c0168d7}, !- Handle HC Eq WAHP heatingPowerConsumptionCurve, !- Name -7.47517858, !- Coefficient1 Constant 6.40876653, !- Coefficient2 w @@ -182,18 +182,18 @@ OS:Curve:QuadLinear, 100; !- Maximum Value of z {BasedOnField A5} OS:Coil:Heating:Electric, - {cdb5600f-c6fe-45f7-bda4-83d6c6391a11}, !- Handle + {eebbbbfd-9d32-4f6a-b347-db6fb211fa46}, !- Handle Coil Heating Electric 1, !- Name - {882b93c0-d281-4489-8f22-bc75a9d62eb7}, !- Availability Schedule Name + {6ffab889-b571-4d82-8102-94f1f2adec3c}, !- Availability Schedule Name , !- Efficiency , !- Nominal Capacity {W} , !- Air Inlet Node Name ; !- Air Outlet Node Name OS:ZoneHVAC:WaterToAirHeatPump, - {96b365c4-7cfc-4eda-8ab5-15d495c07abc}, !- Handle + {6a4d1d4f-a792-4275-ad2a-70cf51419564}, !- Handle WAHP Eq, !- Name - {882b93c0-d281-4489-8f22-bc75a9d62eb7}, !- Availability Schedule Name + {6ffab889-b571-4d82-8102-94f1f2adec3c}, !- Availability Schedule Name , !- Air Inlet Node Name , !- Air Outlet Node Name , !- Outdoor Air Mixer Name @@ -203,14 +203,14 @@ OS:ZoneHVAC:WaterToAirHeatPump, autosize, !- Outdoor Air Flow Rate During Cooling Operation {m3/s} autosize, !- Outdoor Air Flow Rate During Heating Operation {m3/s} Autosize, !- Outdoor Air Flow Rate When No Cooling or Heating is Needed {m3/s} - {ed39fd56-9103-417c-8094-e262bfd58bc9}, !- Supply Air Fan Name - {bae2f1f9-e6dd-4d52-853e-8a996ef09fd2}, !- Heating Coil Name - {7ac39e05-b3b3-4498-ab86-7d0eee006d29}, !- Cooling Coil Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} - {cdb5600f-c6fe-45f7-bda4-83d6c6391a11}, !- Supplemental Heating Coil Name + {be6ef059-b770-4941-a99b-f8eec32ba48c}, !- Supply Air Fan Name + {62441607-6ae4-4bf3-99cb-59d38a748ffe}, !- Heating Coil Name + {d6db38b8-4461-4ea6-83e0-1395f52b9284}, !- Cooling Coil Name + 3.5, !- Maximum Cycling Rate {cycles/hr} + 90, !- Heat Pump Time Constant {s} + 0.05, !- Fraction of On-Cycle Power Use + 120, !- Heat Pump Fan Delay Time {s} + {eebbbbfd-9d32-4f6a-b347-db6fb211fa46}, !- Supplemental Heating Coil Name Autosize, !- Maximum Supply Air Temperature from Supplemental Heater {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name @@ -219,9 +219,9 @@ OS:ZoneHVAC:WaterToAirHeatPump, ; !- Availability Manager List Name OS:Fan:OnOff, - {140e8a6b-77ea-444c-95cf-5d958a19e739}, !- Handle + {df490ecd-9cf8-4b4c-8617-cce4cdfafdc6}, !- Handle WAHP VsdEq Fan On Off, !- Name - {882b93c0-d281-4489-8f22-bc75a9d62eb7}, !- Availability Schedule Name + {6ffab889-b571-4d82-8102-94f1f2adec3c}, !- Availability Schedule Name 0.6, !- Fan Total Efficiency 300, !- Pressure Rise {Pa} autosize, !- Maximum Flow Rate {m3/s} @@ -229,12 +229,12 @@ OS:Fan:OnOff, 1, !- Motor In Airstream Fraction , !- Air Inlet Node Name , !- Air Outlet Node Name - {d06e7052-50ee-4e19-b94b-8b56d0784669}, !- Fan Power Ratio Function of Speed Ratio Curve Name - {05e330b0-bca5-4dda-9858-d05f58600c48}, !- Fan Efficiency Ratio Function of Speed Ratio Curve Name + {563382ba-6b37-4dc3-8358-f9582b125b4e}, !- Fan Power Ratio Function of Speed Ratio Curve Name + {b7732203-fc6d-4aff-a962-894c1bc3bbe3}, !- Fan Efficiency Ratio Function of Speed Ratio Curve Name ; !- End-Use Subcategory OS:Curve:Exponent, - {d06e7052-50ee-4e19-b94b-8b56d0784669}, !- Handle + {563382ba-6b37-4dc3-8358-f9582b125b4e}, !- Handle Fan On Off Power Curve 1, !- Name 1, !- Coefficient1 Constant 0, !- Coefficient2 Constant @@ -247,7 +247,7 @@ OS:Curve:Exponent, ; !- Output Unit Type OS:Curve:Cubic, - {05e330b0-bca5-4dda-9858-d05f58600c48}, !- Handle + {b7732203-fc6d-4aff-a962-894c1bc3bbe3}, !- Handle Fan On Off Efficiency Curve 1, !- Name 1, !- Coefficient1 Constant 0, !- Coefficient2 x @@ -256,145 +256,76 @@ OS:Curve:Cubic, 0, !- Minimum Value of x 1; !- Maximum Value of x -OS:Coil:Cooling:WaterToAirHeatPump:EquationFit, - {cd996144-4778-43f0-87e8-262c0a560a95}, !- Handle - CC Eq WAHP 1, !- Name - , !- Water Inlet Node Name - , !- Water Outlet Node Name - , !- Air Inlet Node Name - , !- Air Outlet Node Name - , !- Rated Air Flow Rate {m3/s} - , !- Rated Water Flow Rate {m3/s} - , !- Rated Total Cooling Capacity {W} - , !- Rated Sensible Cooling Capacity {W} - , !- Rated Cooling Coefficient of Performance {W/W} - 30, !- Rated Entering Water Temperature {C} - 27, !- Rated Entering Air Dry-Bulb Temperature {C} - 19, !- Rated Entering Air Wet-Bulb Temperature {C} - {e1ae2a76-e688-46cd-951d-b3accd7c7bca}, !- Total Cooling Capacity Curve Name - {e22c473b-3ddb-4e20-b0e5-e8581c2a05b4}, !- Sensible Cooling Capacity Curve Name - {2abee678-212e-454b-be5f-8dd546ae8a64}, !- Cooling Power Consumption Curve Name - 1.5, !- Nominal Time for Condensate Removal to Begin {s} - 0.02; !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless} +OS:Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit, + {7a3cdd30-5377-4938-8f65-434024243e0e}, !- Handle + CC VsdEq WAHP, !- Name + , !- Water-to-Refrigerant HX Water Inlet Node Name + , !- Water-to-Refrigerant HX Water Outlet Node Name + , !- Indoor Air Inlet Node Name + , !- Indoor Air Outlet Node Name + 1, !- Nominal Speed Level {dimensionless} + autosize, !- Gross Rated Total Cooling Capacity At Selected Nominal Speed Level {W} + autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} + autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} + 0, !- Nominal Time for Condensate to Begin Leaving the Coil {s} + 0.02, !- Initial Moisture Evaporation Rate Divided by Steady-State AC Latent Capacity {dimensionless} + Yes, !- Use Hot Gas Reheat + {2bd9828a-fdcb-4c90-96a8-c94083beedf5}, !- Energy Part Load Fraction Curve Name + {3fb91474-33da-464b-bacd-a211b64e18d3}; !- Speed Data List -OS:Curve:QuadLinear, - {e1ae2a76-e688-46cd-951d-b3accd7c7bca}, !- Handle - TotCoolCapCurve 1, !- Name - -0.68126221, !- Coefficient1 Constant - 1.99529297, !- Coefficient2 w - -0.93611888, !- Coefficient3 x - 0.02081177, !- Coefficient4 y - 0.008438868, !- Coefficient5 z - -100, !- Minimum Value of w {BasedOnField A2} - 100, !- Maximum Value of w {BasedOnField A2} - -100, !- Minimum Value of x {BasedOnField A3} - 100, !- Maximum Value of x {BasedOnField A3} - 0, !- Minimum Value of y {BasedOnField A4} - 100, !- Maximum Value of y {BasedOnField A4} - 0, !- Minimum Value of z {BasedOnField A5} - 100; !- Maximum Value of z {BasedOnField A5} +OS:Curve:Quadratic, + {2bd9828a-fdcb-4c90-96a8-c94083beedf5}, !- Handle + Curve Quadratic 1, !- Name + 0.85, !- Coefficient1 Constant + 0.15, !- Coefficient2 x + 0, !- Coefficient3 x**2 + 0, !- Minimum Value of x + 1; !- Maximum Value of x -OS:Curve:QuintLinear, - {e22c473b-3ddb-4e20-b0e5-e8581c2a05b4}, !- Handle - Curve Quint Linear 2, !- Name - 2.24209455, !- Coefficient1 Constant - 7.28913391, !- Coefficient2 v - -9.06079896, !- Coefficient3 w - -0.36729404, !- Coefficient4 x - 0.218826161, !- Coefficient5 y - 0.00901534, !- Coefficient6 z - -100, !- Minimum Value of v {BasedOnField A2} - 100, !- Maximum Value of v {BasedOnField A2} - -100, !- Minimum Value of w {BasedOnField A2} - 100, !- Maximum Value of w {BasedOnField A2} - -100, !- Minimum Value of x {BasedOnField A3} - 100, !- Maximum Value of x {BasedOnField A3} - 0, !- Minimum Value of y {BasedOnField A4} - 100, !- Maximum Value of y {BasedOnField A4} - 0, !- Minimum Value of z {BasedOnField A5} - 100; !- Maximum Value of z {BasedOnField A5} +OS:ModelObjectList, + {3fb91474-33da-464b-bacd-a211b64e18d3}, !- Handle + CC VsdEq WAHP Speed Data List; !- Name -OS:Curve:QuadLinear, - {2abee678-212e-454b-be5f-8dd546ae8a64}, !- Handle - CC Eq WAHP coolingPowerConsumptionCurve 1, !- Name - -3.20456384, !- Coefficient1 Constant - 0.47656454, !- Coefficient2 w - 3.16734236, !- Coefficient3 x - 0.10244637, !- Coefficient4 y - -0.038132556, !- Coefficient5 z - -100, !- Minimum Value of w {BasedOnField A2} - 100, !- Maximum Value of w {BasedOnField A2} - -100, !- Minimum Value of x {BasedOnField A3} - 100, !- Maximum Value of x {BasedOnField A3} - 0, !- Minimum Value of y {BasedOnField A4} - 100, !- Maximum Value of y {BasedOnField A4} - 0, !- Minimum Value of z {BasedOnField A5} - 100; !- Maximum Value of z {BasedOnField A5} +OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit, + {d930792a-94c6-4240-8c86-3718c5c60155}, !- Handle + HC VsdEq WAHP, !- Name + , !- Water-to-Refrigerant HX Water Inlet Node Name + , !- Water-to-Refrigerant HX Water Outlet Node Name + , !- Indoor Air Inlet Node Name + , !- Indoor Air Outlet Node Name + 1, !- Nominal Speed Level {dimensionless} + autosize, !- Rated Heating Capacity At Selected Nominal Speed Level {W} + autosize, !- Rated Air Flow Rate At Selected Nominal Speed Level {m3/s} + autosize, !- Rated Water Flow Rate At Selected Nominal Speed Level {m3/s} + {37f725da-0f8d-4c86-8d7f-2f6bd203aa34}, !- Energy Part Load Fraction Curve Name + {6bd41afd-202a-4058-b442-8e0a1b9a85f8}; !- Speed Data List -OS:Coil:Heating:WaterToAirHeatPump:EquationFit, - {26ecd4e4-1ae3-4165-a4e5-075a055b7a30}, !- Handle - HC Eq WAHP 1, !- Name - , !- Water Inlet Node Name - , !- Water Outlet Node Name - , !- Air Inlet Node Name - , !- Air Outlet Node Name - , !- Rated Air Flow Rate {m3/s} - , !- Rated Water Flow Rate {m3/s} - , !- Rated Heating Capacity {W} - , !- Rated Heating Coefficient of Performance {W/W} - 20, !- Rated Entering Water Temperature {C} - 20, !- Rated Entering Air Dry-Bulb Temperature {C} - 1, !- Ratio of Rated Heating Capacity to Rated Cooling Capacity - {567f46ee-ec04-4e5b-b087-4611cdd9f616}, !- Heating Capacity Curve Name - {cfce6f93-5047-4210-8099-08748354bc6a}; !- Heating Power Consumption Curve Name - -OS:Curve:QuadLinear, - {567f46ee-ec04-4e5b-b087-4611cdd9f616}, !- Handle - Curve Quad Linear 2, !- Name - -5.50102734, !- Coefficient1 Constant - -0.96688754, !- Coefficient2 w - 7.70755007, !- Coefficient3 x - 0.031928881, !- Coefficient4 y - 0.028112522, !- Coefficient5 z - -100, !- Minimum Value of w {BasedOnField A2} - 100, !- Maximum Value of w {BasedOnField A2} - -100, !- Minimum Value of x {BasedOnField A3} - 100, !- Maximum Value of x {BasedOnField A3} - 0, !- Minimum Value of y {BasedOnField A4} - 100, !- Maximum Value of y {BasedOnField A4} - 0, !- Minimum Value of z {BasedOnField A5} - 100; !- Maximum Value of z {BasedOnField A5} +OS:Curve:Quadratic, + {37f725da-0f8d-4c86-8d7f-2f6bd203aa34}, !- Handle + Curve Quadratic 2, !- Name + 0.85, !- Coefficient1 Constant + 0.15, !- Coefficient2 x + 0, !- Coefficient3 x**2 + 0, !- Minimum Value of x + 1; !- Maximum Value of x -OS:Curve:QuadLinear, - {cfce6f93-5047-4210-8099-08748354bc6a}, !- Handle - HC Eq WAHP heatingPowerConsumptionCurve 1, !- Name - -7.47517858, !- Coefficient1 Constant - 6.40876653, !- Coefficient2 w - 1.99711665, !- Coefficient3 x - -0.050682973, !- Coefficient4 y - 0.011385145, !- Coefficient5 z - -100, !- Minimum Value of w {BasedOnField A2} - 100, !- Maximum Value of w {BasedOnField A2} - -100, !- Minimum Value of x {BasedOnField A3} - 100, !- Maximum Value of x {BasedOnField A3} - 0, !- Minimum Value of y {BasedOnField A4} - 100, !- Maximum Value of y {BasedOnField A4} - 0, !- Minimum Value of z {BasedOnField A5} - 100; !- Maximum Value of z {BasedOnField A5} +OS:ModelObjectList, + {6bd41afd-202a-4058-b442-8e0a1b9a85f8}, !- Handle + HC VsdEq WAHP Speed Data List; !- Name OS:Coil:Heating:Electric, - {6f31e017-0573-46d8-a101-b383fddd9d49}, !- Handle + {991add8a-0221-4d41-ad53-76c4db6a111c}, !- Handle Coil Heating Electric 2, !- Name - {882b93c0-d281-4489-8f22-bc75a9d62eb7}, !- Availability Schedule Name + {6ffab889-b571-4d82-8102-94f1f2adec3c}, !- Availability Schedule Name , !- Efficiency , !- Nominal Capacity {W} , !- Air Inlet Node Name ; !- Air Outlet Node Name OS:ZoneHVAC:WaterToAirHeatPump, - {ec43b18f-1269-406b-88fb-769c4fea4bde}, !- Handle + {4b5d73a1-622e-4adb-aa71-9adef0a6e38c}, !- Handle WAHP VsdEq, !- Name - {882b93c0-d281-4489-8f22-bc75a9d62eb7}, !- Availability Schedule Name + {6ffab889-b571-4d82-8102-94f1f2adec3c}, !- Availability Schedule Name , !- Air Inlet Node Name , !- Air Outlet Node Name , !- Outdoor Air Mixer Name @@ -404,14 +335,14 @@ OS:ZoneHVAC:WaterToAirHeatPump, autosize, !- Outdoor Air Flow Rate During Cooling Operation {m3/s} autosize, !- Outdoor Air Flow Rate During Heating Operation {m3/s} Autosize, !- Outdoor Air Flow Rate When No Cooling or Heating is Needed {m3/s} - {140e8a6b-77ea-444c-95cf-5d958a19e739}, !- Supply Air Fan Name - {26ecd4e4-1ae3-4165-a4e5-075a055b7a30}, !- Heating Coil Name - {cd996144-4778-43f0-87e8-262c0a560a95}, !- Cooling Coil Name - , !- Maximum Cycling Rate {cycles/hr} - , !- Heat Pump Time Constant {s} - , !- Fraction of On-Cycle Power Use - , !- Heat Pump Fan Delay Time {s} - {6f31e017-0573-46d8-a101-b383fddd9d49}, !- Supplemental Heating Coil Name + {df490ecd-9cf8-4b4c-8617-cce4cdfafdc6}, !- Supply Air Fan Name + {d930792a-94c6-4240-8c86-3718c5c60155}, !- Heating Coil Name + {7a3cdd30-5377-4938-8f65-434024243e0e}, !- Cooling Coil Name + 3.5, !- Maximum Cycling Rate {cycles/hr} + 90, !- Heat Pump Time Constant {s} + 0.05, !- Fraction of On-Cycle Power Use + 120, !- Heat Pump Fan Delay Time {s} + {991add8a-0221-4d41-ad53-76c4db6a111c}, !- Supplemental Heating Coil Name Autosize, !- Maximum Supply Air Temperature from Supplemental Heater {C} , !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation {C} , !- Outdoor Dry-Bulb Temperature Sensor Node Name diff --git a/src/osversion/test/VersionTranslator_GTest.cpp b/src/osversion/test/VersionTranslator_GTest.cpp index a374a3a266c..fea016ccc0c 100644 --- a/src/osversion/test/VersionTranslator_GTest.cpp +++ b/src/osversion/test/VersionTranslator_GTest.cpp @@ -2555,12 +2555,12 @@ TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_GroundHeatExchangerVertical) { } TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_RatedFanPowerPerVolumeFlowRate) { - openstudio::path path = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_RatedFanPowerPerVolumeFlowRate.osm"); + openstudio::path osmPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_RatedFanPowerPerVolumeFlowRate.osm"); osversion::VersionTranslator vt; - boost::optional model = vt.loadModel(path); - ASSERT_TRUE(model) << "Failed to load " << path; + boost::optional model = vt.loadModel(osmPath); + ASSERT_TRUE(model) << "Failed to load " << osmPath; - openstudio::path outPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_RatedFanPowerPerVolumeFlowRate_updated.osm"); + openstudio::path outPath = osmPath.parent_path() / toPath(osmPath.stem().string() + "_updated" + osmPath.extension().string()); model->save(outPath, true); { @@ -2629,12 +2629,12 @@ TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_RatedFanPowerPerVolumeFlowR } TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_CrankcaseCurve) { - openstudio::path path = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_CrankcaseCurve.osm"); + openstudio::path osmPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_CrankcaseCurve.osm"); osversion::VersionTranslator vt; - boost::optional model = vt.loadModel(path); - ASSERT_TRUE(model) << "Failed to load " << path; + boost::optional model = vt.loadModel(osmPath); + ASSERT_TRUE(model) << "Failed to load " << osmPath; - openstudio::path outPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_CrankcaseCurve_updated.osm"); + openstudio::path outPath = osmPath.parent_path() / toPath(osmPath.stem().string() + "_updated" + osmPath.extension().string()); model->save(outPath, true); { std::vector coils = model->getObjectsByType("OS:Coil:Cooling:DX:CurveFit:Performance"); @@ -2835,12 +2835,12 @@ TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_CrankcaseCurve) { } TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_Latent_solo) { - openstudio::path path = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_Latent_solo.osm"); + openstudio::path osmPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_Latent_solo.osm"); osversion::VersionTranslator vt; - boost::optional model = vt.loadModel(path); - ASSERT_TRUE(model) << "Failed to load " << path; + boost::optional model = vt.loadModel(osmPath); + ASSERT_TRUE(model) << "Failed to load " << osmPath; - openstudio::path outPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_Latent_solo_updated.osm"); + openstudio::path outPath = osmPath.parent_path() / toPath(osmPath.stem().string() + "_updated" + osmPath.extension().string()); model->save(outPath, true); // I expect two Curve:Linear to have been created @@ -2974,12 +2974,12 @@ TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_Latent_solo) { } TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_Latent_unitary_eqfit) { - openstudio::path path = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_Latent_unitary_eqfit.osm"); + openstudio::path osmPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_Latent_unitary_eqfit.osm"); osversion::VersionTranslator vt; - boost::optional model = vt.loadModel(path); - ASSERT_TRUE(model) << "Failed to load " << path; + boost::optional model = vt.loadModel(osmPath); + ASSERT_TRUE(model) << "Failed to load " << osmPath; - openstudio::path outPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_Latent_unitary_eqfit_updated.osm"); + openstudio::path outPath = osmPath.parent_path() / toPath(osmPath.stem().string() + "_updated" + osmPath.extension().string()); model->save(outPath, true); constexpr double MAX_CYCLING_RATE = 3.5; @@ -3009,7 +3009,7 @@ TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_Latent_unitary_eqfit) { auto unitarys = model->getObjectsByType("OS:AirLoopHVAC:UnitarySystem"); ASSERT_EQ(3, unitarys.size()); - const size_t deletionIndex = 38; + constexpr size_t deletionIndex = 38; for (const auto& unitary : unitarys) { EXPECT_EQ("sensor", unitary.getString(deletionIndex - 1).get()); @@ -3019,8 +3019,8 @@ TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_Latent_unitary_eqfit) { } } - const int heatingCoilNameIndex = 11; - const int coolingCoilNameIndex = 13; + constexpr int heatingCoilNameIndex = 11; + constexpr int coolingCoilNameIndex = 13; { auto unitary = model->getObjectByTypeAndName("OS:AirLoopHVAC:UnitarySystem", "Unitary HC Eq").get(); @@ -3136,3 +3136,309 @@ TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_Latent_unitary_eqfit) { } } } + +TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_Latent_unitary_vsdeqfit) { + openstudio::path osmPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_Latent_unitary_vsdeqfit.osm"); + osversion::VersionTranslator vt; + boost::optional model = vt.loadModel(osmPath); + ASSERT_TRUE(model) << "Failed to load " << osmPath; + + openstudio::path outPath = osmPath.parent_path() / toPath(osmPath.stem().string() + "_updated" + osmPath.extension().string()); + model->save(outPath, true); + + constexpr double MAX_CYCLING_RATE = 3.5; + constexpr double HEAT_PUMP_TIME_CONSTANT = 90.0; + constexpr double HEAT_PUMP_FAN_DELAY_TIME = 120.0; + + { + // I expect zero Curve:Linear to have been created as none of the coils need one + auto curves = model->getObjectsByType("OS:Curve:Linear"); + EXPECT_EQ(0, curves.size()); + } + + { + auto unitarys = model->getObjectsByType("OS:AirLoopHVAC:UnitarySystem"); + ASSERT_EQ(4, unitarys.size()); + + constexpr size_t deletionIndex = 38; + for (const auto& unitary : unitarys) { + + EXPECT_EQ("sensor", unitary.getString(deletionIndex - 1).get()); + + EXPECT_EQ(2.0, unitary.getDouble(deletionIndex).get()); + EXPECT_EQ(1.0, unitary.getDouble(deletionIndex + 1).get()); + } + } + + constexpr int heatingCoilNameIndex = 11; + constexpr int coolingCoilNameIndex = 13; + + { + auto unitary = model->getObjectByTypeAndName("OS:AirLoopHVAC:UnitarySystem", "Unitary HC VsdEq").get(); + ASSERT_TRUE(unitary.isEmpty(coolingCoilNameIndex)); + ASSERT_TRUE(unitary.getTarget(heatingCoilNameIndex)); + + { + auto coil = unitary.getTarget(heatingCoilNameIndex).get(); + ASSERT_EQ("OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit", coil.iddObject().name()); + + EXPECT_EQ(12, coil.numFields()); + + // It has no changes + ASSERT_TRUE(coil.getTarget(11)); + EXPECT_EQ("HC VsdEq Unitary Speed Data List", coil.getTarget(11)->nameString()); + } + } + + { + auto unitary = model->getObjectByTypeAndName("OS:AirLoopHVAC:UnitarySystem", "Unitary CC VsdEq").get(); + ASSERT_TRUE(unitary.isEmpty(heatingCoilNameIndex)); + ASSERT_TRUE(unitary.getTarget(coolingCoilNameIndex)); + + { + auto coil = unitary.getTarget(coolingCoilNameIndex).get(); + ASSERT_EQ("OS:Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit", coil.iddObject().name()); + + EXPECT_EQ(18, coil.numFields()); + + { + const size_t insertionIndex = 12; + EXPECT_EQ(0.02, coil.getDouble(insertionIndex - 1).get()); + + // From Unitary + EXPECT_EQ(MAX_CYCLING_RATE, coil.getDouble(insertionIndex).get()); // Maximum Cycling Rate + EXPECT_EQ(HEAT_PUMP_TIME_CONSTANT, coil.getDouble(insertionIndex + 1).get()); // Latent Capacity Time Constant + EXPECT_EQ(HEAT_PUMP_FAN_DELAY_TIME, coil.getDouble(insertionIndex + 2).get()); // Fan Delay Time + + EXPECT_EQ("Yes", coil.getString(insertionIndex + 3).get()); + } + + ASSERT_TRUE(coil.getTarget(17)); + EXPECT_EQ("CC VsdEq Unitary Speed Data List", coil.getTarget(17)->nameString()); + } + } + + { + auto unitary = model->getObjectByTypeAndName("OS:AirLoopHVAC:UnitarySystem", "Unitary CC DXVsd").get(); + ASSERT_TRUE(unitary.isEmpty(heatingCoilNameIndex)); + ASSERT_TRUE(unitary.getTarget(coolingCoilNameIndex)); + + { + auto coil = unitary.getTarget(coolingCoilNameIndex).get(); + ASSERT_EQ("OS:Coil:Cooling:DX:VariableSpeed", coil.iddObject().name()); + + EXPECT_EQ(26, coil.numFields()); + + { + const size_t insertionIndex = 9; + EXPECT_EQ(0.02, coil.getDouble(insertionIndex - 1).get()); + + // From Unitary + EXPECT_EQ(MAX_CYCLING_RATE, coil.getDouble(insertionIndex).get()); // Maximum Cycling Rate + EXPECT_EQ(HEAT_PUMP_TIME_CONSTANT, coil.getDouble(insertionIndex + 1).get()); // Latent Capacity Time Constant + EXPECT_EQ(HEAT_PUMP_FAN_DELAY_TIME, coil.getDouble(insertionIndex + 2).get()); // Fan Delay Time + + ASSERT_TRUE(coil.getTarget(insertionIndex + 3)); + EXPECT_EQ("CC DXVsd Unitary EnergyPartLoadFractionCurve", coil.getTarget(insertionIndex + 3)->nameString()); + } + + { + const size_t insertionIndex = 17; + EXPECT_EQ(100.0, coil.getDouble(insertionIndex - 1).get()); + + // Crankcase Heater Capacity Function of Temperature Curve Name + EXPECT_TRUE(coil.isEmpty(insertionIndex)); + + EXPECT_EQ(11.0, coil.getDouble(insertionIndex + 1).get()); + } + + // Last field: Part Load Fraction Correlation Curve Name + ASSERT_TRUE(coil.getTarget(25)); + EXPECT_EQ("CC DXVsd Unitary Speed Data List", coil.getTarget(25)->nameString()); + } + } + + { + auto unitary = model->getObjectByTypeAndName("OS:AirLoopHVAC:UnitarySystem", "Unitary Both VsdEq").get(); + ASSERT_TRUE(unitary.getTarget(heatingCoilNameIndex)); + ASSERT_TRUE(unitary.getTarget(coolingCoilNameIndex)); + + { + auto coil = unitary.getTarget(heatingCoilNameIndex).get(); + ASSERT_EQ("OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit", coil.iddObject().name()); + + EXPECT_EQ(12, coil.numFields()); + + // It has no changes + ASSERT_TRUE(coil.getTarget(11)); + EXPECT_EQ("HC VsdEq Unitary Both Speed Data List", coil.getTarget(11)->nameString()); + } + + { + auto coil = unitary.getTarget(coolingCoilNameIndex).get(); + ASSERT_EQ("OS:Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit", coil.iddObject().name()); + + EXPECT_EQ(18, coil.numFields()); + + { + const size_t insertionIndex = 12; + EXPECT_EQ(0.02, coil.getDouble(insertionIndex - 1).get()); + + // From Unitary + EXPECT_EQ(MAX_CYCLING_RATE, coil.getDouble(insertionIndex).get()); // Maximum Cycling Rate + EXPECT_EQ(HEAT_PUMP_TIME_CONSTANT, coil.getDouble(insertionIndex + 1).get()); // Latent Capacity Time Constant + EXPECT_EQ(HEAT_PUMP_FAN_DELAY_TIME, coil.getDouble(insertionIndex + 2).get()); // Fan Delay Time + + EXPECT_EQ("Yes", coil.getString(insertionIndex + 3).get()); + } + + ASSERT_TRUE(coil.getTarget(17)); + EXPECT_EQ("CC VsdEq Unitary Both Speed Data List", coil.getTarget(17)->nameString()); + } + } +} + +TEST_F(OSVersionFixture, update_3_6_1_to_3_7_0_Coils_Latent_wahp) { + openstudio::path osmPath = resourcesPath() / toPath("osversion/3_7_0/test_vt_Coils_Latent_wahp.osm"); + osversion::VersionTranslator vt; + boost::optional model = vt.loadModel(osmPath); + ASSERT_TRUE(model) << "Failed to load " << osmPath; + + openstudio::path outPath = osmPath.parent_path() / toPath(osmPath.stem().string() + "_updated" + osmPath.extension().string()); + model->save(outPath, true); + + constexpr double MAX_CYCLING_RATE = 3.5; + constexpr double HEAT_PUMP_TIME_CONSTANT = 90.0; + constexpr double HEAT_PUMP_FAN_DELAY_TIME = 120.0; + + constexpr double A = 4 * (HEAT_PUMP_TIME_CONSTANT / 3600.0) * MAX_CYCLING_RATE; + const double calculatedC2 = A * (1 - std::exp(-1 / A)); + const double calculatedC1 = (1 - calculatedC2); + + EXPECT_DOUBLE_EQ(0.670101416743666, calculatedC1); + EXPECT_DOUBLE_EQ(0.329898583256334, calculatedC2); + + { + // I expect one Curve:Linear to have been created: + // * One for the WAHP with EquationFit + // * Zero for the WAHP with VariableSpeedEquationFit coils + auto curves = model->getObjectsByType("OS:Curve:Linear"); + ASSERT_EQ(1, curves.size()); + + EXPECT_TRUE(std::all_of(curves.cbegin(), curves.cend(), + [](const auto& curve) { return curve.nameString().find("AutogeneratedPLFCurve") != std::string::npos; })); + } + + { + auto wahps = model->getObjectsByType("OS:ZoneHVAC:WaterToAirHeatPump"); + ASSERT_EQ(2, wahps.size()); + + constexpr size_t deletionIndex = 15; + for (const auto& wahp : wahps) { + + // Before: cooling coil name + EXPECT_TRUE(wahp.getTarget(deletionIndex - 1)); + + // After: supplemental heating coil + EXPECT_TRUE(wahp.getTarget(deletionIndex)); + + EXPECT_EQ("OS:Coil:Heating:Electric", wahp.getTarget(deletionIndex)->iddObject().name()); + } + } + + constexpr int heatingCoilNameIndex = 13; + constexpr int coolingCoilNameIndex = 14; + + { + auto wahp = model->getObjectByTypeAndName("OS:ZoneHVAC:WaterToAirHeatPump", "WAHP Eq").get(); + ASSERT_TRUE(wahp.getTarget(heatingCoilNameIndex)); + ASSERT_TRUE(wahp.getTarget(coolingCoilNameIndex)); + + { + auto coil = wahp.getTarget(heatingCoilNameIndex).get(); + ASSERT_EQ("OS:Coil:Heating:WaterToAirHeatPump:EquationFit", coil.iddObject().name()); + + EXPECT_EQ(16, coil.numFields()); + + // Previous last field: Heating Power Consumption Curve Name + ASSERT_TRUE(coil.getTarget(14)); + EXPECT_EQ("HC Eq WAHP heatingPowerConsumptionCurve", coil.getTarget(14)->nameString()); + + ASSERT_TRUE(coil.getTarget(15)); + EXPECT_EQ("WAHP Eq-AutogeneratedPLFCurve", coil.getTarget(15)->nameString()); + EXPECT_DOUBLE_EQ(calculatedC1, coil.getTarget(15)->getDouble(2).get()); + EXPECT_DOUBLE_EQ(calculatedC2, coil.getTarget(15)->getDouble(3).get()); + } + + { + auto coil = wahp.getTarget(coolingCoilNameIndex).get(); + ASSERT_EQ("OS:Coil:Cooling:WaterToAirHeatPump:EquationFit", coil.iddObject().name()); + + EXPECT_EQ(23, coil.numFields()); + + { + const size_t insertionIndex = 17; + ASSERT_TRUE(coil.getTarget(insertionIndex - 1)); + EXPECT_EQ("CC Eq WAHP coolingPowerConsumptionCurve", coil.getTarget(insertionIndex - 1)->nameString()); + + // Part Load Fraction Correlation Curve Name + ASSERT_TRUE(coil.getTarget(insertionIndex)); + EXPECT_EQ("WAHP Eq-AutogeneratedPLFCurve", coil.getTarget(insertionIndex)->nameString()); + EXPECT_DOUBLE_EQ(calculatedC1, coil.getTarget(insertionIndex)->getDouble(2).get()); + EXPECT_DOUBLE_EQ(calculatedC2, coil.getTarget(insertionIndex)->getDouble(3).get()); + + EXPECT_EQ(1.5, coil.getDouble(insertionIndex + 1).get()); + } + + // Previous last field: Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity + EXPECT_EQ(0.02, coil.getDouble(19).get()); + + { + const size_t insertionIndex = 20; + // From WAHP + EXPECT_EQ(MAX_CYCLING_RATE, coil.getDouble(insertionIndex).get()); // Maximum Cycling Rate + EXPECT_EQ(HEAT_PUMP_TIME_CONSTANT, coil.getDouble(insertionIndex + 1).get()); // Latent Capacity Time Constant + EXPECT_EQ(HEAT_PUMP_FAN_DELAY_TIME, coil.getDouble(insertionIndex + 2).get()); // Fan Delay Time + } + } + } + + { + auto wahp = model->getObjectByTypeAndName("OS:ZoneHVAC:WaterToAirHeatPump", "WAHP VsdEq").get(); + ASSERT_TRUE(wahp.getTarget(heatingCoilNameIndex)); + ASSERT_TRUE(wahp.getTarget(coolingCoilNameIndex)); + + { + auto coil = wahp.getTarget(heatingCoilNameIndex).get(); + ASSERT_EQ("OS:Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit", coil.iddObject().name()); + + EXPECT_EQ(12, coil.numFields()); + + // It has no changes + ASSERT_TRUE(coil.getTarget(11)); + EXPECT_EQ("HC VsdEq WAHP Speed Data List", coil.getTarget(11)->nameString()); + } + + { + auto coil = wahp.getTarget(coolingCoilNameIndex).get(); + ASSERT_EQ("OS:Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit", coil.iddObject().name()); + + EXPECT_EQ(18, coil.numFields()); + + { + const size_t insertionIndex = 12; + EXPECT_EQ(0.02, coil.getDouble(insertionIndex - 1).get()); + + // From WAHP + EXPECT_EQ(MAX_CYCLING_RATE, coil.getDouble(insertionIndex).get()); // Maximum Cycling Rate + EXPECT_EQ(HEAT_PUMP_TIME_CONSTANT, coil.getDouble(insertionIndex + 1).get()); // Latent Capacity Time Constant + EXPECT_EQ(HEAT_PUMP_FAN_DELAY_TIME, coil.getDouble(insertionIndex + 2).get()); // Fan Delay Time + + EXPECT_EQ("Yes", coil.getString(insertionIndex + 3).get()); + } + + ASSERT_TRUE(coil.getTarget(17)); + EXPECT_EQ("CC VsdEq WAHP Speed Data List", coil.getTarget(17)->nameString()); + } + } +}