ECE 558 - Spring 2021
Power System Reliability
Final Project - Due 10:30 AM, Wednesday, 12 May 2021
The final project must extend the frequency and duration techniques
that we have covered in the course. One possibility is to apply
the techniques to a small, but realistic power system model. As an
example, Section 6.7 contains a 5-bus system with the potential of
adding two new lines for reliability.
Taking the 5-bus example, you would need to create the reliability
indices in Section 6.7 of the textbook. The input data is given in
Tables 6.17 (Transmission line data) and 6.18 (Generation and load
data). The results of the frequency and duration techniques are
presented in Table 6.19 (Load point failure probability and frequency).
Then, the reliability indices are shown in Tables 6.20 (Annualized
load point indices -- base case), 6.21 (Annualized system indices)
and 6.22 (Comparison of basic annualized system indices). However,
our assumptions will be slightly different than the assumptions
used in the text book to make the project simpler. In addition, you
will be asked to present slightly simpler tables than 6.19-6.22.
For the Final Project, you need to submit code (MATLAB, C, or
other), spreadsheets (e.g., Excel) or other documentation supporting
your results. You also need to provide a report that describes
the entire process used to determine the reliability indices. You
should consider the Final Project as a report to management which
contains a recommendation on the best alternative for improving
reliability. Of course, your results should be used to support your
recommendation.
Section 6.7 and the 5-bus system are an example of the detail that
is required in the Final Project. However, you may propose another
study of similar scope.
Final Project Detailed Instructions
The Final Project focuses on the 5 bus system in Section
6.7. However, sections 6.4 - 6.6 contain useful examples
based on a simpler 3 bus system.
Note: The input data for the 5 bus system is provided in a text file
linked to the ECE 558 home page. The data provided in the text book is
partially incorrect, so you must use the t5_data.txt file on the ECE 558 home page. Do
NOT use the generation nor transmission unavailability numbers given in the
text book.
To simplify the distribution factor DC power flow analysis,
both branch 7 and branch 8 are included in the base case.
You will derive the reliability indices for the 5 bus system
with all 8 branches in service. The PTDF
and LODF matrices with all 8 branches are named "PTDF_all" and
"LODF_all".
Assumptions
- Transmission outages are limited to single branches
- Generation outages are limited to combinations at a single
generator bus that have at least a 10^(-6) probability of occurring
- Branches 7 and 8 are included in the base case
- Annualized indices are required at a peak load of 155 MW
- DC power flow based distribution factors are sufficient to model
network behavior
- Bus loads have been inflated to include network losses
- Branch MW limits have been reduced to include "less than unity"
power factor of branch flows
Frequency and Duration Based Generator Capacity Availability Tables
The first step in the project is the creation of the
frequency and duration based capacity availability tables
for each generator bus. Each table should include one row
for each generator bus capacity availability state in the
reduced generator model that has a probability of at least 10^(-6).
In other words, create the reduced generator model, then apply
the cutoff threshold to the reduced model states. The rows should be
ordered based on the Capacity Available column (descending order).
For the Bus 2 table, list the number of units
out of service as an ordered triple (# 5 MW, # 15 MW, # 20 MW). The
columns should be in the following order:
- Generator bus state number (sequential numbering)
- List of units out-of-service (e.g., "3,0,0 || 0,1,0" for the 15 MW outage)
- Capacity Available
- Probability of the state
- Positive departure rate from the state
- Negative departure rate from the state
- Frequency of the state (occ/yr)
The next step in the project is the creation of the
frequency and duration based capacity availability table
for the generation subsystem. The table should include one row
for each generation capacity availability state that
has a probability of at least 5*10^(-7). This table is NOT a reduced
table, since the capacity available at each bus is physically located
at different buses. The columns should be in the following order:
- Generation state number (sequential numbering)
- Capacity Available at Gen Bus 1
- Capacity Available at Gen Bus 2
- Probability of the state
- Positive departure rate from the state
- Negative departure rate from the state
- Frequency of the state (occ/yr)
Frequency and Duration Based Transmission Capacity Availability Table
The next step in the project is the creation of the
frequency and duration based availability table for the
transmission subsystem. The table should include one row
for each transmission availability state up to single
outages. The columns should be in the following order:
- Transmission state number (sequential numbering)
- Name of branch out-of-service (single outage only)
- Probability of the state
- Positive departure rate from the state
- Negative departure rate from the state
- Frequency of the state (occ/yr)
For the frequency and duration tables, be sure to
include the assumptions in the table. For example,
the negative departure rate from a single branch outage
state is zero, since we are assuming that double branch
outages cannot occur.
Frequency and Duration Based Composite Generation and Transmission Availability Table
The next step in the project is the creation of the
frequency and duration based availability table for the
composite generation and transmission system. The table
should include one row for each composite system availability
state. This table is NOT a reduced table. The columns should be in the
following order:
- Composite state number (sequential numbering)
- Transmission equipment out-of-service (e.g., 0, L1, L2, etc.)
- Generator Bus 1 Capacity Available
- Generator Bus 2 Capacity Available
- Probability of the state
- Positive departure rate from the state
- Negative departure rate from the state
- Frequency of the state (occ/yr)
- Dkj (duration of state in hours)
Note: the composite states must appear in a specific order with the
transmission outages in the outermost loop, the Gen Bus 1 outages in
the middle loop, and the Gen Bus 2 outages in the innermost loop.
For example, the first rows of the composite table will have the following
values (Note: table is incomplete -- you need to fill-in all values):
State | TrOut | G1CA | G2CA
|
---|
1 | 0 | 80 | 130
|
2 | 0 | 80 | 125
|
. | 0 | 80 | .
|
. | 0 | 80 | .
|
. | 0 | 60 | 130
|
. | 0 | 60 | 125
|
. | 0 | 60 | .
|
. | 0 | 60 | .
|
. | 0 | . | .
|
. | 0 | . | .
|
. | L1 | 80 | 130
|
. | L1 | 80 | 125
|
. | L1 | 80 | .
|
. | L1 | 80 | .
|
Be sure to include the sequential numbers in column 1 so that later tables
can refer to a composite state number (column 1 of the above table)
and not need to include columns 2-4.
Frequency and Duration Based Load Point Indices
For the Final Project, you will build a composite generation
and transmission model to examine the reliability at each
load bus. Table 6.15 illustrates the type of analysis that
will be done at each load bus in the 5 bus system. Each
load point reliability indices table should include:
- Composite state number "j" (same sequential numbering as previous table)
- Capacity available at the load bus (from PTDF, LODF and generator dispatch)
- Pkj (probability of inadequacy - annualized at peak load: 0 or 1)
- Lkj (MW, amount of load curtailed at bus k in state j)
- ELC (MW, column sum is the expected load curtailed at bus k)
- NLC (occ, column sum is the number of load curtailments at bus k)
- EENS (MWh, column sum is the expected energy not served at bus k)
- EDLC (hr, column sum is the expected duration of load curtailments at bus k)
Note: to save paper, please eliminate all rows in the above table that
have Pkj = 0.
Note: Capacity Available at Load Bus should be in the range [0, bus peak load].
DC Power Flow Based Distribution Factors
Recall, the PTDF and LODF matrices can be used to determine the branch
MW flows:
normal case, all transmission i/s
pre_flow = PTDF(:,:)*Pinj
post-contingency, branch "m" o/s
post_flow = pre_flow + LODF(:,m)*pre_flow(m)
Be sure to create a Pinj vector that has a column sum of zero. In other
words, the total generation must equal the total load.
Power Flow Constraints and Pkj
The PTDF and LODF matrices will provide branch flows, given a bus injection
vector and possible branch outage. The next step is to consider the power
flow constraints when determining Pkj={0,1}.
Total generation and total load must balance
sum_k {PGk} = sum_k {PDk}
Branch flow must be within branch limits
| flow | <= MWmax, or
-MWmax <= flow <= MWmax
Generator output must be within capacity availability limits
0 <= PGk <= CapAvail_k
Load participation/curtailment policy for final project
In the case of a power system with multiple loads, we need to define
service priorities for each load. For the 5 bus system in the final
project, we will use the following policy for load curtailments:
If there is insufficient generation or transmission capacity such that
not all loads can be served at their peak power demand, then all loads
will be curtailed by a single factor for the entire system. This
curtailment factor should be applied as follows:
PDk = (1-CF)*PDk_peak
PDk is the available MW power demand at bus "k"
CF is the curtailment factor: 0<=CF<=1
PDk_peak is the peak MW power demand at bus "k"
Therefore, if any load bus cannot be supplied at its
peak power demand, then no load bus will be supplied at
its peak power demand. Each load bus will be curtailed
by an amount equal to CF times its peak power demand.
In the text (p. 205), there is a series of numbers that
are called the load probability steps, but they are not
explained. You can think of the steps (each is 10%) as
the (1-CF) term above. In other words, start with the
loads at 1.0*PDi_peak and work your way down to 0.0*PDi_peak.
If the peak load can be supplied, while satisfying the Pgen and branch
MW limits, then there is no curtailment and the next composite state
can be evaluated. However, if you cannot supply the peak load, then
stop and drop down one load step. Since we have assumed annualized indices
(i.e., 100% load factor at the peak load value), the curtailment time
percentage will be 100%. To find the amount of load curtailment,
continue dropping down through the load steps until you find one that
can be supplied while satisfying the Pgen and branch MW limits. Add
the outage duration and MW curtailment values to the associated
reliability indices.
In practice, we would not want to follow this policy,
since this policy spreads the curtailment to all load
buses, even when most load bus demands could be met.
However, this policy will make the analysis simpler for
the final project.
Generator Dispatch to Minimize Load Curtailment
There are two basic methods for determining a generator
dispatch that meets the branch loading constraints. The
simple approach uses a single parameter alpha to weight the
maximum MW output of generator 1 and (1-alpha) to weight
the maximum output of generator 2. The more sophisticated
approach is to use "linprog" in MATLAB. It's your choice,
but you must make it clear in your final project report
which method you chose.
A simple method to dispatch the generators based on a single parameter
alpha would work as follows for each load step:
- Assume all load (Ltotal=sum_k {PDk}) is served by generator bus 1.
Compute the branch flows and store them in vector "flow1".
- Assume all load (Ltotal=sum_k {PDk}) is served by generator bus 2.
Compute the branch flows and store them in vector "flow2".
- Since the distribution factors are based on linear systems, you can
use the principle of superposition to find some value of "alpha" (if
one exists) such that:
-MWmax <= alpha*flow1 + (1-alpha)*flow2 <= MWmax
alpha*Ltotal <= CapAvail1 {Note: CapAvail1 <= 80 MW installed}
(1-alpha)*Ltotal <= CapAvail2 {Note: CapAvail2 <= 130 MW installed}
The question is whether or not you can find a value of alpha such that
the above inequalities hold. There are three ways to find alpha:
- trial and error (Note: 0<=alpha<=1, but tighter bounds can be derived)
- compute bounds for each constraint independently and find the intersection
using gen_dispatch.m
- MATLAB "linprog" (Note: any value of alpha that satisfies the inequalities
would work, so you can either minimize or maximize alpha)
Note that the branches all have the same limit of 71 MWs. Also,
remember that if any branch flow exceeds its limit, then we are
considering that as a "failed load step", which requires you to drop
the loads to a lower load step. Ultimately, either you will find a
dispatch that meets the branch limits and serves some load, or you
need to show that it is impossible to serve any load.
Deliverables
All final project reports and code are due by the deadline given
above. Main campus students must submit a hard copy report to SH 224.
Everyone must submit an electronic SafeAssignment report via Blackboard.
Finally, you need to submit a zip archive (all code, spreadsheets,
etc. in a single ZIP file with your name in the zip archive file
name) via the Blackboard "Final Project (ZIP archive)" Assignment
link.
Your report must include an overview/introduction that describes
the problem that needs to be solved, along with any assumptions,
constraints and your choice of criteria for evaluating the relative
merits of your final recommendation for improving the reliability
of the 5-bus system.
You also need to provide a process flowchart or a list of procedural
steps that describe your analytical approach to the problem. In
addition, you need to present the relevant equations/algorithms that
you have implemented. Next, your report must contain a description
of your code, so that we can find any errors that might affect your
results.
The tables mentioned earlier in this document are required. Please
try to limit the amount of paper that is necessary to display your
tables. If there are columns of data that appear in multiple tables,
then combine the tables to save paper. Note that Tables 6.19 - 6.22,
from the text book, are not required. Following the tables, you need
to discuss the results and point out any important or surprising
findings. Finally, provide your recommendations for improving system
reliability.
Extra Credit (10 pts) - Contingency Case
The contingency case has only 7 branches, since branch 7 is assumed to be
out-of-service for maintenance. In other words, the analysis would be
repeated as though branch 7 never existed. The post-contingency PTDF and
LODF matrices are named "PTDF_7os" and "LODF_7os".
Repeat the reliability analysis for the contingency case, including a
brief overview/introduction, a summary table of the inputs that have
changed relative to the normal case, an updated transmission capacity
availability table, a summary table of the reliability indices,
analysis of the results, a comparison to the "normal case" results,
and a description of how to run the contingency case using your code.
Neither the detailed composite table nor the load point tables are
required, but you only get credit if we can successfully run the
contingency case. If your code is too complicated to run, or does not
run properly, then you will not get any extra credit.
Updated 20 Apr 2021