Line Outage Distribution Factors (LODF) : AC vs DC Power Flow Methods

Line Outage Distribution Factors (LODF)

AC vs DC Power Flow Methods

The project required the computation of the Line Outage Distribution Factors (LODF) based on a user given branch outage number using the fast-decoupled XB version. The LODF values were used to approximate the post-contingency branch flows based on a pre-contingency branch flow and the base branch flow before the contingency. The AC power flows were compared with the DC method for the MW and MVA flows. Source code is provided in the same WinZip file for the functions calculating the LODF values and the approximated post-contingency branch flows.

My Summary:

I started the program flow by writing code to determine the swing bus, since it plays a valuable part in the calculation of line outage distribution factors, and reducing the B prime matrix. The main program prints out a listing of each branch number, from bus, to bus and asks for the user input of a branch outage number. The program will test for only branch outages on 4, 5,6,7,8 or 9 and loop for more requests until the user enters an acceptable number. After the selected branch number is chosen for the branch outage, the wcc9bus branch data is copied to a new matrix and the corresponding row of the branch outage is removed. The B-prime matrix is then formed from the new branch matrix with the branch outage row missing.

The main program then makes a call to the LODF function. The LODF function (computeLODF.m) solves the “[newB’]deltaTheta=deltaP” system given the branch outaged, the wcc9bus branch data, and the B-prime matrix. It returns the LODFvalues matrix which contains the branch number, from bus, to bus, and the LODF factor. The main program then prints these results in the MATLAB window.

A fast-decoupled power flow is then run with the wcc9bus and the pre-contingency branch flows are saved for use in determining the post-contingency branch flows in the baseMW matrix. The DetermineBranchFlows2 function requires the baseMW matrix with the pre-contingency branch flows, a matrix with the branch being outaged, and the LODF values. The function returns the post-contingency branch flows as a matrix newbranchflows. The post-contingency branch flows are then printed on the MATLAB workspace.

The MW post-contingency branch flows calculated from LODF (Fast-Decoupled) were then compared to MW flows using Newton’s method for each possible branch outage. The MVA values were also compared to the MW values. The results are included in this document in table form. This document also displayed the MATLAB screen results for each branch outage. Results were the LODF factors and the post-contingency branch flows.


The demonstration of Matlab code, output, and tables are discussed in the project report that you can download in PDF format here. An Excel comparison sheet (results) of the project is here.

Results Tables

1 Result Table is shown, the rest are view-able in the Excel document link (see above).

Branch 4 is Out

Compare MW flows
Branch From To Error MW  AC MW
1 1 4 4.93 71.64 76.57
2 2 7 0.00 163.00 163.00
3 3 9 0.00 85.00 85.00
4 4 5 0.00 0.00 0.00
5 4 6 4.93 71.64 76.57
6 5 7 0.26 -125.26 -125.00
7 6 9 4.16 -18.53 -14.37
8 7 8 5.25 35.44 30.19
9 8 9 4.86 -65.03 -69.89
Compare MVA flows
Branch From To Error MW AC MVA
1 1 4 5.02 71.64 76.66
2 2 7 14.15 163.00 177.15
3 3 9 0.05 85.00 85.05
4 4 5 0.00 0.00 0.00
5 4 6 4.93 71.64 76.57
6 5 7 259.89 -125.26 134.63
7 6 9 41.29 -18.53 22.77
8 7 8 2.61 35.44 32.83
9 8 9 142.77 -65.03 77.73

My Solution Code

You can view and download the GitHub repository here.

You can also download a zip archive of the project code here.