measur-tools-suite 1.0.14-beta.268 → 1.0.14-beta.283
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/client.wasm +0 -0
- package/bin/package.json +1 -1
- package/docs/dependencies/mathjax-config.js +1 -0
- package/docs/dox-content/calculators/processHeat/flow_calculations_energy_use_calculator.dox +211 -0
- package/docs/dox-content/calculators/processHeat/losses/solid_liquid_flue_gas_calculator.dox +13 -2
- package/docs/dox-content/calculators/processHeat/o2_enrichment_calculator.dox +206 -0
- package/docs/dox-content/calculators/processHeat/process_heat_calculator.dox +50 -0
- package/package.json +1 -1
package/bin/client.wasm
CHANGED
|
Binary file
|
package/bin/package.json
CHANGED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @defgroup flow_calculations_energy_use_calculator Flow Calculations Energy Use Calculator
|
|
3
|
+
* @ingroup process_heat_calculators
|
|
4
|
+
* @brief Calculates flow rate and heat input of a fuel-fired furnace using orifice flow measurement.
|
|
5
|
+
* @details This calculator estimates gas flow rate and energy consumption in fuel-fired furnaces by measuring pressure drop across an orifice. The calculation uses orifice geometry, gas properties, operating conditions, and discharge coefficients to determine volumetric flow and thermal input. The method is based on standard industrial practice for orifice flow measurement in combustion systems.
|
|
6
|
+
*
|
|
7
|
+
* The calculation follows a top-down approach:
|
|
8
|
+
* 1. **Orifice Area** - Calculate effective orifice cross-sectional area
|
|
9
|
+
* 2. **Adjusted Discharge Coefficient** - Correct discharge coefficient for diameter ratio effects
|
|
10
|
+
* 3. **Pressure Drop Term** - Calculate normalized pressure drop accounting for specific gravity
|
|
11
|
+
* 4. **Temperature Adjustment** - Correct flow for actual gas temperature vs. standard conditions
|
|
12
|
+
* 5. **Pressure Adjustment** - Correct flow for actual gas pressure vs. atmospheric
|
|
13
|
+
* 6. **Flow Rate** - Calculate volumetric flow rate at standard conditions
|
|
14
|
+
* 7. **Heat Input** - Calculate thermal input based on flow and heating value
|
|
15
|
+
* 8. **Total Flow** - Calculate total gas volume consumed over operating period
|
|
16
|
+
*
|
|
17
|
+
* Relevant formulas and symbol definitions are documented below.
|
|
18
|
+
*
|
|
19
|
+
* @heading{Orifice Area}
|
|
20
|
+
* @copydoc flow_calculations_orifice_area_formula
|
|
21
|
+
*
|
|
22
|
+
* @heading{Adjusted Discharge Coefficient}
|
|
23
|
+
* @copydoc flow_calculations_adjusted_discharge_coefficient_formula
|
|
24
|
+
*
|
|
25
|
+
* @heading{Pressure Drop Term}
|
|
26
|
+
* @copydoc flow_calculations_pressure_drop_formula
|
|
27
|
+
*
|
|
28
|
+
* @heading{Temperature Adjustment}
|
|
29
|
+
* @copydoc flow_calculations_temperature_adjustment_formula
|
|
30
|
+
*
|
|
31
|
+
* @heading{Pressure Adjustment}
|
|
32
|
+
* @copydoc flow_calculations_pressure_adjustment_formula
|
|
33
|
+
*
|
|
34
|
+
* @heading{Flow Rate}
|
|
35
|
+
* @copydoc flow_calculations_flow_rate_formula
|
|
36
|
+
*
|
|
37
|
+
* @heading{Heat Input}
|
|
38
|
+
* @copydoc flow_calculations_heat_input_formula
|
|
39
|
+
*
|
|
40
|
+
* @heading{Total Flow}
|
|
41
|
+
* @copydoc flow_calculations_total_flow_formula
|
|
42
|
+
*
|
|
43
|
+
* @heading{Gas Type Specific Gravity Values}
|
|
44
|
+
* The following table shows the default specific gravity values. Provided for reference.
|
|
45
|
+
*
|
|
46
|
+
* | Gas Type | Specific Gravity (unitless) |
|
|
47
|
+
* |----------|---------------------------|
|
|
48
|
+
* | Air | 1.0 |
|
|
49
|
+
* | Ammonia (Dissociated) | 0.3 |
|
|
50
|
+
* | Argon | 1.38 |
|
|
51
|
+
* | Butane | 2.02 |
|
|
52
|
+
* | Endothermic Ammonia | 0.59 |
|
|
53
|
+
* | Exothermic (Cracked Lean) | 1.0 |
|
|
54
|
+
* | Exothermic (Cracked Rich) | 0.85 |
|
|
55
|
+
* | Helium | 0.14 |
|
|
56
|
+
* | Hydrogen | 0.07 |
|
|
57
|
+
* | Natural Gas | 0.65 |
|
|
58
|
+
* | Nitrogen | 0.96 |
|
|
59
|
+
* | Oxygen | 1.11 |
|
|
60
|
+
* | Propane | 1.52 |
|
|
61
|
+
*
|
|
62
|
+
* @heading{Section Type Discharge Coefficients}
|
|
63
|
+
* The following table shows the default discharge coefficient values. Provided for reference.
|
|
64
|
+
*
|
|
65
|
+
* | Section Type | Discharge Coefficient (unitless) |
|
|
66
|
+
* |-------------|----------------------------------|
|
|
67
|
+
* | Square Edge | 0.5 |
|
|
68
|
+
* | Sharp Edge | 0.6 |
|
|
69
|
+
* | Venturi | 0.8 |
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @defgroup flow_calculations_orifice_area_formula Orifice Area Formula
|
|
74
|
+
* @ingroup flow_calculations_energy_use_calculator
|
|
75
|
+
* @brief Effective cross-sectional area of the orifice.
|
|
76
|
+
* @details The orifice area is calculated using an empirical factor and the square of the orifice diameter. This factor accounts for the conversion from diameter in inches to effective area for volumetric flow calculations in standard cubic feet per hour.
|
|
77
|
+
*
|
|
78
|
+
* @formula{flow-calculations-orifice-area; A = k_{area} \cdot d_{orifice}^2}
|
|
79
|
+
*
|
|
80
|
+
* @subheading{Symbols}
|
|
81
|
+
* @symtable
|
|
82
|
+
* @symrow{A; Orifice area; \squareInch}
|
|
83
|
+
* @symrow{k_{area}; Orifice area factor (1300) - empirical constant for flow calculations, see @ref physics::us::kOrificeAreaFactor; \unitless}
|
|
84
|
+
* @symrow{d_{orifice}; Orifice diameter; \inch}
|
|
85
|
+
* @endsymtable
|
|
86
|
+
*/
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @defgroup flow_calculations_adjusted_discharge_coefficient_formula Adjusted Discharge Coefficient Formula
|
|
90
|
+
* @ingroup flow_calculations_energy_use_calculator
|
|
91
|
+
* @brief Discharge coefficient corrected for diameter ratio effects.
|
|
92
|
+
* @details When the orifice diameter is smaller than the pipe diameter, the discharge coefficient must be adjusted to account for the velocity of approach and contraction effects. If the diameters are equal, no adjustment is needed.
|
|
93
|
+
*
|
|
94
|
+
* @formula{flow-calculations-adjusted-discharge-coeff; C_{d,adj} = \begin{cases} \frac{C_d}{\sqrt{1 - \left(\frac{d_{orifice}}{d_{pipe}}\right)^4}} & \text{if } d_{orifice} < d_{pipe} \\ C_d & \text{otherwise} \end{cases}}
|
|
95
|
+
*
|
|
96
|
+
* @subheading{Symbols}
|
|
97
|
+
* @symtable
|
|
98
|
+
* @symrow{C_{d,adj}; Adjusted discharge coefficient; \unitless}
|
|
99
|
+
* @symrow{C_d; Discharge coefficient; \unitless}
|
|
100
|
+
* @symrow{d_{orifice}; Orifice diameter; \inch}
|
|
101
|
+
* @symrow{d_{pipe}; Inside pipe diameter; \inch}
|
|
102
|
+
* @endsymtable
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* @defgroup flow_calculations_pressure_drop_formula Pressure Drop Term Formula
|
|
107
|
+
* @ingroup flow_calculations_energy_use_calculator
|
|
108
|
+
* @brief Normalized pressure drop term accounting for gas specific gravity.
|
|
109
|
+
* @details The pressure drop term represents the driving force for flow through the orifice, normalized by the gas specific gravity. This accounts for the fact that lighter gases will flow faster for the same pressure drop.
|
|
110
|
+
*
|
|
111
|
+
* @formula{flow-calculations-pressure-drop; \Delta P_{norm} = \sqrt{\frac{\Delta P_{orifice}}{SG}}}
|
|
112
|
+
*
|
|
113
|
+
* @subheading{Symbols}
|
|
114
|
+
* @symtable
|
|
115
|
+
* @symrow{\Delta P_{norm}; Normalized pressure drop; \inchWaterColumn}
|
|
116
|
+
* @symrow{\Delta P_{orifice}; Orifice pressure drop; \inchWaterColumn}
|
|
117
|
+
* @symrow{SG; Gas specific gravity (relative to air); \unitless}
|
|
118
|
+
* @endsymtable
|
|
119
|
+
*/
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @defgroup flow_calculations_temperature_adjustment_formula Temperature Adjustment Formula
|
|
123
|
+
* @ingroup flow_calculations_energy_use_calculator
|
|
124
|
+
* @brief Temperature correction factor for flow to standard conditions.
|
|
125
|
+
* @details The temperature adjustment converts actual volumetric flow at operating temperature to standard conditions (60°F or 520°R). Gas volume is inversely proportional to the square root of absolute temperature.
|
|
126
|
+
*
|
|
127
|
+
* @formula{flow-calculations-convert-temperature; T_{gas} = T_{gas,F} + 459.67}
|
|
128
|
+
* @formula{flow-calculations-temperature-adj; f_T = \sqrt{\frac{T_{std}}{T_{gas}}}}
|
|
129
|
+
*
|
|
130
|
+
* @subheading{Symbols}
|
|
131
|
+
* @symtable
|
|
132
|
+
* @symrow{f_T; Temperature adjustment factor; \unitless}
|
|
133
|
+
* @symrow{T_{std}; Standard gas temperature (520) - see @ref physics::us::kStandardGasTemperatureR; \degreeRankine}
|
|
134
|
+
* @symrow{T_{gas}; Actual gas temperature in Rankine; \degreeRankine}
|
|
135
|
+
* @symrow{T_{gas,F}; Actual gas temperature in Fahrenheit; \degreeFahrenheit}
|
|
136
|
+
* @symrow{459.67; Fahrenheit to Rankine conversion factor - see @ref physics::conversions::fahrenheitToRankine; \degreeRankine}
|
|
137
|
+
* @endsymtable
|
|
138
|
+
*/
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @defgroup flow_calculations_pressure_adjustment_formula Pressure Adjustment Formula
|
|
142
|
+
* @ingroup flow_calculations_energy_use_calculator
|
|
143
|
+
* @brief Pressure correction factor for flow to standard conditions.
|
|
144
|
+
* @details The pressure adjustment converts actual volumetric flow at operating pressure (gauge) to standard atmospheric pressure. Gas volume is proportional to the square root of absolute pressure.
|
|
145
|
+
*
|
|
146
|
+
* @formula{flow-calculations-abs-gas-pressure; P_{gas,abs} = P_{gas,gauge} + P_{atm}}
|
|
147
|
+
* @formula{flow-calculations-pressure-adj; f_P = \sqrt{\frac{P_{gas,abs}}{P_{atm}}}}
|
|
148
|
+
*
|
|
149
|
+
* @subheading{Symbols}
|
|
150
|
+
* @symtable
|
|
151
|
+
* @symrow{f_P; Pressure adjustment factor; \unitless}
|
|
152
|
+
* @symrow{P_{gas,abs}; Absolute gas pressure; psia}
|
|
153
|
+
* @symrow{P_{gas,gauge}; Gauge gas pressure; psig}
|
|
154
|
+
* @symrow{P_{atm}; Atmospheric pressure (14.7) - see @ref physics::us::kAtmosphericPressurePsi; psia}
|
|
155
|
+
* @endsymtable
|
|
156
|
+
*/
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* @defgroup flow_calculations_flow_rate_formula Flow Rate Formula
|
|
160
|
+
* @ingroup flow_calculations_energy_use_calculator
|
|
161
|
+
* @brief Volumetric flow rate at standard conditions.
|
|
162
|
+
* @details The flow rate is calculated by combining the orifice area, adjusted discharge coefficient, and all correction factors. This represents the gas flow rate at standard conditions (60°F, 1 atm).
|
|
163
|
+
*
|
|
164
|
+
* @formula{flow-calculations-flow-rate; \dot{V} = A \cdot C_{d,adj} \cdot \Delta P_{norm} \cdot f_T \cdot f_P}
|
|
165
|
+
*
|
|
166
|
+
* @subheading{Symbols}
|
|
167
|
+
* @symtable
|
|
168
|
+
* @symrow{\dot{V}; Volumetric flow rate; \scf\per\hour}
|
|
169
|
+
* @symrow{A; Orifice area; \squareInch}
|
|
170
|
+
* @symrow{C_{d,adj}; Adjusted discharge coefficient; \unitless}
|
|
171
|
+
* @symrow{\Delta P_{norm}; Normalized pressure drop; \inchWaterColumn}
|
|
172
|
+
* @symrow{f_T; Temperature adjustment factor; \unitless}
|
|
173
|
+
* @symrow{f_P; Pressure adjustment factor; \unitless}
|
|
174
|
+
* @endsymtable
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @defgroup flow_calculations_heat_input_formula Heat Input Formula
|
|
179
|
+
* @ingroup flow_calculations_energy_use_calculator
|
|
180
|
+
* @brief Thermal energy input over operating period.
|
|
181
|
+
* @details The heat input is calculated by multiplying the volumetric flow rate by the heating value of the gas and the operating time. The result is converted from Btu to MMBtu. If the heating value is zero or negative, the heat input is zero.
|
|
182
|
+
*
|
|
183
|
+
* @formula{flow-calculations-heat-input; Q_{input} = \frac{\dot{V} \cdot HHV \cdot t_{op}}{CF_{MMBtu}}}
|
|
184
|
+
*
|
|
185
|
+
* @subheading{Symbols}
|
|
186
|
+
* @symtable
|
|
187
|
+
* @symrow{Q_{input}; Heat input over operating period; \MMBtu}
|
|
188
|
+
* @symrow{\dot{V}; Volumetric flow rate; \scf\per\hour}
|
|
189
|
+
* @symrow{HHV; Higher heating value of gas; \btu\per\scf}
|
|
190
|
+
* @symrow{t_{op}; Operating time; \hour}
|
|
191
|
+
* @symrow{CF_{MMBtu}; Conversion factor to convert from Btu to MMBtu (1,000,000 Btu/MMBtu) - see @ref physics::conversions::kMMBtuToBtu; \btu\per\MMBtu}
|
|
192
|
+
* @endsymtable
|
|
193
|
+
*
|
|
194
|
+
* @note If HHV ≤ 0, then @math{Q_{input}} = 0.
|
|
195
|
+
*/
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* @defgroup flow_calculations_total_flow_formula Total Flow Formula
|
|
199
|
+
* @ingroup flow_calculations_energy_use_calculator
|
|
200
|
+
* @brief Total gas volume consumed over operating period.
|
|
201
|
+
* @details The total flow is calculated by multiplying the volumetric flow rate at standard conditions by the operating time. This represents the total volume of gas consumed during the operating period.
|
|
202
|
+
*
|
|
203
|
+
* @formula{flow-calculations-total-flow; V_{total} = \dot{V} \cdot t_{op}}
|
|
204
|
+
*
|
|
205
|
+
* @subheading{Symbols}
|
|
206
|
+
* @symtable
|
|
207
|
+
* @symrow{V_{total}; Total gas volume consumed; \scf}
|
|
208
|
+
* @symrow{\dot{V}; Volumetric flow rate; \scf\per\hour}
|
|
209
|
+
* @symrow{t_{op}; Operating time; \hour}
|
|
210
|
+
* @endsymtable
|
|
211
|
+
*/
|
package/docs/dox-content/calculators/processHeat/losses/solid_liquid_flue_gas_calculator.dox
CHANGED
|
@@ -272,15 +272,26 @@
|
|
|
272
272
|
* estimates the fraction of excess air supplied to the combustion process. The calculation uses stoichiometric
|
|
273
273
|
* relationships and mass balance.
|
|
274
274
|
*
|
|
275
|
+
* The implementation uses the shared @ref process_heat::calculateExcessAir function from the @ref process_heat
|
|
276
|
+
* namespace as the initial estimate, then iteratively refines it based on the fuel composition and measured
|
|
277
|
+
* flue gas properties.
|
|
278
|
+
*
|
|
275
279
|
* @subheading{Iterative Procedure}
|
|
276
|
-
*
|
|
277
|
-
*
|
|
280
|
+
* 1. **Initial Estimate**: Uses @ref process_heat::calculateExcessAir to get a starting excess air value based
|
|
281
|
+
* on measured flue gas O2. See @ref process_heat_excess_air_formula for the formula.
|
|
282
|
+
* 2. **Iterative Refinement**: Calculates expected O2 using @ref solid_liquid_flue_gas_material::calculateFlueGasO2
|
|
283
|
+
* and adjusts excess air until convergence (error < 2%).
|
|
284
|
+
* 3. **Convergence**: Iteration continues until the calculated O2 matches the measured O2 within tolerance.
|
|
285
|
+
*
|
|
278
286
|
*
|
|
279
287
|
* @par Symbols
|
|
280
288
|
* @symtable
|
|
281
289
|
* @symrow{EA; Excess air fraction; \unitless}
|
|
282
290
|
* @symrow{O_2; Measured flue gas oxygen percentage; \percent}
|
|
283
291
|
* @endsymtable
|
|
292
|
+
*
|
|
293
|
+
* @see process_heat::calculateExcessAir for the initial excess air estimate formula
|
|
294
|
+
* @see solid_liquid_flue_gas_material::calculateFlueGasO2 for O2 calculation during iteration
|
|
284
295
|
*/
|
|
285
296
|
|
|
286
297
|
/**
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @defgroup o2_enrichment_calculator O2 Enrichment Calculator
|
|
3
|
+
* @ingroup process_heat_calculators
|
|
4
|
+
* @brief Calculates fuel consumption and savings from oxygen enrichment in fuel-fired furnaces.
|
|
5
|
+
* @details This calculator estimates the benefit of enriching combustion air with oxygen to improve combustion efficiency and reduce fuel consumption. The calculation uses combustion air properties, flue gas temperatures, oxygen concentrations, and fuel consumption data. The method is based on standard industrial practice for oxygen enrichment in process heating systems.
|
|
6
|
+
*
|
|
7
|
+
* The calculation follows a top-down approach:
|
|
8
|
+
* 1. **Excess Air** - Calculate excess air from oxygen concentration in flue gas
|
|
9
|
+
* 2. **Heat Input** - Determine heat input based on flue gas temperature
|
|
10
|
+
* 3. **Air Specific Heat** - Calculate specific heat of combustion air based on preheat temperature
|
|
11
|
+
* 4. **Air Correction** - Compute correction factor for excess air heat losses
|
|
12
|
+
* 5. **Combustion Air Correction** - Calculate correction factor for combustion air preheat
|
|
13
|
+
* 6. **Standard Available Heat** - Determine standard available heat from heat input and corrections
|
|
14
|
+
* 7. **Available Heat** - Calculate available heat accounting for oxygen enrichment effects
|
|
15
|
+
* 8. **Fuel Consumption with O2 Enrichment** - Compute fuel consumption with oxygen enrichment
|
|
16
|
+
* 9. **Fuel Savings with O2 Enrichment** - Determine fuel savings as a percentage
|
|
17
|
+
*
|
|
18
|
+
* Relevant formulas and symbol definitions are documented below.
|
|
19
|
+
*
|
|
20
|
+
* @heading{Excess Air}
|
|
21
|
+
* @copydoc o2_enrichment_excess_air_formula
|
|
22
|
+
*
|
|
23
|
+
* @heading{Heat Input}
|
|
24
|
+
* @copydoc o2_enrichment_heat_input_formula
|
|
25
|
+
*
|
|
26
|
+
* @heading{Air Specific Heat}
|
|
27
|
+
* @copydoc o2_enrichment_air_specific_heat_formula
|
|
28
|
+
*
|
|
29
|
+
* @heading{Air Correction}
|
|
30
|
+
* @copydoc o2_enrichment_air_correction_formula
|
|
31
|
+
*
|
|
32
|
+
* @heading{Combustion Air Correction}
|
|
33
|
+
* @copydoc o2_enrichment_combustion_air_correction_formula
|
|
34
|
+
*
|
|
35
|
+
* @heading{Standard Available Heat}
|
|
36
|
+
* @copydoc o2_enrichment_standard_available_heat_formula
|
|
37
|
+
*
|
|
38
|
+
* @heading{Available Heat}
|
|
39
|
+
* @copydoc o2_enrichment_available_heat_formula
|
|
40
|
+
*
|
|
41
|
+
* @heading{Fuel Consumption with O2 Enrichment}
|
|
42
|
+
* @copydoc o2_enrichment_fuel_consumption_formula
|
|
43
|
+
*
|
|
44
|
+
* @heading{Fuel Savings with O2 Enrichment}
|
|
45
|
+
* @copydoc o2_enrichment_fuel_savings_formula
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @defgroup o2_enrichment_excess_air_formula Excess Air Formula
|
|
50
|
+
* @ingroup o2_enrichment_calculator
|
|
51
|
+
* @brief Excess air calculated from oxygen concentration in flue gas.
|
|
52
|
+
* @details The excess air is determined from the oxygen concentration in the flue gas using stoichiometric
|
|
53
|
+
* relationships. This calculation uses the shared @ref process_heat::calculateExcessAir function from the
|
|
54
|
+
* @ref process_heat namespace, which provides a consistent implementation across all process heat calculators.
|
|
55
|
+
*
|
|
56
|
+
* The formula uses empirical factors derived from combustion stoichiometry for typical fuels to account for
|
|
57
|
+
* the fact that excess oxygen in flue gas indicates incomplete combustion air utilization.
|
|
58
|
+
*
|
|
59
|
+
* @par Implementation
|
|
60
|
+
* See @ref process_heat_excess_air_formula for the complete formula, symbol definitions, and implementation details.
|
|
61
|
+
*
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @defgroup o2_enrichment_heat_input_formula Heat Input Formula
|
|
66
|
+
* @ingroup o2_enrichment_calculator
|
|
67
|
+
* @brief Heat input calculated based on flue gas temperature.
|
|
68
|
+
* @details The heat input is estimated from the flue gas temperature using an empirical linear relationship. Higher flue gas temperatures indicate greater heat losses, resulting in lower available heat for the process. The relationship is based on typical industrial furnace operating conditions.
|
|
69
|
+
*
|
|
70
|
+
* @formula{o2-enrichment-heat-input; Q_{in} = 95 - 0.025 \cdot T_{flue}}
|
|
71
|
+
*
|
|
72
|
+
* @subheading{Symbols}
|
|
73
|
+
* @symtable
|
|
74
|
+
* @symrow{Q_{in}; Heat input; \percent}
|
|
75
|
+
* @symrow{T_{flue}; Flue gas temperature; \degreeFahrenheit}
|
|
76
|
+
* @symrow{95; Heat input intercept constant; \percent}
|
|
77
|
+
* @symrow{0.025; Heat input slope constant; \percent\per\degreeFahrenheit}
|
|
78
|
+
* @endsymtable
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @defgroup o2_enrichment_air_specific_heat_formula Air Specific Heat Formula
|
|
83
|
+
* @ingroup o2_enrichment_calculator
|
|
84
|
+
* @brief Specific heat of combustion air calculated based on preheat temperature.
|
|
85
|
+
* @details The specific heat of air varies with temperature according to an empirical linear relationship. This accounts for the temperature-dependent thermodynamic properties of air. The base specific heat and temperature coefficient are referenced from @ref physics::us::kSpecificHeatAirBase and @ref physics::us::kSpecificHeatAirCoeff.
|
|
86
|
+
*
|
|
87
|
+
* @formula{o2-enrichment-air-specific-heat; C_{p,air} = C_{p,base} + k_{temp} \cdot T_{air}}
|
|
88
|
+
*
|
|
89
|
+
* @subheading{Symbols}
|
|
90
|
+
* @symtable
|
|
91
|
+
* @symrow{C_{p,air}; Air specific heat; \btu\per\pound\per\degreeFahrenheit}
|
|
92
|
+
* @symrow{C_{p,base}; Base specific heat of air (0.017828518) - see @ref physics::us::kSpecificHeatAirBase; \btu\per\pound\per\degreeFahrenheit}
|
|
93
|
+
* @symrow{k_{temp}; Temperature coefficient (0.000002556) - see @ref physics::us::kSpecificHeatAirCoeff; \btu\per\pound\per\degreeFahrenheit\per\degreeFahrenheit}
|
|
94
|
+
* @symrow{T_{air}; Combustion air preheat temperature; \degreeFahrenheit}
|
|
95
|
+
* @endsymtable
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @defgroup o2_enrichment_air_correction_formula Air Correction Formula
|
|
100
|
+
* @ingroup o2_enrichment_calculator
|
|
101
|
+
* @brief Correction factor for excess air heat losses.
|
|
102
|
+
* @details The air correction accounts for heat losses due to excess air being heated and discharged with the flue gas. The correction is proportional to the excess air fraction, flue gas temperature, and air specific heat. The base constant is referenced from @ref physics::us::kAirCorrectionBase.
|
|
103
|
+
*
|
|
104
|
+
* @formula{o2-enrichment-air-correction; AC = -(k_{base} + C_{p,air} \cdot T_{flue}) \cdot EA}
|
|
105
|
+
*
|
|
106
|
+
* @subheading{Symbols}
|
|
107
|
+
* @symtable
|
|
108
|
+
* @symrow{AC; Air correction; \percent}
|
|
109
|
+
* @symrow{k_{base}; Air correction base constant (-1.078913827) - see @ref physics::us::kAirCorrectionBase; \btu\per\pound}
|
|
110
|
+
* @symrow{C_{p,air}; Air specific heat; \btu\per\pound\per\degreeFahrenheit}
|
|
111
|
+
* @symrow{T_{flue}; Flue gas temperature; \degreeFahrenheit}
|
|
112
|
+
* @symrow{EA; Excess air; \unitless}
|
|
113
|
+
* @endsymtable
|
|
114
|
+
*/
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* @defgroup o2_enrichment_combustion_air_correction_formula Combustion Air Correction Formula
|
|
118
|
+
* @ingroup o2_enrichment_calculator
|
|
119
|
+
* @brief Correction factor for combustion air preheat.
|
|
120
|
+
* @details The combustion air correction accounts for the heat credit from preheating combustion air. Higher preheat temperatures reduce fuel consumption by providing sensible heat to the combustion process. The correction is applied to both stoichiometric and excess air. The base constant is the same as the air correction base.
|
|
121
|
+
*
|
|
122
|
+
* @formula{o2-enrichment-combustion-air-correction; CAC = (k_{base} + C_{p,air} \cdot T_{air}) \cdot (1 + EA)}
|
|
123
|
+
*
|
|
124
|
+
* @subheading{Symbols}
|
|
125
|
+
* @symtable
|
|
126
|
+
* @symrow{CAC; Combustion air correction; \percent}
|
|
127
|
+
* @symrow{k_{base}; Combustion air correction base constant (-1.078913827); \btu\per\pound}
|
|
128
|
+
* @symrow{C_{p,air}; Air specific heat; \btu\per\pound\per\degreeFahrenheit}
|
|
129
|
+
* @symrow{T_{air}; Combustion air preheat temperature; \degreeFahrenheit}
|
|
130
|
+
* @symrow{EA; Excess air; \unitless}
|
|
131
|
+
* @endsymtable
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @defgroup o2_enrichment_standard_available_heat_formula Standard Available Heat Formula
|
|
136
|
+
* @ingroup o2_enrichment_calculator
|
|
137
|
+
* @brief Standard available heat from heat input and correction factors.
|
|
138
|
+
* @details The standard available heat represents the net heat available for the process after accounting for flue gas losses and combustion air preheat. It is the sum of the heat input, air correction (negative for losses), and combustion air correction (positive for preheat credit).
|
|
139
|
+
*
|
|
140
|
+
* @formula{o2-enrichment-standard-available-heat; AH_{std} = Q_{in} + AC + CAC}
|
|
141
|
+
*
|
|
142
|
+
* @subheading{Symbols}
|
|
143
|
+
* @symtable
|
|
144
|
+
* @symrow{AH_{std}; Standard available heat; \percent}
|
|
145
|
+
* @symrow{Q_{in}; Heat input; \percent}
|
|
146
|
+
* @symrow{AC; Air correction; \percent}
|
|
147
|
+
* @symrow{CAC; Combustion air correction; \percent}
|
|
148
|
+
* @endsymtable
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* @defgroup o2_enrichment_available_heat_formula Available Heat Formula
|
|
153
|
+
* @ingroup o2_enrichment_calculator
|
|
154
|
+
* @brief Available heat accounting for oxygen enrichment effects.
|
|
155
|
+
* @details The available heat is adjusted from the standard available heat to account for the benefits of oxygen enrichment. Enriching the combustion air with oxygen reduces the nitrogen content, which decreases sensible heat losses in the flue gas. The correction is proportional to the oxygen enrichment level, flue gas temperature, and the difference from ambient conditions.
|
|
156
|
+
*
|
|
157
|
+
* @formula{o2-enrichment-available-heat; AH = AH_{std} + 100 \cdot k_O \cdot \frac{O_{2,air} - 0.21}{O_{2,air}} \cdot 0.02 \cdot \frac{T_{flue} - 60}{980}}
|
|
158
|
+
*
|
|
159
|
+
* @subheading{Symbols}
|
|
160
|
+
* @symtable
|
|
161
|
+
* @symrow{AH; Available heat with enrichment; \percent}
|
|
162
|
+
* @symrow{AH_{std}; Standard available heat; \percent}
|
|
163
|
+
* @symrow{k_O; Oxygen enrichment factor (9.38); \unitless}
|
|
164
|
+
* @symrow{O_{2,air}; Oxygen in combustion air; \unitless}
|
|
165
|
+
* @symrow{0.21; Reference oxygen fraction in air; \unitless}
|
|
166
|
+
* @symrow{0.02; Available heat fraction factor; \unitless}
|
|
167
|
+
* @symrow{T_{flue}; Flue gas temperature; \degreeFahrenheit}
|
|
168
|
+
* @symrow{60; Ambient reference temperature; \degreeFahrenheit}
|
|
169
|
+
* @symrow{980; Available heat temperature divisor; \degreeFahrenheit}
|
|
170
|
+
* @symrow{100; Conversion factor to percentage; \unitless}
|
|
171
|
+
* @endsymtable
|
|
172
|
+
*/
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* @defgroup o2_enrichment_fuel_consumption_formula Fuel Consumption with O2 Enrichment Formula
|
|
176
|
+
* @ingroup o2_enrichment_calculator
|
|
177
|
+
* @brief Fuel consumption with oxygen enrichment.
|
|
178
|
+
* @details The fuel consumption with oxygen enrichment is calculated by adjusting the baseline fuel consumption based on the ratio of standard available heat to the available heat with enrichment. As the available heat increases with enrichment, less fuel is required to deliver the same process heat.
|
|
179
|
+
*
|
|
180
|
+
* @formula{o2-enrichment-fuel-consumption; FC_{enriched} = FC_{base} \cdot \frac{AH_{std}}{AH_{enriched}}}
|
|
181
|
+
*
|
|
182
|
+
* @subheading{Symbols}
|
|
183
|
+
* @symtable
|
|
184
|
+
* @symrow{FC_{enriched}; Fuel consumption with O2 enrichment; \mega\btu\per\hour}
|
|
185
|
+
* @symrow{FC_{base}; Baseline fuel consumption; \mega\btu\per\hour}
|
|
186
|
+
* @symrow{AH_{std}; Standard available heat (baseline); \percent}
|
|
187
|
+
* @symrow{AH_{enriched}; Available heat with O2 enrichment; \percent}
|
|
188
|
+
* @endsymtable
|
|
189
|
+
*/
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* @defgroup o2_enrichment_fuel_savings_formula Fuel Savings with O2 Enrichment Formula
|
|
193
|
+
* @ingroup o2_enrichment_calculator
|
|
194
|
+
* @brief Fuel savings with oxygen enrichment as a percentage.
|
|
195
|
+
* @details The fuel savings represents the percentage reduction in fuel consumption achieved through oxygen enrichment. It is calculated as the difference between baseline and enriched fuel consumption divided by the baseline, expressed as a percentage.
|
|
196
|
+
*
|
|
197
|
+
* @formula{o2-enrichment-fuel-savings; FS = \frac{FC_{base} - FC_{enriched}}{FC_{base}} \cdot 100}
|
|
198
|
+
*
|
|
199
|
+
* @subheading{Symbols}
|
|
200
|
+
* @symtable
|
|
201
|
+
* @symrow{FS; Fuel savings with O2 enrichment; \percent}
|
|
202
|
+
* @symrow{FC_{base}; Baseline fuel consumption; \mega\btu\per\hour}
|
|
203
|
+
* @symrow{FC_{enriched}; Fuel consumption with O2 enrichment; \mega\btu\per\hour}
|
|
204
|
+
* @symrow{100; Conversion factor to percentage; \unitless}
|
|
205
|
+
* @endsymtable
|
|
206
|
+
*/
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @defgroup process_heat Process Heat Utilities
|
|
3
|
+
* @ingroup process_heat_calculators
|
|
4
|
+
* @brief Common utility functions for process heating calculations.
|
|
5
|
+
* @details This module provides reusable functions and helpers for process heating calculations, such as excess air,
|
|
6
|
+
* available heat, and other shared logic. These functions are used across multiple process heat calculators to
|
|
7
|
+
* ensure consistent calculations and reduce code duplication.
|
|
8
|
+
*
|
|
9
|
+
* @heading{Excess Air Calculation}
|
|
10
|
+
* @copydoc process_heat_excess_air_formula
|
|
11
|
+
*
|
|
12
|
+
* @see o2_enrichment_calculator
|
|
13
|
+
* @see solid_liquid_flue_gas_material_calculator
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @defgroup process_heat_excess_air_formula Excess Air from Flue Gas O2
|
|
18
|
+
* @ingroup process_heat
|
|
19
|
+
* @brief Calculate excess air from oxygen concentration in flue gas.
|
|
20
|
+
* @details The excess air is determined from the oxygen concentration in the flue gas using stoichiometric
|
|
21
|
+
* relationships. The calculation accounts for the fact that excess oxygen in flue gas indicates incomplete
|
|
22
|
+
* combustion air utilization. The formula uses empirical factors derived from combustion stoichiometry for
|
|
23
|
+
* typical fuels.
|
|
24
|
+
*
|
|
25
|
+
* This calculation is a fundamental component used throughout process heat calculations, including:
|
|
26
|
+
* - O2 enrichment analysis (@ref o2_enrichment_calculator)
|
|
27
|
+
* - Solid/liquid flue gas material calculations (@ref solid_liquid_flue_gas_material_calculator)
|
|
28
|
+
*
|
|
29
|
+
* The formula provides a quick estimate of excess air based on measured flue gas oxygen content. For more
|
|
30
|
+
* complex fuel compositions, iterative refinement may be applied (as in
|
|
31
|
+
* @ref solid_liquid_flue_gas_material::calculateExcessAirFromFlueGasO2).
|
|
32
|
+
*
|
|
33
|
+
* @formula{process-heat-excess-air; EA = \frac{k_1 \cdot O_{2,flue}}{2 - k_2 \cdot O_{2,flue}}}
|
|
34
|
+
*
|
|
35
|
+
* @subheading{Symbols}
|
|
36
|
+
* @symtable
|
|
37
|
+
* @symrow{EA; Excess air; \unitless}
|
|
38
|
+
* @symrow{O_{2,flue}; Oxygen in flue gas; \unitless}
|
|
39
|
+
* @symrow{k_1; Stoichiometric air factor (8.52381); \unitless}
|
|
40
|
+
* @symrow{k_2; Oxygen flue gas factor (9.52381); \unitless}
|
|
41
|
+
* @endsymtable
|
|
42
|
+
*
|
|
43
|
+
* @subheading{Implementation}
|
|
44
|
+
* The function is implemented in the @ref process_heat namespace:
|
|
45
|
+
* @code{.cpp}
|
|
46
|
+
* double excess_air = process_heat::calculateExcessAir(o2_flue_gas_fraction);
|
|
47
|
+
* @endcode
|
|
48
|
+
*
|
|
49
|
+
* @note Input oxygen should be provided as a fraction (not percentage). For example, 3% O2 should be passed as 0.03.
|
|
50
|
+
*/
|