diff --git a/idd/Energy+.idd.in b/idd/Energy+.idd.in index 56a92323924..9e5a3e0d0f1 100644 --- a/idd/Energy+.idd.in +++ b/idd/Energy+.idd.in @@ -46818,6 +46818,964 @@ Coil:WaterHeating:AirToWaterHeatPump, \note Use curve coefficients of 1,0,0 or leave this field blank when neglecting performance impacts \note due to variations in part load ratio. +Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, + \memo vairlable-speed Heat pump water heater (VSHPWH) heating coil, air-to-water direct-expansion (DX) + \memo system which includes a variable-speed water heating coil, evaporator air coil, evaporator + \memo fan, electric compressor, and water pump. Part of a WaterHeater:HeatPump system. + \min-fields 33 + A1 , \field Name + \required-field + \type alpha + \reference HeatPumpWaterHeaterDXCoilsVariableSpeed + \note Unique name for this instance of a variable-speed heat pump water heater DX coil. + N1, \field Number of Speeds + \units dimensionless + \type integer + \required-field + \minimum 1 + \maximum 10 + \default 1 + N2 , \field Nominal Speed Level + \units dimensionless + \type integer + \default 1 + \required-field + \note must be lower than or equal to the highest speed number + N3 , \field Rated Water Heating Capacity + \required-field + \type real + \units W + \minimum> 0 + \note Water Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N4 , \field Rated Evaporator Inlet Air Dry-Bulb Temperature + \type real + \units C + \minimum> 5 + \default 19.7 + \note Evaporator inlet air dry-bulb temperature corresponding to rated coil performance + \note (heating capacity, COP and SHR). + N5 , \field Rated Evaporator Inlet Air Wet-Bulb Temperature + \type real + \units C + \minimum> 5 + \default 13.5 + \note Evaporator inlet air wet-bulb temperature corresponding to rated coil performance + \note (heating capacity, COP and SHR). + N6 , \field Rated Condenser Inlet Water Temperature + \type real + \units C + \minimum> 25 + \default 57.5 + \note Condenser inlet water temperature corresponding to rated coil performance + \note (heating capacity, COP and SHR). + N7 , \field Rated Evaporator Air Flow Rate + \type real + \units m3/s + \minimum> 0 + \autocalculatable + \note Evaporator air flow rate corresponding to rated coil performance + \note (heating capacity, COP and SHR). + \note Default is 5.035E-5 m3/s/W (31.25 cfm/MBH) of rated heating capacity when autocalculated. + N8 , \field Rated Condenser Water Flow Rate + \type real + \units m3/s + \minimum> 0 + \autocalculatable + \note Condenser water flow rate corresponding to rated coil performance + \note (heating capacity, COP and SHR). + \note Default is 4.487E-8 m3/s/W (0.208 gpm/MBH) of rated heating capacity when autocalculated. + \note A warning message will be issued if the ratio of Rated Condenser Water Flow Rate + \note to Heating Capacity is less than 1.79405E-8 m3/s/W (0.083 gpm/MBH) + \note or greater than 8.97024E-8 m3/s/W (0.417 gpm/MBH), but the simulation will continue. + A2 , \field Evaporator Fan Power Included in Rated COP + \type choice + \key Yes + \key No + \default Yes + \note Select Yes if the evaporator fan power is included in the rated COP. This choice field + \note impacts the calculation of compressor electric power. + A3 , \field Condenser Pump Power Included in Rated COP + \type choice + \key Yes + \key No + \default No + \note Select Yes if the condenser pump power is included in the rated COP. This choice field + \note impacts the calculation of compressor electric power. + A4 , \field Condenser Pump Heat Included in Rated Heating Capacity and Rated COP + \type choice + \key Yes + \key No + \default No + \note Select Yes if the condenser pump heat is included in the rated heating capacity and + \note rated COP. This choice field impacts the calculation of water heating capacity. + N9 , \field Fraction of Condenser Pump Heat to Water + \type real + \minimum 0 + \maximum 1 + \default 0.2 + \note Fraction of pump heat transferred to the condenser water. The pump is assumed + \note to be located downstream of the condenser. + A5 , \field Evaporator Air Inlet Node Name + \required-field + \type node + \note The node from which the DX coil draws its inlet air. + A6 , \field Evaporator Air Outlet Node Name + \required-field + \type node + \note The node to which the DX coil sends its outlet air. + A7 , \field Condenser Water Inlet Node Name + \required-field + \type node + \note The node from which the DX coil condenser draws its inlet water. + \note This name should match the source side outlet node name in the associated + \note water heater tank object. + A8 , \field Condenser Water Outlet Node Name + \required-field + \type node + \note The node to which the DX coil condenser sends its outlet water. + \note This name should match the source side inlet node name in the associated + \note water heater tank object. + N10, \field Crankcase Heater Capacity + \type real + \minimum 0 + \default 0 + \units W + \note The compressor crankcase heater only operates when the dry-bulb temperature of air + \note surrounding the compressor is below the Maximum Ambient Temperature for Crankcase + \note Heater Operation and the DX coil is off. The ambient temperature surrounding the + \note compressor is set by the WaterHeater:HeatPump parent object (field Compressor Location). + N11, \field Maximum Ambient Temperature for Crankcase Heater Operation + \type real + \minimum 0 + \default 10 + \units C + \note The compressor crankcase heater only operates when the dry-bulb temperature of air + \note surrounding the compressor is below the Maximum Outdoor Temperature for Crankcase + \note Heater Operation and the unit is off. The ambient temperature surrounding the + \note compressor is set by the WaterHeater:HeatPump parent object (field Compressor Location). + A9 , \field Evaporator Air Temperature Type for Curve Objects + \type choice + \key DryBulbTemperature + \key WetBulbTemperature + \default WetBulbTemperature + \note Determines temperature type for heating capacity curves and + \note heating COP curves. This input determines whether + \note the inlet air dry-bulb or wet-bulb temperature is used to evaluate these curves. + A10, \field Part Load Fraction Correlation Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note Part Load Fraction Correlation (function of part load ratio) should be quadratic or cubic. + \note Quadratic curve = a + b(PLR) + c(PLR)^2. + \note Cubic curve = a + b(PLR) + c(PLR)^2 + d(PLR)^3. + \note PLR = part load ratio (heating delivered/steady state heating capacity). + \note Use curve coefficients of 1,0,0 or leave this field blank when neglecting performance impacts + \note due to variations in part load ratio. + N12, \field Rated Water Heating Capacity at speed 1 + \required-field + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N13, \field Rated Water Heating COP at speed 1 + \required-field + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N14, \field Rated Sensible Heat Ratio at speed 1 + \required-field + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N15, \field Speed 1 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + \required-field + N16, \field Speed 1 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + \required-field + N17, \field Speed 1 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + \required-field + A11, \field Speed 1 Total WH Capacity Function of Temperature Curve Name + \required-field + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A12, \field Speed 1 Total WH Capacity Function of Air Flow Fraction Curve Name + \required-field + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A13, \field Speed 1 Total WH Capacity Function of Water Flow Fraction Curve Name + \required-field + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A14, \field Speed 1 COP Function of Temperature Curve Name + \required-field + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A15, \field Speed 1 COP Function of Air Flow Fraction Curve Name + \required-field + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A16, \field Speed 1 COP Function of Water Flow Fraction Curve Name + \required-field + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + N18, \field Rated Water Heating Capacity at speed 2 + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N19, \field Rated Water Heating COP at speed 2 + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N20, \field Rated Sensible Heat Ratio at speed 2 + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N21, \field Speed 2 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + N22, \field Speed 2 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + N23, \field Speed 2 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + A17, \field Speed 2 Total WH Capacity Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A18, \field Speed 2 Total WH Capacity Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A19, \field Speed 2 Total WH Capacity Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A20, \field Speed 2 COP Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A21, \field Speed 2 COP Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A22, \field Speed 2 COP Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + N24, \field Rated Water Heating Capacity at speed 3 + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N25, \field Rated Water Heating COP at speed 3 + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N26, \field Rated Sensible Heat Ratio at speed 3 + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N27, \field Speed 3 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + N28, \field Speed 3 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + N29, \field Speed 3 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + A23, \field Speed 3 Total WH Capacity Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A24, \field Speed 3 Total WH Capacity Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A25, \field Speed 3 Total WH Capacity Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A26, \field Speed 3 COP Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A27, \field Speed 3 COP Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A28, \field Speed 3 COP Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + N30, \field Rated Water Heating Capacity at speed 4 + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N31, \field Rated Water Heating COP at speed 4 + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N32, \field Rated Sensible Heat Ratio at speed 4 + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N33, \field Speed 4 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + N34, \field Speed 4 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + N35, \field Speed 4 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + A29, \field Speed 4 Total WH Capacity Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A30, \field Speed 4 Total WH Capacity Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A31, \field Speed 4 Total WH Capacity Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A32, \field Speed 4 COP Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A33, \field Speed 4 COP Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A34, \field Speed 4 COP Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + N36, \field Rated Water Heating Capacity at speed 5 + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N37, \field Rated Water Heating COP at speed 5 + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N38, \field Rated Sensible Heat Ratio at speed 5 + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N39, \field Speed 5 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + N40, \field Speed 5 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + N41, \field Speed 5 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + A35, \field Speed 5 Total WH Capacity Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A36, \field Speed 5 Total WH Capacity Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A37, \field Speed 5 Total WH Capacity Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A38, \field Speed 5 COP Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A39, \field Speed 5 COP Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A40, \field Speed 5 COP Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + N42, \field Rated Water Heating Capacity at speed 6 + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N43, \field Rated Water Heating COP at speed 6 + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N44, \field Rated Sensible Heat Ratio at speed 6 + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N45, \field Speed 6 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + N46, \field Speed 6 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + N47, \field Speed 6 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + A41, \field Speed 6 Total WH Capacity Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A42, \field Speed 6 Total WH Capacity Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A43, \field Speed 6 Total WH Capacity Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A44, \field Speed 6 COP Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A45, \field Speed 6 COP Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A46, \field Speed 6 COP Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + N48, \field Rated Water Heating Capacity at speed 7 + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N49, \field Rated Water Heating COP at speed 7 + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N50, \field Rated Sensible Heat Ratio at speed 7 + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N51, \field Speed 7 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + N52, \field Speed 7 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + N53, \field Speed 7 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + A47, \field Speed 7 Total WH Capacity Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A48, \field Speed 7 Total WH Capacity Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A49, \field Speed 7 Total WH Capacity Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A50, \field Speed 7 COP Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A51, \field Speed 7 COP Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A52, \field Speed 7 COP Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + N54, \field Rated Water Heating Capacity at speed 8 + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N55, \field Rated Water Heating COP at speed 8 + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N56, \field Rated Sensible Heat Ratio at speed 8 + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N57, \field Speed 8 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + N58, \field Speed 8 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + N59, \field Speed 8 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + A53, \field Speed 8 Total WH Capacity Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A54, \field Speed 8 Total WH Capacity Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A55, \field Speed 8 Total WH Capacity Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A56, \field Speed 8 COP Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A57, \field Speed 8 COP Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A58, \field Speed 8 COP Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + N60, \field Rated Water Heating Capacity at speed 9 + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N61, \field Rated Water Heating COP at speed 9 + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N62, \field Rated Sensible Heat Ratio at speed 9 + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N63, \field Speed 9 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + N64, \field Speed 9 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + N65, \field Speed 9 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + A59, \field Speed 9 Total WH Capacity Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A60, \field Speed 9 Total WH Capacity Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A61, \field Speed 9 Total WH Capacity Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A62, \field Speed 9 COP Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A63, \field Speed 9 COP Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A64, \field Speed 9 COP Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + N66, \field Rated Water Heating Capacity at speed 10 + \type real + \units W + \minimum> 0 + \note Heating capacity at the rated inlet air temperatures, rated condenser inlet + \note water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump heat. + N67, \field Rated Water Heating COP at speed 10 + \type real + \units W/W + \minimum> 0 + \default 3.2 + \note Heating coefficient of performance at the rated inlet air and water temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Can optionally include condenser pump power and evaporator fan power (see fields below). + N68, \field Rated Sensible Heat Ratio at speed 10 + \type real + \minimum 0.5 + \maximum 1 + \default 0.85 + \note Gross air-side sensible heat ratio at the rated inlet air temperatures, + \note rated condenser inlet water temperature, rated air flow rate, and rated water flow rate. + \note Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling + \note capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling + \note and dehumidification by the coil alone. + N69, \field Speed 10 Reference Unit Rated Air Flow Rate + \units m3/s + \type real + \minimum 0 + N70, \field Speed 10 Reference Unit Rated Water Flow Rate + \units m3/s + \type real + \minimum 0 + N71, \field Speed 10 Reference Unit Water Pump Input Power At Rated Conditions + \units dimensionless + \type real + \minimum 0 + A65, \field Speed 10 Total WH Capacity Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A66, \field Speed 10 Total WH Capacity Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A67, \field Speed 10 Total WH Capacity Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + A68, \field Speed 10 COP Function of Temperature Curve Name + \type object-list + \object-list BiquadraticCurves + \note Table:TwoIndependentVariables object can also be used + \note curve = a + b*wb + c*wb**2 + d*ewt + e*ewt**2 + f*wb*ewt + \note wb = entering wet-bulb temperature or dry bulb temperature upon selection (C) + \note ewt = water entering temperature seen by the condenser (C) + A69, \field Speed 10 COP Function of Air Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffa + c*ffa**2 + \note cubic curve = a + b*ffa + c*ffa**2 + d*ffa**3 + \note ffa = Fraction of the full load Air Flow + A70; \field Speed 10 COP Function of Water Flow Fraction Curve Name + \type object-list + \object-list QuadraticCubicCurves + \note Table:OneIndependentVariable object can also be used + \note quadratic curve = a + b*ffw + c*ffw**2 + \note cubic curve = a + b*ffw + c*ffw**2 + d*ffw**3 + \note ffw = Fraction of the full load Water Flow + Coil:WaterHeating:Desuperheater, \memo Desuperheater air heating coil. The heating energy provided by this coil is reclaimed \memo from the superheated refrigerant gas leaving a compressor and does not impact the @@ -63478,6 +64436,7 @@ WaterHeater:HeatPump, \memo This object models an air-source heat pump for water heating. \memo WaterHeater:HeatPump is a compound object that references other component objects - \memo Coil:WaterHeating:AirToWaterHeatPump, Fan:OnOff, WaterHeater:Mixed + \memo Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, Fan:OnOff, WaterHeater:Mixed A1 , \field Name \required-field \type alpha @@ -63603,14 +64562,16 @@ WaterHeater:HeatPump, \required-field \type choice \key Coil:WaterHeating:AirToWaterHeatPump + \key Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed \default Coil:WaterHeating:AirToWaterHeatPump \note Specify the type of DX coil used by this heat pump water heater. The only - \note valid choice is Coil:WaterHeating:AirToWaterHeatPump. + \note valid choice is Coil:WaterHeating:AirToWaterHeatPump and Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed. A19, \field DX Coil Name \required-field \type object-list \object-list HeatPumpWaterHeaterDXCoils - \note Must match the name used in the corresponding Coil:WaterHeating:AirToWaterHeatPump object. + \object-list HeatPumpWaterHeaterDXCoilsVariableSpeed + \note Must match the name used in the corresponding Coil:WaterHeating:AirToWaterHeatPump and Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed object. N4 , \field Minimum Inlet Air Temperature for Compressor Operation \type real \units C diff --git a/src/EnergyPlus/DataHVACGlobals.cc b/src/EnergyPlus/DataHVACGlobals.cc index 44910a7871c..281671a4c0d 100644 --- a/src/EnergyPlus/DataHVACGlobals.cc +++ b/src/EnergyPlus/DataHVACGlobals.cc @@ -164,6 +164,7 @@ namespace DataHVACGlobals { int const Coil_HeatingWaterToAirHPVSEquationFit( 27 ); int const Coil_CoolingAirToAirVariableSpeed( 28 ); int const Coil_HeatingAirToAirVariableSpeed( 29 ); + int const CoilDX_HeatPumpWaterHeaterVariableSpeed(30); // Water to air HP coil types int const WatertoAir_Simple( 1 ); diff --git a/src/EnergyPlus/DataHVACGlobals.hh b/src/EnergyPlus/DataHVACGlobals.hh index eabc336463a..cb58e34c7a3 100644 --- a/src/EnergyPlus/DataHVACGlobals.hh +++ b/src/EnergyPlus/DataHVACGlobals.hh @@ -154,6 +154,7 @@ namespace DataHVACGlobals { extern int const Coil_HeatingWaterToAirHPVSEquationFit; extern int const Coil_CoolingAirToAirVariableSpeed; extern int const Coil_HeatingAirToAirVariableSpeed; + extern int const CoilDX_HeatPumpWaterHeaterVariableSpeed; // Water to air HP coil types extern int const WatertoAir_Simple; diff --git a/src/EnergyPlus/VariableSpeedCoils.cc b/src/EnergyPlus/VariableSpeedCoils.cc index 3e78b1bc44f..81bc73e734a 100644 --- a/src/EnergyPlus/VariableSpeedCoils.cc +++ b/src/EnergyPlus/VariableSpeedCoils.cc @@ -50,6 +50,7 @@ namespace VariableSpeedCoils { using DataEnvironment::OutHumRat; using DataEnvironment::OutBaroPress; using DataEnvironment::OutWetBulbTemp; + using DataEnvironment::OutEnthalpy; using namespace DataSizing; using DataPlant::TypeOf_CoilVSWAHPHeatingEquationFit; using DataPlant::TypeOf_CoilVSWAHPCoolingEquationFit; @@ -130,6 +131,9 @@ namespace VariableSpeedCoils { Real64 Winput( 0.0 ); // Power Consumption [W] Real64 PLRCorrLoadSideMdot( 0.0 ); // Load Side Mdot corrected for Part Load Ratio of the unit + Real64 VSHPWHHeatingCapacity(0.0); // Used by Heat Pump:Water Heater object as total water heating capacity [W] + Real64 VSHPWHHeatingCOP(0.0); // Used by Heat Pump:Water Heater object as water heating COP [W/W] + // SUBROUTINE SPECIFICATIONS FOR MODULE // Driver/Manager Routines @@ -173,7 +177,7 @@ namespace VariableSpeedCoils { // AUTHOR Bo Shen, ORNL // DATE WRITTEN March 2012 - // MODIFIED na + // MODIFIED Bo Shen, 12/2014, add variable-speed HPWH // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: @@ -258,7 +262,14 @@ namespace VariableSpeedCoils { InitVarSpeedCoil( DXCoilNum, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, SpeedRatio, SpeedCal ); CalcVarSpeedCoilHeating( DXCoilNum, CyclingScheme, RuntimeFrac, SensLoad, CompOp, PartLoadFrac, OnOffAirFlowRatio, SpeedRatio, SpeedCal ); UpdateVarSpeedCoil( DXCoilNum ); - } else { + } + else if (VarSpeedCoil(DXCoilNum).VSCoilTypeOfNum == CoilDX_HeatPumpWaterHeaterVariableSpeed) { + // Heating mode + InitVarSpeedCoil(DXCoilNum, MaxONOFFCyclesperHour, HPTimeConstant, FanDelayTime, SensLoad, LatentLoad, CyclingScheme, OnOffAirFlowRatio, SpeedRatio, SpeedCal); + CalcVarSpeedHPWH(DXCoilNum, RuntimeFrac, PartLoadFrac, SpeedRatio, SpeedNum, CyclingScheme); + UpdateVarSpeedCoil(DXCoilNum); + } + else { ShowFatalError( "SimVariableSpeedCoils: WatertoAir heatpump not in either HEATING or COOLING mode" ); } @@ -275,7 +286,7 @@ namespace VariableSpeedCoils { // SUBROUTINE INFORMATION: // AUTHOR Bo Shen // DATE WRITTEN March, 2012 - // MODIFIED na + // MODIFIED Bo Shen, 12/2014, add variable-speed HPWH // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: @@ -322,6 +333,7 @@ namespace VariableSpeedCoils { int NumCoolAS; // Counter for cooling coil, air source int NumHeat; // Counter for heating coil, water source int NumHeatAS; // Counter for heating coil, air source + int NumHPWHAirToWater; //counter for air source HPWH int WatertoAirHPNum; // Counter int I; // Loop index increment int NumAlphas; // Number of variables in String format @@ -336,6 +348,8 @@ namespace VariableSpeedCoils { bool IsBlank; // Flag for blank name bool errFlag; Real64 CurveVal; // Used to verify modifier curves equal 1 at rated conditions + Real64 WHInletAirTemp; // Used to pass proper inlet air temp to HPWH DX coil performance curves + Real64 WHInletWaterTemp; // Used to pass proper inlet water temp to HPWH DX coil performance curves std::string CurrentModuleObject; // for ease in getting objects FArray1D_string AlphArray; // Alpha input items for object FArray1D_string cAlphaFields; // Alpha field names @@ -348,11 +362,12 @@ namespace VariableSpeedCoils { NumHeat = GetNumObjectsFound( "COIL:HEATING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" ); NumCoolAS = GetNumObjectsFound( "COIL:COOLING:DX:VARIABLESPEED" ); NumHeatAS = GetNumObjectsFound( "COIL:HEATING:DX:VARIABLESPEED" ); - NumWatertoAirHPs = NumCool + NumHeat + NumCoolAS + NumHeatAS; + NumHPWHAirToWater = GetNumObjectsFound("COIL:WATERHEATING:AIRTOWATERHEATPUMP:VARIABLESPEED"); + NumWatertoAirHPs = NumCool + NumHeat + NumCoolAS + NumHeatAS + NumHPWHAirToWater; DXCoilNum = 0; if ( NumWatertoAirHPs <= 0 ) { - ShowSevereError( "No Equipment found in SimWatertoAirHPSimple" ); + ShowSevereError( "No Equipment found in variable speed coil module" ); ErrorsFound = true; } @@ -375,12 +390,18 @@ namespace VariableSpeedCoils { MaxNums = max( MaxNums, NumNums ); MaxAlphas = max( MaxAlphas, NumAlphas ); - AlphArray.allocate( MaxAlphas ); - cAlphaFields.allocate( MaxAlphas ); - lAlphaBlanks.dimension( MaxAlphas, true ); - cNumericFields.allocate( MaxNums ); - lNumericBlanks.dimension( MaxNums, true ); - NumArray.dimension( MaxNums, 0.0 ); + //variable speed air-source HPWH + GetObjectDefMaxArgs("COIL:WATERHEATING:AIRTOWATERHEATPUMP:VARIABLESPEED", + NumParams, NumAlphas, NumNums); + MaxNums = max(MaxNums, NumNums); + MaxAlphas = max(MaxAlphas, NumAlphas); + + AlphArray.allocate(MaxAlphas); + cAlphaFields.allocate(MaxAlphas); + lAlphaBlanks.dimension(MaxAlphas, true); + cNumericFields.allocate(MaxNums); + lNumericBlanks.dimension(MaxNums, true); + NumArray.dimension(MaxNums, 0.0); // Get the data for cooling coil, WATER SOURCE CurrentModuleObject = "Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit"; //for reporting @@ -1795,6 +1816,483 @@ namespace VariableSpeedCoils { //-------------------------AIR SOURCE HEATING---END + + //------------------------VARIABLE-SPEED AIR SOURCE HPWH---BEGIN + CurrentModuleObject = "COIL:WATERHEATING:AIRTOWATERHEATPUMP:VARIABLESPEED"; //for reporting + + for (WatertoAirHPNum = 1; WatertoAirHPNum <= NumHPWHAirToWater; ++WatertoAirHPNum) { + + ++DXCoilNum; + AlfaFieldIncre = 1; + + GetObjectItem(CurrentModuleObject, DXCoilNum, AlphArray, NumAlphas, NumArray, NumNums, IOStat, lNumericBlanks, lAlphaBlanks, cAlphaFields, cNumericFields); + + IsNotOK = false; + IsBlank = false; + + VerifyName(AlphArray(1), VarSpeedCoil.Name(), DXCoilNum - 1, IsNotOK, IsBlank, CurrentModuleObject + " Name"); + if (IsNotOK) { + ErrorsFound = true; + if (IsBlank) AlphArray(1) = "xxxxx"; + } + VerifyUniqueCoilName(CurrentModuleObject, AlphArray(1), errFlag, CurrentModuleObject + " Name"); + if (errFlag) { + ErrorsFound = true; + } + + VarSpeedCoil(DXCoilNum).CondenserType = WaterHeater; + VarSpeedCoil(DXCoilNum).CoolHeatType = "WATERHEATING"; + VarSpeedCoil(DXCoilNum).VSCoilTypeOfNum = CoilDX_HeatPumpWaterHeaterVariableSpeed; + + VarSpeedCoil(DXCoilNum).Name = AlphArray(1); + VarSpeedCoil(DXCoilNum).NumOfSpeeds = int(NumArray(1)); + VarSpeedCoil(DXCoilNum).NormSpedLevel = int(NumArray(2)); + + if (VarSpeedCoil(DXCoilNum).NumOfSpeeds < 1) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("..." + cNumericFields(1) + " must be >= 1." " entered number is " + TrimSigDigits(NumArray(1), 0)); + ErrorsFound = true; + } + + if (VarSpeedCoil(DXCoilNum).NormSpedLevel > VarSpeedCoil(DXCoilNum).NumOfSpeeds) { + VarSpeedCoil(DXCoilNum).NormSpedLevel = VarSpeedCoil(DXCoilNum).NumOfSpeeds; + } + + if ((VarSpeedCoil(DXCoilNum).NormSpedLevel > VarSpeedCoil(DXCoilNum).NumOfSpeeds) || (VarSpeedCoil(DXCoilNum).NormSpedLevel <= 0)) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("..." + cNumericFields(2) + " must be valid speed level" " entered number is " + TrimSigDigits(NumArray(2), 0)); + ErrorsFound = true; + } + + VarSpeedCoil(DXCoilNum).RatedCapWH = NumArray(3); + if (VarSpeedCoil(DXCoilNum).RatedCapWH <= 0.0) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("..." + cNumericFields(3) + " must be > 0.0, entered value=[" + TrimSigDigits(NumArray(3), 2) + "]."); + ErrorsFound = true; + } + + VarSpeedCoil(DXCoilNum).WHRatedInletDBTemp = NumArray(4); + VarSpeedCoil(DXCoilNum).WHRatedInletWBTemp = NumArray(5); + VarSpeedCoil(DXCoilNum).WHRatedInletWaterTemp = NumArray(6); + + VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate = NumArray(7); + VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate = NumArray(8); + + if (VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate != AutoCalculate) { + if (VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate <= 0.0) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("..." + cNumericFields(7) + " must be > 0.0. entered value=[" + TrimSigDigits(NumArray(7), 3) + "]."); + ErrorsFound = true; + } + } + + if (VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate != AutoCalculate) { + if (VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate <= 0.0) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("..." + cNumericFields(8) + " must be > 0.0 entered value=[" + TrimSigDigits(NumArray(8), 3) + "]."); + ErrorsFound = true; + } + } + + if (SameString(AlphArray(2), "Yes") || SameString(AlphArray(2), "No")) { + // initialized to TRUE on allocate + if (SameString(AlphArray(2), "No")) VarSpeedCoil(DXCoilNum).FanPowerIncludedInCOP = false; + else VarSpeedCoil(DXCoilNum).FanPowerIncludedInCOP = true; + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError(",,,invalid choice for " + cAlphaFields(2) + ". Entered choice = " + AlphArray(2)); + ShowContinueError("Valid choices are Yes or No."); + ErrorsFound = true; + } + + if (SameString(AlphArray(3), "Yes") || SameString(AlphArray(3), "No")) { + // initialized to FALSE on allocate + if (SameString(AlphArray(3), "Yes")) VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP = true; + else VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP = false; + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError(",,,invalid choice for " + cAlphaFields(3) + ". Entered choice = " + AlphArray(3)); + ShowContinueError("Valid choices are Yes or No."); + ErrorsFound = true; + } + + if (SameString(AlphArray(4), "Yes") || SameString(AlphArray(4), "No")) { + // initialized to FALSE on allocate + if (SameString(AlphArray(4), "Yes")) VarSpeedCoil(DXCoilNum).CondPumpHeatInCapacity = true; + else VarSpeedCoil(DXCoilNum).CondPumpHeatInCapacity = false; + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError(",,,invalid choice for " + cAlphaFields(4) + ". Entered choice = " + AlphArray(4)); + ShowContinueError("Valid choices are Yes or No."); + ErrorsFound = true; + } + + VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater = NumArray(9); + if (VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater <= 0.0 || VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater > 1.0) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("..." + cNumericFields(10) + " must be >= 0 and <= 1. entered value=[" + TrimSigDigits(NumArray(9), 3) + "]."); + ErrorsFound = true; + } + + if (false == VarSpeedCoil(DXCoilNum).CondPumpHeatInCapacity) + { + VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater = 0.0; + } + + VarSpeedCoil(DXCoilNum).AirInletNodeNum = GetOnlySingleNode(AlphArray(5), ErrorsFound, CurrentModuleObject, AlphArray(1), NodeType_Air, NodeConnectionType_Inlet, 1, ObjectIsNotParent); + + VarSpeedCoil(DXCoilNum).AirOutletNodeNum = GetOnlySingleNode(AlphArray(6), ErrorsFound, CurrentModuleObject, AlphArray(1), NodeType_Air, NodeConnectionType_Outlet, 1, ObjectIsNotParent); + + TestCompSet(CurrentModuleObject, AlphArray(1), AlphArray(5), AlphArray(6), "Air Nodes"); + + VarSpeedCoil(DXCoilNum).WaterInletNodeNum = GetOnlySingleNode(AlphArray(7), ErrorsFound, CurrentModuleObject, AlphArray(1), NodeType_Water, NodeConnectionType_Inlet, 2, ObjectIsNotParent); + + VarSpeedCoil(DXCoilNum).WaterOutletNodeNum = GetOnlySingleNode(AlphArray(8), ErrorsFound, CurrentModuleObject, AlphArray(1), NodeType_Water, NodeConnectionType_Outlet, 2, ObjectIsNotParent); + + TestCompSet(CurrentModuleObject, AlphArray(1), AlphArray(7), AlphArray(8), "Water Nodes"); + + VarSpeedCoil(DXCoilNum).CrankcaseHeaterCapacity = NumArray(10); + if (VarSpeedCoil(DXCoilNum).CrankcaseHeaterCapacity < 0.0) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("..." + cNumericFields(10) + + " must be >= 0.0 entered value=[" + TrimSigDigits(NumArray(10), 1) + "]."); + ErrorsFound = true; + } + + VarSpeedCoil(DXCoilNum).MaxOATCrankcaseHeater = NumArray(11); + if (VarSpeedCoil(DXCoilNum).MaxOATCrankcaseHeater < 0.0) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("..." + cNumericFields(11) + + " must be >= 0 {C}. entered value=[" + TrimSigDigits(NumArray(11), 1) + "]."); + ErrorsFound = true; + } + + if (SameString(AlphArray(9), "DryBulbTemperature")) { + VarSpeedCoil(DXCoilNum).InletAirTemperatureType = DryBulbIndicator; + } + else if (SameString(AlphArray(9), "WetBulbTemperature")) { + VarSpeedCoil(DXCoilNum).InletAirTemperatureType = WetBulbIndicator; + } + else { + // wrong temperature type selection + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("..." + cAlphaFields(9) + " must be DryBulbTemperature or WetBulbTemperature."); + ShowContinueError("...entered value=\"" + AlphArray(9) + "\"."); + ErrorsFound = true; + } + + // set rated inlet air temperature for curve object verification + if (VarSpeedCoil(DXCoilNum).InletAirTemperatureType == WetBulbIndicator) { + WHInletAirTemp = VarSpeedCoil(DXCoilNum).WHRatedInletWBTemp; + } + else { + WHInletAirTemp = VarSpeedCoil(DXCoilNum).WHRatedInletDBTemp; + } + // set rated water temperature for curve object verification + WHInletWaterTemp = VarSpeedCoil(DXCoilNum).WHRatedInletWaterTemp; + + //part load curve + VarSpeedCoil(DXCoilNum).PLFFPLR = GetCurveIndex(AlphArray(10)); // convert curve name to number + if (VarSpeedCoil(DXCoilNum).PLFFPLR == 0) { + if (lAlphaBlanks(10)) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", missing"); + ShowContinueError("...required " + cAlphaFields(10) + " is blank."); + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...not found " + cAlphaFields(10) + "=\"" + AlphArray(10) + "\"."); + } + ErrorsFound = true; + } + else { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).PLFFPLR, 1.0); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(10) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + } + + for (I = 1; I <= VarSpeedCoil(DXCoilNum).NumOfSpeeds; ++I) { + VarSpeedCoil(DXCoilNum).MSRatedTotCap(I) = NumArray(12 + (I - 1) * 6); + VarSpeedCoil(DXCoilNum).MSRatedCOP(I) = NumArray(13 + (I - 1) * 6); + VarSpeedCoil(DXCoilNum).MSRatedSHR(I) = NumArray(14 + (I - 1) * 6); + VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(I) = NumArray(15 + (I - 1) * 6); + VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowRate(I) = NumArray(16 + (I - 1) * 6); + VarSpeedCoil(DXCoilNum).MSWHPumpPower(I) = NumArray(17 + (I - 1) * 6); + + AlfaFieldIncre = 11 + (I - 1) * 6; + VarSpeedCoil(DXCoilNum).MSCCapFTemp(I) = GetCurveIndex(AlphArray(AlfaFieldIncre)); // convert curve name to number + if (VarSpeedCoil(DXCoilNum).MSCCapFTemp(I) == 0) { + if (lAlphaBlanks(AlfaFieldIncre)) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", missing"); + ShowContinueError("...required " + cAlphaFields(AlfaFieldIncre) + " is blank."); + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...not found " + cAlphaFields(AlfaFieldIncre) + "=\"" + AlphArray(AlfaFieldIncre) + "\"."); + } + ErrorsFound = true; + } + else { + // Verify Curve Object, only legal type is BiQuadratic + { auto const SELECT_CASE_var(GetCurveType(VarSpeedCoil(DXCoilNum).MSCCapFTemp(I))); + + if (SELECT_CASE_var == "BIQUADRATIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapFTemp(I), WHInletAirTemp, WHInletWaterTemp); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...illegal " + cAlphaFields(AlfaFieldIncre) + " type for this object = " + GetCurveType(VarSpeedCoil(DXCoilNum).MSCCapFTemp(I))); + ShowContinueError("Curve type must be BiQuadratic."); + ErrorsFound = true; + }} + } + + AlfaFieldIncre = 12 + (I - 1) * 6; + VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(I) = GetCurveIndex(AlphArray(AlfaFieldIncre)); // convert curve name to number + if (VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(I) == 0) { + if (lAlphaBlanks(AlfaFieldIncre)) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", missing"); + ShowContinueError("...required " + cAlphaFields(AlfaFieldIncre) + " is blank."); + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...not found " + cAlphaFields(AlfaFieldIncre) + "=\"" + AlphArray(AlfaFieldIncre) + "\"."); + } + ErrorsFound = true; + } + else { + // Verify Curve Object, only legal type is Quadratic + { auto const SELECT_CASE_var(GetCurveType(VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(I))); + + if (SELECT_CASE_var == "QUADRATIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(I), 1.0); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else if (SELECT_CASE_var == "CUBIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(I), 1.0); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...illegal " + cAlphaFields(AlfaFieldIncre) + " type for this object = " + GetCurveType(VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(I))); + ShowContinueError("Curve type must be Quadratic or Cubic."); + ErrorsFound = true; + }} + } + + AlfaFieldIncre = 13 + (I - 1) * 6; + VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(I) = GetCurveIndex(AlphArray(AlfaFieldIncre)); // convert curve name to number + if (VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(I) == 0) { + if (lAlphaBlanks(AlfaFieldIncre)) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", missing"); + ShowContinueError("...required " + cAlphaFields(AlfaFieldIncre) + " is blank."); + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...not found " + cAlphaFields(AlfaFieldIncre) + "=\"" + AlphArray(AlfaFieldIncre) + "\"."); + } + ErrorsFound = true; + } + else { + // Verify Curve Object, only legal type is Quadratic + { auto const SELECT_CASE_var(GetCurveType(VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(I))); + + if (SELECT_CASE_var == "QUADRATIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(I), 1.0); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else if (SELECT_CASE_var == "CUBIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(I), 1.0); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...illegal " + cAlphaFields(AlfaFieldIncre) + " type for this object = " + GetCurveType(VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(I))); + ShowContinueError("Curve type must be Quadratic or Cubic."); + ErrorsFound = true; + }} + } + + AlfaFieldIncre = 14 + (I - 1) * 6; + VarSpeedCoil(DXCoilNum).MSEIRFTemp(I) = GetCurveIndex(AlphArray(AlfaFieldIncre)); // convert curve name to number + if (VarSpeedCoil(DXCoilNum).MSEIRFTemp(I) == 0) { + if (lAlphaBlanks(AlfaFieldIncre)) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", missing"); + ShowContinueError("...required " + cAlphaFields(AlfaFieldIncre) + " is blank."); + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...not found " + cAlphaFields(AlfaFieldIncre) + "=\"" + AlphArray(AlfaFieldIncre) + "\"."); + } + ErrorsFound = true; + } + else { + // Verify Curve Object, only legal type is BiQuadratic + { auto const SELECT_CASE_var(GetCurveType(VarSpeedCoil(DXCoilNum).MSEIRFTemp(I))); + + if (SELECT_CASE_var == "BIQUADRATIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRFTemp(I), WHInletAirTemp, WHInletWaterTemp); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...illegal " + cAlphaFields(AlfaFieldIncre) + " type for this object = " + GetCurveType(VarSpeedCoil(DXCoilNum).MSEIRFTemp(1))); + ShowContinueError("Curve type must be BiQuadratic."); + ErrorsFound = true; + }} + } + + AlfaFieldIncre = 15 + (I - 1) * 6; + VarSpeedCoil(DXCoilNum).MSEIRAirFFlow(I) = GetCurveIndex(AlphArray(AlfaFieldIncre)); // convert curve name to number + if (VarSpeedCoil(DXCoilNum).MSEIRAirFFlow(I) == 0) { + if (lAlphaBlanks(AlfaFieldIncre)) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", missing"); + ShowContinueError("...required " + cAlphaFields(AlfaFieldIncre) + " is blank."); + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...not found " + cAlphaFields(AlfaFieldIncre) + "=\"" + AlphArray(AlfaFieldIncre) + "\"."); + } + ErrorsFound = true; + } + else { + // Verify Curve Object, only legal type is Quadratic + { auto const SELECT_CASE_var(GetCurveType(VarSpeedCoil(DXCoilNum).MSEIRAirFFlow(I))); + + if (SELECT_CASE_var == "QUADRATIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRAirFFlow(I), 1.0); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else if (SELECT_CASE_var == "CUBIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRAirFFlow(I), 1.0); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...illegal " + cAlphaFields(AlfaFieldIncre) + " type for this object = " + GetCurveType(VarSpeedCoil(DXCoilNum).MSEIRAirFFlow(I))); + ShowContinueError("Curve type must be Quadratic or Cubic."); + ErrorsFound = true; + }} + } + + AlfaFieldIncre = 16 + (I - 1) * 6; + VarSpeedCoil(DXCoilNum).MSEIRWaterFFlow(I) = GetCurveIndex(AlphArray(AlfaFieldIncre)); // convert curve name to number + if (VarSpeedCoil(DXCoilNum).MSEIRWaterFFlow(I) == 0) { + if (lAlphaBlanks(AlfaFieldIncre)) { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", missing"); + ShowContinueError("...required " + cAlphaFields(AlfaFieldIncre) + " is blank."); + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...not found " + cAlphaFields(AlfaFieldIncre) + "=\"" + AlphArray(AlfaFieldIncre) + "\"."); + } + ErrorsFound = true; + } + else { + // Verify Curve Object, only legal type is Quadratic + { auto const SELECT_CASE_var(GetCurveType(VarSpeedCoil(DXCoilNum).MSEIRWaterFFlow(I))); + + if (SELECT_CASE_var == "QUADRATIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRWaterFFlow(I), 1.0); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else if (SELECT_CASE_var == "CUBIC") { + CurveVal = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRWaterFFlow(I), 1.0); + if (CurveVal > 1.10 || CurveVal < 0.90) { + ShowWarningError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", curve values"); + ShowContinueError("..." + cAlphaFields(AlfaFieldIncre) + " output is not equal to 1.0 " "(+ or - 10%) at rated conditions."); + ShowContinueError("...Curve output at rated conditions = " + TrimSigDigits(CurveVal, 3)); + } + + } + else { + ShowSevereError(RoutineName + CurrentModuleObject + "=\"" + VarSpeedCoil(DXCoilNum).Name + "\", invalid"); + ShowContinueError("...illegal " + cAlphaFields(AlfaFieldIncre) + " type for this object = " + GetCurveType(VarSpeedCoil(DXCoilNum).MSEIRWaterFFlow(I))); + ShowContinueError("Curve type must be Quadratic or Cubic."); + ErrorsFound = true; + }} + } + } + + //get scale values + for (I = 1; I <= VarSpeedCoil(DXCoilNum).NumOfSpeeds; ++I) { + VarSpeedCoil(DXCoilNum).MSRatedPercentTotCap(I) = VarSpeedCoil(DXCoilNum).MSRatedTotCap(I) / VarSpeedCoil(DXCoilNum).MSRatedTotCap(VarSpeedCoil(DXCoilNum).NumOfSpeeds); + VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowPerRatedTotCap(I) = VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(I) / VarSpeedCoil(DXCoilNum).MSRatedTotCap(I); + VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowPerRatedTotCap(I) = VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowRate(I) / VarSpeedCoil(DXCoilNum).MSRatedTotCap(I); + VarSpeedCoil(DXCoilNum).MSWHPumpPowerPerRatedTotCap(I) = + VarSpeedCoil(DXCoilNum).MSWHPumpPower(I) / VarSpeedCoil(DXCoilNum).MSRatedTotCap(I); + } + + + SetupOutputVariable("Cooling Coil Electric Energy [J]", VarSpeedCoil(DXCoilNum).Energy, "System", "Summed", VarSpeedCoil(DXCoilNum).Name, _, "Electric", "Heating", _, "System"); + + SetupOutputVariable("Cooling Coil Cooling Energy [J]", VarSpeedCoil(DXCoilNum).EnergyLoadTotal, "System", "Summed", VarSpeedCoil(DXCoilNum).Name, _, "ENERGYTRANSFER", "HEATINGCOILS", _, "System"); + + SetupOutputVariable("Cooling Coil Sensible Cooling Energy [J]", VarSpeedCoil(DXCoilNum).EnergySensible, "System", "Summed", VarSpeedCoil(DXCoilNum).Name); + + SetupOutputVariable("Cooling Coil Latent Cooling Energy [J]", VarSpeedCoil(DXCoilNum).EnergyLatent, "System", "Summed", VarSpeedCoil(DXCoilNum).Name); + + SetupOutputVariable("Cooling Coil Water Side Heat Transfer Energy [J]", VarSpeedCoil(DXCoilNum).EnergySource, "System", "Summed", VarSpeedCoil(DXCoilNum).Name, _, "PLANTLOOPHEATINGDEMAND", "HEATINGCOILS", _, "System"); + + VarSpeedCoil(DXCoilNum).RatedCapCoolSens = AutoSize; //always auto-sized, to be determined in the sizing calculation + } + //---------------------------VARIABLE-SPEED AIR SOURCE HPWH END -------------- + + + AlphArray.deallocate(); cAlphaFields.deallocate(); lAlphaBlanks.deallocate(); @@ -1807,7 +2305,8 @@ namespace VariableSpeedCoils { } for ( DXCoilNum = 1; DXCoilNum <= NumWatertoAirHPs; ++DXCoilNum ) { - if ( ( VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == Coil_CoolingAirToAirVariableSpeed ) || ( VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == Coil_HeatingAirToAirVariableSpeed ) ) { + if ( ( VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == Coil_CoolingAirToAirVariableSpeed ) || + ( VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == Coil_HeatingAirToAirVariableSpeed ) ) { // Setup Report variables for the Heat Pump //cooling and heating coils separately @@ -1919,6 +2418,34 @@ namespace VariableSpeedCoils { SetupOutputVariable( "Heating Coil Neighboring Speed Levels Ratio []", VarSpeedCoil( DXCoilNum ).SpeedRatioReport, "System", "Average", VarSpeedCoil( DXCoilNum ).Name ); SetupOutputVariable( "Heating Coil Recoverable Heat Transfer Rate [W]", VarSpeedCoil( DXCoilNum ).QWasteHeat, "System", "Average", VarSpeedCoil( DXCoilNum ).Name ); } + else if (VarSpeedCoil(DXCoilNum).VSCoilTypeOfNum == CoilDX_HeatPumpWaterHeaterVariableSpeed) { + // air source water heating coil + SetupOutputVariable("Cooling Coil Water Heating Electric Power [W]", VarSpeedCoil(DXCoilNum).Power, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Total Cooling Rate [W]", VarSpeedCoil(DXCoilNum).QLoadTotal, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Sensible Cooling Rate [W]", VarSpeedCoil(DXCoilNum).QSensible, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Latent Cooling Rate [W]", VarSpeedCoil(DXCoilNum).QLatent, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Total Water Heating Rate [W]", VarSpeedCoil(DXCoilNum).TotalHeatingEnergyRate, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Part Load Ratio []", VarSpeedCoil(DXCoilNum).PartLoadRatio, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Runtime Fraction []", VarSpeedCoil(DXCoilNum).RunFrac, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + + SetupOutputVariable("Cooling Coil Air Mass Flow Rate [kg/s]", VarSpeedCoil(DXCoilNum).AirMassFlowRate, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Air Inlet Temperature [C]", VarSpeedCoil(DXCoilNum).InletAirDBTemp, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Air Inlet Humidity Ratio [kgWater/kgDryAir]", VarSpeedCoil(DXCoilNum).InletAirHumRat, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Air Outlet Temperature [C]", VarSpeedCoil(DXCoilNum).OutletAirDBTemp, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Air Outlet Humidity Ratio [kgWater/kgDryAir]", VarSpeedCoil(DXCoilNum).OutletAirHumRat, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Water Mass Flow Rate [kg/s]", VarSpeedCoil(DXCoilNum).WaterMassFlowRate, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Water Inlet Temperature [C]", VarSpeedCoil(DXCoilNum).InletWaterTemp, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Water Outlet Temperature [C]", VarSpeedCoil(DXCoilNum).OutletWaterTemp, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + + SetupOutputVariable("Cooling Coil Crankcase Heater Electric Power [W]", VarSpeedCoil(DXCoilNum).CrankcaseHeaterPower, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Crankcase Heater Electric Energy [J]", VarSpeedCoil(DXCoilNum).CrankcaseHeaterConsumption, "System", "Sum", VarSpeedCoil(DXCoilNum).Name, _, "Electric", "HEATING", _, "System"); + + SetupOutputVariable("Cooling Coil Upper Speed Level []", VarSpeedCoil(DXCoilNum).SpeedNumReport, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Neighboring Speed Levels Ratio []", VarSpeedCoil(DXCoilNum).SpeedRatioReport, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + + SetupOutputVariable("Cooling Coil Water Heating Pump Electric Power [W]", VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower, "System", "Average", VarSpeedCoil(DXCoilNum).Name); + SetupOutputVariable("Cooling Coil Water Heating Pump Electric Energy [J]", VarSpeedCoil(DXCoilNum).EvapCondPumpElecConsumption, "System", "Sum", VarSpeedCoil(DXCoilNum).Name, _, "Electric", "HEATING", _, "System"); + } } } @@ -1949,7 +2476,7 @@ namespace VariableSpeedCoils { // SUBROUTINE INFORMATION: // AUTHOR Bo Shen, based on MODULE WaterToAirHeatPumpSimple:InitSimpleWatertoAirHP // DATE WRITTEN March, 2012 - // MODIFIED na + // MODIFIED Bo Shen, 12/2014, add variable-speed HPWH // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: @@ -2003,6 +2530,7 @@ namespace VariableSpeedCoils { // Indoor dry-bulb temperature to heat pump evaporator at rated conditions [C] Real64 RatedHeatPumpIndoorHumRat; // Inlet humidity ratio to heat pump evaporator at rated conditions [kg/kg] Real64 WaterFlowScale; // water flow scaling factor match rated flow rate + Real64 HPInletAirHumRat; // Rated inlet air humidity ratio for heat pump water heater [kgWater/kgDryAir] // SUBROUTINE PARAMETER DEFINITIONS: static Real64 SmallDifferenceTest( 0.00000001 ); @@ -2017,8 +2545,21 @@ namespace VariableSpeedCoils { MyEnvrnFlag = true; MyPlantScanFlag = true; MyOneTimeFlag = false; + } + + + //variable-speed heat pump water heating, begin + if (VarSpeedCoil(DXCoilNum).VSCoilTypeOfNum == CoilDX_HeatPumpWaterHeaterVariableSpeed + && MySizeFlag(DXCoilNum)) { + + SizeVarSpeedCoil(DXCoilNum); + // get rated coil bypass factor excluding fan heat + FanElecPower = 0.0; + MySizeFlag(DXCoilNum) = false; } + //variable-speed heat pump water heating, end + // water source if ( ( VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == TypeOf_CoilVSWAHPCoolingEquationFit ) || ( VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == TypeOf_CoilVSWAHPHeatingEquationFit ) ) { @@ -2244,6 +2785,12 @@ namespace VariableSpeedCoils { VarSpeedCoil( DXCoilNum ).InletWaterEnthalpy = 0.0; } + if (VarSpeedCoil(DXCoilNum).VSCoilTypeOfNum == CoilDX_HeatPumpWaterHeaterVariableSpeed) + { + VarSpeedCoil(DXCoilNum).InletWaterTemp = Node(WaterInletNode).Temp; + VarSpeedCoil(DXCoilNum).InletWaterEnthalpy = Node(WaterInletNode).Enthalpy; + }; + VarSpeedCoil( DXCoilNum ).InletAirDBTemp = Node( AirInletNode ).Temp; VarSpeedCoil( DXCoilNum ).InletAirHumRat = Node( AirInletNode ).HumRat; VarSpeedCoil( DXCoilNum ).InletAirEnthalpy = Node( AirInletNode ).Enthalpy; @@ -2284,6 +2831,16 @@ namespace VariableSpeedCoils { VarSpeedCoil( DXCoilNum ).CondensateVol = 0.0; VarSpeedCoil( DXCoilNum ).QWasteHeat = 0.0; + //clear zeros to HPWH variables + VarSpeedCoil(DXCoilNum).ElecWaterHeatingPower = 0.0; // Total electric power consumed by compressor and condenser pump [W] + VarSpeedCoil(DXCoilNum).ElecWaterHeatingConsumption = 0.0; // Total electric consumption by compressor and condenser pump [J] + VarSpeedCoil(DXCoilNum).TotalHeatingEnergy = 0.0; //total water heating energy + VarSpeedCoil(DXCoilNum).TotalHeatingEnergyRate = 0.0;//total WH energy rate + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower = 0.0;//power power + + VSHPWHHeatingCapacity = 0.0; // Used by Heat Pump:Water Heater object as total water heating capacity [W] + VSHPWHHeatingCOP = 0.0; // Used by Heat Pump:Water Heater object as water heating COP [W/W] + VarSpeedCoil(DXCoilNum).OutletWaterTemp = VarSpeedCoil(DXCoilNum).InletWaterTemp; } void @@ -2294,6 +2851,7 @@ namespace VariableSpeedCoils { // AUTHOR Bo Shen, based on WaterToAirHeatPumpSimple:SizeHVACWaterToAir // DATE WRITTEN March, 2012 // MODIFIED August 2013 Daeho Kang, add component sizing table entries + // MODIFIED Bo Shen, 12/2014, add variable-speed HPWH // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: @@ -2403,6 +2961,8 @@ namespace VariableSpeedCoils { Real64 DefrostCapacityUser; // Hardsized resistive defrost heater capacity for reporting bool SizingDesRunThisAirSys; // true if a particular air system had a Sizing:System object and system sizing done bool SizingDesRunThisZone; // true if a particular zone had a Sizing:Zone object and zone sizing was done + Real64 HPInletAirHumRat; // Rated inlet air humidity ratio for heat pump water heater [kgWater/kgDryAir] + Real64 HPWHCoolCapacity; //estimate cooling capacity in HPWH UpperSpeed = VarSpeedCoil( DXCoilNum ).NumOfSpeeds; NormSpeed = VarSpeedCoil( DXCoilNum ).NormSpedLevel; @@ -2445,10 +3005,32 @@ namespace VariableSpeedCoils { if ( VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == TypeOf_CoilVSWAHPCoolingEquationFit || VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == TypeOf_CoilVSWAHPHeatingEquationFit ) { CurrentObjSubfix = ":WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT"; - } else { + } + else if (VarSpeedCoil(DXCoilNum).VSCoilTypeOfNum == CoilDX_HeatPumpWaterHeaterVariableSpeed) { + CurrentObjSubfix = ":WATERHEATING:AIRTOWATERHEATPUMP:VARIABLESPEED"; + } + else { CurrentObjSubfix = ":DX:VARIABLESPEED"; } + if (VarSpeedCoil(DXCoilNum).CoolHeatType == "WATERHEATING") { + if (VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate == AutoCalculate) { + VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate = VarSpeedCoil(DXCoilNum).RatedCapWH * + VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(NormSpeed) / + VarSpeedCoil(DXCoilNum).MSRatedTotCap(NormSpeed);//0.00005035; + VarSpeedCoil(DXCoilNum).AirVolFlowAutoSized = true; + } + + if (VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate == AutoCalculate) { + VarSpeedCoil(DXCoilNum).RatedHPWHCondWaterFlow = VarSpeedCoil(DXCoilNum).RatedCapWH * + VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowRate(NormSpeed) / + VarSpeedCoil(DXCoilNum).MSRatedTotCap(NormSpeed);// 0.00000004487; + VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate = + VarSpeedCoil(DXCoilNum).RatedHPWHCondWaterFlow; + VarSpeedCoil(DXCoilNum).WaterVolFlowAutoSized = true; + } + } + if ( VarSpeedCoil( DXCoilNum ).RatedAirVolFlowRate == AutoSize ) { RatedAirFlowAutoSized = true; } @@ -2758,16 +3340,42 @@ namespace VariableSpeedCoils { } else if ( VarSpeedCoil( DXCoilNum ).CoolHeatType == "HEATING" ) { VarSpeedCoil( DXCoilNum ).MSRatedTotCap( UpperSpeed ) = VarSpeedCoil( DXCoilNum ).RatedCapHeat / VarSpeedCoil( DXCoilNum ).MSRatedPercentTotCap( NormSpeed ); } - - rhoA = PsyRhoAirFnPbTdbW( OutBaroPress, RatedInletAirTemp, RatedInletAirHumRat, RoutineName ); - for ( Mode = VarSpeedCoil( DXCoilNum ).NumOfSpeeds; Mode >= 1; --Mode ) { - VarSpeedCoil( DXCoilNum ).MSRatedTotCap( Mode ) = VarSpeedCoil( DXCoilNum ).MSRatedTotCap( UpperSpeed ) * VarSpeedCoil( DXCoilNum ).MSRatedPercentTotCap( Mode ); - VarSpeedCoil( DXCoilNum ).MSRatedAirVolFlowRate( Mode ) = VarSpeedCoil( DXCoilNum ).MSRatedTotCap( Mode ) * VarSpeedCoil( DXCoilNum ).MSRatedAirVolFlowPerRatedTotCap( Mode ); - VarSpeedCoil( DXCoilNum ).MSRatedAirMassFlowRate( Mode ) = VarSpeedCoil( DXCoilNum ).MSRatedAirVolFlowRate( Mode ) * rhoA; - // EVAPORATIVE PRECOOLING CONDENSER AIR FLOW RATE - VarSpeedCoil( DXCoilNum ).EvapCondAirFlow( Mode ) = VarSpeedCoil( DXCoilNum ).MSRatedTotCap( Mode ) * VarSpeedCoil( DXCoilNum ).MSRatedEvapCondVolFlowPerRatedTotCap( Mode ); + else if (VarSpeedCoil(DXCoilNum).CoolHeatType == "WATERHEATING") { + VarSpeedCoil(DXCoilNum).MSRatedTotCap(UpperSpeed) = VarSpeedCoil(DXCoilNum).RatedCapWH / + VarSpeedCoil(DXCoilNum).MSRatedPercentTotCap(NormSpeed); } + if (VarSpeedCoil(DXCoilNum).CoolHeatType == "WATERHEATING") + { + HPInletAirHumRat = PsyWFnTdbTwbPb(VarSpeedCoil(DXCoilNum).WHRatedInletDBTemp, + VarSpeedCoil(DXCoilNum).WHRatedInletWBTemp, StdBaroPress, RoutineName); + rhoA = PsyRhoAirFnPbTdbW(OutBaroPress, VarSpeedCoil(DXCoilNum).WHRatedInletDBTemp, + HPInletAirHumRat, RoutineName); + + for (Mode = VarSpeedCoil(DXCoilNum).NumOfSpeeds; Mode >= 1; --Mode) { + VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode) = VarSpeedCoil(DXCoilNum).MSRatedTotCap(UpperSpeed) * + VarSpeedCoil(DXCoilNum).MSRatedPercentTotCap(Mode); + VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) = VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode) * + VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowPerRatedTotCap(Mode); + VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate(Mode) = VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) + * rhoA; + // EVAPORATIVE PRECOOLING CONDENSER AIR FLOW RATE + VarSpeedCoil(DXCoilNum).EvapCondAirFlow(Mode) = 0.0; + } + } + else + { + rhoA = PsyRhoAirFnPbTdbW(OutBaroPress, RatedInletAirTemp, RatedInletAirHumRat, RoutineName); + //HPWH, the mass flow rate will be updated by a revised entering air density + for (Mode = VarSpeedCoil(DXCoilNum).NumOfSpeeds; Mode >= 1; --Mode) { + VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode) = VarSpeedCoil(DXCoilNum).MSRatedTotCap(UpperSpeed) * VarSpeedCoil(DXCoilNum).MSRatedPercentTotCap(Mode); + VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) = VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode) * VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowPerRatedTotCap(Mode); + VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate(Mode) = VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) * rhoA; + // EVAPORATIVE PRECOOLING CONDENSER AIR FLOW RATE + VarSpeedCoil(DXCoilNum).EvapCondAirFlow(Mode) = VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode) * VarSpeedCoil(DXCoilNum).MSRatedEvapCondVolFlowPerRatedTotCap(Mode); + } + } + // size rated power if ( VarSpeedCoil( DXCoilNum ).CoolHeatType == "COOLING" ) { @@ -2779,6 +3387,12 @@ namespace VariableSpeedCoils { VarSpeedCoil( DXCoilNum ).RatedPowerHeat = VarSpeedCoil( DXCoilNum ).RatedCapHeat / VarSpeedCoil( DXCoilNum ).RatedCOPHeat; VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal = VarSpeedCoil( DXCoilNum ).RatedCapHeat; } + else if (VarSpeedCoil(DXCoilNum).CoolHeatType == "WATERHEATING") { + VarSpeedCoil(DXCoilNum).RatedCOPHeat = VarSpeedCoil(DXCoilNum).MSRatedCOP(VarSpeedCoil(DXCoilNum).NormSpedLevel); + VarSpeedCoil(DXCoilNum).RatedPowerHeat = VarSpeedCoil(DXCoilNum).RatedCapWH / VarSpeedCoil(DXCoilNum).RatedCOPHeat; + VarSpeedCoil(DXCoilNum).RatedCapCoolTotal = VarSpeedCoil(DXCoilNum).RatedCapWH * + (1.0 - 1.0/VarSpeedCoil(DXCoilNum).RatedCOPHeat); + } // Size water volumetric flow rate if ( ( VarSpeedCoil( DXCoilNum ).RatedWaterVolFlowRate == AutoSize ) && ( VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == TypeOf_CoilVSWAHPCoolingEquationFit || VarSpeedCoil( DXCoilNum ).VSCoilTypeOfNum == TypeOf_CoilVSWAHPHeatingEquationFit ) ) { @@ -2874,8 +3488,12 @@ namespace VariableSpeedCoils { } // Save component design water volumetric flow rate. + if (VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate > 0.0 && + VarSpeedCoil(DXCoilNum).CoolHeatType == "WATERHEATING"){ + RegisterPlantCompDesignFlow(VarSpeedCoil(DXCoilNum).WaterInletNodeNum, VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate); + } // Use 1/2 flow since both cooling and heating coil will save flow yet only 1 will operate at a time - if ( VarSpeedCoil( DXCoilNum ).RatedWaterVolFlowRate > 0.0 ) { + else if ( VarSpeedCoil( DXCoilNum ).RatedWaterVolFlowRate > 0.0 ) { RegisterPlantCompDesignFlow( VarSpeedCoil( DXCoilNum ).WaterInletNodeNum, 0.5 * VarSpeedCoil( DXCoilNum ).RatedWaterVolFlowRate ); } @@ -2896,7 +3514,21 @@ namespace VariableSpeedCoils { VarSpeedCoil( DXCoilNum ).MSRatedWaterVolFlowRate( Mode ) = VarSpeedCoil( DXCoilNum ).MSRatedTotCap( Mode ) * VarSpeedCoil( DXCoilNum ).MSRatedWaterVolFlowPerRatedTotCap( Mode ); VarSpeedCoil( DXCoilNum ).MSRatedWaterMassFlowRate( Mode ) = VarSpeedCoil( DXCoilNum ).MSRatedWaterVolFlowRate( Mode ) * rhoW; } - } else { + } + else if (VarSpeedCoil(DXCoilNum).CoolHeatType == "WATERHEATING") { + RatedSourceTempCool = VarSpeedCoil(DXCoilNum).WHRatedInletWaterTemp; + rhoW = RhoH2O(RatedSourceTempCool); + VarSpeedCoil(DXCoilNum).RatedWaterMassFlowRate = VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate * rhoW; + for (Mode = VarSpeedCoil(DXCoilNum).NumOfSpeeds; Mode >= 1; --Mode) { + VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowRate(Mode) = VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode) * + VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowPerRatedTotCap(Mode); + VarSpeedCoil(DXCoilNum).MSWHPumpPower(Mode) = VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode) * + VarSpeedCoil(DXCoilNum).MSWHPumpPowerPerRatedTotCap(Mode); + VarSpeedCoil(DXCoilNum).MSRatedWaterMassFlowRate(Mode) = + VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowRate(Mode) * rhoW; + } + } + else { RatedSourceTempCool = RatedAmbAirTemp; } @@ -2930,6 +3562,61 @@ namespace VariableSpeedCoils { } } } + else if (VarSpeedCoil(DXCoilNum).CoolHeatType == "WATERHEATING") { + HPWHInletDBTemp = VarSpeedCoil(DXCoilNum).WHRatedInletDBTemp; + HPWHInletWBTemp = VarSpeedCoil(DXCoilNum).WHRatedInletWBTemp; + + rhoA = PsyRhoAirFnPbTdbW(StdBaroPress, HPWHInletDBTemp, HPInletAirHumRat, RoutineName); + for (Mode = 1; Mode <= VarSpeedCoil(DXCoilNum).NumOfSpeeds; ++Mode) { + VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate(Mode) = VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) + * rhoA; + // Check for valid range of (Rated Air Volume Flow Rate / Rated Total Capacity) + //RatedVolFlowPerRatedTotCap = VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(Mode) / + // VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode);//prepared for checking ratios, not used here + } + + for (Mode = 1; Mode <= VarSpeedCoil(DXCoilNum).NumOfSpeeds; ++Mode) { + //get cooling capacity, without fan power, i.e. total coil cooling + if (VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) + HPWHCoolCapacity = VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode)* + (1.0 - 1.0 / VarSpeedCoil(DXCoilNum).MSRatedCOP(Mode)) + + VarSpeedCoil(DXCoilNum).MSWHPumpPower(Mode) - + VarSpeedCoil(DXCoilNum).MSWHPumpPower(Mode) * + VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater ; + else + HPWHCoolCapacity = VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode)* + (1.0 - 1.0 / VarSpeedCoil(DXCoilNum).MSRatedCOP(Mode)) - + VarSpeedCoil(DXCoilNum).MSWHPumpPower(Mode) * + VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater; + + VarSpeedCoil(DXCoilNum).MSRatedCBF(Mode) = + CalcCBF(VarSpeedCoil(DXCoilNum).VarSpeedCoilType, VarSpeedCoil(DXCoilNum).Name, + HPWHInletDBTemp, HPInletAirHumRat, HPWHCoolCapacity, + VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate(Mode), VarSpeedCoil(DXCoilNum).MSRatedSHR(Mode)); + if (VarSpeedCoil(DXCoilNum).MSRatedCBF(Mode) > 0.0) { + VarSpeedCoil(DXCoilNum).MSEffectiveAo(Mode) = -std::log(VarSpeedCoil(DXCoilNum).MSRatedCBF(Mode)) * + VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate(Mode); + } + else { + VarSpeedCoil(DXCoilNum).MSEffectiveAo(Mode) = 0.0; + } + } + + //update VarSpeedCoil(DXCoilNum).RatedCapCoolTotal + Mode = VarSpeedCoil(DXCoilNum).NormSpedLevel; + if (VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) + VarSpeedCoil(DXCoilNum).RatedCapCoolTotal = VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode)* + (1.0 - 1.0 / VarSpeedCoil(DXCoilNum).MSRatedCOP(Mode)) + + VarSpeedCoil(DXCoilNum).MSWHPumpPower(Mode) - + VarSpeedCoil(DXCoilNum).MSWHPumpPower(Mode) * + VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater; + else + VarSpeedCoil(DXCoilNum).RatedCapCoolTotal = VarSpeedCoil(DXCoilNum).MSRatedTotCap(Mode)* + (1.0 - 1.0 / VarSpeedCoil(DXCoilNum).MSRatedCOP(Mode)) - + VarSpeedCoil(DXCoilNum).MSWHPumpPower(Mode) * + VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater; + } + // size rated sensible cooling capacity RatedCapCoolSensAutoSized = true; //always do that @@ -2950,7 +3637,39 @@ namespace VariableSpeedCoils { CalcTotCapSHR_VSWSHP( RatedInletAirTemp, RatedInletAirHumRat, RatedInletEnth, RatedInletWetBulbTemp, AirMassFlowRatio, WaterMassFlowRatio, RatedAirMassFlowRate, CBFRated, VarSpeedCoil( DXCoilNum ).MSRatedTotCap( NormSpeed ), VarSpeedCoil( DXCoilNum ).MSCCapFTemp( NormSpeed ), VarSpeedCoil( DXCoilNum ).MSCCapAirFFlow( NormSpeed ), VarSpeedCoil( DXCoilNum ).MSCCapWaterFFlow( NormSpeed ), 0.0, 0, 0, 0, QLoadTotal1, QLoadTotal2, QLoadTotal, SHR, RatedSourceTempCool, StdBaroPress, 0.0, 1 ); RatedCapCoolSensDes = VarSpeedCoil( DXCoilNum ).RatedCapCoolTotal * SHR; - } else { + } + else if (VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate >= SmallAirVolFlow && + VarSpeedCoil(DXCoilNum).CoolHeatType == "WATERHEATING") { + /* RatedAirMassFlowRate = VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate * PsyRhoAirFnPbTdbW(StdBaroPress, + HPWHInletDBTemp, HPInletAirHumRat, RoutineName); + RatedInletEnth = PsyHFnTdbW(HPWHInletDBTemp, HPInletAirHumRat); + CBFRated = AdjustCBF(VarSpeedCoil(DXCoilNum).MSRatedCBF(NormSpeed), + VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate(NormSpeed), RatedAirMassFlowRate); + if (CBFRated > 0.999) CBFRated = 0.999; + AirMassFlowRatio = VarSpeedCoil(DXCoilNum).RatedAirVolFlowRate / + VarSpeedCoil(DXCoilNum).MSRatedAirVolFlowRate(NormSpeed); + + if (VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowRate(NormSpeed) > 1.0e-10) { + WaterMassFlowRatio = VarSpeedCoil(DXCoilNum).RatedWaterVolFlowRate / + VarSpeedCoil(DXCoilNum).MSRatedWaterVolFlowRate(NormSpeed); + } + else { + WaterMassFlowRatio = 1.0; + } + + CalcTotCapSHR_VSWSHP(HPWHInletDBTemp, HPInletAirHumRat, + RatedInletEnth, HPWHInletWBTemp, + AirMassFlowRatio, WaterMassFlowRatio, RatedAirMassFlowRate, + CBFRated, VarSpeedCoil(DXCoilNum).MSRatedTotCap(NormSpeed), + VarSpeedCoil(DXCoilNum).MSCCapFTemp(NormSpeed), + VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(NormSpeed), + VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(NormSpeed), 0.0, 0, 0, 0, + QLoadTotal1, QLoadTotal2, QLoadTotal, SHR, RatedSourceTempCool, StdBaroPress, 0.0, 1);*/ + + SHR = VarSpeedCoil(DXCoilNum).MSRatedSHR(NormSpeed); + RatedCapCoolSensDes = VarSpeedCoil(DXCoilNum).RatedCapCoolTotal * SHR; + } + else { RatedCapCoolSensDes = 0.0; } @@ -3686,6 +4405,562 @@ namespace VariableSpeedCoils { } + void + CalcVarSpeedHPWH( + int const DXCoilNum, // the number of the DX coil to be simulated + Real64 & RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) + Real64 const PartLoadRatio, // sensible water heating load / full load sensible water heating capacity + Real64 const SpeedRatio, // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) + int const SpeedNum, // Speed number, high bound + int const CyclingScheme // Continuous fan OR cycling compressor + ) + { + + // SUBROUTINE INFORMATION: + // AUTHOR Bo Shen, ORNL + // DATE WRITTEN 12/2014 + // MODIFIED na + // RE-ENGINEERED na + + // PURPOSE OF THIS SUBROUTINE: + // Calculates the gross cooling capacity of a varaible-speed heat pump water heater evaporator and + // heating capacity of the condenser coil given the rated heating capacity and COP. + + // METHODOLOGY EMPLOYED: + // The routine requires the user to enter the total heating capacity and COP for the + // heat pump water heater along with logicals defining if fan and condenser pump are included at numerous speed levels. + // Since manufacturer's can rate their HPWH equipment with or without including condenser + // pump heat, this information is required to accurately determine the condenser's leaving + // water temperature. In addition, knowledge of the fan heat is required to back into + // a compressor COP. + + // Using/Aliasing + using CurveManager::CurveValue; + using General::TrimSigDigits; + using DataHVACGlobals::FanElecPower; + using DataHVACGlobals::HPWHInletDBTemp; + using DataHVACGlobals::HPWHInletWBTemp; + using DataHVACGlobals::DXCoilTotalCapacity; + + // Locals + // SUBROUTINE ARGUMENT DEFINITIONS: + + // SUBROUTINE PARAMETER DEFINITIONS: + static std::string const RoutineName("CalcVarSpeedHPWH"); + + // INTERFACE BLOCK SPECIFICATIONS + // na + + // DERIVED TYPE DEFINITIONS + // na + + // SUBROUTINE LOCAL VARIABLE DECLARATIONS: + Real64 OperatingHeatingCapacity ; // Water heating operating capacity including the impact of capacity and COP curves (W) + Real64 OperatingHeatingCOP ; // Water heating operating COP including the impact of capacity and COP curves (W/W) + Real64 OperatingHeatingPower ; // Water heating operating Power (W) + Real64 CompressorPower ; // Power consumed by compressor only (W) + + Real64 TotalTankHeatingCapacity ; // Water heating capacity corrected for condenser water pump heat (W) + Real64 TankHeatingCOP ; // Water heating COP corrected for fan and condenser water pump power (W/W) + // (these previous 2 variables also include the impact of capacity and COP curves) + Real64 EvapCoolingCapacity ; // Air cooling capacity corrected for evap fan and cond water pump heat (W) + Real64 InletWaterTemp ; // Condenser water inlet temperature (C) + Real64 OutletWaterTemp ; // Condenser water outlet temperature (C) + Real64 EvapInletMassFlowRate ; // Evaporator air inlet mass flow rate (m3/s) + Real64 CondInletMassFlowRate ; // Condenser water inlet mass flow rate (m3/s) + Real64 CpWater ; // Specific heat of condenser inlet water (J/Kg/k) + Real64 InletAirTemp ; // HPWH inlet air temperature (dry-bulb or wet-bulb) (C) + Real64 AirMassFlowRatio ; // Ratio of evaporator inlet air mass flow rate to rated mass flow rate + Real64 WaterMassFlowRatio ; // Ratio of evaporator inlet water mass flow rate to rated mass flow rate + Real64 PartLoadFraction ; // Output of Part Load Fraction as a Function of Part Load Ratio curve + Real64 PumpHeatToWater ; // Amount of pump heat attributed to heating water + Real64 HPRTF ; // Heat pump run time fraction + Real64 PLF ; // part-load function + Real64 CBFSpeed ; // bypass factor as individual speed level + Real64 COPAirFFModFac ; // air flow fraction modification + Real64 COPWaterFFModFac ; // water flow fraction modification + Real64 COPTempModFac ; // total capacity temperature correctio fraction + Real64 TOTCAPAirFFModFac ; // air flow fraction modification + Real64 TOTCAPWaterFFModFac ; // water flow fraction modification + Real64 TOTCAPTempModFac ; // total capacity temperature correctio fraction + Real64 SHR ; // total capacity temperature correctio fraction + Real64 COP ; // total capacity temperature correctio fraction + Real64 AoEff ; // effective air side surface area + Real64 Winput1 ; // power consumption at low speed + Real64 Winput2 ; // power consumption at high speed + Real64 LoadPressure ; // evaporator inlet pressure + Real64 CrankcaseHeatingPower ; // power due to crankcase heater + Real64 hDelta ; // Change in air enthalpy across the cooling coil [J/kg] + Real64 hADP ; // Apparatus dew point enthalpy [J/kg] + Real64 tADP ; // Apparatus dew point temperature [C] + Real64 wADP ; // Apparatus dew point humidity ratio [kg/kg] + Real64 hTinwADP ; // Enthalpy at inlet dry-bulb and wADP [J/kg] + Real64 WHCAP1 ; // total heating capacity at low speed [W] + Real64 WHCAP2 ; // total heating capacity at high speed [W] + Real64 CpAir ; // Specific heat of air [J/kg_C] + Real64 MaxHumRat ; // max possible humidity + Real64 MaxOutletEnth ; // max possible outlet enthalpy + Real64 ReportingConstant ; + int EvapInletNode ; // Evaporator air inlet node number + int EvapOutletNode ; // Evaporator air outlet node number + int CondInletNode ; // Condenser water inlet node number + int CondOutletNode ; // Condenser water outlet node number + int MaxSpeed ; // maximum speed level + int SpeedCal ; // calculated speed level + + //note: load side is the evaporator side, and source side is the condenser side + + CondInletNode = VarSpeedCoil(DXCoilNum).WaterInletNodeNum; + CondOutletNode = VarSpeedCoil(DXCoilNum).WaterOutletNodeNum; + // If heat pump water heater is OFF, set outlet to inlet and RETURN + if (PartLoadRatio == 0.0) { + Node(CondOutletNode) = Node(CondInletNode); + return; + } + else { + EvapInletNode = VarSpeedCoil(DXCoilNum).AirInletNodeNum; + EvapOutletNode = VarSpeedCoil(DXCoilNum).AirOutletNodeNum; + InletWaterTemp = Node(CondInletNode).Temp; + CondInletMassFlowRate = Node(CondInletNode).MassFlowRate; + EvapInletMassFlowRate = Node(EvapInletNode).MassFlowRate; + CpWater = CPHW(InletWaterTemp); + CompressorPower = 0.0; + OperatingHeatingPower = 0.0; + TankHeatingCOP = 0.0; + } + + + // LOAD LOCAL VARIABLES FROM DATA STRUCTURE (for code readability) + if (!(CyclingScheme == ContFanCycCoil) && PartLoadRatio > 0.0) { + CondInletMassFlowRate = CondInletMassFlowRate / PartLoadRatio; + EvapInletMassFlowRate = EvapInletMassFlowRate / PartLoadRatio; + } + + VarSpeedCoil(DXCoilNum).AirMassFlowRate = EvapInletMassFlowRate; + VarSpeedCoil(DXCoilNum).WaterMassFlowRate = CondInletMassFlowRate; + + // determine inlet air temperature type for curve objects + if (VarSpeedCoil(DXCoilNum).InletAirTemperatureType == WetBulbIndicator) { + InletAirTemp = HPWHInletWBTemp; + } + else { + InletAirTemp = HPWHInletDBTemp; + } + + // check if indoor evaporator or outdoor evaporator + CrankcaseHeatingPower = 0.0; + if (EvapInletNode != 0) { + LoadSideInletDBTemp = Node(EvapInletNode).Temp; + LoadSideInletHumRat = Node(EvapInletNode).HumRat; + LoadPressure = Node(EvapInletNode).Press; + //prevent the air pressure not given + if (LoadPressure < 10.0) LoadPressure = OutBaroPress; + + LoadSideInletWBTemp = Node(EvapInletNode).OutAirWetBulb; + LoadSideInletEnth = Node(EvapInletNode).Enthalpy; + } + else { + LoadSideInletDBTemp = OutDryBulbTemp; + LoadSideInletHumRat = OutHumRat; + LoadPressure = OutBaroPress; + LoadSideInletWBTemp = OutWetBulbTemp; + LoadSideInletEnth = OutEnthalpy; + + // Initialize crankcase heater, operates below OAT defined in input deck for HP DX heating coil + if (OutDryBulbTemp < VarSpeedCoil(DXCoilNum).MaxOATCrankcaseHeater) { + CrankcaseHeatingPower = VarSpeedCoil(DXCoilNum).CrankcaseHeaterCapacity; + }; + } + + + LoadSideMassFlowRate = EvapInletMassFlowRate; + SourceSideMassFlowRate = CondInletMassFlowRate; + SourceSideInletTemp = InletWaterTemp; + SourceSideInletEnth = Node(CondInletNode).Enthalpy; + VarSpeedCoil(DXCoilNum).InletWaterEnthalpy = SourceSideInletEnth; + + MaxSpeed = VarSpeedCoil(DXCoilNum).NumOfSpeeds; + + // must be placed inside the loop, otherwise cause bug in release mode, need to be present at two places + if (SpeedNum > MaxSpeed) { + SpeedCal = MaxSpeed; + } + else { + SpeedCal = SpeedNum; + } + + //part-load calculation + RuntimeFrac = 1.0; + VarSpeedCoil(DXCoilNum).RunFrac = 1.0; + if ((SpeedNum == 1) && (PartLoadRatio < 1.0)) { + PLF = CurveValue(VarSpeedCoil(DXCoilNum).PLFFPLR, PartLoadRatio); + if (PLF < 0.7) { + PLF = 0.7; + } + // calculate the run time fraction + VarSpeedCoil(DXCoilNum).RunFrac = PartLoadRatio / PLF; + VarSpeedCoil(DXCoilNum).PartLoadRatio = PartLoadRatio; + + if (VarSpeedCoil(DXCoilNum).RunFrac > 1.0) { + VarSpeedCoil(DXCoilNum).RunFrac = 1.0; // Reset coil runtime fraction to 1.0 + } + else if (VarSpeedCoil(DXCoilNum).RunFrac < 0.0) { + VarSpeedCoil(DXCoilNum).RunFrac = 0.0; + } + + RuntimeFrac = VarSpeedCoil(DXCoilNum).RunFrac; + } + + //interpolate between speeds + // must be placed inside the loop, otherwise cause bug in release mode + if (SpeedNum > MaxSpeed) { + SpeedCal = MaxSpeed; + } + else { + SpeedCal = SpeedNum; + } + + + if ((SpeedNum == 1) || (SpeedNum > MaxSpeed) || (SpeedRatio == 1.0)) { + AirMassFlowRatio = LoadSideMassFlowRate / VarSpeedCoil(DXCoilNum).DesignAirMassFlowRate; + WaterMassFlowRatio = SourceSideMassFlowRate / VarSpeedCoil(DXCoilNum).DesignWaterMassFlowRate; + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower = VarSpeedCoil(DXCoilNum).MSWHPumpPower(SpeedCal); + + COPTempModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRFTemp(SpeedCal), InletAirTemp, SourceSideInletTemp); + COPAirFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRAirFFlow(SpeedCal), AirMassFlowRatio); + COPWaterFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRWaterFFlow(SpeedCal), WaterMassFlowRatio); + + COP = VarSpeedCoil(DXCoilNum).MSRatedCOP(SpeedCal) * COPTempModFac * COPAirFFModFac * + COPWaterFFModFac; + + TOTCAPTempModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapFTemp(SpeedCal), + InletAirTemp, SourceSideInletTemp); + // Get capacity modifying factor (function of mass flow) for off-rated conditions + TOTCAPAirFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(SpeedCal), + AirMassFlowRatio); + //Get capacity modifying factor (function of mass flow) for off-rated conditions + TOTCAPWaterFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(SpeedCal), + WaterMassFlowRatio); + + OperatingHeatingCapacity = VarSpeedCoil(DXCoilNum).MSRatedTotCap(SpeedCal) * TOTCAPTempModFac * + TOTCAPAirFFModFac * TOTCAPWaterFFModFac; + + Winput = OperatingHeatingCapacity / COP ; + OperatingHeatingPower = Winput; + + OperatingHeatingCOP = COP ; + PumpHeatToWater = VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower * + VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater; + TankHeatingCOP = OperatingHeatingCOP; + + // account for pump heat if not included in total water heating capacity + if (VarSpeedCoil(DXCoilNum).CondPumpHeatInCapacity) { + TotalTankHeatingCapacity = OperatingHeatingCapacity; + } + else { + TotalTankHeatingCapacity = OperatingHeatingCapacity + PumpHeatToWater; + } + + HPRTF = RuntimeFrac; + // calculate evaporator total cooling capacity + if (VarSpeedCoil(DXCoilNum).FanPowerIncludedInCOP) { + if (VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) { + // make sure fan power is full load fan power + CompressorPower = OperatingHeatingPower - FanElecPower / HPRTF + - VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower; + if (OperatingHeatingPower > 0.0) TankHeatingCOP = TotalTankHeatingCapacity / OperatingHeatingPower; + } + else { + CompressorPower = OperatingHeatingPower - FanElecPower / HPRTF; + if ((OperatingHeatingPower + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower) > 0.0) + TankHeatingCOP = TotalTankHeatingCapacity / + (OperatingHeatingPower + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower); + } + } + else { + if (VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) { + // make sure fan power is full load fan power + CompressorPower = OperatingHeatingPower - + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower; + if ((OperatingHeatingPower + FanElecPower / HPRTF) > 0.0) + TankHeatingCOP = TotalTankHeatingCapacity / + (OperatingHeatingPower + FanElecPower / HPRTF); + } + else { + CompressorPower = OperatingHeatingPower; + if ((OperatingHeatingPower + FanElecPower / HPRTF + + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower) > 0.0) + TankHeatingCOP = TotalTankHeatingCapacity / + (OperatingHeatingPower + FanElecPower / HPRTF + + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower); + } + } + + if (VarSpeedCoil(DXCoilNum).CondPumpHeatInCapacity) { + EvapCoolingCapacity = TotalTankHeatingCapacity - PumpHeatToWater - CompressorPower; + } + else { + EvapCoolingCapacity = TotalTankHeatingCapacity - CompressorPower; + } + + CBFSpeed = AdjustCBF(VarSpeedCoil(DXCoilNum).MSRatedCBF(SpeedCal), + VarSpeedCoil(DXCoilNum).MSRatedAirMassFlowRate(SpeedCal), LoadSideMassFlowRate); + + } + else { + AirMassFlowRatio = LoadSideMassFlowRate / VarSpeedCoil(DXCoilNum).DesignAirMassFlowRate; + WaterMassFlowRatio = SourceSideMassFlowRate / VarSpeedCoil(DXCoilNum).DesignWaterMassFlowRate; + AoEff = VarSpeedCoil(DXCoilNum).MSEffectiveAo(SpeedCal) * SpeedRatio + + (1.0 - SpeedRatio) * VarSpeedCoil(DXCoilNum).MSEffectiveAo(SpeedCal - 1); + CBFSpeed = std::exp(-AoEff / LoadSideMassFlowRate); + + //calculate low speed + SpeedCal = SpeedNum - 1; + + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower = VarSpeedCoil(DXCoilNum).MSWHPumpPower(SpeedCal); + COPTempModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRFTemp(SpeedCal), InletAirTemp, SourceSideInletTemp); + COPAirFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRAirFFlow(SpeedCal), AirMassFlowRatio); + COPWaterFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRWaterFFlow(SpeedCal), WaterMassFlowRatio); + + COP = VarSpeedCoil(DXCoilNum).MSRatedCOP(SpeedCal) * COPTempModFac * COPAirFFModFac * COPWaterFFModFac; + + TOTCAPTempModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapFTemp(SpeedCal), + InletAirTemp, SourceSideInletTemp); + // Get capacity modifying factor (function of mass flow) for off-rated conditions + TOTCAPAirFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(SpeedCal), + AirMassFlowRatio); + //Get capacity modifying factor (function of mass flow) for off-rated conditions + TOTCAPWaterFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(SpeedCal), + WaterMassFlowRatio); + + OperatingHeatingCapacity = VarSpeedCoil(DXCoilNum).MSRatedTotCap(SpeedCal) * TOTCAPTempModFac * + TOTCAPAirFFModFac * TOTCAPWaterFFModFac; + + Winput = OperatingHeatingCapacity / COP; + OperatingHeatingPower = Winput; + Winput1 = Winput; + WHCAP1 = OperatingHeatingCapacity; + + //calculate upper speed + SpeedCal = SpeedNum; + + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower = VarSpeedCoil(DXCoilNum).MSWHPumpPower(SpeedCal); + COPTempModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRFTemp(SpeedCal), InletAirTemp, SourceSideInletTemp); + COPAirFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRAirFFlow(SpeedCal), AirMassFlowRatio); + COPWaterFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSEIRWaterFFlow(SpeedCal), WaterMassFlowRatio); + + COP = (1.0 / VarSpeedCoil(DXCoilNum).MSRatedCOP(SpeedCal)) * COPTempModFac * + COPAirFFModFac * COPWaterFFModFac; + + TOTCAPTempModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapFTemp(SpeedCal), + InletAirTemp, SourceSideInletTemp); + // Get capacity modifying factor (function of mass flow) for off-rated conditions + TOTCAPAirFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapAirFFlow(SpeedCal), + AirMassFlowRatio); + //Get capacity modifying factor (function of mass flow) for off-rated conditions + TOTCAPWaterFFModFac = CurveValue(VarSpeedCoil(DXCoilNum).MSCCapWaterFFlow(SpeedCal), + WaterMassFlowRatio); + + OperatingHeatingCapacity = VarSpeedCoil(DXCoilNum).MSRatedTotCap(SpeedCal) * TOTCAPTempModFac * + TOTCAPAirFFModFac * TOTCAPWaterFFModFac; + + Winput = OperatingHeatingCapacity / COP ; + OperatingHeatingPower = Winput; + + Winput2 = Winput; + WHCAP2 = OperatingHeatingCapacity; + + //interpolation + Winput = Winput2 * SpeedRatio + (1.0 - SpeedRatio) * Winput1; + OperatingHeatingPower = Winput; + OperatingHeatingCapacity = WHCAP2 * SpeedRatio + (1.0 - SpeedRatio) * WHCAP1; + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower = VarSpeedCoil(DXCoilNum).MSWHPumpPower(SpeedNum)* SpeedRatio + + (1.0 - SpeedRatio) * VarSpeedCoil(DXCoilNum).MSWHPumpPower(SpeedNum - 1); + + OperatingHeatingCOP = OperatingHeatingCapacity / OperatingHeatingPower; + TankHeatingCOP = OperatingHeatingCOP; + + PumpHeatToWater = VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower * + VarSpeedCoil(DXCoilNum).HPWHCondPumpFracToWater; + + // account for pump heat if not included in total water heating capacity + if (VarSpeedCoil(DXCoilNum).CondPumpHeatInCapacity) { + TotalTankHeatingCapacity = OperatingHeatingCapacity; + } + else { + TotalTankHeatingCapacity = OperatingHeatingCapacity + PumpHeatToWater; + } + + HPRTF = RuntimeFrac; + // calculate evaporator total cooling capacity + if (VarSpeedCoil(DXCoilNum).FanPowerIncludedInCOP) { + if (VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) { + // make sure fan power is full load fan power + CompressorPower = OperatingHeatingPower - FanElecPower / HPRTF + - VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower; + if (OperatingHeatingPower > 0.0) TankHeatingCOP = TotalTankHeatingCapacity / OperatingHeatingPower; + } + else { + CompressorPower = OperatingHeatingPower - FanElecPower / HPRTF; + if ((OperatingHeatingPower + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower) > 0.0) + TankHeatingCOP = TotalTankHeatingCapacity / + (OperatingHeatingPower + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower); + } + } + else { + if (VarSpeedCoil(DXCoilNum).CondPumpPowerInCOP) { + // make sure fan power is full load fan power + CompressorPower = OperatingHeatingPower - + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower; + if ((OperatingHeatingPower + FanElecPower / HPRTF) > 0.0) + TankHeatingCOP = TotalTankHeatingCapacity / + (OperatingHeatingPower + FanElecPower / HPRTF); + } + else { + CompressorPower = OperatingHeatingPower; + if ((OperatingHeatingPower + FanElecPower / HPRTF + + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower) > 0.0) + TankHeatingCOP = TotalTankHeatingCapacity / + (OperatingHeatingPower + FanElecPower / HPRTF + + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower); + } + } + + if (VarSpeedCoil(DXCoilNum).CondPumpHeatInCapacity) { + EvapCoolingCapacity = TotalTankHeatingCapacity - PumpHeatToWater - CompressorPower; + } + else { + EvapCoolingCapacity = TotalTankHeatingCapacity - CompressorPower; + } + } + + QSource = TotalTankHeatingCapacity; + QLoadTotal = EvapCoolingCapacity; + DXCoilTotalCapacity = EvapCoolingCapacity;//for standard rating calculation + SHR = 1.0; + //if indoor, calculate SHR + if (EvapInletNode != 0) { + if (CBFSpeed > 0.999) CBFSpeed = 0.999; + + hDelta = QLoadTotal / LoadSideMassFlowRate; + hADP = LoadSideInletEnth - hDelta / (1.0 - CBFSpeed); + tADP = PsyTsatFnHPb(hADP, LoadPressure, RoutineName); + wADP = PsyWFnTdbH(tADP, hADP, RoutineName); + hTinwADP = PsyHFnTdbW(LoadSideInletDBTemp, wADP); + if ((LoadSideInletEnth - hADP) > 1.e-10) { + SHR = min((hTinwADP - hADP) / (LoadSideInletEnth - hADP), 1.0); + } + else { + SHR = 1.0; + } + } + + QSensible = QLoadTotal * SHR; + + // determine condenser water inlet/outlet condition at full capacity + if (CondInletMassFlowRate == 0.0) { + OutletWaterTemp = InletWaterTemp; + } + else { + OutletWaterTemp = InletWaterTemp + TotalTankHeatingCapacity / (CpWater * CondInletMassFlowRate); + } + + Node(CondOutletNode).Temp = OutletWaterTemp; + + Node(CondOutletNode).MassFlowRate = Node(CondInletNode).MassFlowRate; + + // send heating capacity and COP to water heater module for standards rating calculation + // total heating capacity including condenser pump + VSHPWHHeatingCapacity = TotalTankHeatingCapacity; + // total heating COP including compressor, fan, and condenser pump + VSHPWHHeatingCOP = TankHeatingCOP; + + VarSpeedCoil(DXCoilNum).TotalHeatingEnergyRate = TotalTankHeatingCapacity * PartLoadRatio; + // calculate total compressor plus condenser pump power, fan power reported in fan module + VarSpeedCoil(DXCoilNum).ElecWaterHeatingPower = (CompressorPower + + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower) * HPRTF; + + //pass the outputs for the cooling coil section + VarSpeedCoil(DXCoilNum).BasinHeaterPower = 0.0; + VarSpeedCoil(DXCoilNum).CrankcaseHeaterPower = CrankcaseHeatingPower*(1.0 - RuntimeFrac); + + //calculate coil outlet state variables + LoadSideOutletEnth = LoadSideInletEnth - QLoadTotal / LoadSideMassFlowRate; + CpAir = PsyCpAirFnWTdb(LoadSideInletHumRat, LoadSideInletDBTemp); + LoadSideOutletDBTemp = LoadSideInletDBTemp - QSensible / (LoadSideMassFlowRate * CpAir); + + MaxHumRat = PsyWFnTdbRhPb(LoadSideOutletDBTemp, 0.9999, VarSpeedCoil(DXCoilNum).InletAirPressure, RoutineName); + MaxOutletEnth = PsyHFnTdbW(LoadSideOutletDBTemp, MaxHumRat); + if (LoadSideOutletEnth > MaxOutletEnth) { + LoadSideOutletEnth = MaxOutletEnth; + } + LoadSideOutletHumRat = PsyWFnTdbH(LoadSideOutletDBTemp, LoadSideOutletEnth, RoutineName); + if (LoadSideOutletHumRat > MaxHumRat) { + LoadSideOutletHumRat = MaxHumRat; + } + + //Actual outlet conditions are "average" for time step + if (CyclingScheme == ContFanCycCoil) { + // continuous fan, cycling compressor + VarSpeedCoil(DXCoilNum).OutletAirEnthalpy = PartLoadRatio * LoadSideOutletEnth + (1.0 - PartLoadRatio) * LoadSideInletEnth; + VarSpeedCoil(DXCoilNum).OutletAirHumRat = PartLoadRatio * LoadSideOutletHumRat + (1.0 - PartLoadRatio) * LoadSideInletHumRat; + VarSpeedCoil(DXCoilNum).OutletAirDBTemp = PsyTdbFnHW(VarSpeedCoil(DXCoilNum).OutletAirEnthalpy, VarSpeedCoil(DXCoilNum).OutletAirHumRat); + PLRCorrLoadSideMdot = LoadSideMassFlowRate; + } + else { + VarSpeedCoil(DXCoilNum).OutletAirEnthalpy = LoadSideOutletEnth; + VarSpeedCoil(DXCoilNum).OutletAirHumRat = LoadSideOutletHumRat; + VarSpeedCoil(DXCoilNum).OutletAirDBTemp = LoadSideOutletDBTemp; + PLRCorrLoadSideMdot = LoadSideMassFlowRate * PartLoadRatio; + } + + // scale heat transfer rates to PLR and power to RTF + QLoadTotal *= PartLoadRatio; + QSensible *= PartLoadRatio; + // count the powr separately + Winput *= RuntimeFrac; //+ VarSpeedCoil(DXCoilNum)%CrankcaseHeaterPower & + //+ VarSpeedCoil(DXCoilNum)%BasinHeaterPower + VarSpeedCoil(DXCoilNum)%EvapCondPumpElecPower + QSource *= PartLoadRatio; + + // Add power to global variable so power can be summed by parent object + DXElecCoolingPower = Winput; + + ReportingConstant = TimeStepSys * SecInHour; + //Update heat pump data structure + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower = + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower*RuntimeFrac;// water heating pump power + VarSpeedCoil(DXCoilNum).Power = Winput; + VarSpeedCoil(DXCoilNum).QLoadTotal = QLoadTotal; + VarSpeedCoil(DXCoilNum).QSensible = QSensible; + VarSpeedCoil(DXCoilNum).QLatent = QLoadTotal - QSensible; + VarSpeedCoil(DXCoilNum).QSource = QSource; + VarSpeedCoil(DXCoilNum).Energy = Winput * ReportingConstant; + VarSpeedCoil(DXCoilNum).EnergyLoadTotal = QLoadTotal * ReportingConstant; + VarSpeedCoil(DXCoilNum).EnergySensible = QSensible * ReportingConstant; + VarSpeedCoil(DXCoilNum).EnergyLatent = (QLoadTotal - QSensible) * ReportingConstant; + VarSpeedCoil(DXCoilNum).EnergySource = QSource * ReportingConstant; + VarSpeedCoil(DXCoilNum).CrankcaseHeaterConsumption = VarSpeedCoil(DXCoilNum).CrankcaseHeaterPower * ReportingConstant; + VarSpeedCoil(DXCoilNum).EvapWaterConsump = 0.0; + VarSpeedCoil(DXCoilNum).BasinHeaterConsumption = 0.0; + //re-use EvapCondPumpElecConsumption to store WH pump energy consumption + VarSpeedCoil(DXCoilNum).EvapCondPumpElecConsumption = + VarSpeedCoil(DXCoilNum).HPWHCondPumpElecNomPower * ReportingConstant; + if (RuntimeFrac == 0.0) { + VarSpeedCoil(DXCoilNum).COP = 0.0; + } + else { + VarSpeedCoil(DXCoilNum).COP = QLoadTotal / Winput; + } + VarSpeedCoil(DXCoilNum).RunFrac = RuntimeFrac; + VarSpeedCoil(DXCoilNum).PartLoadRatio = PartLoadRatio; + VarSpeedCoil(DXCoilNum).AirMassFlowRate = PLRCorrLoadSideMdot; + + VarSpeedCoil(DXCoilNum).WaterMassFlowRate = SourceSideMassFlowRate; + VarSpeedCoil(DXCoilNum).OutletWaterTemp = SourceSideInletTemp + QSource / (SourceSideMassFlowRate * CpWater); + VarSpeedCoil(DXCoilNum).OutletWaterEnthalpy = SourceSideInletEnth + QSource / SourceSideMassFlowRate; + VarSpeedCoil(DXCoilNum).QWasteHeat = 0.0; + } + void CalcVarSpeedCoilHeating( int const DXCoilNum, // Heat Pump Number @@ -4028,7 +5303,7 @@ namespace VariableSpeedCoils { } else { // Defrost strategy is resistive VarSpeedCoil( DXCoilNum ).DefrostPower = VarSpeedCoil( DXCoilNum ).DefrostCapacity * FractionalDefrostTime; } - } else { // Defrost is not active because (OutDryBulbTemp .GT. DXCoil(DXCoilNum)%MaxOATDefrost) + } else { // Defrost is not active because (OutDryBulbTemp .GT. VarSpeedCoil(DXCoilNum)%MaxOATDefrost) VarSpeedCoil( DXCoilNum ).DefrostPower = 0.0; } } @@ -4176,12 +5451,20 @@ namespace VariableSpeedCoils { GetCoilsInputFlag = false; } - if ( SameString( CoilType, "COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" ) || SameString( CoilType, "COIL:HEATING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" ) || SameString( CoilType, "COIL:COOLING:DX:VARIABLESPEED" ) || SameString( CoilType, "COIL:HEATING:DX:VARIABLESPEED" ) ) { + if ( SameString( CoilType, "COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" ) || + SameString( CoilType, "COIL:HEATING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" ) || + SameString( CoilType, "COIL:COOLING:DX:VARIABLESPEED" ) || + SameString( CoilType, "COIL:HEATING:DX:VARIABLESPEED" ) || + SameString( CoilType, "COIL:WATERHEATING:AIRTOWATERHEATPUMP:VARIABLESPEED")) { WhichCoil = FindItemInList( CoilName, VarSpeedCoil.Name(), NumWatertoAirHPs ); if ( WhichCoil != 0 ) { if ( CoilType == "COIL:HEATING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" || CoilType == "COIL:HEATING:DX:VARIABLESPEED" ) { CoilCapacity = VarSpeedCoil( WhichCoil ).RatedCapHeat; - } else { + } + else if (CoilType == "COIL:WATERHEATING:AIRTOWATERHEATPUMP:VARIABLESPEED" ) { + CoilCapacity = VarSpeedCoil(WhichCoil).RatedCapWH; + } + else { CoilCapacity = VarSpeedCoil( WhichCoil ).RatedCapCoolTotal; } } @@ -4312,7 +5595,7 @@ namespace VariableSpeedCoils { // FUNCTION LOCAL VARIABLE DECLARATIONS: int WhichCoil; - + // Obtains and Allocates WatertoAirHP related parameters from input file if ( GetCoilsInputFlag ) { //First time subroutine has been entered GetVarSpeedCoilInput(); @@ -4320,7 +5603,11 @@ namespace VariableSpeedCoils { GetCoilsInputFlag = false; } - if ( SameString( CoilType, "COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" ) || SameString( CoilType, "COIL:HEATING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" ) || SameString( CoilType, "COIL:COOLING:DX:VARIABLESPEED" ) || SameString( CoilType, "COIL:HEATING:DX:VARIABLESPEED" ) ) { + if ( SameString( CoilType, "COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" ) || + SameString( CoilType, "COIL:HEATING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT" ) || + SameString( CoilType, "COIL:COOLING:DX:VARIABLESPEED" ) || + SameString( CoilType, "COIL:HEATING:DX:VARIABLESPEED" ) || + SameString( CoilType, "COIL:WATERHEATING:AIRTOWATERHEATPUMP:VARIABLESPEED")) { WhichCoil = FindItemInList( CoilName, VarSpeedCoil.Name(), NumWatertoAirHPs ); if ( WhichCoil != 0 ) { //CoilAirFlowRate=VarSpeedCoil(WhichCoil)%RatedAirVolFlowRate @@ -4344,6 +5631,74 @@ namespace VariableSpeedCoils { } + + int + GetVSCoilPLFFPLR( + std::string const & CoilType, // must match coil types in this module + std::string const & CoilName, // must match coil names for the coil type + bool & ErrorsFound // set to true if problem + ) + { + + // FUNCTION INFORMATION: + // AUTHOR Bo Shen + // DATE WRITTEN 12/2014 + // MODIFIED na + // RE-ENGINEERED na + + // PURPOSE OF THIS FUNCTION: + // This function looks up the given coil and returns PLR curve index. If + // incorrect coil type or name is given, ErrorsFound is returned as true and value is returned + // as zero. + + // METHODOLOGY EMPLOYED: + // na + + // REFERENCES: + // na + + // Using/Aliasing + using InputProcessor::FindItemInList; + + // Return value + int PLRNumber; // returned outlet node of matched coil + + // Locals + // FUNCTION ARGUMENT DEFINITIONS: + // FUNCTION PARAMETER DEFINITIONS: + // na + + // INTERFACE BLOCK SPECIFICATIONS: + // na + + // DERIVED TYPE DEFINITIONS: + // na + + // FUNCTION LOCAL VARIABLE DECLARATIONS: + int WhichCoil; + + // Obtains and Allocates WatertoAirHP related parameters from input file + if (GetCoilsInputFlag) { //First time subroutine has been entered + GetVarSpeedCoilInput(); + // WaterIndex=FindGlycol('WATER') !Initialize the WaterIndex once + GetCoilsInputFlag = false; + } + + WhichCoil = FindItemInList(CoilName, VarSpeedCoil.Name(), NumWatertoAirHPs); + if (WhichCoil != 0) { + PLRNumber = VarSpeedCoil(WhichCoil).PLFFPLR; + } + + if (WhichCoil == 0) { + ShowSevereError("GetVSCoilPLFFPLR: Could not find CoilType=\"" + CoilType + "\" with Name=\"" + CoilName + "\""); + ErrorsFound = true; + PLRNumber = 0; + } + + return PLRNumber; + + } + int GetCoilInletNodeVariableSpeed( std::string const & CoilType, // must match coil types in this module diff --git a/src/EnergyPlus/VariableSpeedCoils.hh b/src/EnergyPlus/VariableSpeedCoils.hh index 26452fe3c0a..574331241d5 100644 --- a/src/EnergyPlus/VariableSpeedCoils.hh +++ b/src/EnergyPlus/VariableSpeedCoils.hh @@ -91,6 +91,10 @@ namespace VariableSpeedCoils { extern Real64 Winput; // Power Consumption [W] extern Real64 PLRCorrLoadSideMdot; // Load Side Mdot corrected for Part Load Ratio of the unit + extern Real64 VSHPWHHeatingCapacity; // Used by Heat Pump:Water Heater object as total water heating capacity [W] + extern Real64 VSHPWHHeatingCOP; // Used by Heat Pump:Water Heater object as water heating COP [W/W] + + // SUBROUTINE SPECIFICATIONS FOR MODULE // Driver/Manager Routines @@ -219,6 +223,9 @@ namespace VariableSpeedCoils { FArray1D_int MSWasteHeat; // index of waste heat as a function of temperature FArray1D< Real64 > MSWasteHeatFrac; + // water heating coil pump power at various speeds + FArray1D< Real64 > MSWHPumpPower; + FArray1D< Real64 > MSWHPumpPowerPerRatedTotCap; // Waste heat fraction Real64 SpeedNumReport; //speed number for output @@ -287,6 +294,26 @@ namespace VariableSpeedCoils { Real64 InletSourceAirEnthalpy; // source air enthalpy entering the outdoor coil [J/kg] //end variables for water system interactions + //begin varibles for HPWH + Real64 RatedCapWH; // Rated water heating Capacity [W] + int InletAirTemperatureType; // Specifies to use either air wet-bulb or dry-bulb temp for curve objects + Real64 WHRatedInletDBTemp; // Rated inlet air dry-bulb temperature [C] + Real64 WHRatedInletWBTemp; // Rated inlet air wet-bulb temperature [C] + Real64 WHRatedInletWaterTemp; // Rated condenser water inlet temperature [C] + Real64 HPWHCondPumpElecNomPower; // Nominal power input to the condenser water circulation pump [W] + Real64 HPWHCondPumpFracToWater; // Nominal power fraction to water for the condenser water circulation pump + Real64 RatedHPWHCondWaterFlow; // Rated water flow rate through the condenser of the HPWH DX coil [m3/s] + Real64 ElecWaterHeatingPower; // Total electric power consumed by compressor and condenser pump [W] + Real64 ElecWaterHeatingConsumption; // Total electric consumption by compressor and condenser pump [J] + bool FanPowerIncludedInCOP; // Indicates that fan heat is included in heating capacity and COP + bool CondPumpHeatInCapacity; // Indicates that condenser pump heat is included in heating capacity + bool CondPumpPowerInCOP; // Indicates that condenser pump power is included in heating COP + bool AirVolFlowAutoSized; // Used to report autosizing info for the HPWH DX coil + bool WaterVolFlowAutoSized; // Used to report autosizing info for the HPWH DX coil + Real64 TotalHeatingEnergy; //total water heating energy + Real64 TotalHeatingEnergyRate;//total WH energy rate + //end variables for HPWH + // Default Constructor VariableSpeedCoilData() : NumOfSpeeds( 2 ), @@ -375,6 +402,8 @@ namespace VariableSpeedCoils { MSEIRWaterFFlow( MaxSpedLevels, 0 ), MSWasteHeat( MaxSpedLevels, 0 ), MSWasteHeatFrac( MaxSpedLevels, 0.0 ), + MSWHPumpPower( MaxSpedLevels, 0.0 ), + MSWHPumpPowerPerRatedTotCap(MaxSpedLevels, 0.0), SpeedNumReport( 0.0 ), SpeedRatioReport( 0.0 ), DefrostStrategy( 0 ), @@ -423,7 +452,26 @@ namespace VariableSpeedCoils { CondInletTemp( 0.0 ), SourceAirMassFlowRate( 0.0 ), InletSourceAirTemp( 0.0 ), - InletSourceAirEnthalpy( 0.0 ) + InletSourceAirEnthalpy( 0.0 ), + //begin varibles for HPWH + RatedCapWH( 0.0 ), // Rated water heating Capacity [W] + InletAirTemperatureType( 0 ), // Specifies to use either air wet-bulb or dry-bulb temp for curve objects + WHRatedInletDBTemp( 0.0 ), // Rated inlet air dry-bulb temperature [C] + WHRatedInletWBTemp( 0.0 ), // Rated inlet air wet-bulb temperature [C] + WHRatedInletWaterTemp( 0.0 ), // Rated condenser water inlet temperature [C] + HPWHCondPumpElecNomPower( 0.0 ), // Nominal power input to the condenser water circulation pump [W] + HPWHCondPumpFracToWater( 1.0 ), // Nominal power fraction to water for the condenser water circulation pump + RatedHPWHCondWaterFlow( 0.0 ), // Rated water flow rate through the condenser of the HPWH DX coil [m3/s] + ElecWaterHeatingPower( 0.0 ), // Total electric power consumed by compressor and condenser pump [W] + ElecWaterHeatingConsumption( 0.0 ), // Total electric consumption by compressor and condenser pump [J] + FanPowerIncludedInCOP( false ), // Indicates that fan heat is included in heating capacity and COP + CondPumpHeatInCapacity( false ), // Indicates that condenser pump heat is included in heating capacity + CondPumpPowerInCOP( false ), // Indicates that condenser pump power is included in heating COP + AirVolFlowAutoSized( false ), // Used to report autosizing info for the HPWH DX coil + WaterVolFlowAutoSized( false ), // Used to report autosizing info for the HPWH DX coil + TotalHeatingEnergy( 0.0 ), //total water heating energy + TotalHeatingEnergyRate( 0.0 ) //total WH energy rate + //end variables for HPWH {} // Member Constructor @@ -517,6 +565,8 @@ namespace VariableSpeedCoils { FArray1_int const & MSEIRWaterFFlow, FArray1_int const & MSWasteHeat, FArray1< Real64 > const & MSWasteHeatFrac, + FArray1< Real64 > const & MSWHPumpPower, + FArray1< Real64 > const & MSWHPumpPowerPerRatedTotCap, Real64 const SpeedNumReport, Real64 const SpeedRatioReport, int const DefrostStrategy, // defrost strategy; 1=reverse-cycle, 2=resistive @@ -567,7 +617,26 @@ namespace VariableSpeedCoils { Real64 const CondInletTemp, // Evap condenser inlet temperature [C], report variable Real64 const SourceAirMassFlowRate, // source air mass flow rate [kg/s] Real64 const InletSourceAirTemp, // source air temperature entering the outdoor coil [C] - Real64 const InletSourceAirEnthalpy // source air enthalpy entering the outdoor coil [J/kg] + Real64 const InletSourceAirEnthalpy, // source air enthalpy entering the outdoor coil [J/kg] + //begin varibles for HPWH + Real64 const RatedCapWH, // Rated water heating Capacity [W] + int const InletAirTemperatureType, // Specifies to use either air wet-bulb or dry-bulb temp for curve objects + Real64 const WHRatedInletDBTemp, // Rated inlet air dry-bulb temperature [C] + Real64 const WHRatedInletWBTemp, // Rated inlet air wet-bulb temperature [C] + Real64 const WHRatedInletWaterTemp, // Rated condenser water inlet temperature [C] + Real64 const HPWHCondPumpElecNomPower, // Nominal power input to the condenser water circulation pump [W] + Real64 const HPWHCondPumpFracToWater, // Nominal power fraction to water for the condenser water circulation pump + Real64 const RatedHPWHCondWaterFlow, // Rated water flow rate through the condenser of the HPWH DX coil [m3/s] + Real64 const ElecWaterHeatingPower, // Total electric power consumed by compressor and condenser pump [W] + Real64 const ElecWaterHeatingConsumption, // Total electric consumption by compressor and condenser pump [J] + bool const FanPowerIncludedInCOP, // Indicates that fan heat is included in heating capacity and COP + bool const CondPumpHeatInCapacity, // Indicates that condenser pump heat is included in heating capacity + bool const CondPumpPowerInCOP, // Indicates that condenser pump power is included in heating COP + bool const AirVolFlowAutoSized, // Used to report autosizing info for the HPWH DX coil + bool const WaterVolFlowAutoSized, // Used to report autosizing info for the HPWH DX coil + Real64 const TotalHeatingEnergy, //total water heating energy + Real64 const TotalHeatingEnergyRate//total WH energy rate + //end variables for HPWH ) : Name( Name ), VarSpeedCoilType( VarSpeedCoilType ), @@ -658,6 +727,8 @@ namespace VariableSpeedCoils { MSEIRWaterFFlow( MaxSpedLevels, MSEIRWaterFFlow ), MSWasteHeat( MaxSpedLevels, MSWasteHeat ), MSWasteHeatFrac( MaxSpedLevels, MSWasteHeatFrac ), + MSWHPumpPower(MaxSpedLevels, MSWHPumpPower), + MSWHPumpPowerPerRatedTotCap(MaxSpedLevels, MSWHPumpPowerPerRatedTotCap), SpeedNumReport( SpeedNumReport ), SpeedRatioReport( SpeedRatioReport ), DefrostStrategy( DefrostStrategy ), @@ -708,7 +779,26 @@ namespace VariableSpeedCoils { CondInletTemp( CondInletTemp ), SourceAirMassFlowRate( SourceAirMassFlowRate ), InletSourceAirTemp( InletSourceAirTemp ), - InletSourceAirEnthalpy( InletSourceAirEnthalpy ) + InletSourceAirEnthalpy( InletSourceAirEnthalpy ), + //begin varibles for HPWH + RatedCapWH( RatedCapWH ), // Rated water heating Capacity [W] + InletAirTemperatureType( InletAirTemperatureType ), // Specifies to use either air wet-bulb or dry-bulb temp for curve objects + WHRatedInletDBTemp( WHRatedInletDBTemp ), // Rated inlet air dry-bulb temperature [C] + WHRatedInletWBTemp( WHRatedInletWBTemp ), // Rated inlet air wet-bulb temperature [C] + WHRatedInletWaterTemp( WHRatedInletWaterTemp ), // Rated condenser water inlet temperature [C] + HPWHCondPumpElecNomPower( HPWHCondPumpElecNomPower ), // Nominal power input to the condenser water circulation pump [W] + HPWHCondPumpFracToWater( HPWHCondPumpFracToWater ), // Nominal power fraction to water for the condenser water circulation pump + RatedHPWHCondWaterFlow( RatedHPWHCondWaterFlow ), // Rated water flow rate through the condenser of the HPWH DX coil [m3/s] + ElecWaterHeatingPower( ElecWaterHeatingPower ), // Total electric power consumed by compressor and condenser pump [W] + ElecWaterHeatingConsumption( ElecWaterHeatingConsumption ), // Total electric consumption by compressor and condenser pump [J] + FanPowerIncludedInCOP( FanPowerIncludedInCOP ), // Indicates that fan heat is included in heating capacity and COP + CondPumpHeatInCapacity( CondPumpHeatInCapacity ), // Indicates that condenser pump heat is included in heating capacity + CondPumpPowerInCOP( CondPumpPowerInCOP ), // Indicates that condenser pump power is included in heating COP + AirVolFlowAutoSized( AirVolFlowAutoSized ), // Used to report autosizing info for the HPWH DX coil + WaterVolFlowAutoSized( WaterVolFlowAutoSized ), // Used to report autosizing info for the HPWH DX coil + TotalHeatingEnergy( TotalHeatingEnergy ), //total water heating energy + TotalHeatingEnergyRate( TotalHeatingEnergyRate ) //total WH energy rate + //end variables for HPWH {} }; @@ -826,6 +916,13 @@ namespace VariableSpeedCoils { bool & ErrorsFound // set to true if problem ); + int + GetVSCoilPLFFPLR( + std::string const & CoilType, // must match coil types in this module + std::string const & CoilName, // must match coil names for the coil type + bool & ErrorsFound // set to true if problem + ); + Real64 GetVSCoilMinOATCompressor( std::string const & CoilName, // must match coil names for the coil type @@ -907,6 +1004,16 @@ namespace VariableSpeedCoils { Real64 const SHR // sensible heat ratio at the given capacity and flow rate ); + void + CalcVarSpeedHPWH( + int const DXCoilNum, // the number of the DX coil to be simulated + Real64 & RuntimeFrac, // Runtime Fraction of compressor or percent on time (on-time/cycle time) + Real64 const PartLoadRatio, // sensible water heating load / full load sensible water heating capacity + Real64 const SpeedRatio, // SpeedRatio varies between 1.0 (higher speed) and 0.0 (lower speed) + int const SpeedNum, // Speed number, high bound capacity + int const CyclingScheme // Continuous fan OR cycling compressor + ); + // NOTICE // Copyright © 1996-2014 The Board of Trustees of the University of Illinois diff --git a/src/EnergyPlus/WaterThermalTanks.cc b/src/EnergyPlus/WaterThermalTanks.cc index f388cfeaee3..3d51047bc6c 100644 --- a/src/EnergyPlus/WaterThermalTanks.cc +++ b/src/EnergyPlus/WaterThermalTanks.cc @@ -759,6 +759,7 @@ namespace WaterThermalTanks { // B. Griffith, Oct. 2007 extensions for indirect water heaters // B. Griffith, Feb. 2008 extensions for autosizing water heaters // BG Mar 2009. Trap for bad heater height input for stratefied water heater CR7718 + // B. Shen 12/2014, add air-source variable-speed heat pump water heating // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: @@ -808,6 +809,10 @@ namespace WaterThermalTanks { using DXCoils::DXCoil; using DXCoils::GetDXCoilIndex; using DXCoils::NumDXCoils; + using VariableSpeedCoils::GetCoilIndexVariableSpeed; + using VariableSpeedCoils::GetCoilCapacityVariableSpeed; + using VariableSpeedCoils::GetCoilInletNodeVariableSpeed; + using VariableSpeedCoils::GetVSCoilPLFFPLR; using General::TrimSigDigits; using General::RoundSigDigits; using ReportSizingManager::ReportSizingOutput; @@ -884,6 +889,7 @@ namespace WaterThermalTanks { static bool errFlag( false ); // Used for error checking used with HPWHs static Real64 HEffFTemp( 0.0 ); // Used for error checking desuperheater heating coils bool Okay; + bool bIsVScoil(false); //indicate if the heat pump WH coil is a variable-speed coil // Following allow for temporary storage of character strings but not saved in main structure Real64 rho; // local fluid density @@ -1402,14 +1408,28 @@ namespace WaterThermalTanks { HPWaterHeater( HPWaterHeaterNum ).DXCoilName = cAlphaArgs( 19 ); // check that the DX Coil exists - if ( ! SameString( HPWaterHeater( HPWaterHeaterNum ).DXCoilType, "Coil:WaterHeating:AirToWaterHeatPump" ) ) { - ShowSevereError( cCurrentModuleObject + "=\"" + HPWaterHeater( HPWaterHeaterNum ).Name + "\":" ); - ShowContinueError( "Heat pump water heater can only be used with Coil:WaterHeating:AirToWaterHeatPump." ); + // allow both single-speed and variable-speed HPWH coils + if (!(SameString(HPWaterHeater(HPWaterHeaterNum).DXCoilType, "Coil:WaterHeating:AirToWaterHeatPump") || + SameString(HPWaterHeater(HPWaterHeaterNum).DXCoilType, "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed"))) { + ShowSevereError(cCurrentModuleObject + "=\"" + HPWaterHeater(HPWaterHeaterNum).Name + "\":"); + ShowContinueError("Heat pump water heater can only be used with Coil:WaterHeating:AirToWaterHeatPump or Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed."); ErrorsFound = true; } + + DXCoilErrFlag = false; - GetDXCoilIndex( HPWaterHeater( HPWaterHeaterNum ).DXCoilName, HPWaterHeater( HPWaterHeaterNum ).DXCoilNum, DXCoilErrFlag, cCurrentModuleObject ); + bIsVScoil = false; + if (SameString(HPWaterHeater(HPWaterHeaterNum).DXCoilType, "Coil:WaterHeating:AirToWaterHeatPump")) + GetDXCoilIndex(HPWaterHeater(HPWaterHeaterNum).DXCoilName, HPWaterHeater(HPWaterHeaterNum).DXCoilNum, DXCoilErrFlag, cCurrentModuleObject); + + //find variable speed HPWH + if (SameString(HPWaterHeater(HPWaterHeaterNum).DXCoilType, "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed")) { + HPWaterHeater(HPWaterHeaterNum).DXCoilNum = GetCoilIndexVariableSpeed(HPWaterHeater(HPWaterHeaterNum).DXCoilType, + HPWaterHeater(HPWaterHeaterNum).DXCoilName, DXCoilErrFlag); + if (!DXCoilErrFlag) bIsVScoil = true; //it is a variable-speed coil + } + if ( DXCoilErrFlag ) { ShowContinueError( "...occurs in WaterHeater:HeatPump =" + HPWaterHeater( HPWaterHeaterNum ).Name ); ShowContinueError( "...entered DX CoilType=" + HPWaterHeater( HPWaterHeaterNum ).DXCoilType ); @@ -1518,16 +1538,26 @@ namespace WaterThermalTanks { ErrorsFound = true; } - if ( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum > 0 ) { + + if ((HPWaterHeater(HPWaterHeaterNum).DXCoilNum > 0) && (false == bIsVScoil)) { // get HPWH capacity, air inlet node, and PLF curve info from DX coil object - HPWaterHeater( HPWaterHeaterNum ).Capacity = DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).RatedTotCap2; - HPWaterHeater( HPWaterHeaterNum ).DXCoilAirInletNode = DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).AirInNode; - HPWaterHeater( HPWaterHeaterNum ).DXCoilPLFFPLR = DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).PLFFPLR( 1 ); + HPWaterHeater(HPWaterHeaterNum).Capacity = DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).RatedTotCap2; + HPWaterHeater(HPWaterHeaterNum).DXCoilAirInletNode = DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).AirInNode; + HPWaterHeater(HPWaterHeaterNum).DXCoilPLFFPLR = DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).PLFFPLR(1); // check the range of condenser pump power to be <= 5 gpm/ton - if ( DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).HPWHCondPumpElecNomPower / DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).RatedTotCap2 > 0.1422 ) { - ShowWarningError( DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).DXCoilType + "= " + DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).Name + ": Rated condenser pump power per watt of rated heating capacity has exceeded the recommended maximum of 0.1422 W/W (41.67 watt/MBH). Condenser pump power per watt = " + TrimSigDigits( ( DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).HPWHCondPumpElecNomPower / DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).RatedTotCap2 ), 4 ) ); + if (DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).HPWHCondPumpElecNomPower / DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).RatedTotCap2 > 0.1422) { + ShowWarningError(DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).DXCoilType + "= " + DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).Name + ": Rated condenser pump power per watt of rated heating capacity has exceeded the recommended maximum of 0.1422 W/W (41.67 watt/MBH). Condenser pump power per watt = " + TrimSigDigits((DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).HPWHCondPumpElecNomPower / DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).RatedTotCap2), 4)); } } + else if ((HPWaterHeater(HPWaterHeaterNum).DXCoilNum > 0) && (true == bIsVScoil)) { + HPWaterHeater(HPWaterHeaterNum).Capacity = GetCoilCapacityVariableSpeed(HPWaterHeater(HPWaterHeaterNum).DXCoilType, + HPWaterHeater(HPWaterHeaterNum).DXCoilName, DXCoilErrFlag); + HPWaterHeater(HPWaterHeaterNum).DXCoilAirInletNode = GetCoilInletNodeVariableSpeed(HPWaterHeater(HPWaterHeaterNum).DXCoilType, + HPWaterHeater(HPWaterHeaterNum).DXCoilName, DXCoilErrFlag); + HPWaterHeater(HPWaterHeaterNum).DXCoilPLFFPLR = GetVSCoilPLFFPLR(HPWaterHeater(HPWaterHeaterNum).DXCoilType, + HPWaterHeater(HPWaterHeaterNum).DXCoilName, DXCoilErrFlag); + // check the range of condenser pump power to be <= 5 gpm/ton, will be checked in the coil object + } if ( HPWaterHeater( HPWaterHeaterNum ).OperatingWaterFlowRate == AutoCalculate ) { HPWaterHeater( HPWaterHeaterNum ).OperatingWaterFlowRate = 0.00000004487 * HPWaterHeater( HPWaterHeaterNum ).Capacity; @@ -1720,7 +1750,10 @@ namespace WaterThermalTanks { } } else if ( HPWaterHeater( HPWaterHeaterNum ).FanPlacement == BlowThru ) { // set fan outlet node variable for use in setting Node(FanOutletNode)%MassFlowRateMax for fan object - HPWaterHeater( HPWaterHeaterNum ).FanOutletNode = DXCoil( HPWaterHeater( HPWaterHeaterNum ).DXCoilNum ).AirInNode; + if (true == bIsVScoil) HPWaterHeater(HPWaterHeaterNum).FanOutletNode = GetCoilInletNodeVariableSpeed(HPWaterHeater(HPWaterHeaterNum).DXCoilType, + HPWaterHeater(HPWaterHeaterNum).DXCoilName, DXCoilErrFlag); + else HPWaterHeater(HPWaterHeaterNum).FanOutletNode = DXCoil(HPWaterHeater(HPWaterHeaterNum).DXCoilNum).AirInNode; + } // set the max mass flow rate for outdoor fans @@ -4248,6 +4281,7 @@ namespace WaterThermalTanks { // DATE WRITTEN February 2004 // MODIFIED FSEC, July 2005 // Brent Griffith, October 2007 indirect fired water heater + // B. Shen 12/2014, add air-source variable-speed heat pump water heating // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: @@ -4291,6 +4325,9 @@ namespace WaterThermalTanks { using PlantUtilities::SetComponentFlowRate; using PlantUtilities::InterConnectTwoPlantLoopSides; using FluidProperties::GetDensityGlycol; + using VariableSpeedCoils::SimVariableSpeedCoils; + using VariableSpeedCoils::VarSpeedCoil; + using Fans::GetFanVolFlow; // Locals // SUBROUTINE ARGUMENT DEFINITIONS: @@ -4314,6 +4351,11 @@ namespace WaterThermalTanks { Real64 HPInletHumRat( 0.0 ); // HPWH's air inlet humidity ratio, kg/kg Real64 HPInletRelHum; // HPWH's air inlet relative humidity Real64 DeadBandTemp; // Minimum tank temperature (SetPointTemp - DeadBandDeltaTemp) (C) + Real64 MulSpeedFlowScale; // scaling factor for adjusting flow rates of VS HPWH coil + Real64 rhoAir; // air density + int Iter; // iteration number + Real64 EMP1(0.0), EMP2(0.0), EMP3(0.0); //place holder to calling function + Real64 FanVolFlow(0.0); // Used for error checking fans used with HPWHs // LOGICAL,SAVE :: ZoneEquipmentListChecked = .FALSE. ! True after the Zone Equipment List has been checked for items // Integer :: Loop static bool InitWaterThermalTanksOnce( true ); // flag for 1 time initialization @@ -4871,6 +4913,76 @@ namespace WaterThermalTanks { HPWHInletDBTemp = HPInletDryBulbTemp; HPWHInletWBTemp = PsyTwbFnTdbWPb( HPWHInletDBTemp, HPInletHumRat, OutBaroPress ); + //initialize flow rates at speed levels for varaible-speed HPWH + if (SameString(HPWaterHeater(HPNum).DXCoilType, "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed") && + (0 == HPWaterHeater(HPNum).NumofSpeed)) + { + EMP1 = 4.0; + EMP2 = 0.0; + EMP3 = 0.0; + SimVariableSpeedCoils(BlankString, HPWaterHeater(HPNum).DXCoilNum, + 0, EMP1, EMP2, EMP3, 0, 0.0, 1, 0.0, 0.0, 0.0, 0.0); //conduct the sizing operation in the VS WSHP + HPWaterHeater(HPNum).NumofSpeed = VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).NumOfSpeeds; + //below pass the flow rates from the VS coil to the water heater object + + //scale air flow rates + MulSpeedFlowScale = VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).RatedAirVolFlowRate / + VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).MSRatedAirVolFlowRate(VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel); + for (Iter = 1; Iter <= HPWaterHeater(HPNum).NumofSpeed; ++Iter) { + HPWaterHeater(HPNum).HPWHAirVolFlowRate(Iter) = VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).MSRatedAirVolFlowRate(Iter) * MulSpeedFlowScale; + } + + //check fan flow rate, should be larger than the max flow rate of the VS coil + GetFanVolFlow(HPWaterHeater(HPNum).FanNum, FanVolFlow); + if (FanVolFlow < HPWaterHeater(HPNum).HPWHAirVolFlowRate(HPWaterHeater(HPNum).NumofSpeed)) { + ShowWarningError("InitWaterThermalTank: -air flow rate = " + TrimSigDigits(FanVolFlow, 7) + + " in fan object " " is less than the MSHP system air flow rate" " when waterheating is required(" + + TrimSigDigits(HPWaterHeater(HPNum).HPWHAirVolFlowRate(HPWaterHeater(HPNum).NumofSpeed), 7) + ")."); + ShowContinueError(" The MSHP system flow rate when waterheating is required is reset to the" " fan flow rate and the simulation continues."); + ShowContinueError(" Occurs in " + HPWaterHeater(HPNum).Name); + HPWaterHeater(HPNum).HPWHAirVolFlowRate(HPWaterHeater(HPNum).NumofSpeed) = FanVolFlow; + // Check flow rates in other speeds and ensure flow rates are not above the max flow rate + for (Iter = HPWaterHeater(HPNum).NumofSpeed - 1; Iter >= 1; --Iter) { + if (HPWaterHeater(HPNum).HPWHAirVolFlowRate(Iter) > HPWaterHeater(HPNum).HPWHAirVolFlowRate(Iter + 1)) { + ShowContinueError(" The MSHP system flow rate when waterheating is required is reset to the" " flow rate at higher speed and the simulation continues at Speed" + + TrimSigDigits(Iter) + '.'); + ShowContinueError(" Occurs in " + HPWaterHeater(HPNum).Name); + HPWaterHeater(HPNum).HPWHAirVolFlowRate(Iter) = HPWaterHeater(HPNum).HPWHAirVolFlowRate(Iter + 1); + } + } + } + + for (Iter = 1; Iter <= HPWaterHeater(HPNum).NumofSpeed; ++Iter) { + HPWaterHeater(HPNum).MSAirSpeedRatio(Iter) = HPWaterHeater(HPNum).HPWHAirVolFlowRate(Iter) / + HPWaterHeater(HPNum).HPWHAirVolFlowRate(HPWaterHeater(HPNum).NumofSpeed); + } + + //scale water flow rates + MulSpeedFlowScale = VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).RatedWaterVolFlowRate / + VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).MSRatedWaterVolFlowRate + (VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel); + for (Iter = 1; Iter <= HPWaterHeater(HPNum).NumofSpeed; ++Iter) { + HPWaterHeater(HPNum).HPWHWaterVolFlowRate(Iter) = VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).MSRatedWaterVolFlowRate(Iter) * MulSpeedFlowScale; + HPWaterHeater(HPNum).HPWHWaterMassFlowRate(Iter) = VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).MSRatedWaterMassFlowRate(Iter) * MulSpeedFlowScale; + HPWaterHeater(HPNum).MSWaterSpeedRatio(Iter) = VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).MSRatedWaterVolFlowRate(Iter) / + VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).MSRatedWaterVolFlowRate(HPWaterHeater(HPNum).NumofSpeed); + } + } + + if (HPWaterHeater(HPNum).NumofSpeed > 0) + { + rhoAir = PsyRhoAirFnPbTdbW(OutBaroPress, HPInletDryBulbTemp, HPInletHumRat); + + for (Iter = 1; Iter <= HPWaterHeater(HPNum).NumofSpeed; ++Iter) { + HPWaterHeater(HPNum).HPWHAirMassFlowRate(Iter) = + HPWaterHeater(HPNum).HPWHAirVolFlowRate(Iter) * rhoAir; + } + + // set the max mass flow rate for outdoor fans + Node(HPWaterHeater(HPNum).FanOutletNode).MassFlowRateMax = + HPWaterHeater(HPNum).HPWHAirMassFlowRate(HPWaterHeater(HPNum).NumofSpeed); + } + } // IF(WaterThermalTank(WaterThermalTankNum)%HeatPumpNum .GT. 0)THEN } @@ -6778,16 +6890,17 @@ namespace WaterThermalTanks { } void - CalcHeatPumpWaterHeater( + CalcHeatPumpWaterHeater( int const WaterThermalTankNum, // Water Heater tank being simulated bool const FirstHVACIteration // TRUE if First iteration of simulation - ) + ) { // SUBROUTINE INFORMATION: // AUTHOR Richard Raustad // DATE WRITTEN March 2005 // MODIFIED B. Griffith, Jan 2012 for stratified tank + // B. Shen 12/2014, add air-source variable-speed heat pump water heating // RE-ENGINEERED na // PURPOSE OF THIS SUBROUTINE: @@ -6819,20 +6932,21 @@ namespace WaterThermalTanks { using Psychrometrics::PsyRhoAirFnPbTdbW; using Psychrometrics::PsyCpAirFnWTdb; using Psychrometrics::RhoH2O; + using VariableSpeedCoils::SimVariableSpeedCoils; // Locals // SUBROUTINE ARGUMENT DEFINITIONS: // SUBROUTINE PARAMETER DEFINITIONS: - int const MaxIte( 500 ); // maximum number of iterations - Real64 const Acc( 0.001 ); // Accuracy of result from RegulaFalsi + int const MaxIte(500); // maximum number of iterations + Real64 const Acc(0.001); // Accuracy of result from RegulaFalsi // SUBROUTINE LOCAL VARIABLE DECLARATIONS: Real64 AvailSchedule; // HP compressor availability schedule Real64 SetPointTemp; // HP set point temperature (cut-out temperature, C) Real64 DeadBandTempDiff; // HP dead band temperature difference (C) - Real64 TankTemp( 0.0 ); // tank temperature before simulation, C - Real64 NewTankTemp( 0.0 ); // tank temperature after simulation, C + Real64 TankTemp(0.0); // tank temperature before simulation, C + Real64 NewTankTemp(0.0); // tank temperature after simulation, C Real64 CpAir; // specific heat of air, kJ/kg/K Real64 MdotWater; // mass flow rate of condenser water, kg/s Real64 OutletAirSplitterSch; // output of outlet air splitter schedule @@ -6845,24 +6959,35 @@ namespace WaterThermalTanks { int InletAirMixerNode; // HP inlet air mixer node number int OutletAirSplitterNode; // HP outlet air splitter node number int DXCoilAirInletNode; // Inlet air node number of DX coil - int SolFla( 0 ); // Flag of RegulaFalsi solver - FArray1D< Real64 > Par( 5 ); // Parameters passed to RegulaFalsi + int SolFla(0); // Flag of RegulaFalsi solver + FArray1D< Real64 > Par(5); // Parameters passed to RegulaFalsi + FArray1D< Real64 > ParVS(10); // Parameters passed to RegulaFalsi, for variable-speed HPWH Real64 HPMinTemp; // used for error messages, C std::string HPMinTempChar; // used for error messages std::string IterNum; // Max number of iterations for warning message int CompOp; // DX compressor operation; 1=on, 0=off Real64 CondenserDeltaT; // HPWH condenser water temperature difference + //new varaibles for variable-speed HPWH + int MaxSpeedNum(0); // speed number of variable speed HPWH coil + int SpeedNum(1); // selected speed number + Real64 RhoWater; //water density + Real64 SpeedRatio(0.0); //speed ratio for interpolating between two speed levels + bool bIterSpeed(false);// interpolation between speed level or not + Real64 zeroResidual(1.0); //residual when running VSHPWH at 0.0 part-load ratio, 1.0 needed setting >0 + int i;// index for iteration + Real64 EMP1(0.0), EMP2(0.0), EMP3(0.0); //place holder to calling vs HPWH function + Real64 LowSpeedTankTemp(0.0); //tank temperature resulted by a lower compressor speed Real64 HPWHCondInletNodeLast; // Water temp sent from WH on last iteration Real64 HPWaterInletNodeTempSaved; // Water temp saved from previous timestep int loopIter; // iteration loop counter - + // References to objects used in this function - WaterThermalTankData &Tank = WaterThermalTank( WaterThermalTankNum ); - HeatPumpWaterHeaterData &HeatPump = HPWaterHeater( Tank.HeatPumpNum ); + WaterThermalTankData &Tank = WaterThermalTank(WaterThermalTankNum); + HeatPumpWaterHeaterData &HeatPump = HPWaterHeater(Tank.HeatPumpNum); // FLOW: // initialize local variables - AvailSchedule = GetCurrentScheduleValue( HeatPump.AvailSchedPtr ); + AvailSchedule = GetCurrentScheduleValue(HeatPump.AvailSchedPtr); HPAirInletNode = HeatPump.HeatPumpAirInletNode; HPAirOutletNode = HeatPump.HeatPumpAirOutletNode; OutdoorAirNode = HeatPump.OutsideAirNode; @@ -6878,119 +7003,148 @@ namespace WaterThermalTanks { HeatPump.OnCycParaFuelEnergy = 0.0; HeatPump.OffCycParaFuelRate = 0.0; HeatPump.OffCycParaFuelEnergy = 0.0; - Node( HPWaterOutletNode ) = Node( HPWaterInletNode ); + Node(HPWaterOutletNode) = Node(HPWaterInletNode); + MaxSpeedNum = HeatPump.NumofSpeed; // assign set point temperature (cut-out) and dead band temp diff (cut-in = cut-out minus dead band temp diff) SetPointTemp = HeatPump.SetPointTemp; DeadBandTempDiff = HeatPump.DeadBandTempDiff; + RhoWater = RhoH2O(SetPointTemp);//initialize // store first iteration tank temperature and HP mode of operation // this code can be called more than once with FirstHVACIteration = .TRUE., use FirstTimeThroughFlag to control save - if ( FirstHVACIteration && ! ShortenTimeStepSys && HeatPump.FirstTimeThroughFlag ) { + if (FirstHVACIteration && !ShortenTimeStepSys && HeatPump.FirstTimeThroughFlag) { Tank.SavedTankTemp = Tank.TankTemp; HeatPump.SaveMode = HeatPump.Mode; HeatPump.SaveWHMode = Tank.Mode; HeatPump.FirstTimeThroughFlag = false; } - if ( ! FirstHVACIteration ) HeatPump.FirstTimeThroughFlag = true; + if (!FirstHVACIteration) HeatPump.FirstTimeThroughFlag = true; // check if HPWH is off for some reason and simulate HPWH air- and water-side mass flow rates of 0 // simulate only water heater tank if HP compressor is scheduled off // simulate only water heater tank if HP compressor cut-out temperature is lower than the tank's cut-in temperature // simulate only water heater tank if HP inlet air temperature is below minimum temperature for HP compressor operation // if the tank maximum temperature limit is less than the HPWH set point temp, disable HPWH - if ( AvailSchedule == 0.0 || ( SetPointTemp - DeadBandTempDiff ) <= Tank.SetPointTemp || HPWHInletDBTemp < HeatPump.MinAirTempForHPOperation || SetPointTemp >= Tank.TankTempLimit ) { + if (AvailSchedule == 0.0 || (SetPointTemp - DeadBandTempDiff) <= Tank.SetPointTemp || HPWHInletDBTemp < HeatPump.MinAirTempForHPOperation || SetPointTemp >= Tank.TankTempLimit) { // revert to float mode any time HPWH compressor is OFF HeatPump.Mode = FloatMode; - if ( InletAirMixerNode > 0 ) { - Node( InletAirMixerNode ) = Node( HPAirInletNode ); + if (InletAirMixerNode > 0) { + Node(InletAirMixerNode) = Node(HPAirInletNode); } // pass node info and simulate crankcase heater - if ( HeatPump.FanPlacement == BlowThru ) { - SimulateFanComponents( HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum ); - SimDXCoil( HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio ); - } else { - SimDXCoil( HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio ); - SimulateFanComponents( HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum ); + if (MaxSpeedNum > 0){ + SpeedRatio = 1.0; + SpeedNum = 1; + if (HeatPump.FanPlacement == BlowThru) { + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + SetVSHPWHFlowRates(WaterThermalTankNum, Tank.HeatPumpNum, SpeedNum, SpeedRatio, RhoWater, MdotWater, FirstHVACIteration); + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, CycFanCycCoil, EMP1, EMP2, EMP3, 1, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + } + else + { + SetVSHPWHFlowRates(WaterThermalTankNum, Tank.HeatPumpNum, SpeedNum, SpeedRatio, RhoWater, MdotWater, FirstHVACIteration); + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, CycFanCycCoil, EMP1, EMP2, EMP3, 1, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + } } - if ( OutletAirSplitterNode > 0 ) { - Node( HPAirOutletNode ) = Node( OutletAirSplitterNode ); + else { + if (HeatPump.FanPlacement == BlowThru) { + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + SimDXCoil(HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio); + } + else { + SimDXCoil(HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio); + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + } + } + + if (OutletAirSplitterNode > 0) { + Node(HPAirOutletNode) = Node(OutletAirSplitterNode); } // Simulate tank if HP compressor unavailable for water heating - { auto const SELECT_CASE_var( HeatPump.TankTypeNum ); + { auto const SELECT_CASE_var(HeatPump.TankTypeNum); - if ( SELECT_CASE_var == MixedWaterHeater ) { - CalcWaterThermalTankMixed( WaterThermalTankNum ); - } else if ( SELECT_CASE_var == ( StratifiedWaterHeater ) ) { - CalcWaterThermalTankStratified( WaterThermalTankNum ); + if (SELECT_CASE_var == MixedWaterHeater) { + CalcWaterThermalTankMixed(WaterThermalTankNum); + } + else if (SELECT_CASE_var == (StratifiedWaterHeater)) { + CalcWaterThermalTankStratified(WaterThermalTankNum); }} // If HPWH compressor is available and unit is off for another reason, off-cycle parasitics are calculated - if ( AvailSchedule != 0 ) { - HeatPump.OffCycParaFuelRate = HeatPump.OffCycParaLoad * ( 1.0 - HPPartLoadRatio ); + if (AvailSchedule != 0) { + HeatPump.OffCycParaFuelRate = HeatPump.OffCycParaLoad * (1.0 - HPPartLoadRatio); HeatPump.OffCycParaFuelEnergy = HeatPump.OffCycParaFuelRate * TimeStepSys * SecInHour; } // Warn if HPWH compressor cut-in temperature is less than the water heater tank's set point temp - if ( ! WarmupFlag && ! DoingSizing && ! KickOffSimulation ) { - if ( ( SetPointTemp - DeadBandTempDiff ) <= Tank.SetPointTemp ) { + if (!WarmupFlag && !DoingSizing && !KickOffSimulation) { + if ((SetPointTemp - DeadBandTempDiff) <= Tank.SetPointTemp) { HPMinTemp = SetPointTemp - DeadBandTempDiff; - gio::write( HPMinTempChar, fmtLD ) << HPMinTemp; + gio::write(HPMinTempChar, fmtLD) << HPMinTemp; ++HeatPump.HPSetPointError; //!add logic for warmup, kickoffsimulation and doing sizing here - if ( HeatPump.HPSetPointError == 1 ) { - ShowWarningError( HeatPump.Type + " \"" + HeatPump.Name + ": Water heater tank set point temperature is greater than or equal to the cut-in temperature of the heat pump water heater. Heat Pump will be disabled and simulation continues." ); - ShowContinueErrorTimeStamp( " ...Heat Pump cut-in temperature=" + HPMinTempChar ); - } else { - ShowRecurringWarningErrorAtEnd( HeatPump.Type + " \"" + HeatPump.Name + ": Water heater tank set point temperature is greater than or equal to the cut-in temperature of the heat pump water heater. Heat Pump will be disabled error continues...", HeatPump.HPSetPointErrIndex1, HPMinTemp, HPMinTemp ); + if (HeatPump.HPSetPointError == 1) { + ShowWarningError(HeatPump.Type + " \"" + HeatPump.Name + ": Water heater tank set point temperature is greater than or equal to the cut-in temperature of the heat pump water heater. Heat Pump will be disabled and simulation continues."); + ShowContinueErrorTimeStamp(" ...Heat Pump cut-in temperature=" + HPMinTempChar); + } + else { + ShowRecurringWarningErrorAtEnd(HeatPump.Type + " \"" + HeatPump.Name + ": Water heater tank set point temperature is greater than or equal to the cut-in temperature of the heat pump water heater. Heat Pump will be disabled error continues...", HeatPump.HPSetPointErrIndex1, HPMinTemp, HPMinTemp); } } } return; } - { auto const SELECT_CASE_var( HeatPump.TankTypeNum ); - if ( SELECT_CASE_var == MixedWaterHeater ) { + { auto const SELECT_CASE_var(HeatPump.TankTypeNum); + if (SELECT_CASE_var == MixedWaterHeater) { TankTemp = Tank.SavedTankTemp; - } else if ( SELECT_CASE_var == StratifiedWaterHeater ) { - TankTemp = FindStratifiedTankSensedTemp( WaterThermalTankNum, HeatPump.ControlSensorLocation ); - } else { - assert( false ); + } + else if (SELECT_CASE_var == StratifiedWaterHeater) { + TankTemp = FindStratifiedTankSensedTemp(WaterThermalTankNum, HeatPump.ControlSensorLocation); + } + else { + assert(false); }} HeatPump.Mode = HeatPump.SaveMode; + RhoWater = RhoH2O(TankTemp);//udpate water density using tank temp + // set the heat pump air- and water-side mass flow rate - MdotWater = HeatPump.OperatingWaterFlowRate * RhoH2O( TankTemp ); + MdotWater = HeatPump.OperatingWaterFlowRate * RhoH2O(TankTemp); // Select mode of operation (float mode or heat mode) from last iteration. // Determine if heating will occur this iteration and get an estimate of the PLR - { auto const SELECT_CASE_var( HeatPump.Mode ); - if ( SELECT_CASE_var == HeatMode ) { + switch (HeatPump.Mode) { + case HeatMode: // HPWH was heating last iteration and will continue to heat until the set point is reached - + HPPartLoadRatio = 1.0; - - } else if ( SELECT_CASE_var == FloatMode ) { + break; + + case FloatMode: // HPWH was floating last iteration and will continue to float until the cut-in temperature is reached - + // set the condenser inlet node temperature and full mass flow rate prior to calling the HPWH DX coil - { auto const SELECT_CASE_var1( HeatPump.TankTypeNum ); - if ( SELECT_CASE_var1 == MixedWaterHeater ) { - Node( HPWaterInletNode ).Temp = TankTemp; - Node( HPWaterOutletNode ).Temp = TankTemp; - } else if ( SELECT_CASE_var1 == StratifiedWaterHeater ) { - Node( HPWaterInletNode ).Temp = Tank.SourceOutletTemp; - Node( HPWaterOutletNode ).Temp = Tank.SourceInletTemp; - }} - Node( HPWaterInletNode ).MassFlowRate = 0.0; - Node( HPWaterOutletNode ).MassFlowRate = 0.0; + { auto const SELECT_CASE_var1(HeatPump.TankTypeNum); + if (SELECT_CASE_var1 == MixedWaterHeater) { + Node(HPWaterInletNode).Temp = TankTemp; + Node(HPWaterOutletNode).Temp = TankTemp; + } + else if (SELECT_CASE_var1 == StratifiedWaterHeater) { + Node(HPWaterInletNode).Temp = Tank.SourceOutletTemp; + Node(HPWaterOutletNode).Temp = Tank.SourceInletTemp; + }} + Node(HPWaterInletNode).MassFlowRate = 0.0; + Node(HPWaterOutletNode).MassFlowRate = 0.0; // Check tank temperature by setting source inlet mass flow rate to zero. HPPartLoadRatio = 0.0; // Set the full load outlet temperature on the water heater source inlet node (init has already been called). - Tank.SourceInletTemp = Node( HPWaterOutletNode ).Temp; + Tank.SourceInletTemp = Node(HPWaterOutletNode).Temp; // Check tank temperature by setting source inlet mass flow rate to zero. Tank.SourceMassFlowRate = 0.0; @@ -6998,15 +7152,17 @@ namespace WaterThermalTanks { // Disable the tank's internal heating element to find PLR of the HPWH using floating temperatures. Tank.MaxCapacity = 0.0; Tank.MinCapacity = 0.0; - { auto const SELECT_CASE_var1( HeatPump.TankTypeNum ); - if ( SELECT_CASE_var1 == MixedWaterHeater ) { - CalcWaterThermalTankMixed( WaterThermalTankNum ); + { auto const SELECT_CASE_var1(HeatPump.TankTypeNum); + if (SELECT_CASE_var1 == MixedWaterHeater) { + CalcWaterThermalTankMixed(WaterThermalTankNum); NewTankTemp = Tank.TankTemp; - } else if ( SELECT_CASE_var1 == StratifiedWaterHeater ) { - CalcWaterThermalTankStratified( WaterThermalTankNum ); - NewTankTemp = FindStratifiedTankSensedTemp( WaterThermalTankNum, HeatPump.ControlSensorLocation ); - } else { - assert( false ); + } + else if (SELECT_CASE_var1 == StratifiedWaterHeater) { + CalcWaterThermalTankStratified(WaterThermalTankNum); + NewTankTemp = FindStratifiedTankSensedTemp(WaterThermalTankNum, HeatPump.ControlSensorLocation); + } + else { + assert(false); }} // Reset the tank's internal heating element capacity. @@ -7014,203 +7170,600 @@ namespace WaterThermalTanks { Tank.MinCapacity = HeatPump.BackupElementCapacity; // Check to see if the tank drifts below set point if no heating happens. - if ( NewTankTemp <= ( SetPointTemp - DeadBandTempDiff ) ) { + if (NewTankTemp <= (SetPointTemp - DeadBandTempDiff)) { // HPWH is now in heating mode HeatPump.Mode = HeatMode; - + // Reset the water heater's mode (call above may have changed modes) Tank.Mode = HeatPump.SaveWHMode; // Estimate portion of time step that the HP operates based on a linear interpolation of the tank temperature decay // assuming that all heating sources are off. - if ( TankTemp != NewTankTemp ) { - HPPartLoadRatio = max( 0.0, min( 1.0, ( ( SetPointTemp - DeadBandTempDiff ) - NewTankTemp ) / ( TankTemp - NewTankTemp ) ) ); - } else { + if (TankTemp != NewTankTemp) { + HPPartLoadRatio = max(0.0, min(1.0, ((SetPointTemp - DeadBandTempDiff) - NewTankTemp) / (TankTemp - NewTankTemp))); + } + else { HPPartLoadRatio = 1.0; } } + break; - } else { + default: // Never gets here, only allowed modes for HPWH are float and heat assert(0); - }} - + } + // If the HPWH was in heating mode during the last timestep or if it was determined that // heating would be needed during this timestep to maintain setpoint, do the heating calculation. - if ( HeatPump.Mode == HeatMode ) { - + if (HeatPump.Mode == HeatMode) { + // set up air flow on DX coil inlet node - Node( DXCoilAirInletNode ).MassFlowRate = MdotAir * HPPartLoadRatio; + Node(DXCoilAirInletNode).MassFlowRate = MdotAir * HPPartLoadRatio; // set the condenser inlet node mass flow rate prior to calling the CalcHPWHDXCoil - Node( HPWaterInletNode ).MassFlowRate = MdotWater * HPPartLoadRatio; + Node(HPWaterInletNode).MassFlowRate = MdotWater * HPPartLoadRatio; Tank.SourceMassFlowRate = MdotWater * HPPartLoadRatio; - - HPWHCondInletNodeLast = Node( HPWaterInletNode ).Temp; - HPWaterInletNodeTempSaved = Node( HPWaterInletNode ).Temp; + + HPWHCondInletNodeLast = Node(HPWaterInletNode).Temp; + HPWaterInletNodeTempSaved = Node(HPWaterInletNode).Temp; // This for loop is intended to iterate and converge on a condenser operating temperature so that the evaporator model correctly calculates performance. - for ( loopIter = 1; loopIter <= 4; ++loopIter ) { - CalcHPWHDXCoil( HeatPump.DXCoilNum, HPPartLoadRatio ); + // CHECK- embedded both the nonVS and the VS sim calls inside the for-loop, previously the VS wasn't in a for loop + for (loopIter = 1; loopIter <= 4; ++loopIter) { + if (MaxSpeedNum > 0) { //lowest speed of VS HPWH coil + SpeedRatio = 1.0; + HPPartLoadRatio = 1.0; + bIterSpeed = true; //prepare for iterating between speed levels + SpeedNum = 1; + SetVSHPWHFlowRates(WaterThermalTankNum, Tank.HeatPumpNum, SpeedNum, SpeedRatio, + RhoWater, MdotWater, FirstHVACIteration); + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, 1, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + } + else { + CalcHPWHDXCoil(HeatPump.DXCoilNum, HPPartLoadRatio); + } // Currently, HPWH heating rate is only a function of inlet evap conditions and air flow rate // If HPWH is ever allowed to vary fan speed, this next sub should be called. // CALL CalcDOE2DXCoil(DXCoilNum, HPPartLoadRatio, FirstHVACIteration,PartLoadRatio, FanOpMode) // (possibly with an iteration loop to converge on a solution) - CondenserDeltaT = Node( HPWaterOutletNode ).Temp - Node( HPWaterInletNode ).Temp; - Tank.SourceInletTemp = HPWaterInletNodeTempSaved + CondenserDeltaT; - + CondenserDeltaT = Node(HPWaterOutletNode).Temp - Node(HPWaterInletNode).Temp; + Tank.SourceInletTemp = Node(HPWaterInletNode).Temp + CondenserDeltaT; + // this CALL does not update node temps, must use WaterThermalTank variables // select tank type - { auto const SELECT_CASE_var1( HeatPump.TankTypeNum ); - if ( SELECT_CASE_var1 == MixedWaterHeater ) { - CalcWaterThermalTankMixed( WaterThermalTankNum ); - NewTankTemp = Tank.TankTemp; - } else if ( SELECT_CASE_var1 == StratifiedWaterHeater ) { - CalcWaterThermalTankStratified( WaterThermalTankNum ); - NewTankTemp = FindStratifiedTankSensedTemp( WaterThermalTankNum, HeatPump.ControlSensorLocation ); - }} - Node( HPWaterInletNode ).Temp = Tank.SourceOutletTemp; - if ( std::abs( Node( HPWaterInletNode ).Temp - HPWHCondInletNodeLast ) < SmallTempDiff ) break; - HPWHCondInletNodeLast = Node( HPWaterInletNode ).Temp; + { auto const SELECT_CASE_var1(HeatPump.TankTypeNum); + if (SELECT_CASE_var1 == MixedWaterHeater) { + CalcWaterThermalTankMixed(WaterThermalTankNum); + NewTankTemp = Tank.TankTemp; + } + else if (SELECT_CASE_var1 == StratifiedWaterHeater) { + CalcWaterThermalTankStratified(WaterThermalTankNum); + NewTankTemp = FindStratifiedTankSensedTemp(WaterThermalTankNum, HeatPump.ControlSensorLocation); + }} + + LowSpeedTankTemp = NewTankTemp; + + Node(HPWaterInletNode).Temp = Tank.SourceOutletTemp; + if (std::abs(Node(HPWaterInletNode).Temp - HPWHCondInletNodeLast) < SmallTempDiff) break; + HPWHCondInletNodeLast = Node(HPWaterInletNode).Temp; } - - // if tank temperature is greater than set point, calculate a PLR needed to exactly reach the set point - if ( NewTankTemp > SetPointTemp ) { + + + if (NewTankTemp > SetPointTemp) { HeatPump.Mode = FloatMode; - Par( 1 ) = SetPointTemp; - Par( 2 ) = HeatPump.SaveWHMode; - Par( 3 ) = WaterThermalTankNum; - if ( FirstHVACIteration ) { - Par( 4 ) = 1.0; - } else { - Par( 4 ) = 0.0; - } - Par( 5 ) = MdotWater; - { auto const SELECT_CASE_var1( HeatPump.TankTypeNum ); - if ( SELECT_CASE_var1 == MixedWaterHeater ) { - SolveRegulaFalsi( Acc, MaxIte, SolFla, HPPartLoadRatio, PLRResidualMixedTank, 0.0, 1.0, Par ); - } else if ( SELECT_CASE_var1 == StratifiedWaterHeater ) { - SolveRegulaFalsi( Acc, MaxIte, SolFla, HPPartLoadRatio, PLRResidualStratifiedTank, 0.0, 1.0, Par ); + Par(1) = SetPointTemp; + Par(2) = HeatPump.SaveWHMode; + Par(3) = WaterThermalTankNum; + if (FirstHVACIteration) { + Par(4) = 1.0; + } + else { + Par(4) = 0.0; + } + Par(5) = MdotWater; + + if (MaxSpeedNum > 0) + //square the solving, and avoid warning + //due to very small capacity at lowest speed of VSHPWH coil + { + { auto const SELECT_CASE_var1(HeatPump.TankTypeNum); + if (SELECT_CASE_var1 == MixedWaterHeater) { + zeroResidual = PLRResidualMixedTank(0.0, Par); + } + else if (SELECT_CASE_var1 == StratifiedWaterHeater) { + zeroResidual = PLRResidualStratifiedTank(0.0, Par); }} - if ( SolFla == -1 ) { - gio::write( IterNum, fmtLD ) << MaxIte; - strip( IterNum ); - if ( ! WarmupFlag ) { - ++HeatPump.IterLimitExceededNum2; - if ( HeatPump.IterLimitExceededNum2 == 1 ) { - ShowWarningError( HeatPump.Type + " \"" + HeatPump.Name + "\"" ); - ShowContinueError( "Iteration limit exceeded calculating heat pump water heater compressor part-load ratio, maximum iterations = " + IterNum + ". Part-load ratio returned = " + RoundSigDigits( HPPartLoadRatio, 3 ) ); - ShowContinueErrorTimeStamp( "This error occurred in float mode." ); - } else { - ShowRecurringWarningErrorAtEnd( HeatPump.Type + " \"" + HeatPump.Name + "\": Iteration limit exceeded in float mode warning continues. Part-load ratio statistics follow.", HeatPump.IterLimitErrIndex2, HPPartLoadRatio, HPPartLoadRatio ); - } - } - } else if ( SolFla == -2 ) { - HPPartLoadRatio = max( 0.0, min( 1.0, ( SetPointTemp - TankTemp ) / ( NewTankTemp - TankTemp ) ) ); - if ( ! WarmupFlag ) { - ++HeatPump.RegulaFalsiFailedNum2; - if ( HeatPump.RegulaFalsiFailedNum2 == 1 ) { - ShowWarningError( HeatPump.Type + " \"" + HeatPump.Name + "\"" ); - ShowContinueError( "Heat pump water heater compressor part-load ratio calculation failed: PLR limits of 0 to 1 exceeded. Part-load ratio used = " + RoundSigDigits( HPPartLoadRatio, 3 ) ); - ShowContinueError( "Please send this information to the EnergyPlus support group." ); - ShowContinueErrorTimeStamp( "This error occured in float mode." ); - } else { - ShowRecurringWarningErrorAtEnd( HeatPump.Type + " \"" + HeatPump.Name + "\": Part-load ratio calculation failed in float mode warning continues. Part-load ratio statistics follow.", HeatPump.RegulaFalsiFailedIndex2, HPPartLoadRatio, HPPartLoadRatio ); + } + + if (zeroResidual > 0.0)//then iteration + { + { auto const SELECT_CASE_var1(HeatPump.TankTypeNum); + if (SELECT_CASE_var1 == MixedWaterHeater) { + SolveRegulaFalsi(Acc, MaxIte, SolFla, HPPartLoadRatio, PLRResidualMixedTank, 0.0, 1.0, Par); + } + else if (SELECT_CASE_var1 == StratifiedWaterHeater) { + SolveRegulaFalsi(Acc, MaxIte, SolFla, HPPartLoadRatio, PLRResidualStratifiedTank, 0.0, 1.0, Par); + }} + if (SolFla == -1) { + gio::write(IterNum, fmtLD) << MaxIte; + strip(IterNum); + if (!WarmupFlag) { + ++HeatPump.IterLimitExceededNum2; + if (HeatPump.IterLimitExceededNum2 == 1) { + ShowWarningError(HeatPump.Type + " \"" + HeatPump.Name + "\""); + ShowContinueError("Iteration limit exceeded calculating heat pump water heater compressor part-load ratio, maximum iterations = " + IterNum + ". Part-load ratio returned = " + RoundSigDigits(HPPartLoadRatio, 3)); + ShowContinueErrorTimeStamp("This error occurred in float mode."); + } + else { + ShowRecurringWarningErrorAtEnd(HeatPump.Type + " \"" + HeatPump.Name + "\": Iteration limit exceeded in float mode warning continues. Part-load ratio statistics follow.", HeatPump.IterLimitErrIndex2, HPPartLoadRatio, HPPartLoadRatio); + } + } + } + else if (SolFla == -2) { + HPPartLoadRatio = max(0.0, min(1.0, (SetPointTemp - TankTemp) / (NewTankTemp - TankTemp))); + if (!WarmupFlag) { + ++HeatPump.RegulaFalsiFailedNum2; + if (HeatPump.RegulaFalsiFailedNum2 == 1) { + ShowWarningError(HeatPump.Type + " \"" + HeatPump.Name + "\""); + ShowContinueError("Heat pump water heater compressor part-load ratio calculation failed: PLR limits of 0 to 1 exceeded. Part-load ratio used = " + RoundSigDigits(HPPartLoadRatio, 3)); + ShowContinueError("Please send this information to the EnergyPlus support group."); + ShowContinueErrorTimeStamp("This error occured in float mode."); + } + else { + ShowRecurringWarningErrorAtEnd(HeatPump.Type + " \"" + HeatPump.Name + "\": Part-load ratio calculation failed in float mode warning continues. Part-load ratio statistics follow.", HeatPump.RegulaFalsiFailedIndex2, HPPartLoadRatio, HPPartLoadRatio); + } } } } - + else + { + HPPartLoadRatio = 0.0; + }; + // Re-calculate the HPWH Coil to get the correct heat transfer rate. - Node( HPWaterInletNode ).Temp = Tank.SourceOutletTemp; - CalcHPWHDXCoil( HeatPump.DXCoilNum, HPPartLoadRatio ); - - } else { + Node(HPWaterInletNode).Temp = Tank.SourceOutletTemp; + if (MaxSpeedNum > 0) { + SpeedRatio = 1.0; + bIterSpeed = false; //prepare for iterating between speed levels + SpeedNum = 1; + + SetVSHPWHFlowRates(WaterThermalTankNum, Tank.HeatPumpNum, SpeedNum, SpeedRatio, + RhoWater, MdotWater, FirstHVACIteration); + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, 1, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + } + else{ + CalcHPWHDXCoil(HeatPump.DXCoilNum, HPPartLoadRatio); + } + } + else if (bIterSpeed) { + for (loopIter = 1; loopIter <= 4; ++loopIter) + { + HeatPump.Mode = HeatMode;//HeatMode is important for system convergence + HPPartLoadRatio = 1.0; + SpeedRatio = 1.0; + for (i = 2; i <= MaxSpeedNum; ++i) + { + SpeedNum = i; + SetVSHPWHFlowRates(WaterThermalTankNum, Tank.HeatPumpNum, SpeedNum, SpeedRatio, RhoWater, MdotWater, FirstHVACIteration); + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, CycFanCycCoil, EMP1, EMP2, EMP3, 1, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + + CondenserDeltaT = Node(HPWaterOutletNode).Temp - Node(HPWaterInletNode).Temp; + + // move the full load outlet temperature rate to the water heater structure variables + // (water heaters source inlet node temperature/mdot are set in Init, set it here after CalcHPWHDXCoil has been called) + WaterThermalTank(WaterThermalTankNum).SourceInletTemp = Node(HPWaterInletNode).Temp + CondenserDeltaT; + // WaterThermalTank( WaterThermalTankNum ).SourceMassFlowRate = MdotWater; + + // this CALL does not update node temps, must use WaterThermalTank variables + // select tank type + { auto const SELECT_CASE_var1(HeatPump.TankTypeNum); + if (SELECT_CASE_var1 == MixedWaterHeater) { + CalcWaterThermalTankMixed(WaterThermalTankNum); + NewTankTemp = Tank.TankTemp; + } + else if (SELECT_CASE_var1 == StratifiedWaterHeater) { + CalcWaterThermalTankStratified(WaterThermalTankNum); + NewTankTemp = FindStratifiedTankSensedTemp(WaterThermalTankNum, HeatPump.ControlSensorLocation); + }} + + if (NewTankTemp > SetPointTemp) { + SpeedNum = i; + break; + } + else + { + LowSpeedTankTemp = NewTankTemp; + } + } + + if (NewTankTemp > SetPointTemp) + { + ParVS(1) = WaterThermalTankNum; + ParVS(2) = Tank.HeatPumpNum; + ParVS(3) = SpeedNum; + ParVS(4) = HPWaterInletNode; + ParVS(5) = HPWaterOutletNode; + ParVS(6) = RhoWater; + ParVS(7) = SetPointTemp; + ParVS(8) = HeatPump.SaveWHMode; + if (FirstHVACIteration) { + ParVS(9) = 1.0; + } + else { + ParVS(9) = 0.0; + } + + SolveRegulaFalsi(Acc, MaxIte, SolFla, SpeedRatio, PLRResidualIterSpeed, 1.0e-10, 1.0, ParVS); + + if (SolFla == -1) { + gio::write(IterNum, fmtLD) << MaxIte; + strip(IterNum); + if (!WarmupFlag) { + ++HeatPump.IterLimitExceededNum1; + if (HeatPump.IterLimitExceededNum1 == 1) { + ShowWarningError(HeatPump.Type + " \"" + HeatPump.Name + "\""); + ShowContinueError("Iteration limit exceeded calculating heat pump water heater speed" " speed ratio ratio, maximum iterations = " + IterNum + ". speed ratio returned = " + RoundSigDigits(SpeedRatio, 3)); + ShowContinueErrorTimeStamp("This error occurred in heating mode."); + } + else { + ShowRecurringWarningErrorAtEnd(HeatPump.Type + " \"" + HeatPump.Name + "\": Iteration limit exceeded in heating mode warning continues. speed ratio statistics follow.", HeatPump.IterLimitErrIndex1, SpeedRatio, SpeedRatio); + } + } + } + else if (SolFla == -2) + { + SpeedRatio = max(0.0, min(1.0, (SetPointTemp - LowSpeedTankTemp) / (NewTankTemp - LowSpeedTankTemp))); + if (!WarmupFlag) { + ++HeatPump.RegulaFalsiFailedNum1; + if (HeatPump.RegulaFalsiFailedNum1 == 1) { + ShowWarningError(HeatPump.Type + " \"" + HeatPump.Name + "\""); + ShowContinueError("Heat pump water heater speed ratio calculation failed: speed ratio limits " "of 0 to 1 exceeded. speed ratio used = " + RoundSigDigits(SpeedRatio, 3)); + ShowContinueError("Please send this information to the EnergyPlus support group."); + ShowContinueErrorTimeStamp("This error occured in heating mode."); + } + else { + ShowRecurringWarningErrorAtEnd(HeatPump.Type + " \"" + HeatPump.Name + "\": Speed ratio calculation failed in heating mode warning continues. Speed ratio statistics follow.", HeatPump.RegulaFalsiFailedIndex1, SpeedRatio, SpeedRatio); + } + } + } + } + else + { + SpeedNum = MaxSpeedNum; + SpeedRatio = 1.0; + } + + HPPartLoadRatio = 1.0; + SetVSHPWHFlowRates(WaterThermalTankNum, Tank.HeatPumpNum, SpeedNum, SpeedRatio, + RhoWater, MdotWater, FirstHVACIteration); + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, 1, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + + + CondenserDeltaT = Node(HPWaterOutletNode).Temp - Node(HPWaterInletNode).Temp; + + // move the full load outlet temperature rate to the water heater structure variables + // (water heaters source inlet node temperature/mdot are set in Init, set it here after CalcHPWHDXCoil has been called) + WaterThermalTank(WaterThermalTankNum).SourceInletTemp = Node(HPWaterInletNode).Temp + CondenserDeltaT; + // WaterThermalTank( WaterThermalTankNum ).SourceMassFlowRate = MdotWater; + + // this CALL does not update node temps, must use WaterThermalTank variables + // select tank type + { auto const SELECT_CASE_var1(HeatPump.TankTypeNum); + if (SELECT_CASE_var1 == MixedWaterHeater) { + CalcWaterThermalTankMixed(WaterThermalTankNum); + NewTankTemp = WaterThermalTank(WaterThermalTankNum).TankTemp; + } + else if (SELECT_CASE_var1 == StratifiedWaterHeater) { + CalcWaterThermalTankStratified(WaterThermalTankNum); + NewTankTemp = FindStratifiedTankSensedTemp(WaterThermalTankNum, HeatPump.ControlSensorLocation); + }} + //update inlet temp + Node(HPWaterInletNode).Temp = WaterThermalTank(WaterThermalTankNum).SourceOutletTemp; + if (std::abs(Node(HPWaterInletNode).Temp - HPWHCondInletNodeLast) < SmallTempDiff) break; + HPWHCondInletNodeLast = Node(HPWaterInletNode).Temp; + } + + } + else { // Set the PLR to 1 if we're not going to reach setpoint during this timestep. HPPartLoadRatio = 1.0; } } - + // set air-side mass flow rate for final calculation - if ( InletAirMixerNode > 0 ) { - Node( InletAirMixerNode ).MassFlowRate = MdotAir * HPPartLoadRatio; - Node( HPAirInletNode ).MassFlowRate = MdotAir * HPPartLoadRatio * ( 1.0 - MixerInletAirSchedule ); - Node( OutdoorAirNode ).MassFlowRate = MdotAir * HPPartLoadRatio * MixerInletAirSchedule; + if (InletAirMixerNode > 0) { + Node(InletAirMixerNode).MassFlowRate = MdotAir * HPPartLoadRatio; + Node(HPAirInletNode).MassFlowRate = MdotAir * HPPartLoadRatio * (1.0 - MixerInletAirSchedule); + Node(OutdoorAirNode).MassFlowRate = MdotAir * HPPartLoadRatio * MixerInletAirSchedule; // IF HPWH is off, pass zone node conditions through HPWH air-side - if ( HPPartLoadRatio == 0 ) Node( InletAirMixerNode ) = Node( HPAirInletNode ); - } else { - if ( OutdoorAirNode == 0 ) { - Node( HPAirInletNode ).MassFlowRate = MdotAir * HPPartLoadRatio; - } else { - Node( OutdoorAirNode ).MassFlowRate = MdotAir * HPPartLoadRatio; + if (HPPartLoadRatio == 0) Node(InletAirMixerNode) = Node(HPAirInletNode); + } + else { + if (OutdoorAirNode == 0) { + Node(HPAirInletNode).MassFlowRate = MdotAir * HPPartLoadRatio; + } + else { + Node(OutdoorAirNode).MassFlowRate = MdotAir * HPPartLoadRatio; } } - if ( HPPartLoadRatio == 0 ) Tank.SourceInletTemp = Tank.SourceOutletTemp; + if (HPPartLoadRatio == 0) Tank.SourceInletTemp = Tank.SourceOutletTemp; // set water-side mass flow rate for final calculation - Node( HPWaterInletNode ).MassFlowRate = MdotWater * HPPartLoadRatio; - - // pass node information using resulting PLR - if ( HeatPump.FanPlacement == BlowThru ) { - // simulate fan and DX coil twice to pass PLF (OnOffFanPartLoadFraction) to fan - SimulateFanComponents( HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum ); - SimDXCoil( HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio ); - SimulateFanComponents( HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum ); - SimDXCoil( HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio ); - } else { - // simulate DX coil and fan twice to pass fan power (FanElecPower) to DX coil - SimDXCoil( HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio ); - SimulateFanComponents( HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum ); - SimDXCoil( HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio ); - SimulateFanComponents( HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum ); + Node(HPWaterInletNode).MassFlowRate = MdotWater * HPPartLoadRatio; + + if (MaxSpeedNum > 0) { + + // it is important to use MdotAir to reset the notes, otherwise, could fail to converge + if (InletAirMixerNode > 0) { + Node(InletAirMixerNode).MassFlowRateMax = MdotAir; + Node(InletAirMixerNode).MassFlowRateMaxAvail = MdotAir; + } + else { + if (OutdoorAirNode == 0) { + Node(HPAirInletNode).MassFlowRateMax = MdotAir; + Node(HPAirInletNode).MassFlowRateMaxAvail = MdotAir; + } + else { + Node(OutdoorAirNode).MassFlowRateMax = MdotAir; + Node(OutdoorAirNode).MassFlowRateMaxAvail = MdotAir; + } + } + + // set the max mass flow rate for outdoor fans + Node(HeatPump.FanOutletNode).MassFlowRateMax = MdotAir; + + // pass node information using resulting PLR + if (HeatPump.FanPlacement == BlowThru) { + // simulate fan and DX coil twice to pass PLF (OnOffFanPartLoadFraction) to fan + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, CompOp, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, CompOp, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + } + else { + // simulate DX coil and fan twice to pass fan power (FanElecPower) to DX coil + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, CompOp, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + SimVariableSpeedCoils(HeatPump.DXCoilName, HeatPump.DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, CompOp, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + } + } + else { // single speed + + // pass node information using resulting PLR + if (HeatPump.FanPlacement == BlowThru) { + // simulate fan and DX coil twice to pass PLF (OnOffFanPartLoadFraction) to fan + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + SimDXCoil(HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio); + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + SimDXCoil(HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio); + } + else { + // simulate DX coil and fan twice to pass fan power (FanElecPower) to DX coil + SimDXCoil(HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio); + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + SimDXCoil(HeatPump.DXCoilName, CompOp, FirstHVACIteration, HeatPump.DXCoilNum, CycFanCycCoil, HPPartLoadRatio); + SimulateFanComponents(HeatPump.FanName, FirstHVACIteration, HeatPump.FanNum); + } + } // set HPWH outlet node equal to the outlet air splitter node conditions if outlet air splitter node exists - if ( OutletAirSplitterNode > 0 ) { - Node( HPAirOutletNode ) = Node( OutletAirSplitterNode ); - Node( ExhaustAirNode ) = Node( OutletAirSplitterNode ); + if (OutletAirSplitterNode > 0) { + Node(HPAirOutletNode) = Node(OutletAirSplitterNode); + Node(ExhaustAirNode) = Node(OutletAirSplitterNode); } // Check schedule to divert air-side cooling to outdoors. - if ( HeatPump.OutletAirSplitterSchPtr > 0 ) { - OutletAirSplitterSch = GetCurrentScheduleValue( HeatPump.OutletAirSplitterSchPtr ); - Node( HPAirOutletNode ).MassFlowRate = MdotAir * HPPartLoadRatio * ( 1.0 - OutletAirSplitterSch ); - Node( ExhaustAirNode ).MassFlowRate = MdotAir * HPPartLoadRatio * OutletAirSplitterSch; + if (HeatPump.OutletAirSplitterSchPtr > 0) { + OutletAirSplitterSch = GetCurrentScheduleValue(HeatPump.OutletAirSplitterSchPtr); + Node(HPAirOutletNode).MassFlowRate = MdotAir * HPPartLoadRatio * (1.0 - OutletAirSplitterSch); + Node(ExhaustAirNode).MassFlowRate = MdotAir * HPPartLoadRatio * OutletAirSplitterSch; } HeatPump.HeatingPLR = HPPartLoadRatio; HeatPump.OnCycParaFuelRate = HeatPump.OnCycParaLoad * HPPartLoadRatio; HeatPump.OnCycParaFuelEnergy = HeatPump.OnCycParaFuelRate * TimeStepSys * SecInHour; - HeatPump.OffCycParaFuelRate = HeatPump.OffCycParaLoad * ( 1.0 - HPPartLoadRatio ); + HeatPump.OffCycParaFuelRate = HeatPump.OffCycParaLoad * (1.0 - HPPartLoadRatio); HeatPump.OffCycParaFuelEnergy = HeatPump.OffCycParaFuelRate * TimeStepSys * SecInHour; - { auto const SELECT_CASE_var( HeatPump.InletAirConfiguration ); + { auto const SELECT_CASE_var(HeatPump.InletAirConfiguration); // no sensible capacity to zone for outdoor and scheduled HPWH - if ( SELECT_CASE_var == AmbientTempOutsideAir ) { + if (SELECT_CASE_var == AmbientTempOutsideAir) { HeatPump.HPWaterHeaterSensibleCapacity = 0.0; HeatPump.HPWaterHeaterLatentCapacity = 0.0; - } else if ( SELECT_CASE_var == AmbientTempSchedule ) { + } + else if (SELECT_CASE_var == AmbientTempSchedule) { HeatPump.HPWaterHeaterSensibleCapacity = 0.0; HeatPump.HPWaterHeaterLatentCapacity = 0.0; // calculate sensible capacity to zone for inlet air configuration equals Zone Only or Zone And Outdoor Air configurations - } else { - CpAir = PsyCpAirFnWTdb( Node( HPAirInletNode ).HumRat, Node( HPAirInletNode ).Temp ); + } + else { + CpAir = PsyCpAirFnWTdb(Node(HPAirInletNode).HumRat, Node(HPAirInletNode).Temp); // add parasitics to zone heat balance if parasitic heat load is to zone otherwise neglect parasitics - if ( HeatPump.ParasiticTempIndicator == AmbientTempZone ) { - HeatPump.HPWaterHeaterSensibleCapacity = ( Node( HPAirOutletNode ).MassFlowRate * CpAir * ( Node( HPAirOutletNode ).Temp - Node( HPAirInletNode ).Temp ) ) + HeatPump.OnCycParaFuelRate + HeatPump.OffCycParaFuelRate; - } else { - HeatPump.HPWaterHeaterSensibleCapacity = Node( HPAirOutletNode ).MassFlowRate * CpAir * ( Node( HPAirOutletNode ).Temp - Node( HPAirInletNode ).Temp ); + if (HeatPump.ParasiticTempIndicator == AmbientTempZone) { + HeatPump.HPWaterHeaterSensibleCapacity = (Node(HPAirOutletNode).MassFlowRate * CpAir * (Node(HPAirOutletNode).Temp - Node(HPAirInletNode).Temp)) + HeatPump.OnCycParaFuelRate + HeatPump.OffCycParaFuelRate; + } + else { + HeatPump.HPWaterHeaterSensibleCapacity = Node(HPAirOutletNode).MassFlowRate * CpAir * (Node(HPAirOutletNode).Temp - Node(HPAirInletNode).Temp); } - HeatPump.HPWaterHeaterLatentCapacity = Node( HPAirOutletNode ).MassFlowRate * ( Node( HPAirOutletNode ).HumRat - Node( HPAirInletNode ).HumRat ); + HeatPump.HPWaterHeaterLatentCapacity = Node(HPAirOutletNode).MassFlowRate * (Node(HPAirOutletNode).HumRat - Node(HPAirInletNode).HumRat); }} } + void + SetVSHPWHFlowRates( + int const WaterThermalTankNum, // Water Heater tank being simulated + int const HPNum,//index of heat pump coil + int const SpeedNum,//upper speed number + Real64 const SpeedRatio,//interpolation ration between upper and lower speed + Real64 const WaterDens,// tank water density + Real64 & MdotWater, // water flow rate + bool const FirstHVACIteration + ) + { + // FUNCTION INFORMATION: + // AUTHOR B.Shen, ORNL, 12/2014 + // DATE WRITTEN May 2005 + // MODIFIED + // RE-ENGINEERED + + // PURPOSE OF THIS FUNCTION: + // set water and air flow rates driven by the variable-speed HPWH coil + // calculate resultant HPWH coil output + + // REFERENCES: + + // USE STATEMENTS: + + // Using/Aliasing + using DataLoopNode::Node; + using Fans::SimulateFanComponents; + + int DXCoilAirInletNode; // Inlet air node number of DX coil + int HPWaterInletNode; // HP condenser water inlet node number + int SpeedLow; //lower speed level + + SpeedLow = SpeedNum - 1; + if (SpeedLow < 1) SpeedLow = 1; + + HPWaterInletNode = HPWaterHeater(HPNum).CondWaterInletNode; + DXCoilAirInletNode = HPWaterHeater(HPNum).DXCoilAirInletNode; + + HPWaterHeater(HPNum).OperatingWaterFlowRate = + HPWaterHeater(HPNum).HPWHWaterVolFlowRate(SpeedNum)* SpeedRatio + + HPWaterHeater(HPNum).HPWHWaterVolFlowRate(SpeedLow)* (1.0 - SpeedRatio); + HPWaterHeater(HPNum).OperatingAirFlowRate = + HPWaterHeater(HPNum).HPWHAirVolFlowRate(SpeedNum) * SpeedRatio + + HPWaterHeater(HPNum).HPWHAirVolFlowRate(SpeedLow)* (1.0 - SpeedRatio); + MdotAir = HPWaterHeater(HPNum).HPWHAirMassFlowRate(SpeedNum) * SpeedRatio + + HPWaterHeater(HPNum).HPWHAirMassFlowRate(SpeedLow)* (1.0 - SpeedRatio); + MdotWater = HPWaterHeater(HPNum).OperatingWaterFlowRate * WaterDens; + + Node(DXCoilAirInletNode).MassFlowRate = MdotAir; + Node(HPWaterInletNode).MassFlowRate = MdotWater; + WaterThermalTank(WaterThermalTankNum).SourceMassFlowRate = MdotWater; + + if (HPWaterHeater(HPNum).InletAirMixerNode > 0) { + Node(HPWaterHeater(HPNum).InletAirMixerNode).MassFlowRate = MdotAir; + Node(HPWaterHeater(HPNum).InletAirMixerNode).MassFlowRateMaxAvail = MdotAir; + } + else { + if (HPWaterHeater(HPNum).OutsideAirNode == 0) { + Node(HPWaterHeater(HPNum).HeatPumpAirInletNode).MassFlowRate = MdotAir; + Node(HPWaterHeater(HPNum).HeatPumpAirInletNode).MassFlowRateMaxAvail = MdotAir; + } + else { + Node(HPWaterHeater(HPNum).OutsideAirNode).MassFlowRate = MdotAir; + Node(HPWaterHeater(HPNum).OutsideAirNode).MassFlowRateMaxAvail = MdotAir; + } + } + + // put fan component first, regardless placement, to calculate fan power + SimulateFanComponents(HPWaterHeater(HPNum).FanName, + FirstHVACIteration, HPWaterHeater(HPNum).FanNum); + } + + Real64 + PLRResidualIterSpeed( + Real64 const SpeedRatio, // speed ratio between two speed levels + Optional< FArray1S< Real64 > const > Par // + ) + { + // FUNCTION INFORMATION: + // AUTHOR B.Shen, ORNL, 12/2014 + // MODIFIED + // RE-ENGINEERED + + // PURPOSE OF THIS FUNCTION: + // Calculates residual function (desired tank temp - actual tank temp), when iterating speed ration between two speed levels + // HP water heater output depends on the speed ratio which is being varied to zero the residual. + + // METHODOLOGY EMPLOYED: + // Calls residuals to get tank temperature at the given speed ratio between a lower and an upper speed levels + // and calculates the residual as defined respectively for MixedWaterHeater or StratifiedWaterHeater + + // REFERENCES: + + // USE STATEMENTS: + + // Using/Aliasing + using DataLoopNode::Node; + using VariableSpeedCoils::SimVariableSpeedCoils; + using DataHVACGlobals::CycFanCycCoil; + + int WaterThermalTankNum; // index of water heater + Real64 NewTankTemp; // resulting tank temperature [C] + int SpeedNum; + int HPNum; + Real64 MdotWater(0); + Real64 RhoWater; + int HPWaterInletNode; + int HPWaterOutletNode; + Real64 CondenserDeltaT; + Real64 PLRResidualIterSpeed; + bool FirstHVACIteration; // FirstHVACIteration flag + Real64 EMP1(0.0), EMP2(0.0), EMP3(0.0); //place holder to calling variable-speed coil function + + WaterThermalTankNum = int(Par()(1)); + HPNum = int(Par()(2)); + SpeedNum = int(Par()(3)); + HPWaterInletNode = int(Par()(4)); + HPWaterOutletNode = int(Par()(5)); + RhoWater = Par()(6); + WaterThermalTank(WaterThermalTankNum).Mode = int(Par()(8)); + // FirstHVACIteration is a logical, Par is real, so make 1.0=TRUE and 0.0=FALSE + if (Par()(9) == 1.0) { + FirstHVACIteration = true; + } + else { + FirstHVACIteration = false; + } + + HPPartLoadRatio = 1.0; + SetVSHPWHFlowRates(WaterThermalTankNum, HPNum, SpeedNum, SpeedRatio, + RhoWater, MdotWater, FirstHVACIteration); + SimVariableSpeedCoils(HPWaterHeater(HPNum).DXCoilName, HPWaterHeater(HPNum).DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, 1, HPPartLoadRatio, SpeedNum, SpeedRatio, 0.0, 0.0, 1.0); + + + CondenserDeltaT = Node(HPWaterOutletNode).Temp - Node(HPWaterInletNode).Temp; + + // move the full load outlet temperature rate to the water heater structure variables + // (water heaters source inlet node temperature/mdot are set in Init, set it here after CalcHPWHDXCoil has been called) + WaterThermalTank(WaterThermalTankNum).SourceInletTemp = Node(HPWaterInletNode).Temp + CondenserDeltaT; + // WaterThermalTank( WaterThermalTankNum ).SourceMassFlowRate = MdotWater; + + // this CALL does not update node temps, must use WaterThermalTank variables + // select tank type + { auto const SELECT_CASE_var1(HPWaterHeater(HPNum).TankTypeNum); + if (SELECT_CASE_var1 == MixedWaterHeater) { + CalcWaterThermalTankMixed(WaterThermalTankNum); + NewTankTemp = WaterThermalTank(WaterThermalTankNum).TankTemp; + } + else if (SELECT_CASE_var1 == StratifiedWaterHeater) { + CalcWaterThermalTankStratified(WaterThermalTankNum); + NewTankTemp = FindStratifiedTankSensedTemp(WaterThermalTankNum, HPWaterHeater(HPNum).ControlSensorLocation); + }} + + PLRResidualIterSpeed = Par()(7) - NewTankTemp; + return PLRResidualIterSpeed; + } + Real64 PLRResidualMixedTank( Real64 const HPPartLoadRatio, // compressor cycling ratio (1.0 is continuous, 0.0 is off) @@ -9187,6 +9740,11 @@ namespace WaterThermalTanks { using DataHVACGlobals::CycFanCycCoil; using namespace OutputReportPredefined; using General::TrimSigDigits; + using InputProcessor::SameString; + using VariableSpeedCoils::SimVariableSpeedCoils; + using VariableSpeedCoils::VarSpeedCoil; + using VariableSpeedCoils::VSHPWHHeatingCapacity; + using VariableSpeedCoils::VSHPWHHeatingCOP; // Locals Real64 MdotAir; // air mass flow rate through HP water heater evaporator (kg/s) @@ -9213,6 +9771,9 @@ namespace WaterThermalTanks { bool FirstTimeFlag; // used during HPWH rating procedure std::string equipName; static bool MyOneTimeSetupFlag( true ); // one time setup flag + Real64 EMP1(0.0), EMP2(0.0), EMP3(0.0); //place holder to calling vs HPWH function + bool bIsVSCoil(false); // variable-speed HPWH identifier + Real64 RhoWater; //water density // Formats static gio::Fmt Format_720( "('Water Heater Information',6(',',A))" ); @@ -9316,20 +9877,65 @@ namespace WaterThermalTanks { HPWHCrankcaseDBTemp = WaterThermalTank( WaterThermalTankNum ).AmbientTemp; - // simulate the HPWH coil/fan to find heating capacity - if ( HPWaterHeater( HPNum ).FanPlacement == BlowThru ) { - SimulateFanComponents( HPWaterHeater( HPNum ).FanName, true, HPWaterHeater( HPNum ).FanNum ); - // CALL SimDXCoil(HPWaterHeater(HPNum)%DXCoilName, CompOp, .TRUE.,PartLoadRatio, HPWaterHeater(HPNum)%DXCoilNum,FanOpMode) - SimDXCoil( HPWaterHeater( HPNum ).DXCoilName, 1, true, HPWaterHeater( HPNum ).DXCoilNum, CycFanCycCoil, 1.0 ); - SimulateFanComponents( HPWaterHeater( HPNum ).FanName, true, HPWaterHeater( HPNum ).FanNum ); - SimDXCoil( HPWaterHeater( HPNum ).DXCoilName, 1, true, HPWaterHeater( HPNum ).DXCoilNum, CycFanCycCoil, 1.0 ); - } else { - SimDXCoil( HPWaterHeater( HPNum ).DXCoilName, 1, true, HPWaterHeater( HPNum ).DXCoilNum, CycFanCycCoil, 1.0 ); - SimulateFanComponents( HPWaterHeater( HPNum ).FanName, true, HPWaterHeater( HPNum ).FanNum ); - SimDXCoil( HPWaterHeater( HPNum ).DXCoilName, 1, true, HPWaterHeater( HPNum ).DXCoilNum, CycFanCycCoil, 1.0 ); - SimulateFanComponents( HPWaterHeater( HPNum ).FanName, true, HPWaterHeater( HPNum ).FanNum ); + if (SameString(HPWaterHeater(HPNum).DXCoilType, "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed")) + { + bIsVSCoil = true; + RhoWater = RhoH2O(WaterThermalTank(WaterThermalTankNum).TankTemp); + SetVSHPWHFlowRates(WaterThermalTankNum, HPNum, + VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel, 1.0, + RhoWater, MdotWater, true); + // simulate the HPWH coil/fan to find heating capacity + if (HPWaterHeater(HPNum).FanPlacement == BlowThru) { + // simulate fan and DX coil twice + SimulateFanComponents(HPWaterHeater(HPNum).FanName, true, HPWaterHeater(HPNum).FanNum); + SimVariableSpeedCoils(HPWaterHeater(HPNum).DXCoilName, HPWaterHeater(HPNum).DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, 1, 1.0, + VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel, 1.0, 0.0, 0.0, 1.0); + SimulateFanComponents(HPWaterHeater(HPNum).FanName, true, HPWaterHeater(HPNum).FanNum); + SimVariableSpeedCoils(HPWaterHeater(HPNum).DXCoilName, HPWaterHeater(HPNum).DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, 1, 1.0, + VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel, 1.0, 0.0, 0.0, 1.0); + } + else { + // simulate DX coil and fan twice to pass fan power (FanElecPower) to DX coil + SimVariableSpeedCoils(HPWaterHeater(HPNum).DXCoilName, HPWaterHeater(HPNum).DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, 1, 1.0, + VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel, 1.0, 0.0, 0.0, 1.0); + SimulateFanComponents(HPWaterHeater(HPNum).FanName, true, HPWaterHeater(HPNum).FanNum); + SimVariableSpeedCoils(HPWaterHeater(HPNum).DXCoilName, HPWaterHeater(HPNum).DXCoilNum, + CycFanCycCoil, EMP1, EMP2, EMP3, 1, 1.0, + VarSpeedCoil(HPWaterHeater(HPNum).DXCoilNum).NormSpedLevel, 1.0, 0.0, 0.0, 1.0); + SimulateFanComponents(HPWaterHeater(HPNum).FanName, true, HPWaterHeater(HPNum).FanNum); + } + + WaterThermalTank(WaterThermalTankNum).MaxCapacity = VSHPWHHeatingCapacity; + WaterThermalTank(WaterThermalTankNum).MinCapacity = VSHPWHHeatingCapacity; + WaterThermalTank(WaterThermalTankNum).Efficiency = VSHPWHHeatingCOP; + } + else + { + bIsVSCoil = false; + // simulate the HPWH coil/fan to find heating capacity + if (HPWaterHeater(HPNum).FanPlacement == BlowThru) { + SimulateFanComponents(HPWaterHeater(HPNum).FanName, true, HPWaterHeater(HPNum).FanNum); + // CALL SimDXCoil(HPWaterHeater(HPNum)%DXCoilName, CompOp, .TRUE.,PartLoadRatio, HPWaterHeater(HPNum)%DXCoilNum,FanOpMode) + SimDXCoil(HPWaterHeater(HPNum).DXCoilName, 1, true, HPWaterHeater(HPNum).DXCoilNum, CycFanCycCoil, 1.0); + SimulateFanComponents(HPWaterHeater(HPNum).FanName, true, HPWaterHeater(HPNum).FanNum); + SimDXCoil(HPWaterHeater(HPNum).DXCoilName, 1, true, HPWaterHeater(HPNum).DXCoilNum, CycFanCycCoil, 1.0); + } + else { + SimDXCoil(HPWaterHeater(HPNum).DXCoilName, 1, true, HPWaterHeater(HPNum).DXCoilNum, CycFanCycCoil, 1.0); + SimulateFanComponents(HPWaterHeater(HPNum).FanName, true, HPWaterHeater(HPNum).FanNum); + SimDXCoil(HPWaterHeater(HPNum).DXCoilName, 1, true, HPWaterHeater(HPNum).DXCoilNum, CycFanCycCoil, 1.0); + SimulateFanComponents(HPWaterHeater(HPNum).FanName, true, HPWaterHeater(HPNum).FanNum); + } + + WaterThermalTank(WaterThermalTankNum).MaxCapacity = HPWHHeatingCapacity; + WaterThermalTank(WaterThermalTankNum).MinCapacity = HPWHHeatingCapacity; + WaterThermalTank(WaterThermalTankNum).Efficiency = HPWHHeatingCOP; } + if ( FirstTimeFlag ) { RatedDXCoilTotalCapacity = DXCoilTotalCapacity; FirstTimeFlag = false; @@ -9338,9 +9944,9 @@ namespace WaterThermalTanks { // Switch the HPWH info with the tank info and call CalcWaterThermalTankMixed to get Standard Rating // (backup element is assumed to be disabled during the rating procedure) WaterThermalTank( WaterThermalTankNum ).SourceMassFlowRate = 0.0; - WaterThermalTank( WaterThermalTankNum ).MaxCapacity = HPWHHeatingCapacity; - WaterThermalTank( WaterThermalTankNum ).MinCapacity = HPWHHeatingCapacity; - WaterThermalTank( WaterThermalTankNum ).Efficiency = HPWHHeatingCOP; //* WaterHeater(WaterHeaterNum)%Efficiency + //WaterThermalTank( WaterThermalTankNum ).MaxCapacity = HPWHHeatingCapacity; + //WaterThermalTank( WaterThermalTankNum ).MinCapacity = HPWHHeatingCapacity; + //WaterThermalTank( WaterThermalTankNum ).Efficiency = HPWHHeatingCOP; //* WaterHeater(WaterHeaterNum)%Efficiency WaterThermalTank( WaterThermalTankNum ).OnCycParaLoad = HPWaterHeater( HPNum ).OnCycParaLoad; WaterThermalTank( WaterThermalTankNum ).OffCycParaLoad = HPWaterHeater( HPNum ).OffCycParaLoad; WaterThermalTank( WaterThermalTankNum ).OffCycParaFracToTank = 0.0; @@ -9414,7 +10020,8 @@ namespace WaterThermalTanks { equipName = HPWaterHeater( WaterThermalTank( WaterThermalTankNum ).HeatPumpNum ).Name; PreDefTableEntry( pdchSWHType, equipName, HPWaterHeater( WaterThermalTank( WaterThermalTankNum ).HeatPumpNum ).Type ); PreDefTableEntry( pdchSWHVol, equipName, WaterThermalTank( WaterThermalTankNum ).Volume ); - PreDefTableEntry( pdchSWHHeatIn, equipName, HPWHHeatingCapacity ); + if (true == bIsVSCoil) PreDefTableEntry(pdchSWHHeatIn, equipName, VSHPWHHeatingCapacity); + else PreDefTableEntry(pdchSWHHeatIn, equipName, HPWHHeatingCapacity); PreDefTableEntry( pdchSWHThEff, equipName, WaterThermalTank( WaterThermalTankNum ).Efficiency ); PreDefTableEntry( pdchSWHRecEff, equipName, RecoveryEfficiency ); PreDefTableEntry( pdchSWHEnFac, equipName, EnergyFactor ); diff --git a/src/EnergyPlus/WaterThermalTanks.hh b/src/EnergyPlus/WaterThermalTanks.hh index bee9e043624..593e1aa1ac1 100644 --- a/src/EnergyPlus/WaterThermalTanks.hh +++ b/src/EnergyPlus/WaterThermalTanks.hh @@ -8,12 +8,14 @@ // EnergyPlus Headers #include #include +#include namespace EnergyPlus { namespace WaterThermalTanks { // Using/Aliasing + using VariableSpeedCoils::MaxSpedLevels; // Data // MODULE PARAMETER DEFINITIONS: @@ -780,6 +782,15 @@ namespace WaterThermalTanks { Real64 HPWaterHeaterSensibleCapacity; // sensible capacity delivered when HPWH is attached to a zone (W) Real64 HPWaterHeaterLatentCapacity; // latent capacity delivered when HPWH is attached to a zone (kg/s) int ControlSensorLocation; // if using stratified tank, indicates control point + //variables for variable-speed HPWH + int NumofSpeed; //number of speeds for VS HPWH + FArray1D< Real64 > HPWHAirVolFlowRate; // air volume flow rate during heating operation + FArray1D< Real64 > HPWHAirMassFlowRate; // air mass flow rate during heating operation + FArray1D< Real64 > HPWHWaterVolFlowRate; // water volume flow rate during heating operation + FArray1D< Real64 > HPWHWaterMassFlowRate; // water mass flow rate during heating operation + FArray1D< Real64 > MSAirSpeedRatio; // air speed ratio in heating mode + FArray1D< Real64 > MSWaterSpeedRatio; // water speed ratio in heating mode + //end of variables for variable-speed HPWH // Default Constructor HeatPumpWaterHeaterData() : @@ -865,7 +876,14 @@ namespace WaterThermalTanks { ShowSetPointWarning( true ), HPWaterHeaterSensibleCapacity( 0.0 ), HPWaterHeaterLatentCapacity( 0.0 ), - ControlSensorLocation( HPWHControlNotSet ) + ControlSensorLocation( HPWHControlNotSet ), + NumofSpeed(0), + HPWHAirVolFlowRate(MaxSpedLevels, 0.0), + HPWHAirMassFlowRate(MaxSpedLevels, 0.0), + HPWHWaterVolFlowRate(MaxSpedLevels, 0.0), + HPWHWaterMassFlowRate(MaxSpedLevels, 0.0), + MSAirSpeedRatio(MaxSpedLevels, 0.0), + MSWaterSpeedRatio(MaxSpedLevels, 0.0) {} // Member Constructor @@ -960,7 +978,14 @@ namespace WaterThermalTanks { bool const ShowSetPointWarning, // Warn when set point is greater than max tank temp limit Real64 const HPWaterHeaterSensibleCapacity, // sensible capacity delivered when HPWH is attached to a zone (W) Real64 const HPWaterHeaterLatentCapacity, // latent capacity delivered when HPWH is attached to a zone (kg/s) - int const ControlSensorLocation // if using stratified tank, indicates control point + int const ControlSensorLocation, // if using stratified tank, indicates control point + int const NumofSpeed, + FArray1< Real64 > const & HPWHAirVolFlowRate, + FArray1< Real64 > const & HPWHAirMassFlowRate, + FArray1< Real64 > const & HPWHWaterVolFlowRate, + FArray1< Real64 > const & HPWHWaterMassFlowRate, + FArray1< Real64 > const & MSAirSpeedRatio, + FArray1< Real64 > const & MSWaterSpeedRatio ) : Name( Name ), Type( Type ), @@ -1052,7 +1077,14 @@ namespace WaterThermalTanks { ShowSetPointWarning( ShowSetPointWarning ), HPWaterHeaterSensibleCapacity( HPWaterHeaterSensibleCapacity ), HPWaterHeaterLatentCapacity( HPWaterHeaterLatentCapacity ), - ControlSensorLocation( ControlSensorLocation ) + ControlSensorLocation( ControlSensorLocation ), + NumofSpeed(NumofSpeed), + HPWHAirVolFlowRate(MaxSpedLevels, HPWHAirVolFlowRate), + HPWHAirMassFlowRate(MaxSpedLevels, HPWHAirMassFlowRate), + HPWHWaterVolFlowRate(MaxSpedLevels, HPWHWaterVolFlowRate), + HPWHWaterMassFlowRate(MaxSpedLevels, HPWHWaterMassFlowRate), + MSAirSpeedRatio(MaxSpedLevels, MSAirSpeedRatio), + MSWaterSpeedRatio(MaxSpedLevels, MSWaterSpeedRatio) {} }; @@ -1511,6 +1543,23 @@ namespace WaterThermalTanks { int const ControlLocationType ); + void + SetVSHPWHFlowRates( + int const WaterThermalTankNum, // Water Heater tank being simulated + int const HPNum, + int const SpeedNum, + Real64 const SpeedRatio, + Real64 const WaterDens, + Real64 & MdotWater, // water flow rate + bool const FirstHVACIteration // TRUE if First iteration of simulation + ); + + Real64 + PLRResidualIterSpeed( + Real64 const SpeedRatio, // speed ratio between two speed levels + Optional< FArray1S< Real64 > const > Par // + ); + // NOTICE // Copyright � 1996-2014 The Board of Trustees of the University of Illinois diff --git a/testfiles/CMakeLists.txt b/testfiles/CMakeLists.txt index 6b0579935f5..d8ad291922b 100644 --- a/testfiles/CMakeLists.txt +++ b/testfiles/CMakeLists.txt @@ -428,8 +428,10 @@ ADD_SIMULATION_TEST(IDF_FILE VAVSingleDuctReheat_DualMax.idf EPW_FILE USA_IL_Chi ADD_SIMULATION_TEST(IDF_FILE VAVSingleDuctReheat_MaxSAT_ReverseActing.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE VAVSingleDuctVarFlowBoiler.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE VSDXCoilSystemAuto.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) +ADD_SIMULATION_TEST(IDF_FILE VSHeatPumpWaterHeater.idf EPW_FILE USA_FL_Miami.Intl.AP.722020_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE VSHeatPumpWaterToAirEquationFit.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE VSHeatPumpWaterToAirWithRHControl.idf EPW_FILE USA_FL_Miami.Intl.AP.722020_TMY3.epw) +ADD_SIMULATION_TEST(IDF_FILE VSWaterHeaterHeatPumpStratifiedTank.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE VariableRefrigerantFlow_5Zone.idf EPW_FILE USA_FL_Miami.Intl.AP.722020_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE VentilatedSlab.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) ADD_SIMULATION_TEST(IDF_FILE VentilatedSlab_SeriesSlabs.idf EPW_FILE USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw) diff --git a/testfiles/VSHeatPumpWaterHeater.idf b/testfiles/VSHeatPumpWaterHeater.idf new file mode 100644 index 00000000000..5ce7f5f6d97 --- /dev/null +++ b/testfiles/VSHeatPumpWaterHeater.idf @@ -0,0 +1,4992 @@ +! VSHeatPumpWaterHeater.idf +! Basic file description: 1 story building divided into 4 exterior and one interior conditioned zones and return plenum. +! +! Highlights: Examples of 5 variable-speed heat pump water heaters. 1 HPWH in Zone 5 using both zone air and outdoor air, +! 1 HPWH in Zone 4 using only zone air, 1 outdoors, 1 located outdoors and connected to a hot +! water plant loop, and 1 HPWH is scheduled with no connection to a zone or plant. +! 1 Water Heater:Mixed example is included for comparison (this water heater is scheduled) +! +! Simulation Location/Run: Miami Intl Ap FL USA WMO=722020, 2 design days, 2 run periods. +! Run Control executes the design days +! +! Location: Miami, FL +! +! Design Days: Miami Intl Ap FL USA Annual Heating 99.6%, MaxDB=8.7°C +! Miami Intl Ap FL USA Annual Cooling (DB=>MWB) .4%, MaxDB=33.2°C MWB=25.3°C +! +! Run Period (Weather File): Winter 1/14, Summer 7/7. +! +! Run Control: Zone and System sizing with weather file run control (no design days ran) +! +! Building: Single floor rectangular building 100 ft x 50 ft. 5 zones - 4 exterior, 1 interior, zone height 8 feet. +! Exterior zone depth is 12 feet. There is a 2 foot high return plenum: the overall building height is +! 10 feet. There are windows on all 4 facades; the south and north facades have glass doors. +! The south facing glass is shaded by overhangs. The walls are woodshingle over plywood, R11 insulation, +! and gypboard. The roof is a gravel built up roof with R-3 mineral board insulation and plywood sheathing. +! The windows are double pane 6mm clear with 6mm air gap. The window to wall ratio is approxomately 0.29. +! The south wall and door have overhangs. +! +! The building is oriented 30 degrees east of north. +! +! Floor Area: 463.6 m2 (5000 ft2) +! Number of Floors: 1 +! +! Zone Description Details: +! +! (0,15.2,0) (30.5,15.2,0) +! _____ ________ ____ +! |\ *** **************** /| +! | \ Zone 3 / | +! | \ (26.8,11.6,0) / | +! * \_____________________________/ * +! * Z |(3.7,11.6,0) | Z * +! * o | | o * +! * n | Zone 5 | n * +! * e | (26.8,3.7,0)| e * +! * |___________________________| * +! * 4 / (3.7,3.7,0) \ 2 * +! | / Zone 1 \ | +! | / \ | +! |/___******************___***________\| +! | Overhang | | +! |_______________________| | window/door = * +! |___| +! +! (0,0,0) (30.5,0,0) +! +! Internal gains description: lighting is 1.5 watts/ft2, office equip is 1.0 watts/ft2. There is 1 occupant +! per 100 ft2 of floor area. The infiltration is constant in winter months. +! +! Interzone Surfaces: 6 interzone surfaces (see diagram) +! Internal Mass: None +! People: 50 +! Lights: 7500 W +! Windows: 4 ea.: 1) Double pane clear, 3mm glass, 13mm air gap +! 2) Double pane clear, 3mm glass, 13mm argon gap +! 3) Double pane clear, 6mm glass, 6mm air gap +! 4) Double pane lowE, 6mm lowE glass outside, 6mm air gap, 6mm clear glass +! +! Doors: 2 ea.: Single pane grey, 3mm glass +! +! Detached Shading: None +! Daylight: None +! Natural Ventilation: None +! Compact Schedules: Yes +! +! HVAC: Standard VAV system with outside air economizer, hot water reheat +! coils, central chilled water cooling coil. Central Plant is single +! heat pump hot water heater, electric compression chiller with water cooled +! condenser, and cooling tower. All equipment is autosized. +! ZoneControl:Humidistat and Set Point Manager:Single Zone Max Hum +! are used in SPACE2-1 to control relative humidity to 50% +! via Controller:Simple with the control variable set to TEMPandHUMRAT. +! Three heat pump water heaters are located indoors, outdoors, and scheduled to +! illustrate stand alone HP water heaters. One HPWH is connected to a hot water plant loop. +! +! Heat Pump:Water Heater: 5 ea. +! Zone 5 - variable-speed HPWH using mixer/splitter nodes to blend outdoor air with zone air +! Zone 4 - variable-speed HPWH without mixer/splitter nodes using only zone air +! Outdoors - variable-speed HPWH located outdoors and not connected to a plant loop +! Scheduled - variable-speed HPWH using scheduled ambient conditions +! Plant - variable-speed HPWH located outdoors and connected to a plant loop which serves zone 1-5 +! reheat coils and the main heating coil in the air loop. +! +! The HPWH in Zone 4 and 5 show the configuration of a HPWH with and without +! mixer/splitter nodes and the associated node connections. Each of these systems +! are listed in a Zone Equipment List with the required highest priority. Each of +! these HPWHs impact the zone air heat balance. +! +! The HPWHs located outdoors and in the plant only require the use of outdoor air +! nodes as the inlet air to the unit. The plant HPWH has connections to the hot +! water plant loop through the water heater tank's USE inlet/outlet nodes. +! +! The scheduled HPWH is an example of a self-standing water heater with all +! performance aspects simulated through scheduling. +! +! Water Heater:Mixed: 1 ea. +! Scheduled - example of a water heater using an electric element to heat the water +! +! Zonal Equipment: AirTerminal:SingleDuct:VAV:Reheat +! Central Air Handling Equipment: Yes +! System Equipment Autosize: Yes +! Purchased Cooling: None +! Purchased Heating: None +! Coils: Coil:Cooling:Water, Coil:Heating:Water +! Pumps: Pump:VariableSpeed +! Boilers: None +! Chillers: Chiller:Electric +! Towers: CoolingTower:SingleSpeed +! +! Results: +! Standard Reports: None +! Timestep or Hourly Variables: Hourly +! Time bins Report: None +! HTML Report: None +! Environmental Emissions: None +! Utility Tariffs: None + + Version,8.2; + + Building, + Building, !- Name + 30., !- North Axis {deg} + City, !- Terrain + 0.04, !- Loads Convergence Tolerance Value + 0.4, !- Temperature Convergence Tolerance Value {deltaC} + FullExterior, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + + Timestep,4; + + SurfaceConvectionAlgorithm:Inside,Simple; + + SurfaceConvectionAlgorithm:Outside,SimpleCombined; + + HeatBalanceAlgorithm,ConductionTransferFunction; + + ConvergenceLimits, + 1, !- Minimum System Timestep {minutes} + 20, !- Maximum HVAC Iterations + 4, !- Minimum Plant Iterations + 10; !- Maximum Plant Iterations + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + relative; !- Coordinate System + + ScheduleTypeLimits, + Any Number; !- Name + + ScheduleTypeLimits, + Fraction, !- Name + 0.0, !- Lower Limit Value + 1.0, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + ScheduleTypeLimits, + Temperature, !- Name + -60, !- Lower Limit Value + 200, !- Upper Limit Value + CONTINUOUS, !- Numeric Type + Temperature; !- Unit Type + + ScheduleTypeLimits, + Control Type, !- Name + 0, !- Lower Limit Value + 4, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + On/Off, !- Name + 0, !- Lower Limit Value + 1, !- Upper Limit Value + DISCRETE; !- Numeric Type + + ScheduleTypeLimits, + FlowRate, !- Name + 0.0, !- Lower Limit Value + 10, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + + RunPeriod, + , !- Name + 1, !- Begin Month + 14, !- Begin Day of Month + 1, !- End Month + 14, !- End Day of Month + Tuesday, !- Day of Week for Start Day + Yes, !- Use Weather File Holidays and Special Days + Yes, !- Use Weather File Daylight Saving Period + No, !- Apply Weekend Holiday Rule + Yes, !- Use Weather File Rain Indicators + Yes; !- Use Weather File Snow Indicators + + RunPeriod, + , !- Name + 7, !- Begin Month + 7, !- Begin Day of Month + 7, !- End Month + 7, !- End Day of Month + Tuesday, !- Day of Week for Start Day + Yes, !- Use Weather File Holidays and Special Days + Yes, !- Use Weather File Daylight Saving Period + No, !- Apply Weekend Holiday Rule + Yes, !- Use Weather File Rain Indicators + Yes; !- Use Weather File Snow Indicators + + SimulationControl, + Yes, !- Do Zone Sizing Calculation + Yes, !- Do System Sizing Calculation + No, !- Do Plant Sizing Calculation + Yes, !- Run Simulation for Sizing Periods + Yes; !- Run Simulation for Weather File Run Periods + + ! Data Source=ASHRAE 2009 Annual Design Conditions + + Site:Location, + Miami Intl Ap FL USA WMO=722020, !- Name + 25.82, !- Latitude {deg} + -80.30, !- Longitude {deg} + -5.00, !- Time Zone {hr} + 11.00; !- Elevation {m} + + ! Miami Intl Ap FL USA Annual Heating Design Conditions Wind Speed=3.8m/s Wind Dir=340 + ! Coldest Month=January + ! Miami Intl Ap FL USA Annual Heating 99.6%, MaxDB=8.7°C + + SizingPeriod:DesignDay, + Miami Intl Ap Ann Htg 99.6% Condns DB, !- Name + 1, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + 8.7, !- Maximum Dry-Bulb Temperature {C} + 0.0, !- Daily Dry-Bulb Temperature Range {deltaC} + , !- Dry-Bulb Temperature Range Modifier Type + , !- Dry-Bulb Temperature Range Modifier Day Schedule Name + Wetbulb, !- Humidity Condition Type + 8.7, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} + , !- Humidity Condition Day Schedule Name + , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir} + , !- Enthalpy at Maximum Dry-Bulb {J/kg} + , !- Daily Wet-Bulb Temperature Range {deltaC} + 101217., !- Barometric Pressure {Pa} + 3.8, !- Wind Speed {m/s} + 340, !- Wind Direction {deg} + No, !- Rain Indicator + No, !- Snow Indicator + No, !- Daylight Saving Time Indicator + ASHRAEClearSky, !- Solar Model Indicator + , !- Beam Solar Day Schedule Name + , !- Diffuse Solar Day Schedule Name + , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless} + , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless} + 0.00; !- Sky Clearness + + ! Miami Intl Ap Annual Cooling Design Conditions Wind Speed=4.5m/s Wind Dir=140 + ! Hottest Month=July + ! Miami Intl Ap FL USA Annual Cooling (DB=>MWB) .4%, MaxDB=33.2°C MWB=25.3°C + + SizingPeriod:DesignDay, + Miami Intl Ap Ann Clg .4% Condns DB=>MWB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 33.2, !- Maximum Dry-Bulb Temperature {C} + 6.7, !- Daily Dry-Bulb Temperature Range {deltaC} + , !- Dry-Bulb Temperature Range Modifier Type + , !- Dry-Bulb Temperature Range Modifier Day Schedule Name + Wetbulb, !- Humidity Condition Type + 25.3, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} + , !- Humidity Condition Day Schedule Name + , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir} + , !- Enthalpy at Maximum Dry-Bulb {J/kg} + , !- Daily Wet-Bulb Temperature Range {deltaC} + 101217., !- Barometric Pressure {Pa} + 4.5, !- Wind Speed {m/s} + 140, !- Wind Direction {deg} + No, !- Rain Indicator + No, !- Snow Indicator + No, !- Daylight Saving Time Indicator + ASHRAEClearSky, !- Solar Model Indicator + , !- Beam Solar Day Schedule Name + , !- Diffuse Solar Day Schedule Name + , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless} + , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless} + 1.00; !- Sky Clearness + + Site:GroundTemperature:BuildingSurface,20.03,20.03,20.13,20.30,20.43,20.52,20.62,20.77,20.78,20.55,20.44,20.20; + + Material, + WD10, !- Name + MediumSmooth, !- Roughness + 0.667, !- Thickness {m} + 0.115, !- Conductivity {W/m-K} + 513, !- Density {kg/m3} + 1381, !- Specific Heat {J/kg-K} + 0.9, !- Thermal Absorptance + 0.78, !- Solar Absorptance + 0.78; !- Visible Absorptance + + Material, + RG01, !- Name + Rough, !- Roughness + 1.2700000E-02, !- Thickness {m} + 1.442000, !- Conductivity {W/m-K} + 881.0000, !- Density {kg/m3} + 1674.000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.6500000, !- Solar Absorptance + 0.6500000; !- Visible Absorptance + + Material, + BR01, !- Name + VeryRough, !- Roughness + 9.4999997E-03, !- Thickness {m} + 0.1620000, !- Conductivity {W/m-K} + 1121.000, !- Density {kg/m3} + 1464.000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7000000, !- Solar Absorptance + 0.7000000; !- Visible Absorptance + + Material, + IN46, !- Name + VeryRough, !- Roughness + 7.6200001E-02, !- Thickness {m} + 2.3000000E-02, !- Conductivity {W/m-K} + 24.00000, !- Density {kg/m3} + 1590.000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.5000000, !- Solar Absorptance + 0.5000000; !- Visible Absorptance + + Material, + WD01, !- Name + MediumSmooth, !- Roughness + 1.9099999E-02, !- Thickness {m} + 0.1150000, !- Conductivity {W/m-K} + 513.0000, !- Density {kg/m3} + 1381.000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7800000, !- Solar Absorptance + 0.7800000; !- Visible Absorptance + + Material, + PW03, !- Name + MediumSmooth, !- Roughness + 1.2700000E-02, !- Thickness {m} + 0.1150000, !- Conductivity {W/m-K} + 545.0000, !- Density {kg/m3} + 1213.000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7800000, !- Solar Absorptance + 0.7800000; !- Visible Absorptance + + Material, + IN02, !- Name + Rough, !- Roughness + 9.0099998E-02, !- Thickness {m} + 4.3000001E-02, !- Conductivity {W/m-K} + 10.00000, !- Density {kg/m3} + 837.0000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7500000, !- Solar Absorptance + 0.7500000; !- Visible Absorptance + + Material, + GP01, !- Name + MediumSmooth, !- Roughness + 1.2700000E-02, !- Thickness {m} + 0.1600000, !- Conductivity {W/m-K} + 801.0000, !- Density {kg/m3} + 837.0000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7500000, !- Solar Absorptance + 0.7500000; !- Visible Absorptance + + Material, + GP02, !- Name + MediumSmooth, !- Roughness + 1.5900001E-02, !- Thickness {m} + 0.1600000, !- Conductivity {W/m-K} + 801.0000, !- Density {kg/m3} + 837.0000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.7500000, !- Solar Absorptance + 0.7500000; !- Visible Absorptance + + Material, + CC03, !- Name + MediumRough, !- Roughness + 0.1016000, !- Thickness {m} + 1.310000, !- Conductivity {W/m-K} + 2243.000, !- Density {kg/m3} + 837.0000, !- Specific Heat {J/kg-K} + 0.9000000, !- Thermal Absorptance + 0.6500000, !- Solar Absorptance + 0.6500000; !- Visible Absorptance + + Material:NoMass, + CP01, !- Name + Rough, !- Roughness + 0.3670000, !- Thermal Resistance {m2-K/W} + 0.9000000, !- Thermal Absorptance + 0.7500000, !- Solar Absorptance + 0.7500000; !- Visible Absorptance + + Material:NoMass, + MAT-SB-U, !- Name + Rough, !- Roughness + 0.117406666, !- Thermal Resistance {m2-K/W} + 0.65, !- Thermal Absorptance + 0.65, !- Solar Absorptance + 0.65; !- Visible Absorptance + + Material:NoMass, + MAT-CLNG-1, !- Name + Rough, !- Roughness + 0.652259290, !- Thermal Resistance {m2-K/W} + 0.65, !- Thermal Absorptance + 0.65, !- Solar Absorptance + 0.65; !- Visible Absorptance + + Material:NoMass, + MAT-FLOOR-1, !- Name + Rough, !- Roughness + 3.522199631, !- Thermal Resistance {m2-K/W} + 0.65, !- Thermal Absorptance + 0.65, !- Solar Absorptance + 0.65; !- Visible Absorptance + + Material:AirGap, + AL21, !- Name + 0.1570000; !- Thermal Resistance {m2-K/W} + + Material:AirGap, + AL23, !- Name + 0.1530000; !- Thermal Resistance {m2-K/W} + + Construction, + ROOF-1, !- Name + RG01, !- Outside Layer + BR01, !- Layer 2 + IN46, !- Layer 3 + WD01; !- Layer 4 + + Construction, + WALL-1, !- Name + WD01, !- Outside Layer + PW03, !- Layer 2 + IN02, !- Layer 3 + GP01; !- Layer 4 + + Construction, + CLNG-1, !- Name + MAT-CLNG-1; !- Outside Layer + + Construction, + SB-U, !- Name + MAT-SB-U; !- Outside Layer + + Construction, + FLOOR-1, !- Name + MAT-FLOOR-1; !- Outside Layer + + Construction, + FLOOR-SLAB-1, !- Name + CC03; !- Outside Layer + + Construction, + INT-WALL-1, !- Name + GP02, !- Outside Layer + AL21, !- Layer 2 + GP02; !- Layer 3 + + WindowMaterial:Gas, + AIR 6MM, !- Name + Air, !- Gas Type + .0063; !- Thickness {m} + + WindowMaterial:Gas, + AIR 13MM, !- Name + Air, !- Gas Type + .0127; !- Thickness {m} + + WindowMaterial:Gas, + ARGON 13MM, !- Name + Argon, !- Gas Type + .0127; !- Thickness {m} + + WindowMaterial:Glazing, + CLEAR 3MM, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + .003, !- Thickness {m} + .837, !- Solar Transmittance at Normal Incidence + .075, !- Front Side Solar Reflectance at Normal Incidence + .075, !- Back Side Solar Reflectance at Normal Incidence + .898, !- Visible Transmittance at Normal Incidence + .081, !- Front Side Visible Reflectance at Normal Incidence + .081, !- Back Side Visible Reflectance at Normal Incidence + .0, !- Infrared Transmittance at Normal Incidence + .84, !- Front Side Infrared Hemispherical Emissivity + .84, !- Back Side Infrared Hemispherical Emissivity + .9; !- Conductivity {W/m-K} + + WindowMaterial:Glazing, + GREY 3MM, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + .003, !- Thickness {m} + .626, !- Solar Transmittance at Normal Incidence + .061, !- Front Side Solar Reflectance at Normal Incidence + .061, !- Back Side Solar Reflectance at Normal Incidence + .611, !- Visible Transmittance at Normal Incidence + .061, !- Front Side Visible Reflectance at Normal Incidence + .061, !- Back Side Visible Reflectance at Normal Incidence + .0, !- Infrared Transmittance at Normal Incidence + .84, !- Front Side Infrared Hemispherical Emissivity + .84, !- Back Side Infrared Hemispherical Emissivity + .9; !- Conductivity {W/m-K} + + WindowMaterial:Glazing, + CLEAR 6MM, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + .006, !- Thickness {m} + .775, !- Solar Transmittance at Normal Incidence + .071, !- Front Side Solar Reflectance at Normal Incidence + .071, !- Back Side Solar Reflectance at Normal Incidence + .881, !- Visible Transmittance at Normal Incidence + .080, !- Front Side Visible Reflectance at Normal Incidence + .080, !- Back Side Visible Reflectance at Normal Incidence + .0, !- Infrared Transmittance at Normal Incidence + .84, !- Front Side Infrared Hemispherical Emissivity + .84, !- Back Side Infrared Hemispherical Emissivity + .9; !- Conductivity {W/m-K} + + WindowMaterial:Glazing, + LoE CLEAR 6MM, !- Name + SpectralAverage, !- Optical Data Type + , !- Window Glass Spectral Data Set Name + .006, !- Thickness {m} + .600, !- Solar Transmittance at Normal Incidence + .170, !- Front Side Solar Reflectance at Normal Incidence + .220, !- Back Side Solar Reflectance at Normal Incidence + .840, !- Visible Transmittance at Normal Incidence + .055, !- Front Side Visible Reflectance at Normal Incidence + .078, !- Back Side Visible Reflectance at Normal Incidence + .0, !- Infrared Transmittance at Normal Incidence + .84, !- Front Side Infrared Hemispherical Emissivity + .10, !- Back Side Infrared Hemispherical Emissivity + .9; !- Conductivity {W/m-K} + + Construction, + Dbl Clr 3mm/13mm Air, !- Name + CLEAR 3MM, !- Outside Layer + AIR 13MM, !- Layer 2 + CLEAR 3MM; !- Layer 3 + + Construction, + Dbl Clr 3mm/13mm Arg, !- Name + CLEAR 3MM, !- Outside Layer + ARGON 13MM, !- Layer 2 + CLEAR 3MM; !- Layer 3 + + Construction, + Sgl Grey 3mm, !- Name + GREY 3MM; !- Outside Layer + + Construction, + Dbl Clr 6mm/6mm Air, !- Name + CLEAR 6MM, !- Outside Layer + AIR 6MM, !- Layer 2 + CLEAR 6MM; !- Layer 3 + + Construction, + Dbl LoE (e2=.1) Clr 6mm/6mm Air, !- Name + LoE CLEAR 6MM, !- Outside Layer + AIR 6MM, !- Layer 2 + CLEAR 6MM; !- Layer 3 + + Schedule:Compact, + OCCUPY-1, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay WinterDesignDay, !- Field 2 + Until: 9:00,0.0, !- Field 3 + Until: 12:00,1.0, !- Field 5 + Until: 13:00,0.8, !- Field 7 + Until: 14:00,0.4, !- Field 9 + Until: 15:00,0.8, !- Field 11 + Until: 17:00,1.0, !- Field 13 + Until: 24:00,0.0, !- Field 15 + For: AllOtherDays, !- Field 17 + Until: 24:00,0.0; !- Field 18 + + Schedule:Compact, + LIGHTS-1, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay WinterDesignDay, !- Field 2 + Until: 9:00,0.05, !- Field 3 + Until: 10:00,0.9, !- Field 5 + Until: 11:00,0.95, !- Field 7 + Until: 12:00,1.0, !- Field 9 + Until: 13:00,0.95, !- Field 11 + Until: 14:00,0.8, !- Field 13 + Until: 15:00,0.9, !- Field 15 + Until: 17:00,1.0, !- Field 17 + Until: 24:00,0.05, !- Field 19 + For: AllOtherDays, !- Field 21 + Until: 24:00,0.05; !- Field 22 + + Schedule:Compact, + EQUIP-1, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay WinterDesignDay, !- Field 2 + Until: 9:00,0.02, !- Field 3 + Until: 10:00,0.4, !- Field 5 + Until: 15:00,0.9, !- Field 7 + Until: 16:00,0.8, !- Field 9 + Until: 17:00,0.7, !- Field 11 + Until: 24:00,0.02, !- Field 13 + For: CustomDay1 CustomDay2, !- Field 15 + Until: 9:00,0.02, !- Field 16 + Until: 10:00,0.4, !- Field 18 + Until: 15:00,0.9, !- Field 20 + Until: 16:00,0.8, !- Field 22 + Until: 17:00,0.7, !- Field 24 + Until: 24:00,0.02, !- Field 26 + For: AllOtherDays, !- Field 28 + Until: 24:00,0.2; !- Field 29 + + Schedule:Compact, + INFIL-SCH, !- Name + Fraction, !- Schedule Type Limits Name + Through: 3/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,1.0, !- Field 3 + Through: 10/31, !- Field 5 + For: Alldays, !- Field 6 + Until: 24:00,0.0, !- Field 7 + Through: 12/31, !- Field 9 + For: Alldays, !- Field 10 + Until: 24:00,1.0; !- Field 11 + + Schedule:Compact, + ActSchd, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,117.239997864; !- Field 3 + + Schedule:Compact, + ShadeTransSch, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,0.0; !- Field 3 + + Zone, + PLENUM-1, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 0.609600067, !- Ceiling Height {m} + 283.2; !- Volume {m3} + + BuildingSurface:Detailed, + WALL-1PF, !- Name + WALL, !- Surface Type + WALL-1, !- Construction Name + PLENUM-1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.50000, !- View Factor to Ground + 4, !- Number of Vertices + 0.0,0.0,3.0, !- X,Y,Z ==> Vertex 1 {m} + 0.0,0.0,2.4, !- X,Y,Z ==> Vertex 2 {m} + 30.5,0.0,2.4, !- X,Y,Z ==> Vertex 3 {m} + 30.5,0.0,3.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + WALL-1PR, !- Name + WALL, !- Surface Type + WALL-1, !- Construction Name + PLENUM-1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.50000, !- View Factor to Ground + 4, !- Number of Vertices + 30.5,0.0,3.0, !- X,Y,Z ==> Vertex 1 {m} + 30.5,0.0,2.4, !- X,Y,Z ==> Vertex 2 {m} + 30.5,15.2,2.4, !- X,Y,Z ==> Vertex 3 {m} + 30.5,15.2,3.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + WALL-1PB, !- Name + WALL, !- Surface Type + WALL-1, !- Construction Name + PLENUM-1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.50000, !- View Factor to Ground + 4, !- Number of Vertices + 30.5,15.2,3.0, !- X,Y,Z ==> Vertex 1 {m} + 30.5,15.2,2.4, !- X,Y,Z ==> Vertex 2 {m} + 0.0,15.2,2.4, !- X,Y,Z ==> Vertex 3 {m} + 0.0,15.2,3.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + WALL-1PL, !- Name + WALL, !- Surface Type + WALL-1, !- Construction Name + PLENUM-1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.50000, !- View Factor to Ground + 4, !- Number of Vertices + 0.0,15.2,3.0, !- X,Y,Z ==> Vertex 1 {m} + 0.0,15.2,2.4, !- X,Y,Z ==> Vertex 2 {m} + 0.0,0.0,2.4, !- X,Y,Z ==> Vertex 3 {m} + 0.0,0.0,3.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + TOP-1, !- Name + ROOF, !- Surface Type + ROOF-1, !- Construction Name + PLENUM-1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.00000, !- View Factor to Ground + 4, !- Number of Vertices + 0.0,15.2,3.0, !- X,Y,Z ==> Vertex 1 {m} + 0.0,0.0,3.0, !- X,Y,Z ==> Vertex 2 {m} + 30.5,0.0,3.0, !- X,Y,Z ==> Vertex 3 {m} + 30.5,15.2,3.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + C1-1P, !- Name + FLOOR, !- Surface Type + CLNG-1, !- Construction Name + PLENUM-1, !- Zone Name + Surface, !- Outside Boundary Condition + C1-1, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 30.5,0.0,2.4, !- X,Y,Z ==> Vertex 2 {m} + 0.0,0.0,2.4, !- X,Y,Z ==> Vertex 3 {m} + 3.7,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + C2-1P, !- Name + FLOOR, !- Surface Type + CLNG-1, !- Construction Name + PLENUM-1, !- Zone Name + Surface, !- Outside Boundary Condition + C2-1, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 30.5,15.2,2.4, !- X,Y,Z ==> Vertex 2 {m} + 30.5,0.0,2.4, !- X,Y,Z ==> Vertex 3 {m} + 26.8,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + C3-1P, !- Name + FLOOR, !- Surface Type + CLNG-1, !- Construction Name + PLENUM-1, !- Zone Name + Surface, !- Outside Boundary Condition + C3-1, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 3.7,11.6,2.4, !- X,Y,Z ==> Vertex 2 {m} + 0.0,15.2,2.4, !- X,Y,Z ==> Vertex 3 {m} + 30.5,15.2,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + C4-1P, !- Name + FLOOR, !- Surface Type + CLNG-1, !- Construction Name + PLENUM-1, !- Zone Name + Surface, !- Outside Boundary Condition + C4-1, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 0.0,0.0,2.4, !- X,Y,Z ==> Vertex 2 {m} + 0.0,15.2,2.4, !- X,Y,Z ==> Vertex 3 {m} + 3.7,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + C5-1P, !- Name + FLOOR, !- Surface Type + CLNG-1, !- Construction Name + PLENUM-1, !- Zone Name + Surface, !- Outside Boundary Condition + C5-1, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 26.8,3.7,2.4, !- X,Y,Z ==> Vertex 2 {m} + 3.7,3.7,2.4, !- X,Y,Z ==> Vertex 3 {m} + 3.7,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + Zone, + SPACE1-1, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.438400269, !- Ceiling Height {m} + 239.247360229; !- Volume {m3} + + ZoneInfiltration:DesignFlowRate, + SPACE1-1 Infiltration, !- Name + SPACE1-1, !- Zone or ZoneList Name + INFIL-SCH, !- Schedule Name + flow/zone, !- Design Flow Rate Calculation Method + 0.0167, !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + , !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 0, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0.2237, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient + + People, + SPACE1-1 People, !- Name + SPACE1-1, !- Zone or ZoneList Name + OCCUPY-1, !- Number of People Schedule Name + people, !- Number of People Calculation Method + 11, !- Number of People + , !- People per Zone Floor Area {person/m2} + , !- Zone Floor Area per Person {m2/person} + 0.3, !- Fraction Radiant + , !- Sensible Heat Fraction + ActSchd; !- Activity Level Schedule Name + + Lights, + SPACE1-1 Lights, !- Name + SPACE1-1, !- Zone or ZoneList Name + LIGHTS-1, !- Schedule Name + LightingLevel, !- Design Level Calculation Method + 1584, !- Lighting Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.2, !- Return Air Fraction + 0.59, !- Fraction Radiant + 0.2, !- Fraction Visible + 0, !- Fraction Replaceable + GeneralLights; !- End-Use Subcategory + + ElectricEquipment, + SPACE1-1 Elec Equipment, !- Name + SPACE1-1, !- Zone or ZoneList Name + EQUIP-1, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 1056, !- Design Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0, !- Fraction Latent + 0.3, !- Fraction Radiant + 0; !- Fraction Lost + + BuildingSurface:Detailed, + FRONT-1, !- Name + WALL, !- Surface Type + WALL-1, !- Construction Name + SPACE1-1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.50000, !- View Factor to Ground + 4, !- Number of Vertices + 0.0,0.0,2.4, !- X,Y,Z ==> Vertex 1 {m} + 0.0,0.0,0.0, !- X,Y,Z ==> Vertex 2 {m} + 30.5,0.0,0.0, !- X,Y,Z ==> Vertex 3 {m} + 30.5,0.0,2.4; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + WF-1, !- Name + WINDOW, !- Surface Type + Dbl Clr 3mm/13mm Air, !- Construction Name + FRONT-1, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.50000, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 3.0,0.0,2.1, !- X,Y,Z ==> Vertex 1 {m} + 3.0,0.0,0.9, !- X,Y,Z ==> Vertex 2 {m} + 16.8,0.0,0.9, !- X,Y,Z ==> Vertex 3 {m} + 16.8,0.0,2.1; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + DF-1, !- Name + GLASSDOOR, !- Surface Type + Sgl Grey 3mm, !- Construction Name + FRONT-1, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.50000, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 21.3,0.0,2.1, !- X,Y,Z ==> Vertex 1 {m} + 21.3,0.0,0.0, !- X,Y,Z ==> Vertex 2 {m} + 23.8,0.0,0.0, !- X,Y,Z ==> Vertex 3 {m} + 23.8,0.0,2.1; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + Main South Overhang, !- Name + FRONT-1, !- Base Surface Name + ShadeTransSch, !- Transmittance Schedule Name + 4, !- Number of Vertices + 0.0,-1.3,2.2, !- X,Y,Z ==> Vertex 1 {m} + 0.0,0.0,2.2, !- X,Y,Z ==> Vertex 2 {m} + 19.8,0.0,2.2, !- X,Y,Z ==> Vertex 3 {m} + 19.8,-1.3,2.2; !- X,Y,Z ==> Vertex 4 {m} + + Shading:Zone:Detailed, + South Door Overhang, !- Name + FRONT-1, !- Base Surface Name + ShadeTransSch, !- Transmittance Schedule Name + 4, !- Number of Vertices + 21.0,-2.0,2.6, !- X,Y,Z ==> Vertex 1 {m} + 21.0,0.0,2.6, !- X,Y,Z ==> Vertex 2 {m} + 24.1,0.0,2.6, !- X,Y,Z ==> Vertex 3 {m} + 24.1,-2.0,2.6; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + C1-1, !- Name + CEILING, !- Surface Type + CLNG-1, !- Construction Name + SPACE1-1, !- Zone Name + Surface, !- Outside Boundary Condition + C1-1P, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 0.0,0.0,2.4, !- X,Y,Z ==> Vertex 2 {m} + 30.5,0.0,2.4, !- X,Y,Z ==> Vertex 3 {m} + 26.8,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + F1-1, !- Name + FLOOR, !- Surface Type + FLOOR-SLAB-1, !- Construction Name + SPACE1-1, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,3.7,0.0, !- X,Y,Z ==> Vertex 1 {m} + 30.5,0.0,0.0, !- X,Y,Z ==> Vertex 2 {m} + 0.0,0.0,0.0, !- X,Y,Z ==> Vertex 3 {m} + 3.7,3.7,0.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB12, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE1-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB21, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 30.5,0.0,2.4, !- X,Y,Z ==> Vertex 1 {m} + 30.5,0.0,0.0, !- X,Y,Z ==> Vertex 2 {m} + 26.8,3.7,0.0, !- X,Y,Z ==> Vertex 3 {m} + 26.8,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB14, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE1-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB41, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 3.7,3.7,0.0, !- X,Y,Z ==> Vertex 2 {m} + 0.0,0.0,0.0, !- X,Y,Z ==> Vertex 3 {m} + 0.0,0.0,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB15, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE1-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB51, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 26.8,3.7,0.0, !- X,Y,Z ==> Vertex 2 {m} + 3.7,3.7,0.0, !- X,Y,Z ==> Vertex 3 {m} + 3.7,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + Zone, + SPACE2-1, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.438400269, !- Ceiling Height {m} + 103.311355591; !- Volume {m3} + + ZoneInfiltration:DesignFlowRate, + SPACE2-1 Infiltration, !- Name + SPACE2-1, !- Zone or ZoneList Name + INFIL-SCH, !- Schedule Name + flow/zone, !- Design Flow Rate Calculation Method + .00717, !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + , !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 0, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0.2237, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient + + People, + SPACE2-1 People, !- Name + SPACE2-1, !- Zone or ZoneList Name + OCCUPY-1, !- Number of People Schedule Name + people, !- Number of People Calculation Method + 5, !- Number of People + , !- People per Zone Floor Area {person/m2} + , !- Zone Floor Area per Person {m2/person} + 0.3, !- Fraction Radiant + , !- Sensible Heat Fraction + ActSchd; !- Activity Level Schedule Name + + Lights, + SPACE2-1 Lights, !- Name + SPACE2-1, !- Zone or ZoneList Name + LIGHTS-1, !- Schedule Name + LightingLevel, !- Design Level Calculation Method + 684, !- Lighting Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.2, !- Return Air Fraction + 0.59, !- Fraction Radiant + 0.2, !- Fraction Visible + 0, !- Fraction Replaceable + GeneralLights; !- End-Use Subcategory + + ElectricEquipment, + SPACE2-1 Elec Equipment, !- Name + SPACE2-1, !- Zone or ZoneList Name + EQUIP-1, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 456, !- Design Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0, !- Fraction Latent + 0.3, !- Fraction Radiant + 0; !- Fraction Lost + + BuildingSurface:Detailed, + RIGHT-1, !- Name + WALL, !- Surface Type + WALL-1, !- Construction Name + SPACE2-1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.50000, !- View Factor to Ground + 4, !- Number of Vertices + 30.5,0.0,2.4, !- X,Y,Z ==> Vertex 1 {m} + 30.5,0.0,0.0, !- X,Y,Z ==> Vertex 2 {m} + 30.5,15.2,0.0, !- X,Y,Z ==> Vertex 3 {m} + 30.5,15.2,2.4; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + WR-1, !- Name + WINDOW, !- Surface Type + Dbl Clr 3mm/13mm Air, !- Construction Name + RIGHT-1, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.50000, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 30.5,3.8,2.1, !- X,Y,Z ==> Vertex 1 {m} + 30.5,3.8,0.9, !- X,Y,Z ==> Vertex 2 {m} + 30.5,11.4,0.9, !- X,Y,Z ==> Vertex 3 {m} + 30.5,11.4,2.1; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + C2-1, !- Name + CEILING, !- Surface Type + CLNG-1, !- Construction Name + SPACE2-1, !- Zone Name + Surface, !- Outside Boundary Condition + C2-1P, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 30.5,0.0,2.4, !- X,Y,Z ==> Vertex 2 {m} + 30.5,15.2,2.4, !- X,Y,Z ==> Vertex 3 {m} + 26.8,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + F2-1, !- Name + FLOOR, !- Surface Type + FLOOR-SLAB-1, !- Construction Name + SPACE2-1, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,11.6,0.0, !- X,Y,Z ==> Vertex 1 {m} + 30.5,15.2,0.0, !- X,Y,Z ==> Vertex 2 {m} + 30.5,0.0,0.0, !- X,Y,Z ==> Vertex 3 {m} + 26.8,3.7,0.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB21, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE2-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB12, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 26.8,3.7,0.0, !- X,Y,Z ==> Vertex 2 {m} + 30.5,0.0,0.0, !- X,Y,Z ==> Vertex 3 {m} + 30.5,0.0,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB23, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE2-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB32, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 30.5,15.2,2.4, !- X,Y,Z ==> Vertex 1 {m} + 30.5,15.2,0.0, !- X,Y,Z ==> Vertex 2 {m} + 26.8,11.6,0.0, !- X,Y,Z ==> Vertex 3 {m} + 26.8,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB25, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE2-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB52, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 26.8,11.6,0.0, !- X,Y,Z ==> Vertex 2 {m} + 26.8,3.7,0.0, !- X,Y,Z ==> Vertex 3 {m} + 26.8,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + Zone, + SPACE3-1, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.438400269, !- Ceiling Height {m} + 239.247360229; !- Volume {m3} + + ZoneInfiltration:DesignFlowRate, + SPACE3-1 Infiltration, !- Name + SPACE3-1, !- Zone or ZoneList Name + INFIL-SCH, !- Schedule Name + flow/zone, !- Design Flow Rate Calculation Method + 0.0167, !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + , !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 0, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0.2237, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient + + People, + SPACE3-1 People, !- Name + SPACE3-1, !- Zone or ZoneList Name + OCCUPY-1, !- Number of People Schedule Name + people, !- Number of People Calculation Method + 11, !- Number of People + , !- People per Zone Floor Area {person/m2} + , !- Zone Floor Area per Person {m2/person} + 0.3, !- Fraction Radiant + , !- Sensible Heat Fraction + ActSchd; !- Activity Level Schedule Name + + Lights, + SPACE3-1 Lights, !- Name + SPACE3-1, !- Zone or ZoneList Name + LIGHTS-1, !- Schedule Name + LightingLevel, !- Design Level Calculation Method + 1584, !- Lighting Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.2, !- Return Air Fraction + 0.59, !- Fraction Radiant + 0.2, !- Fraction Visible + 0, !- Fraction Replaceable + GeneralLights; !- End-Use Subcategory + + ElectricEquipment, + SPACE3-1 Elec Equipment, !- Name + SPACE3-1, !- Zone or ZoneList Name + EQUIP-1, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 1056, !- Design Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0, !- Fraction Latent + 0.3, !- Fraction Radiant + 0; !- Fraction Lost + + BuildingSurface:Detailed, + BACK-1, !- Name + WALL, !- Surface Type + WALL-1, !- Construction Name + SPACE3-1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.50000, !- View Factor to Ground + 4, !- Number of Vertices + 30.5,15.2,2.4, !- X,Y,Z ==> Vertex 1 {m} + 30.5,15.2,0.0, !- X,Y,Z ==> Vertex 2 {m} + 0.0,15.2,0.0, !- X,Y,Z ==> Vertex 3 {m} + 0.0,15.2,2.4; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + WB-1, !- Name + WINDOW, !- Surface Type + Dbl Clr 3mm/13mm Air, !- Construction Name + BACK-1, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.50000, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 27.4,15.2,2.1, !- X,Y,Z ==> Vertex 1 {m} + 27.4,15.2,0.9, !- X,Y,Z ==> Vertex 2 {m} + 13.7,15.2,0.9, !- X,Y,Z ==> Vertex 3 {m} + 13.7,15.2,2.1; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + DB-1, !- Name + GLASSDOOR, !- Surface Type + Sgl Grey 3mm, !- Construction Name + BACK-1, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.50000, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 9.1,15.2,2.1, !- X,Y,Z ==> Vertex 1 {m} + 9.1,15.2,0.0, !- X,Y,Z ==> Vertex 2 {m} + 7.0,15.2,0.0, !- X,Y,Z ==> Vertex 3 {m} + 7.0,15.2,2.1; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + C3-1, !- Name + CEILING, !- Surface Type + CLNG-1, !- Construction Name + SPACE3-1, !- Zone Name + Surface, !- Outside Boundary Condition + C3-1P, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 30.5,15.2,2.4, !- X,Y,Z ==> Vertex 1 {m} + 0.0,15.2,2.4, !- X,Y,Z ==> Vertex 2 {m} + 3.7,11.6,2.4, !- X,Y,Z ==> Vertex 3 {m} + 26.8,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + F3-1, !- Name + FLOOR, !- Surface Type + FLOOR-SLAB-1, !- Construction Name + SPACE3-1, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,11.6,0.0, !- X,Y,Z ==> Vertex 1 {m} + 3.7,11.6,0.0, !- X,Y,Z ==> Vertex 2 {m} + 0.0,15.2,0.0, !- X,Y,Z ==> Vertex 3 {m} + 30.5,15.2,0.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB32, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE3-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB23, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 26.8,11.6,0.0, !- X,Y,Z ==> Vertex 2 {m} + 30.5,15.2,0.0, !- X,Y,Z ==> Vertex 3 {m} + 30.5,15.2,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB34, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE3-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB43, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 0.0,15.2,2.4, !- X,Y,Z ==> Vertex 1 {m} + 0.0,15.2,0.0, !- X,Y,Z ==> Vertex 2 {m} + 3.7,11.6,0.0, !- X,Y,Z ==> Vertex 3 {m} + 3.7,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB35, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE3-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB53, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 3.7,11.6,0.0, !- X,Y,Z ==> Vertex 2 {m} + 26.8,11.6,0.0, !- X,Y,Z ==> Vertex 3 {m} + 26.8,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + Zone, + SPACE4-1, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.438400269, !- Ceiling Height {m} + 103.311355591; !- Volume {m3} + + ZoneInfiltration:DesignFlowRate, + SPACE4-1 Infiltration, !- Name + SPACE4-1, !- Zone or ZoneList Name + INFIL-SCH, !- Schedule Name + flow/zone, !- Design Flow Rate Calculation Method + .00717, !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + , !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 0, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0.2237, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient + + People, + SPACE4-1 People, !- Name + SPACE4-1, !- Zone or ZoneList Name + OCCUPY-1, !- Number of People Schedule Name + people, !- Number of People Calculation Method + 5, !- Number of People + , !- People per Zone Floor Area {person/m2} + , !- Zone Floor Area per Person {m2/person} + 0.3, !- Fraction Radiant + , !- Sensible Heat Fraction + ActSchd; !- Activity Level Schedule Name + + Lights, + SPACE4-1 Lights, !- Name + SPACE4-1, !- Zone or ZoneList Name + LIGHTS-1, !- Schedule Name + LightingLevel, !- Design Level Calculation Method + 684, !- Lighting Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.2, !- Return Air Fraction + 0.59, !- Fraction Radiant + 0.2, !- Fraction Visible + 0, !- Fraction Replaceable + GeneralLights; !- End-Use Subcategory + + ElectricEquipment, + SPACE4-1 Elec Equipment, !- Name + SPACE4-1, !- Zone or ZoneList Name + EQUIP-1, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 456, !- Design Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0, !- Fraction Latent + 0.3, !- Fraction Radiant + 0; !- Fraction Lost + + BuildingSurface:Detailed, + LEFT-1, !- Name + WALL, !- Surface Type + WALL-1, !- Construction Name + SPACE4-1, !- Zone Name + Outdoors, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + SunExposed, !- Sun Exposure + WindExposed, !- Wind Exposure + 0.50000, !- View Factor to Ground + 4, !- Number of Vertices + 0.0,15.2,2.4, !- X,Y,Z ==> Vertex 1 {m} + 0.0,15.2,0.0, !- X,Y,Z ==> Vertex 2 {m} + 0.0,0.0,0.0, !- X,Y,Z ==> Vertex 3 {m} + 0.0,0.0,2.4; !- X,Y,Z ==> Vertex 4 {m} + + FenestrationSurface:Detailed, + WL-1, !- Name + WINDOW, !- Surface Type + Dbl Clr 3mm/13mm Air, !- Construction Name + LEFT-1, !- Building Surface Name + , !- Outside Boundary Condition Object + 0.50000, !- View Factor to Ground + , !- Shading Control Name + , !- Frame and Divider Name + 1, !- Multiplier + 4, !- Number of Vertices + 0.0,11.4,2.1, !- X,Y,Z ==> Vertex 1 {m} + 0.0,11.4,0.9, !- X,Y,Z ==> Vertex 2 {m} + 0.0,3.8,0.9, !- X,Y,Z ==> Vertex 3 {m} + 0.0,3.8,2.1; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + C4-1, !- Name + CEILING, !- Surface Type + CLNG-1, !- Construction Name + SPACE4-1, !- Zone Name + Surface, !- Outside Boundary Condition + C4-1P, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 0.0,15.2,2.4, !- X,Y,Z ==> Vertex 2 {m} + 0.0,0.0,2.4, !- X,Y,Z ==> Vertex 3 {m} + 3.7,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + F4-1, !- Name + FLOOR, !- Surface Type + FLOOR-SLAB-1, !- Construction Name + SPACE4-1, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,3.7,0.0, !- X,Y,Z ==> Vertex 1 {m} + 0.0,0.0,0.0, !- X,Y,Z ==> Vertex 2 {m} + 0.0,15.2,0.0, !- X,Y,Z ==> Vertex 3 {m} + 3.7,11.6,0.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB41, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE4-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB14, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 0.0,0.0,2.4, !- X,Y,Z ==> Vertex 1 {m} + 0.0,0.0,0.0, !- X,Y,Z ==> Vertex 2 {m} + 3.7,3.7,0.0, !- X,Y,Z ==> Vertex 3 {m} + 3.7,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB43, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE4-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB34, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 3.7,11.6,0.0, !- X,Y,Z ==> Vertex 2 {m} + 0.0,15.2,0.0, !- X,Y,Z ==> Vertex 3 {m} + 0.0,15.2,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB45, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE4-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB54, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 3.7,3.7,0.0, !- X,Y,Z ==> Vertex 2 {m} + 3.7,11.6,0.0, !- X,Y,Z ==> Vertex 3 {m} + 3.7,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + Zone, + SPACE5-1, !- Name + 0, !- Direction of Relative North {deg} + 0, !- X Origin {m} + 0, !- Y Origin {m} + 0, !- Z Origin {m} + 1, !- Type + 1, !- Multiplier + 2.438400269, !- Ceiling Height {m} + 447.682556152; !- Volume {m3} + + ZoneInfiltration:DesignFlowRate, + SPACE5-1 Infiltration, !- Name + SPACE5-1, !- Zone or ZoneList Name + INFIL-SCH, !- Schedule Name + flow/zone, !- Design Flow Rate Calculation Method + .031089, !- Design Flow Rate {m3/s} + , !- Flow per Zone Floor Area {m3/s-m2} + , !- Flow per Exterior Surface Area {m3/s-m2} + , !- Air Changes per Hour {1/hr} + 0, !- Constant Term Coefficient + 0, !- Temperature Term Coefficient + 0.2237, !- Velocity Term Coefficient + 0; !- Velocity Squared Term Coefficient + + People, + SPACE5-1 People, !- Name + SPACE5-1, !- Zone or ZoneList Name + OCCUPY-1, !- Number of People Schedule Name + people, !- Number of People Calculation Method + 20, !- Number of People + , !- People per Zone Floor Area {person/m2} + , !- Zone Floor Area per Person {m2/person} + 0.3, !- Fraction Radiant + , !- Sensible Heat Fraction + ActSchd; !- Activity Level Schedule Name + + Lights, + SPACE5-1 Lights, !- Name + SPACE5-1, !- Zone or ZoneList Name + LIGHTS-1, !- Schedule Name + LightingLevel, !- Design Level Calculation Method + 2964, !- Lighting Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0.2, !- Return Air Fraction + 0.59, !- Fraction Radiant + 0.2, !- Fraction Visible + 0, !- Fraction Replaceable + GeneralLights; !- End-Use Subcategory + + ElectricEquipment, + SPACE5-1 Elec Equipment, !- Name + SPACE5-1, !- Zone or ZoneList Name + EQUIP-1, !- Schedule Name + EquipmentLevel, !- Design Level Calculation Method + 1976, !- Design Level {W} + , !- Watts per Zone Floor Area {W/m2} + , !- Watts per Person {W/person} + 0, !- Fraction Latent + 0.3, !- Fraction Radiant + 0; !- Fraction Lost + + BuildingSurface:Detailed, + C5-1, !- Name + CEILING, !- Surface Type + CLNG-1, !- Construction Name + SPACE5-1, !- Zone Name + Surface, !- Outside Boundary Condition + C5-1P, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 3.7,3.7,2.4, !- X,Y,Z ==> Vertex 2 {m} + 26.8,3.7,2.4, !- X,Y,Z ==> Vertex 3 {m} + 26.8,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + F5-1, !- Name + FLOOR, !- Surface Type + FLOOR-SLAB-1, !- Construction Name + SPACE5-1, !- Zone Name + Ground, !- Outside Boundary Condition + , !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,11.6,0.0, !- X,Y,Z ==> Vertex 1 {m} + 26.8,3.7,0.0, !- X,Y,Z ==> Vertex 2 {m} + 3.7,3.7,0.0, !- X,Y,Z ==> Vertex 3 {m} + 3.7,11.6,0.0; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB51, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE5-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB15, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 3.7,3.7,0.0, !- X,Y,Z ==> Vertex 2 {m} + 26.8,3.7,0.0, !- X,Y,Z ==> Vertex 3 {m} + 26.8,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB52, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE5-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB25, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,3.7,2.4, !- X,Y,Z ==> Vertex 1 {m} + 26.8,3.7,0.0, !- X,Y,Z ==> Vertex 2 {m} + 26.8,11.6,0.0, !- X,Y,Z ==> Vertex 3 {m} + 26.8,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB53, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE5-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB35, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 26.8,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 26.8,11.6,0.0, !- X,Y,Z ==> Vertex 2 {m} + 3.7,11.6,0.0, !- X,Y,Z ==> Vertex 3 {m} + 3.7,11.6,2.4; !- X,Y,Z ==> Vertex 4 {m} + + BuildingSurface:Detailed, + SB54, !- Name + WALL, !- Surface Type + INT-WALL-1, !- Construction Name + SPACE5-1, !- Zone Name + Surface, !- Outside Boundary Condition + SB45, !- Outside Boundary Condition Object + NoSun, !- Sun Exposure + NoWind, !- Wind Exposure + 0.0, !- View Factor to Ground + 4, !- Number of Vertices + 3.7,11.6,2.4, !- X,Y,Z ==> Vertex 1 {m} + 3.7,11.6,0.0, !- X,Y,Z ==> Vertex 2 {m} + 3.7,3.7,0.0, !- X,Y,Z ==> Vertex 3 {m} + 3.7,3.7,2.4; !- X,Y,Z ==> Vertex 4 {m} + + Sizing:Parameters, + 1.3, !- Heating Sizing Factor + 1.3, !- Cooling Sizing Factor + ; !- Timesteps in Averaging Window + + Sizing:Zone, + SPACE1-1, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 14., !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50., !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.009, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.004, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA SPACE1-1, !- Design Specification Outdoor Air Object Name + 0.0, !- Zone Heating Sizing Factor + 0.0, !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + 0, !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + 0, !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA SPACE1-1, !- Name + flow/person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} + 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} + 0.0; !- Outdoor Air Flow per Zone {m3/s} + + Sizing:Zone, + SPACE2-1, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 14., !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50., !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.009, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.004, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA SPACE2-1, !- Design Specification Outdoor Air Object Name + 0.0, !- Zone Heating Sizing Factor + 0.0, !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + 0, !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + 0, !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA SPACE2-1, !- Name + flow/person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} + 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} + 0.0; !- Outdoor Air Flow per Zone {m3/s} + + Sizing:Zone, + SPACE3-1, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 14., !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50., !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.009, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.004, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA SPACE3-1, !- Design Specification Outdoor Air Object Name + 0.0, !- Zone Heating Sizing Factor + 0.0, !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + 0, !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + 0, !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA SPACE3-1, !- Name + flow/person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} + 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} + 0.0; !- Outdoor Air Flow per Zone {m3/s} + + Sizing:Zone, + SPACE4-1, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 14., !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50., !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.009, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.004, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA SPACE4-1, !- Design Specification Outdoor Air Object Name + 0.0, !- Zone Heating Sizing Factor + 0.0, !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + 0, !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + 0, !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA SPACE4-1, !- Name + flow/person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} + 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} + 0.0; !- Outdoor Air Flow per Zone {m3/s} + + Sizing:Zone, + SPACE5-1, !- Zone or ZoneList Name + SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method + 14., !- Zone Cooling Design Supply Air Temperature {C} + , !- Zone Cooling Design Supply Air Temperature Difference {deltaC} + SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method + 50., !- Zone Heating Design Supply Air Temperature {C} + , !- Zone Heating Design Supply Air Temperature Difference {deltaC} + 0.009, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.004, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + SZ DSOA SPACE5-1, !- Design Specification Outdoor Air Object Name + 0.0, !- Zone Heating Sizing Factor + 0.0, !- Zone Cooling Sizing Factor + DesignDay, !- Cooling Design Air Flow Method + 0, !- Cooling Design Air Flow Rate {m3/s} + , !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} + , !- Cooling Minimum Air Flow {m3/s} + , !- Cooling Minimum Air Flow Fraction + DesignDay, !- Heating Design Air Flow Method + 0, !- Heating Design Air Flow Rate {m3/s} + , !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} + , !- Heating Maximum Air Flow {m3/s} + ; !- Heating Maximum Air Flow Fraction + + DesignSpecification:OutdoorAir, + SZ DSOA SPACE5-1, !- Name + flow/person, !- Outdoor Air Method + 0.00944, !- Outdoor Air Flow per Person {m3/s-person} + 0.0, !- Outdoor Air Flow per Zone Floor Area {m3/s-m2} + 0.0; !- Outdoor Air Flow per Zone {m3/s} + + Sizing:System, + VAV Sys 1, !- AirLoop Name + sensible, !- Type of Load to Size On + autosize, !- Design Outdoor Air Flow Rate {m3/s} + 0.3, !- Minimum System Air Flow Ratio + 7.0, !- Preheat Design Temperature {C} + .008, !- Preheat Design Humidity Ratio {kgWater/kgDryAir} + 11.0, !- Precool Design Temperature {C} + .008, !- Precool Design Humidity Ratio {kgWater/kgDryAir} + 12.8, !- Central Cooling Design Supply Air Temperature {C} + 16.7, !- Central Heating Design Supply Air Temperature {C} + noncoincident, !- Sizing Option + no, !- 100% Outdoor Air in Cooling + no, !- 100% Outdoor Air in Heating + 0.008, !- Central Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} + 0.008, !- Central Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} + DesignDay, !- Cooling Design Air Flow Method + 0, !- Cooling Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Cooling Operation {m3/s-m2} + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Cooling Capacity {m3/s-W} + DesignDay, !- Heating Design Air Flow Method + 0, !- Heating Design Air Flow Rate {m3/s} + , !- Supply Air Flow Rate Per Floor Area During Heating Operation {m3/s-m2} + , !- Fraction of Autosized Design Heating Supply Air Flow Rate + , !- Fraction of Autosized Design Cooling Supply Air Flow Rate + , !- Design Supply Air Flow Rate Per Unit Heating Capacity {m3/s-W} + ; !- System Outdoor Air Method + + Sizing:Plant, + Hot Water Loop, !- Plant or Condenser Loop Name + heating, !- Loop Type + 62., !- Design Loop Exit Temperature {C} + 11; !- Loop Design Temperature Difference {deltaC} + + Sizing:Plant, + Chilled Water Loop, !- Plant or Condenser Loop Name + cooling, !- Loop Type + 7.22, !- Design Loop Exit Temperature {C} + 6.67; !- Loop Design Temperature Difference {deltaC} + + Sizing:Plant, + Condenser Water Loop, !- Plant or Condenser Loop Name + condenser, !- Loop Type + 29.4, !- Design Loop Exit Temperature {C} + 5.6; !- Loop Design Temperature Difference {deltaC} + + Schedule:Compact, + Htg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekends HoliDay, !- Field 2 + Until: 7:00,12.8, !- Field 3 + Until: 14:00,21.1, !- Field 5 + Until: 24:00,12.8, !- Field 7 + For: SummerDesignDay, !- Field 9 + Until: 24:00,12.8, !- Field 10 + For: WinterDesignDay, !- Field 12 + Until: 24:00,21.1, !- Field 13 + For: AllOtherDays, !- Field 15 + Until: 7:00,12.8, !- Field 16 + Until: 19:00,21.1, !- Field 18 + Until: 24:00,12.8; !- Field 20 + + Schedule:Compact, + PlenumHtg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,12.8; !- Field 3 + + Schedule:Compact, + Clg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekends HoliDay, !- Field 2 + Until: 7:00,40.0, !- Field 3 + Until: 14:00,23.9, !- Field 5 + Until: 24:00,32.2, !- Field 7 + For: SummerDesignDay, !- Field 9 + Until: 24:00,23.9, !- Field 10 + For: WinterDesignDay, !- Field 12 + Until: 24:00,40.0, !- Field 13 + For: AllOtherDays, !- Field 15 + Until: 7:00,40.0, !- Field 16 + Until: 19:00,23.9, !- Field 18 + Until: 24:00,40.0; !- Field 20 + + Schedule:Compact, + PlenumClg-SetP-Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,40.0; !- Field 3 + + Schedule:Compact, + Zone Control Type Sched, !- Name + Control Type, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,4; !- Field 3 + + Schedule:Compact, + Min OA Sched, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Weekdays SummerDesignDay WinterDesignDay, !- Field 2 + Until: 7:00,0.02, !- Field 3 + Until: 19:00,1.0, !- Field 5 + Until: 24:00,0.02, !- Field 7 + For: AllOtherDays, !- Field 9 + Until: 24:00,0.02; !- Field 10 + + Schedule:Compact, + FanAvailSched, !- Name + Fraction, !- Schedule Type Limits Name + Through: 3/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,1.0, !- Field 3 + Through: 9/30, !- Field 5 + For: Weekdays, !- Field 6 + Until: 7:00,0.0, !- Field 7 + Until: 18:00,1.0, !- Field 9 + Until: 24:00,0.0, !- Field 11 + For: Weekends Holidays CustomDay1 CustomDay2, !- Field 13 + Until: 24:00,0.0, !- Field 14 + For: AllOtherDays, !- Field 16 + Until: 24:00,1.0, !- Field 17 + Through: 12/31, !- Field 19 + For: Alldays, !- Field 20 + Until: 24:00,1.0; !- Field 21 + + Schedule:Compact, + ReheatCoilAvailSched, !- Name + Fraction, !- Schedule Type Limits Name + Through: 3/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,1.0, !- Field 3 + Through: 9/30, !- Field 5 + For: Weekdays, !- Field 6 + Until: 7:00,0.0, !- Field 7 + Until: 18:00,1.0, !- Field 9 + Until: 24:00,0.0, !- Field 11 + For: Weekends Holidays CustomDay1 CustomDay2, !- Field 13 + Until: 24:00,0.0, !- Field 14 + For: AllOtherDays, !- Field 16 + Until: 24:00,1.0, !- Field 17 + Through: 12/31, !- Field 19 + For: Alldays, !- Field 20 + Until: 24:00,1.0; !- Field 21 + + Schedule:Compact, + CoolingCoilAvailSched, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,1.0; !- Field 3 + + Schedule:Compact, + CoolingPumpAvailSched, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,1.0; !- Field 3 + + Schedule:Compact, + CW Loop Temp Schedule, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,7.22; !- Field 3 + + Schedule:Compact, + HW Loop Temp Schedule, !- Name + Temperature, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,60.0; !- Field 3 + + Schedule:Compact, + PlantOnSched, !- Name + Fraction, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,1.0; !- Field 3 + + Schedule:Compact, + Seasonal Reset Supply Air Temp Sch, !- Name + Temperature, !- Schedule Type Limits Name + Through: 3/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,16.0, !- Field 3 + Through: 9/30, !- Field 5 + For: Alldays, !- Field 6 + Until: 24:00,17.5, !- Field 7 + Through: 12/31, !- Field 9 + For: Alldays, !- Field 10 + Until: 24:00,16.0; !- Field 11 + + Schedule:Compact, + Seasonal Relative Humidity Sch, !- Name + Humidity, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: Alldays, !- Field 2 + Until: 24:00,50.0; !- Field 3 + + ScheduleTypeLimits, + Humidity, !- Name + 0, !- Lower Limit Value + 100, !- Upper Limit Value + CONTINUOUS; !- Numeric Type + +!********** Indoor Heat Pump Water Heater Inputs (uses zone and outdoor air) in Zone 5 **************** + + WaterHeater:HeatPump, + Zone5HeatPumpWaterHeater,!- Name + HeatPumpWaterHeaterSch, !- Availability Schedule Name + HPWHTempSch, !- Compressor Setpoint Temperature Schedule Name + 2.0, !- Dead Band Temperature Difference {deltaC} + HPWHWaterInletNode, !- Condenser Water Inlet Node Name + HPWHWaterOutletNode, !- Condenser Water Outlet Node Name + autocalculate, !- Condenser Water Flow Rate {m3/s} + autocalculate, !- Evaporator Air Flow Rate {m3/s} + ZoneAndOutdoorAir, !- Inlet Air Configuration + HPWHAirOutletNode, !- Air Inlet Node Name + HPWHAirInletNode, !- Air Outlet Node Name + HPWHOutdoorAirInletNode, !- Outdoor Air Node Name + HPWHExhaustAirOutletNode,!- Exhaust Air Node Name + , !- Inlet Air Temperature Schedule Name + , !- Inlet Air Humidity Schedule Name + SPACE5-1, !- Inlet Air Zone Name + WaterHeater:Mixed, !- Tank Object Type + HPWHTank, !- Tank Name + , !- Tank Use Side Inlet Node Name + , !- Tank Use Side Outlet Node Name + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, !- DX Coil Object Type + HPWHDXCoilVS, !- VariableSpeed DX Coil Name + 5.0, !- Minimum Inlet Air Temperature for Compressor Operation {C} + Zone, !- Compressor Location + , !- Compressor Ambient Temperature Schedule Name + Fan:OnOff, !- Fan Object Type + HPWHFan, !- Fan Name + DrawThrough, !- Fan Placement + 15.0, !- On Cycle Parasitic Electric Load {W} + 5.0, !- Off Cycle Parasitic Electric Load {W} + Zone, !- Parasitic Heat Rejection Location + HPWHInletAirMixerNode, !- Inlet Air Mixer Node Name + HPWHOutletAirSplitterNode, !- Outlet Air Splitter Node Name + HPWHMixerInletAirSch; !- Inlet Air Mixer Schedule Name + + WaterHeater:Mixed, + HPWHTank, !- Name + 0.3785, !- Tank Volume {m3} + Hot Water Setpoint Temp Schedule, !- Setpoint Temperature Schedule Name + 2.0, !- Deadband Temperature Difference {deltaC} + 82.2222, !- Maximum Temperature Limit {C} + CYCLE, !- Heater Control Type + 5000, !- Heater Maximum Capacity {W} + 0, !- Heater Minimum Capacity {W} + , !- Heater Ignition Minimum Flow Rate {m3/s} + , !- Heater Ignition Delay {s} + ELECTRICITY, !- Heater Fuel Type + 0.95, !- Heater Thermal Efficiency + , !- Part Load Factor Curve Name + 10, !- Off Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- Off Cycle Parasitic Fuel Type + 0, !- Off Cycle Parasitic Heat Fraction to Tank + 30, !- On Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- On Cycle Parasitic Fuel Type + 0, !- On Cycle Parasitic Heat Fraction to Tank + ZONE, !- Ambient Temperature Indicator + , !- Ambient Temperature Schedule Name + SPACE5-1, !- Ambient Temperature Zone Name + , !- Ambient Temperature Outdoor Air Node Name + 2.0, !- Off Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- Off Cycle Loss Fraction to Zone + 2.0, !- On Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- On Cycle Loss Fraction to Zone + 0.00379, !- Peak Use Flow Rate {m3/s} + Hot Water Demand Schedule, !- Use Flow Rate Fraction Schedule Name + , !- Cold Water Supply Temperature Schedule Name + , !- Use Side Inlet Node Name + , !- Use Side Outlet Node Name + , !- Use Side Effectiveness + HPWHWaterOutletNode, !- Source Side Inlet Node Name + HPWHWaterInletNode, !- Source Side Outlet Node Name + 0.95; !- Source Side Effectiveness + + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, + HPWHDXCoilVS, !- Name + 10, !- Number of Speeds + 10, !- Nominal speed level + 4000.0, !- Rated Heating Capacity {W} at the nominal speed level + 29.44, !- Rated Evaporator Inlet Air Dry-Bulb Temperature {C} + 22.22, !- Rated Evaporator Inlet Air Wet-Bulb Temperature {C} + 55.72, !- Rated Condenser Inlet Water Temperature {C} + autocalculate, !- Rated Evaporator Air Flow Rate {m3/s} + autocalculate, !- Rated Condenser Water Flow Rate {m3/s} + No, !- Evaporator Fan Power Included in Rated COP + No, !- Condenser Pump Power Included in Rated COP + No, !- Condenser Pump Heat Included in Rated Heating Capacity and Rated COP + 0.1, !- Fraction of Condenser Pump Heat to Water + HPWHInletAirMixerNode, !- Evaporator Air Inlet Node Name + HPWHDXCoilAirOutletNode, !- Evaporator Air Outlet Node Name + HPWHWaterInletNode, !- Condenser Water Inlet Node Name + HPWHWaterOutletNode, !- Condenser Water Outlet Node Name + 100.0, !- Crankcase Heater Capacity {W} + 5.0, !- Maximum Ambient Temperature for Crankcase Heater Operation {C} + WetBulbTemperature, !- Evaporator Air Temperature Type for Curve Objects + HPWHPLFFPLR, !- Part Load Fraction Correlation Curve Name + 400.00, !- Speed 1 Water Heating capacity {W} of Reference Unit + 5.0, !- Speed 1 Water Heating COP {W/W} of Reference Unit + 0.80, !- Speed 1 Sensible Heat Transfer Ratio of Reference Unit + 0.020140, !- Speed 1 Air Flow Rate of Reference Unit + 0.000018, !- Speed 1 water Air Flow Rate of Reference Unit + 10.0, !- Speed 1 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 800.00, !- Speed 2 Water Heating capacity {W} of Reference Unit + 4.8, !- Speed 2 Water Heating COP {W/W} of Reference Unit + 0.79, !- Speed 2 Sensible Heat Transfer Ratio of Reference Unit + 0.040280, !- Speed 2 Air Flow Rate of Reference Unit + 0.000036, !- Speed 2 water Air Flow Rate of Reference Unit + 10.0, !- Speed 2 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1200.00, !- Speed 3 Water Heating capacity {W} of Reference Unit + 4.4, !- Speed 3 Water Heating COP {W/W} of Reference Unit + 0.78, !- Speed 3 Sensible Heat Transfer Ratio of Reference Unit + 0.060420, !- Speed 3 Air Flow Rate of Reference Unit + 0.000054, !- Speed 3 water Air Flow Rate of Reference Unit + 10.0, !- Speed 3 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1600.00, !- Speed 4 Water Heating capacity {W} of Reference Unit + 4.0, !- Speed 4 Water Heating COP {W/W} of Reference Unit + 0.77, !- Speed 4 Sensible Heat Transfer Ratio of Reference Unit + 0.080560, !- Speed 4 Air Flow Rate of Reference Unit + 0.000072, !- Speed 4 water Air Flow Rate of Reference Unit + 10.0, !- Speed 4 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2000.00, !- Speed 5 Water Heating capacity {W} of Reference Unit + 3.8, !- Speed 5 Water Heating COP {W/W} of Reference Unit + 0.76, !- Speed 5 Sensible Heat Transfer Ratio of Reference Unit + 0.100700, !- Speed 5 Air Flow Rate of Reference Unit + 0.000090, !- Speed 5 water Air Flow Rate of Reference Unit + 10.0, !- Speed 5 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2400.00, !- Speed 6 Water Heating capacity {W} of Reference Unit + 3.4, !- Speed 6 Water Heating COP {W/W} of Reference Unit + 0.75, !- Speed 6 Sensible Heat Transfer Ratio of Reference Unit + 0.120840, !- Speed 6 Air Flow Rate of Reference Unit + 0.000108, !- Speed 6 water Air Flow Rate of Reference Unit + 10.0, !- Speed 6 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2800.00, !- Speed 7 Water Heating capacity {W} of Reference Unit + 3.0, !- Speed 7 Water Heating COP {W/W} of Reference Unit + 0.74, !- Speed 7 Sensible Heat Transfer Ratio of Reference Unit + 0.140980, !- Speed 7 Air Flow Rate of Reference Unit + 0.000126, !- Speed 7 water Air Flow Rate of Reference Unit + 10.0, !- Speed 7 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3200.00, !- Speed 8 Water Heating capacity {W} of Reference Unit + 2.6, !- Speed 8 Water Heating COP {W/W} of Reference Unit + 0.73, !- Speed 8 Sensible Heat Transfer Ratio of Reference Unit + 0.161120, !- Speed 8 Air Flow Rate of Reference Unit + 0.000144, !- Speed 8 water Air Flow Rate of Reference Unit + 10.0, !- Speed 8 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3600.00, !- Speed 9 Water Heating capacity {W} of Reference Unit + 2.3, !- Speed 9 Water Heating COP {W/W} of Reference Unit + 0.72, !- Speed 9 Sensible Heat Transfer Ratio of Reference Unit + 0.181260, !- Speed 9 Air Flow Rate of Reference Unit + 0.000162, !- Speed 9 water Air Flow Rate of Reference Unit + 10.0, !- Speed 9 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 4000.00, !- Speed 10 Water Heating capacity {W} of Reference Unit + 2.0, !- Speed 10 Water Heating COP {W/W} of Reference Unit + 0.70, !- Speed 10 Sensible Heat Transfer Ratio of Reference Unit + 0.201400, !- Speed 10 Air Flow Rate of Reference Unit + 0.000179, !- Speed 10 water Air Flow Rate of Reference Unit + 10.0, !- Speed 10 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic; !- Heating COP Function of Water Flow Fraction Curve Name + + Fan:OnOff, + HPWHFan, !- Name + HeatPumpWaterHeaterSch, !- Availability Schedule Name + 0.7, !- Fan Total Efficiency + 100.0, !- Pressure Rise {Pa} + 0.2685, !- Maximum Flow Rate {m3/s} + 0.9, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + HPWHDXCoilAirOutletNode, !- Air Inlet Node Name + HPWHOutletAirSplitterNode; !- Air Outlet Node Name + +! Heating Capacity as a Function of Temperature Curve (Air Wet-bulb T, Condenser Water Inlet T) +! Colmac HPA 2000 Air Source Heat Pump Water Heater +! Rating point: 29.4 C (85 F) Entering Air Dry-bulb Temperature +! 22.2 C (72 F) Entering Air Wet-bulb Temperature +! 56.7 C (132.2 F) Entering Condenser Water Temperature +! Capacity = 17028.6 W (58117 BTUH) water heating capacity +! COP = 3.37 W/W (12.21 BTUH/W) water heating efficiency +! + + Curve:Biquadratic, + HPWHHeatingCapFTemp, !- Name + 0.369827, !- Coefficient1 Constant + 0.043341, !- Coefficient2 x + -0.00023, !- Coefficient3 x**2 + 0.000466, !- Coefficient4 y + 0.000026, !- Coefficient5 y**2 + -0.00027, !- Coefficient6 x*y + 0.0, !- Minimum Value of x + 40.0, !- Maximum Value of x + 20.0, !- Minimum Value of y + 90.0, !- Maximum Value of y + , !- Minimum Curve Output + , !- Maximum Curve Output + Temperature, !- Input Unit Type for X + Temperature, !- Input Unit Type for Y + Dimensionless; !- Output Unit Type + + Curve:Biquadratic, + HPWHHeatingCOPFTemp, !- Name + 1.19713, !- Coefficient1 Constant + 0.077849, !- Coefficient2 x + -0.0000016, !- Coefficient3 x**2 + -0.02675, !- Coefficient4 y + 0.000296, !- Coefficient5 y**2 + -0.00112, !- Coefficient6 x*y + 0.0, !- Minimum Value of x + 40.0, !- Maximum Value of x + 20.0, !- Minimum Value of y + 90.0, !- Maximum Value of y + , !- Minimum Curve Output + , !- Maximum Curve Output + Temperature, !- Input Unit Type for X + Temperature, !- Input Unit Type for Y + Dimensionless; !- Output Unit Type + + Curve:Quadratic, + HPWHPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Cubic, + ConstantCubic, !- Name + 1, !- Coefficient1 Constant + 0, !- Coefficient2 x + 0, !- Coefficient3 x + 0, !- Coefficient4 x + -100, !- Minimum Value of x + 100; !- Maximum Value of x + + Schedule:Compact, + HeatPumpWaterHeaterSch, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,1.0; !- Field 3 + + Schedule:Compact, + HPWHTempSch, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,60.0; !- Field 3 + + Schedule:Compact, + Hot Water Setpoint Temp Schedule, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,50.0; !- Field 3 + + Schedule:Compact, + HPWHMixerInletAirSch, !- Name + Any Number, !- Schedule Type Limits Name + Through: 3/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,0.2, !- Field 3 + Through: 9/30, !- Field 5 + For: AllDays, !- Field 6 + Until: 24:00,0.0, !- Field 7 + Through: 12/31, !- Field 9 + For: AllDays, !- Field 10 + Until: 24:00,0.2; !- Field 11 + + Schedule:Compact, + Hot Water Demand Schedule, !- Name + Fraction, !- Schedule Type Limits Name + THROUGH: 12/31, !- Field 1 + FOR: AllDays, !- Field 2 + UNTIL: 5:00,0, !- Field 3 + UNTIL: 7:00,0.003, !- Field 5 + UNTIL: 13:00,0, !- Field 7 + UNTIL: 13:10,0.001, !- Field 9 + UNTIL: 18:00,0, !- Field 11 + UNTIL: 18:30,0.003, !- Field 13 + UNTIL: 24:00,0; !- Field 15 + +!*********** End of Indoor Heat Pump Water Heater Inputs (uses zone and outdoor air) in Zone 5 ******** +!*********** Indoor Heat Pump Water Heater Inputs (uses no outdoor air) in Zone 4 ****** + + WaterHeater:HeatPump, + Zone4HeatPumpWaterHeater,!- Name + HeatPumpWaterHeaterSch, !- Availability Schedule Name + HPWHTempSch, !- Compressor Setpoint Temperature Schedule Name + 2.0, !- Dead Band Temperature Difference {deltaC} + Zone4WaterInletNode, !- Condenser Water Inlet Node Name + Zone4WaterOutletNode, !- Condenser Water Outlet Node Name + autocalculate, !- Condenser Water Flow Rate {m3/s} + autocalculate, !- Evaporator Air Flow Rate {m3/s} + ZoneAirOnly, !- Inlet Air Configuration + Zone4AirOutletNode, !- Air Inlet Node Name + Zone4AirInletNode, !- Air Outlet Node Name + , !- Outdoor Air Node Name + , !- Exhaust Air Node Name + , !- Inlet Air Temperature Schedule Name + , !- Inlet Air Humidity Schedule Name + SPACE4-1, !- Inlet Air Zone Name + WaterHeater:Mixed, !- Tank Object Type + Zone4HPWHTank, !- Tank Name + , !- Tank Use Side Inlet Node Name + , !- Tank Use Side Outlet Node Name + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, !- DX Coil Object Type + Zone4HPWHDXCoilVS, !- DX Coil Name + 5.0, !- Minimum Inlet Air Temperature for Compressor Operation {C} + Zone, !- Compressor Location + , !- Compressor Ambient Temperature Schedule Name + Fan:OnOff, !- Fan Object Type + Zone4HPWHFan, !- Fan Name + DrawThrough, !- Fan Placement + 15.0, !- On Cycle Parasitic Electric Load {W} + 5.0, !- Off Cycle Parasitic Electric Load {W} + Zone; !- Parasitic Heat Rejection Location + + WaterHeater:Mixed, + Zone4HPWHTank, !- Name + 0.3785, !- Tank Volume {m3} + Hot Water Setpoint Temp Schedule, !- Setpoint Temperature Schedule Name + 2.0, !- Deadband Temperature Difference {deltaC} + 82.2222, !- Maximum Temperature Limit {C} + CYCLE, !- Heater Control Type + 5000, !- Heater Maximum Capacity {W} + 0, !- Heater Minimum Capacity {W} + , !- Heater Ignition Minimum Flow Rate {m3/s} + , !- Heater Ignition Delay {s} + ELECTRICITY, !- Heater Fuel Type + 0.95, !- Heater Thermal Efficiency + , !- Part Load Factor Curve Name + 10, !- Off Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- Off Cycle Parasitic Fuel Type + 0, !- Off Cycle Parasitic Heat Fraction to Tank + 30, !- On Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- On Cycle Parasitic Fuel Type + 0, !- On Cycle Parasitic Heat Fraction to Tank + ZONE, !- Ambient Temperature Indicator + , !- Ambient Temperature Schedule Name + SPACE4-1, !- Ambient Temperature Zone Name + , !- Ambient Temperature Outdoor Air Node Name + 2.0, !- Off Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- Off Cycle Loss Fraction to Zone + 2.0, !- On Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- On Cycle Loss Fraction to Zone + 0.00379, !- Peak Use Flow Rate {m3/s} + Hot Water Demand Schedule, !- Use Flow Rate Fraction Schedule Name + , !- Cold Water Supply Temperature Schedule Name + , !- Use Side Inlet Node Name + , !- Use Side Outlet Node Name + , !- Use Side Effectiveness + Zone4WaterOutletNode, !- Source Side Inlet Node Name + Zone4WaterInletNode, !- Source Side Outlet Node Name + 0.95; !- Source Side Effectiveness + + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, + Zone4HPWHDXCoilVS, !- Name + 10, !- Number of Speeds + 10, !- Nominal speed level + 4000.0, !- Rated Heating Capacity {W} + 29.44, !- Rated Evaporator Inlet Air Dry-Bulb Temperature {C} + 22.22, !- Rated Evaporator Inlet Air Wet-Bulb Temperature {C} + 55.72, !- Rated Condenser Inlet Water Temperature {C} + autocalculate, !- Rated Evaporator Air Flow Rate {m3/s} + autocalculate, !- Rated Condenser Water Flow Rate {m3/s} + No, !- Evaporator Fan Power Included in Rated COP + No, !- Condenser Pump Power Included in Rated COP + No, !- Condenser Pump Heat Included in Rated Heating Capacity and Rated COP + 0.1, !- Fraction of Condenser Pump Heat to Water + Zone4AirOutletNode, !- Evaporator Air Inlet Node Name + Zone4DXCoilAirOutletNode,!- Evaporator Air Outlet Node Name + Zone4WaterInletNode, !- Condenser Water Inlet Node Name + Zone4WaterOutletNode, !- Condenser Water Outlet Node Name + 100.0, !- Crankcase Heater Capacity {W} + 5.0, !- Maximum Ambient Temperature for Crankcase Heater Operation {C} + WetBulbTemperature, !- Evaporator Air Temperature Type for Curve Objects + HPWHPLFFPLR, !- Part Load Fraction Correlation Curve Name + 400.00, !- Speed 1 Water Heating capacity {W} of Reference Unit + 5.0, !- Speed 1 Water Heating COP {W/W} of Reference Unit + 0.80, !- Speed 1 Sensible Heat Transfer Ratio of Reference Unit + 0.020140, !- Speed 1 Air Flow Rate of Reference Unit + 0.000018, !- Speed 1 water Air Flow Rate of Reference Unit + 10.0, !- Speed 1 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 800.00, !- Speed 2 Water Heating capacity {W} of Reference Unit + 4.8, !- Speed 2 Water Heating COP {W/W} of Reference Unit + 0.79, !- Speed 2 Sensible Heat Transfer Ratio of Reference Unit + 0.040280, !- Speed 2 Air Flow Rate of Reference Unit + 0.000036, !- Speed 2 water Air Flow Rate of Reference Unit + 10.0, !- Speed 2 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1200.00, !- Speed 3 Water Heating capacity {W} of Reference Unit + 4.4, !- Speed 3 Water Heating COP {W/W} of Reference Unit + 0.78, !- Speed 3 Sensible Heat Transfer Ratio of Reference Unit + 0.060420, !- Speed 3 Air Flow Rate of Reference Unit + 0.000054, !- Speed 3 water Air Flow Rate of Reference Unit + 10.0, !- Speed 3 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1600.00, !- Speed 4 Water Heating capacity {W} of Reference Unit + 4.0, !- Speed 4 Water Heating COP {W/W} of Reference Unit + 0.77, !- Speed 4 Sensible Heat Transfer Ratio of Reference Unit + 0.080560, !- Speed 4 Air Flow Rate of Reference Unit + 0.000072, !- Speed 4 water Air Flow Rate of Reference Unit + 10.0, !- Speed 4 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2000.00, !- Speed 5 Water Heating capacity {W} of Reference Unit + 3.8, !- Speed 5 Water Heating COP {W/W} of Reference Unit + 0.76, !- Speed 5 Sensible Heat Transfer Ratio of Reference Unit + 0.100700, !- Speed 5 Air Flow Rate of Reference Unit + 0.000090, !- Speed 5 water Air Flow Rate of Reference Unit + 10.0, !- Speed 5 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2400.00, !- Speed 6 Water Heating capacity {W} of Reference Unit + 3.4, !- Speed 6 Water Heating COP {W/W} of Reference Unit + 0.75, !- Speed 6 Sensible Heat Transfer Ratio of Reference Unit + 0.120840, !- Speed 6 Air Flow Rate of Reference Unit + 0.000108, !- Speed 6 water Air Flow Rate of Reference Unit + 10.0, !- Speed 6 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2800.00, !- Speed 7 Water Heating capacity {W} of Reference Unit + 3.0, !- Speed 7 Water Heating COP {W/W} of Reference Unit + 0.74, !- Speed 7 Sensible Heat Transfer Ratio of Reference Unit + 0.140980, !- Speed 7 Air Flow Rate of Reference Unit + 0.000126, !- Speed 7 water Air Flow Rate of Reference Unit + 10.0, !- Speed 7 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3200.00, !- Speed 8 Water Heating capacity {W} of Reference Unit + 2.6, !- Speed 8 Water Heating COP {W/W} of Reference Unit + 0.73, !- Speed 8 Sensible Heat Transfer Ratio of Reference Unit + 0.161120, !- Speed 8 Air Flow Rate of Reference Unit + 0.000144, !- Speed 8 water Air Flow Rate of Reference Unit + 10.0, !- Speed 8 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3600.00, !- Speed 9 Water Heating capacity {W} of Reference Unit + 2.3, !- Speed 9 Water Heating COP {W/W} of Reference Unit + 0.72, !- Speed 9 Sensible Heat Transfer Ratio of Reference Unit + 0.181260, !- Speed 9 Air Flow Rate of Reference Unit + 0.000162, !- Speed 9 water Air Flow Rate of Reference Unit + 10.0, !- Speed 9 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 4000.00, !- Speed 10 Water Heating capacity {W} of Reference Unit + 2.0, !- Speed 10 Water Heating COP {W/W} of Reference Unit + 0.70, !- Speed 10 Sensible Heat Transfer Ratio of Reference Unit + 0.201400, !- Speed 10 Air Flow Rate of Reference Unit + 0.000179, !- Speed 10 water Air Flow Rate of Reference Unit + 10.0, !- Speed 10 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic; !- Heating COP Function of Water Flow Fraction Curve Name + + Fan:OnOff, + Zone4HPWHFan, !- Name + HeatPumpWaterHeaterSch, !- Availability Schedule Name + 0.7, !- Fan Total Efficiency + 100.0, !- Pressure Rise {Pa} + 0.2685, !- Maximum Flow Rate {m3/s} + 0.9, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + Zone4DXCoilAirOutletNode,!- Air Inlet Node Name + Zone4AirInletNode; !- Air Outlet Node Name + +!*********** End of Indoor Heat Pump Water Heater Inputs (uses no outdoor air) in Zone 4 ****** + +!*********** Outdoor Heat Pump Water Heater Inputs *********************** + + WaterHeater:HeatPump, + OutdoorHeatPumpWaterHeater, !- Name + PlantHPWHSch, !- Availability Schedule Name + HPWHTempSch, !- Compressor Setpoint Temperature Schedule Name + 2.0, !- Dead Band Temperature Difference {deltaC} + HPOutdoorWaterInletNode, !- Condenser Water Inlet Node Name + HPOutdoorWaterOutletNode,!- Condenser Water Outlet Node Name + 0.00016, !- Condenser Water Flow Rate {m3/s} + 0.2685, !- Evaporator Air Flow Rate {m3/s} + OutdoorAirOnly, !- Inlet Air Configuration + , !- Air Inlet Node Name + , !- Air Outlet Node Name + HPOutdoorAirInletNode, !- Outdoor Air Node Name + HPOutdoorAirOutletNode, !- Exhaust Air Node Name + , !- Inlet Air Temperature Schedule Name + , !- Inlet Air Humidity Schedule Name + , !- Inlet Air Zone Name + WaterHeater:Mixed, !- Tank Object Type + HPWHOutdoorTank, !- Tank Name + , !- Tank Use Side Inlet Node Name + , !- Tank Use Side Outlet Node Name + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, !- DX Coil Object Type + HPWHOutdoorDXCoilVS, !- DX Coil Name + 11.0, !- Minimum Inlet Air Temperature for Compressor Operation {C} + Outdoors, !- Compressor Location + , !- Compressor Ambient Temperature Schedule Name + Fan:OnOff, !- Fan Object Type + HPWHOutdoorFan, !- Fan Name + BlowThrough, !- Fan Placement + , !- On Cycle Parasitic Electric Load {W} + , !- Off Cycle Parasitic Electric Load {W} + ; !- Parasitic Heat Rejection Location + + WaterHeater:Mixed, + HPWHOutdoorTank, !- Name + 0.3785, !- Tank Volume {m3} + Hot Water Setpoint Temp Schedule, !- Setpoint Temperature Schedule Name + 2.0, !- Deadband Temperature Difference {deltaC} + 82.2222, !- Maximum Temperature Limit {C} + CYCLE, !- Heater Control Type + 5000, !- Heater Maximum Capacity {W} + 0, !- Heater Minimum Capacity {W} + , !- Heater Ignition Minimum Flow Rate {m3/s} + , !- Heater Ignition Delay {s} + ELECTRICITY, !- Heater Fuel Type + 0.95, !- Heater Thermal Efficiency + , !- Part Load Factor Curve Name + 10, !- Off Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- Off Cycle Parasitic Fuel Type + 0, !- Off Cycle Parasitic Heat Fraction to Tank + 30, !- On Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- On Cycle Parasitic Fuel Type + 0, !- On Cycle Parasitic Heat Fraction to Tank + Outdoors, !- Ambient Temperature Indicator + , !- Ambient Temperature Schedule Name + , !- Ambient Temperature Zone Name + HPWHOutdoorTank OA Node, !- Ambient Temperature Outdoor Air Node Name + 2.0, !- Off Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- Off Cycle Loss Fraction to Zone + 2.0, !- On Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- On Cycle Loss Fraction to Zone + 0.000379, !- Peak Use Flow Rate {m3/s} + Hot Water Demand Schedule, !- Use Flow Rate Fraction Schedule Name + , !- Cold Water Supply Temperature Schedule Name + , !- Use Side Inlet Node Name + , !- Use Side Outlet Node Name + , !- Use Side Effectiveness + HPOutdoorWaterOutletNode,!- Source Side Inlet Node Name + HPOutdoorWaterInletNode, !- Source Side Outlet Node Name + 0.95; !- Source Side Effectiveness + + OutdoorAir:Node, + HPWHOutdoorTank OA Node; !- Name + + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, + HPWHOutdoorDXCoilVS, !- Name + 10, !- Number of Speeds + 10, !- Nominal speed level + 4000.0, !- Rated Heating Capacity {W} + 29.44, !- Rated Evaporator Inlet Air Dry-Bulb Temperature {C} + 22.22, !- Rated Evaporator Inlet Air Wet-Bulb Temperature {C} + 55.72, !- Rated Condenser Inlet Water Temperature {C} + 0.2685, !- Rated Evaporator Air Flow Rate {m3/s} + 0.00016, !- Rated Condenser Water Flow Rate {m3/s} + No, !- Evaporator Fan Power Included in Rated COP + No, !- Condenser Pump Power Included in Rated COP + No, !- Condenser Pump Heat Included in Rated Heating Capacity and Rated COP + 0.1, !- Fraction of Condenser Pump Heat to Water + HPOutdoorFanAirOutletNode, !- Evaporator Air Inlet Node Name + HPOutdoorAirOutletNode, !- Evaporator Air Outlet Node Name + HPOutdoorWaterInletNode, !- Condenser Water Inlet Node Name + HPOutdoorWaterOutletNode,!- Condenser Water Outlet Node Name + 100.0, !- Crankcase Heater Capacity {W} + 5.0, !- Maximum Ambient Temperature for Crankcase Heater Operation {C} + WetBulbTemperature, !- Evaporator Air Temperature Type for Curve Objects + HPWHPLFFPLR, !- Part Load Fraction Correlation Curve Name + 400.00, !- Speed 1 Water Heating capacity {W} of Reference Unit + 5.0, !- Speed 1 Water Heating COP {W/W} of Reference Unit + 0.80, !- Speed 1 Sensible Heat Transfer Ratio of Reference Unit + 0.020140, !- Speed 1 Air Flow Rate of Reference Unit + 0.000018, !- Speed 1 water Air Flow Rate of Reference Unit + 10.0, !- Speed 1 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 800.00, !- Speed 2 Water Heating capacity {W} of Reference Unit + 4.8, !- Speed 2 Water Heating COP {W/W} of Reference Unit + 0.79, !- Speed 2 Sensible Heat Transfer Ratio of Reference Unit + 0.040280, !- Speed 2 Air Flow Rate of Reference Unit + 0.000036, !- Speed 2 water Air Flow Rate of Reference Unit + 10.0, !- Speed 2 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1200.00, !- Speed 3 Water Heating capacity {W} of Reference Unit + 4.4, !- Speed 3 Water Heating COP {W/W} of Reference Unit + 0.78, !- Speed 3 Sensible Heat Transfer Ratio of Reference Unit + 0.060420, !- Speed 3 Air Flow Rate of Reference Unit + 0.000054, !- Speed 3 water Air Flow Rate of Reference Unit + 10.0, !- Speed 3 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1600.00, !- Speed 4 Water Heating capacity {W} of Reference Unit + 4.0, !- Speed 4 Water Heating COP {W/W} of Reference Unit + 0.77, !- Speed 4 Sensible Heat Transfer Ratio of Reference Unit + 0.080560, !- Speed 4 Air Flow Rate of Reference Unit + 0.000072, !- Speed 4 water Air Flow Rate of Reference Unit + 10.0, !- Speed 4 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2000.00, !- Speed 5 Water Heating capacity {W} of Reference Unit + 3.8, !- Speed 5 Water Heating COP {W/W} of Reference Unit + 0.76, !- Speed 5 Sensible Heat Transfer Ratio of Reference Unit + 0.100700, !- Speed 5 Air Flow Rate of Reference Unit + 0.000090, !- Speed 5 water Air Flow Rate of Reference Unit + 10.0, !- Speed 5 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2400.00, !- Speed 6 Water Heating capacity {W} of Reference Unit + 3.4, !- Speed 6 Water Heating COP {W/W} of Reference Unit + 0.75, !- Speed 6 Sensible Heat Transfer Ratio of Reference Unit + 0.120840, !- Speed 6 Air Flow Rate of Reference Unit + 0.000108, !- Speed 6 water Air Flow Rate of Reference Unit + 10.0, !- Speed 6 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2800.00, !- Speed 7 Water Heating capacity {W} of Reference Unit + 3.0, !- Speed 7 Water Heating COP {W/W} of Reference Unit + 0.74, !- Speed 7 Sensible Heat Transfer Ratio of Reference Unit + 0.140980, !- Speed 7 Air Flow Rate of Reference Unit + 0.000126, !- Speed 7 water Air Flow Rate of Reference Unit + 10.0, !- Speed 7 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3200.00, !- Speed 8 Water Heating capacity {W} of Reference Unit + 2.6, !- Speed 8 Water Heating COP {W/W} of Reference Unit + 0.73, !- Speed 8 Sensible Heat Transfer Ratio of Reference Unit + 0.161120, !- Speed 8 Air Flow Rate of Reference Unit + 0.000144, !- Speed 8 water Air Flow Rate of Reference Unit + 10.0, !- Speed 8 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3600.00, !- Speed 9 Water Heating capacity {W} of Reference Unit + 2.3, !- Speed 9 Water Heating COP {W/W} of Reference Unit + 0.72, !- Speed 9 Sensible Heat Transfer Ratio of Reference Unit + 0.181260, !- Speed 9 Air Flow Rate of Reference Unit + 0.000162, !- Speed 9 water Air Flow Rate of Reference Unit + 10.0, !- Speed 9 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 4000.00, !- Speed 10 Water Heating capacity {W} of Reference Unit + 2.0, !- Speed 10 Water Heating COP {W/W} of Reference Unit + 0.70, !- Speed 10 Sensible Heat Transfer Ratio of Reference Unit + 0.201400, !- Speed 10 Air Flow Rate of Reference Unit + 0.000179, !- Speed 10 water Air Flow Rate of Reference Unit + 10.0, !- Speed 10 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic; !- Heating COP Function of Water Flow Fraction Curve Name + + Fan:OnOff, + HPWHOutdoorFan, !- Name + PlantHPWHSch, !- Availability Schedule Name + 0.7, !- Fan Total Efficiency + 100.0, !- Pressure Rise {Pa} + 0.2685, !- Maximum Flow Rate {m3/s} + 0.9, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + HPOutdoorAirInletNode, !- Air Inlet Node Name + HPOutdoorFanAirOutletNode; !- Air Outlet Node Name + +!*************** End of Outdoor Heat Pump Water Heater Inputs ***************** +!************** Scheduled Heat Pump Water Heater Inputs *********************** + + Schedule:Compact, + ScheduledHPWHSch, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,1.0; !- Field 3 + + Schedule:Compact, + ScheduledAmbientTemp, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,19.72222; !- Field 3 + + Schedule:Compact, + ScheduledAmbientRH, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,0.5; !- Field 3 + + Schedule:Compact, + ScheduledCompressorTemp, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,21.0; !- Field 3 + + WaterHeater:HeatPump, + ScheduledHeatPumpWaterHeater, !- Name + ScheduledHPWHSch, !- Availability Schedule Name + HPWHTempSch, !- Compressor Setpoint Temperature Schedule Name + 2.0, !- Dead Band Temperature Difference {deltaC} + HPScheduledWaterInletNode, !- Condenser Water Inlet Node Name + HPScheduledWaterOutletNode, !- Condenser Water Outlet Node Name + 0.00016, !- Condenser Water Flow Rate {m3/s} + 0.2685, !- Evaporator Air Flow Rate {m3/s} + Schedule, !- Inlet Air Configuration + HPScheduledAirInletNode, !- Air Inlet Node Name + HPScheduledAirOutletNode,!- Air Outlet Node Name + , !- Outdoor Air Node Name + , !- Exhaust Air Node Name + ScheduledAmbientTemp, !- Inlet Air Temperature Schedule Name + ScheduledAmbientRH, !- Inlet Air Humidity Schedule Name + , !- Inlet Air Zone Name + WaterHeater:Mixed, !- Tank Object Type + HPWHScheduledTank, !- Tank Name + , !- Tank Use Side Inlet Node Name + , !- Tank Use Side Outlet Node Name + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, !- DX Coil Object Type + HPWHScheduledDXCoilVS, !- DX Coil Name + 11.0, !- Minimum Inlet Air Temperature for Compressor Operation {C} + Schedule, !- Compressor Location + ScheduledCompressorTemp, !- Compressor Ambient Temperature Schedule Name + Fan:OnOff, !- Fan Object Type + HPWHScheduledFan, !- Fan Name + BlowThrough, !- Fan Placement + , !- On Cycle Parasitic Electric Load {W} + , !- Off Cycle Parasitic Electric Load {W} + ; !- Parasitic Heat Rejection Location + + WaterHeater:Mixed, + HPWHScheduledTank, !- Name + 0.3785, !- Tank Volume {m3} + Hot Water Setpoint Temp Schedule, !- Setpoint Temperature Schedule Name + 2.0, !- Deadband Temperature Difference {deltaC} + 82.2222, !- Maximum Temperature Limit {C} + CYCLE, !- Heater Control Type + 5000, !- Heater Maximum Capacity {W} + 0, !- Heater Minimum Capacity {W} + , !- Heater Ignition Minimum Flow Rate {m3/s} + , !- Heater Ignition Delay {s} + ELECTRICITY, !- Heater Fuel Type + 0.95, !- Heater Thermal Efficiency + , !- Part Load Factor Curve Name + 10, !- Off Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- Off Cycle Parasitic Fuel Type + 0, !- Off Cycle Parasitic Heat Fraction to Tank + 30, !- On Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- On Cycle Parasitic Fuel Type + 0, !- On Cycle Parasitic Heat Fraction to Tank + SCHEDULE, !- Ambient Temperature Indicator + ScheduledAmbientTemp, !- Ambient Temperature Schedule Name + , !- Ambient Temperature Zone Name + , !- Ambient Temperature Outdoor Air Node Name + 2.0, !- Off Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- Off Cycle Loss Fraction to Zone + 2.0, !- On Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- On Cycle Loss Fraction to Zone + 0.000379, !- Peak Use Flow Rate {m3/s} + Hot Water Demand Schedule, !- Use Flow Rate Fraction Schedule Name + , !- Cold Water Supply Temperature Schedule Name + , !- Use Side Inlet Node Name + , !- Use Side Outlet Node Name + , !- Use Side Effectiveness + HPScheduledWaterOutletNode, !- Source Side Inlet Node Name + HPScheduledWaterInletNode, !- Source Side Outlet Node Name + 0.95; !- Source Side Effectiveness + + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, + HPWHScheduledDXCoilVS, !- Name + 10, !- Number of Speeds + 10, !- Nominal speed level + 4000.0, !- Rated Heating Capacity {W} + 29.44, !- Rated Evaporator Inlet Air Dry-Bulb Temperature {C} + 22.22, !- Rated Evaporator Inlet Air Wet-Bulb Temperature {C} + 55.72, !- Rated Condenser Inlet Water Temperature {C} + 0.2685, !- Rated Evaporator Air Flow Rate {m3/s} + 0.00016, !- Rated Condenser Water Flow Rate {m3/s} + Yes, !- Evaporator Fan Power Included in Rated COP + No, !- Condenser Pump Power Included in Rated COP + No, !- Condenser Pump Heat Included in Rated Heating Capacity and Rated COP + 0.1, !- Fraction of Condenser Pump Heat to Water + HPScheduledFanAirOutletNode, !- Evaporator Air Inlet Node Name + HPScheduledAirOutletNode,!- Evaporator Air Outlet Node Name + HPScheduledWaterInletNode, !- Condenser Water Inlet Node Name + HPScheduledWaterOutletNode, !- Condenser Water Outlet Node Name + 120.0, !- Crankcase Heater Capacity {W} + 5.0, !- Maximum Ambient Temperature for Crankcase Heater Operation {C} + WetBulbTemperature, !- Evaporator Air Temperature Type for Curve Objects + HPWHPLFFPLR, !- Part Load Fraction Correlation Curve Name + 400.00, !- Speed 1 Water Heating capacity {W} of Reference Unit + 5.0, !- Speed 1 Water Heating COP {W/W} of Reference Unit + 0.80, !- Speed 1 Sensible Heat Transfer Ratio of Reference Unit + 0.020140, !- Speed 1 Air Flow Rate of Reference Unit + 0.000018, !- Speed 1 water Air Flow Rate of Reference Unit + 10.0, !- Speed 1 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 800.00, !- Speed 2 Water Heating capacity {W} of Reference Unit + 4.8, !- Speed 2 Water Heating COP {W/W} of Reference Unit + 0.79, !- Speed 2 Sensible Heat Transfer Ratio of Reference Unit + 0.040280, !- Speed 2 Air Flow Rate of Reference Unit + 0.000036, !- Speed 2 water Air Flow Rate of Reference Unit + 10.0, !- Speed 2 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1200.00, !- Speed 3 Water Heating capacity {W} of Reference Unit + 4.4, !- Speed 3 Water Heating COP {W/W} of Reference Unit + 0.78, !- Speed 3 Sensible Heat Transfer Ratio of Reference Unit + 0.060420, !- Speed 3 Air Flow Rate of Reference Unit + 0.000054, !- Speed 3 water Air Flow Rate of Reference Unit + 10.0, !- Speed 3 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1600.00, !- Speed 4 Water Heating capacity {W} of Reference Unit + 4.0, !- Speed 4 Water Heating COP {W/W} of Reference Unit + 0.77, !- Speed 4 Sensible Heat Transfer Ratio of Reference Unit + 0.080560, !- Speed 4 Air Flow Rate of Reference Unit + 0.000072, !- Speed 4 water Air Flow Rate of Reference Unit + 10.0, !- Speed 4 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2000.00, !- Speed 5 Water Heating capacity {W} of Reference Unit + 3.8, !- Speed 5 Water Heating COP {W/W} of Reference Unit + 0.76, !- Speed 5 Sensible Heat Transfer Ratio of Reference Unit + 0.100700, !- Speed 5 Air Flow Rate of Reference Unit + 0.000090, !- Speed 5 water Air Flow Rate of Reference Unit + 10.0, !- Speed 5 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2400.00, !- Speed 6 Water Heating capacity {W} of Reference Unit + 3.4, !- Speed 6 Water Heating COP {W/W} of Reference Unit + 0.75, !- Speed 6 Sensible Heat Transfer Ratio of Reference Unit + 0.120840, !- Speed 6 Air Flow Rate of Reference Unit + 0.000108, !- Speed 6 water Air Flow Rate of Reference Unit + 10.0, !- Speed 6 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2800.00, !- Speed 7 Water Heating capacity {W} of Reference Unit + 3.0, !- Speed 7 Water Heating COP {W/W} of Reference Unit + 0.74, !- Speed 7 Sensible Heat Transfer Ratio of Reference Unit + 0.140980, !- Speed 7 Air Flow Rate of Reference Unit + 0.000126, !- Speed 7 water Air Flow Rate of Reference Unit + 10.0, !- Speed 7 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3200.00, !- Speed 8 Water Heating capacity {W} of Reference Unit + 2.6, !- Speed 8 Water Heating COP {W/W} of Reference Unit + 0.73, !- Speed 8 Sensible Heat Transfer Ratio of Reference Unit + 0.161120, !- Speed 8 Air Flow Rate of Reference Unit + 0.000144, !- Speed 8 water Air Flow Rate of Reference Unit + 10.0, !- Speed 8 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3600.00, !- Speed 9 Water Heating capacity {W} of Reference Unit + 2.3, !- Speed 9 Water Heating COP {W/W} of Reference Unit + 0.72, !- Speed 9 Sensible Heat Transfer Ratio of Reference Unit + 0.181260, !- Speed 9 Air Flow Rate of Reference Unit + 0.000162, !- Speed 9 water Air Flow Rate of Reference Unit + 10.0, !- Speed 9 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 4000.00, !- Speed 10 Water Heating capacity {W} of Reference Unit + 2.0, !- Speed 10 Water Heating COP {W/W} of Reference Unit + 0.70, !- Speed 10 Sensible Heat Transfer Ratio of Reference Unit + 0.201400, !- Speed 10 Air Flow Rate of Reference Unit + 0.000179, !- Speed 10 water Air Flow Rate of Reference Unit + 10.0, !- Speed 10 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic; !- Heating COP Function of Water Flow Fraction Curve Name + + Fan:OnOff, + HPWHScheduledFan, !- Name + ScheduledHPWHSch, !- Availability Schedule Name + 0.7, !- Fan Total Efficiency + 100.0, !- Pressure Rise {Pa} + 0.2685, !- Maximum Flow Rate {m3/s} + 0.9, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + HPScheduledAirInletNode, !- Air Inlet Node Name + HPScheduledFanAirOutletNode; !- Air Outlet Node Name + +!*************** End of Scheduled Heat Pump Water Heater Inputs ***************** +!*************** Scheduled non-HP Water Heater (uses electric element for water heating) ********* + + WaterHeater:Mixed, + ScheduledElectricTank, !- Name + 0.3785, !- Tank Volume {m3} + Hot Water Setpoint Temp Schedule, !- Setpoint Temperature Schedule Name + 2.0, !- Deadband Temperature Difference {deltaC} + 82.2222, !- Maximum Temperature Limit {C} + CYCLE, !- Heater Control Type + 5000, !- Heater Maximum Capacity {W} + 0, !- Heater Minimum Capacity {W} + , !- Heater Ignition Minimum Flow Rate {m3/s} + , !- Heater Ignition Delay {s} + ELECTRICITY, !- Heater Fuel Type + 0.95, !- Heater Thermal Efficiency + , !- Part Load Factor Curve Name + 10, !- Off Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- Off Cycle Parasitic Fuel Type + 0, !- Off Cycle Parasitic Heat Fraction to Tank + 30, !- On Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- On Cycle Parasitic Fuel Type + 0, !- On Cycle Parasitic Heat Fraction to Tank + SCHEDULE, !- Ambient Temperature Indicator + ScheduledAmbientTemp, !- Ambient Temperature Schedule Name + , !- Ambient Temperature Zone Name + , !- Ambient Temperature Outdoor Air Node Name + 2.0, !- Off Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- Off Cycle Loss Fraction to Zone + 2.0, !- On Cycle Loss Coefficient to Ambient Temperature {W/K} + 1.0, !- On Cycle Loss Fraction to Zone + 0.000379, !- Peak Use Flow Rate {m3/s} + Hot Water Demand Schedule, !- Use Flow Rate Fraction Schedule Name + , !- Cold Water Supply Temperature Schedule Name + , !- Use Side Inlet Node Name + , !- Use Side Outlet Node Name + , !- Use Side Effectiveness + , !- Source Side Inlet Node Name + , !- Source Side Outlet Node Name + 0.95; !- Source Side Effectiveness + + Site:WaterMainsTemperature, + CORRELATION, !- Calculation Method + , !- Temperature Schedule Name + 9.69, !- Annual Average Outdoor Air Temperature {C} + 28.1; !- Maximum Difference In Monthly Average Outdoor Air Temperatures {deltaC} + +!*************** Scheduled Water Heater (uses electric element for water heating) ********* + + OutdoorAir:NodeList, + OutsideAirInletNodes; !- Node or NodeList Name 1 + + NodeList, + OutsideAirInletNodes, !- Name + Outside Air Inlet Node 1,!- Node 1 Name + HPOutdoorAirInletNode, !- Node 2 Name + HPPlantAirInletNode, !- Node 3 Name + HPWHOutdoorAirInletNode; !- Node 4 Name + + NodeList, + SPACE1-1 In Nodes, !- Name + SPACE1-1 In Node; !- Node 1 Name + + NodeList, + SPACE2-1 In Nodes, !- Name + SPACE2-1 In Node; !- Node 1 Name + + NodeList, + SPACE3-1 In Nodes, !- Name + SPACE3-1 In Node; !- Node 1 Name + + NodeList, + SPACE4-1 In Nodes, !- Name + SPACE4-1 In Node, !- Node 1 Name + Zone4AirInletNode; !- Node 2 Name + + NodeList, + SPACE4-1 Out Nodes, !- Name + Zone4AirOutletNode; !- Node 1 Name + + NodeList, + SPACE5-1 In Nodes, !- Name + SPACE5-1 In Node, !- Node 1 Name + HPWHAirInletNode; !- Node 2 Name + + NodeList, + SPACE5-1 Out Nodes, !- Name + HPWHAirOutletNode; !- Node 1 Name + + ZoneHVAC:EquipmentConnections, + SPACE1-1, !- Zone Name + SPACE1-1 Eq, !- Zone Conditioning Equipment List Name + SPACE1-1 In Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + SPACE1-1 Node, !- Zone Air Node Name + SPACE1-1 Out Node; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + SPACE2-1, !- Zone Name + SPACE2-1 Eq, !- Zone Conditioning Equipment List Name + SPACE2-1 In Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + SPACE2-1 Node, !- Zone Air Node Name + SPACE2-1 Out Node; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + SPACE3-1, !- Zone Name + SPACE3-1 Eq, !- Zone Conditioning Equipment List Name + SPACE3-1 In Nodes, !- Zone Air Inlet Node or NodeList Name + , !- Zone Air Exhaust Node or NodeList Name + SPACE3-1 Node, !- Zone Air Node Name + SPACE3-1 Out Node; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + SPACE4-1, !- Zone Name + SPACE4-1 Eq, !- Zone Conditioning Equipment List Name + SPACE4-1 In Nodes, !- Zone Air Inlet Node or NodeList Name + SPACE4-1 Out Nodes, !- Zone Air Exhaust Node or NodeList Name + SPACE4-1 Node, !- Zone Air Node Name + SPACE4-1 Out Node; !- Zone Return Air Node Name + + ZoneHVAC:EquipmentConnections, + SPACE5-1, !- Zone Name + SPACE5-1 Eq, !- Zone Conditioning Equipment List Name + SPACE5-1 In Nodes, !- Zone Air Inlet Node or NodeList Name + SPACE5-1 Out Nodes, !- Zone Air Exhaust Node or NodeList Name + SPACE5-1 Node, !- Zone Air Node Name + SPACE5-1 Out Node; !- Zone Return Air Node Name + + ZoneControl:Thermostat, + SPACE1-1 Control, !- Name + SPACE1-1, !- Zone or ZoneList Name + Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + DualSetPoint; !- Control 1 Name + + ZoneControl:Thermostat, + SPACE2-1 Control, !- Name + SPACE2-1, !- Zone or ZoneList Name + Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + DualSetPoint; !- Control 1 Name + + ZoneControl:Humidistat, + Space2-1 Humidistat, !- Name + SPACE2-1, !- Zone Name + Seasonal Relative Humidity Sch; !- Humidifying Relative Humidity Setpoint Schedule Name + + ZoneControl:Thermostat, + SPACE3-1 Control, !- Name + SPACE3-1, !- Zone or ZoneList Name + Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + DualSetPoint; !- Control 1 Name + + ZoneControl:Thermostat, + SPACE4-1 Control, !- Name + SPACE4-1, !- Zone or ZoneList Name + Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + DualSetPoint; !- Control 1 Name + + ZoneControl:Thermostat, + SPACE5-1 Control, !- Name + SPACE5-1, !- Zone or ZoneList Name + Zone Control Type Sched, !- Control Type Schedule Name + ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type + DualSetPoint; !- Control 1 Name + + ThermostatSetpoint:SingleHeating, + HeatingSetpoint, !- Name + Htg-SetP-Sch; !- Setpoint Temperature Schedule Name + + ThermostatSetpoint:SingleCooling, + CoolingSetpoint, !- Name + Clg-SetP-Sch; !- Setpoint Temperature Schedule Name + + ThermostatSetpoint:SingleHeating, + PlenumHeatingSetpoint, !- Name + PlenumHtg-SetP-Sch; !- Setpoint Temperature Schedule Name + + ThermostatSetpoint:SingleCooling, + PlenumCoolingSetpoint, !- Name + PlenumClg-SetP-Sch; !- Setpoint Temperature Schedule Name + + ThermostatSetpoint:DualSetpoint, + DualSetPoint, !- Name + Htg-SetP-Sch, !- Heating Setpoint Temperature Schedule Name + Clg-SetP-Sch; !- Cooling Setpoint Temperature Schedule Name + + ZoneHVAC:EquipmentList, + SPACE1-1 Eq, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + SPACE1-1 ATU, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + SPACE2-1 Eq, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + SPACE2-1 ATU, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + SPACE3-1 Eq, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + SPACE3-1 ATU, !- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1; !- Zone Equipment 1 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + SPACE4-1 Eq, !- Name + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 1 Object Type + SPACE4-1 ATU, !- Zone Equipment 1 Name + 2, !- Zone Equipment 1 Cooling Sequence + 2, !- Zone Equipment 1 Heating or No-Load Sequence + WaterHeater:HeatPump, !- Zone Equipment 2 Object Type + Zone4HeatPumpWaterHeater,!- Zone Equipment 2 Name + 1, !- Zone Equipment 2 Cooling Sequence + 1; !- Zone Equipment 2 Heating or No-Load Sequence + + ZoneHVAC:EquipmentList, + SPACE5-1 Eq, !- Name + WaterHeater:HeatPump, !- Zone Equipment 1 Object Type + Zone5HeatPumpWaterHeater,!- Zone Equipment 1 Name + 1, !- Zone Equipment 1 Cooling Sequence + 1, !- Zone Equipment 1 Heating or No-Load Sequence + ZoneHVAC:AirDistributionUnit, !- Zone Equipment 2 Object Type + SPACE5-1 ATU, !- Zone Equipment 2 Name + 2, !- Zone Equipment 2 Cooling Sequence + 2; !- Zone Equipment 2 Heating or No-Load Sequence + + ZoneHVAC:AirDistributionUnit, + SPACE1-1 ATU, !- Name + SPACE1-1 In Node, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + SPACE1-1 VAV Reheat; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + SPACE2-1 ATU, !- Name + SPACE2-1 In Node, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + SPACE2-1 VAV Reheat; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + SPACE3-1 ATU, !- Name + SPACE3-1 In Node, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + SPACE3-1 VAV Reheat; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + SPACE4-1 ATU, !- Name + SPACE4-1 In Node, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + SPACE4-1 VAV Reheat; !- Air Terminal Name + + ZoneHVAC:AirDistributionUnit, + SPACE5-1 ATU, !- Name + SPACE5-1 In Node, !- Air Distribution Unit Outlet Node Name + AirTerminal:SingleDuct:VAV:Reheat, !- Air Terminal Object Type + SPACE5-1 VAV Reheat; !- Air Terminal Name + + AirTerminal:SingleDuct:VAV:Reheat, + SPACE1-1 VAV Reheat, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + SPACE1-1 Zone Coil Air In Node, !- Damper Air Outlet Node Name + SPACE1-1 ATU In Node, !- Air Inlet Node Name + autosize, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + SPACE1-1 Zone Coil, !- Reheat Coil Name + autosize, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + SPACE1-1 In Node, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + Reverse, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + SPACE2-1 VAV Reheat, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + SPACE2-1 Zone Coil Air In Node, !- Damper Air Outlet Node Name + SPACE2-1 ATU In Node, !- Air Inlet Node Name + autosize, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + SPACE2-1 Zone Coil, !- Reheat Coil Name + autosize, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + SPACE2-1 In Node, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + Reverse, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + SPACE3-1 VAV Reheat, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + SPACE3-1 Zone Coil Air In Node, !- Damper Air Outlet Node Name + SPACE3-1 ATU In Node, !- Air Inlet Node Name + autosize, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + SPACE3-1 Zone Coil, !- Reheat Coil Name + autosize, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + SPACE3-1 In Node, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + Reverse, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + SPACE4-1 VAV Reheat, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + SPACE4-1 Zone Coil Air In Node, !- Damper Air Outlet Node Name + SPACE4-1 ATU In Node, !- Air Inlet Node Name + autosize, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + SPACE4-1 Zone Coil, !- Reheat Coil Name + autosize, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + SPACE4-1 In Node, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + Reverse, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + AirTerminal:SingleDuct:VAV:Reheat, + SPACE5-1 VAV Reheat, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + SPACE5-1 Zone Coil Air In Node, !- Damper Air Outlet Node Name + SPACE5-1 ATU In Node, !- Air Inlet Node Name + autosize, !- Maximum Air Flow Rate {m3/s} + Constant, !- Zone Minimum Air Flow Input Method + 0.3, !- Constant Minimum Air Flow Fraction + , !- Fixed Minimum Air Flow Rate {m3/s} + , !- Minimum Air Flow Fraction Schedule Name + Coil:Heating:Water, !- Reheat Coil Object Type + SPACE5-1 Zone Coil, !- Reheat Coil Name + autosize, !- Maximum Hot Water or Steam Flow Rate {m3/s} + 0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s} + SPACE5-1 In Node, !- Air Outlet Node Name + 0.001, !- Convergence Tolerance + Reverse, !- Damper Heating Action + AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2} + AUTOCALCULATE; !- Maximum Flow Fraction During Reheat + + Coil:Heating:Water, + SPACE1-1 Zone Coil, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + autosize, !- U-Factor Times Area Value {W/K} + autosize, !- Maximum Water Flow Rate {m3/s} + SPACE1-1 Zone Coil Water In Node, !- Water Inlet Node Name + SPACE1-1 Zone Coil Water Out Node, !- Water Outlet Node Name + SPACE1-1 Zone Coil Air In Node, !- Air Inlet Node Name + SPACE1-1 In Node, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + autosize, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + SPACE2-1 Zone Coil, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + autosize, !- U-Factor Times Area Value {W/K} + autosize, !- Maximum Water Flow Rate {m3/s} + SPACE2-1 Zone Coil Water In Node, !- Water Inlet Node Name + SPACE2-1 Zone Coil Water Out Node, !- Water Outlet Node Name + SPACE2-1 Zone Coil Air In Node, !- Air Inlet Node Name + SPACE2-1 In Node, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + autosize, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + SPACE3-1 Zone Coil, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + autosize, !- U-Factor Times Area Value {W/K} + autosize, !- Maximum Water Flow Rate {m3/s} + SPACE3-1 Zone Coil Water In Node, !- Water Inlet Node Name + SPACE3-1 Zone Coil Water Out Node, !- Water Outlet Node Name + SPACE3-1 Zone Coil Air In Node, !- Air Inlet Node Name + SPACE3-1 In Node, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + autosize, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + SPACE4-1 Zone Coil, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + autosize, !- U-Factor Times Area Value {W/K} + autosize, !- Maximum Water Flow Rate {m3/s} + SPACE4-1 Zone Coil Water In Node, !- Water Inlet Node Name + SPACE4-1 Zone Coil Water Out Node, !- Water Outlet Node Name + SPACE4-1 Zone Coil Air In Node, !- Air Inlet Node Name + SPACE4-1 In Node, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + autosize, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Coil:Heating:Water, + SPACE5-1 Zone Coil, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + autosize, !- U-Factor Times Area Value {W/K} + autosize, !- Maximum Water Flow Rate {m3/s} + SPACE5-1 Zone Coil Water In Node, !- Water Inlet Node Name + SPACE5-1 Zone Coil Water Out Node, !- Water Outlet Node Name + SPACE5-1 Zone Coil Air In Node, !- Air Inlet Node Name + SPACE5-1 In Node, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + autosize, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + AirLoopHVAC:ReturnPath, + ReturnAirPath1, !- Name + PLENUM-1 Out Node, !- Return Air Path Outlet Node Name + AirLoopHVAC:ReturnPlenum,!- Component 1 Object Type + Return-Plenum-1; !- Component 1 Name + + AirLoopHVAC:ReturnPlenum, + Return-Plenum-1, !- Name + PLENUM-1, !- Zone Name + PLENUM-1 Node, !- Zone Node Name + PLENUM-1 Out Node, !- Outlet Node Name + , !- Induced Air Outlet Node or NodeList Name + SPACE1-1 Out Node, !- Inlet 1 Node Name + SPACE2-1 Out Node, !- Inlet 2 Node Name + SPACE3-1 Out Node, !- Inlet 3 Node Name + SPACE4-1 Out Node, !- Inlet 4 Node Name + SPACE5-1 Out Node; !- Inlet 5 Node Name + + AirLoopHVAC:SupplyPath, + Zone Supply Air Path 1, !- Name + Zone Eq In Node, !- Supply Air Path Inlet Node Name + AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type + Zone Supply Air Splitter 1; !- Component 1 Name + + AirLoopHVAC:ZoneSplitter, + Zone Supply Air Splitter 1, !- Name + Zone Eq In Node, !- Inlet Node Name + SPACE1-1 ATU In Node, !- Outlet 1 Node Name + SPACE2-1 ATU In Node, !- Outlet 2 Node Name + SPACE3-1 ATU In Node, !- Outlet 3 Node Name + SPACE4-1 ATU In Node, !- Outlet 4 Node Name + SPACE5-1 ATU In Node; !- Outlet 5 Node Name + + AirLoopHVAC, + VAV Sys 1, !- Name + VAV Sys 1 Controllers, !- Controller List Name + VAV Sys 1 Avail List, !- Availability Manager List Name + autosize, !- Design Supply Air Flow Rate {m3/s} + VAV Sys 1 Branches, !- Branch List Name + , !- Connector List Name + VAV Sys 1 Inlet Node, !- Supply Side Inlet Node Name + PLENUM-1 Out Node, !- Demand Side Outlet Node Name + Zone Eq In Node, !- Demand Side Inlet Node Names + VAV Sys 1 Outlet Node; !- Supply Side Outlet Node Names + + AirLoopHVAC:ControllerList, + VAV Sys 1 Controllers, !- Name + Controller:WaterCoil, !- Controller 1 Object Type + Central Cooling Coil Contoller 1, !- Controller 1 Name + Controller:WaterCoil, !- Controller 2 Object Type + Central Heating Coil Contoller 1; !- Controller 2 Name + + AvailabilityManagerAssignmentList, + VAV Sys 1 Avail List, !- Name + AvailabilityManager:Scheduled, !- Availability Manager 1 Object Type + VAV Sys 1 Avail; !- Availability Manager 1 Name + + AvailabilityManager:Scheduled, + VAV Sys 1 Avail, !- Name + FanAvailSched; !- Schedule Name + + BranchList, + VAV Sys 1 Branches, !- Name + VAV Sys 1 Main Branch; !- Branch 1 Name + + Branch, + VAV Sys 1 Main Branch, !- Name + autosize, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + AirLoopHVAC:OutdoorAirSystem, !- Component 1 Object Type + OA Sys 1, !- Component 1 Name + VAV Sys 1 Inlet Node, !- Component 1 Inlet Node Name + Mixed Air Node 1, !- Component 1 Outlet Node Name + PASSIVE, !- Component 1 Branch Control Type + Coil:Cooling:Water, !- Component 2 Object Type + Main Cooling Coil 1, !- Component 2 Name + Mixed Air Node 1, !- Component 2 Inlet Node Name + Main Cooling Coil 1 Outlet Node, !- Component 2 Outlet Node Name + PASSIVE, !- Component 2 Branch Control Type + Coil:Heating:Water, !- Component 3 Object Type + Main Heating Coil 1, !- Component 3 Name + Main Cooling Coil 1 Outlet Node, !- Component 3 Inlet Node Name + Main Heating Coil 1 Outlet Node, !- Component 3 Outlet Node Name + PASSIVE, !- Component 3 Branch Control Type + Fan:VariableVolume, !- Component 4 Object Type + Supply Fan 1, !- Component 4 Name + Main Heating Coil 1 Outlet Node, !- Component 4 Inlet Node Name + VAV Sys 1 Outlet Node, !- Component 4 Outlet Node Name + ACTIVE; !- Component 4 Branch Control Type + + AirLoopHVAC:OutdoorAirSystem, + OA Sys 1, !- Name + OA Sys 1 Controllers, !- Controller List Name + OA Sys 1 Equipment, !- Outdoor Air Equipment List Name + VAV Sys 1 Avail List; !- Availability Manager List Name + + AirLoopHVAC:ControllerList, + OA Sys 1 Controllers, !- Name + Controller:OutdoorAir, !- Controller 1 Object Type + OA Controller 1; !- Controller 1 Name + + AirLoopHVAC:OutdoorAirSystem:EquipmentList, + OA Sys 1 Equipment, !- Name + OutdoorAir:Mixer, !- Component 1 Object Type + OA Mixing Box 1; !- Component 1 Name + + OutdoorAir:Mixer, + OA Mixing Box 1, !- Name + Mixed Air Node 1, !- Mixed Air Node Name + Outside Air Inlet Node 1,!- Outdoor Air Stream Node Name + Relief Air Outlet Node 1,!- Relief Air Stream Node Name + VAV Sys 1 Inlet Node; !- Return Air Stream Node Name + + Coil:Cooling:Water, + Main Cooling Coil 1, !- Name + CoolingCoilAvailSched, !- Availability Schedule Name + autosize, !- Design Water Flow Rate {m3/s} + autosize, !- Design Air Flow Rate {m3/s} + autosize, !- Design Inlet Water Temperature {C} + autosize, !- Design Inlet Air Temperature {C} + autosize, !- Design Outlet Air Temperature {C} + autosize, !- Design Inlet Air Humidity Ratio {kgWater/kgDryAir} + autosize, !- Design Outlet Air Humidity Ratio {kgWater/kgDryAir} + Main Cooling Coil 1 Water Inlet Node, !- Water Inlet Node Name + Main Cooling Coil 1 Water Outlet Node, !- Water Outlet Node Name + Mixed Air Node 1, !- Air Inlet Node Name + Main Cooling Coil 1 Outlet Node, !- Air Outlet Node Name + SimpleAnalysis, !- Type of Analysis + CrossFlow; !- Heat Exchanger Configuration + + Coil:Heating:Water, + Main Heating Coil 1, !- Name + ReheatCoilAvailSched, !- Availability Schedule Name + autosize, !- U-Factor Times Area Value {W/K} + autosize, !- Maximum Water Flow Rate {m3/s} + Main Heating Coil 1 Water Inlet Node, !- Water Inlet Node Name + Main Heating Coil 1 Water Outlet Node, !- Water Outlet Node Name + Main Cooling Coil 1 Outlet Node, !- Air Inlet Node Name + Main Heating Coil 1 Outlet Node, !- Air Outlet Node Name + UFactorTimesAreaAndDesignWaterFlowRate, !- Performance Input Method + autosize, !- Rated Capacity {W} + 82.2, !- Rated Inlet Water Temperature {C} + 16.6, !- Rated Inlet Air Temperature {C} + 71.1, !- Rated Outlet Water Temperature {C} + 32.2, !- Rated Outlet Air Temperature {C} + ; !- Rated Ratio for Air and Water Convection + + Fan:VariableVolume, + Supply Fan 1, !- Name + FanAvailSched, !- Availability Schedule Name + 0.7, !- Fan Total Efficiency + 600.0, !- Pressure Rise {Pa} + autosize, !- Maximum Flow Rate {m3/s} + Fraction, !- Fan Power Minimum Flow Rate Input Method + 0.25, !- Fan Power Minimum Flow Fraction + , !- Fan Power Minimum Air Flow Rate {m3/s} + 0.9, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + 0.35071223, !- Fan Power Coefficient 1 + 0.30850535, !- Fan Power Coefficient 2 + -0.54137364, !- Fan Power Coefficient 3 + 0.87198823, !- Fan Power Coefficient 4 + 0.000, !- Fan Power Coefficient 5 + Main Heating Coil 1 Outlet Node, !- Air Inlet Node Name + VAV Sys 1 Outlet Node; !- Air Outlet Node Name + + SetpointManager:MixedAir, + Mixed Air Temp Manager 2,!- Name + Temperature, !- Control Variable + VAV Sys 1 Outlet Node, !- Reference Setpoint Node Name + Main Heating Coil 1 Outlet Node, !- Fan Inlet Node Name + VAV Sys 1 Outlet Node, !- Fan Outlet Node Name + Main Branch SetPoint Node List; !- Setpoint Node or NodeList Name + + NodeList, + Main Branch SetPoint Node List, !- Name + Main Cooling Coil 1 Outlet Node, !- Node 1 Name + Main Heating Coil 1 Outlet Node; !- Node 2 Name + + Controller:WaterCoil, + Central Cooling Coil Contoller 1, !- Name + TemperatureAndHumidityRatio, !- Control Variable + Reverse, !- Action + FLOW, !- Actuator Variable + Main Cooling Coil 1 Outlet Node, !- Sensor Node Name + Main Cooling Coil 1 Water Inlet Node, !- Actuator Node Name + 0.002, !- Controller Convergence Tolerance {deltaC} + autosize, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + + ! This object uses results from ZoneControl:Humidistat and needs to reference the same zone + + SetpointManager:SingleZone:Humidity:Maximum, + Space2-1 Humidistat Manager, !- Name + , !- Control Variable + , !- Schedule Name + Main Cooling Coil 1 Outlet Node, !- Setpoint Node or NodeList Name + SPACE2-1 Node; !- Control Zone Air Node Name + + Controller:OutdoorAir, + OA Controller 1, !- Name + Relief Air Outlet Node 1,!- Relief Air Outlet Node Name + VAV Sys 1 Inlet Node, !- Return Air Node Name + Mixed Air Node 1, !- Mixed Air Node Name + Outside Air Inlet Node 1,!- Actuator Node Name + 0.25, !- Minimum Outdoor Air Flow Rate {m3/s} + 0.25, !- Maximum Outdoor Air Flow Rate {m3/s} + FixedDryBulb, !- Economizer Control Type + ModulateFlow, !- Economizer Control Action Type + 19., !- Economizer Maximum Limit Dry-Bulb Temperature {C} + , !- Economizer Maximum Limit Enthalpy {J/kg} + , !- Economizer Maximum Limit Dewpoint Temperature {C} + , !- Electronic Enthalpy Limit Curve Name + 4., !- Economizer Minimum Limit Dry-Bulb Temperature {C} + NoLockout, !- Lockout Type + FixedMinimum, !- Minimum Limit Type + Min OA Sched; !- Minimum Outdoor Air Schedule Name + + Controller:WaterCoil, + Central Heating Coil Contoller 1, !- Name + Temperature, !- Control Variable + Normal, !- Action + FLOW, !- Actuator Variable + Main Heating Coil 1 Outlet Node, !- Sensor Node Name + Main Heating Coil 1 Water Inlet Node, !- Actuator Node Name + 0.002, !- Controller Convergence Tolerance {deltaC} + autosize, !- Maximum Actuated Flow {m3/s} + 0.0; !- Minimum Actuated Flow {m3/s} + + SetpointManager:Scheduled, + Supply Air Temp Manager 1, !- Name + Temperature, !- Control Variable + Seasonal Reset Supply Air Temp Sch, !- Schedule Name + Supply Air Temp Nodes 1; !- Setpoint Node or NodeList Name + + SetpointManager:MixedAir, + Mixed Air Temp Manager 1,!- Name + Temperature, !- Control Variable + VAV Sys 1 Outlet Node, !- Reference Setpoint Node Name + Main Heating Coil 1 Outlet Node, !- Fan Inlet Node Name + VAV Sys 1 Outlet Node, !- Fan Outlet Node Name + Mixed Air Node 1; !- Setpoint Node or NodeList Name + + NodeList, + Supply Air Temp Nodes 1, !- Name + VAV Sys 1 Outlet Node; !- Node 1 Name + + PlantLoop, + Hot Water Loop, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + Hot Loop Operation, !- Plant Equipment Operation Scheme Name + HW Supply Outlet Node, !- Loop Temperature Setpoint Node Name + 100, !- Maximum Loop Temperature {C} + 10, !- Minimum Loop Temperature {C} + autosize, !- Maximum Loop Flow Rate {m3/s} + 0.0, !- Minimum Loop Flow Rate {m3/s} + autocalculate, !- Plant Loop Volume {m3} + HW Supply Inlet Node, !- Plant Side Inlet Node Name + HW Supply Outlet Node, !- Plant Side Outlet Node Name + Heating Supply Side Branches, !- Plant Side Branch List Name + Heating Supply Side Connectors, !- Plant Side Connector List Name + HW Demand Inlet Node, !- Demand Side Inlet Node Name + HW Demand Outlet Node, !- Demand Side Outlet Node Name + Heating Demand Side Branches, !- Demand Side Branch List Name + Heating Demand Side Connectors, !- Demand Side Connector List Name + SequentialLoad; !- Load Distribution Scheme + + SetpointManager:Scheduled, + Hot Water Loop Setpoint Manager, !- Name + Temperature, !- Control Variable + HW Loop Temp Schedule, !- Schedule Name + Hot Water Loop Setpoint Node List; !- Setpoint Node or NodeList Name + + NodeList, + Hot Water Loop Setpoint Node List, !- Name + HW Supply Outlet Node; !- Node 1 Name + + BranchList, + Heating Supply Side Branches, !- Name + Heating Supply Inlet Branch, !- Branch 1 Name + Central HPWH Branch, !- Branch 2 Name + Heating Supply Bypass Branch, !- Branch 3 Name + Heating Supply Outlet Branch; !- Branch 4 Name + + ConnectorList, + Heating Supply Side Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + Heating Supply Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + Heating Supply Mixer; !- Connector 2 Name + + Branch, + Heating Supply Inlet Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pump:VariableSpeed, !- Component 1 Object Type + HW Circ Pump, !- Component 1 Name + HW Supply Inlet Node, !- Component 1 Inlet Node Name + HW Pump Outlet Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + Central HPWH Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + WaterHeater:HeatPump, !- Component 1 Object Type + PlantHeatPumpWaterHeater,!- Component 1 Name + HPWH Use Inlet Node, !- Component 1 Inlet Node Name + HPWH Use Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Branch, + Heating Supply Bypass Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Heating Supply Side Bypass, !- Component 1 Name + Heating Supply Bypass Inlet Node, !- Component 1 Inlet Node Name + Heating Supply Bypass Outlet Node, !- Component 1 Outlet Node Name + BYPASS; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Heating Supply Side Bypass, !- Name + Heating Supply Bypass Inlet Node, !- Inlet Node Name + Heating Supply Bypass Outlet Node; !- Outlet Node Name + + Branch, + Heating Supply Outlet Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Heating Supply Outlet, !- Component 1 Name + Heating Supply Exit Pipe Inlet Node, !- Component 1 Inlet Node Name + HW Supply Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Heating Supply Outlet, !- Name + Heating Supply Exit Pipe Inlet Node, !- Inlet Node Name + HW Supply Outlet Node; !- Outlet Node Name + + BranchList, + Heating Demand Side Branches, !- Name + Heating Demand Inlet Branch, !- Branch 1 Name + SPACE1-1 Reheat Branch, !- Branch 2 Name + SPACE2-1 Reheat Branch, !- Branch 3 Name + SPACE3-1 Reheat Branch, !- Branch 4 Name + SPACE4-1 Reheat Branch, !- Branch 5 Name + SPACE5-1 Reheat Branch, !- Branch 6 Name + Main Heating Coil 1 Branch, !- Branch 7 Name + Heating Demand Bypass Branch, !- Branch 8 Name + Heating Demand Outlet Branch; !- Branch 9 Name + + ConnectorList, + Heating Demand Side Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + Heating Demand Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + Heating Demand Mixer; !- Connector 2 Name + + Branch, + Heating Demand Inlet Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Heating Demand Inlet Pipe, !- Component 1 Name + HW Demand Inlet Node, !- Component 1 Inlet Node Name + HW Demand Entrance Pipe Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Heating Demand Inlet Pipe, !- Name + HW Demand Inlet Node, !- Inlet Node Name + HW Demand Entrance Pipe Outlet Node; !- Outlet Node Name + + Branch, + Heating Demand Outlet Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Heating Demand Outlet Pipe, !- Component 1 Name + HW Demand Exit Pipe Inlet Node, !- Component 1 Inlet Node Name + HW Demand Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Heating Demand Outlet Pipe, !- Name + HW Demand Exit Pipe Inlet Node, !- Inlet Node Name + HW Demand Outlet Node; !- Outlet Node Name + + Branch, + SPACE1-1 Reheat Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + SPACE1-1 Zone Coil, !- Component 1 Name + SPACE1-1 Zone Coil Water In Node, !- Component 1 Inlet Node Name + SPACE1-1 Zone Coil Water Out Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + SPACE2-1 Reheat Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + SPACE2-1 Zone Coil, !- Component 1 Name + SPACE2-1 Zone Coil Water In Node, !- Component 1 Inlet Node Name + SPACE2-1 Zone Coil Water Out Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + SPACE3-1 Reheat Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + SPACE3-1 Zone Coil, !- Component 1 Name + SPACE3-1 Zone Coil Water In Node, !- Component 1 Inlet Node Name + SPACE3-1 Zone Coil Water Out Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + SPACE4-1 Reheat Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + SPACE4-1 Zone Coil, !- Component 1 Name + SPACE4-1 Zone Coil Water In Node, !- Component 1 Inlet Node Name + SPACE4-1 Zone Coil Water Out Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + SPACE5-1 Reheat Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + SPACE5-1 Zone Coil, !- Component 1 Name + SPACE5-1 Zone Coil Water In Node, !- Component 1 Inlet Node Name + SPACE5-1 Zone Coil Water Out Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + Main Heating Coil 1 Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Heating:Water, !- Component 1 Object Type + Main Heating Coil 1, !- Component 1 Name + Main Heating Coil 1 Water Inlet Node, !- Component 1 Inlet Node Name + Main Heating Coil 1 Water Outlet Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + Heating Demand Bypass Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Heating Demand Bypass, !- Component 1 Name + Heating Demand Bypass Inlet Node, !- Component 1 Inlet Node Name + Heating Demand Bypass Outlet Node, !- Component 1 Outlet Node Name + BYPASS; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Heating Demand Bypass, !- Name + Heating Demand Bypass Inlet Node, !- Inlet Node Name + Heating Demand Bypass Outlet Node; !- Outlet Node Name + + Connector:Splitter, + Heating Demand Splitter, !- Name + Heating Demand Inlet Branch, !- Inlet Branch Name + SPACE1-1 Reheat Branch, !- Outlet Branch 1 Name + SPACE2-1 Reheat Branch, !- Outlet Branch 2 Name + SPACE3-1 Reheat Branch, !- Outlet Branch 3 Name + SPACE4-1 Reheat Branch, !- Outlet Branch 4 Name + SPACE5-1 Reheat Branch, !- Outlet Branch 5 Name + Main Heating Coil 1 Branch, !- Outlet Branch 6 Name + Heating Demand Bypass Branch; !- Outlet Branch 7 Name + + Connector:Mixer, + Heating Demand Mixer, !- Name + Heating Demand Outlet Branch, !- Outlet Branch Name + SPACE1-1 Reheat Branch, !- Inlet Branch 1 Name + SPACE2-1 Reheat Branch, !- Inlet Branch 2 Name + SPACE3-1 Reheat Branch, !- Inlet Branch 3 Name + SPACE4-1 Reheat Branch, !- Inlet Branch 4 Name + SPACE5-1 Reheat Branch, !- Inlet Branch 5 Name + Main Heating Coil 1 Branch, !- Inlet Branch 6 Name + Heating Demand Bypass Branch; !- Inlet Branch 7 Name + + Connector:Splitter, + Heating Supply Splitter, !- Name + Heating Supply Inlet Branch, !- Inlet Branch Name + Central HPWH Branch, !- Outlet Branch 1 Name + Heating Supply Bypass Branch; !- Outlet Branch 2 Name + + Connector:Mixer, + Heating Supply Mixer, !- Name + Heating Supply Outlet Branch, !- Outlet Branch Name + Central HPWH Branch, !- Inlet Branch 1 Name + Heating Supply Bypass Branch; !- Inlet Branch 2 Name + + PlantEquipmentOperationSchemes, + Hot Loop Operation, !- Name + PlantEquipmentOperation:HeatingLoad, !- Control Scheme 1 Object Type + Central HPWH Only, !- Control Scheme 1 Name + PlantOnSched; !- Control Scheme 1 Schedule Name + + PlantEquipmentOperation:HeatingLoad, + Central HPWH Only, !- Name + 0, !- Load Range 1 Lower Limit {W} + 1000000, !- Load Range 1 Upper Limit {W} + heating plant; !- Range 1 Equipment List Name + +! WATER HEATER:MIXED, !- KEY--Plant Equip 1 +! HPWHPlantTank; !- Equip Name 1 + + PlantEquipmentList, + heating plant, !- Name + WaterHeater:HeatPump, !- Equipment 1 Object Type + PlantHeatPumpWaterHeater;!- Equipment 1 Name + +!************** Plant Heat Pump Water Heater Inputs *********************** + + WaterHeater:HeatPump, + PlantHeatPumpWaterHeater,!- Name + PlantHPWHSch, !- Availability Schedule Name + PlantHPWHTempSch, !- Compressor Setpoint Temperature Schedule Name + 2.0, !- Dead Band Temperature Difference {deltaC} + HPPlantWaterInletNode, !- Condenser Water Inlet Node Name + HPPlantWaterOutletNode, !- Condenser Water Outlet Node Name + 0.00115525, !- Condenser Water Flow Rate {m3/s} + 1.00695, !- Evaporator Air Flow Rate {m3/s} + OutdoorAirOnly, !- Inlet Air Configuration + , !- Air Inlet Node Name + , !- Air Outlet Node Name + HPPlantAirInletNode, !- Outdoor Air Node Name + HPPlantAirOutletNode, !- Exhaust Air Node Name + , !- Inlet Air Temperature Schedule Name + , !- Inlet Air Humidity Schedule Name + , !- Inlet Air Zone Name + WaterHeater:Mixed, !- Tank Object Type + HPWHPlantTank, !- Tank Name + HPWH Use Inlet Node, !- Tank Use Side Inlet Node Name + HPWH Use Outlet Node, !- Tank Use Side Outlet Node Name + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, !- DX Coil Object Type + HPWHPlantDXCoilVS, !- DX Coil Name + 11.0, !- Minimum Inlet Air Temperature for Compressor Operation {C} + Outdoors, !- Compressor Location + , !- Compressor Ambient Temperature Schedule Name + Fan:OnOff, !- Fan Object Type + HPWHPlantFan, !- Fan Name + BlowThrough, !- Fan Placement + , !- On Cycle Parasitic Electric Load {W} + , !- Off Cycle Parasitic Electric Load {W} + ; !- Parasitic Heat Rejection Location + + WaterHeater:Mixed, + HPWHPlantTank, !- Name + 0.757, !- Tank Volume {m3} + Plant Hot Water Setpoint Temp Schedule, !- Setpoint Temperature Schedule Name + 2.0, !- Deadband Temperature Difference {deltaC} + 82.2222, !- Maximum Temperature Limit {C} + CYCLE, !- Heater Control Type + 25000, !- Heater Maximum Capacity {W} + 0, !- Heater Minimum Capacity {W} + , !- Heater Ignition Minimum Flow Rate {m3/s} + , !- Heater Ignition Delay {s} + ELECTRICITY, !- Heater Fuel Type + 0.98, !- Heater Thermal Efficiency + , !- Part Load Factor Curve Name + 10, !- Off Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- Off Cycle Parasitic Fuel Type + 0, !- Off Cycle Parasitic Heat Fraction to Tank + 30, !- On Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- On Cycle Parasitic Fuel Type + 0, !- On Cycle Parasitic Heat Fraction to Tank + Outdoors, !- Ambient Temperature Indicator + , !- Ambient Temperature Schedule Name + , !- Ambient Temperature Zone Name + HPWHPlantTank OA Node, !- Ambient Temperature Outdoor Air Node Name + 0.0, !- Off Cycle Loss Coefficient to Ambient Temperature {W/K} + 0.0, !- Off Cycle Loss Fraction to Zone + 0.0, !- On Cycle Loss Coefficient to Ambient Temperature {W/K} + 0.0, !- On Cycle Loss Fraction to Zone + , !- Peak Use Flow Rate {m3/s} + , !- Use Flow Rate Fraction Schedule Name + , !- Cold Water Supply Temperature Schedule Name + HPWH Use Inlet Node, !- Use Side Inlet Node Name + HPWH Use Outlet Node, !- Use Side Outlet Node Name + 0.98, !- Use Side Effectiveness + HPPlantWaterOutletNode, !- Source Side Inlet Node Name + HPPlantWaterInletNode, !- Source Side Outlet Node Name + 0.98, !- Source Side Effectiveness + autosize; !- Use Side Design Flow Rate {m3/s} + + OutdoorAir:Node, + HPWHPlantTank OA Node; !- Name + + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, + HPWHPlantDXCoilVS, !- Name + 10, !- Number of Speeds + 10, !- Nominal speed level + 25000.0, !- Rated Heating Capacity {W} + 29.44, !- Rated Evaporator Inlet Air Dry-Bulb Temperature {C} + 22.22, !- Rated Evaporator Inlet Air Wet-Bulb Temperature {C} + 55.72, !- Rated Condenser Inlet Water Temperature {C} + 1.00695, !- Rated Evaporator Air Flow Rate {m3/s} + 0.00115525, !- Rated Condenser Water Flow Rate {m3/s} + No, !- Evaporator Fan Power Included in Rated COP + No, !- Condenser Pump Power Included in Rated COP + No, !- Condenser Pump Heat Included in Rated Heating Capacity and Rated COP + 0.1, !- Fraction of Condenser Pump Heat to Water + HPPlantFanAirOutletNode, !- Evaporator Air Inlet Node Name + HPPlantAirOutletNode, !- Evaporator Air Outlet Node Name + HPPlantWaterInletNode, !- Condenser Water Inlet Node Name + HPPlantWaterOutletNode, !- Condenser Water Outlet Node Name + 100.0, !- Crankcase Heater Capacity {W} + 5.0, !- Maximum Ambient Temperature for Crankcase Heater Operation {C} + WetBulbTemperature, !- Evaporator Air Temperature Type for Curve Objects + HPWHPLFFPLR, !- Part Load Fraction Correlation Curve Name + 400.00, !- Speed 1 Water Heating capacity {W} of Reference Unit + 5.0, !- Speed 1 Water Heating COP {W/W} of Reference Unit + 0.80, !- Speed 1 Sensible Heat Transfer Ratio of Reference Unit + 0.020140, !- Speed 1 Air Flow Rate of Reference Unit + 0.000018, !- Speed 1 water Air Flow Rate of Reference Unit + 10.0, !- Speed 1 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 800.00, !- Speed 2 Water Heating capacity {W} of Reference Unit + 4.8, !- Speed 2 Water Heating COP {W/W} of Reference Unit + 0.79, !- Speed 2 Sensible Heat Transfer Ratio of Reference Unit + 0.040280, !- Speed 2 Air Flow Rate of Reference Unit + 0.000036, !- Speed 2 water Air Flow Rate of Reference Unit + 10.0, !- Speed 2 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1200.00, !- Speed 3 Water Heating capacity {W} of Reference Unit + 4.4, !- Speed 3 Water Heating COP {W/W} of Reference Unit + 0.78, !- Speed 3 Sensible Heat Transfer Ratio of Reference Unit + 0.060420, !- Speed 3 Air Flow Rate of Reference Unit + 0.000054, !- Speed 3 water Air Flow Rate of Reference Unit + 10.0, !- Speed 3 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1600.00, !- Speed 4 Water Heating capacity {W} of Reference Unit + 4.0, !- Speed 4 Water Heating COP {W/W} of Reference Unit + 0.77, !- Speed 4 Sensible Heat Transfer Ratio of Reference Unit + 0.080560, !- Speed 4 Air Flow Rate of Reference Unit + 0.000072, !- Speed 4 water Air Flow Rate of Reference Unit + 10.0, !- Speed 4 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2000.00, !- Speed 5 Water Heating capacity {W} of Reference Unit + 3.8, !- Speed 5 Water Heating COP {W/W} of Reference Unit + 0.76, !- Speed 5 Sensible Heat Transfer Ratio of Reference Unit + 0.100700, !- Speed 5 Air Flow Rate of Reference Unit + 0.000090, !- Speed 5 water Air Flow Rate of Reference Unit + 10.0, !- Speed 5 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2400.00, !- Speed 6 Water Heating capacity {W} of Reference Unit + 3.4, !- Speed 6 Water Heating COP {W/W} of Reference Unit + 0.75, !- Speed 6 Sensible Heat Transfer Ratio of Reference Unit + 0.120840, !- Speed 6 Air Flow Rate of Reference Unit + 0.000108, !- Speed 6 water Air Flow Rate of Reference Unit + 10.0, !- Speed 6 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2800.00, !- Speed 7 Water Heating capacity {W} of Reference Unit + 3.0, !- Speed 7 Water Heating COP {W/W} of Reference Unit + 0.74, !- Speed 7 Sensible Heat Transfer Ratio of Reference Unit + 0.140980, !- Speed 7 Air Flow Rate of Reference Unit + 0.000126, !- Speed 7 water Air Flow Rate of Reference Unit + 10.0, !- Speed 7 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3200.00, !- Speed 8 Water Heating capacity {W} of Reference Unit + 2.6, !- Speed 8 Water Heating COP {W/W} of Reference Unit + 0.73, !- Speed 8 Sensible Heat Transfer Ratio of Reference Unit + 0.161120, !- Speed 8 Air Flow Rate of Reference Unit + 0.000144, !- Speed 8 water Air Flow Rate of Reference Unit + 10.0, !- Speed 8 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3600.00, !- Speed 9 Water Heating capacity {W} of Reference Unit + 2.3, !- Speed 9 Water Heating COP {W/W} of Reference Unit + 0.72, !- Speed 9 Sensible Heat Transfer Ratio of Reference Unit + 0.181260, !- Speed 9 Air Flow Rate of Reference Unit + 0.000162, !- Speed 9 water Air Flow Rate of Reference Unit + 10.0, !- Speed 9 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 4000.00, !- Speed 10 Water Heating capacity {W} of Reference Unit + 2.0, !- Speed 10 Water Heating COP {W/W} of Reference Unit + 0.70, !- Speed 10 Sensible Heat Transfer Ratio of Reference Unit + 0.201400, !- Speed 10 Air Flow Rate of Reference Unit + 0.000179, !- Speed 10 water Air Flow Rate of Reference Unit + 10.0, !- Speed 10 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic; !- Heating COP Function of Water Flow Fraction Curve Name + + Fan:OnOff, + HPWHPlantFan, !- Name + PlantHPWHSch, !- Availability Schedule Name + 0.7, !- Fan Total Efficiency + 100.0, !- Pressure Rise {Pa} + 2.6852, !- Maximum Flow Rate {m3/s} + 0.9, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + HPPlantAirInletNode, !- Air Inlet Node Name + HPPlantFanAirOutletNode; !- Air Outlet Node Name + + Schedule:Compact, + PlantHPWHSch, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,1.0; !- Field 3 + + Schedule:Compact, + PlantHPWHTempSch, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,80.0; !- Field 3 + + Schedule:Compact, + Plant Hot Water Setpoint Temp Schedule, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,70.0; !- Field 3 + +!*************** End of Plant Heat Pump Water Heater Inputs ***************** + + Pump:VariableSpeed, + HW Circ Pump, !- Name + HW Supply Inlet Node, !- Inlet Node Name + HW Pump Outlet Node, !- Outlet Node Name + autosize, !- Rated Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + autosize, !- Rated Power Consumption {W} + 0.9, !- Motor Efficiency + 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream + 0, !- Coefficient 1 of the Part Load Performance Curve + 1, !- Coefficient 2 of the Part Load Performance Curve + 0, !- Coefficient 3 of the Part Load Performance Curve + 0, !- Coefficient 4 of the Part Load Performance Curve + 0, !- Minimum Flow Rate {m3/s} + INTERMITTENT; !- Pump Control Type + + PlantLoop, + Chilled Water Loop, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + CW Loop Operation, !- Plant Equipment Operation Scheme Name + CW Supply Outlet Node, !- Loop Temperature Setpoint Node Name + 98, !- Maximum Loop Temperature {C} + 1, !- Minimum Loop Temperature {C} + autosize, !- Maximum Loop Flow Rate {m3/s} + 0.0, !- Minimum Loop Flow Rate {m3/s} + autocalculate, !- Plant Loop Volume {m3} + CW Supply Inlet Node, !- Plant Side Inlet Node Name + CW Supply Outlet Node, !- Plant Side Outlet Node Name + Cooling Supply Side Branches, !- Plant Side Branch List Name + Cooling Supply Side Connectors, !- Plant Side Connector List Name + CW Demand Inlet Node, !- Demand Side Inlet Node Name + CW Demand Outlet Node, !- Demand Side Outlet Node Name + Cooling Demand Side Branches, !- Demand Side Branch List Name + Cooling Demand Side Connectors, !- Demand Side Connector List Name + SequentialLoad; !- Load Distribution Scheme + + SetpointManager:Scheduled, + Chilled Water Loop Setpoint Manager, !- Name + Temperature, !- Control Variable + CW Loop Temp Schedule, !- Schedule Name + Chilled Water Loop Setpoint Node List; !- Setpoint Node or NodeList Name + + NodeList, + Chilled Water Loop Setpoint Node List, !- Name + CW Supply Outlet Node; !- Node 1 Name + + BranchList, + Cooling Supply Side Branches, !- Name + CW Pump Branch, !- Branch 1 Name + Central Chiller Branch, !- Branch 2 Name + Cooling Supply Bypass Branch, !- Branch 3 Name + Cooling Supply Outlet; !- Branch 4 Name + + BranchList, + Cooling Demand Side Branches, !- Name + Cooling Demand Inlet, !- Branch 1 Name + Cooling Coil Branch, !- Branch 2 Name + Cooling Demand Bypass Branch, !- Branch 3 Name + Cooling Demand Outlet; !- Branch 4 Name + + ConnectorList, + Cooling Supply Side Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + CW Loop Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + CW Loop Mixer; !- Connector 2 Name + + ConnectorList, + Cooling Demand Side Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + CW Demand Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + CW Demand Mixer; !- Connector 2 Name + + Branch, + Cooling Demand Inlet, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Cooling Demand Side Inlet Pipe, !- Component 1 Name + CW Demand Inlet Node, !- Component 1 Inlet Node Name + CW Demand Entrance Pipe Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Cooling Demand Side Inlet Pipe, !- Name + CW Demand Inlet Node, !- Inlet Node Name + CW Demand Entrance Pipe Outlet Node; !- Outlet Node Name + + Branch, + Cooling Coil Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Coil:Cooling:Water, !- Component 1 Object Type + Main Cooling Coil 1, !- Component 1 Name + Main Cooling Coil 1 Water Inlet Node, !- Component 1 Inlet Node Name + Main Cooling Coil 1 Water Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + Cooling Demand Bypass Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Cooling Demand Side Bypass, !- Component 1 Name + CW Demand Bypass Inlet Node, !- Component 1 Inlet Node Name + CW Demand Bypass Outlet Node, !- Component 1 Outlet Node Name + BYPASS; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Cooling Demand Side Bypass, !- Name + CW Demand Bypass Inlet Node, !- Inlet Node Name + CW Demand Bypass Outlet Node; !- Outlet Node Name + + Branch, + Cooling Demand Outlet, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + CW Demand Side Outlet Pipe, !- Component 1 Name + CW Demand Exit Pipe Inlet Node, !- Component 1 Inlet Node Name + CW Demand Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + CW Demand Side Outlet Pipe, !- Name + CW Demand Exit Pipe Inlet Node, !- Inlet Node Name + CW Demand Outlet Node; !- Outlet Node Name + + Branch, + Cooling Supply Outlet, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Supply Side Outlet Pipe, !- Component 1 Name + Supply Side Exit Pipe Inlet Node, !- Component 1 Inlet Node Name + CW Supply Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Supply Side Outlet Pipe, !- Name + Supply Side Exit Pipe Inlet Node, !- Inlet Node Name + CW Supply Outlet Node; !- Outlet Node Name + + Branch, + CW Pump Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pump:VariableSpeed, !- Component 1 Object Type + CW Circ Pump, !- Component 1 Name + CW Supply Inlet Node, !- Component 1 Inlet Node Name + CW Pump Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + Central Chiller Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Chiller:Electric, !- Component 1 Object Type + Central Chiller, !- Component 1 Name + Central Chiller Inlet Node, !- Component 1 Inlet Node Name + Central Chiller Outlet Node, !- Component 1 Outlet Node Name + Active; !- Component 1 Branch Control Type + + Branch, + Cooling Supply Bypass Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Supply Side Bypass, !- Component 1 Name + CW Supply Bypass Inlet Node, !- Component 1 Inlet Node Name + CW Supply Bypass Outlet Node, !- Component 1 Outlet Node Name + BYPASS; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Supply Side Bypass, !- Name + CW Supply Bypass Inlet Node, !- Inlet Node Name + CW Supply Bypass Outlet Node; !- Outlet Node Name + + Connector:Splitter, + CW Loop Splitter, !- Name + CW Pump Branch, !- Inlet Branch Name + Central Chiller Branch, !- Outlet Branch 1 Name + Cooling Supply Bypass Branch; !- Outlet Branch 2 Name + + Connector:Mixer, + CW Loop Mixer, !- Name + Cooling Supply Outlet, !- Outlet Branch Name + Central Chiller Branch, !- Inlet Branch 1 Name + Cooling Supply Bypass Branch; !- Inlet Branch 2 Name + + Connector:Splitter, + CW Demand Splitter, !- Name + Cooling Demand Inlet, !- Inlet Branch Name + Cooling Coil Branch, !- Outlet Branch 1 Name + Cooling Demand Bypass Branch; !- Outlet Branch 2 Name + + Connector:Mixer, + CW Demand Mixer, !- Name + Cooling Demand Outlet, !- Outlet Branch Name + Cooling Coil Branch, !- Inlet Branch 1 Name + Cooling Demand Bypass Branch; !- Inlet Branch 2 Name + + PlantEquipmentOperationSchemes, + CW Loop Operation, !- Name + PlantEquipmentOperation:CoolingLoad, !- Control Scheme 1 Object Type + Central Chiller Only, !- Control Scheme 1 Name + PlantOnSched; !- Control Scheme 1 Schedule Name + + PlantEquipmentOperation:CoolingLoad, + Central Chiller Only, !- Name + 0, !- Load Range 1 Lower Limit {W} + 900000, !- Load Range 1 Upper Limit {W} + Cooling Plant; !- Range 1 Equipment List Name + + PlantEquipmentList, + Cooling Plant, !- Name + Chiller:Electric, !- Equipment 1 Object Type + Central Chiller; !- Equipment 1 Name + + Chiller:Electric, + Central Chiller, !- Name + WaterCooled, !- Condenser Type + autosize, !- Nominal Capacity {W} + 3.2, !- Nominal COP {W/W} + Central Chiller Inlet Node, !- Chilled Water Inlet Node Name + Central Chiller Outlet Node, !- Chilled Water Outlet Node Name + Central Chiller Condenser Inlet Node, !- Condenser Inlet Node Name + Central Chiller Condenser Outlet Node, !- Condenser Outlet Node Name + 0.0, !- Minimum Part Load Ratio + 1.0, !- Maximum Part Load Ratio + .65, !- Optimum Part Load Ratio + 29.44, !- Design Condenser Inlet Temperature {C} + 2.682759, !- Temperature Rise Coefficient + 6.667, !- Design Chilled Water Outlet Temperature {C} + autosize, !- Design Chilled Water Flow Rate {m3/s} + autosize, !- Design Condenser Fluid Flow Rate {m3/s} + 0.94483600, !- Coefficient 1 of Capacity Ratio Curve + -.05700880, !- Coefficient 2 of Capacity Ratio Curve + -.00185486, !- Coefficient 3 of Capacity Ratio Curve + 1.907846, !- Coefficient 1 of Power Ratio Curve + -1.20498700, !- Coefficient 2 of Power Ratio Curve + 0.26346230, !- Coefficient 3 of Power Ratio Curve + 0.03303, !- Coefficient 1 of Full Load Ratio Curve + 0.6852, !- Coefficient 2 of Full Load Ratio Curve + 0.2818, !- Coefficient 3 of Full Load Ratio Curve + 5, !- Chilled Water Outlet Temperature Lower Limit {C} + LeavingSetpointModulated;!- Chiller Flow Mode + + SetpointManager:Scheduled, + Central Chiller Setpoint Manager, !- Name + Temperature, !- Control Variable + CW Loop Temp Schedule, !- Schedule Name + Central Chiller Outlet Node; !- Setpoint Node or NodeList Name + + Pump:VariableSpeed, + CW Circ Pump, !- Name + CW Supply Inlet Node, !- Inlet Node Name + CW Pump Outlet Node, !- Outlet Node Name + autosize, !- Rated Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + autosize, !- Rated Power Consumption {W} + 0.9, !- Motor Efficiency + 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream + 0, !- Coefficient 1 of the Part Load Performance Curve + 1, !- Coefficient 2 of the Part Load Performance Curve + 0, !- Coefficient 3 of the Part Load Performance Curve + 0, !- Coefficient 4 of the Part Load Performance Curve + 0, !- Minimum Flow Rate {m3/s} + INTERMITTENT, !- Pump Control Type + CoolingPumpAvailSched; !- Pump Flow Rate Schedule Name + + CondenserLoop, + Condenser Water Loop, !- Name + Water, !- Fluid Type + , !- User Defined Fluid Type + Tower Loop Operation, !- Condenser Equipment Operation Scheme Name + Condenser Supply Outlet Node, !- Condenser Loop Temperature Setpoint Node Name + 80, !- Maximum Loop Temperature {C} + 10, !- Minimum Loop Temperature {C} + autosize, !- Maximum Loop Flow Rate {m3/s} + 0.0, !- Minimum Loop Flow Rate {m3/s} + autocalculate, !- Condenser Loop Volume {m3} + Condenser Supply Inlet Node, !- Condenser Side Inlet Node Name + Condenser Supply Outlet Node, !- Condenser Side Outlet Node Name + Condenser Supply Side Branches, !- Condenser Side Branch List Name + Condenser Supply Side Connectors, !- Condenser Side Connector List Name + Condenser Demand Inlet Node, !- Demand Side Inlet Node Name + Condenser Demand Outlet Node, !- Demand Side Outlet Node Name + Condenser Demand Side Branches, !- Condenser Demand Side Branch List Name + Condenser Demand Side Connectors, !- Condenser Demand Side Connector List Name + SequentialLoad; !- Load Distribution Scheme + + SetpointManager:FollowOutdoorAirTemperature, + MyCondenserControl, !- Name + Temperature, !- Control Variable + OutdoorAirWetBulb, !- Reference Temperature Type + 0, !- Offset Temperature Difference {deltaC} + 80, !- Maximum Setpoint Temperature {C} + 10, !- Minimum Setpoint Temperature {C} + Condenser Supply Outlet Node; !- Setpoint Node or NodeList Name + + BranchList, + Condenser Supply Side Branches, !- Name + Condenser Supply Inlet Branch, !- Branch 1 Name + Condenser Supply Tower Branch, !- Branch 2 Name + Condenser Supply Bypass Branch, !- Branch 3 Name + Condenser Supply Outlet Branch; !- Branch 4 Name + + ConnectorList, + Condenser Supply Side Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + Condenser Supply Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + Condenser Supply Mixer; !- Connector 2 Name + + Branch, + Condenser Supply Inlet Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pump:VariableSpeed, !- Component 1 Object Type + Cond Circ Pump, !- Component 1 Name + Condenser Supply Inlet Node, !- Component 1 Inlet Node Name + Condenser Pump Outlet Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + Condenser Supply Tower Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + CoolingTower:SingleSpeed,!- Component 1 Object Type + Central Tower, !- Component 1 Name + Condenser Tower Inlet Node, !- Component 1 Inlet Node Name + Condenser Tower Outlet Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + Condenser Supply Bypass Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Condenser Supply Side Bypass, !- Component 1 Name + Cond Supply Bypass Inlet Node, !- Component 1 Inlet Node Name + Cond Supply Bypass Outlet Node, !- Component 1 Outlet Node Name + BYPASS; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Condenser Supply Side Bypass, !- Name + Cond Supply Bypass Inlet Node, !- Inlet Node Name + Cond Supply Bypass Outlet Node; !- Outlet Node Name + + Branch, + Condenser Supply Outlet Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Condenser Supply Outlet, !- Component 1 Name + Condenser Supply Exit Pipe Inlet Node, !- Component 1 Inlet Node Name + Condenser Supply Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Condenser Supply Outlet, !- Name + Condenser Supply Exit Pipe Inlet Node, !- Inlet Node Name + Condenser Supply Outlet Node; !- Outlet Node Name + + BranchList, + Condenser Demand Side Branches, !- Name + Condenser Demand Inlet Branch, !- Branch 1 Name + Central Chiller Condenser Branch, !- Branch 2 Name + Condenser Demand Bypass Branch, !- Branch 3 Name + Condenser Demand Outlet Branch; !- Branch 4 Name + + ConnectorList, + Condenser Demand Side Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + Condenser Demand Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + Condenser Demand Mixer; !- Connector 2 Name + + Branch, + Condenser Demand Inlet Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Condenser Demand Inlet Pipe, !- Component 1 Name + Condenser Demand Inlet Node, !- Component 1 Inlet Node Name + Condenser Demand Entrance Pipe Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Condenser Demand Inlet Pipe, !- Name + Condenser Demand Inlet Node, !- Inlet Node Name + Condenser Demand Entrance Pipe Outlet Node; !- Outlet Node Name + + Branch, + Central Chiller Condenser Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Chiller:Electric, !- Component 1 Object Type + Central Chiller, !- Component 1 Name + Central Chiller Condenser Inlet Node, !- Component 1 Inlet Node Name + Central Chiller Condenser Outlet Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + Branch, + Condenser Demand Bypass Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Condenser Demand Side Bypass, !- Component 1 Name + Cond Demand Bypass Inlet Node, !- Component 1 Inlet Node Name + Cond Demand Bypass Outlet Node, !- Component 1 Outlet Node Name + BYPASS; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Condenser Demand Side Bypass, !- Name + Cond Demand Bypass Inlet Node, !- Inlet Node Name + Cond Demand Bypass Outlet Node; !- Outlet Node Name + + Branch, + Condenser Demand Outlet Branch, !- Name + 0, !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Condenser Demand Outlet Pipe, !- Component 1 Name + Condenser Demand Exit Pipe Inlet Node, !- Component 1 Inlet Node Name + Condenser Demand Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Condenser Demand Outlet Pipe, !- Name + Condenser Demand Exit Pipe Inlet Node, !- Inlet Node Name + Condenser Demand Outlet Node; !- Outlet Node Name + + Connector:Splitter, + Condenser Demand Splitter, !- Name + Condenser Demand Inlet Branch, !- Inlet Branch Name + Central Chiller Condenser Branch, !- Outlet Branch 1 Name + Condenser Demand Bypass Branch; !- Outlet Branch 2 Name + + Connector:Mixer, + Condenser Demand Mixer, !- Name + Condenser Demand Outlet Branch, !- Outlet Branch Name + Central Chiller Condenser Branch, !- Inlet Branch 1 Name + Condenser Demand Bypass Branch; !- Inlet Branch 2 Name + + Connector:Splitter, + Condenser Supply Splitter, !- Name + Condenser Supply Inlet Branch, !- Inlet Branch Name + Condenser Supply Tower Branch, !- Outlet Branch 1 Name + Condenser Supply Bypass Branch; !- Outlet Branch 2 Name + + Connector:Mixer, + Condenser Supply Mixer, !- Name + Condenser Supply Outlet Branch, !- Outlet Branch Name + Condenser Supply Tower Branch, !- Inlet Branch 1 Name + Condenser Supply Bypass Branch; !- Inlet Branch 2 Name + + CondenserEquipmentOperationSchemes, + Tower Loop Operation, !- Name + PlantEquipmentOperation:CoolingLoad, !- Control Scheme 1 Object Type + Year Round Tower Operation, !- Control Scheme 1 Name + PlantOnSched; !- Control Scheme 1 Schedule Name + + PlantEquipmentOperation:CoolingLoad, + Year Round Tower Operation, !- Name + 0, !- Load Range 1 Lower Limit {W} + 90000000, !- Load Range 1 Upper Limit {W} + All Towers; !- Range 1 Equipment List Name + + CondenserEquipmentList, + All Towers, !- Name + CoolingTower:SingleSpeed,!- Equipment 1 Object Type + Central Tower; !- Equipment 1 Name + + CoolingTower:SingleSpeed, + Central Tower, !- Name + Condenser Tower Inlet Node, !- Water Inlet Node Name + Condenser Tower Outlet Node, !- Water Outlet Node Name + autosize, !- Design Water Flow Rate {m3/s} + autosize, !- Design Air Flow Rate {m3/s} + autosize, !- Design Fan Power {W} + autosize, !- Design U-Factor Times Area Value {W/K} + 0.0, !- Free Convection Air Flow Rate {m3/s} + , !- Free Convection Air Flow Rate Sizing Factor + 0.0, !- Free Convection U-Factor Times Area Value {W/K} + , !- Free Convection U-Factor Times Area Value Sizing Factor + , !- Performance Input Method + , !- Heat Rejection Capacity and Nominal Capacity Sizing Ratio + , !- Nominal Capacity {W} + , !- Free Convection Capacity {W} + ; !- Free Convection Nominal Capacity Sizing Factor + + Pump:VariableSpeed, + Cond Circ Pump, !- Name + Condenser Supply Inlet Node, !- Inlet Node Name + Condenser Pump Outlet Node, !- Outlet Node Name + autosize, !- Rated Flow Rate {m3/s} + 179352, !- Rated Pump Head {Pa} + autosize, !- Rated Power Consumption {W} + 0.9, !- Motor Efficiency + 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream + 0, !- Coefficient 1 of the Part Load Performance Curve + 1, !- Coefficient 2 of the Part Load Performance Curve + 0, !- Coefficient 3 of the Part Load Performance Curve + 0, !- Coefficient 4 of the Part Load Performance Curve + 0, !- Minimum Flow Rate {m3/s} + INTERMITTENT, !- Pump Control Type + CoolingPumpAvailSched; !- Pump Flow Rate Schedule Name + + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; + + Output:Variable,*,Zone Air Temperature,hourly; + + Output:Variable,*,Heating Coil Heating Rate,hourly; + + Output:Variable,*,Cooling Coil Total Cooling Rate,hourly; + + Output:Variable,*,Water Heater Runtime Fraction,hourly; + + Output:Variable,*,Water Heater Part Load Ratio,hourly; + + Output:Variable,*,Water Heater Electric Power,hourly; + + Output:Variable,*,Water Heater Source Side Inlet Temperature,hourly; + + Output:Variable,*,Water Heater Source Side Outlet Temperature,hourly; + + Output:Variable,*,Water Heater Source Side Mass Flow Rate,hourly; + + Output:Variable,*,Water Heater Source Side Heat Transfer Rate,hourly; + + Output:Variable,*,Water Heater Use Side Inlet Temperature,hourly; + + Output:Variable,*,Water Heater Use Side Outlet Temperature,hourly; + + Output:Variable,*,Water Heater Use Side Mass Flow Rate,hourly; + + Output:Variable,*,Water Heater Use Side Heat Transfer Rate,hourly; + + Output:Variable,*,Cooling Coil Total Water Heating Rate,hourly; + + Output:Variable,*,Cooling Coil Water Heating Electric Power,hourly; + + Output:Variable,*,Water Heater Tank Temperature,hourly; + + Output:Variable,*,Water Heater Compressor Part Load Ratio,hourly; + + Output:Variable,*,Fan Electric Power,hourly; + + Output:Variable,*,Cooling Coil Crankcase Heater Electric Power,hourly; + + Output:Variable,*,Water Heater On Cycle Ancillary Electric Power,hourly; + + Output:Variable,*,Water Heater Off Cycle Ancillary Electric Power,hourly; + + Output:VariableDictionary,Regular; + + Output:Surfaces:Drawing,dxf; + + Output:Meter:MeterFileOnly,Electricity:Facility,monthly; + + Output:Meter:MeterFileOnly,Electricity:Building,monthly; + + Output:Meter:MeterFileOnly,InteriorLights:Electricity,monthly; + + Output:Meter:MeterFileOnly,Electricity:HVAC,monthly; + + Output:Meter:MeterFileOnly,Electricity:Plant,monthly; + + Output:Meter:MeterFileOnly,Electricity:Facility,runperiod; + + Output:Meter:MeterFileOnly,Electricity:Building,runperiod; + + Output:Meter:MeterFileOnly,InteriorLights:Electricity,runperiod; + + Output:Meter:MeterFileOnly,Electricity:HVAC,runperiod; + + Output:Meter:MeterFileOnly,Electricity:Plant,runperiod; + + OutputControl:Table:Style, + HTML; !- Column Separator + + Output:Table:SummaryReports, + AllSummary; !- Report 1 Name + diff --git a/testfiles/VSWaterHeaterHeatPumpStratifiedTank.idf b/testfiles/VSWaterHeaterHeatPumpStratifiedTank.idf new file mode 100644 index 00000000000..71e89dac53c --- /dev/null +++ b/testfiles/VSWaterHeaterHeatPumpStratifiedTank.idf @@ -0,0 +1,826 @@ +! VSWaterHeaterHeatPumpStratifiedTank.idf +! +! Basic file description: +! This input file illustrates WATER USE EQUIPMENT objects connected to a WATER HEATER:STRATIFIED object in a simple +! plant loop for domestic hot water. +! +! Run: 1 short run period. +! Building: None. +! System: None. +! Plant: Plant loop with one WaterHeater:Stratified object with variable-speed heat pump water heating connected to two water use equipment + + Version,8.2; + + Building, + Water Heater DHW Plant Loop Example, !- Name + 0.0, !- North Axis {deg} + Suburbs, !- Terrain + 0.04, !- Loads Convergence Tolerance Value + 0.04, !- Temperature Convergence Tolerance Value {deltaC} + FullInteriorAndExterior, !- Solar Distribution + 25, !- Maximum Number of Warmup Days + 6; !- Minimum Number of Warmup Days + + Timestep,6; + + GlobalGeometryRules, + UpperLeftCorner, !- Starting Vertex Position + CounterClockWise, !- Vertex Entry Direction + Relative; !- Coordinate System + + Site:Location, + CHICAGO_IL_USA_WMO_725300, !- Name + 42.00, !- Latitude {deg} + -87.88, !- Longitude {deg} + -6.00, !- Time Zone {hr} + 190.00; !- Elevation {m} + +! CHICAGO_IL_USA Annual Heating 99%, MaxDB=-17.3°C + + SizingPeriod:DesignDay, + CHICAGO Ann Htg 99% Condns DB, !- Name + 1, !- Month + 21, !- Day of Month + WinterDesignDay, !- Day Type + -17.3, !- Maximum Dry-Bulb Temperature {C} + 0.0, !- Daily Dry-Bulb Temperature Range {deltaC} + , !- Dry-Bulb Temperature Range Modifier Type + , !- Dry-Bulb Temperature Range Modifier Day Schedule Name + Wetbulb, !- Humidity Condition Type + -17.3, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} + , !- Humidity Condition Day Schedule Name + , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir} + , !- Enthalpy at Maximum Dry-Bulb {J/kg} + , !- Daily Wet-Bulb Temperature Range {deltaC} + 99063, !- Barometric Pressure {Pa} + 4.9, !- Wind Speed {m/s} + 270, !- Wind Direction {deg} + No, !- Rain Indicator + No, !- Snow Indicator + No, !- Daylight Saving Time Indicator + ASHRAEClearSky, !- Solar Model Indicator + , !- Beam Solar Day Schedule Name + , !- Diffuse Solar Day Schedule Name + , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless} + , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless} + 0.0; !- Sky Clearness + +! CHICAGO_IL_USA Annual Cooling (DB=>MWB) 1%, MaxDB=31.5°C MWB=23°C + + SizingPeriod:DesignDay, + CHICAGO Ann Clg 1% Condns DB=>MWB, !- Name + 7, !- Month + 21, !- Day of Month + SummerDesignDay, !- Day Type + 31.5, !- Maximum Dry-Bulb Temperature {C} + 10.7, !- Daily Dry-Bulb Temperature Range {deltaC} + , !- Dry-Bulb Temperature Range Modifier Type + , !- Dry-Bulb Temperature Range Modifier Day Schedule Name + Wetbulb, !- Humidity Condition Type + 23, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} + , !- Humidity Condition Day Schedule Name + , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir} + , !- Enthalpy at Maximum Dry-Bulb {J/kg} + , !- Daily Wet-Bulb Temperature Range {deltaC} + 99063, !- Barometric Pressure {Pa} + 5.3, !- Wind Speed {m/s} + 230, !- Wind Direction {deg} + No, !- Rain Indicator + No, !- Snow Indicator + No, !- Daylight Saving Time Indicator + ASHRAEClearSky, !- Solar Model Indicator + , !- Beam Solar Day Schedule Name + , !- Diffuse Solar Day Schedule Name + , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub) {dimensionless} + , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud) {dimensionless} + 1.0; !- Sky Clearness + + RunPeriod, + April, !- Name + 4, !- Begin Month + 1, !- Begin Day of Month + 4, !- End Month + 3, !- End Day of Month + Tuesday, !- Day of Week for Start Day + Yes, !- Use Weather File Holidays and Special Days + Yes, !- Use Weather File Daylight Saving Period + No, !- Apply Weekend Holiday Rule + Yes, !- Use Weather File Rain Indicators + Yes; !- Use Weather File Snow Indicators + + SimulationControl, + NO, !- Do Zone Sizing Calculation + NO, !- Do System Sizing Calculation + NO, !- Do Plant Sizing Calculation + NO, !- Run Simulation for Sizing Periods + YES; !- Run Simulation for Weather File Run Periods + + Site:WaterMainsTemperature, + CORRELATION, !- Calculation Method + , !- Temperature Schedule Name + 9.69, !- Annual Average Outdoor Air Temperature {C} + 28.1; !- Maximum Difference In Monthly Average Outdoor Air Temperatures {deltaC} + + ScheduleTypeLimits, + Any Number; !- Name + + Schedule:Compact, + Always On, !- Name + Any Number, !- Schedule Type Limits Name + THROUGH: 12/31, !- Field 1 + FOR: AllDays, !- Field 2 + UNTIL: 24:00,1; !- Field 3 + + Schedule:Compact, + Ambient Temp Schedule, !- Name + Any Number, !- Schedule Type Limits Name + THROUGH: 12/31, !- Field 1 + FOR: AllDays, !- Field 2 + UNTIL: 24:00,22.0; !- Field 3 + + Schedule:Compact, + Hot Water Set Point Temp Schedule, !- Name + Any Number, !- Schedule Type Limits Name + THROUGH: 12/31, !- Field 1 + FOR: AllDays, !- Field 2 + UNTIL: 24:00,48.89; !- Field 3 + + Schedule:Compact, + Sinks and Showers Temp Schedule, !- Name + Any Number, !- Schedule Type Limits Name + THROUGH: 12/31, !- Field 1 + FOR: AllDays, !- Field 2 + UNTIL: 24:00,40.56; !- Field 3 + +!***PLANT DHW LOOP*** + + Sizing:Plant, + DHW Loop, !- Plant or Condenser Loop Name + HEATING, !- Loop Type + 82., !- Design Loop Exit Temperature {C} + 11; !- Loop Design Temperature Difference {deltaC} + + PlantLoop, + DHW Loop, !- Name + WATER, !- Fluid Type + , !- User Defined Fluid Type + DHW Loop Operation, !- Plant Equipment Operation Scheme Name + Water Heater Use Loop Outlet Node, !- Loop Temperature Setpoint Node Name + 100, !- Maximum Loop Temperature {C} + 3, !- Minimum Loop Temperature {C} + AUTOSIZE, !- Maximum Loop Flow Rate {m3/s} + 0, !- Minimum Loop Flow Rate {m3/s} + AUTOSIZE, !- Plant Loop Volume {m3} + Water Heater Use Loop Inlet Node, !- Plant Side Inlet Node Name + Water Heater Use Loop Outlet Node, !- Plant Side Outlet Node Name + Water Heater Use Branches, !- Plant Side Branch List Name + Water Heater Use Connectors, !- Plant Side Connector List Name + Demand Inlet Node, !- Demand Side Inlet Node Name + Demand Outlet Node, !- Demand Side Outlet Node Name + Demand Branches, !- Demand Side Branch List Name + Demand Connectors, !- Demand Side Connector List Name + OPTIMAL; !- Load Distribution Scheme + + PlantEquipmentOperationSchemes, + DHW Loop Operation, !- Name + PlantEquipmentOperation:HeatingLoad, !- Control Scheme 1 Object Type + DHW Control Scheme, !- Control Scheme 1 Name + Always On; !- Control Scheme 1 Schedule Name + + PlantEquipmentOperation:HeatingLoad, + DHW Control Scheme, !- Name + 0, !- Load Range 1 Lower Limit {W} + 10000000, !- Load Range 1 Upper Limit {W} + DHW Plant Equipment; !- Range 1 Equipment List Name + + PlantEquipmentList, + DHW Plant Equipment, !- Name + WaterHeater:HeatPump, !- Equipment 1 Object Type + PlantHeatPumpWaterHeater;!- Equipment 1 Name + + SetpointManager:Scheduled, + DHW Loop Set Point Manager, !- Name + Temperature, !- Control Variable + Hot Water Set Point Temp Schedule, !- Schedule Name + Water Heater Use Loop Outlet Node; !- Setpoint Node or NodeList Name + +!***PLANT DHW LOOP: WATER HEATER SIDE*** + + BranchList, + Water Heater Use Branches, !- Name + Water Heater Use Inlet Branch, !- Branch 1 Name + Water Heater Use Branch, !- Branch 2 Name + Water Heater Use Outlet Branch; !- Branch 3 Name + + ConnectorList, + Water Heater Use Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + Water Heater Use Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + Water Heater Use Mixer; !- Connector 2 Name + + Connector:Splitter, + Water Heater Use Splitter, !- Name + Water Heater Use Inlet Branch, !- Inlet Branch Name + Water Heater Use Branch; !- Outlet Branch 1 Name + + Connector:Mixer, + Water Heater Use Mixer, !- Name + Water Heater Use Outlet Branch, !- Outlet Branch Name + Water Heater Use Branch; !- Inlet Branch 1 Name + + Branch, + Water Heater Use Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pump:VariableSpeed, !- Component 1 Object Type + DHW Pump, !- Component 1 Name + Water Heater Use Loop Inlet Node, !- Component 1 Inlet Node Name + DHW Pump Outlet Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + +! No pumping energy; water mains pressure only + + Pump:VariableSpeed, + DHW Pump, !- Name + Water Heater Use Loop Inlet Node, !- Inlet Node Name + DHW Pump Outlet Node, !- Outlet Node Name + AUTOSIZE, !- Rated Flow Rate {m3/s} + 0, !- Rated Pump Head {Pa} + AUTOSIZE, !- Rated Power Consumption {W} + 1.0, !- Motor Efficiency + 0.0, !- Fraction of Motor Inefficiencies to Fluid Stream + 0, !- Coefficient 1 of the Part Load Performance Curve + 1, !- Coefficient 2 of the Part Load Performance Curve + 0, !- Coefficient 3 of the Part Load Performance Curve + 0, !- Coefficient 4 of the Part Load Performance Curve + 0, !- Minimum Flow Rate {m3/s} + INTERMITTENT; !- Pump Control Type + + Branch, + Water Heater Use Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + WaterHeater:HeatPump, !- Component 1 Object Type + PlantHeatPumpWaterHeater,!- Component 1 Name + Water Heater Use Inlet Node, !- Component 1 Inlet Node Name + Water Heater Use Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + WaterHeater:HeatPump, + PlantHeatPumpWaterHeater,!- Name + PlantHPWHSch, !- Availability Schedule Name + PlantHPWHTempSch, !- Compressor Setpoint Temperature Schedule Name + 2.0, !- Dead Band Temperature Difference {deltaC} + HPPlantWaterInletNode, !- Condenser Water Inlet Node Name + HPPlantWaterOutletNode, !- Condenser Water Outlet Node Name + 0.00115525, !- Condenser Water Flow Rate {m3/s} + 1.00695, !- Evaporator Air Flow Rate {m3/s} + OutdoorAirOnly, !- Inlet Air Configuration + , !- Air Inlet Node Name + , !- Air Outlet Node Name + HPPlantAirInletNode, !- Outdoor Air Node Name + HPPlantAirOutletNode, !- Exhaust Air Node Name + , !- Inlet Air Temperature Schedule Name + , !- Inlet Air Humidity Schedule Name + , !- Inlet Air Zone Name + WaterHeater:Stratified, !- Tank Object Type + Water Heater Tank, !- Tank Name + Water Heater Use Inlet Node, !- Tank Use Side Inlet Node Name + Water Heater Use Outlet Node, !- Tank Use Side Outlet Node Name + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, !- DX Coil Object Type + HPWHPlantDXCoilVS, !- Variable-speed DX Coil Name + 11.0, !- Minimum Inlet Air Temperature for Compressor Operation {C} + Outdoors, !- Compressor Location + , !- Compressor Ambient Temperature Schedule Name + Fan:OnOff, !- Fan Object Type + HPWHPlantFan, !- Fan Name + BlowThrough, !- Fan Placement + , !- On Cycle Parasitic Electric Load {W} + , !- Off Cycle Parasitic Electric Load {W} + , !- Parasitic Heat Rejection Location + , !- Inlet Air Mixer Node Name + , !- Outlet Air Splitter Node Name + , !- Inlet Air Mixer Schedule Name + Heater1; !- Control Sensor Location In Stratified Tank + + WaterHeater:Stratified, + Water Heater Tank, !- Name + Water Heater, !- End-Use Subcategory + 0.1893, !- Tank Volume {m3} + 1.4, !- Tank Height {m} + VerticalCylinder, !- Tank Shape + , !- Tank Perimeter {m} + 82.2222, !- Maximum Temperature Limit {C} + MasterSlave, !- Heater Priority Control + Hot Water Set Point Temp Schedule, !- Heater 1 Setpoint Temperature Schedule Name + 2.0, !- Heater 1 Deadband Temperature Difference {deltaC} + 4500, !- Heater 1 Capacity {W} + 1.0, !- Heater 1 Height {m} + Hot Water Set Point Temp Schedule, !- Heater 2 Setpoint Temperature Schedule Name + 5.0, !- Heater 2 Deadband Temperature Difference {deltaC} + 4500, !- Heater 2 Capacity {W} + 0.0, !- Heater 2 Height {m} + ELECTRICITY, !- Heater Fuel Type + 0.98, !- Heater Thermal Efficiency + 10, !- Off Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- Off Cycle Parasitic Fuel Type + 0, !- Off Cycle Parasitic Heat Fraction to Tank + , !- Off Cycle Parasitic Height {m} + 10, !- On Cycle Parasitic Fuel Consumption Rate {W} + ELECTRICITY, !- On Cycle Parasitic Fuel Type + 0, !- On Cycle Parasitic Heat Fraction to Tank + , !- On Cycle Parasitic Height {m} + SCHEDULE, !- Ambient Temperature Indicator + Ambient Temp Schedule, !- Ambient Temperature Schedule Name + , !- Ambient Temperature Zone Name + , !- Ambient Temperature Outdoor Air Node Name + 0.846, !- Uniform Skin Loss Coefficient per Unit Area to Ambient Temperature {W/m2-K} + , !- Skin Loss Fraction to Zone + , !- Off Cycle Flue Loss Coefficient to Ambient Temperature {W/K} + , !- Off Cycle Flue Loss Fraction to Zone + , !- Peak Use Flow Rate {m3/s} + , !- Use Flow Rate Fraction Schedule Name + , !- Cold Water Supply Temperature Schedule Name + Water Heater Use Inlet Node, !- Use Side Inlet Node Name + Water Heater Use Outlet Node, !- Use Side Outlet Node Name + 1.0, !- Use Side Effectiveness + , !- Use Side Inlet Height {m} + , !- Use Side Outlet Height {m} + HPPlantWaterOutletNode, !- Source Side Inlet Node Name + HPPlantWaterInletNode, !- Source Side Outlet Node Name + , !- Source Side Effectiveness + , !- Source Side Inlet Height {m} + , !- Source Side Outlet Height {m} + FIXED, !- Inlet Mode + autosize, !- Use Side Design Flow Rate {m3/s} + 0.00115525, !- Source Side Design Flow Rate {m3/s} + , !- Indirect Water Heating Recovery Time {hr} + 6, !- Number of Nodes + 0.1, !- Additional Destratification Conductivity {W/m-K} + 0.15, !- Node 1 Additional Loss Coefficient {W/m2-K} + , !- Node 2 Additional Loss Coefficient {W/m2-K} + , !- Node 3 Additional Loss Coefficient {W/m2-K} + , !- Node 4 Additional Loss Coefficient {W/m2-K} + , !- Node 5 Additional Loss Coefficient {W/m2-K} + 0.1; !- Node 6 Additional Loss Coefficient {W/m2-K} + + Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed, + HPWHPlantDXCoilVS, !- Name + 10, !- Number of Speeds + 10, !- Nominal speed level + 25000.0, !- Rated Heating Capacity {W} + 29.44, !- Rated Evaporator Inlet Air Dry-Bulb Temperature {C} + 22.22, !- Rated Evaporator Inlet Air Wet-Bulb Temperature {C} + 55.72, !- Rated Condenser Inlet Water Temperature {C} + 1.00695, !- Rated Evaporator Air Flow Rate {m3/s} + 0.00115525, !- Rated Condenser Water Flow Rate {m3/s} + No, !- Evaporator Fan Power Included in Rated COP + No, !- Condenser Pump Power Included in Rated COP + No, !- Condenser Pump Heat Included in Rated Heating Capacity and Rated COP + 0.1, !- Fraction of Condenser Pump Heat to Water + HPPlantFanAirOutletNode, !- Evaporator Air Inlet Node Name + HPPlantAirOutletNode, !- Evaporator Air Outlet Node Name + HPPlantWaterInletNode, !- Condenser Water Inlet Node Name + HPPlantWaterOutletNode, !- Condenser Water Outlet Node Name + 100.0, !- Crankcase Heater Capacity {W} + 5.0, !- Maximum Ambient Temperature for Crankcase Heater Operation {C} + WetBulbTemperature, !- Evaporator Air Temperature Type for Curve Objects + HPWHPLFFPLR, !- Part Load Fraction Correlation Curve Name + 400.00, !- Speed 1 Water Heating capacity {W} of Reference Unit + 5.0, !- Speed 1 Water Heating COP {W/W} of Reference Unit + 0.80, !- Speed 1 Sensible Heat Transfer Ratio of Reference Unit + 0.020140, !- Speed 1 Air Flow Rate of Reference Unit + 0.000018, !- Speed 1 water Air Flow Rate of Reference Unit + 10.0, !- Speed 1 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 800.00, !- Speed 2 Water Heating capacity {W} of Reference Unit + 4.8, !- Speed 2 Water Heating COP {W/W} of Reference Unit + 0.79, !- Speed 2 Sensible Heat Transfer Ratio of Reference Unit + 0.040280, !- Speed 2 Air Flow Rate of Reference Unit + 0.000036, !- Speed 2 water Air Flow Rate of Reference Unit + 10.0, !- Speed 2 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1200.00, !- Speed 3 Water Heating capacity {W} of Reference Unit + 4.4, !- Speed 3 Water Heating COP {W/W} of Reference Unit + 0.78, !- Speed 3 Sensible Heat Transfer Ratio of Reference Unit + 0.060420, !- Speed 3 Air Flow Rate of Reference Unit + 0.000054, !- Speed 3 water Air Flow Rate of Reference Unit + 10.0, !- Speed 3 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 1600.00, !- Speed 4 Water Heating capacity {W} of Reference Unit + 4.0, !- Speed 4 Water Heating COP {W/W} of Reference Unit + 0.77, !- Speed 4 Sensible Heat Transfer Ratio of Reference Unit + 0.080560, !- Speed 4 Air Flow Rate of Reference Unit + 0.000072, !- Speed 4 water Air Flow Rate of Reference Unit + 10.0, !- Speed 4 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2000.00, !- Speed 5 Water Heating capacity {W} of Reference Unit + 3.8, !- Speed 5 Water Heating COP {W/W} of Reference Unit + 0.76, !- Speed 5 Sensible Heat Transfer Ratio of Reference Unit + 0.100700, !- Speed 5 Air Flow Rate of Reference Unit + 0.000090, !- Speed 5 water Air Flow Rate of Reference Unit + 10.0, !- Speed 5 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2400.00, !- Speed 6 Water Heating capacity {W} of Reference Unit + 3.4, !- Speed 6 Water Heating COP {W/W} of Reference Unit + 0.75, !- Speed 6 Sensible Heat Transfer Ratio of Reference Unit + 0.120840, !- Speed 6 Air Flow Rate of Reference Unit + 0.000108, !- Speed 6 water Air Flow Rate of Reference Unit + 10.0, !- Speed 6 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 2800.00, !- Speed 7 Water Heating capacity {W} of Reference Unit + 3.0, !- Speed 7 Water Heating COP {W/W} of Reference Unit + 0.74, !- Speed 7 Sensible Heat Transfer Ratio of Reference Unit + 0.140980, !- Speed 7 Air Flow Rate of Reference Unit + 0.000126, !- Speed 7 water Air Flow Rate of Reference Unit + 10.0, !- Speed 7 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3200.00, !- Speed 8 Water Heating capacity {W} of Reference Unit + 2.6, !- Speed 8 Water Heating COP {W/W} of Reference Unit + 0.73, !- Speed 8 Sensible Heat Transfer Ratio of Reference Unit + 0.161120, !- Speed 8 Air Flow Rate of Reference Unit + 0.000144, !- Speed 8 water Air Flow Rate of Reference Unit + 10.0, !- Speed 8 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 3600.00, !- Speed 9 Water Heating capacity {W} of Reference Unit + 2.3, !- Speed 9 Water Heating COP {W/W} of Reference Unit + 0.72, !- Speed 9 Sensible Heat Transfer Ratio of Reference Unit + 0.181260, !- Speed 9 Air Flow Rate of Reference Unit + 0.000162, !- Speed 9 water Air Flow Rate of Reference Unit + 10.0, !- Speed 9 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating COP Function of Water Flow Fraction Curve Name + 4000.00, !- Speed 10 Water Heating capacity {W} of Reference Unit + 2.0, !- Speed 10 Water Heating COP {W/W} of Reference Unit + 0.70, !- Speed 10 Sensible Heat Transfer Ratio of Reference Unit + 0.201400, !- Speed 10 Air Flow Rate of Reference Unit + 0.000179, !- Speed 10 water Air Flow Rate of Reference Unit + 10.0, !- Speed 10 Water Pump Power of Reference Unit + HPWHHeatingCapFTemp, !- Heating Capacity Function of Temperature Curve Name + ConstantCubic, !- Heating Capacity Function of Air Flow Fraction Curve Name + ConstantCubic, !- Heating Capacity Function of Water Flow Fraction Curve Name + HPWHHeatingCOPFTemp, !- Heating COP Function of Temperature Curve Name + ConstantCubic, !- Heating COP Function of Air Flow Fraction Curve Name + ConstantCubic; !- Heating COP Function of Water Flow Fraction Curve Namee + + Curve:Biquadratic, + HPWHHeatingCapFTemp, !- Name + 0.369827, !- Coefficient1 Constant + 0.043341, !- Coefficient2 x + -0.00023, !- Coefficient3 x**2 + 0.000466, !- Coefficient4 y + 0.000026, !- Coefficient5 y**2 + -0.00027, !- Coefficient6 x*y + 0.0, !- Minimum Value of x + 40.0, !- Maximum Value of x + 20.0, !- Minimum Value of y + 90.0, !- Maximum Value of y + , !- Minimum Curve Output + , !- Maximum Curve Output + Temperature, !- Input Unit Type for X + Temperature, !- Input Unit Type for Y + Dimensionless; !- Output Unit Type + + Curve:Biquadratic, + HPWHHeatingCOPFTemp, !- Name + 1.19713, !- Coefficient1 Constant + 0.077849, !- Coefficient2 x + -0.0000016, !- Coefficient3 x**2 + -0.02675, !- Coefficient4 y + 0.000296, !- Coefficient5 y**2 + -0.00112, !- Coefficient6 x*y + 0.0, !- Minimum Value of x + 40.0, !- Maximum Value of x + 20.0, !- Minimum Value of y + 90.0, !- Maximum Value of y + , !- Minimum Curve Output + , !- Maximum Curve Output + Temperature, !- Input Unit Type for X + Temperature, !- Input Unit Type for Y + Dimensionless; !- Output Unit Type + + Curve:Quadratic, + HPWHPLFFPLR, !- Name + 0.75, !- Coefficient1 Constant + 0.25, !- Coefficient2 x + 0.0, !- Coefficient3 x**2 + 0.0, !- Minimum Value of x + 1.0; !- Maximum Value of x + + Curve:Cubic, + ConstantCubic, !- Name + 1, !- Coefficient1 Constant + 0, !- Coefficient2 x + 0, !- Coefficient3 x + 0, !- Coefficient4 x + -100, !- Minimum Value of x + 100; !- Maximum Value of x + + Fan:OnOff, + HPWHPlantFan, !- Name + PlantHPWHSch, !- Availability Schedule Name + 0.7, !- Fan Total Efficiency + 100.0, !- Pressure Rise {Pa} + 2.6852, !- Maximum Flow Rate {m3/s} + 0.9, !- Motor Efficiency + 1.0, !- Motor In Airstream Fraction + HPPlantAirInletNode, !- Air Inlet Node Name + HPPlantFanAirOutletNode; !- Air Outlet Node Name + + OutdoorAir:Node, + HPPlantAirInletNode; !- Name + + Schedule:Compact, + PlantHPWHSch, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,1.0; !- Field 3 + + Schedule:Compact, + PlantHPWHTempSch, !- Name + Any Number, !- Schedule Type Limits Name + Through: 12/31, !- Field 1 + For: AllDays, !- Field 2 + Until: 24:00,60.0; !- Field 3 + + Branch, + Water Heater Use Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Water Heater Use Outlet Pipe, !- Component 1 Name + Water Heater Use Outlet Pipe Inlet Node, !- Component 1 Inlet Node Name + Water Heater Use Loop Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Water Heater Use Outlet Pipe, !- Name + Water Heater Use Outlet Pipe Inlet Node, !- Inlet Node Name + Water Heater Use Loop Outlet Node; !- Outlet Node Name + +!***PLANT DHW LOOP: DOMESTIC HOT WATER SIDE*** + + BranchList, + Demand Branches, !- Name + Demand Inlet Branch, !- Branch 1 Name + Domestic Hot Water Branch, !- Branch 2 Name + Demand Outlet Branch; !- Branch 3 Name + + ConnectorList, + Demand Connectors, !- Name + Connector:Splitter, !- Connector 1 Object Type + Demand Splitter, !- Connector 1 Name + Connector:Mixer, !- Connector 2 Object Type + Demand Mixer; !- Connector 2 Name + + Connector:Splitter, + Demand Splitter, !- Name + Demand Inlet Branch, !- Inlet Branch Name + Domestic Hot Water Branch; !- Outlet Branch 1 Name + + Connector:Mixer, + Demand Mixer, !- Name + Demand Outlet Branch, !- Outlet Branch Name + Domestic Hot Water Branch; !- Inlet Branch 1 Name + + Branch, + Demand Inlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Demand Inlet Pipe, !- Component 1 Name + Demand Inlet Node, !- Component 1 Inlet Node Name + Demand Pipe-DHW Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Demand Inlet Pipe, !- Name + Demand Inlet Node, !- Inlet Node Name + Demand Pipe-DHW Node; !- Outlet Node Name + + Branch, + Domestic Hot Water Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + WaterUse:Connections, !- Component 1 Object Type + Domestic Hot Water, !- Component 1 Name + Domestic Hot Water Inlet Node, !- Component 1 Inlet Node Name + Domestic Hot Water Outlet Node, !- Component 1 Outlet Node Name + ACTIVE; !- Component 1 Branch Control Type + + WaterUse:Connections, + Domestic Hot Water, !- Name + Domestic Hot Water Inlet Node, !- Inlet Node Name + Domestic Hot Water Outlet Node, !- Outlet Node Name + , !- Supply Water Storage Tank Name + , !- Reclamation Water Storage Tank Name + , !- Hot Water Supply Temperature Schedule Name + , !- Cold Water Supply Temperature Schedule Name + NONE, !- Drain Water Heat Exchanger Type + , !- Drain Water Heat Exchanger Destination + , !- Drain Water Heat Exchanger U-Factor Times Area {W/K} + Sinks, !- Water Use Equipment 1 Name + Showers; !- Water Use Equipment 2 Name + +! Sinks at 2.5 GPM + + WaterUse:Equipment, + Sinks, !- Name + Sinks, !- End-Use Subcategory + 0.000158, !- Peak Flow Rate {m3/s} + Sinks Flow Schedule, !- Flow Rate Fraction Schedule Name + Sinks and Showers Temp Schedule; !- Target Temperature Schedule Name + + Schedule:Compact, + Sinks Flow Schedule, !- Name + Any Number, !- Schedule Type Limits Name + THROUGH: 12/31, !- Field 1 + FOR: AllDays, !- Field 2 + UNTIL: 1:00,0.003, !- Field 3 + UNTIL: 2:00,0.001, !- Field 5 + UNTIL: 3:00,0, !- Field 7 + UNTIL: 4:00,0, !- Field 9 + UNTIL: 5:00,0.001, !- Field 11 + UNTIL: 6:00,0.028, !- Field 13 + UNTIL: 7:00,0.105, !- Field 15 + UNTIL: 8:00,0.1, !- Field 17 + UNTIL: 9:00,0.081, !- Field 19 + UNTIL: 10:00,0.059, !- Field 21 + UNTIL: 11:00,0.051, !- Field 23 + UNTIL: 12:00,0.037, !- Field 25 + UNTIL: 13:00,0.031, !- Field 27 + UNTIL: 14:00,0.026, !- Field 29 + UNTIL: 15:00,0.023, !- Field 31 + UNTIL: 16:00,0.033, !- Field 33 + UNTIL: 17:00,0.041, !- Field 35 + UNTIL: 18:00,0.063, !- Field 37 + UNTIL: 19:00,0.075, !- Field 39 + UNTIL: 20:00,0.066, !- Field 41 + UNTIL: 21:00,0.059, !- Field 43 + UNTIL: 22:00,0.046, !- Field 45 + UNTIL: 23:00,0.046, !- Field 47 + UNTIL: 24:00,0.025; !- Field 49 + +! Showers at 2.5 GPM + + WaterUse:Equipment, + Showers, !- Name + Showers, !- End-Use Subcategory + 0.000158, !- Peak Flow Rate {m3/s} + Showers Flow Schedule, !- Flow Rate Fraction Schedule Name + Sinks and Showers Temp Schedule; !- Target Temperature Schedule Name + + Schedule:Compact, + Showers Flow Schedule, !- Name + Any Number, !- Schedule Type Limits Name + THROUGH: 12/31, !- Field 1 + FOR: AllDays, !- Field 2 + UNTIL: 3:00,0, !- Field 3 + UNTIL: 5:00,0.2, !- Field 5 + UNTIL: 7:00,0, !- Field 7 + UNTIL: 7:10,1.0, !- Field 9 + UNTIL: 10:00,0, !- Field 11 + UNTIL: 10:30,0.3, !- Field 13 + UNTIL: 13:00,0, !- Field 15 + UNTIL: 13:10,0.5, !- Field 17 + UNTIL: 16:00,0, !- Field 19 + UNTIL: 22:00,0.1, !- Field 21 + UNTIL: 24:00,0; !- Field 23 + + Branch, + Demand Outlet Branch, !- Name + , !- Maximum Flow Rate {m3/s} + , !- Pressure Drop Curve Name + Pipe:Adiabatic, !- Component 1 Object Type + Demand Outlet Pipe, !- Component 1 Name + Demand DHW-Pipe Node, !- Component 1 Inlet Node Name + Demand Outlet Node, !- Component 1 Outlet Node Name + PASSIVE; !- Component 1 Branch Control Type + + Pipe:Adiabatic, + Demand Outlet Pipe, !- Name + Demand DHW-Pipe Node, !- Inlet Node Name + Demand Outlet Node; !- Outlet Node Name + + Output:VariableDictionary,IDF; + + OutputControl:Table:Style, + HTML; !- Column Separator + + Output:Table:SummaryReports, + AllSummary; !- Report 1 Name + + Output:Variable,*,Site Mains Water Temperature,hourly; + + Output:Variable,*,Water Use Equipment Mixed Water Temperature,hourly; + + Output:Variable,*,Water Use Connections Hot Water Volume Flow Rate,hourly; + + Output:Variable,*,Water Use Connections Total Volume Flow Rate,hourly; + + Output:Variable,*,Water Heater Tank Temperature,hourly; + + Output:Variable,*,Water Heater Temperature Node 1,hourly; + + Output:Variable,*,Water Heater Temperature Node 2,hourly; + + Output:Variable,*,Water Heater Temperature Node 3,hourly; + + Output:Variable,*,Water Heater Temperature Node 4,hourly; + + Output:Variable,*,Water Heater Temperature Node 5,hourly; + + Output:Variable,*,Water Heater Temperature Node 6,hourly; + + Output:Variable,*,Water Heater Use Side Heat Transfer Rate,hourly; + + Output:Variable,*,Water Heater Heat Loss Rate,hourly; + + Output:Variable,*,Water Heater Heating Rate,hourly; + + Output:Variable,*,Water Heater Cycle On Count,hourly; + + Output:Variable,*,Water Heater Heater 1 Cycle On Count,hourly; + + Output:Variable,*,Water Heater Heater 2 Cycle On Count,hourly; + + Output:Variable,*,Water Heater Runtime Fraction,hourly; + + Output:Variable,*,Water Heater Heater 1 Runtime Fraction,hourly; + + Output:Variable,*,Water Heater Heater 2 Runtime Fraction,hourly; + + Output:Variable,*,Water Heater Electric Power,hourly; + + Output:Variable,*,Water Heater Off Cycle Parasitic Electric Power,hourly; + + Output:Variable,*,Water Heater On Cycle Parasitic Electric Power,hourly; + + Output:Variable,*,Cooling Coil Water Heating Electric Power,hourly; + + Output:Variable,*,Cooling Coil Total Water Heating Rate,hourly; + + Output:Variable,*,Water Heater Source Side Mass Flow Rate,hourly; + + Output:Variable,*,Water Heater Source Side Inlet Temperature,hourly; + + Output:Variable,*,Water Heater Source Side Outlet Temperature,hourly; + + Output:Variable,*,Water Heater Source Side Heat Transfer Rate,hourly; + + Output:Variable,HPPlantWaterOutletNode,System Node Mass Flow Rate,hourly; + + Output:Variable,HPPlantWaterOutletNode,System Node Temperature,hourly; + + Output:Variable,HPPlantWaterInletNode,System Node Temperature,hourly; + + Output:Variable,HPPlantWaterOutletNode,System Node Mass Flow Rate,hourly; + + Output:Variable,*,Site Outdoor Air Drybulb Temperature,hourly; +