MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / addSHWLoop

Function addSHWLoop

src/model/HVACTemplates.cpp:931–1118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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);

Callers

nothing calls this directly

Tested by

no test coverage detected