8 #ifndef AMO_TOOLS_SUITE_CHP_H 9 #define AMO_TOOLS_SUITE_CHP_H 14 #include <unordered_map> 36 PercentAvgkWhElectricCostAvoided,
40 CHP(
double annualOperatingHours,
double annualElectricityConsumption,
double annualThermalDemand,
41 double boilerThermalFuelCosts,
double avgElectricityCosts,
Option calculationOption,
42 double boilerThermalFuelCostsCHPcase,
double CHPfuelCosts,
43 double percentAvgkWhElectricCostAvoidedOrStandbyRate,
double displacedThermalEfficiency,
double chpAvailability,
44 double thermalUtilization);
46 std::unordered_map<std::string, double>
const & getCostInfo()
const {
return costInfo; }
156 void setAnnualOperatingHours(
double annualOperatingHours);
157 void setAnnualElectricityConsumption(
double annualElectricityConsumption);
158 void setAnnualThermalDemand(
double annualThermalDemand);
159 void setBoilerThermalFuelCosts(
double boilerThermalFuelCosts);
160 void setChpFuelCosts(
double chpFuelCosts);
161 void setAvgElectricityCosts(
double avgElectricityCosts);
162 void setCalculationOption(
Option calculationOption,
double percentAvgkWhElectricCostAvoidedOrStandbyRate);
163 void setBoilerThermalFuelCostsCHPcase(
double boilerThermalFuelCostsCHPcase);
164 void setPercentAvgkWhElectricCostAvoided(
double percentAvgkWhElectricCostAvoided);
165 void setStandbyRate(
double standbyRate);
166 void setDisplacedThermalEfficiency(
double displacedThermalEfficiency);
167 void setChpElectricEfficiency(
double chpElectricEfficiency);
168 void setChpThermalOutput(
double chpThermalOutput);
169 void setChpAvailability(
double chpAvailability);
170 void setThermalUtilization(
double thermalUtilization);
171 void setAvgPowerDemand(
double avgPowerDemand);
172 void setAvgThermalDemand(
double avgThermalDemand);
173 void setNetCHPpower(
double netCHPpower);
178 std::map<double, std::size_t>::const_iterator findNearest(
double val, std::size_t index)
const;
180 double annualOperatingHours, annualElectricityConsumption, annualThermalDemand;
181 double boilerThermalFuelCosts, chpFuelCosts, avgElectricityCosts;
183 double boilerThermalFuelCostsCHPcase, percentAvgkWhElectricCostAvoided = 0, standbyRate = 0;
184 double displacedThermalEfficiency, chpElectricEfficiency, chpThermalOutput, chpAvailability, thermalUtilization;
186 double avgPowerDemand, avgThermalDemand, netCHPpower;
188 std::unordered_map<std::string, double> costInfo;
190 const std::array<std::array<double, 8>, 3> chpSystemByIndex = {
192 {{50, 600, 1000, 3300, 5000, 10000, 20000, 45000}},
196 {{0.024, 0.021, 0.019, 0.0126, 0.0123, 0.012, 0.0093, 0.0092}},
197 {{2900, 2737, 2335, 1917, 2080, 1976, 1518, 1248}}
201 const std::array<std::map<double, std::size_t>, 6> chpSystemByKey = {
203 {{50, 0}, {600, 1}, {1000, 2}, {3300, 3}, {5000, 4}, {10000, 5}, {20000, 6}, {45000, 7}},
204 {{27.0, 0}, {34.5, 1}, {36.8, 2}, {40.4, 3}, {28.9, 4}, {27.3, 5}, {33.2, 6}, {36.0, 7}},
205 {{6700, 0}, {4392, 1}, {3854, 2}, {3233, 3}, {4893, 4}, {5262, 5}, {3821, 6}, {3141, 7}},
206 {{0.34, 0}, {2.64, 1}, {3.85, 2}, {10.67, 3}, {24.47, 4}, {52.62, 5}, {76.42, 6}, {141.33, 7}},
207 {{0.024, 0}, {0.021, 1}, {0.019, 2}, {0.0126, 3}, {0.0123, 4}, {0.012, 5}, {0.0093, 6}, {0.0092, 7}},
208 {{2900, 0}, {2737, 1}, {2335, 2}, {1917, 3}, {2080, 4}, {1976, 5}, {1518, 6}, {1248, 7}}
214 #endif //AMO_TOOLS_SUITE_CHP_H double getBoilerThermalFuelCostsCHPcase() const
double getStandbyRate() const
double getAnnualElectricityConsumption() const
double getAvgElectricityCosts() const
double getAvgPowerDemand() const
double getDisplacedThermalEfficiency() const
double getPercentAvgkWhElectricCostAvoided() const
double getAnnualOperatingHours() const
double getBoilerThermalFuelCosts() const
double getThermalUtilization() const
double getAvgThermalDemand() const
double getChpElectricEfficiency() const
double getAnnualThermalDemand() const
double getChpFuelCosts() const
double getChpThermalOutput() const
double getChpAvailability() const
double getNetCHPpower() const
Option getCalculationOption() const