|
| 1 | +\documentclass{article} |
| 2 | +% |
| 3 | +\usepackage{fullpage} |
| 4 | +\usepackage{amsmath} |
| 5 | +\usepackage{amssymb} |
| 6 | + |
| 7 | +\usepackage{IEEEtrantools} |
| 8 | +\usepackage{filecontents} |
| 9 | + |
| 10 | + |
| 11 | +\newcommand{\cT}{{\mathcal T}} |
| 12 | +\newcommand{\cS}{{\mathcal S}} |
| 13 | +\newcommand{\cG}{{\mathcal G}} |
| 14 | +\newcommand{\cL}{{\mathcal L}} |
| 15 | +\newcommand{\cW}{{\mathcal W}} |
| 16 | +\newcommand{\bbR}{{\mathbb R}} |
| 17 | +\newcommand{\uP}{\underline{P}} |
| 18 | +\newcommand{\oP}{\overline{P}} |
| 19 | + |
| 20 | +\newcommand\mydescriptionopt{ |
| 21 | + \IEEEsetlabelwidth{$g \in \cG_{\textit{off}}^0$]} |
| 22 | + \IEEEusemathlabelsep |
| 23 | +} |
| 24 | +\begin{document} |
| 25 | + |
| 26 | +\section{Nomenclature} |
| 27 | +\subsection{Indices and Sets} |
| 28 | +\begin{IEEEdescription}[\mydescriptionopt] |
| 29 | + \item[$g \in \cG$] Set of thermal generators. |
| 30 | + \item[$g \in \cG_{\textit{on}}^0$] Set of thermal generators which are initially committed (on). |
| 31 | + \item[$g \in \cG_{\textit{off}}^0$] Set of thermal generators which are not initially committed (off). |
| 32 | + \item[$w \in \cW$] Set of renewable generators. |
| 33 | + \item[$t \in \cT$] Hourly time steps: $1, \ldots, T$, $T$ = {\tt time\_periods} |
| 34 | + \item[$l \in \cL_g$] Piecewise production cost intervals for thermal generator $g$: $1, \ldots, L_g$. |
| 35 | + \item[$s \in \cS_g$] Startup categories for thermal generator $g$, from hottest ($1$) to coldest ($S_g$): $1, \ldots, S_g$. |
| 36 | +\end{IEEEdescription} |
| 37 | + |
| 38 | +\subsection{System Parameters} |
| 39 | +\begin{IEEEdescription}[\mydescriptionopt] |
| 40 | + \item[$D(t)$] Load (demand) at time $t$ (MW), {\tt demand}. |
| 41 | + \item[$R(t)$] Spinning reserve at time $t$ (MW), {\tt reserves}. |
| 42 | +\end{IEEEdescription} |
| 43 | + |
| 44 | +\subsection{Thermal Generator Parameters} |
| 45 | +\begin{IEEEdescription}[\mydescriptionopt] |
| 46 | + \item[$CS_g^s$] Startup cost in category $s$ for generator $g$ (\$), {\tt startup['cost']}. |
| 47 | + \item[$CP_g^l$] Cost of operating at piecewise generation point $l$ for generator $g$ (MW), {\tt piecewise\_production['cost']}. |
| 48 | + \item[$DT_g$] Minimum down time for generator $g$ (h), {\tt time\_down\_minimum}. |
| 49 | + \item[$DT^0_g$] Number of time periods the unit has been off prior to the first time period for generator $g$, {\tt time\_down\_t0}. |
| 50 | + \item[$\oP_g$] Maximum power output for generator $g$ (MW), {\tt power\_output\_maximum}. |
| 51 | + \item[$\uP_g$] Minimum power output for generator $g$ (MW), {\tt power\_output\_minimum}. |
| 52 | + \item[$P_g^0$] Power output for generator $g$ (MW) in the time period prior to t=1, {\tt power\_output\_t0}. |
| 53 | + \item[$P_g^l$] Power level for piecewise generation point $l$ for generator $g$ (MW); $P^1_g = \uP_g$ and $P^{L_g}_g = \oP_g$, {\tt piecewise\_production['mw']}. |
| 54 | + \item[$RD_g$] Ramp-down rate for generator $g$ (MW/h), {\tt ramp\_down\_limit}. |
| 55 | + \item[$RU_g$] Ramp-up rate for generator $g$ (MW/h), {\tt ramp\_up\_limit}. |
| 56 | + \item[$SD_g$] Shutdown capability for generator $g$ (MW), {\tt ramp\_shutdown\_limit}. |
| 57 | + \item[$SU_g$] Startup capability for generator $g$ (MW), {\tt ramp\_startup\_limit} |
| 58 | + \item[$TS^s_g$] Time offline after which the startup category $s$ becomes active (h), {\tt startup['lag']}. |
| 59 | + \item[$UT_g$] Minimum up time for generator $g$ (h), {\tt time\_up\_minimum}. |
| 60 | + \item[$UT^0_g$] Number of time periods the unit has been on prior to the first time period for generator $g$, {\tt time\_up\_t0}. |
| 61 | + \item[$U_g^0$] Initial on/off status for generator $g$, $U_g^0=1$ for $g \in \cG_{\textit{on}}^0$, $U_g^0=0$ for $g \in \cG_{\textit{off}}^0$, {\tt unit\_on\_t0}. |
| 62 | + \item[$U_g$] Must-run status for generator $g$, {\tt must\_run}. |
| 63 | +\end{IEEEdescription} |
| 64 | + |
| 65 | +\subsection{Renewable Generator Parameters} |
| 66 | +\begin{IEEEdescription}[\mydescriptionopt] |
| 67 | + \item[$\oP_w(t)$] Maximum renewable generation available from renewable generator $w$ at time $t$ (MW), {\tt power\_output\_maximum}. |
| 68 | + \item[$\uP_w(t)$] Minimum renewable generation available from renewable generator $w$ at time $t$ (MW), {\tt power\_output\_minimum}. |
| 69 | +\end{IEEEdescription} |
| 70 | + |
| 71 | + |
| 72 | +\subsection{Variables} |
| 73 | +\begin{IEEEdescription}[\mydescriptionopt] |
| 74 | + \item[$c_g(t)$] Cost of power produced above minimum for thermal generator $g$ at time $t$ (MW), $\in \bbR$. |
| 75 | + \item[$p_g(t)$] Power above minimum for thermal generator $g$ at time $t$ (MW), $\geq 0$. |
| 76 | + \item[$p_w(t)$] Renewable generation used from renewable generator $w$ at time $t$ (MW), $\geq 0$. |
| 77 | + \item[$r_g(t)$] Spinning reserves provided by thermal generator $g$ at time $t$ (MW), $\geq 0$. |
| 78 | + \item[$u_g(t)$] Commitment status of thermal generator $g$ at time $t$, $\in \{0,1\}$. |
| 79 | + \item[$v_g(t)$] Startup status of thermal generator $g$ at time $t$, $\in \{0,1\}$. |
| 80 | + \item[$w_g(t)$] Shutdown status of thermal generator $g$ at time $t$, $\in \{0,1\}$. \ |
| 81 | + \item[$\delta^s_g(t)$] Startup in category $s$ for thermal generator $g$ at time $t$, $\in \{0,1\}$. |
| 82 | + \item[$\lambda_g^l(t)$] Fraction of power from piecewise generation point $l$ for generator $g$ at time $t$ (MW), $\in [0,1]$. |
| 83 | +\ |
| 84 | +\end{IEEEdescription} |
| 85 | + |
| 86 | +\section{Model Description} |
| 87 | +Below we describe the unit commitment model given by~\cite{morales2013tight}, with the piecewise production cost description from~\cite{sridhar2013locally}. |
| 88 | +The unit commitment problem can then be formulated as: |
| 89 | +{\allowdisplaybreaks |
| 90 | + \begin{align} |
| 91 | + & \text{min } \sum_{g \in \cG} \sum_{t \in \cT} \left( c_g(t) + CP_g^1 \, u_g(t) + \sum_{s = 1}^{S_g} \left( CS^s_g \delta^s(t) \right) \right) \label{eq:obj} %\tag{UC} %\\ |
| 92 | + %\text{subject to } & & \nonumber |
| 93 | + \end{align} |
| 94 | + subject to: |
| 95 | + \begin{align} |
| 96 | + & \sum_{g \in \cG} \left( p_g(t) + \uP_g u_g(t) \right) + \sum_{w\in\cW} p_w(t) = D(t) & \hspace{5cm} \forall t \in \cT \label{eq:UCDemand} \\ |
| 97 | + & \sum_{g \in \cG} r_g(t) \geq R(t) & \forall t \in \cT \label{eq:UCReserves} |
| 98 | + \end{align} |
| 99 | + \begin{align} |
| 100 | + & \sum_{t=1}^{\min\{UT_g - UT_g^0, T\}} (u_g(t) - 1) = 0 & \hspace{3cm} \forall g \in \cG_{\textit{on}}^0 \label{eq:initialUpRequirement} \\ |
| 101 | + & \sum_{t=1}^{\min\{DT_g - DT_g^0, T\}} u_g(t) = 0 & \forall g \in \cG_{\textit{off}}^0 \label{eq:initialDownRequirement} \\ |
| 102 | + & u_g(1) - U_g^0 = v_g(1) - w_g(1) & \forall g \in \cG \label{eq:LogicalInitial} \\ |
| 103 | + & \sum_{s=1}^{S_g-1} \sum_{t=\max\{1, TS^{s+1}_g - DT^0_g + 1\}}^{TS^{s+1}_g -1} \delta^s_g(t) = 0 & \forall g \in \cG \label{eq:STIInit}\\ |
| 104 | + & p_g(1) + r_g(1) - U_g^0(P_g^0-\uP_g) \leq RU_g & \forall g \in \cG \label{eq:RampUpInit} \\ |
| 105 | + & U_g^0(P_g^0-\uP_g) - p_g(1) \leq RD_g & \forall g \in \cG \label{eq:RampDownInit} \\ |
| 106 | + & U_g^0(P_g^0-\uP_g) \leq (\oP_g - \uP_g) U_g^0 - \max\{(\oP_g - SD_g),0\} w_g(1) & \forall g \in \cG \label{eq:MaxOutput2Init} |
| 107 | + \end{align} |
| 108 | + \begin{align} |
| 109 | + & u_g(t) \geq U_g & \hspace{1cm} \forall t \in \cT, \, \forall g \in \cG \label{eq:MustRun} \\ |
| 110 | + & u_g(t) - u_g(t-1) = v_g(t) - w_g(t) & \forall t \in \cT\setminus\{1\}, \, \forall g \in \cG \label{eq:Logical} \\ |
| 111 | + & \sum_{i= t-UT_g + 1}^t v_g(i) \leq u_g(t) & \forall t \in \{UT_g, \ldots, T\}, \, \forall g \in \cG \label{eq:Startup} \\ |
| 112 | + & \sum_{i= t-DT_g + 1}^t w_g(i) \leq 1 - u_g(t) & \forall t \in \{DT_g, \ldots, T\}, \, \forall g \in \cG \label{eq:Shutdown} \\ |
| 113 | + & \delta^s_g(t) \leq \sum_{i = TS^s_g}^{TS^{s+1}_g-1} w_g(t-i) & \forall t \in \{TS^{s+1}_g,\ldots,T\},\,\forall s \in \cS_g\!\setminus\!\{S_g\},\, \forall g \in \cG \label{eq:STISelect} \\ |
| 114 | + & v_g(t) = \sum_{s = 1}^{S_g} \delta^s_g(t) & \forall t \in \cT,\, \forall g \in \cG \label{eq:STILink} |
| 115 | + \end{align} |
| 116 | + \begin{align} |
| 117 | + & p_g(t) + r_g(t) \leq (\oP_g - \uP_g) u_g(t) - \max\{(\oP_g - SU_g),0\} v_g(t) & \forall t \in \cT, \, \forall g \in \cG \label{eq:MaxOutput1} \\ |
| 118 | + & p_g(t) + r_g(t) \leq (\oP_g - \uP_g) u_g(t) - \max\{(\oP_g - SD_g),0\} w_g(t+1) & \forall t \in \cT\setminus \{T\}, \, \forall g \in \cG \label{eq:MaxOutput2} \\ |
| 119 | + & p_g(t) + r_g(t) - p_g(t-1) \leq RU_g & \forall t \in \cT\setminus\{1\}, \, \forall g \in \cG \label{eq:RampUp} \\ |
| 120 | + & p_g(t-1) - p_g(t) \leq RD_g & \forall t \in \cT\setminus\{1\}, \, \forall g \in \cG \label{eq:RampDown} |
| 121 | + \end{align} |
| 122 | + \begin{align} |
| 123 | + & p_g(t) = \sum_{l \in \cL_g} (P_g^l - P_g^1) \lambda_g^l(t) &\hspace{5cm} \forall t \in \cT, \, \forall g \in \cG \label{eq:PiecewiseParts} \\ |
| 124 | + & c_g(t) = \sum_{l \in \cL_g} (CP_g^l - CP_g^1) \lambda_g^l(t) & \forall t \in \cT, \, \forall g \in \cG \label{eq:PiecewisePartsCost} \\ |
| 125 | + & u_g(t) = \sum_{l \in \cL_g} \lambda_g^l(t) & \forall t \in \cT, \forall g \in \cG \label{eq:PiecewiseLimits} |
| 126 | + \end{align} |
| 127 | + \begin{align} |
| 128 | + & \uP_w(t) \leq p_w(t) \leq \oP_w(t) &\hspace{6cm} \forall t \in \cT, \, \forall w \in \cW \label{eq:WindLimit} |
| 129 | + \end{align} |
| 130 | +}% |
| 131 | +Note that in constraints~\eqref{eq:initialUpRequirement}, \eqref{eq:initialDownRequirement}, and \eqref{eq:STIInit}, we use the convention that empty sums are $0$. |
| 132 | + |
| 133 | +%% add the bibtex |
| 134 | +\begin{filecontents*}{MODEL.bib} |
| 135 | +@article{morales2013tight, |
| 136 | + title={Tight and compact {MILP} formulation for the thermal unit commitment problem}, |
| 137 | + author={Morales-Espa{\~n}a, G. and Latorre, J. M. and Ramos, A.}, |
| 138 | + journal={IEEE Transactions on Power Systems}, |
| 139 | + volume={28}, |
| 140 | + number={4}, |
| 141 | + pages={4897--4908}, |
| 142 | + year={2013}, |
| 143 | + publisher={IEEE} |
| 144 | +} |
| 145 | +@article{sridhar2013locally, |
| 146 | + title={Locally ideal formulations for piecewise linear functions with indicator variables}, |
| 147 | + author={Sridhar, Srikrishna and Linderoth, Jeff and Luedtke, James}, |
| 148 | + journal={Operations Research Letters}, |
| 149 | + volume={41}, |
| 150 | + number={6}, |
| 151 | + pages={627--632}, |
| 152 | + year={2013}, |
| 153 | + publisher={Elsevier} |
| 154 | +} |
| 155 | +\end{filecontents*} |
| 156 | + |
| 157 | +\bibliographystyle{acm} |
| 158 | +\bibliography{MODEL} |
| 159 | + |
| 160 | +\end{document} |
0 commit comments