Demand Forecasting
Accurate and precise prediction of electricity demand is necessary to have a useful plan for electricity generation. If electricity required is unknown, under-production or production surplus may occur, respectively leading to outages and reduced cost-effectiveness. The process of taking historic data and using it to predict future values is known as forecasting. We researched and implemented forecasting methods in R to predict KCPL’s load every half hour for a week in August 2014.
Load Allocation
We used binary integer programming to find the optimal solution to the unit commitment problem. The model determines when power plants should be turned on in order to meet the expected demand and minimize cost. The model outputs the cost, when plants should be starting (most plants require multiple time intervals to power up), and when the plants should actually be running.
Decision Variables
The decision variables represent the state changes as our model searches for the optimal solution. We have two categories of decision variables: "on" and "ramping". The model is binary, so both variable categories take on a value of 1 or 0. If a plant is turned on at a particular time interval, its "on" variable will equal 1, and if the plant is turned off it will equal 0. The same principle applies for the ramping variable: if a plant is powering up for future use, it will equal 1, 0 otherwise. Each plant has both "on" and "ramping" decision variables for every time interval.
Objective Function
In our model, the objective function is equal to the sum of all costs of running the power plants and starting them up, and this is what our model seeks to minimize. Each plant has different fixed costs and variable costs for turning on and running the plant. By minimizing the cost while meeting the constraints, the model finds the optimal solution for meeting the forecasted electricity demand.
Constraints
Our constraints are inequalities that force the model to meet the electricity demand and power up the plants for the required number of time intervals. Our model has the following constraints:
Subscripts
Variables and parameters have subscripts to indicate which quantities they are associated with and to present more compact equations.
Decision Variables
The binary decision variables represent whether a plant is on or ramping at a particular interval.
Parameters
The parameters are the inputs the serve to characterize variables or create constraints.
Cost Parameters
Operational Parameters
Initial Conditions
We created initial conditions based on what was happening before interval 1. We assumed that all plants were on immediately before interval 1, which gave the model the option of turning any plant on in interval 1 with no startup cost.
Objective Function
Decision Variables
The decision variables represent the state changes as our model searches for the optimal solution. We have two categories of decision variables: "on" and "ramping". The model is binary, so both variable categories take on a value of 1 or 0. If a plant is turned on at a particular time interval, its "on" variable will equal 1, and if the plant is turned off it will equal 0. The same principle applies for the ramping variable: if a plant is powering up for future use, it will equal 1, 0 otherwise. Each plant has both "on" and "ramping" decision variables for every time interval.
Objective Function
In our model, the objective function is equal to the sum of all costs of running the power plants and starting them up, and this is what our model seeks to minimize. Each plant has different fixed costs and variable costs for turning on and running the plant. By minimizing the cost while meeting the constraints, the model finds the optimal solution for meeting the forecasted electricity demand.
Constraints
Our constraints are inequalities that force the model to meet the electricity demand and power up the plants for the required number of time intervals. Our model has the following constraints:
- Load Constraints: These constraints account for electricity demand. There must be enough plants on at each time interval to meet the forecasted electricity demand.
- Ramping Constraints: These constraints require that plants power up for a set number of intervals prior to turning on. For example, the largest coal plant must power up for 18 intervals before it can turn on, while the smallest natural gas plants can turn on in a single interval.
- Binary Constraints: These constraints require that all of the decision variables be either 0 or 1.
Subscripts
Variables and parameters have subscripts to indicate which quantities they are associated with and to present more compact equations.
- i. Represents the particular power plant
- j. Represents the particular time interval, from 1 to 48 for a day and from 1 to 336 for a week
Decision Variables
The binary decision variables represent whether a plant is on or ramping at a particular interval.
- xij. Represents the on status of power plant i in interval j
- yij. Represents the ramping status of power plant i in interval j
Parameters
The parameters are the inputs the serve to characterize variables or create constraints.
Cost Parameters
- OMFix,i. Fixed operating and maintenance cost of power plant i. ($/MW)
- OMVar,i. Variable operating and maintenance cost of power plant i. ($/MWh)
- STARTUpi The startup cost of power plant i. ($)
- FUELi The cost of fuel for power plant i. ($/BTU)
- Lf. Levelizing Factor, accounts for inflation over time. (Unit-less)
Operational Parameters
- PRi Rated power (capacity) for power plant i. (MW)
- Heati Head rate associated with the type of fuel used in generation technology i.
- Loadj Forecasted electricity demand for time interval j. (MWh)
- Rampi The required number of ramping intervals for power plant i. (Unit-less)
Initial Conditions
We created initial conditions based on what was happening before interval 1. We assumed that all plants were on immediately before interval 1, which gave the model the option of turning any plant on in interval 1 with no startup cost.
Objective Function
The objective function to be minimized is the sum of the costs over all time intervals j and all plants i. The first term is the sum of the fixed costs, which are incurred regardless of whether the plants are running. The next term is the variable costs, which are multiplied by the on/off status because they are only incurred if the plant is on. The two variable costs are the variable operating cost and the fuel cost. All of the cost terms are divided by 2 because the costs are hourly costs and the intervals are half hourly. The final term is the startup cost of the plant, which is divided over the each of the intervals the plant is ramping. The cost is multiplied by the ramping status of the plant.
Constraints
Load
Constraints
Load
for all j
Loadj is the demand of interval j, which must be less than or equal to the sum of the output of all the plants i. The output of plant i for interval j is the on/off status of plant i in interval j multiplied by the half hourly capacity of plant i.
Ramping
Loadj is the demand of interval j, which must be less than or equal to the sum of the output of all the plants i. The output of plant i for interval j is the on/off status of plant i in interval j multiplied by the half hourly capacity of plant i.
Ramping
for all j
Rampi is the number of continuous intervals that plant i must be ramping in order to turn on. Rampi is multiplied by the on/off status of plant i. This is due to the fact that if the plant is off it does not need to meet the ramping constraint. If the plant is on there are two ways it can meet the constraint. First, the sum of the previous Rampi intervals can be greater than or equal to Rampi. Second, the plant can be running during the previous interval, in which case Rampi is added to the right hand side of the equation. In both of these cases the plant will be eligible to turn on.
Rampi is the number of continuous intervals that plant i must be ramping in order to turn on. Rampi is multiplied by the on/off status of plant i. This is due to the fact that if the plant is off it does not need to meet the ramping constraint. If the plant is on there are two ways it can meet the constraint. First, the sum of the previous Rampi intervals can be greater than or equal to Rampi. Second, the plant can be running during the previous interval, in which case Rampi is added to the right hand side of the equation. In both of these cases the plant will be eligible to turn on.