CHP_modelling
|
The BioCHP plant module incorporates the following mass/energy streams and unit process operations:
The model includes the following main processes:
The capacity of the bioCHP plant is defined in terms of the total power output from the biomass boiler, calculated from the electric power and heat demands. The model considers two sold residues, i.e., bottom ash from the boiler and residue from flue gas cleaning containing fly ash and consumed lime.
Important features of the model include:
The module is implemented as a nonlinear C++ model. It allows for multiple different configurations. It is not directly linked to EnergyModelsX
. Instead, a sampling routine for capturing both the costs (capital expenditures and operating expenses) as well as the performance (heat-to-power production and varying power levels) will be implemented in a later stage. This sampling routine allows a tight integration of the model within the EnergyModelsX
framework.
The parameters of the BioCHP plant model can be differentiated into external inputs and internal parameters as defined below.
The first relevant input category is related to the biomass used in the CHP plant. The biomass is included in the module through a combination of strings. It is hence necessary to use the strings specified within the module. The following input is required for the biomass feed:
fuel_def
in the model as vector[string]
): The type of biomass. Multiple biomass types can be provided to the module, e.g., spruce_bark
. spruce_stem
, spruce_bark
, spruce_T&B
, and birch_stem
.Y_fuel[j]
in the model as vector[double]
): The mass fraction of biomass resource \( j \) in the feed. The total mass fraction must sum to 1.YH2O_fuel[j]
in the model as vector[double]
): The moisture content of biomass resource \( j \) as a mass fraction. It corresponds to the water content in the total wet mass.In addition, the input for the desired plant characteristics must be provided. This input can be specified by the user through a text file, although upper bounds may exist for some variables. The following input is required for the plant characteristics:
T_h[k]
in the model as vector[double]
): The temperature level of heat demand \( k \) in °C. As the CHP plant can provide heat at several temperature levels, it is possible to specify them directly.P_h[k]
in the model as vector[double]
): The outlet pressure of heat demand \( k \) in bar gauge. (Provide the pressure by subtracting the ambient pressure. The combination of temperature and pressure determines whether the heat is supplied as steam or as hot water.)Q_h[k]
in the model as vector[double]
): The heat demand at the individual temperature and pressure levels \( k \) in MW.W_el
in the model as double
): The electric power output of the CHP plant in MW.The different biomass types furthermore have a set of internal parameters. These parameters describe the characteristics of the biomass that are fundamental properties of the respective biomass. Adding a new type of biomass requires adding the following parameters:
Yi.fuel[j]
in the model): The atomic composition of biomass \( j \) in kg/kg dry basis, i.e., without any water content.Yash.fuel[j]
in the model): The ash content in biomass \( j \) (kg/kg dry basis).LHV.fuel[j]
in the model): The lower heating value of biomass \( j \) in MJ/kg.Furthermore, process characteristics can be specified internally:
lambda_comb
in the model): The excess air in the combustion process (-).T_stm
in the model): The Boiler steam temperature in °C.P_stm
in the model): The Boiler steam pressure in bar gauge.eta_s[n]
in the model): The isentropic efficiency for steam turbine stage \( n \). (Individual steam turbines of the Rankine cycle can have different isentropic efficiencies.)double
types in the model.M_fuel
): biomass mass flow rate (kg/s)H_fuel
): energy flow rate of biomass (MW)C_inv
): capital expenditures (M$)C_op_d
): annual variable OPEX (M$)C_op_f
): annual fixed OPEX (M$)\tip All outputs are required to be double
type.
The standard output of the model is given as
M_fuel
in the model) is the input mass flow rate of biomass to the BioCHP plant in kg/s.H_fuel
in the model) is the input energy flow rate of biomass to the BioCHP plant in MW.C_inv
in the model) represents the capital expenditures in M$.C_op_d
in the model) represents the annual direct variable operating expenses in M$. C_op_f
in the model) represents the annual fixed operating expenses in M$.double
types in the model.Considering
as inputs, the total energy rate of the input biomass to the CHP plant \( \dot{H}_F \) with \( N_q \) steam extractions to cover heat demands is calculated as
\[ \dot{W}_{el}^{RK} = \sum_{n=0}^{N_q} \left(\dot{H}_F \frac{(q_{stm}^{boiler}/h_{fuel})}{(h_{stm}^{boiler}-h_{bfw}^{boiler})} - \sum_{k=0}^n \frac{\dot{Q}_{k}}{(h_{stm}^{k}-h_{o}^{k})} \right) (h_{in}^{ST_n}-h_{out,s}^{ST_n})\eta_S^{ST_n} \]
with
\[ q_{stm}^{boiler} = \frac{h_{fuel} - h_g^{FGC} - h_{ba}^{boiler} - h_{s}^{FGC}}{(1-q_{loss})}, \]
that is, the difference in mass enthalpy between the biomass fuel and the output from the system (i.e. the flue gas, the fly ash, and the bottom ash).
The value \( q_{loss} \) corresponds in this situation to the fraction of heat loss.
The specific enthalpy of the fuel is calculated through the lower heating values of the individual biomass resources (indexed through \( j \)), excluding the moisture in the resources (indexed through \( H_2O \)):
\[ h_{fuel} = \sum_j Y_j^F\Big[(1-Y_{H_2O,j})\, LHV_j - Y_{H_2O,j}\, h_{v,H_2O}\Big] \]
The specific enthalpy of the combustion gas is calculated through the difference between its temperature and the reference temperature \( T_0 \), the heat capacities \( c_{p,g,j} \) and
\[ h_g^{FGC} = (T_g^{FGC}-T_0) \sum_j \Big\{ Y_j^F\, c_{p,g,j} \Big( Y_{H2O,j} + (1-Y_{H2O,j})\Big[ 1+\lambda_{air}^{comb}\, Y_{C,j}\Big(\frac{W_{air}}{W_C}\Big)(1+x/4-y/2)\Big]\Big) \Big\} \]
Here, \( W_{air} \) and \( W_C \) are the molecular weight of air (28 g/mol) and the atomic weight of carbon (12 g/mol).
The specific enthalpy of the bottom ash is given by
\[ h_{ba}^{boiler} = \Big[c_{ba}\,(T_{ba}^{boiler}-T_0) + Y_{C,ba}\, h_C\Big]\, f_{ba}\,\sum_j \Big[ \dot{Y}_j^F\,(1-Y_{H2O,j})\, Y_{ash,j}^F \Big] \]
and the specific enthalpy of the flue gas per unit mass feedstock is given by
\[ h_{s}^{FGC} = (T_{s}^{FGC}-T_0) \Big[ m_{lime}\, c_{lime} + f_{fa}\, c_{fa}\,\sum_j \dot{Y}_j^F\,(1-Y_{H2O,j})\, Y_{ash,j}^F \Big] \]
Using the calculated value for \( \dot{H}_F \), other material and energy flows for the BioCHP plant are calculated:
\[ \begin{aligned} \dot{M}_F & = \dot{H}_F/h_{fuel} \\ \dot{M}_j^F & = \dot{M}_F \sum_{j=1}^{N_j} Y_j^F \\ \end{aligned} \]
\[ \begin{aligned} \dot{M}_{ba}^{boiler} & = \dot{M}_F \,(1+Y_{C,ba})\, f_{ba}\, \sum_j \Big[ Y_{ash,j}^F\, \dot{Y}_j^F\,(1-Y_{H2O,j}) \Big] \\ \dot{H}_{ba}^{boiler} & = \dot{M}_F\, h_{ba}^{boiler} \\ \end{aligned} \]
\[ \dot{M}_{lime} = \dot{M}_F\, m_{lime,b}\, \sum_j \frac{Y_{S,j} + Y_{Cl,j}}{Y_{S,b}+Y_{Cl,b}} \]
\[ \begin{aligned} \dot{M}_{s}^{FGC} & = \dot{M}_F \Big[ m_{lime} + f_{fa}\, \sum_j \dot{Y}_j^F\,(1-Y_{H2O,j})\, Y_{ash,j}^F \Big] \\ \dot{H}_{s}^{FGC} & = \dot{M}_F\, h_{s}^{FGC} \\ \end{aligned} \]
\[ \begin{aligned} \dot{M}_{g}^{FGC} & = \dot{M}_F\, \sum_j \dot{Y}_j^F\Big[ Y_{H2O,j} + (1-Y_{H2O,j})\Big( 1+\lambda_{air}^{comb}\, Y_{C,j}\Big(\frac{W_{air}}{W_C}\Big)(1+x/4-y/2)\Big) \Big] \\ \dot{H}_{g}^{FGC} & = \dot{M}_F\, h_g^{FGC} \\ \end{aligned} \]
\[ \begin{aligned} \dot{Q}_{stm}^{boiler} & = \frac{\dot{H}_{fuel} - \dot{H}_g^{FGC} - \dot{H}_{ba}^{boiler} - \dot{H}_{s}^{FGC}}{(1-q_{loss})} \\ \dot{M}_{stm}^{boiler} & = \frac{\dot{Q}_{stm}^{boiler}}{(h_{stm}^{boiler}-h_{bfw}^{boiler})} \\ \end{aligned} \]
The installed cost of equipment \( k \) is calculated from
\[ C_{eq,k} = C_{P,k}^B \left(\frac{S_k}{S_k^B}\right)^{n_k} \left(\frac{I}{I_B}\right) f_{inst,k}, \]
where \( C_{P,k}^B \) is the purchase cost for a base-case equipment size \( S_k^B \) in the reference year, \( S_k \) is the actual equipment size, \( n_k \) is the equipment scale factor, and \( f_{inst,k} \) is the installation factor. The ratio \( I/I_B \) is the price index ratio between the actual year and the reference year (e.g. using the Chemical Engineering Plant Cost Index).
The following equipment cost parameters are used:
Equipment | S_k^B | C_{P,k}^B (M$) | f_{inst,k} | n_k | Base year |
---|---|---|---|---|---|
Biomass storage and preparation | 25 t/h | 5.4 | 2.1 | 0.5 | 2007 |
Biomass boiler | 25 t/h | 7.9 | 2.1 | 0.7 | 2007 |
Flue gas cleaning | 67 t/h | 0.18 | 2.7 | 0.7 | 2007 |
Steam turbines and condenser | 1500 MW | 40.5 | 1.3 | 0.7 | 2006 |
Heat Exchanger (heat export) | 100 m² | 0.086 | 2.8 | 0.71 | 2012 |
The total equipment cost is then given by
\[ C_{eq} = \sum_k C_{eq,k} \]
The total capital expenditures (CAPEX) is evaluated in terms of the total permanent investment \( C_{inv} \) from:
\[ C_{inv} = \sum_k C_{eq,k}\,(1+f_{pip}+f_{el}+f_{I\&C})\Big[(1+f_{site}+f_{building})+f_{com}\Big](1+f_{cont,k}+f_{eng,k})(1+f_{dev}) \]
where \( C_{eq,k} \) denotes the installed cost of equipment and the \( f_i \) are cost parameters defined as follows:
The OPEX is defined as the total annual operating costs calculated from
\[ C_{op} = C_{op,d} + C_{op,f}, \]
where:
\[ C_{maint} = 0.05\, C_{eq} \]
\[ C_{ins} = 0.01\, C_{inv} \]
\[ C_{adm} = 0.03\, C_{inv} \]
\[ C_{labor} = \sum_k N_k^{labor}\, c_{b,k}^{labor}\,\Big[1+f_{oh,k}^{labor}\Big] \]
Here, the subscript \( k \) denotes the personnel categories and the parameters are defined as follows:
1) Plant manager:
\[ \begin{aligned} c_{b,k}^{labor} & = 162~k\$/year \\ N_k^{labor} & = 1 \\ f_{oh,k}^{labor} & = 0.0 \\ \end{aligned} \]
2) O&M manager:
\[ \begin{aligned} c_{b,k}^{labor} & = 96~k\$/year \\ N_k^{labor} & = \begin{cases} 1 ,& \text{if} ~ \dot{M}_F < 10~\text{t/h} \\ 2 ,& \text{if} ~ \dot{M}_F > 10~\text{t/h} \\ \end{cases} \\ f_{oh,k}^{labor} & = 1.2 \\ \end{aligned} \]
3) O&M engineer:
\[ \begin{aligned} c_{b,k}^{labor} & = 88~k\$/year \\ N_k^{labor} & = \begin{cases} 1 ,& \text{if} ~ \dot{M}_F < 10~\text{t/h} \\ 2 ,& \text{if} ~ \dot{M}_F > 10~\text{t/h} \\ \end{cases} \\ f_{oh,k}^{labor} & = 1.2 \\ \end{aligned} \]
4) Shift operator:
\[ \begin{aligned} c_{b,k}^{labor} & = 37~k\$/year \\ N_k^{labor} & = \begin{cases} 3 ,& \text{if} ~ \dot{M}_F < 10~\text{t/h} \\ 6 ,& \text{if} ~ \dot{M}_F > 10~\text{t/h} \\ \end{cases} \\ f_{oh,k}^{labor} & = 1.3 \\ \end{aligned} \]
bioCHP.cpp
contains the C++ function to interface with EMX.
It has the following structure:
├── Definitions.h ├── Costs.h ├── Flows │ ├── Flow_definitions.h │ ├── Flow_calculations.h │ └── Thermodynamics │ └── Water_thermodynamics.h └── Processes ├── bioCHP_plant.h ├── Combustion.h ├── Rankine_cycle.h └── Flue_gas_cleaning.h