Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Followup to #4575 #4691

Merged
merged 6 commits into from
Sep 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 6 additions & 12 deletions src/model/CoilCoolingDXSingleSpeed.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -922,11 +922,8 @@ namespace model {
setEnergyInputRatioFunctionOfTemperatureCurve(energyInputRatioFofTemp);
setEnergyInputRatioFunctionOfFlowFractionCurve(energyInputRatioFofFlow);
setPartLoadFractionCorrelationCurve(partLoadFraction);
setEvaporativeCondenserEffectiveness(0.0);
autosizeEvaporativeCondenserAirFlowRate(); //autosize
autosizeEvaporativeCondenserPumpRatedPowerConsumption(); //autosize
setCrankcaseHeaterCapacity(0.0);
setMaximumOutdoorDryBulbTemperatureForCrankcaseHeaterOperation(0.0);
autosizeEvaporativeCondenserAirFlowRate(); //autosize
autosizeEvaporativeCondenserPumpRatedPowerConsumption(); //autosize
setMinimumOutdoorDryBulbTemperatureforCompressorOperation(-25.0); // Per E+ IDD default
setNominalTimeForCondensateRemovalToBegin(0.0);
setRatioOfInitialMoistureEvaporationRateAndSteadyStateLatentCapacity(0.0);
Expand All @@ -937,7 +934,7 @@ namespace model {
setCrankcaseHeaterCapacity(0.0);
setMaximumOutdoorDryBulbTemperatureForCrankcaseHeaterOperation(10.0);
setBasinHeaterCapacity(0.0);
setBasinHeaterSetpointTemperature(10.0);
setBasinHeaterSetpointTemperature(2.0);

auto schedule = model.alwaysOnDiscreteSchedule();
setAvailabilitySchedule(schedule);
Expand All @@ -964,11 +961,8 @@ namespace model {
setEnergyInputRatioFunctionOfTemperatureCurve(energyInputRatioFofTemp);
setEnergyInputRatioFunctionOfFlowFractionCurve(energyInputRatioFofFlow);
setPartLoadFractionCorrelationCurve(partLoadFraction);
setEvaporativeCondenserEffectiveness(0.0);
autosizeEvaporativeCondenserAirFlowRate(); //autosize
autosizeEvaporativeCondenserPumpRatedPowerConsumption(); //autosize
setCrankcaseHeaterCapacity(0.0);
setMaximumOutdoorDryBulbTemperatureForCrankcaseHeaterOperation(0.0);
autosizeEvaporativeCondenserAirFlowRate(); //autosize
autosizeEvaporativeCondenserPumpRatedPowerConsumption(); //autosize
setMinimumOutdoorDryBulbTemperatureforCompressorOperation(-25.0); // Per E+ IDD default
setNominalTimeForCondensateRemovalToBegin(0.0);
setRatioOfInitialMoistureEvaporationRateAndSteadyStateLatentCapacity(0.0);
Expand All @@ -979,7 +973,7 @@ namespace model {
setCrankcaseHeaterCapacity(0.0);
setMaximumOutdoorDryBulbTemperatureForCrankcaseHeaterOperation(10.0);
setBasinHeaterCapacity(0.0);
setBasinHeaterSetpointTemperature(10.0);
setBasinHeaterSetpointTemperature(2.0);
}

CoilCoolingDXSingleSpeed::CoilCoolingDXSingleSpeed(std::shared_ptr<detail::CoilCoolingDXSingleSpeed_Impl> p) : StraightComponent(std::move(p)) {}
Expand Down
12 changes: 6 additions & 6 deletions src/model/CoilCoolingDXTwoSpeed.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -863,13 +863,13 @@ namespace model {
// A13, \field Condenser Type
setCondenserType("AirCooled");
// N9, \field High Speed Evaporative Condenser Effectiveness
setHighSpeedEvaporativeCondenserEffectiveness(0.0);
setHighSpeedEvaporativeCondenserEffectiveness(0.9);
// N10, \field High Speed Evaporative Condenser Air Flow Rate
setHighSpeedEvaporativeCondenserAirFlowRate(boost::none); //autosize
// N11, \field High Speed Evaporative Condenser Pump Rated Power Consumption
setHighSpeedEvaporativeCondenserPumpRatedPowerConsumption(boost::none); //autosize
// N12, \field Low Speed Evaporative Condenser Effectiveness
setLowSpeedEvaporativeCondenserEffectiveness(0.0);
setLowSpeedEvaporativeCondenserEffectiveness(0.9);
// N13, \field Low Speed Evaporative Condenser Air Flow Rate
setLowSpeedEvaporativeCondenserAirFlowRate(boost::none); //autosize
// N14, \field Low Speed Evaporative Condenser Pump Rated Power Consumption
Expand All @@ -881,7 +881,7 @@ namespace model {
// N15, \field Basin Heater Capacity
setBasinHeaterCapacity(0.0);
// N16, \field Basin Heater Setpoint Temperature
setBasinHeaterSetpointTemperature(10.0);
setBasinHeaterSetpointTemperature(2.0);
// A16; \field Basin Heater Operating Schedule Name
setString(OS_Coil_Cooling_DX_TwoSpeedFields::BasinHeaterOperatingScheduleName, "");
setMinimumOutdoorDryBulbTemperatureforCompressorOperation(-25.0); // Per E+ IDD default
Expand Down Expand Up @@ -979,13 +979,13 @@ namespace model {
setLowSpeedTotalCoolingCapacityFunctionOfTemperatureCurve(coolingLowSpdCurveFofTemp);
setLowSpeedEnergyInputRatioFunctionOfTemperatureCurve(energyLowSpdInputRatioFofTemp);
setCondenserType("AirCooled");
setHighSpeedEvaporativeCondenserEffectiveness(0.0);
setHighSpeedEvaporativeCondenserEffectiveness(0.9);
setHighSpeedEvaporativeCondenserAirFlowRate(boost::none); //autosize
setHighSpeedEvaporativeCondenserPumpRatedPowerConsumption(boost::none); //autosize
setLowSpeedEvaporativeCondenserEffectiveness(0.0);
setLowSpeedEvaporativeCondenserEffectiveness(0.9);
setLowSpeedEvaporativeCondenserAirFlowRate(boost::none); //autosize
setLowSpeedEvaporativeCondenserPumpRatedPowerConsumption(boost::none); //autosize
setBasinHeaterCapacity(10.0);
setBasinHeaterCapacity(0.0);
setBasinHeaterSetpointTemperature(2.0);
setString(OS_Coil_Cooling_DX_TwoSpeedFields::BasinHeaterOperatingScheduleName, "");
setMinimumOutdoorDryBulbTemperatureforCompressorOperation(-25.0); // Per E+ IDD default
Expand Down
6 changes: 3 additions & 3 deletions src/model/test/CoilCoolingDXTwoSpeed_GTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,10 @@ TEST_F(ModelFixture, CoilCoolingDXTwoSpeed_CoilCoolingDXTwoSpeed) {
//ASSERT_EQ("Autosize",coil.getRatedHighSpeedTotalCoolingCapacity().get());
ASSERT_EQ(3, coil.ratedHighSpeedCOP());
ASSERT_EQ(3, coil.ratedLowSpeedCOP());
ASSERT_EQ(0, coil.highSpeedEvaporativeCondenserEffectiveness());
ASSERT_EQ(0, coil.lowSpeedEvaporativeCondenserEffectiveness());
ASSERT_EQ(0.9, coil.highSpeedEvaporativeCondenserEffectiveness());
ASSERT_EQ(0.9, coil.lowSpeedEvaporativeCondenserEffectiveness());
ASSERT_EQ(0, coil.basinHeaterCapacity());
ASSERT_EQ(10, coil.basinHeaterSetpointTemperature());
ASSERT_EQ(2, coil.basinHeaterSetpointTemperature());
ASSERT_EQ("AirCooled", coil.condenserType());
}

Expand Down
32 changes: 32 additions & 0 deletions src/osversion/VersionTranslator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7083,6 +7083,38 @@ namespace osversion {
m_new.emplace_back(std::move(varAdded));
}

} else if (iddname == "OS:Coil:Cooling:DX:SingleSpeed") {

// Remove Construction with Material:AirWall layer
// Replace with Construction:AirBoundary

auto iddObject = idd_3_4_1.getObject(iddname);
IdfObject newObject(iddObject.get());

// new defaults
// From blank to zero
// "Nominal Time for Condensate Removal to Begin"=>16 (blank => 0),
// "Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity"=>17,
// "Maximum Cycling Rate"=>18,
// "Latent Capacity Time Constant"=>19,
for (size_t i = 16; i <= 19; ++i) {
newObject.setDouble(i, 0.0);
}

// "Evaporative Condenser Effectiveness"=>22 (from 0.0 to 0.9),
// "Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation"=>26 (from 0.0 to 10.0)
newObject.setDouble(22, 0.9);
newObject.setDouble(26, 10.0);

for (size_t i = 0; i < object.numFields(); ++i) {
if ((value = object.getString(i, false, true))) {
newObject.setString(i, value.get());
}
}

m_refactored.push_back(RefactoredObjectData(object, newObject));
ss << newObject;

// No-op
} else {
ss << object;
Expand Down
197 changes: 197 additions & 0 deletions src/osversion/test/3_4_1/test_vt_CoilCoolingDXSingleSpeed.osm
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@

OS:Version,
{d0cf8c93-672f-4b73-97d8-df5593a8dc15}, !- Handle
3.4.0; !- Version Identifier

OS:Coil:Cooling:DX:SingleSpeed,
{0deb5c73-7be0-4772-9bd4-9e7d72c25f48}, !- Handle
CC with blanks, !- Name
{071de9ca-eee2-4bcf-b184-25b4bdad21b2}, !- Availability Schedule Name
autosize, !- Rated Total Cooling Capacity {W}
autosize, !- Rated Sensible Heat Ratio
3, !- Rated COP {W/W}
autosize, !- Rated Air Flow Rate {m3/s}
773.3, !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}
, !- Air Inlet Node Name
, !- Air Outlet Node Name
{4916e517-feb6-4d34-9f11-e73eedab994f}, !- Total Cooling Capacity Function of Temperature Curve Name
{0bc3d776-bc05-4b32-828d-e078ad0942ed}, !- Total Cooling Capacity Function of Flow Fraction Curve Name
{d7a809cd-f065-4581-a6a3-f02612ece149}, !- Energy Input Ratio Function of Temperature Curve Name
{ecdc39de-57b5-4b70-b927-73c516ea11f4}, !- Energy Input Ratio Function of Flow Fraction Curve Name
{f4cd41f0-8626-4826-a0e7-01bb9fe78f77}, !- Part Load Fraction Correlation Curve Name
-25, !- Minimum Outdoor Dry-Bulb Temperature for Compressor Operation {C}
, !- Nominal Time for Condensate Removal to Begin {s}
, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}
, !- Maximum Cycling Rate {cycles/hr}
, !- Latent Capacity Time Constant {s}
, !- Condenser Air Inlet Node Name
AirCooled, !- Condenser Type
0, !- Evaporative Condenser Effectiveness {dimensionless}
Autosize, !- Evaporative Condenser Air Flow Rate {m3/s}
Autosize, !- Evaporative Condenser Pump Rated Power Consumption {W}
0, !- Crankcase Heater Capacity {W}
0, !- Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation {C}
, !- Supply Water Storage Tank Name
, !- Condensate Collection Water Storage Tank Name
0, !- Basin Heater Capacity {W/K}
10, !- Basin Heater Setpoint Temperature {C}
; !- Basin Heater Operating Schedule Name

OS:Curve:Biquadratic,
{4916e517-feb6-4d34-9f11-e73eedab994f}, !- Handle
Curve Biquadratic 1, !- Name
0.942587793, !- Coefficient1 Constant
0.009543347, !- Coefficient2 x
0.00068377, !- Coefficient3 x**2
-0.011042676, !- Coefficient4 y
5.249e-06, !- Coefficient5 y**2
-9.72e-06, !- Coefficient6 x*y
17, !- Minimum Value of x
22, !- Maximum Value of x
13, !- Minimum Value of y
46; !- Maximum Value of y

OS:Curve:Quadratic,
{0bc3d776-bc05-4b32-828d-e078ad0942ed}, !- Handle
Curve Quadratic 1, !- Name
0.8, !- Coefficient1 Constant
0.2, !- Coefficient2 x
0, !- Coefficient3 x**2
0.5, !- Minimum Value of x
1.5; !- Maximum Value of x

OS:Curve:Biquadratic,
{d7a809cd-f065-4581-a6a3-f02612ece149}, !- Handle
Curve Biquadratic 2, !- Name
0.342414409, !- Coefficient1 Constant
0.034885008, !- Coefficient2 x
-0.0006237, !- Coefficient3 x**2
0.004977216, !- Coefficient4 y
0.000437951, !- Coefficient5 y**2
-0.000728028, !- Coefficient6 x*y
17, !- Minimum Value of x
22, !- Maximum Value of x
13, !- Minimum Value of y
46; !- Maximum Value of y

OS:Curve:Quadratic,
{ecdc39de-57b5-4b70-b927-73c516ea11f4}, !- Handle
Curve Quadratic 2, !- Name
1.1552, !- Coefficient1 Constant
-0.1808, !- Coefficient2 x
0.0256, !- Coefficient3 x**2
0.5, !- Minimum Value of x
1.5; !- Maximum Value of x

OS:Curve:Quadratic,
{f4cd41f0-8626-4826-a0e7-01bb9fe78f77}, !- Handle
Curve Quadratic 3, !- Name
0.85, !- Coefficient1 Constant
0.15, !- Coefficient2 x
0, !- Coefficient3 x**2
0, !- Minimum Value of x
1; !- Maximum Value of x

OS:Schedule:Constant,
{071de9ca-eee2-4bcf-b184-25b4bdad21b2}, !- Handle
Always On Discrete, !- Name
{e1321e24-1577-4379-ab41-733f485024fb}, !- Schedule Type Limits Name
1; !- Value

OS:ScheduleTypeLimits,
{e1321e24-1577-4379-ab41-733f485024fb}, !- Handle
OnOff, !- Name
0, !- Lower Limit Value
1, !- Upper Limit Value
Discrete, !- Numeric Type
Availability; !- Unit Type

OS:Coil:Cooling:DX:SingleSpeed,
{4a9fb6f7-417f-42bd-a889-f4a1e2b79e3f}, !- Handle
CC with numbers, !- Name
{071de9ca-eee2-4bcf-b184-25b4bdad21b2}, !- Availability Schedule Name
autosize, !- Rated Total Cooling Capacity {W}
autosize, !- Rated Sensible Heat Ratio
3, !- Rated COP {W/W}
autosize, !- Rated Air Flow Rate {m3/s}
773.3, !- Rated Evaporator Fan Power Per Volume Flow Rate {W/(m3/s)}
, !- Air Inlet Node Name
, !- Air Outlet Node Name
{9cddf1c2-a0a1-4c70-ae30-b5c1a1f8ec2a}, !- Total Cooling Capacity Function of Temperature Curve Name
{013dac57-dd3d-4930-a024-dbfbe717ca15}, !- Total Cooling Capacity Function of Flow Fraction Curve Name
{fe2115d6-be6a-4268-a5e3-ebeb08dd486f}, !- Energy Input Ratio Function of Temperature Curve Name
{c30d952b-7b3e-4969-90d6-e77f0440cfa8}, !- Energy Input Ratio Function of Flow Fraction Curve Name
{392e6e64-135e-4d83-a568-06dcc877c795}, !- Part Load Fraction Correlation Curve Name
15, !- Minimum Outdoor Dry-Bulb Temperature for Compressor Operation {C}
16, !- Nominal Time for Condensate Removal to Begin {s}
0.17, !- Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity {dimensionless}
0.18, !- Maximum Cycling Rate {cycles/hr}
19, !- Latent Capacity Time Constant {s}
, !- Condenser Air Inlet Node Name
EvaporativelyCooled, !- Condenser Type
0.22, !- Evaporative Condenser Effectiveness {dimensionless}
Autosize, !- Evaporative Condenser Air Flow Rate {m3/s}
Autosize, !- Evaporative Condenser Pump Rated Power Consumption {W}
25, !- Crankcase Heater Capacity {W}
26, !- Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation {C}
, !- Supply Water Storage Tank Name
, !- Condensate Collection Water Storage Tank Name
0, !- Basin Heater Capacity {W/K}
10, !- Basin Heater Setpoint Temperature {C}
; !- Basin Heater Operating Schedule Name

OS:Curve:Biquadratic,
{9cddf1c2-a0a1-4c70-ae30-b5c1a1f8ec2a}, !- Handle
Curve Biquadratic 3, !- Name
0.942587793, !- Coefficient1 Constant
0.009543347, !- Coefficient2 x
0.00068377, !- Coefficient3 x**2
-0.011042676, !- Coefficient4 y
5.249e-06, !- Coefficient5 y**2
-9.72e-06, !- Coefficient6 x*y
17, !- Minimum Value of x
22, !- Maximum Value of x
13, !- Minimum Value of y
46; !- Maximum Value of y

OS:Curve:Quadratic,
{013dac57-dd3d-4930-a024-dbfbe717ca15}, !- Handle
Curve Quadratic 4, !- Name
0.8, !- Coefficient1 Constant
0.2, !- Coefficient2 x
0, !- Coefficient3 x**2
0.5, !- Minimum Value of x
1.5; !- Maximum Value of x

OS:Curve:Biquadratic,
{fe2115d6-be6a-4268-a5e3-ebeb08dd486f}, !- Handle
Curve Biquadratic 4, !- Name
0.342414409, !- Coefficient1 Constant
0.034885008, !- Coefficient2 x
-0.0006237, !- Coefficient3 x**2
0.004977216, !- Coefficient4 y
0.000437951, !- Coefficient5 y**2
-0.000728028, !- Coefficient6 x*y
17, !- Minimum Value of x
22, !- Maximum Value of x
13, !- Minimum Value of y
46; !- Maximum Value of y

OS:Curve:Quadratic,
{c30d952b-7b3e-4969-90d6-e77f0440cfa8}, !- Handle
Curve Quadratic 5, !- Name
1.1552, !- Coefficient1 Constant
-0.1808, !- Coefficient2 x
0.0256, !- Coefficient3 x**2
0.5, !- Minimum Value of x
1.5; !- Maximum Value of x

OS:Curve:Quadratic,
{392e6e64-135e-4d83-a568-06dcc877c795}, !- Handle
Curve Quadratic 6, !- Name
0.85, !- Coefficient1 Constant
0.15, !- Coefficient2 x
0, !- Coefficient3 x**2
0, !- Minimum Value of x
1; !- Maximum Value of x

27 changes: 27 additions & 0 deletions src/osversion/test/3_4_1/test_vt_CoilCoolingDXSingleSpeed.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#require '/usr/local/openstudio-3.4.0/Ruby/openstudio'

include OpenStudio::Model

m = Model.new

cc1 = CoilCoolingDXSingleSpeed.new(m)
cc1.setName("CC with blanks")
[16, 17, 18, 19].each { |i|
raise if !cc1.isEmpty(i)
}

cc = CoilCoolingDXSingleSpeed.new(m)
cc.setName("CC with numbers")
cc.setMinimumOutdoorDryBulbTemperatureforCompressorOperation(15)
cc.setNominalTimeForCondensateRemovalToBegin(16)
cc.setRatioOfInitialMoistureEvaporationRateAndSteadyStateLatentCapacity(0.17)
cc.setMaximumCyclingRate(0.18)
cc.setLatentCapacityTimeConstant(19)

cc.setCondenserType("EvaporativelyCooled")
cc.setEvaporativeCondenserEffectiveness(0.22)

cc.setCrankcaseHeaterCapacity(25)
cc.setMaximumOutdoorDryBulbTemperatureForCrankcaseHeaterOperation(26)

m.save('test_vt_CoilCoolingDXSingleSpeed.osm', true)