Homework 3 is focused on assessing your ability to formulate and implement linear programming models.
You have been asked to develop a generating capacity expansion plan for the utility in Riley, NY, which currently has no existing electrical generation infrastructure. The utility can build any of the following plant types: geothermal, coal, natural gas combined cycle gas turbine (CCGT), natural gas combustion turbine (CT), solar, and wind.
Each of these plant types has the following generation data (disclaimer: these are not real):
Type | Investment Cost ($/MW-yr) | Operating Cost ($/MWh) | Capacity Factor | CO$_2$ Emissions (tCO$_2$/MWh) |
---|---|---|---|---|
Geothermal | 457000 | 0 | 0.95 | 0 |
Coal | 268000 | 22 | 1 | 1 |
CCGT | 85000 | 35 | 1 | 0.43 |
CT | 62580 | 45 | 1 | 0.55 |
Wind | 92000 | 0 | see below | 0 |
Solar | 92000 | 0 | see below | 0 |
Assume that all 365 days in a year are equivalent in terms of demand and wind and solar capacity factors (disclaimer: this is obviously stylized and not reflective of reality, but it makes the problem simpler). These are given as:
Hour | Demand (MW) | Wind CF | Solar CF |
---|---|---|---|
1 | 1517 | 0.58 | 0 |
2 | 1486 | 0.57 | 0 |
3 | 1544 | 0.55 | 0 |
4 | 1733 | 0.28 | 0 |
5 | 2058 | 0.14 | 0 |
6 | 2470 | 0.21 | 0 |
7 | 2628 | 0.03 | 0.20 |
8 | 2696 | 0.04 | 0.57 |
9 | 2653 | 0.01 | 0.80 |
10 | 2591 | 0.04 | 0.93 |
11 | 2626 | 0.04 | 0.99 |
12 | 2714 | 0.01 | 0.99 |
13 | 2803 | 0.04 | 0.85 |
14 | 2842 | 0.04 | 0.99 |
15 | 2891 | 0.01 | 0.95 |
16 | 2821 | 0.01 | 0.81 |
17 | 3017 | 0.01 | 0.55 |
18 | 3074 | 0.13 | 0.12 |
19 | 2957 | 0.30 | 0 |
20 | 2487 | 0.45 | 0 |
21 | 2249 | 0.44 | 0 |
22 | 1933 | 0.57 | 0 |
23 | 1684 | 0.55 | 0 |
24 | 1563 | 0.58 | 0 |
The utility will also penalize any non-served demand at the cost of non-served energy, which is set at $1000/MWh.
Reminder: Use round(x; digits=n)
to report values to the appropriate precision!
Your first task is to find a capacity expansion plan which minimizes total costs of investment and operation.
Identify and define all relevant decision variables and their notation.
Formulate the objective function. Make sure to include any needed derivations or justifications for your equation(s).
Derive all relevant constraints (you don't need to write them all out, but they should all be represented through your notation). Make sure to include any needed justifications or derivations. Why is your set of constraints complete?
JuMP
Implement your optimization problem in JuMP
. For this sub-problem, you only need to provide a code block with the problem formulation.
Find the optimal solution. How much should the utility build of each type of generating plant? What will the total cost be? How much energy will be non-served?
Plot how much electricity will be generated under this plan each hour by each type of plant. Make both a line plot for the raw amounts (using plot
) and a stacked area plot to show relative contributions to the total demand (using areaplot
). What are your take-aways?
The NY state legislature is considering enacting an annual CO$_2$ limit, which for the utility would limit the emissions in its footprint to 1.5 MtCO$_2$/yr.
What changes are needed to your linear program from Problem 1? Formulate any different variables, objectives, and/or constraints.
JuMP
Implement the new optimization problem in JuMP
. For this sub-problem, you only need to provide a code block with the problem formulation.
Find the optimal solution. How much should the utility build of each type of generating plant? What is different from your plan from Problem 1?
Plot how much electricity will be generated under this plan each hour by each type of plant. Make both a line plot for the raw amounts (using plot
) and a stacked area plot to show relative contributions to the total demand (using areaplot
). What is different from your plan in Problem 1?
What would the value to the utility be of allowing it to emit an additional 1000 tCO$_2$/yr?
List any external resources consulted, including classmates.