CSE User's Manual

California Simulation Engine

4.29 DHWSYS

DHWSYS constructs an object representing a domestic hot water system consisting of one or more hot water heaters, storage tanks, loops, and pumps (DHWHEATER, DHWTANK, DHWLOOP, and DHWPUMP, see below) and a distribution system characterized by loss parameters. This model is based on Appendix B of the 2019 Residential ACM Reference Manual and the Ecotope HPWHSim air source heat pump water heater model (called HPWH herein).

The parent-child structure of DHWSYS components is determined by input order. For example, DHWHEATERs belong to the DHWSYS that precedes them in the input file. The following hierarchy shows the relationship among components. Note that any of the commands can be repeated any number of times.

Minimal modeling is included for physically realistic controls. For example, if several DHWHEATERs are included in a DHWSYS, an equal fraction of the required hot water is assumed to be produced by each heater, even if they are different types or sizes. Thus a DHWSYS is in some ways a collection of components as opposed to an explicitly connected system. This approach avoids requiring detailed input that would impose impractical user burden, especially in compliance applications.

dhwsysName

Optional name of system; give after the word “DHWSYS” if desired.

UnitsLegal RangeDefaultRequiredVariability
63 charactersnoneNoconstant

wsCalcMode=choice

Enables preliminary simulation that derives values needed for simulation.

PRERUNCalculate hot water heating load; at end of run, derive whLDEF for all child DHWHEATERs for which that value is required and defaulted (this emulates methods used in the T24DHW.DLL implementation of CEC DHW procedures). Also derived are average number of draws per day by end use (used in the wsDayWaste scheme).
SIMULATEPerform full modeling calculations

To use PRERUN efficiently, the recommended input file structure is:

This order avoids duplicate time-consuming simulation of the full building model.

UnitsLegal RangeDefaultRequiredVariability
Codes listed aboveSIMULATENo

wsCentralDHWSYS=dhwsysName

Name of the central DHWSYS that serves this DHWSYS, allowing representation of multiple units having distinct distribution configurations and/or water use patterns but served by a central DHWSYS. The child DHWSYS(s) may not include DHWHEATERs – they are “loads only” systems. wsCentralDHWSYS and wsLoadShareDHWSYS cannot both be given.

UnitsLegal RangeDefaultRequiredVariability
name of a DHWSYSDHWSYS is standaloneNoconstant

wsLoadShareDHWSYS=dhwsysName

Name of a DHWSYS that serves the same loads as this DHWSYS, allowing representation of multiple water heating systems within a unit. If given, wsUse and wsDayUse are not allowed, hot water requirements are derived from the referenced DHWSYS. wsCentralDHWSYS and wsLoadShareDHWSYS cannot both be given.

For example, two DHWSYSs should be defined to model two water heating systems serving a load represented by wsDayUse DayUseTyp. Each DHWSYS should include DHWHEATER(s) and other components as needed. DHWSYS Sys1 should specify wsDayUse=DayUseTyp and DHWSYS Sys2 should have wsLoadShareDHWSYS=Sys1 in place of wsDayUse.

Loads are shared by assigning DHWUSE events sequentially by end use to all DHWSYS with compatible fixtures (determined by wsFaucetCount, wsShowerCount etc., see below) in the group. This algorithm approximately divides load for each end use by the number of compatible fixtures in the group. In addition, assigning 0 to a fixture type prevents assignment of an end use load to a DHWSYS – for example, wsDWashrCount=0 could be provided for a DHWSYS that does not serve a kitchen.

UnitsLegal RangeDefaultRequiredVariability
name of a DHWSYSNo shared loadsNoconstant

wsMult=float

Number of identical systems of this type (including all child objects). Any value \(> 1\) is equivalent to repeated entry of the same DHWSYS. A value of 0 is equivalent to omitting the DHWSYS. Non-integral values scale all results; this may be useful in parameterized models, for example.

UnitsLegal RangeDefaultRequiredVariability
x \(\ge\) 01Noconstant

wsFaucetCount=integer
wsShowerCount=integer
wsBathCount=integer
wsCWashrCount=integer
wsDWashrCount=integer

Specifies the count of fixtures served by this DHWSYS that can accommodate draws of each end use (see DHWUSE). These counts are used for distributing draws in shared load configurations (multiple DHWSYSs serving the same loads, see wsLoadShareDHWSYS above).

In addition, wsShowerCount participates in assignment of Shower draws to DHWHEATRECs (if any).

Unless this DHWSYS is part of a shared-load group or includes DHWHEATREC(s), these counts have no effect and need not be specified.

UnitsLegal RangeDefaultRequiredVariability
x \(\ge\) 01Noconstant

wsTInlet=float

Specifies cold (mains) water temperature supplying this DHWSYS. DHWHEATER supply water temperature wsTInlet adjusted (increased) by any DHWHEATREC recovered heat and application of wsSSF (approximating solar preheating).

UnitsLegal RangeDefaultRequiredVariability
oF\(>\) 32 oFMains temp from weather fileNohourly

wsTInletTest=float

Overides at the substep interval the cold (mains) water temperature supplying this DHWSYS.

CAUTION: wsTInletTest is intended for testing and model validation studies and should not be generally used. It is not fully supported for all DHWSYS configurations. wsTInletTest is allowed only for configurations using HPWH-based DHWHEATERs (whHeatSrc=ASHPX or whHeatSrc=RESISTANCEX).

UnitsLegal RangeDefaultRequiredVariability
oF\(>\) 32 oFNosubhourly

wsTInletDes=float

Cold water inlet design temperature for sizing.

UnitsLegal RangeDefaultRequiredVariability
oFx \(>\) 32 oFAnnual minimums mains temperatureNoconstant

wsUse=float

Hourly hot water use (at the point of use). See further info under wsDayUse.

UnitsLegal RangeDefaultRequiredVariability
galx \(\ge\) 00Nohourly

wsUseTest=float

Additional substep hot water use added to draw(s) specfied by wsHWUse and wsDayUse.

CAUTION: wsUseTest is intended for testing and model validation studies and should not be generally used. It is not fully supported for all DHWSYS configurations. wsUseTest is allowed only for configurations using HPWH-based DHWHEATERs (whHeatSrc=ASHPX or whHeatSrc=RESISTANCEX).

UnitsLegal RangeDefaultRequiredVariability
galx \(\ge\) 0Nosubhourly

wsDayUse=dhwdayuseName

Name of DHWDAYUSE object that specifies a detailed schedule of mixed water use at points of hot water use (that is, “at the tap”). The mixed water amounts are used to derive hot water requirements based on specified mixing fractions or mixed water temperature (see DHWDAYUSE and DHWUSE).

The total water use modeled by CSE is the sum of amounts given by wsUse and the DWHDAYUSE schedule. DHWDAYUSE draws are resolved to minute-by-minute bins compatible with the HPWH model and wsUse/60 is added to each minute bin. Conversely, the hour total of the DHWDAYUSE amounts is included in the draw applied to non-HPWH DHWHEATERs.

wsDayUse variability is daily, so it is possible to select different schedules as a function of day type (or any other condition), as follows –

     DHWSYS "DHW1"
       ...
       wsDayUse = choose( $isWeHol, "DUSEWeekday", "DUSEWeHol")
       ...

Note that while DHWDAYUSE selection is updated daily, the DHWUSE values within the DHWDAYUSE can be altered hourly, providing additional scheduling flexibility.

UnitsLegal RangeDefaultRequiredVariability
name of a DHWDAYUSE(no scheduled draws)Nodaily

wsFaucetDrawDurF=float

Water heater draw duration factor for faucets. Defined as the ratio of the actual draw duration (including time waiting for hot water to arrive at the fixture) to the nominal draw duration (as though hot water was instantly available).

UnitsLegal RangeDefaultRequiredVariability
x \(\geq\) 00.0NoHourly

wsShowerDrawDurF=float

Water heater draw duration factor for showers. Defined as the ratio of the actual draw duration (including time waiting for hot water to arrive at the fixture) to the nominal draw duration (as though hot water was instantly available).

UnitsLegal RangeDefaultRequiredVariability
x \(\geq\) 00.0NoHourly

wsBathDrawDurF=float

Water heater draw duration factor for baths. Defined as the ratio of the actual draw duration (including time waiting for hot water to arrive at the fixture) to the nominal draw duration (as though hot water was instantly available).

UnitsLegal RangeDefaultRequiredVariability
x \(\geq\) 00.0NoHourly

wsCWashrDrawDurF=float

Water heater draw duration factor for clothes washers. Defined as the ratio of the actual draw duration (including time waiting for hot water to arrive at the fixture) to the nominal draw duration (as though hot water was instantly available).

UnitsLegal RangeDefaultRequiredVariability
x \(\geq\) 01.0NoHourly

wsDWashrDurF=float

Water heater draw duration factor for dishwashers. Defined as the ratio of the actual draw duration (including time waiting for hot water to arrive at the fixture) to the nominal draw duration (as though hot water was instantly available).

UnitsLegal RangeDefaultRequiredVariability
x \(\geq\) 01.0NoHourly

wsUnkDrawDurF=float

Water heater draw duration factor for unknown end use. Defined as the ratio of the actual draw duration (including time waiting for hot water to arrive at the fixture) to the nominal draw duration (as though hot water was instantly available).

UnitsLegal RangeDefaultRequiredVariability
x \(\geq\) 00.0NoHourly

wsFaucetDrawWaste=float

Draw water waste for faucets. Specifies additional draw volume per DHWUSE event (at fixture, by end use). This can be used to account for water discarded during warmup or otherwise adjust the draw volume. Because the values are at the fixture, the impact on hot water demand additionally depends on DHWUSE parameters. The value is applied by lengthening (or shortening) the draw duration.

UnitsLegal RangeDefaultRequiredVariability
gal/drawx \(\geq\) 00.0NoHourly

wsShowerDrawWaste=float

Draw water waste for showers. Specifies additional draw volume per DHWUSE event (at fixture, by end use). This can be used to account for water discarded during warmup or otherwise adjust the draw volume. Because the values are at the fixture, the impact on hot water demand additionally depends on DHWUSE parameters. The value is applied by lengthening (or shortening) the draw duration.

UnitsLegal RangeDefaultRequiredVariability
gal/drawx \(\geq\) 00.0NoHourly

wsBathDrawWaste=float

Draw water waste for baths. Specifies additional draw volume per DHWUSE event (at fixture, by end use). This can be used to account for water discarded during warmup or otherwise adjust the draw volume. Because the values are at the fixture, the impact on hot water demand additionally depends on DHWUSE parameters. The value is applied by lengthening (or shortening) the draw duration.

UnitsLegal RangeDefaultRequiredVariability
gal/drawx \(\geq\) 00.0NoHourly

wsCWashrDrawWaste=float

Draw water waste for clothes washers. Specifies additional draw volume per DHWUSE event (at fixture, by end use). This can be used to account for water discarded during warmup or otherwise adjust the draw volume. Because the values are at the fixture, the impact on hot water demand additionally depends on DHWUSE parameters. The value is applied by lengthening (or shortening) the draw duration.

UnitsLegal RangeDefaultRequiredVariability
gal/drawx \(\geq\) 00.0NoHourly

wsDWashrDrawWaste=float

Draw water waste for dishwashers. Specifies additional draw volume per DHWUSE event (at fixture, by end use). This can be used to account for water discarded during warmup or otherwise adjust the draw volume. Because the values are at the fixture, the impact on hot water demand additionally depends on DHWUSE parameters. The value is applied by lengthening (or shortening) the draw duration.

UnitsLegal RangeDefaultRequiredVariability
gal/drawx \(\geq\) 00.0NoHourly

wsUnkDrawWaste=float

Draw water waste for unknown end use. Specifies additional draw volume per DHWUSE event (at fixture, by end use). This can be used to account for water discarded during warmup or otherwise adjust the draw volume. Because the values are at the fixture, the impact on hot water demand additionally depends on DHWUSE parameters. The value is applied by lengthening (or shortening) the draw duration.

UnitsLegal RangeDefaultRequiredVariability
gal/drawx \(\geq\) 00.0NoHourly

wsTRLTest=float

Circulation loop return temperature for testing and validation.

UnitsLegal RangeDefaultRequiredVariability
Fx \(\geq\) 00.0NoSubhourly

wsVolRLTest=float

Circulation loop volume flow rate for testing and validation.

UnitsLegal RangeDefaultRequiredVariability
gpmx \(\geq\) 00.0NoSubhourly

wsBranchModel=choice

Branch model selection.

wsBranchModelDescription
T24DHWModel in appendix B of the Alternative Compliance Manual
DRAWWASTEDraw duration increase per draw waste
DAYWASTEdraw duration increase per day waste

wsDayWasteVol=float

Average amount of waste per day.

UnitsLegal RangeDefaultRequired**Variability
gal/dayx \(\ge\) 0wsDayWasteBranchVolF * (Total DHWLOOPBRANCH vol)Noconstant

wsDayWasteBranchVolF=float

Day waste scaling factor.

UnitsLegal RangeDefaultRequiredVariability
x \(\ge\) 01Noconstant

wsFaucetDayWasteF=float

Relative faucet water draw for day of waste scheme.

UnitsLegal RangeDefaultRequiredVariability
x \(>\) 00.0Nosubhourly

wsShowerDayWasteF=float

Relative shower water draw for day of waste scheme.

UnitsLegal RangeDefaultRequiredVariability
x \(>\) 00.0Nosubhourly

wsBathDayWasteF=float

Relative bath water draw for day of waste scheme.

UnitsLegal RangeDefaultRequiredVariability
x \(>\) 00.0Nosubhourly

wsCWashrDayWasteF=float

Relative clothes washer water draw for day of waste scheme.

UnitsLegal RangeDefaultRequiredVariability
x \(>\) 00.0Nosubhourly

wsDWashrDayWasteF=float

Relative dish washer water draw for day of waste scheme.

UnitsLegal RangeDefaultRequiredVariability
x \(>\) 00.0Nosubhourly

wsUnkDayWasteF=float

Unknown relative water draw for day of waste scheme.

UnitsLegal RangeDefaultRequiredVariability
x \(>\) 00.0Nosubhourly

wsTUse=float

Hot water delivery temperature (at output of water heater(s) and at point of use). Delivered water is mixed down to wsTUSe (with cold water) or heated to wsTUse (with extra electric resistance backup, see DHWHEATER whXBUEndUse). Note that draws defined via DHWDAYUSE / DHWUSE can specify mixing to a lower temperature.

UnitsLegal RangeDefaultRequiredVariability
oF\(>\) 32 oF120Nohourly

wsTUseTest=float

Overides at the substep interval the hot water delivery temperature.

CAUTION: wsTUseTest is intended for testing and model validation studies and should not be generally used. It is not fully supported for all DHWSYS configurations. wsTUseTest is allowed only for configurations using HPWH-based DHWHEATERs (whHeatSrc=ASHPX or whHeatSrc=RESISTANCEX).

UnitsLegal RangeDefaultRequiredVariability
oF\(>\) 32 oFNosubhourly

wsTSetPoint=float

Specifies the hot water setpoint temperature for all child DHWHEATERs. Used only for HPWH-based DHWHEATERs (HPWH models tank temperatures and heating controls), otherwise has no effect. wsTSetpoint can be modified hourly to achieve load-shifting effects.

UnitsLegal RangeDefaultRequiredVariability
oF\(>\) 32 oFwsTUseNohourly

wsTSetPointLH=float

Specifies the hot water set point temperature for all child DHWLOOPHEATERs. Used only for HPWH-based DHWHLOOPEATERs (HPWH explicitly models tank temperatures and heating controls), otherwise has no effect.

UnitsLegal RangeDefaultRequiredVariability
oF\(>\) 32 oFwsTSetPointNohourly

wsTSetpointDes=float

Specifies the design (sizing) set point temperature.

UnitsLegal RangeDefaultRequiredVariability
oFx \(>\) 32 oFwsTUseNoconstant

wsVolRunningDes=float

Running volume for design. Active volume (above aquastat) equals to a full tank volume, defaults from EcoSizer at end of prerun if not input. No direct use, must be passed to DHWHEATER via ALTER.

UnitsLegal RangeDefaultRequiredVariability
galx \(>\) 00.0Noconstant

wsASHPTSrcDes=float

Design (sizing) source air temperature for HPWH DHWHEATERs.

UnitsLegal RangeDefaultRequiredVariability
oFx \(>\) 32 oFHeating design temperatureNoAt the start and at the end of interval

wsFxDes=float

Excess size factor for domestic hot water design. wsFxDes is applied when wsHeatingCapDes and/or wsVolRunningDes are defaulted from EcoSizer at the end of the prerun. There is no effect if those values are input.

UnitsLegal RangeDefaultRequiredVariability
x \(>\) 01.0Noconstant

wsDRMethod=choice

Selects alternative control schemes for HPWH-based DHWHEATERs. These allow shifting primary heater (compressor or resistance element) operation to times of day that have load-management advantages.

wsDRMethodDescription
NONENone (default setpoint-based control)
SCHEDULEDemand response schedule (see wsDRSignal)
STATEOFCHARGEState-of-charge (see wsTargetSOC)
UnitsLegal RangeDefaultRequiredVariability
See table aboveNONENoconstant

wsDRSignal=choice

When (and only when) wsDRMethod=SCHEDULE, wsDRSignal allows hourly specification of modified control schemes. Available signals are:

wsDRSignalDescription
ONNormal operation following the water heater’s internal control logic.
TOOTops off the tank once by engaging the all the available heating sources (compressor and resistive elements) in the water heater to heat the tank to setpoint (regardless of the current condition).
TOOLORTops off the tank once and locks out the resistance elements (only the compressor is used to heat the tank to setpoint).
TOOLOCTops off the tank once and locks out the compressor (only the resistance elements are used to heat the tank to setpoint).
TOTTops off the tank on a timer using all the available heating sources (compressor and resistive elements) in the water heater. The tank starts a timer and heating to setpoint when the call is received and repeats the heating call when the timer reaches zero.
TOTLORTops of the tank on a timer and locks out the resistance elements (only the compressor is used to heat the tank to setpoint).
TOTLOCTops of the tank on a timer and locks out the compressor (only the resistance elements are used to heat the tank to setpoint).
LOCLocks out the compressor from the water heater’s normal internal control logic.
LORLocks out the resistive elements from the water heater’s normal internal control logic.
LOCLORLocks out the compressor and resistive elements from the water heater’s normal internal control logic.

Scheduling functions can be used to construct control strategies of interest, for example:

wsDRSignal = $isWeHol
  ? hourval( on,  on,  on,  on,  on,  on,  on,  on,  on,  on,  on,  on,
            on,  on,  on,  on,  on,  on, TOO, LOC, LOR,  on,  on,  on)
  : hourval( on,  on,  on,  on,  on,     on,     on,  on,  on,  on,  on,  on,
            on,  on,  on,  on,  TOOLOR, TOOLOR, LOC, LOR, LOR, LOR,  on,  on)

Note also that wsTSetpoint can be also be modified hourly to achieve load-shifting effects.

UnitsLegal RangeDefaultRequiredVariability
See Table aboveONNohourly

wsTargetSOC=float

When (and only when) wsDRMethod=STATEOFCHARGE, wsTargetSOC specifies the target fraction of maximum tank heat content. The tank is deemed fully charged when its entire contents is at wsTSetpoint and 0 charged at 110 oF. Schedules are used to indicate anticipated heat requirements. The STATEOFCHARGE method can be used in combined heat / DHW systems (see RSYS rsType=COMBINEDHEATDHW) when there is excess capacity during summer months, as shown in the following:

wsTargetSOC = select(
  $month > 11 || $month < 3,
      hourval(.70,.70,.70,.70,.70,.70,.70,.30,.95,.95,.95,.95,
              .95,.95,.95,.95,.95,.70,.70,.70,.70,.70,.70,.70),
  $month==3 || $month== 4,
      hourval(.50,.50,.50,.50,.50,.50,.50,.30,.95,.95,.95,.95,
              .95,.95,.95,.95,.95,.50,.50,.50,.50,.50,.50,.50),
  default
      hourval(.15,.15,.15,.15,.15,.15,.15,.15,.15,.15,.15,.15,
              .15,.60,.60,.60,.15,.15,.15,.15,.15,.15,.15,.15))
UnitsLegal RangeDefaultRequiredVariability
0 \(\lt\) x \(\le\) 10.9Nohourly

wsSDLM=float

Specifies the standard distribution loss multiplier. See App B Eqn 4. To duplicate CEC 2019 methods, this value should be set according to the value derived with App B Eqn 5.

UnitsLegal RangeDefaultRequiredVariability
\(>\) 01Noconstant

wsDSM=float

Distribution system multiplier. See RACM App B Eqn 4. To duplicate CEC 2016 methods, wsDSM should be set to the appropriate value from App B Table B-2. Note the NCF (non-compliance factor) included in App B Eqn 4 is not a CSE input and thus must be applied externally to wsDSM.

UnitsLegal RangeDefaultRequiredVariability
\(>\) 01Noconstant

wsWF=float

Waste factor. See RACM App B Eqn 1. wsWF is applied to hot water draws. The default value (1) reflects the inclusion of waste in draw amounts. App B specifies wsWF=0.9 when the system has a within-unit pumped loop that reduces waste due to immediate availability of hot water at fixtures.

UnitsLegal RangeDefaultRequiredVariability
x \(>\) 01Nohourly

wsSSF=float

NOTE: Deprecated. Use wsSolarSys instead.

Specifies the solar savings fraction, allowing recognition of externally-calculated solar water heating energy contributions. The contributions are modeled by deriving an increased water heater feed temperature –

\[tWHFeed = tInletAdj + wsSSF*(wsTUse-tInletAdj)\]

where tInletAdj is the source cold water temperature including any DHWHEATREC tempering (that is, wsTInlet + heat recovery temperature increase, if any). This model approximates the diminishing returns associated with combined preheat strategies such as drain water heat recovery and solar.

UnitsLegal RangeDefaultRequiredVariability
0 \(\le\) x \(\le\) 0.99Nohourly

wsSolarSys=dhwSolarSys

Name of DHWSOLARSYS object, if any, that supplies pre-heated water to this DHWSYS.

UnitsLegal RangeDefaultRequiredVariability
name of a DHWSOLARSYSnot recordedNoconstant

wsParElec=float

Specifies electrical parasitic power to represent recirculation pumps or other system-level electrical devices. Calculated energy use is accumulated to the METER specified by wsElecMtr (end use DHW). No other effect, such as heat gain to surroundings, is modeled.

UnitsLegal RangeDefaultRequiredVariability
Wx \(\ge\) 00Nohourly

wsDrawMaxDur=integer

Maximum draw duration for the sizing window.

UnitsLegal RangeDefaultRequiredVariability
Hrx \(\geq\) 04Noconstant

wsLoadMaxDur=integer

Maximum load duration for the sizing window.

UnitsLegal RangeDefaultRequiredVariability
Hrx \(\geq\) 012Noconstant

wsElecMtr=mtrName

Name of METER object, if any, to which DHWSYS electrical energy use is recorded (under end use DHW). In addition, wsElecMtr provides the default whElectMtr selection for all DHWHEATERs and DHWPUMPs in this DHWSYS.

UnitsLegal RangeDefaultRequiredVariability
name of a METERnot recordedNoconstant

wsFuelMtr =mtrName

Name of METER object, if any, to which DHWSYS fuel energy use is recorded (under end use DHW). DHWSYS fuel use is usually (always?) 0, so the primary use of this input is to specify the default whFuelMtr choice for DHWHEATERs in this DHWSYS.

UnitsLegal RangeDefaultRequiredVariability
name of a METERnot recordedNoconstant

wsWHhwMtr=dhwmtrName

Name of DHWMETER object, if any, to which hot water quantities (at water heater) are recorded by hot water end use.

UnitsLegal RangeDefaultRequiredVariability
name of a METERnot recordedNoconstant

wsFXhwMtr =dhwmtrName

Name of DHWMETER object, if any, to which mixed hot water use (at fixture) quantities are recorded by hot water end use. DHWDAYUSE and wsUse input can be verified using DHWMETER results.

UnitsLegal RangeDefaultRequiredVariability
name of a METERNoconstant

wsWriteDrawCSV=choice

If Yes, a comma-separated file is generated containing 1-minute interval hot water draw values for testing or linkage purposes.

UnitsLegal RangeDefaultRequiredVariability
Yes or NoNoNoconstant

endDHWSys

Optionally indicates the end of the DHWSYS definition.

UnitsLegal RangeDefaultRequiredVariability
noneNo

Related Probes: