| 929 | } |
| 930 | |
| 931 | Loop addSHWLoop(Model& model) { |
| 932 | |
| 933 | Model tempModel; |
| 934 | // Make a schedule at 140°F |
| 935 | auto shwSchedule = makeSchedule(tempModel, "SHW_Temperature_140F", 60).clone(model).cast<Schedule>(); |
| 936 | |
| 937 | Schedule _alwaysOnSchedule = model.alwaysOnDiscreteSchedule(); |
| 938 | |
| 939 | // SHW Plant |
| 940 | PlantLoop shwPlant(model); |
| 941 | shwPlant.setName("Service Water Loop"); |
| 942 | |
| 943 | // Initialize nodes |
| 944 | Node shwOutletNode = shwPlant.supplyOutletNode(); |
| 945 | Node shwInletNode = shwPlant.supplyInletNode(); |
| 946 | Node shwDemandOutletNode = shwPlant.demandOutletNode(); |
| 947 | Node shwDemandInletNode = shwPlant.demandInletNode(); |
| 948 | |
| 949 | // Set temperatures |
| 950 | shwPlant.setMaximumLoopTemperature(60); |
| 951 | shwPlant.setMinimumLoopTemperature(10); |
| 952 | SizingPlant sizingPlant = shwPlant.sizingPlant(); |
| 953 | sizingPlant.setLoopType("Heating"); |
| 954 | // Supply at 60°C (140°F), delta is 5°K (9°F) |
| 955 | sizingPlant.setDesignLoopExitTemperature(60); |
| 956 | sizingPlant.setLoopDesignTemperatureDifference(5.0); |
| 957 | |
| 958 | SetpointManagerScheduled shwSPM(model, shwSchedule); |
| 959 | shwSPM.addToNode(shwOutletNode); |
| 960 | |
| 961 | // Pump: assume 10 ft of head, just from friction (recirculation) |
| 962 | PumpConstantSpeed swh_pump(model); |
| 963 | swh_pump.setRatedPumpHead(29891); |
| 964 | swh_pump.setPumpControlType("Intermittent"); |
| 965 | swh_pump.addToNode(shwInletNode); |
| 966 | |
| 967 | // WaterHeater |
| 968 | // Mostly taken from prototype input for HighRiseApartment |
| 969 | WaterHeaterMixed wh(model); |
| 970 | // Connect it to loop |
| 971 | shwPlant.addSupplyBranchForComponent(wh); |
| 972 | // 600 gal, 140F cut-out, delta of 5K(9F) means cut-in is 131°F |
| 973 | wh.setName("600 gal Water Heater - 600 kBtu/hr"); |
| 974 | wh.setTankVolume(2.2712470703819108); |
| 975 | wh.setSetpointTemperatureSchedule(shwSchedule); |
| 976 | wh.setDeadbandTemperatureDifference(5); |
| 977 | // 600 kBTU/h |
| 978 | wh.setHeaterMaximumCapacity(175842); |
| 979 | // Max temp is 180F |
| 980 | wh.setMaximumTemperatureLimit(82.22222); |
| 981 | wh.setHeaterControlType("Cycle"); |
| 982 | wh.setOffCycleParasiticHeatFractiontoTank(0.8); |
| 983 | wh.setIndirectWaterHeatingRecoveryTime(1.5); // 1.5hrs |
| 984 | |
| 985 | // Assume gas |
| 986 | wh.setHeaterFuelType("NaturalGas"); |
| 987 | // Result from running the prototype building for 90.1-2013 HighRiseApartment |
| 988 | wh.setHeaterThermalEfficiency(0.80154340529419); |
nothing calls this directly
no test coverage detected