Allam Cycle
GenX.allamcycle_commit!
— Methodallamcycle_commit!(EP::Model, inputs::Dict, setup::Dict)
This function defines the operating constraints for allam cycle power plants subject to unit commitment constraints on power plant start-ups and shut-down decision ($y \in UC$). The capacity investment decisions and commitment and cycling (start-up, shut-down) of ASU and sCO2 turbine in allam cycle power systems are similar to constraints defined in thermal_commit.jl Operaional constraints include start-up, max ramping up/donw, max up/down time, min power level, and operational reserves.
GenX.allamcycle_no_commit!
— Methodallamcycle_no_commit!(EP::Model, inputs::Dict, setup::Dict)
This function defines the operating constraints for allam cycle power plants subject to unit commitment constraints on power plant start-ups and shut-down decision ($y \in UC$). The capacity investment decisions and commitment and cycling (start-up, shut-down) of ASU and sCO2 turbine in allam cycle power systems are similar to constraints defined in thermalnocommit.jl Operaional constraints include max ramping up/donw, min power level, and operational reserves.
GenX.allamcyclelox!
— Methodallamcyclelox!(EP::Model, inputs::Dict, setup::Dict)
This module models the Allam cycle with or without liquid oxygen storage (LOX) tank. In this module, the key components of Allam cycle w/ LOX are break down into mutiple components with independent capacity decisions.
Important expressions
Power balance within an Allam Cycle resource
Consumption of electricity by Air Seperation Unit (ASU) $y, asu$ in time $t$, denoted by $\Pi_{y,asu,t}$, and auxiliary load, denoted by $\Pi_{y,aux,t}$, is subtracted from power generation from the sCO2 turbines, denoted by $\Pi_{y,sco2turbine,t}$
Power balance between an Allam Cycle resource and the grid
Net power output from Allam Cycle $y$ in time $t$ (net generation - electricity charged from the grid, denoted by $\Theta_{y,z}$), denoted by $\Pi_{y,z}^{net}$, is added to power balance expression ePowerBalance
\[\begin{aligned} \Pi_{y,z}^{net} = \Pi_{y,sco2turbine,t} - \Pi_{y,asu,t} - \Pi_{y,aux,t} - \Theta_{y,t} \end{aligned}\]
Important constraints
Liquid oxygen storage mass balance
The state of the liquid oxygen storage at hour $h$ is determined by the state of the liquid oxygen storage at hour $h-1$, and of the production and consumption of liquid oxygen at hour $h$.
\[\begin{aligned} \Gamma_{y,t} = \Gamma_{y,t-1} + \Pi_{y,asu,t} \cdot {O2\_production\_rate_{y}} - \frac{\Pi_{y,sco2turbine,t}}{O2\_consumption\_rate_{y}} \end{aligned}\]
Power consumption by ASU
When the electricity prices are low, ASU can also use electricity from the grid ($\Theta_{y,z}$) to produce oxygen and the energy consumption ($\Pi_{y,aux,z}$) by ASU has to be equal or greater than $\Theta_{y,z}$.
\[\begin{aligned} \Pi_{y,aux,t} \geq \Theta_{y,t} \end{aligned}\]
Maximum power output
All the allam cycle output should be less than the capacity
\[\begin{aligned} \Pi_{y,sco2turbine,t} &\leq \Omega_{y,sco2turbine} \\ \Pi_{y,aux,t} &\leq \Omega_{y,aux} \\ \Theta_{y,lox,t}^{in} &\leq \Omega_{y,lox} \\ \Theta_{y,lox,t}^{out} &\leq \Omega_{y,lox} \end{aligned}\]
Charging and discharging rate of LOX
Charging and discharging rate of LOX is determined by the capacity ($\omega_{y,lox}$) and duration ($Duration_{y}$) of LOX
\[\begin{aligned} \frac{\Omega_{y,lox}}{Duration_{y}} \geq \Theta_{y,lox,t}^{in} \\ \frac{\Omega_{y,lox}}{Duration_{y}} \geq \Theta_{y,lox,t}^{out} \end{aligned}\]
Note: Check allamcycle_commit!(EP, inputs, setup)
and allamcycle_commit!(EP, inputs, setup)
for specific investment and operational constraints related to unit commitment.
GenX.write_allam_capacity
— Methodwrite_allam_capacity(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
This function writes the different capacities for the Allam Cycle LOX technologies (starting capacities or, existing capacities, retired capacities, and new-built capacities) to the capacity_allam_cycle_lox.csv
file.
GenX.write_allam_output
— Methodwrite_allam_output(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
This function writes the power output from each component of an Allam Cycle LOX resource to the output_allam_cycle_lox.csv
file.