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#pragma once
2
16#include "losses/solid_liquid_flue_gas_material.h"
17
19 public:
20 struct Output {
21 Output(double priFlueVolume, double hxEnergyRate, double eqEnergySupply, double effOpHours,
22 double energySavings, double costSavings, double hourlySavings, double priExcessAir,
23 double priAvailableHeat, double secExcessAir, double secAvailableHeat)
24 : priFlueVolume(priFlueVolume), hxEnergyRate(hxEnergyRate), eqEnergySupply(eqEnergySupply),
25 effOpHours(effOpHours), energySavings(energySavings), costSavings(costSavings),
26 hourlySavings(hourlySavings), priExcessAir(priExcessAir), priAvailableHeat(priAvailableHeat),
27 secExcessAir(secExcessAir), secAvailableHeat(secAvailableHeat) {}
28
29 Output() = default;
30 double priFlueVolume = 0, hxEnergyRate = 0, eqEnergySupply = 0, effOpHours = 0, energySavings = 0,
31 costSavings = 0, hourlySavings = 0, priExcessAir = 0, priAvailableHeat = 0, secExcessAir = 0,
32 secAvailableHeat = 0;
33 };
34
70 CascadeHeatHighToLow(GasCompositions gasCompositions, double fuelHV, double fuelCost, double priFiringRate,
71 double priExhaustTemperature, double priExhaustO2, double priCombAirTemperature,
72 double priOpHours, double secFiringRate, double secExhaustTemperature, double secExhaustO2,
73 double secCombAirTemperature, double secOpHours, const double fuelTempF = 60,
74 const double ambientAirTempF = 60, const double combAirMoisturePerc = 0)
75 : fuelHV(fuelHV), fuelCost(fuelCost), priFiringRate(priFiringRate),
76 priExhaustTemperature(priExhaustTemperature), priExhaustO2(priExhaustO2),
77 priCombAirTemperature(priCombAirTemperature), priOpHours(priOpHours), secFiringRate(secFiringRate),
78 secExhaustTemperature(secExhaustTemperature), secExhaustO2(secExhaustO2),
79 secCombAirTemperature(secCombAirTemperature), secOpHours(secOpHours) {
80 const auto res =
81 gasCompositions.getProcessHeatProperties(priExhaustTemperature, priExhaustO2, priCombAirTemperature,
82 fuelTempF, ambientAirTempF, combAirMoisturePerc);
83 stoichAirVolume = res.stoichAir;
84 priExcessAir = res.excessAir;
85 priAvailableHeat = res.availableHeat;
86 priFlueSpecHeat = res.specificHeat;
87 priFlueDensity = res.density / 16.018463;
88
89 const auto resSec =
90 gasCompositions.getProcessHeatProperties(secExhaustTemperature, secExhaustO2, secCombAirTemperature,
91 fuelTempF, ambientAirTempF, combAirMoisturePerc);
92 secExcessAir = resSec.excessAir;
93 secAvailableHeat = resSec.availableHeat;
94 }
95
113
114 private:
115 double stoichAirVolume = 0, priExcessAir = 0, secExcessAir = 0, priAvailableHeat = 0, secAvailableHeat = 0,
116 priFlueSpecHeat = 0, priFlueDensity = 0;
117 double fuelHV = 0, fuelCost = 0;
118 double priFiringRate = 0, priExhaustTemperature = 0, priExhaustO2 = 0, priCombAirTemperature = 0, priOpHours = 0;
119 double secFiringRate = 0, secExhaustTemperature = 0, secExhaustO2 = 0, secCombAirTemperature = 0, secOpHours = 0;
120};
121
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.