diff --git a/src/CNCULT.CPP b/src/CNCULT.CPP index a46953aac..da18c5815 100644 --- a/src/CNCULT.CPP +++ b/src/CNCULT.CPP @@ -2071,6 +2071,8 @@ CULT( "wsUse", DAT, DHWSYS_HWUSE, 0, 0, VHRLY, TYFL, 0, 0.f, N CULT( "wsTUse", DAT, DHWSYS_TUSE, 0, 0, VHRLY, TYFL, 0, 120.f, N, N), CULT( "wsTSetpoint", DAT, DHWSYS_TSETPOINT,0, 0, VHRLY, TYFL, 0, 120.f, N, N), CULT( "wsTSetpointLH",DAT, DHWSYS_TSETPOINTLH,0, 0, VHRLY, TYFL, 0, 120.f, N, N), +CULT( "wsDRMethod", DAT, DHWSYS_DRMETHOD, 0, 0, VEOI, TYCH, 0, C_DHWDRMETH_NONE, N, N), +CULT( "wsDRSignal", DAT, DHWSYS_DRSIGNAL, 0, 0, VHRLY, TYCH, 0, nc( C_DHWDRSIG_ON), 0.f, N, N), CULT( "wsDayUse", DAT, DHWSYS_DAYUSENAME,0, 0, VDAILY, TYSTR, 0, N, N, N), CULT( "wsWHhwMtr", DAT, DHWSYS_WHHWMTRI, 0, 0, VEOI, TYREF, &WMtriB,N, N, N), CULT( "wsFXhwMtr", DAT, DHWSYS_FXHWMTRI, 0, 0, VEOI, TYREF, &WMtriB,N, N, N), diff --git a/src/CNDTYPES.DEF b/src/CNDTYPES.DEF index 5eb08b9a4..0dc341805 100644 --- a/src/CNDTYPES.DEF +++ b/src/CNDTYPES.DEF @@ -356,6 +356,7 @@ PIPESEGP -- "class PIPESEG*" 4 none } // DHW choices + *choicb WSCALCMODECH { PRERUN "PreRun" SIM "Simulate" @@ -472,6 +473,7 @@ PIPESEGP -- "class PIPESEG*" 4 none } *choicb DHWLSEGTYCH { RET "return" SUP "supply" } *choicb DWHRTYCH { HORIZ "horizontal" VERT "vertical" SETEF "SetEF" } +*choicb DHWDRMETH { NONE "none" SCHED "schedule" /* TDV */ } // PV choices *choicb PVMODCH { @@ -738,6 +740,17 @@ PIPESEGP -- "class PIPESEG*" 4 none TDVPEAKSAVE "TDVPeakSave" } +*choicn DHWDRSIG { + ON "On" + TOO "TOO" + TXO "TXO" + TOT "TOT" + TXT "TXT" + LOC "LOC" + LOR "LOR" + LOX "LOX" + COUNT "*Count" // hidden + } /********************************************************************************************************************** ** === CHOICN types: can hold these choices (as NAN), or float number diff --git a/src/CNFIELDS.DEF b/src/CNFIELDS.DEF index 5366e3869..72f549447 100644 --- a/src/CNFIELDS.DEF +++ b/src/CNFIELDS.DEF @@ -169,15 +169,16 @@ RSYSMODECTRLCH RSYSMODECTRLCH LMNONE UNNONE RSYSTYCH RSYSTYCH LMNONE UNNONE RSYSOAVTYCH RSYSOAVTYCH LMNONE UNNONE RSYSDEFROSTMODELCH RSYSDEFROSTMODELCH LMNONE UNNONE +WHTYPECH WHTYPECH LMNONE UNNONE WHHEATSRCCH WHHEATSRCCH LMNONE UNNONE WSCALCMODECH WSCALCMODECH LMNONE UNNONE -WHTYPECH WHTYPECH LMNONE UNNONE WHASHPTYCH WHASHPTYCH LMNONE UNNONE DHWEUCH DHWEUCH LMNONE UNNONE DHWEUXCH DHWEUXCH LMNONE UNNONE DHWBRANCHMODELCH DHWBRANCHMODELCH LMNONE UNNONE DHWLSEGTYCH DHWLSEGTYCH LMNONE UNNONE DWHRTYCH DWHRTYCH LMNONE UNNONE +DHWDRMETH DHWDRMETH LMNONE UNNONE // DHW demand response control method PVMODCH PVMODCH LMNONE UNNONE PVARRCH PVARRCH LMNONE UNNONE MOUNTCH MOUNTCH LMNONE UNNONE @@ -221,6 +222,7 @@ NOYESVC NOYESVC LMNONE UNNONE OFFAVAILONVC OFFAVAILONVC LMNONE UNNONE VENTAVAILVC VENTAVAILVC LMNONE UNNONE BATCTRLALGVC BATCTRLALGVC LMNONE UNNONE +DHWDRSIG DHWDRSIG LMNONE UNNONE // number/choice (NC choicn) types TEMP_TSCM TSCMNC LMNONE UNTEMP diff --git a/src/CNGUTS.CPP b/src/CNGUTS.CPP index 2ebe5b26e..a9500363d 100644 --- a/src/CNGUTS.CPP +++ b/src/CNGUTS.CPP @@ -987,7 +987,6 @@ RC FC cgRddInit( // Perform initialization common to main simulation run and eac RLUP( AhB, ah) rc |= ah->rddInit( isAusz); // do run-or-design-day init for each air handler -#if 1 // allocate results records paired with run records // do for both autoSize and run // no accum for autoSize, but code does incidental stores into xxRES @@ -1003,40 +1002,6 @@ RC FC cgRddInit( // Perform initialization common to main simulation run and eac EF(AhresB.AllocResultsRecs(AhB)); // AHRES <-> AH -#else - int i = ZrB.n + 1; // need a results record for each zone, and one for sum of zones - EF( ZnresB.al( i, WRN) ) // alloc ZNRES recs, at once for less fragmentation. destroys old. - do // (Note: may be no results accumulation during autoSize, - { // but alloc anyway cuz code several places stores into records) - ZNRES *zp; - ZnresB.add( &zp, ABT, i); // init (to 0) each zone results record, 1 thru i. ancrec.cpp. - strcpy( zp->name, i <= ZrB.n ? ZrB.p[i].name : "sum_of_zones"); // results name for rpts: name of zone or "sum_of_zones" - zp->zr_InitPrior(); // provide plausible ZNRES.prior values for use in - // possible expressions that are evaluated at step beg - } - while (--i > 0); - - i = RsR.n + 1; // need a results record for each RSYS, and one for sum of RSYSs - EF( RsResR.al( i, WRN) ) // alloc RSYSRES recs, at once for less fragmentation. destroys old. - do // (Note: may be no results accumulation during autoSize, - { // but alloc anyway cuz code several places stores into records) - RSYSRES* pRSR; - RsResR.add( &pRSR, ABT, i); // init (to 0) each zone results record, 1 thru i. - strcpy( pRSR->name, i <= RsR.n ? RsR.p[i].name : "sum_of_RSYS"); // results name for rpts - } - while (--i > 0); - - i = AhB.n + 1; // need a results record for each ah, and one for sum of ahs - EF( AhresB.al( i, WRN) ) // alloc AHRES recs, all at once for less mem frag. destroys any old. - do - { - AHRES *ahr; - AhresB.add( &ahr, ABT, i); // initialize each ah results record, 1 thru i. ancrec.cpp. - strcpy( ahr->name, i <= AhB.n ? AhB.p[i].name : "sum_of_ahs"); // ah results name for rpts: name of ah or "sum_of_ahs" - } - while (--i > 0); -#endif - #ifdef BINRES // Init re binary results output files // move call to cgInit (and review code) if file is to persist (stay open) thru autosize and main sim run. @@ -1768,7 +1733,7 @@ LOCAL void FC NEAR doIvlAccum() RLUP( RsResR, pRSR) // loop RSYS simulation results incl sum_of. pRSR->curr.Y.rsr_Accum( &pRSR->curr.M, Top.isFirstMon, Top.isLastDay); // accumulate year from month RLUP(WsResR, pWSR) // loop DHWSYSRES results incl sum_of. - pWSR->Y.wsr_Accum(&pWSR->D, Top.isFirstMon, Top.isLastDay); + pWSR->Y.wsr_Accum(&pWSR->M, Top.isFirstMon, Top.isLastDay); mtrsAccum( C_IVLCH_Y, Top.isFirstMon, Top.isLastDay); // accumulate metered energy use: month to year #ifdef BINRES if (brf) // if outputting any binary results this run diff --git a/src/CNLOADS.CPP b/src/CNLOADS.CPP index eabb9aad9..14b9c99c9 100644 --- a/src/CNLOADS.CPP +++ b/src/CNLOADS.CPP @@ -3790,7 +3790,7 @@ void RSYS::rs_EnteringAirState( // RSYS entering air state // rsMode determines assumed air source // rsmOAV: outdoor air (as modified via rs_OAVTdbInlet) // else: mixes air from zones plus return duct leakage -// then addes return duct conduction and leakage +// then adds return duct conduction and leakage // returns // rs_asIn = state of air entering RSYS (after return ducts) diff --git a/src/CNRECS.DEF b/src/CNRECS.DEF index e151f1e06..a1d10e1e1 100644 --- a/src/CNRECS.DEF +++ b/src/CNRECS.DEF @@ -3507,14 +3507,15 @@ RECORD DHWSYSRES_IVL "DHWSYSRES interval sub" *SUBSTRUCT // interval substruct *declare "void wsr_AccumTick( const struct DHWTICK& tk);" *declare "static const size_t wsr_NFLOAT;" - // water heating energy (not fuel) + // water heating energy (not fuel), Btu + // values are for associated DHWSYS (wh_mult include, ws_mult not included) *e FLOAT total // *e FLOAT qDWHR // drain water heat recovery *e FLOAT qSSF // implied energy contribution from ws_SSF *e FLOAT qSolar // DHWSOLARSYS - *e FLOAT qWaterHeater // DHWHEATER - *e FLOAT qLoopHeater - *e FLOAT qXBU + *e FLOAT qWH // DHWHEATER primary (compressor, burner, ) + *e FLOAT qLH // Loop heater primary + *e FLOAT qXBU // add'l backup heat *END // DHWSYSRES_IVL //============================================================================= @@ -3610,7 +3611,7 @@ RECORD DHWSYS "DHWSys" *RAT // input / runtime DHW system *h *e FLOAT ws_tInlet; // current hour cold water inlet temp, F for this DHWSYS // user expression or default Wthr.d.wd_tMains - // Not modified by DWHR or Solar + // Not modified by solar and/or DHWHEATREC *h *e FLOAT ws_tInletX; // hour average adjusted cold water temp, F // reflects solar and/or DHWHEATREC *h FLOAT ws_hwUse; // current hour hot water use (at fixtures), gal @@ -3660,6 +3661,12 @@ RECORD DHWSYS "DHWSys" *RAT // input / runtime DHW system // default = ws_tUse *h FLOAT ws_tSetpointLH; // DHWLOOPHEATER set point (for all child DHWLOOPHEATERs using HPWH model), F // default = ws_tUse + *r DHWDRMETH ws_drMethod // DHW demand response control method + // C_DHWDRMETH_NONE, C_DHWDRMETH_SCHED, + *h DHWDRSIG ws_drSignal; // DHW demand response control signal + *h *e INT ws_drModeHPWH; // DHW demand response HPWHsim base mode for hour + // may be modified at subhour or tick ivl + *s *hide DBL ws_tOutPrimSum; // working var re ws_tOutPrimLT *s *e FLOAT ws_tOutPrimLT; // primary water heater outlet temp, F // for HPWH only, re DHWLOOPHEATER entering temp @@ -3789,11 +3796,6 @@ RECORD DHWSYS "DHWSys" *RAT // input / runtime DHW system *h *e FLOAT ws_HARL; // hour total adjusted recovery load, Btu *h *e FLOAT ws_HARLtk; // hour total adjusted recovery load, Btu // check figure derived from ticks - -#if 0 - *s *e *nest DHWSYSRES ws_res // results -#endif - *END // DHWSYS //============================================================================= @@ -3828,9 +3830,9 @@ RECORD HPWHLINK "HPWHLink" *SUBSTRUCT // Ecotope's HPWH tank and heater *declare "void hw_SetQTX( float qTX);" *declare "RC hw_DoHour( float& tSetpoint);" *declare "RC hw_DoSubhrStart( float tEx, float tASHPSrc=-999.f);" -*declare "RC hw_DoSubhrTick( DHWTICK& tk, float tInlet, float scaleWH=1.f, float tMix=-1., float tMains=-1.f, float* pTOutNoMix=NULL);" +*declare "RC hw_DoSubhrTick( DHWTICK& tk, float tInlet, float scaleWH=1.f, float tMix=-1., float tMains=-1.f, float* pTOutNoMix=NULL, int drMode=0);" *declare "RC hw_DoSubhrTick( int iTk, float draw, float tInlet, float* pTOut, float scaleWH=1.f);" -*declare "RC hw_DoSubhrEnd( float mult, ZNR* pZn, ZNR* pZnASHPSrc, double& totOut);" +*declare "RC hw_DoSubhrEnd( float mult, ZNR* pZn, ZNR* pZnASHPSrc);" *declare "record* hw_pOwner;" // owner (DHWHEATER, DHWSOLARSYS, ...) *declare "class HPWH* hw_pHPWH;" // pointer HPWH object @@ -3855,7 +3857,7 @@ RECORD HPWHLINK "HPWHLink" *SUBSTRUCT // Ecotope's HPWH tank and heater // Loop return flow is reduced to balance load at ws_tUse. *s *e *array 2 DBL hw_inElec; // current subhr HPWH electricity use, kWh - // [0]=resistance backup (iff HP) (not including wh_HPWHxBU) + // [0]=resistance backup (iff HP) (not including hw_HPWHxBU) // [1]=primary(=compressor or non-HP resistance) + misc *r FLOAT hw_HPWHxBU; // current subhr HPWH add'l backup resistance heat, Btu // output water heated to ws_tUse iff HPWH output temp < ws_tUse @@ -3865,7 +3867,7 @@ RECORD HPWHLINK "HPWHLink" *SUBSTRUCT // Ecotope's HPWH tank and heater // for 1 DHWHEATER (no wh_mult) *s *e DBL hw_qHW; // current subhr HPWHtotal hot water heating, kWh. always >= 0 // for 1 DHWHEATER (no wh_mult) - // includes heat to DHWLOOP, does not include wh_HPWHxBU + // includes heat to DHWLOOP, does not include hw_HPWHxBU *s *e DBL hw_qTX; // current subhr extra heat tank heat, kWh (not Btu) *h *e INT hw_tankTempSet; // nz iff HPWH tank temp has been initialized @@ -3912,13 +3914,15 @@ RECORD DHWHEATER "DHWHeater" *RAT // input / runtime DHW heater *declare "RC wh_DoSubhrTick( struct DHWTICK& tk, float scaleWH);" *declare "RC wh_InstUEFInit();" *declare "RC wh_InstUEFDoSubhrTick( double draw, float tInletWH, float scaleWH, float tUse);" - *declare "RC wh_DoSubhrEnd();" + *declare "RC wh_DoSubhrEnd( bool bIsLH);" *declare "RC wh_DoEndPreRun();" *declare "RC wh_EndIvl( IVLCH ivl, float HARL, float wsMult);" *declare "static WStr wh_GetHPWHVersion();" *declare "int wh_ReportBalErrorsIf() const;" *declare "virtual void ReceiveRuntimeMessage( const char* msg);" *declare "RC wh_HPWHInit();" + *declare "static void wh_DRMapValidate();" + *declare "static int wh_DRMapSigToDRMode( DHWDRSIG drSig);" *r FLOAT_GEZ wh_mult; // count of identical water heaters (default 1) // models as if repeated identical input @@ -3931,7 +3935,7 @@ RECORD DHWHEATER "DHWHeater" *RAT // input / runtime DHW heater // _ELRESX: electric resistance (Ecotope HPWH) *i WHTYPECH wh_type; // heater type // C_WHTYPECH_STRGSML, _STRGLRG, _INSTSML, _INSTLRG, - // _INSTUEF + // _INSTUEF, _BUILTUP *i ANAME wh_desc; // probe-able description text *declare "virtual const char* GetDescription( int options=0) { options; return wh_desc; }" *r INT wh_fcn; // function of this DHWHEATER per whfcnXXX enum @@ -4003,7 +4007,7 @@ RECORD DHWHEATER "DHWHeater" *RAT // input / runtime DHW heater // load that is unmet on 1 min basis // default = 1; only for C_WHTYPECH_INSTUEF *i DBL wh_loadCFwdMax; // max load carry-forward energy (from wh_loadCFwdF), Btu - // any excess load met via wh_HPWHxBU + // any excess load met via wh_qXBU *s DBL wh_loadCFwd; // current load carry forward, Btu // see wh_InstUEFDoSubhr() *s *e FLOAT wh_nTickFullLoad; // INSTUEF: current subhour equiv full load ticks (fractional) @@ -4028,15 +4032,15 @@ RECORD DHWHEATER "DHWHeater" *RAT // input / runtime DHW heater *s *e *nest HPWHLINK wh_HPWH; // interface to Ecotope HPWH detailed heat pump model // also used for resistance electric heaters - *s *e FLOAT wh_HPWHxBU; // current step HPWH add'l backup resistance heat, Btu + *s *e FLOAT wh_qXBU; // current step HPWH add'l backup resistance heat, Btu // output water heated to ws_tUse iff HPWH output temp < ws_tUse *s *e DBL wh_qEnv; // current step heat removed by HPWH from environment, kWh // + = to water heater; for 1 DHWHEATER (no wh_mult) *s *e DBL wh_qLoss; // current step HPWH standby losses, kWh. + = to surround // for 1 DHWHEATER (no wh_mult) - *s *e DBL wh_qHW; // current step HPWHtotal hot water heating, kWh. always >= 0 + *s *e float wh_qHW; // current step hot water heating, kWh. always >= 0 // for 1 DHWHEATER (no wh_mult) - // includes heat to DHWLOOP, does not include wh_HPWHxBU + // includes heat to DHWLOOP, does not include wh_qXBU *s *e INT wh_nzDrawCount; // current substep # of draws > 0 *h *e INT wh_bWriteCSV; // write HPWH debugging CSV iff nz @@ -4050,7 +4054,7 @@ RECORD DHWHEATER "DHWHeater" *RAT // input / runtime DHW heater *h *e INT wh_hrCount; // # of hourly values included in wh_totHARL // re calc of avg *h *e DBL wh_totOut; // cumulative (year to date) total heat delivered to hot water, Btu - // includes wh_HPWHxBU + // includes wh_qXBU // energy inputs for current subhour, Btu @@ -4059,8 +4063,8 @@ RECORD DHWHEATER "DHWHeater" *RAT // input / runtime DHW heater *s *e FLOAT wh_inElecSh; // primary electricity (including wh_parElec) (note not kWh) // for HPWH, includes compressor + misc (not resistance) *s *e FLOAT wh_inElecBUSh; // backup electricity (>0 only for HPWH resistance heat) - // (includes wh_HPWHxBU) - *s *e FLOAT wh_inElecXBUSh; // "extra" backup (reheating to maintain ws_tUse) + // (does not include wh_inElecXBUSh) + *s *e FLOAT wh_inElecXBUSh; // XBU "extra" backup (reheating to maintain ws_tUse) *s *e FLOAT wh_inFuelSh; // fuel (including wh_pilotPwr) @@ -4070,8 +4074,8 @@ RECORD DHWHEATER "DHWHeater" *RAT // input / runtime DHW heater *h *e FLOAT wh_inElec; // primary electricity (including wh_parElec) (note not kWh) // for HPWH, includes compressor + misc (not resistance) *h *e FLOAT wh_inElecBU; // backup electricity (>0 only for HPWH resistance heat) - // (includes wh_HPWHxBU) - *h *e FLOAT wh_inElecXBU; // "extra" backup (reheating to maintain ws_tUse) + // (does not include wh_inElecXBU) + *h *e FLOAT wh_inElecXBU; // XBU "extra" backup (reheating to maintain ws_tUse) *h *e FLOAT wh_inFuel; // fuel (including wh_pilotPwr) // annual total energy inputs, Btu (check figures) @@ -4084,6 +4088,8 @@ RECORD DHWHEATER "DHWHeater" *RAT // input / runtime DHW heater // default = none (include wh_HPWHxBU in end use dhwBU) *declare "MTR* wh_pMtrElec; MTR* wh_pMtrFuel;" // runtime pointers to meters, NULL if not accum'ing + *declare "DHWSYSRES_IVL* wh_pResSh;" // pointer to DHWSYSRES subhour record + // re heat output accounting *h *e INT wh_unMetSh; // count of subhrs in this hour // when wh_tHWOut < wh_tUse diff --git a/src/DHWCalc.cpp b/src/DHWCalc.cpp index 8b7a22bed..8ee9cbc9c 100644 --- a/src/DHWCalc.cpp +++ b/src/DHWCalc.cpp @@ -653,7 +653,7 @@ int DHWSYS::ws_IsCentralDHWSYS() const } // DHWSYS::ws_IsCentralDHWSYS //----------------------------------------------------------------------------- DHWSYSRES* DHWSYS::ws_GetDHWSYSRES() const -{ return WsResR.GetAt(ss); +{ return WsResR.GetAtSafe(ss); } // DHWSYS::ws_GetDHWSYSRES //----------------------------------------------------------------------------- RC DHWSYS::RunDup( // copy input to run record; check and initialize @@ -983,9 +983,18 @@ RC DHWSYS::ws_DoHour( // hourly calcs ws_qSlr = 0.f; // DHWSOLARSYS heat contribution, this hour - if (ivl <= C_IVLCH_D) // if start of day (or longer) { + if (Top.isBegRun || Top.tp_isBegMainSim) + { // intialize run totals for all child water heaters + // also sets up DHWHEATER -> DHWSYSRES linkage + DHWHEATER* pWH; + RLUPC(WhR, pWH, pWH->ownTi == ss) + pWH->wh_InitRunTotals(); + RLUPC(WlhR, pWH, pWH->ownTi == ss) + pWH->wh_InitRunTotals(); + } + if (Top.tp_isBegMainSim) { DHWSYSRES* pWSR = ws_GetDHWSYSRES(); @@ -998,12 +1007,6 @@ RC DHWSYS::ws_DoHour( // hourly calcs for (int iFx = 0; iFx < ws_ShowerCount(); iFx++) ws_fxList[iFx].fx_hitCount = 0; - // intialize run totals for all child water heaters - DHWHEATER* pWH; - RLUPC(WhR, pWH, pWH->ownTi == ss) - pWH->wh_InitRunTotals(); - RLUPC(WlhR, pWH, pWH->ownTi == ss) - pWH->wh_InitRunTotals(); // various run totals ws_t24WLTot = 0.; @@ -1199,6 +1202,17 @@ RC DHWSYS::ws_DoHour( // hourly calcs } #endif + // Demand response (DR) hourly setup + ws_drModeHPWH = HPWH::DR_ALLOW; + if (!ws_HasCentralDHWSYS()) + { int drSig = CHN(ws_drSignal); // decode variable choice + ws_drModeHPWH = ws_drMethod == C_DHWDRMETH_SCHED + ? DHWHEATER::wh_DRMapSigToDRMode( drSig) + : HPWH::DR_ALLOW; + } + else + ws_drModeHPWH = HPWH::DR_ALLOW; // no DR for child DHWSYSs (no DHWHEATERs) + if (ws_wpCount > 0) // if any child pumps { DHWPUMP* pWP; RLUPC(WpR, pWP, pWP->ownTi == ss) @@ -1213,6 +1227,7 @@ RC DHWSYS::ws_DoHour( // hourly calcs if (ws_wlhCount > 0) RLUPC(WlhR, pWH, pWH->ownTi == ss) rc |= pWH->wh_DoHour(); } + // DHWSYS energy use ws_inElec += ws_parElec * BtuperWh; // parasitics for e.g. circulation pumping // associated heat gain is ignored @@ -1502,8 +1517,7 @@ RC DHWSYS::ws_DoHourDWHR() // current hour DHWHEATREC modeling (all DHWHEATRECs // hour average adjusted inlet and hot water temps float tInletXNoSSF; if (qRWHSum > 0.) - { - tInletXNoSSF = ws_tInlet + qRWHSum / (waterRhoCp * ws_whUse.total); + { tInletXNoSSF = ws_tInlet + qRWHSum / (waterRhoCp * ws_whUse.total); ws_tInletX = ws_AdjustTInletForSSF(tInletXNoSSF); } else @@ -1660,11 +1674,14 @@ RC DHWSYS::ws_DoSubhrEnd() { RC rc = RCOK; DHWHEATER* pWH; + + // water heaters RLUPC(WhR, pWH, pWH->ownTi == ss) - rc |= pWH->wh_DoSubhrEnd(); + rc |= pWH->wh_DoSubhrEnd( false); + // loop heaters RLUPC(WlhR, pWH, pWH->ownTi == ss) - rc |= pWH->wh_DoSubhrEnd(); + rc |= pWH->wh_DoSubhrEnd( true); return rc; @@ -1684,9 +1701,10 @@ RC DHWSYS::ws_EndIvl( // end-of-hour ws_SSFAnnualSolar += ws_qSlr; // annual total solar contribution -#if 0 +#if 0 && defined( _DEBUG) if (frDiff(ws_HARL, ws_HARLtk) > .001f) - printf("\nMismatch!"); + orWarn("HARL (%0.1f) mismatches HARLtk (%0.1f)", + ws_HARL, ws_HARLtk); #endif DHWHEATER* pWH; @@ -2759,8 +2777,9 @@ RC HPWHLINK::hw_DoSubhrTick( // calcs for 1 tick float tMains /*=-1.f*/, // current mains temp, F // from weather file or user expression // needed iff tMix is specified - float* pTOutNoMix/*=NULL*/) // unmixed output temp accumulated here re DHWLOOPHEATER + float* pTOutNoMix/*=NULL*/, // unmixed output temp accumulated here re DHWLOOPHEATER // average inlet temp + int drMode /*=0*/) // demand response control signal { RC rc = RCOK; @@ -2774,28 +2793,26 @@ RC HPWHLINK::hw_DoSubhrTick( // calcs for 1 tick bool bDoMix = tMix > 0.f; - // draw components - double drawUse; // use draw + // draw components for tick + double drawUse; // use draw, gal double drawLoss;// pseudo-draw (gal) to represent e.g. central system branch losses - double drawRL; // loop flow vol for tick - double tRL; // loop return temp + double drawRL; // loop flow vol for tick, gal + double tRL; // loop return temp, F + double drawForTick; // total draw, gal if (bDoMix) { double scaleX = scaleWH * hw_fMixUse; drawUse = tk.wtk_whUse*scaleX; drawLoss = tk.wtk_qLossNoRL*scaleX / (waterRhoCp * max(1., tMix - tMains)); tk.wtk_volIn += (drawUse + drawLoss) / scaleWH; drawRL = tk.wtk_volRL * scaleWH * hw_fMixRL; + drawForTick = drawUse + drawLoss + drawRL; tRL = tk.wtk_tRL; } else - { drawUse = tk.wtk_volIn * scaleWH; // multipliers?? + { drawForTick = drawUse = tk.wtk_volIn * scaleWH; // multipliers?? drawLoss = drawRL = tRL = 0.f; } - double drawForTick = drawUse + drawLoss + drawRL; - - hw_pHPWH->setInletT(DegFtoC(tInlet)); // mixed inlet temp - // extra tank heat: passed to HPWH as vector* (or NULL) // used to model e.g. heat addition via solar DHW heat exchanger std::vector< double>* pNPX = NULL; @@ -2811,11 +2828,12 @@ RC HPWHLINK::hw_DoSubhrTick( // calcs for 1 tick } int hpwhRet = hw_pHPWH->runOneStep( + DegFtoC(tInlet), // inlet temp, C GAL_TO_L(drawForTick), // draw volume, L DegFtoC(hw_tEx), // ambient T (=tank surround), C DegFtoC(hw_tASHPSrc), // heat source T, C // aka HPWH "external temp" - HPWH::DR_ALLOW, // DRstatus: no demand response modeled + HPWH::DRMODES( drMode), // DRstatus: demand response signal GAL_TO_L(drawRL), DegFtoC(tRL), // 2ndary draw for DHWLOOP // note drawForTick includes drawRL pNPX); // additional node power (re e.g. solar tanks) @@ -2913,6 +2931,7 @@ RC HPWHLINK::hw_DoSubhrTick( // calcs for 1 tick "vLoss", drawLoss, UNLVOLUME2, 5, "vRL", drawRL, UNLVOLUME2, 5, "vTot", drawForTick, UNLVOLUME2, 5, + "DR", double(drMode), UNNONE, 1, "tMains", tMains > 0. ? tMains : CSVItem::ci_UNSET, UNTEMP, 5, "tDWHR", tk.wtk_tInletX, UNTEMP, 5, @@ -2982,8 +3001,7 @@ RC HPWHLINK::hw_DoSubhrTick( // calcs for 1 tick RC HPWHLINK::hw_DoSubhrEnd( // end of subhour (accounting etc) float mult, // overall multiplier (e.g. DHWSYS * DHWHEATER) ZNR* pZn, // zone containing HPWH, NULL if none - ZNR* pZnASHPSrc, // ASHP heat source zone, NULL if none - double& totOut) // total heat added to water accumulated here, Btu + ZNR* pZnASHPSrc) // ASHP heat source zone, NULL if none { RC rc = RCOK; @@ -3041,9 +3059,6 @@ RC HPWHLINK::hw_DoSubhrEnd( // end of subhour (accounting etc) } #endif - // output accounting = heat delivered to water - totOut += KWH_TO_BTU(hw_qHW) + hw_HPWHxBU; - return rc; } // HPWHLINK::hw_DoSubhrEnd //============================================================================= @@ -3262,6 +3277,7 @@ RC DHWHEATER::wh_Init() // init for run { RC rc = RCOK; + DHWSYS* pWS = wh_GetDHWSYS(); wh_pFCSV = NULL; // one-time inits @@ -3270,8 +3286,6 @@ RC DHWHEATER::wh_Init() // init for run // per run totals (also called on 1st main sim day) wh_InitRunTotals(); - DHWSYS* pWS = wh_GetDHWSYS(); - rc |= pWS->ws_CheckSubObject(this); // check system config // DHWHEATER not allows on child DHWSYS @@ -3324,6 +3338,12 @@ void DHWHEATER::wh_InitRunTotals() // start-of-run initialization totals, error counts, ... // called at beg of warmup and run { + // linkage to DHWSYSRES subhour totals + // skip if DHWSYSRES not yet allocated + DHWSYS* pWS = wh_GetDHWSYS(); + DHWSYSRES* pWSR = pWS->ws_GetDHWSYSRES(); + wh_pResSh = pWSR ? &(pWSR->S) : NULL; + wh_totHARL = 0.; wh_hrCount = 0; wh_totOut = 0.; @@ -3569,9 +3589,59 @@ RC DHWHEATER::wh_HPWHInit() // initialize HPWH model pWS->ignore(fn, strtprintf("-- HPWH '%s' has a fixed setpoint.", name)); } + wh_DRMapValidate(); // validate DRMODE mapping (ABT if bad) } return rc; } // DHWHEATER::wh_HPWHInit + +//----------------------------------------------------------------------------- +// Demand reduction (DR) stuff +struct DRMAP +{ DHWDRSIG drSig; // CSE signal choice + int drModeHPWH; // corresponding HPWH drMode +}; +static const DRMAP drMap[] = +{ C_DHWDRSIG_ON, HPWH::DR_ALLOW, + C_DHWDRSIG_TOO, HPWH::DR_TOO, + C_DHWDRSIG_TXO, HPWH::DR_TOO | HPWH::DR_LOR, + C_DHWDRSIG_TOT, HPWH::DR_TOT, + C_DHWDRSIG_TXT, HPWH::DR_TOT | HPWH::DR_LOR, + C_DHWDRSIG_LOC, HPWH::DR_LOC, + C_DHWDRSIG_LOR, HPWH::DR_LOR, + C_DHWDRSIG_LOX, HPWH::DR_LOR | HPWH::DR_LOC, + -1, -1 +}; +//----------------------------------------------------------------------------- +/* static*/ void DHWHEATER::wh_DRMapValidate() // one-time DRMAP checks +// Detects misconfigured code +// Aborts execution on fail +{ + // correct table allows access by idx, avoids search + bool bMunge = false; + int ix; + for (ix = 0; !bMunge && drMap[ix].drSig >= 0; ix++) + { + if (drMap[ix].drSig != ix + C_DHWDRSIG_ON) + bMunge = true; + } + if (bMunge || ix != C_DHWDRSIG_COUNT - C_DHWDRSIG_ON) + // table out of order or wrong # of entries + errCrit(PABT, "DHWHEATER::wh_DRMapValidate() failure."); + +} // DHWHEATER::wh_DRMapValidate +//----------------------------------------------------------------------------- +/* static*/ int DHWHEATER::wh_DRMapSigToDRMode( + DHWDRSIG drSig) // CSE DR choice value + // -1: validate table +// returns HPWH-compatible DRMODES value corresponding to CSE choice +{ + int ixDrSig = drSig - C_DHWDRSIG_ON; // choice values assigned sequencially + + int drMode = drMap[ixDrSig].drModeHPWH; + + return drMode; + +} // DHWHEATER::wh_DRMapSigToDRMode //----------------------------------------------------------------------------- RC DHWHEATER::wh_DoSubhrStart() { @@ -3584,7 +3654,10 @@ RC DHWHEATER::wh_DoSubhrStart() wh_inElecBUSh = 0.f; wh_inElecXBUSh = 0.f; wh_inFuelSh = 0.f; - wh_qHW = 0.; + wh_qHW = 0.f; + wh_qXBU = 0.f; // heat in excess of capacity + // provided by virtual resistance heat + // prevents gaming compliance via undersizing // ambient and source temps // set temp from linked zone (else leave expression/default value) @@ -3599,9 +3672,6 @@ RC DHWHEATER::wh_DoSubhrStart() else if (wh_IsInstUEFModel()) { // carry-forward: instantaneous heaters throttle flow to maintain temp. // here represented by carrying forward a limited amount of unmet load - wh_HPWHxBU = 0.; // heat in excess of capacity (after carry-forward) - // provided by virtual resistance heat - // prevents gaming compliance via undersizing wh_nzDrawCount = 0; // count of ticks with draw > 0 wh_nTickFullLoad = 0.f; // fractional ticks of equiv full load wh_nColdStarts = 0.f; // # of cold startups @@ -3639,6 +3709,8 @@ RC DHWHEATER::wh_DoSubhrTick( // DHWHEATER energy use for 1 tick : pWS->ws_pDHWSOLARSYS ? pWS->ws_pDHWSOLARSYS->sw_GetAvailableTemp() : tk.wtk_tInletX; + + #if 0 && defined( _DEBUG) if (tInletWH > pWS->ws_tUse) printf("\nHot!"); @@ -3651,8 +3723,20 @@ RC DHWHEATER::wh_DoSubhrTick( // DHWHEATER energy use for 1 tick double drawForTick = 0.; if (wh_IsHPWHModel()) - { - rc |= wh_HPWH.hw_DoSubhrTick(tk, tInletWH, scaleWH, tMix, pWS->ws_tInlet, &tOutNoMix); + { // demand response (DR) + // use DHWSYS hourly base value + // turn off hour-start one-shot signals if not hour start + int drMode; + if (whfcn == whfcnPRIMARY) + { drMode = pWS->ws_drModeHPWH; + if (tk.wtk_startMin > 0.f) + drMode &= ~(HPWH::DR_TOO | HPWH::DR_TOT); + } + else + drMode = HPWH::DR_ALLOW; + + rc |= wh_HPWH.hw_DoSubhrTick(tk, tInletWH, scaleWH, tMix, pWS->ws_tInlet, + &tOutNoMix, drMode); if (whfcn == whfcnPRIMARY) pWS->ws_tOutPrimSum += tOutNoMix * scaleWH * wh_mult; @@ -3675,17 +3759,14 @@ RC DHWHEATER::wh_DoSubhrTick( // DHWHEATER energy use for 1 tick #endif if (wh_IsInstUEFModel()) - { rc |= wh_InstUEFDoSubhrTick(drawForTick, tInletMix, scaleWH, tMix); - wh_inElecXBUSh += wh_HPWHxBU; - } else { float deltaT = max(1., pWS->ws_tUse - tInletMix); - float HARL = drawForTick * waterRhoCp * deltaT; // load on this heater + float HARL = drawForTick * waterRhoCp * deltaT; // load on this heater, Btu - wh_totOut += HARL; // output = load + wh_qHW += HARL; // output = load float WHEU = HARL / wh_effSh + wh_SBL * Top.tp_tickDurHr; // current tick energy use, Btu @@ -3710,7 +3791,7 @@ RC DHWHEATER::wh_DoSubhrTick( // DHWHEATER energy use for 1 tick float dhwLoadTk2 = tk.wtk_whUse * scaleWH * wh_mult * pWS->ws_mult * waterRhoCp * (pWS->ws_tUse - tk.wtk_tInletX);; pWS->ws_SSFAnnualReq += dhwLoadTk2; - pWSR->S.total += 1.f; + pWSR->S.total += dhwLoadTk2; if (pWS->ws_pDHWSOLARSYS) { float drawSolarSys = tk.wtk_volIn; // draw from solar: does not include loop flow @@ -3745,17 +3826,19 @@ RC DHWHEATER::wh_DoSubhrTick( // DHWHEATER energy use for 1 tick return rc; } // DHWHEATER::wh_DoSubhrTick //-------------------------------------------------------------------------------------- -RC DHWHEATER::wh_DoSubhrEnd() // end-of-subhour +RC DHWHEATER::wh_DoSubhrEnd( // end-of-subhour + bool bIsLH) // true iff this is a DHWLOOPHEATER // returns RCOK iff simulation should continue { RC rc = RCOK; DHWSYS* pWS = wh_GetDHWSYS(); + float mult = pWS->ws_mult * wh_mult; // overall multiplier if (wh_IsHPWHModel()) { - wh_HPWH.hw_DoSubhrEnd(mult, wh_pZn, wh_pAshpSrcZn, wh_totOut); + wh_HPWH.hw_DoSubhrEnd(mult, wh_pZn, wh_pAshpSrcZn); wh_qLoss = wh_HPWH.hw_qLoss; wh_qEnv = wh_HPWH.hw_qEnv; @@ -3765,40 +3848,48 @@ RC DHWHEATER::wh_DoSubhrEnd() // end-of-subhour // will happen if ws_tUse changes (e.g. via expression) // during a period of no draw - // energy use accounting, electricity only (assume no fuel) - wh_HPWHxBU = wh_HPWH.hw_HPWHxBU; + // energy output and electricity accounting (assume no fuel) + wh_qHW = KWH_TO_BTU(wh_HPWH.hw_qHW); // hot water heating, Btu + wh_inElecXBUSh = wh_qXBU = wh_HPWH.hw_HPWHxBU; // add'l backup heating, Btu wh_inElecSh = wh_HPWH.hw_inElec[1] * BtuperkWh + wh_parElec * BtuperWh*Top.subhrDur; wh_inElecBUSh = wh_HPWH.hw_inElec[0] * BtuperkWh; - wh_inElecXBUSh = wh_HPWHxBU; } else if (wh_IsInstUEFModel()) - { - double rcovFuel = wh_maxInpX * wh_nTickFullLoad; + { double rcovFuel = wh_maxInpX * wh_nTickFullLoad; double startFuel = wh_cycLossFuel * wh_nColdStarts; double rcovElec = wh_operElec * wh_nzDrawCount * Top.tp_tickDurHr; // assume operation for entire tick with any draw // double startElec = wh_cycLossElec * nTickStart; // unused in revised model // standby in ticks w/o draw double stbyElec = wh_stbyElec * (Top.tp_nSubhrTicks - wh_nzDrawCount) * Top.tp_tickDurHr; - // output accounting = heat delivered to water -#if 0 - double qHW = wh_nTickFullLoad * wh_maxFlowX / 67.; -#endif - wh_totOut += wh_qHW + wh_HPWHxBU; + // wh_qHW and wh_qXBU accum'd in wh_InstUEFDoSubhrTick() // energy use accounting, Btu wh_inElecSh += rcovElec /*+ startElec*/ + (stbyElec + wh_parElec * Top.tp_tickDurHr) * BtuperWh; wh_inFuelSh += rcovFuel + startFuel; - } - // else efficiency model (nothing required) + // else + // { efficiency model (nothing add'l required) + // wh_qHW accumulated in wh_DoSubhrTick() + // wh_qXBU = 0 + // } + // energy totals for hour wh_inElec += wh_inElecSh; wh_inElecBU += wh_inElecBUSh; wh_inElecXBU += wh_inElecXBUSh; wh_inFuel += wh_inFuelSh; + // output (heat added to water, Btu) accounting + wh_totOut += wh_qHW + wh_qXBU; // annual total (check value) + + // DHWSYSRES accumulation + if (wh_qHW > 0.f) + bIsLH ? wh_pResSh->qLH : wh_pResSh->qWH += wh_qHW * wh_mult; + if (wh_qXBU > 0.f) + wh_pResSh->qXBU += wh_qXBU * wh_mult; + return rc; } // DHWHEATER::wh_DoSubhrEnd //-------------------------------------------------------------------------------------- @@ -3892,8 +3983,6 @@ RC DHWHEATER::wh_InstUEFDoSubhrTick( { RC rc = RCOK; - wh_HPWHxBU = 0.f; - float deltaT = tUse - tInletWH; // temp rise if (deltaT < 0.f) // should not be <0 due to wtk_DrawTotX { @@ -3909,19 +3998,15 @@ RC DHWHEATER::wh_InstUEFDoSubhrTick( wh_stbyTicks = 0; wh_loadCFwd = 0.; // clear carry-forward, if not met, reset just below if (draw > 0.) - { - wh_nzDrawCount++; + { wh_nzDrawCount++; if (deltaT > 0.f) - { - float fLoad; + { float fLoad; double drawFullLoad = wh_maxFlowX / deltaT; // max vol that can be heated in this tick if (draw > drawFullLoad) - { - fLoad = 1.f; // full capacity operation + { fLoad = 1.f; // full capacity operation wh_loadCFwd = qPerGal * (draw - drawFullLoad); // unmet load if (wh_loadCFwd > wh_loadCFwdMax) - { - wh_HPWHxBU += wh_loadCFwd - wh_loadCFwdMax; // excess heating required to meet ws_tUse + { wh_qXBU += wh_loadCFwd - wh_loadCFwdMax; // excess heating required to meet ws_tUse wh_loadCFwd = wh_loadCFwdMax; } } diff --git a/src/DHWSolar.cpp b/src/DHWSolar.cpp index 7b90c9502..103c1e180 100644 --- a/src/DHWSolar.cpp +++ b/src/DHWSolar.cpp @@ -154,8 +154,7 @@ RC DHWSOLARSYS::sw_DoSubhrEnd() { RC rc = RCOK; - double totOut = 0.; // substep total heat added to water - sw_tank.hw_DoSubhrEnd(1.f, sw_tankpZn, NULL, totOut); + sw_tank.hw_DoSubhrEnd(1.f, sw_tankpZn, NULL); sw_tankQLoss += BtuperkWh * sw_tank.hw_qLoss; return rc; diff --git a/test/DWHR.cse b/test/DWHR.cse index 3c01ad226..1d85e10ff 100644 --- a/test/DWHR.cse +++ b/test/DWHR.cse @@ -4601,7 +4601,32 @@ DHWHEATREC DWHRa wrFeedsWH=Yes wrCountFXDrain = 1 wrCountFXCold = 1 wrCSARatedE DO0Base( "DSMHKa", ElecMKa, FXMKa, WHMKa, 1) wsLoadShareDHWSYS="DSMH" DHWHEATREC DWHRa wrFeedsWH=Yes wrCountFXDrain = 1 wrCountFXCold = 1 wrCSARatedEF = .6 wrTDInDiff=0 -////////////////////////////////////////////////////////////////////// +#define WSRREPCOLS( s, IVL) \ +ReportCol colhead = "Total" colVal=@DHWSYSRES[ s].IVL.total/1000 colWid=8 \ +ReportCol colhead = "DWHR" colVal=@DHWSYSRES[ s].IVL.qDWHR/1000 colWid=8 \ +ReportCol colhead = "SSF" colVal=@DHWSYSRES[ s].IVL.qSSF/1000 colWid=8 \ +ReportCol colhead = "Solar" colVal=@DHWSYSRES[ s].IVL.qSolar /1000 colWid=8 \ +ReportCol colhead = "WH" colVal=@DHWSYSRES[ s].IVL.qWH/1000 colWid=8 \ +ReportCol colhead = "LH" colVal=@DHWSYSRES[ s].IVL.qLH/1000 colWid=8 \ +ReportCol colhead = "XBU" colVal=@DHWSYSRES[ s].IVL.qXBU/1000 colWid=8 \ + +#define WSRREP_H( s, jday) REPORT rpType=UDT rpFreq=HOUR rpTitle = s rpDayBeg=jday rpDayEnd=jday \ +ReportCol colhead="Hr" colVal=$hour colWid = 3 \ +WSRREPCOLS( s, H) + +#define WSRREP_D( s, dBeg, dEnd) REPORT rpType=UDT rpFreq=DAY rpTitle = s rpDayBeg=dBeg rpDayEnd=dEnd \ +ReportCol colhead="Day" colVal=@Top.dateStr colWid = 10 \ +WSRREPCOLS( s, D) + +#define WSRREP_M( s) REPORT rpType=UDT rpFreq=MONTH rpTitle = s rpDayBeg=jan 1 rpDayEnd=dec 31 \ +ReportCol colhead="Mon" colVal=@Top.monStr colWid = 3 \ +WSRREPCOLS( s, M) \ +REPORT rpType=UDT rpFreq=YEAR rpHeader=No \ +ReportCol colVal="Yr" colWid = 3 \ +WSRREPCOLS( s, Y) + +WSRREP_M( "DSMH") + DELETE REPORT EB diff --git a/test/ref/DWHR.REP b/test/ref/DWHR.REP index f108bd15c..f8c706786 100644 --- a/test/ref/DWHR.REP +++ b/test/ref/DWHR.REP @@ -60,7 +60,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 1 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 1 @@ -123,7 +123,7 @@ DS0 for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 2 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 2 @@ -186,7 +186,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 3 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 3 @@ -249,7 +249,7 @@ DS0a for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 4 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 4 @@ -312,7 +312,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 5 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 5 @@ -375,7 +375,7 @@ DS0b for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 6 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 6 @@ -438,7 +438,7 @@ Yr 42996.6 0 9396.94 14854.8 0 18744.9 0 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 7 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 7 @@ -501,7 +501,7 @@ DSX0 for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 8 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 8 @@ -564,7 +564,7 @@ Yr 42996.6 0 9396.94 14854.8 0 18744.9 0 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 9 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 9 @@ -627,7 +627,7 @@ DSX0a for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 10 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 10 @@ -690,7 +690,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 11 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 11 @@ -753,7 +753,7 @@ DSEQ for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 12 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 12 @@ -816,7 +816,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 13 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 13 @@ -879,7 +879,7 @@ DSUSH for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 14 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 14 @@ -942,7 +942,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 15 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 15 @@ -1005,7 +1005,7 @@ DSUWH for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 16 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 16 @@ -1068,7 +1068,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 17 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 17 @@ -1131,7 +1131,7 @@ DS2S0Y for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 18 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 18 @@ -1194,7 +1194,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 19 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 19 @@ -1257,7 +1257,7 @@ DS2S1N for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 20 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 20 @@ -1320,7 +1320,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 21 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 21 @@ -1383,7 +1383,7 @@ DS2S1Y for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 22 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 22 @@ -1446,7 +1446,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 23 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 23 @@ -1509,7 +1509,7 @@ DS2S2N for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 24 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 24 @@ -1572,7 +1572,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 25 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 25 @@ -1635,7 +1635,7 @@ DS2S2Y for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 26 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 26 @@ -1698,7 +1698,7 @@ Yr 119494 62688.8 17721.3 17134.7 1575.98 19003.0 1369.98 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 27 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 27 @@ -1761,7 +1761,7 @@ DSC0 for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 28 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 28 @@ -1824,7 +1824,7 @@ Yr 59746.9 31344.4 8860.67 8567.35 787.988 9501.50 684.991 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 29 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 29 @@ -1887,7 +1887,7 @@ DSK0a for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 30 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 30 @@ -1950,7 +1950,7 @@ Yr 0 0 0 0 0 0 0 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 31 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 31 @@ -2013,7 +2013,7 @@ DSK0b for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 32 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 32 @@ -2076,7 +2076,7 @@ Yr 119494 62688.8 17721.3 17134.7 1575.98 19003.0 1369.98 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 33 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 33 @@ -2139,7 +2139,7 @@ DSC1 for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 34 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 34 @@ -2202,7 +2202,7 @@ Yr 59746.9 31344.4 8860.67 8567.35 787.988 9501.50 684.991 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 35 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 35 @@ -2265,7 +2265,7 @@ DSK1a for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 36 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 36 @@ -2328,7 +2328,7 @@ Yr 59746.9 31344.4 8860.67 8567.35 787.988 9501.50 684.991 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 37 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 37 @@ -2391,7 +2391,7 @@ DSK1b for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 38 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 38 @@ -2454,7 +2454,7 @@ Yr 37296.6 0 11618.1 11518.1 756.655 12608.8 795.003 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 39 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 39 @@ -2517,7 +2517,7 @@ DSMH0 for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 40 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 40 @@ -2580,7 +2580,7 @@ Yr 18785.4 0 5825.29 5774.46 325.057 6445.63 414.999 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 41 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 41 @@ -2643,7 +2643,7 @@ DSMH for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 42 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 42 @@ -2706,7 +2706,7 @@ Yr 18511.2 0 5792.85 5743.60 431.598 6163.14 380.005 ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 43 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 43 @@ -2769,7 +2769,7 @@ DSMHKa for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 44 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 44 @@ -2778,30 +2778,30 @@ DSMHKa for Wed 01-Apr -! Log for Run 001: - -! CSE 0.865.0+solar-hot-water.80dd9ad.126 for Win32 console - - - - - - - - - - - - - - - +DSMH + Mon Total DWHR SSF Solar WH LH XBU + --- -------- -------- -------- -------- -------- -------- -------- + Jan 287.832 65.445 0 0 287.832 0 0 + Feb 313.303 81.807 0 0 313.303 0 0 + Mar 270.888 60.253 0 0 270.888 0 0 + Apr 294.719 80.724 0 0 294.719 0 0 + May 308.991 67.774 0 0 308.991 0 0 + Jun 226.064 52.486 0 0 226.064 0 0 + Jul 215.07 43.551 0 0 215.07 0 0 + Aug 210.869 35.437 0 0 210.869 0 0 + Sep 226.494 42.954 0 0 226.494 0 0 + Oct 271.888 51.736 0 0 271.888 0 0 + Nov 198.584 34.298 0 0 198.584 0 0 + Dec 344.533 95.437 0 0 344.533 0 0 + Yr 3169.23 711.901 0 0 3169.23 0 0 +! Log for Run 001: +! CSE 0.881.0+hpwhdr.e084f2a.5 for Win32 console @@ -2832,7 +2832,7 @@ DSMHKa for Wed 01-Apr ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 45 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 45 @@ -2895,7 +2895,7 @@ Input for Run 001: ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 46 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 46 @@ -2958,7 +2958,7 @@ Input for Run 001: # #define DHW2BR choose1($dayofyear,"1H1","3D7","1E9","4E9","5D4","6D4","2D8","2D5","1D0","6E4","1E3","1D9","6D9","1D8","2D7","3D6","2E6","2E1","1H6","2D9","3D9","2D0","5D2","2E4",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 47 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 47 @@ -3021,7 +3021,7 @@ Input for Run 001: # "4D7","2D3","3D9","1E6","1E5","2D8","4D6","4D3","6D7","2D6","1E2","1E0","6D2","6D3","2D9","2D0","5D6","1E3","1E9","4D2","2D2","2D4","4D5","2D3","1E8","1E2","2D7","2D1","4D9","6D0","4D8",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 48 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 48 @@ -3084,7 +3084,7 @@ Input for Run 001: # "2D5","4D7","3D0","3D3","4E8","4E3","3D1","2D9","4D8","3D2","3D8","4E0","2E3","2D2","3D9","3D6","2D6","2D0","6E4","4E4","3D5","4D5","4D6","3D7","4D4","6E9","4E1","6H2","4D1","3D0","3D7",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 49 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 49 @@ -3147,7 +3147,7 @@ Input for Run 001: # "3D5","1D1","6D2","2D2","2H6","3E2","1E8","2D2","1D8","1D9","1D4","1D0","2E0","4E8","1D7","1D0","1D1","2D5","2D4","3E9","3E4","4D7","2D8","5D8","1D9","1D8","4E1","3E2","2D0","1D4","1D5",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 50 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 50 @@ -3210,7 +3210,7 @@ Input for Run 001: # "2E7","6D3","2D1","4D5","2D3","4D4","1E7","1E8","1H5","4D8","6D1","4D9","4D7","1E1","2E4","4D2","2D8","2D6","4D3","2D2","1E6","1E7","2D3","4D9","2D4","4D5","4D7","1E8","1E2","2D5","6D9",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 51 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 51 @@ -3273,7 +3273,7 @@ Input for Run 001: # "5E1","6E2","2D7","2D6","5D5","4D5","2D9","5E0","4E0","2D7","1D7","6H1","1D0","3D6","5E6","6E8","2D0","3D3","5D8","3D6","3D9","4E1","4E5","2D9","1D4","4D4","3H9","4H8","4E3","6E4","4D2",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 52 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 52 @@ -3336,7 +3336,7 @@ Input for Run 001: ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 53 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 53 @@ -3399,7 +3399,7 @@ Input for Run 001: # "1E0","2D4","1D7","1D0","3D5","1D3","1E7","2E3","1D8","1D1","1D4","1D9","1D2","1E8","1E6","2D8","1D1","1D6","1D5","1D2","1E1","2E4","2H2","1D0","2D3","1D3","2D6","1E4","2E0","1D9","1D4",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 54 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 54 @@ -3462,7 +3462,7 @@ Input for Run 001: # "4E6","6E9","4D7","2H6","4D4","2D1","4D2","4E8","2E4","2D8","5D0","4D1","6D7","5D3","6E1","6E2","5D7","1D1","4D3","4D6","6D6","4E4","2E9","3D8","2D7","4D7","5D4","6D2","2E2","2E6","6D5",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 55 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 55 @@ -3525,7 +3525,7 @@ Input for Run 001: # "2D0","3E7","6E2","1D9","4D3","4D2","2D1","1D1","3E3","5E0","2D6","4D4","1D3","4D9","3D5","4E3","4E6","5D5","1D6","1D0","1D2","4D5","2E7","4E5","4D5","3D9","1D5","2D9","2D4","3E5","2E3",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 56 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 56 @@ -3588,7 +3588,7 @@ Input for Run 001: # "1D2","2D0","1E0","2E9","1D1","1D8","1D0","1D4","1D7","1E9","1E2","3D5","3D3","1D3","1D9","2D9","1E5","1E6","1D7","4D0","1D6","1D9","1D8","2E5","3E4","1D3","1D2","1D5","1D1","2D7","1E4",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 57 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 57 @@ -3651,7 +3651,7 @@ Input for Run 001: # "5D8","4D7","6D2","6E5","4E5","5D0","5D2","5D7","4D2","4D0","2E0","6E0","4D9","4D1","6D7","4D4","4D9","2E9","2E3","5D3","6D8","6D5","2D8","6D0","6E3","4E0","4D0","2D0","2D5","2D3","4D2",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 58 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 58 @@ -3714,7 +3714,7 @@ Input for Run 001: # "2D4","1D1","4D2","2D5","2E6","3E2","4D7","2D8","6D6","2D1","3D7","6E5","5E4","6D7","3D6","1D7","3D3","6D0","5E9","1E6","2D9","1D0","2D2","4D1","2H7","3E0","3E7","3D4","1D3","4D3","4D0") ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 59 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 59 @@ -3777,7 +3777,7 @@ Input for Run 001: # #define DHW2BRi choose1($dayofyear,"3H1","1D7","1E1","3E5","6D3","6D8","2D8","1D4","1D1","6E9","2E8","1D3","2D1","1D8","2D9","2D6","1E7","4E6","5H1","2D2","2D4","1D5","2D0","2E3",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 60 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 60 @@ -3840,7 +3840,7 @@ Input for Run 001: # "2D5","4D3","2D6","1E3","1E9","6D2","4D9","4D5","2D9","2D0","1E7","1E6","4D2","2D3","4D0","2D7","2D4","2E1","1E0","6D7","2D2","4D8","4D7","6D4","1E8","2E0","2D1","2D8","4D2","4D9","2D0",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 61 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 61 @@ -3903,7 +3903,7 @@ Input for Run 001: # "4D7","3D0","3D8","4D3","5E3","4E1","4D5","2D7","2D1","2D3","5D8","6E3","4E5","3D8","3D3","2D0","1D7","5D6","6E9","6E1","3D6","2D6","5D0","2D5","3D1","4E4","2E2","3H5","3D2","4D0","2D7",\ ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 62 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 62 @@ -3966,7 +3966,7 @@ Input for Run 001: ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 63 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 63 @@ -4029,7 +4029,7 @@ Input for Run 001: FAUC( 13.47, 0.142, 0.749, 4) FAUC( 15.84, 0.142, 0.346, 5) FAUC( 20.50, 0.142, 0.288, 6) FAUC( 20.51, 0.285, 0.230, 7) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 64 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 64 @@ -4092,7 +4092,7 @@ Input for Run 001: FAUC( 17.44, 0.393, 1.229, 37) FAUC( 17.61, 0.262, 0.490, 38) FAUC( 17.99, 0.524, 1.123, 39) FAUC( 18.04, 0.131, 0.979, 40) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 65 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 65 @@ -4155,7 +4155,7 @@ Input for Run 001: FAUC( 16.83, 0.131, 0.518, 12) FAUC( 17.41, 0.262, 0.432, 13) FAUC( 17.45, 0.131, 0.691, 14) FAUC( 17.85, 0.131, 0.518, 15) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 66 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 66 @@ -4218,7 +4218,7 @@ Input for Run 001: FAUC( 4.53, 0.569, 0.907, 2) FAUC( 4.55, 0.142, 0.806, 3) FAUC( 4.56, 0.569, 1.008, 4) FAUC( 4.60, 0.285, 0.461, 5) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 67 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 67 @@ -4281,7 +4281,7 @@ Input for Run 001: FAUC( 18.43, 0.393, 0.998, 57) FAUC( 18.48, 1.703, 1.289, 58) FAUC( 19.22, 1.048, 1.404, 59) FAUC( 19.25, 0.262, 1.498, 60) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 68 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 68 @@ -4344,7 +4344,7 @@ Input for Run 001: ENDDHWDAYUSE ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 69 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 69 @@ -4407,7 +4407,7 @@ Input for Run 001: FAUC( 7.19, 1.616, 0.908, 7) FAUC( 7.58, 1.243, 0.513, 8) FAUC( 7.64, 3.108, 0.433, 9) FAUC( 7.87, 0.124, 0.691, 10) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 70 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 70 @@ -4470,7 +4470,7 @@ Input for Run 001: FAUC( 12.02, 0.124, 2.304, 4) FAUC( 12.67, 0.124, 0.346, 5) FAUC( 12.83, 0.124, 0.288, 6) FAUC( 15.45, 0.373, 0.787, 7) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 71 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 71 @@ -4533,7 +4533,7 @@ Input for Run 001: FAUC( 13.87, 0.249, 0.317, 74) FAUC( 13.88, 0.373, 0.326, 75) FAUC( 14.02, 0.124, 0.461, 76) FAUC( 14.46, 0.124, 0.461, 77) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 72 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 72 @@ -4596,7 +4596,7 @@ Input for Run 001: FAUC( 16.21, 1.441, 1.084, 19) FAUC( 16.37, 0.524, 0.432, 20) FAUC( 16.40, 0.131, 0.288, 21) FAUC( 16.52, 0.262, 0.893, 22) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 73 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 73 @@ -4659,7 +4659,7 @@ Input for Run 001: FAUC( 11.59, 0.622, 1.094, 16) FAUC( 11.65, 0.870, 1.786, 17) FAUC( 13.00, 0.373, 1.786, 18) FAUC( 13.01, 0.373, 0.787, 19) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 74 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 74 @@ -4722,7 +4722,7 @@ Input for Run 001: FAUC( 9.98, 0.310, 0.662, 20) FAUC( 9.99, 0.465, 1.210, 21) FAUC( 10.60, 0.929, 1.152, 22) FAUC( 10.61, 0.155, 1.152, 23) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 75 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 75 @@ -4785,7 +4785,7 @@ Input for Run 001: CWSH( 7.06, 4.167, 1.392, 0) CWSH( 7.23, 0.333, 0.869, 0) CWSH( 7.24, 0.333, 1.055, 0) CWSH( 7.44, 1.667, 2.323, 1) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 76 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 76 @@ -4848,7 +4848,7 @@ Input for Run 001: ENDDHWDAYUSE ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 77 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 77 @@ -4911,7 +4911,7 @@ Input for Run 001: FAUC( 14.19, 0.786, 1.488, 56) FAUC( 14.22, 0.262, 0.547, 57) FAUC( 14.24, 0.131, 1.037, 58) FAUC( 14.35, 0.917, 0.675, 59) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 78 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 78 @@ -4974,7 +4974,7 @@ Input for Run 001: FAUC( 10.29, 0.124, 1.498, 21) FAUC( 10.33, 0.124, 0.403, 22) FAUC( 11.67, 0.249, 0.374, 23) FAUC( 11.70, 0.249, 0.403, 24) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 79 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 79 @@ -5037,7 +5037,7 @@ Input for Run 001: FAUC( 13.70, 0.310, 0.634, 43) FAUC( 13.71, 0.155, 0.346, 44) FAUC( 13.75, 0.155, 0.403, 45) FAUC( 13.78, 0.155, 0.461, 46) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 80 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 80 @@ -5100,7 +5100,7 @@ Input for Run 001: FAUC( 18.94, 0.262, 1.066, 8) FAUC( 18.99, 0.131, 0.461, 9) FAUC( 19.01, 0.393, 0.922, 10) FAUC( 19.10, 0.131, 0.403, 11) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 81 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 81 @@ -5163,7 +5163,7 @@ Input for Run 001: FAUC( 9.46, 0.262, 0.893, 12) FAUC( 10.26, 0.131, 0.461, 13) FAUC( 11.25, 0.131, 0.403, 14) FAUC( 12.08, 0.131, 0.518, 15) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 82 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 82 @@ -5226,7 +5226,7 @@ Input for Run 001: FAUC( 6.95, 0.155, 0.461, 4) FAUC( 7.52, 0.155, 0.346, 5) FAUC( 8.26, 0.465, 0.787, 6) FAUC( 9.46, 0.774, 1.325, 7) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 83 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 83 @@ -5289,7 +5289,7 @@ Input for Run 001: DHWDAYUSE "3E4" ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 84 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 84 @@ -5352,7 +5352,7 @@ Input for Run 001: CWSH( 16.39, 2.667, 0.634, 2) CWSH( 16.48, 4.333, 0.632, 2) CWSH( 16.54, 0.167, 0.790, 2) FAUC( 0.35, 1.492, 1.190, 0) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 85 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 85 @@ -5415,7 +5415,7 @@ Input for Run 001: FAUC( 8.18, 0.655, 0.541, 0) FAUC( 9.03, 0.786, 1.613, 1) FAUC( 9.13, 1.310, 0.507, 2) FAUC( 9.19, 0.131, 0.288, 3) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 86 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 86 @@ -5478,7 +5478,7 @@ Input for Run 001: FAUC( 5.42, 0.524, 0.893, 8) FAUC( 5.53, 0.262, 0.691, 9) FAUC( 8.09, 0.131, 0.979, 10) FAUC( 9.04, 0.262, 0.605, 11) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 87 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 87 @@ -5541,7 +5541,7 @@ Input for Run 001: DWSH( 10.96, 0.833, 1.009, 0) DWSH( 11.03, 1.000, 0.823, 0) FAUC( 7.64, 0.393, 0.710, 0) FAUC( 7.65, 0.786, 1.488, 1) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 88 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 88 @@ -5604,7 +5604,7 @@ Input for Run 001: FAUC( 8.86, 0.131, 0.461, 8) FAUC( 15.90, 0.262, 1.555, 9) FAUC( 15.96, 0.524, 0.720, 10) FAUC( 15.97, 0.131, 0.691, 11) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 89 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 89 @@ -5667,7 +5667,7 @@ Input for Run 001: FAUC( 13.61, 0.124, 0.403, 72) FAUC( 13.71, 0.124, 0.806, 73) FAUC( 14.13, 0.124, 0.403, 74) FAUC( 14.41, 0.124, 0.403, 75) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 90 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 90 @@ -5730,7 +5730,7 @@ Input for Run 001: CWSH( 15.01, 0.500, 0.961, 1) CWSH( 15.05, 3.167, 1.719, 1) CWSH( 15.16, 0.500, 0.961, 1) FAUC( 1.99, 1.179, 0.832, 0) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 91 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 91 @@ -5793,7 +5793,7 @@ Input for Run 001: FAUC( 4.45, 0.131, 0.518, 4) FAUC( 4.54, 0.131, 0.403, 5) FAUC( 4.61, 0.131, 0.461, 6) FAUC( 4.68, 0.131, 0.346, 7) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 92 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 92 @@ -5856,7 +5856,7 @@ Input for Run 001: FAUC( 7.74, 0.497, 0.792, 6) FAUC( 7.92, 0.249, 0.806, 7) FAUC( 8.04, 0.124, 0.461, 8) FAUC( 8.28, 0.497, 0.778, 9) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 93 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 93 @@ -5919,7 +5919,7 @@ Input for Run 001: FAUC( 21.24, 0.774, 0.380, 37) FAUC( 21.58, 0.310, 0.634, 38) FAUC( 23.09, 0.310, 0.634, 39) FAUC( 23.27, 3.717, 0.029, 40) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 94 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 94 @@ -5982,7 +5982,7 @@ Input for Run 001: FAUC( 21.42, 0.167, 0.691, 48) FAUC( 21.98, 0.167, 1.267, 49) FAUC( 22.69, 0.333, 0.720, 50) SHWR( 9.26, 7.833, 1.868, 0) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 95 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 95 @@ -6045,7 +6045,7 @@ Input for Run 001: BATH( 18.89, 3.481, 3.056, 0) CWSH( 6.96, 1.000, 1.387, 0) CWSH( 7.00, 1.167, 1.418, 0) CWSH( 7.02, 1.000, 0.932, 0) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 96 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 96 @@ -6108,7 +6108,7 @@ Input for Run 001: FAUC( 7.57, 0.262, 0.749, 37) FAUC( 7.59, 0.131, 0.691, 38) FAUC( 7.63, 0.131, 0.403, 39) FAUC( 7.67, 0.131, 0.346, 40) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 97 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 97 @@ -6171,7 +6171,7 @@ Input for Run 001: FAUC( 20.87, 0.131, 0.576, 104) FAUC( 20.93, 0.262, 0.634, 105) FAUC( 21.23, 0.655, 0.069, 106) FAUC( 21.26, 0.131, 0.288, 107) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 98 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 98 @@ -6234,7 +6234,7 @@ Input for Run 001: CWSH( 15.99, 2.500, 2.419, 0) CWSH( 16.23, 2.333, 2.531, 0) CWSH( 16.37, 0.500, 1.397, 0) FAUC( 4.73, 0.131, 0.346, 0) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 99 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 99 @@ -6297,7 +6297,7 @@ Input for Run 001: FAUC( 19.08, 0.131, 1.152, 45) FAUC( 19.46, 0.655, 1.210, 46) FAUC( 19.54, 0.131, 0.576, 47) FAUC( 19.79, 0.131, 0.346, 48) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 100 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 100 @@ -6360,7 +6360,7 @@ Input for Run 001: CWSH( 13.23, 1.333, 1.099, 3) CWSH( 13.27, 1.000, 0.913, 3) CWSH( 13.30, 1.333, 0.956, 3) CWSH( 13.33, 1.500, 1.119, 3) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 101 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 101 @@ -6423,7 +6423,7 @@ Input for Run 001: CWSH( 19.56, 9.833, 0.490, 0) CWSH( 19.80, 0.167, 0.700, 0) CWSH( 19.81, 2.500, 1.116, 0) CWSH( 20.46, 2.333, 1.005, 1) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 102 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 102 @@ -6486,7 +6486,7 @@ Input for Run 001: CWSH( 11.66, 4.667, 1.249, 2) CWSH( 11.84, 0.333, 0.915, 2) CWSH( 11.85, 0.333, 1.025, 2) CWSH( 12.22, 4.167, 1.487, 3) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 103 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 103 @@ -6549,7 +6549,7 @@ Input for Run 001: SHWR( 21.88, 6.838, 2.000, 3) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 104 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 104 @@ -6612,7 +6612,7 @@ Input for Run 001: FAUC( 22.44, 0.310, 0.461, 103) FAUC( 22.45, 0.310, 0.461, 104) FAUC( 22.46, 0.155, 0.518, 105) FAUC( 22.52, 0.465, 0.538, 106) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 105 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 105 @@ -6675,7 +6675,7 @@ Input for Run 001: FAUC( 19.00, 0.124, 0.346, 38) FAUC( 19.01, 0.124, 0.634, 39) FAUC( 19.26, 0.124, 1.382, 40) FAUC( 19.31, 0.746, 1.238, 41) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 106 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 106 @@ -6738,7 +6738,7 @@ Input for Run 001: FAUC( 18.94, 0.620, 0.432, 32) FAUC( 19.51, 0.620, 0.893, 33) FAUC( 19.56, 0.465, 0.768, 34) FAUC( 19.58, 0.310, 1.411, 35) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 107 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 107 @@ -6801,7 +6801,7 @@ Input for Run 001: FAUC( 22.70, 0.124, 0.403, 85) FAUC( 22.72, 0.124, 0.864, 86) FAUC( 22.85, 0.124, 0.403, 87) FAUC( 23.08, 0.373, 0.941, 88) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 108 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 108 @@ -6864,7 +6864,7 @@ Input for Run 001: DHWDAYUSE "5E9" ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 109 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 109 @@ -6927,7 +6927,7 @@ Input for Run 001: ENDDHWDAYUSE ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 110 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 110 @@ -6990,7 +6990,7 @@ Input for Run 001: FAUC( 12.32, 0.167, 0.518, 56) FAUC( 12.33, 0.167, 0.346, 57) FAUC( 12.34, 0.167, 0.461, 58) FAUC( 12.37, 0.167, 0.403, 59) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 111 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 111 @@ -7053,7 +7053,7 @@ Input for Run 001: FAUC( 22.92, 0.249, 0.547, 132) FAUC( 23.50, 3.357, 1.135, 133) SHWR( 6.35, 6.962, 2.000, 0) SHWR( 7.19, 3.357, 2.000, 1) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 112 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 112 @@ -7116,7 +7116,7 @@ Input for Run 001: FAUC( 20.18, 0.249, 0.403, 104) FAUC( 20.21, 0.373, 1.133, 105) FAUC( 20.22, 0.497, 1.094, 106) FAUC( 20.25, 0.249, 0.605, 107) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 113 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 113 @@ -7179,7 +7179,7 @@ Input for Run 001: ENDDHWDAYUSE ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 114 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 114 @@ -7242,7 +7242,7 @@ Input for Run 001: FAUC( 7.96, 5.333, 0.036, 9) FAUC( 8.05, 0.167, 0.115, 10) FAUC( 8.17, 2.000, 0.624, 11) FAUC( 8.21, 3.833, 0.025, 12) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 115 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 115 @@ -7305,7 +7305,7 @@ Input for Run 001: FAUC( 18.39, 0.310, 0.634, 28) FAUC( 18.43, 0.155, 0.403, 29) FAUC( 18.93, 0.155, 1.382, 30) FAUC( 19.12, 0.774, 1.002, 31) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 116 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 116 @@ -7368,7 +7368,7 @@ Input for Run 001: FAUC( 12.73, 0.393, 0.749, 60) FAUC( 12.77, 0.131, 0.288, 61) FAUC( 12.84, 0.131, 0.288, 62) FAUC( 13.14, 0.131, 0.288, 63) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 117 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 117 @@ -7431,7 +7431,7 @@ Input for Run 001: FAUC( 18.03, 3.000, 0.038, 102) FAUC( 18.12, 1.500, 1.971, 103) FAUC( 18.14, 4.167, 0.018, 104) FAUC( 18.31, 0.167, 2.131, 105) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 118 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 118 @@ -7494,7 +7494,7 @@ Input for Run 001: FAUC( 12.78, 0.500, 1.920, 28) FAUC( 12.81, 0.167, 0.461, 29) FAUC( 13.14, 1.167, 1.086, 30) FAUC( 13.32, 0.667, 0.994, 31) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 119 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 119 @@ -7557,7 +7557,7 @@ Input for Run 001: FAUC( 10.22, 0.167, 0.461, 29) FAUC( 10.23, 0.167, 0.691, 30) FAUC( 10.60, 0.167, 0.461, 31) FAUC( 10.73, 0.167, 0.518, 32) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 120 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 120 @@ -7620,7 +7620,7 @@ Input for Run 001: FAUC( 21.77, 3.333, 0.032, 117) FAUC( 21.83, 4.000, 1.411, 118) FAUC( 21.91, 1.167, 0.049, 119) FAUC( 21.95, 8.667, 0.025, 120) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 121 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 121 @@ -7683,7 +7683,7 @@ Input for Run 001: FAUC( 18.59, 0.155, 1.094, 76) FAUC( 18.61, 0.155, 1.440, 77) FAUC( 18.69, 0.465, 0.710, 78) FAUC( 18.71, 0.310, 0.806, 79) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 122 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 122 @@ -7746,7 +7746,7 @@ Input for Run 001: FAUC( 13.86, 0.167, 0.922, 41) FAUC( 13.88, 0.500, 1.190, 42) FAUC( 13.90, 0.167, 0.461, 43) FAUC( 13.91, 1.667, 1.054, 44) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 123 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 123 @@ -7809,7 +7809,7 @@ Input for Run 001: FAUC( 7.33, 0.333, 0.893, 13) FAUC( 7.35, 0.833, 1.140, 14) FAUC( 7.38, 0.167, 0.979, 15) FAUC( 7.47, 0.500, 0.979, 16) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 124 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 124 @@ -7872,7 +7872,7 @@ Input for Run 001: FAUC( 17.73, 0.249, 0.893, 27) FAUC( 17.89, 0.249, 0.634, 28) FAUC( 18.09, 0.124, 1.094, 29) FAUC( 19.76, 0.249, 0.720, 30) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 125 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 125 @@ -7935,7 +7935,7 @@ Input for Run 001: FAUC( 11.13, 0.167, 0.461, 59) FAUC( 11.19, 0.167, 0.461, 60) FAUC( 11.22, 0.500, 0.634, 61) FAUC( 11.24, 0.333, 0.893, 62) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 126 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 126 @@ -7998,7 +7998,7 @@ Input for Run 001: FAUC( 10.53, 3.833, 1.670, 50) FAUC( 10.54, 0.833, 1.452, 51) FAUC( 10.57, 1.000, 1.210, 52) FAUC( 10.71, 0.167, 1.094, 53) ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 127 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 127 @@ -8061,7 +8061,7 @@ Input for Run 001: # #undef SHWR ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 128 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 128 @@ -8124,7 +8124,7 @@ Input for Run 001: ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 129 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 129 @@ -8187,7 +8187,7 @@ Input for Run 001: ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 130 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 130 @@ -8211,7 +8211,32 @@ Input for Run 001: DO0Base( "DSMHKa", ElecMKa, FXMKa, WHMKa, 1) wsLoadShareDHWSYS="DSMH" DHWHEATREC DWHRa wrFeedsWH=Yes wrCountFXDrain = 1 wrCountFXCold = 1 wrCSARatedEF = .6 wrTDInDiff=0 - ////////////////////////////////////////////////////////////////////// +# #define WSRREPCOLS( s, IVL) \ +# ReportCol colhead = "Total" colVal=@DHWSYSRES[ s].IVL.total/1000 colWid=8 \ +# ReportCol colhead = "DWHR" colVal=@DHWSYSRES[ s].IVL.qDWHR/1000 colWid=8 \ +# ReportCol colhead = "SSF" colVal=@DHWSYSRES[ s].IVL.qSSF/1000 colWid=8 \ +# ReportCol colhead = "Solar" colVal=@DHWSYSRES[ s].IVL.qSolar /1000 colWid=8 \ +# ReportCol colhead = "WH" colVal=@DHWSYSRES[ s].IVL.qWH/1000 colWid=8 \ +# ReportCol colhead = "LH" colVal=@DHWSYSRES[ s].IVL.qLH/1000 colWid=8 \ +# ReportCol colhead = "XBU" colVal=@DHWSYSRES[ s].IVL.qXBU/1000 colWid=8 \ +# +# #define WSRREP_H( s, jday) REPORT rpType=UDT rpFreq=HOUR rpTitle = s rpDayBeg=jday rpDayEnd=jday \ +# ReportCol colhead="Hr" colVal=$hour colWid = 3 \ +# WSRREPCOLS( s, H) + +# #define WSRREP_D( s, dBeg, dEnd) REPORT rpType=UDT rpFreq=DAY rpTitle = s rpDayBeg=dBeg rpDayEnd=dEnd \ +# ReportCol colhead="Day" colVal=@Top.dateStr colWid = 10 \ +# WSRREPCOLS( s, D) + +# #define WSRREP_M( s) REPORT rpType=UDT rpFreq=MONTH rpTitle = s rpDayBeg=jan 1 rpDayEnd=dec 31 \ +# ReportCol colhead="Mon" colVal=@Top.monStr colWid = 3 \ +# WSRREPCOLS( s, M) \ +# REPORT rpType=UDT rpFreq=YEAR rpHeader=No \ +# ReportCol colVal="Yr" colWid = 3 \ +# WSRREPCOLS( s, Y) + + WSRREP_M( "DSMH") + DELETE REPORT EB @@ -8224,33 +8249,8 @@ Input for Run 001: - - - - - - - - - - - - - - - - - - - - - - - - - ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 131 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 131 @@ -8259,21 +8259,21 @@ Input for Run 001: -! CSE 0.865.0+solar-hot-water.80dd9ad.126 for Win32 console run(s) done: Mon 20-Jan-20 1:41:19 pm +! CSE 0.881.0+hpwhdr.e084f2a.5 for Win32 console run(s) done: Tue 20-Oct-20 4:05:47 pm -! Executable: d:\cse\msvc\csed.exe -! 20-Jan-20 1:29 pm (VS 14.16 5264384 bytes) (HPWH 1.8.0) +! Executable: d:\cse\msvc\cse.exe +! 20-Oct-20 4:03 pm (VS 14.16 2669568 bytes) (HPWH 1.10.3+New_DR_Modes.9bd4507.22) ! Command line: -x! -t1 dwhr ! Input file: D:\cse\test\dwhr.cse ! Report file: D:\cse\test\dwhr.rep ! Timing info -- -! Input: Time = 6.28 Calls = 1 T/C = 6.2810 +! Input: Time = 0.48 Calls = 1 T/C = 0.4760 ! AutoSizing: Time = 0.00 Calls = 0 T/C = 0.0000 -! Simulation: Time = 12.12 Calls = 1 T/C = 12.1240 -! Reports: Time = 0.14 Calls = 1 T/C = 0.1380 -! Total: Time = 18.55 Calls = 1 T/C = 18.5480 +! Simulation: Time = 2.89 Calls = 1 T/C = 2.8890 +! Reports: Time = 0.02 Calls = 1 T/C = 0.0170 +! Total: Time = 3.39 Calls = 1 T/C = 3.3850 @@ -8313,5 +8313,5 @@ Input for Run 001: ------------------------------------------------------------------------------ -! dwhr 001 Mon 20-Jan-20 1:41:01 pm Page 132 +! dwhr 001 Tue 20-Oct-20 4:05:44 pm Page 132 \ No newline at end of file diff --git a/vendor/HPWHsim b/vendor/HPWHsim index 6688d3ce3..9bd4507f0 160000 --- a/vendor/HPWHsim +++ b/vendor/HPWHsim @@ -1 +1 @@ -Subproject commit 6688d3ce3acb40bb3f7030dce024ca1fe83d035f +Subproject commit 9bd4507f07fa39fa718f8dd8c91a9ecf45da34f6