Matpower 5.0
User’s Manual
Ray D. Zimmerman Carlos E. Murillo-S´anchez
December 17, 2014
© 2010, 2011, 2012, 2013, 2014 Power Systems Engineering Research Center (Pserc)
All Rights Reserved
Contents
1 Introduction 9
1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 License and Terms of Use . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Citing Matpower . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Getting Started 11
2.1 System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Running a Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1 Preparing Case Input Data . . . . . . . . . . . . . . . . . . . . 14
2.3.2 Solving the Case . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.3 Accessing the Results . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.4 Setting Options . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Modeling 18
3.1 Data Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Generators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5 Shunt Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 Network Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.7 DC Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4 Power Flow 25
4.1 AC Power Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 DC Power Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 runpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4 Linear Shift Factors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5 Continuation Power Flow 32
5.1 Parameterization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Predictor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3 Corrector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.4 Step length control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.5 runcpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2
6 Optimal Power Flow 41
6.1 Standard AC OPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Standard DC OPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.3 Extended OPF Formulation . . . . . . . . . . . . . . . . . . . . . . . 43
6.3.1 User-defined Costs . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3.2 User-defined Constraints . . . . . . . . . . . . . . . . . . . . . 44
6.3.3 User-defined Variables . . . . . . . . . . . . . . . . . . . . . . 46
6.4 Standard Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.4.1 Piecewise Linear Costs . . . . . . . . . . . . . . . . . . . . . . 46
6.4.2 Dispatchable Loads . . . . . . . . . . . . . . . . . . . . . . . . 47
6.4.3 Generator Capability Curves . . . . . . . . . . . . . . . . . . . 49
6.4.4 Branch Angle Difference Limits . . . . . . . . . . . . . . . . . 49
6.5 Solvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.6 runopf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7 Extending the OPF 56
7.1 Direct Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.2 Callback Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2.1 ext2int Callback . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.2.2 formulation Callback . . . . . . . . . . . . . . . . . . . . . . 60
7.2.3 int2ext Callback . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.2.4 printpf Callback . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.2.5 savecase Callback . . . . . . . . . . . . . . . . . . . . . . . . 67
7.3 Registering the Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.5 Example Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.5.1 Fixed Zonal Reserves . . . . . . . . . . . . . . . . . . . . . . . 71
7.5.2 Interface Flow Limits . . . . . . . . . . . . . . . . . . . . . . . 72
7.5.3 DC Transmission Lines . . . . . . . . . . . . . . . . . . . . . . 73
7.5.4 DC OPF Branch Flow Soft Limits . . . . . . . . . . . . . . . . 76
8 Unit De-commitment Algorithm 79
9 Miscellaneous Matpower Functions 81
9.1 Input/Output Functions . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.1.1 loadcase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.1.2 savecase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.1.3 cdf2mpc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.1.4 psse2mpc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3
9.2 System Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.2.1 case info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.2.2 compare case . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9.2.3 find islands . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9.2.4 get losses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9.2.5 margcost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.2.6 isload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.2.7 printpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.2.8 total load . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.2.9 totcost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.3 Modifying a Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.3.1 extract islands . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.3.2 load2disp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
9.3.3 modcost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
9.3.4 scale load . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
9.4 Conversion between External and Internal Numbering . . . . . . . . . 87
9.4.1 ext2int, int2ext . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.4.2 e2i data, i2e data . . . . . . . . . . . . . . . . . . . . . . . . 87
9.4.3 e2i field, i2e field . . . . . . . . . . . . . . . . . . . . . . 88
9.5 Forming Standard Power Systems Matrices . . . . . . . . . . . . . . . 88
9.5.1 makeB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
9.5.2 makeBdc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.5.3 makeJac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.5.4 makeYbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.6 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.6.1 define constants . . . . . . . . . . . . . . . . . . . . . . . . 89
9.6.2 have fcn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
9.6.3 mpver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
9.6.4 nested struct copy . . . . . . . . . . . . . . . . . . . . . . . 90
10 Acknowledgments 91
Appendix A MIPS – Matlab Interior Point Solver 92
A.1 Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
A.2 Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
A.3 Quadratic Programming Solver . . . . . . . . . . . . . . . . . . . . . 98
A.4 Primal-Dual Interior Point Algorithm . . . . . . . . . . . . . . . . . . 99
A.4.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4
A.4.2 Problem Formulation and Lagrangian . . . . . . . . . . . . . . 100
A.4.3 First Order Optimality Conditions . . . . . . . . . . . . . . . 101
A.4.4 Newton Step . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Appendix B Data File Format 105
Appendix C Matpower Options 111
C.1 Mapping of Old-Style Options to New-Style Options . . . . . . . . . . 125
Appendix D Matpower Files and Functions 129
D.1 Documentation Files . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
D.2 Matpower Functions . . . . . . . . . . . . . . . . . . . . . . . . . . 129
D.3 Example Matpower Cases . . . . . . . . . . . . . . . . . . . . . . . 137
D.4 Automated Test Suite . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Appendix E Extras Directory 142
Appendix F “Smart Market” Code 143
F.1 Handling Supply Shortfall . . . . . . . . . . . . . . . . . . . . . . . . 145
F.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
F.3 Smartmarket Files and Functions . . . . . . . . . . . . . . . . . . . . 149
Appendix G Optional Packages 151
G.1 BPMPD MEX – MEX interface for BPMPD . . . . . . . . . . . . . . 151
G.2 CPLEX – High-performance LP and QP Solvers . . . . . . . . . . . . 151
G.3 GLPK – GNU Linear Programming Kit . . . . . . . . . . . . . . . . 152
G.4 Gurobi – High-performance LP and QP Solvers . . . . . . . . . . . . 153
G.5 Ipopt – Interior Point Optimizer . . . . . . . . . . . . . . . . . . . . 153
G.6 KNITRO – Non-Linear Programming Solver . . . . . . . . . . . . . . 154
G.7 MINOPF – AC OPF Solver Based on MINOS . . . . . . . . . . . . . 155
G.8 MOSEK – High-performance LP and QP Solvers . . . . . . . . . . . 155
G.9 SDP PF – Applications of a Semidefinite Programming Relaxation of
the Power Flow Equations . . . . . . . . . . . . . . . . . . . . . . . . 155
G.10 TSPOPF – Three AC OPF Solvers by H. Wang . . . . . . . . . . . . 156
References 157
5