MEASUR-Tools-Suite v1.0.11
The MEASUR Tools Suite is a collection of industrial efficiency calculations written in C++ and with bindings for compilation to WebAssembly.
Loading...
Searching...
No Matches
CascadeHeatHighToLow.h
Go to the documentation of this file.
1
13#ifndef TOOLS_SUITE_CASCADEHEATHIGHTOLOW_H
14#define TOOLS_SUITE_CASCADEHEATHIGHTOLOW_H
15
17#include "losses/solid_liquid_flue_gas_material.h"
18
20 public:
21 struct Output {
22 Output(double priFlueVolume, double hxEnergyRate, double eqEnergySupply, double effOpHours,
23 double energySavings, double costSavings, double hourlySavings, double priExcessAir,
24 double priAvailableHeat, double secExcessAir, double secAvailableHeat)
25 : priFlueVolume(priFlueVolume), hxEnergyRate(hxEnergyRate), eqEnergySupply(eqEnergySupply),
26 effOpHours(effOpHours), energySavings(energySavings), costSavings(costSavings),
27 hourlySavings(hourlySavings), priExcessAir(priExcessAir), priAvailableHeat(priAvailableHeat),
28 secExcessAir(secExcessAir), secAvailableHeat(secAvailableHeat) {}
29
30 Output() = default;
31 double priFlueVolume = 0, hxEnergyRate = 0, eqEnergySupply = 0, effOpHours = 0, energySavings = 0,
32 costSavings = 0, hourlySavings = 0, priExcessAir = 0, priAvailableHeat = 0, secExcessAir = 0,
33 secAvailableHeat = 0;
34 };
35
71 CascadeHeatHighToLow(GasCompositions gasCompositions, double fuelHV, double fuelCost, double priFiringRate,
72 double priExhaustTemperature, double priExhaustO2, double priCombAirTemperature,
73 double priOpHours, double secFiringRate, double secExhaustTemperature, double secExhaustO2,
74 double secCombAirTemperature, double secOpHours, const double fuelTempF = 60,
75 const double ambientAirTempF = 60, const double combAirMoisturePerc = 0)
76 : fuelHV(fuelHV), fuelCost(fuelCost), priFiringRate(priFiringRate),
77 priExhaustTemperature(priExhaustTemperature), priExhaustO2(priExhaustO2),
78 priCombAirTemperature(priCombAirTemperature), priOpHours(priOpHours), secFiringRate(secFiringRate),
79 secExhaustTemperature(secExhaustTemperature), secExhaustO2(secExhaustO2),
80 secCombAirTemperature(secCombAirTemperature), secOpHours(secOpHours) {
81 const auto res =
82 gasCompositions.getProcessHeatProperties(priExhaustTemperature, priExhaustO2, priCombAirTemperature,
83 fuelTempF, ambientAirTempF, combAirMoisturePerc);
84 stoichAirVolume = res.stoichAir;
85 priExcessAir = res.excessAir;
86 priAvailableHeat = res.availableHeat;
87 priFlueSpecHeat = res.specificHeat;
88 priFlueDensity = res.density / 16.018463;
89
90 const auto resSec =
91 gasCompositions.getProcessHeatProperties(secExhaustTemperature, secExhaustO2, secCombAirTemperature,
92 fuelTempF, ambientAirTempF, combAirMoisturePerc);
93 secExcessAir = resSec.excessAir;
94 secAvailableHeat = resSec.availableHeat;
95 }
96
114
115 private:
116 double stoichAirVolume = 0, priExcessAir = 0, secExcessAir = 0, priAvailableHeat = 0, secAvailableHeat = 0,
117 priFlueSpecHeat = 0, priFlueDensity = 0;
118 double fuelHV = 0, fuelCost = 0;
119 double priFiringRate = 0, priExhaustTemperature = 0, priExhaustO2 = 0, priCombAirTemperature = 0, priOpHours = 0;
120 double secFiringRate = 0, secExhaustTemperature = 0, secExhaustO2 = 0, secCombAirTemperature = 0, secOpHours = 0;
121};
122
123#endif // TOOLS_SUITE_CASCADEHEATHIGHTOLOW_H
CascadeHeatHighToLow(GasCompositions gasCompositions, double fuelHV, double fuelCost, double priFiringRate, double priExhaustTemperature, double priExhaustO2, double priCombAirTemperature, double priOpHours, double secFiringRate, double secExhaustTemperature, double secExhaustO2, double secCombAirTemperature, double secOpHours, const double fuelTempF=60, const double ambientAirTempF=60, const double combAirMoisturePerc=0)
CascadeHeatHighToLow::Output calculate()
ProcessHeatPropertiesResults getProcessHeatProperties(const double flueGasTempF, const double flueGasO2, const double combAirTemperatureF, const double fuelTempF=60, const double ambientAirTempF=60, const double combAirMoisturePerc=0, const double excessAir=0)
Calculator for flue gas heat losses.