Skip to content

Commit

Permalink
some updates to help render math in github
Browse files Browse the repository at this point in the history
  • Loading branch information
GabrielSoto-INL committed Jun 24, 2024
1 parent f4ddbc0 commit 5a6f6ec
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 15 deletions.
24 changes: 12 additions & 12 deletions doc/theory_manual/ComponentCharacterization/HERON_Cashflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,28 +119,28 @@ $$R_p \in \{3,5,7,10,15\}. $$

According to MACRS, we would have a depreciation rate $\beta_{p,y}$ per year. For example, for $R_p=3$ the rates would be

$$ \beta_{p,y}\Big|_{{}_{R_p=3}} =
$$\beta_{p,y}\Big|_{R_p=3} =
\begin{cases}
33.33\hspace{0.5cm} \text{if } y = nL_p + 1 \ \forall \ n \in \mathbb{N}_p\\
44.45\hspace{0.5cm} \text{if } y = nL_p + 2 \ \forall \ n \in \mathbb{N}_p\\
14.81\hspace{0.5cm} \text{if } y = nL_p + 3 \ \forall \ n \in \mathbb{N}_p\\
7.41\hspace{0.7cm} \text{if } y = nL_p + 4\ \forall \ n \in \mathbb{N}_p\\
0\hspace{0.75cm} \text{elsewhere }
33.33\hspace{0.5cm} \ \ \text{if } y = nL_p + 1 \ \forall \ n \in \mathbb{N}_p\\
44.45\hspace{0.5cm} \ \ \text{if } y = nL_p + 2 \ \forall \ n \in \mathbb{N}_p\\
14.81\hspace{0.5cm} \ \ \text{if } y = nL_p + 3 \ \forall \ n \in \mathbb{N}_p\\
7.41\hspace{0.7cm} \ \ \text{if } y = nL_p + 4\ \forall \ n \in \mathbb{N}_p\\
0\hspace{0.75cm} \ \ \text{elsewhere }
\end{cases}$$

Note that no depreciation is applied during the construction year $y=0$. Users can alternatively apply custom depreciation rate schedules. To model a depreciation asset, TEAL applies two additional cash flows to the one-time CAPEX. First is a positive cash flow representing the tax credit that helps recuperate the depreciation. It is untaxed, but inflation *is* applied:

$$B^+_{p,y} = \beta_{p,y}\nu^B_{p,y}A_{p,0}. $$
$$B_{p,y}^+ = \beta_{p,y}\nu^B_{p,y}A_{p,0}.$$

Note that within $A_{p,0}$ is the term $\epsilon_{p,y}^A$ which applies the capital cost ONLY on the first year of construction (and subsequent reconstructions). In TEAL, the driver of the cash flow is the entire first year cash flow. Since $R_p \leq L_p$ only a singular capital cost is applied per component lifetime. For a more complete definition, we would repeat the depreciation process again per lifetime (this is accounted for in the definition of $\beta$).

A second, negative cash flow is also applied to represent the depreciation of the asset's value. This is similar to the first positive cash flow but it is taxed:

$$B^-_{p,y} = \beta_{p,y}\lambda^B_{p,y}A_{p,0}. $$
$$B_{p,y}^- = \beta_{p,y}\lambda^B_{p,y}A_{p,0}.$$

If we collect all like terms, the actual CAPEX cash flow will look like:

$$ \begin{align*} \sum_{j=\{A,B\},\ k=\{+,-\}} F_j^k = -\lambda^A_{p,y}A_{p,y} + B^+_{p,y} - B^-_{p,y} &= -\lambda^A_{p,y}A_y + \beta_{p,y}\nu^B_{p,y}A_{p,0} - \beta_{p,y}\lambda^B_{p,y}A_{p,0} \\
$$\begin{align*} \sum_{j=\{A,B\},\ k=\{+,-\}} F_j^k = -\lambda_{p,y}A_{p,y}^A + B_{p,y}^+ - B_{p,y}^- &= -\lambda_{p,y}^A A_y + \beta_{p,y}\nu^B_{p,y}A_{p,0} - \beta_{p,y}\lambda^B_{p,y}A_{p,0} \\
&= -\lambda^A_{p,y}A_y + \beta_{p,y}(\nu^B_{p,y} - \lambda^B_{p,y})A_{p,0} \\
&= -\lambda^A_{p,y}A_y + \beta_{p,y}\nu^B_{p,y}(1 - \tau^B_{p,y})A_{p,0}
\end{align*}$$
Expand All @@ -152,15 +152,15 @@ If levelized cost of capital is selected, we should also collect the amortizatio

There are fixed yearly expenditures that are typically just indexed by component for all years after first "construction" year:

$$ \hat{F}^{yearly}_{p,y} \equiv \Gamma_{p,y>0} = \alpha^{\Gamma}_p \left(\frac{c_p}{c_p^{\Gamma\prime}} \right)^{\chi_p^\Gamma} $$
$$\hat{F}_{p,y}^\text{yearly} \equiv \Gamma_{p,y>0} = \alpha_p^\Gamma \left(\frac{c_p}{c_p^{\Gamma\prime}} \right)^{\chi_p^\Gamma}$$

or

$$ \Gamma_{p,y} = \epsilon_y \alpha^{\Gamma}_p \left(\frac{c_p}{c_p^{\Gamma\prime}} \right)^{\chi_p^\Gamma} = \epsilon_y\alpha^{\Gamma}_p \left(\frac{c_p}{c_p^{\Gamma\prime}} \right)^{\chi_p^\Gamma} $$
$$\Gamma_{p,y} = \epsilon_y \alpha^{\Gamma}_p \left(\frac{c_p}{c_p^{\Gamma\prime}} \right)^{\chi_p^\Gamma} = \epsilon_y\alpha^{\Gamma}_p \left(\frac{c_p}{c_p^{\Gamma\prime}} \right)^{\chi_p^\Gamma} $$

where we define a parameter to zero-out terms in year 0

$$ \epsilon_{y} =
$$\epsilon_{y} =
\begin{cases}
0\hspace{0.5cm} \text{if } y = 0 \ \forall \ y \in \mathbb{Y}\\
1\hspace{0.5cm} \text{elsewhere }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ For the different component types, the dispatch activity is tracked via the foll

The capacities are applied as a global upper bound on the dispatch when defined as flexible:

$$ m_p \leq D_{p,x,y,u,t} \leq f_{p,y,u,t} c_p \ \forall \ \begin{cases} p \in \mathbb{P}^\prime \\ x\in \mathbb{X} \\ y\in \mathbb{Y} \\u\in \mathbb{U}_Y \\t\in \mathbb{T} \end{cases} $$
$$ m_p \leq D_{p,x,y,u,t} \leq f_{p,y,u,t} c_p \ \forall \ \begin{cases} p \in \mathbb{P}^\prime \\ x\in \mathbb{X} \\ y\in \mathbb{Y} \\ u\in \mathbb{U}_Y \\ t\in \mathbb{T} \end{cases} $$

The minimum $m_p$ defaults to 0 unless specified; the capacity factor $f_{p,y,u,t}$ defaults to 1. In the default case, the bounds on dispatch are:

$$ 0 \leq D_{p,x,y,u,t} \leq c_p \ \forall \ \begin{cases} p \in \mathbb{P}^\prime \\ x\in \mathbb{X} \\ y\in \mathbb{Y} \\u\in \mathbb{U}_Y \\t\in \mathbb{T} \end{cases} $$
$$ 0 \leq D_{p,x,y,u,t} \leq c_p \ \forall \ \begin{cases} p \in \mathbb{P}^\prime \\ x\in \mathbb{X} \\ y\in \mathbb{Y} \\ u\in \mathbb{U}{}_Y \\ t\in \mathbb{T} \end{cases} $$

Otherwise the components will just dispatch at a fixed level based on their capacity. We can also define the specific collection of dispatch actions taken within a specific scenario (i.e., for a given stochastic profile) as

Expand All @@ -66,6 +66,6 @@ where we're not exactly indexing per scenario, it's more of a response of the di

The optimal dispatch is defined as one which maximizes an inner objective function as shown below:

$${}^s\mathbf{D}^\star_{p,x,\hat{y},\hat{u},t} = \argmax_D \ \sum_{P,X,T_{U}} {}^s\hat{F}_{hourly} \Big|_{\hat{u},\hat{y}}$$
$${}^s\mathbf{D}^\star_{p,x,\hat{y},\hat{u},t} = \underset{D}{\text{arg max}} \ \sum_{P,X,T_{U}} {}^s\hat{F}_{hourly} \Big|_{\hat{u},\hat{y}}$$

Here, the objective is to maximize the sum of all *hourly* cashflows for all components, all resources, and all times per segment **for each** cluster/segment, **for each** year, **for each** scenario.

0 comments on commit 5a6f6ec

Please sign in to comment.