----------------------------- , p! l/ O* m9 ] Change history for MATPOWER2 }9 ]* C" R% m. T0 H
-----------------------------+ V6 p+ K6 F& L0 X
Version: 3.1b25 A. S3 F9 h9 z/ O4 j( S& V7 f. Q
maintained by Ray Zimmerman <rz10@cornell.edu> ) u9 Y+ U" ?8 I+ f* P: [; RMATPOWER ' }% E5 s* Q9 Q6 _. d8 k, |3 @$Id: CHANGES.txt,v 1.27 2006/09/14 18:20:40 ray Exp $+ j% Y. \8 o8 T5 {5 d
Copyright (c) 1996-2006 by Power System Engineering Research Center (PSERC)5 j& c8 @; i" D" k" L! d! ]
See http://www.pserc.cornell.edu/matpower/ for more info.) u$ u5 I6 q7 E
: f3 M( G0 h, z4 N
Changes since 3.1b1 ; Y* |" S' s/ l5 b7 T------------------- / Y$ z; A, p) M$ J0 Y. E7 M9/15/06 & d) B& X: U$ i; c; T1 c% N: ` - Released version 3.1b2. 9 O0 b* {7 o5 _& h4 P) ~9/12/067 _- X5 R6 Y' L; F& r, Z' A
- Added makePDFT.m which builds the DC PTDF matrix for a specified5 e+ h+ e6 B- N5 X/ G* P
slack distribution.( D, _* k7 r1 L) k Y6 t
8/16/06/ {% m/ T5 ?8 n* V- Q
- Added optional outputs xr, pimul to fmincopf and opf.m to make them 3 ]1 j: I- ^$ E3 z/ |$ f6 x fully interchangeable with mopf.m., {2 U/ d& T: G/ o7 E' [
8/15/06 ; F8 P) y% N/ m1 d4 C6 M- z0 B" I - Added branch angle difference constraints to general OPF formulation 1 i3 c: h: e" H* a5 n in fmincopf.m (and mopf.m). ]3 ?- O5 T+ M6 Q+ |" W) O2 x
- Fixed (invisible) bug with multipliers of lower bounded linear ' {$ {: Y( S" F+ a: b; E4 j constraints in fmincopf.m. " d& q' U, y( M; O. p4 D: d6 C0 i7 z6 v
Changes since 3.0.0* W2 L% Z3 H5 T8 |, O9 i
-------------------- i: _) o: |2 {0 `! n0 a9 E
8/1/06* z6 p( N3 F# U' O- o; K; Y# z
- Released version 3.1b1. " E5 w: l _- Q3 X/ ?5 [4/28/069 i$ G, U$ G( K' A7 E p
- Fixed mpver.m so it will properly handle case where the Optimization 0 i/ ]* A: D0 B& F Toolbox is not installed. ; K! \1 `+ H' C3/15/06. ]& {! c7 E' c* X* x# k; Z) e) B
- INCOMPATIBLE CHANGE: Updated opf.m, fmincopf.m, costfmin.m, consfmin.m to 7 m% Z6 t* a# N" } be able to be compatible with latest MINOPF. User supplied A matrix for 7 A# Y" I/ |7 L0 G general linear constraints no longer includes columns for y variables# h" Q" }8 P. b8 I+ ~, ^( k
(helper vars for piecewise linear gen costs), and now requires columns 4 `+ Y/ P3 {, X6 ]$ b5 `+ @ for all x (OPF) variables. Added generalized cost model and generator PQ% X4 k, K" }* V* W, l! F
capability curves.$ @8 N/ N5 g, y' {( g2 Q$ Q; }( W# _
- Modified savecase.m to always save MAT files with -V6 under newer MATLAB6 d9 T0 O% O8 L( f
versions. % ?+ ?. Y: d, \7 d6 a" p5 g3 Y - Added a number of tests to t_opf.m for MINOPF and fmincopf for generalized, I- ~+ }3 c- P6 r* X* L: H7 r+ | H$ K
costs and additional linear constraints. Added test for fmincopf for , ^$ ^+ L* A6 A- x8 l, P generator PQ capability curves. " L& V# v4 }8 I0 p3/10/06 9 t/ ~4 W, s9 r7 t. E - Added baseKV data to case118.m from PSAP file . Z5 J/ b3 D1 I7 l8 A! y
<http://www.ee.washington.edu/research/pstca/pf118/ieee118psp.txt>. $ n2 F+ @) ]! B5 [/ _3/8/068 t" P& {$ o# Q2 h' G# O
- Renamed col 5 of gencost from N to NCOST everywhere. $ Y1 d# |" z3 ^, S8 m$ d; Z Q1 f10/14/05 * Q0 U: M. _) o; u3 J* {3 t - Updated version 2 case file format to modify generator PQ capability7 ]& c9 T. y! s/ I! u# P1 r
curve specifications. 5 R& V4 P& h- y - Added hasPQcap.m and test for gen PQ capability curve in OPF./ M$ d' t$ E% A6 p2 L! ]
8/22/05, c' b0 q# _- H/ U) u3 W1 e+ P
- Added OPF_IGNORE_ANG_LIM option to mpoption.m.' C# R0 L, O+ Y: t4 i; w9 f/ B
8/5/05 6 c4 w6 z9 v& [: t* Z. G - Modified identification of binding constraints in printpf.m. A" {5 c6 k \. Q5 t" [' A
constraint is now considered to be binding if the tolerance is less + H; A7 q' R( w/ [# ^9 C( T/ g than or equal to OPF_VIOLATION tolerance -OR- if the corresponding2 d0 Y! y' r7 a" J
Kuhn-Tucker multiplier is non-zero. This allows binding generator & l4 L' S7 q! n g& j9 m capability curves to be reported via multipliers on Pg and Qg limits.* V7 [% u, G1 t- y: D7 F( t
7/8/05* T+ k- f" D1 R5 h
- Updated loadcase.m, savecase.m, idx_bus.m, idx_gen.m, caseformat.m 0 N) c& ? O" x7 K and tests for version 2 case file format, which includes piece-wise6 ^9 s, a6 X' y
linear generator capability curves, generator ramp rates and branch. M( b. d5 A+ _+ M3 k0 }
angle difference limits. ; C9 w3 X; r f8 l& t& c2 b # l; L- i$ L+ W/ A
Changes since 3.0b4 I& G+ [9 ?; j3 g1 F( G& i------------------- ( c$ ~. J" u; n2/14/05 + b' r6 Q9 Z1 u" J+ P/ T - Released version 3.0.0. a* L @( R M" u8 U" E
2/3/05/ d; j- \6 T$ P
- In mp_lp.m and mp_qp.m, on Windows it now makes sure BPMPD_MEX is not 8 [6 F7 z* G I2 O called in verbose mode which causes a Matlab crash.* ]9 b' w% b4 P, d
* l" `& @6 K1 x% E4 x3 s, [Changes since 3.0b3% v$ V9 L* S5 c) d( E
------------------- 4 M' c* r3 B$ q) L4 W$ K0 a5 _1/28/058 y3 C- n& h& [& _
- Released version 3.0b4., h% s R6 C$ e# r" Q
1/27/05 6 w* |, P$ H. i( M0 g/ H3 ] - Added case6ww.m and case4gs.m.0 P- V" X7 Y3 Z% ~$ r
- Minor modifications to printpf.m to handle larger bus numbers. / H! a: s/ @$ N5 A, P, [1/26/05( f2 p3 G4 s7 \4 S
- Minor changes to uopf.m to make sure it plays nicely with dispatchable / P u" v! I x: w6 E \0 L loads.0 I; L( G, U0 A O9 x# \8 w/ q
1/25/05 " I* ~( A7 L6 _- T4 A - Major updates to user manual. 5 x' a* t0 f# n+ z1/24/051 I& S1 Y, A! A$ a
- Switched to using the new isload() to check for dispatchable load.# {, ?; [$ a B5 @& J O. c8 b) a- y
- For dispatchable loads, switched from using PG and QG to PMIN and either % G# l: i8 x3 C( \9 Z QMIN (for inductive loads) or QMAX (for capacitive loads) to define the 6 ^; e4 Q3 G4 I$ e- h& R constant power factor constraint. This prevents the power factor1 \9 M# J. G% Q* J
information from being lost when it is dispatched to zero. If the initial " [9 S7 _* C- q values of PG and QG are not consistent with the ratio defined by PMIN5 b+ \* D8 l: Q c3 @+ O
and the appropriate Q limit it gives an error. This is to prevent a user& k) M: l. Y+ {$ y5 \7 \
from unknowingly using a case file which would have defined a different) I' h% b+ b J! X
power factor constraint under previous versions of MATPOWER.# n! T5 r V, P. P
If both QMIN and QMAX are zero, it no longer includes the redundant 2 J$ ]8 J/ C- s/ A unity power factor constraint. o0 V+ V1 G4 \; B- d- _+ q6 E3 s8 ]
1/20/055 @; u4 ~1 K& v
- Updated printpf.m to display dispatchable loads and generators1 V% ~5 g' S9 V! i3 r+ D f0 j3 A
separately. Reorganized the area summary section and corrected the net 2 f9 k6 Z- ^' ~ F6 U4 ~ exports value (subtracted half of tie-line loss) to make the numbers) {8 ]0 D' S0 H
add up correctly. * G1 l% t/ L; j% @, w1/18/05 : Y% }$ u) D) g8 w8 U7 f/ m - Added to runpf.m the ability to enforce generator reactive power limits' `% \ G$ ?: A, d% D
by allowing the voltage to deviate from the set-point. This option is 3 r" F% x1 y: N controlled by the new ENFORCE_Q_LIMS option, which is off by default. + k% F( G, b& ^' H& t( F (Thanks to Mu Lin of Lincoln University, New Zealand3 m/ L$ e) D1 J* |
whose contributions inspired this feature).7 O0 p3 ~! q1 w/ t9 d& }) w
- Modified pfsoln.m to divide reactive power dispatch between multiple4 A/ M e1 B% b) |' t$ X: S7 J
generators at a bus in proportion to each gen's reactive power range, " f' z) S# k; J: Q; X& H; H as opposed to equally. This means that all generators at a bus will $ t3 J2 _0 s3 R+ f* h$ x reach their upper (or lower) limits simultaneously. / a, i* q) n7 C - Added generator status column to generator section of printpf.m output." V7 R3 a4 N7 p: M0 l9 Y
Fixed bugs where non-zero output of decommitted generators was displayed 1 _4 A6 f4 v# M. D3 z and included in generation totals in generator and bus sections.0 k6 c1 A, G: ?# i, c5 y# D
1/14/05 + @- Z) R$ M( _' O6 D: K - Moved some setting of MNS_* default options from opf.m to mopf.m.8 j# V, V9 G9 R7 d( Z) l; E
- Eliminated unused output args in dcopf.m. , o" n/ q! p \2 Z$ I - Modified printpf.m to zero out reactive generator output for DC cases! @5 B4 }3 u! n7 |
and to use OPF_VIOLATION tolerance to detect binding constraints, as* t* i7 K5 B- p( E% w" n
opposed to non-zero Kuhn-Tucker multipliers. 1 G; q4 _+ N# t, {- d" a1/12/05 " ]8 o8 D3 b' u" N/ t/ b _ - Modified bpmpd portion of mp_qp.m and mp_lp.m to use default value for " D8 [# \! X; p7 Y# m TFEAS2 and eliminate variable limits which appear to be artificial& t5 X9 ~9 z# y; @) e+ B
large values used to indicate free variables.2 d' s/ c+ u6 ^$ r) `3 o! A: Z( [
1/4/05- Q' g0 [; Z; u' [: O! A* N
- Fixed potential bug in dimensions of Yf and Yt created in makeYbus.m.+ f; G) R. W+ W& z8 m1 b
12/17/04 $ t" O$ E5 J7 W, m& G. K8 ]+ H% ]9 C - Added feasibility check to mp_lp.m and mp_qp.m to work around a; Z* r' ]5 }% S2 b& G) D
recently discovered bug in BPMPD_MEX 2.21 where it sometimes returns an & l, e3 e1 w- n. s incorrect (infeasible) solution for a DC OPF problem. This bug has yet , Q8 U* |5 D5 |& a) b! X( j8 D; K: R to be encountered in any other context. 6 O6 I! n" b, F. w7 ^ l: _7 G12/13/04 + g: Z1 z( M: o- { - Added mpver.m to print version information.4 R: N+ L0 M$ I5 g# a3 o
9/23/04 6 d4 \# I9 |( F! S+ q - Fixed bugs in cdf2matp.m which prevented it from working at all / _- C! F9 h: v: G6 Z when not specifying both input parameters and caused it to# P1 H1 x! }! i* b! O( C
sometimes not add the warnings at the end of the file. U3 E! Z; h" A9 U) ^; Q
- Fixed typo in name of lower bound input argument in opf.m. Only : `3 Z h6 r4 e/ B affected those calling opf directly with extra linear constraints. `% q& \) d; L, Q * d R- `: [0 O8 {* ^Changes since 3.0b2# L5 f) o& g' s# |" r
------------------- ( Z+ N% D8 v# {- _) R9/20/04 ^2 c% q9 T& P" P: }5 I, x
- Released version 3.0b3. 8 e9 A/ I$ g/ v6 |5 y - Generated clean versions of all included case files using latest , d- e% z, }, \6 S9 `5 v% a- G# D cdf2matp and savecase. Added documentation for source of data 2 v e. o# `0 t for case files. ; B; b2 {% F( H! G - More enhancements to cdf2matp.m. Adds comments at beginning, appends : C: [, L3 Y* c. P3 y conversion warnings as comments at end of file. Uses savecase.m to ; ~2 m) F) F# w! y W7 ^4 t6 c3 o save the data. 7 z- h4 W4 o2 V) ?7 _ o; W3 L - Updated savecase.m to use %g instead of %f many places, correctly* i+ s. V0 }( K ?4 o9 S3 J
handle multi-line comments, include headers for extra columns for 7 K2 W% I/ g% |3 x" }" _3 w9 Y solved cases. Optionally returns filename with extension. + o# g+ t3 o, y0 e7 ^9/17/04 + c% d$ L1 V7 k4 z - Fixed bug in grad_std.m, introduced in 3.0b2, which prevented constr" c9 T. A( j- c
and LP-based OPF solvers from working for polynomial cost functions. 2 \2 q: m. W; G9 l) {9/15/042 T5 B8 L& o$ c8 O+ B4 }1 U! t
- In cdf2matp.m, added input args, updated docs, switched to named # [5 o7 W, }( Q indexing of data matrices, new method for creating gen costs. g$ M& R; s1 y" Z, F6 h+ y
- Documentation fixes and additions from Pan Wei.( X$ j/ y4 U. \4 y
F: q. _; I* i3 `( y
Changes since 3.0b1 ( H1 R; ?( F2 g) M3 u------------------- ; d( v" E5 Y% g$ q/ o; L0 \4 @; K6 e8 @9/7/047 L0 i+ h9 x4 G+ p8 q
- Released version 3.0b2. + g8 ] t: C$ f - Added OPF_P_LINE_LIM option to mpoptions to use active power * T( ?4 ~+ k* m. V9 \7 u ? instead of apparent power for line limits (thanks to Pan Wei2 `/ z1 @9 K" v$ n! }
for the suggestion and some code).1 O C0 g3 g# y
9/1/04 " |# b& b1 B1 w - Fixed bug in savecase.m introduced when making areas and gencost. t. d3 l2 Y5 \. K G5 N* Z
optional.: X. _$ K; A& U7 j, {( w# ^
- Updated opf_slvr.m with options for MINOS and fmincon.( l) ]6 T1 m0 K. t' N# G
- Removed option 15 OPF_NEQ from docs (not a user option). Removed option ' w) N% u/ _ E 52 VAR_LOAD_PF (unused, always behaves as if this option were 1). . n7 p5 ? i% J P C T Changed semantics and default value for option 51 SPARSE_QP. By default 8 Q: k. u0 B: Q# x- ]2 Y# ? (value = 1) it will use sparse matrices if a sparse QP/LP solver is! f( {/ m! b5 O/ H0 S
available and full matrices otherwise. Setting the value to 0 # H: u' q5 I5 Q7 u" J/ e) H will force it to use full matrices even with a sparse-capable solver.- ?- p' X, a2 p0 e ?5 I1 c
- Cleaned up checking for optional functionality, and fixed a bug + ~+ M6 a# K8 J( u5 \ that would miss MEX files if there was an identically named directory6 V# w9 W' q w. A: X M
by adding have_fcn.m. + }( g1 S z# D4 t B : L2 {4 F. W( \2 O, d8 }5 T0 T. K
Changes since 2.0 3 |9 K! F( q1 v# ?) k2 W* m$ W----------------- 1 g8 i3 d# }. b" x8/25/04 * w$ D2 s0 i& n" v - Released version 3.0b1.; Y1 G% F2 o* P( ], D7 [' r
8/24/04 ) Q. b5 v6 l, r6 r7 q! X, [ - Made mpoption() throw an error if passed an invalid option name. ' t9 A) o0 U: k0 Q- O$ N8 J8/23/04 ( f2 [4 ~! N# c - Added an fmincon based OPF solver for the generalized formulation: D3 O& }) ?9 p" {5 l+ O2 E6 [
previously used by mopf (Carlos)./ q: q2 R4 i, \4 h3 y3 Q
- Restructured opf.m so all OPF solvers have a similar API based ' {3 r% S4 q% T9 H; w on the one from mopf.m (Carlos)./ C! H; l/ L1 P' U6 x; P J
- Added some quick tests for runpf and runopf for each algorithm.* B: i) r2 ]& p0 y- O
8/13/04( E& R6 \# @1 d9 }% a
- Renamed 'area' variable to 'areas' to avoid masking the built-in& T) x1 W1 R1 m# ~9 q* W; T8 d
function of the same name.3 w% L8 g& n4 J) F1 C4 G- o7 E0 m. j
- Made OPF data matrices 'areas' and 'gencost' optional for running0 `5 z. b% G! h; p
simple power flow.$ s0 @8 l4 s& t3 \+ v" _3 O
7/15/04 ' n: @' n) p: t - The loadcase function (and therefore all of the run* functions . Z7 `0 A$ u( B5 o# B0 f3 b9 [+ r now optionally accept a struct with the data matrices as fields $ y7 j) M1 ?* @; {4 j. b# x' j in place of the case file name.: M) { F# f+ M2 y$ b% e
- Added t subdirectory with various tests and testing tools.9 l1 A4 {, g9 t1 |& |
7/8/04! f3 s+ s% |( L5 M9 n( h
- Updated mp_lp.m and mp_qp.m to try linprog() and quadprog() ; }' y7 e- |0 s3 ~/ K( F6 v after trying bp, since lp() and qp() are no longer included - p: e1 @9 ~$ I' O. F) \5 b# |% G in the Optimization Toolbox as of version 3. I* P! X7 H, ]7 V i. w7/7/04 - H9 P$ w% w; a - Removed case.m, added caseformat.m, made case9.m the default ' l1 _3 n! ~# H( z! ^9 P y case and fixed function names in other case files to avoid1 C0 H% J* P l7 t3 \
use of reserved word 'case'. " I5 H9 V) b8 A1 b: ]3 ^8 P: k5 W& g - Fixed bugs in runcomp.m.9 i6 |9 ]6 }8 {, d( c9 @
6/23/04% |* {( o% A8 y, N
- Fixed bug in newtonpf.m which caused algorithm to diverge when' S' \, h9 y/ q. v
the Newton step resulted in a negative voltage magnitude.. r! ^; z4 N" W. }% s
4/17/038 V {1 ?2 |( ?8 N0 l: B9 e
- Changed uopf.m to use a dynamic programming approach. More% m2 E- d% f0 k" V: P* | u
computationally expensive, but should find significanly better B; d# N3 t) }, M& I/ h3 t* q results when there are many gens to shut down.: K# v! w& {0 ]+ o3 A
- Added mp_lp.m and mp_qp.m, equivalents to lp.m and qp.m, & F( U; D3 ]- H& k7 C. [8 d4 ` respectively that call bpmpd if available. Modified LPrelax.m,4 l) T" J8 t! l( m/ b# b1 e" e
LPsetup.m and dcopf.m to call these new functions. 5 n+ H* K' t4 x9 x+ C4/14/03) a8 Z8 _ `* n. H9 s
- Fixed a bug in pfsoln.m which for cases with a single generator.0 Z: R( F7 C' d! P
10/23/02 0 G: l5 R4 \- u0 ? - Fixed bus numbering bug in System Summary section of printpf.m. 9 j+ V; z+ y! K+ I: y( W4 [6/20/00 & T+ i1 J$ p# G7 _ - Fixed a bug in printpf.m in the generator section, where $ e! A" L7 N" S! b the generator was assumed to be off if it's real power f9 K8 s% O9 s+ v
output was zero, even if the reactive output was non-zero. + Z8 v) I5 H$ [ - Modified printpf.m to print out lambdas in generation section3 ~) G N8 M. w3 H {" O# r+ W
for generators that are shut down.8 \; P _5 p$ j+ O) T
6/8/004 g, K8 h/ Q1 B. V1 L
- Modified cdf2matp.m so that Pd also includes any generation at# j( @) m2 P. f. Z ~* l. L' X
buses specified as PQ buses. Also modified identification of : V- E: ]6 j8 I8 S# M" _: E8 n generator buses to include only PV or reference buses. (Thanks 5 G' L4 c+ F. e( |( \* s2 L1 H8 a to Venkat)0 ~' F5 p6 D2 w4 p
- Modified cdf2matp.m so that it always treats the input values1 D1 m1 q- O& p
for Gs and Bs as per unit values and converts them to actual# i4 ? k; ]: Y1 o4 s
values expected by MATPOWER (Thanks to D. Devaraj) 9 b( Z* o! q! Cversion 2.5b30 y+ }4 c% q' | o; F
11/9/99' t8 i# C% Y: H# f
9/22/99/ p& L, P. @4 s
- Modified grad_*.m to return sparse matrices, unless using {$ L/ U- O- `# r W
constr.m or an LP/QP solver that doesn't handle sparse 2 c: {9 d! w D& f7 w matrices. Cleaned up sparse<->full conversions in LPconstr.m, * W D( j1 U" H& X LPrelax.m, and LPsetup.m.8 a$ r& }9 {2 |% T
9/21/99 ! W0 H) `$ i" {; m - Undid a "bug fix" from 3/6/98 in makeYbus.m which zeros out - }& b t7 a1 N% r R( y* c V$ u charging capacitance for transformers. Apparently some 6 G; I. e& ]' K! Q) H/ T. |& W/ I transformer models actually have a non-zero charging parameter ! l/ T* i* m+ Y7 {( K- t5 f2 ` when using the model used by MATPOWER (ideal transformer in 4 Z7 s, y ?' T$ V1 v& V; |* _5 w series with a PI model).. Z! t& v) Q/ h D H
- Added loadcase.m which loads a MATPOWER case from an M-file8 F; l8 t; e! e" {
or from a MAT-file. Changed all of the run*.m files to use this; I; T/ t# c3 m/ F- Q. C
as the default way to load case files.+ m! o7 F" b+ ~5 L9 h# p! |( K
- Renamed print2mp.m to savecase.m and added the ability to - k! Z. I/ @: s; X; T5 E save a case as a MAT-file as well as an M-file.! c- O7 K: _% x, [# f5 C( S. R
9/15/99 1 o+ e0 N: E- G0 ~0 k! i2 n - Fixed opf.m so that it correctly uses the termination ' i/ s. P2 z* P6 V0 |5 }3 S: f% @ tolerances in the MATPOWER options vector for constr.m. 8 \' a6 V. J; Y8 y) o; h1 {6 u, m - In previous versions, Pmin/Pmax constraints are relaxed by; f& J, c" o2 p! i- i% I
10 * OPF_VIOLATION in opf.m to avoid falsely reporting a. _8 O1 R+ T+ Q& p8 V- f9 G
binding Pmin/Pmax constraint in a case where a piece-wise linear1 d+ X- p, x$ _1 W3 k
cost function has a corner point exactly at the limit. This' a% x- H4 I" X, M* i: w9 Z, t
code was moved out of opf.m (and the standard MATPOWER4 J! \3 Q5 c; x' Q
distribution) to smartmkt.m and the value was changed to : f* \- n; e% [3 d% H 100 * OPF_VIOLATION.( E: F! q _$ I( g
- Modified opf.m so the MINOS-based solver uses OPF_VIOLATION % d3 C- s; G4 Z! I to set the value of MNS_FEASTOL and MNS_ROWTOL if they are2 J" r7 l" V" `; R7 r( o
set to zero. ^: r0 g9 W* ]; d/ A$ |6 G& P
9/9/99 ! p/ Q( D- E* ]1 y2 d& g - Included MINOS-based OPF with all of its options as9 r2 N7 y) z6 {: N8 w
algorithm 500. (involved including 'area' in calls to opf.m* _, b+ a; \% H" v% w$ R% a, B1 \$ t
and uopf.m). _5 B) Z8 `! w* F" l3 Z) Y
- Removed some unused lines from fun_ccv.m and grad_ccv.m. & U/ t6 ~ t# ^" w( K8/5/99 4 J6 s) [- d- D$ e7 N - Fixed a bug in the pfsoln.m in the distribution of Q among+ p) ~7 k0 }! k* d% L/ P
generators at the same bus. Initially attempted to distribute/ o1 Y/ X* W# i9 n$ r/ o& o
Q to generators proportional to each generators' Q "capacity". # @% M& _, D+ I3 D9 p To do this correctly requires special cases for generators: ]7 c, F0 {5 P" A
with QMIN equal to QMAX. For the sake of simplicity, we now. s% \3 D# F0 _7 S1 j4 _
distribute Q equally among all generators at the bus. / l1 |$ d' ]; u! v* x0 d4 @ Note: As before, the simple power flow does NO feasibility ( D p. _2 s+ R5 l checking. 6 Y$ F7 i( k; S# ?7/19/995 n s' A# u; t+ f4 V/ |
- Modified runuopf.m and uopf.m to handle DC opf. Added the5 ^7 y$ g9 m3 p
function runduopf.m which calls runuopf.m with the PF_DC flag $ G5 H2 `7 `1 L/ z3 K( l8 N set to 1.; T% c6 _; O, L# R* i; ~; n/ t
- Fixed size of 2nd order (all zero) coefficient of objective8 c! P! a4 E9 G
for piecewise linear cost case in dcopf.m./ W I' \$ w6 i# F
7/16/995 W# Q( l) @4 y: s* u& j* e+ ^0 D
- Added the flag QP_SPARSE to mpoption.m to indicate whether the : q, F9 C c9 A4 k) l* S+ ^; h QP solver being used can accept sparse matrices. Also modified4 f1 t7 {5 a! b5 \3 [9 ?' ^. ^
dcopf.m to use this flag. ( V' v6 \) D' f: Y - Fixed handling of VERBOSE option in dcopf.m 7 b# C+ e! z+ o4 e' o1 U - Added the flag PF_DC to mpoption.m to indicate whether the K u& n& [6 E, {2 _9 h
power flow formulation to be used for power flow and optimal ; }# a3 g* N" L. S/ C$ q power flow is a DC approximation or full AC representation.5 H0 d2 O# [1 h# ~' x
Merged rundcpf.m with runpf.m and rundcopf.m with runopf.m6 G# e+ c c% s" t& Q
so that the appropriate solver will be used based on the, u2 [1 { I2 n' v) o$ K
value of the PF_DC flag in the options. The functions rundcpf.m0 H* v8 ], X8 \: Z5 {& R6 s
and rundcopf.m were modified to simply call runpf.m and " t# Z9 }, T9 v- V( @ runopf.m, respectively, with the PF_DC flag set to 1. 0 E& s6 h' S! p( v6 }/ b" G7/15/99( p; F* R/ [: }6 w/ e& q# q
- Changed the sign of the phase shifters in printpf.m to be2 t3 y2 Z/ O& h: } ?
consistent with the bug fix to makeYbus.m made on 3/6/98. 1 E7 J9 s: P6 D" |7/14/99 * x# h. s: k; ]1 \. p. w; \% g - Included four new m-files (makeBdc.m, dcopf.m, rundcpf.m, - }: d$ c: H. m and rundcopf.m) which implement a DC power flow and DC& E% m7 `9 S) X8 `" k
optimal power flow algorithms. 6 L9 T" m4 ]. t: c" M6 Z7/13/99 % Y" R1 S& O7 J7 { - Cleaned up variable names in makeYbus to avoid confusion. : S3 t5 A& H, M/ Z8 o8 |6/10/99 # B/ u# ~/ e* ^" @ H: G - Changed UOFP to UOPF in print statements uopf.m. v9 U4 }3 t! s% \0 Z7 k6/3/99 + l2 e$ J. @: o- n8 j2 s - Modified print2mp.m overwrite instead of append to an/ o3 G+ z" d7 G/ p, V+ k
existing file. 0 ]% `$ C& G; s6 u- Q9 ? - Fixed bug in cdf2matp.m to make it always correctly write( X9 T# A. _$ j$ e5 n
a text file output.0 j" G8 m; N; r% v1 _ X! V2 l& {
version 2.5b2) @8 J) t8 E& I3 Q: ^# \7 l2 ~
6/2/99 # b: {* y; `$ E1 ]* P* Q: U7 a - Modified print2mp.m to include line flows and Lagrange/ N, M" ~+ N1 V+ ~' _& F! G: i5 z
and Kuhn-Tucker multipliers in output if available. , F( s5 J7 F7 c4/29/992 {2 r' o# i, T3 H7 X4 q8 ?
- Included a Gauss-Seidel power flow solver gausspf.m, and0 a G! z( E/ f* J% R
made corresponding changes to runpf.m and mpoption.m.3 p8 ~0 @9 N9 q- r3 K# M
Code contributed by Alberto Borghetti.2 Z# T/ b+ a6 y
4/28/99 & L5 h* p4 d8 y- p% R# L6 E - Modified newtonpf.m to handle cases with no PQ buses or no) a# b5 K; `, i/ E U3 \
PV buses under newer versions of Matlab.; n( f: w' m9 u
2/25/99 + @- f! b H' D* ], Y - Fixed a bug in uopf.m which occurs when two (or more) 0 O8 P4 d, h' T' q% g generators have positive decommitment indices but shutting- h# H' @3 y- w9 ^8 Y" y" w
them down one at a time always results in increased system " W% S! N6 G9 r cost. In this scenario, it would go into an infinite loop0 h3 T/ `( \& G* x
of attempting to shut them down one by one.* J" j J% I# ~8 `9 j0 _
2/24/99* y; f5 b2 q) N: K& g# k) L7 p, L& r
- Modified uopf.m to be able to handle the case where the % R+ y% j" I- g+ x( K. k sum of the Pmin's is greater than the load. It shuts down ' y, B% U7 V, L6 H1 _) B$ m: w/ D generators in order of decreasing average cost at Pmin) M! g9 G: K( [5 q
(breaking ties randomly) until this infeasibility is gone. ! G, h5 l' z5 o( D& K0 l2/16/99 9 [6 j) d* v( i - Fixed bug in pfsoln.m which caused crashes in Matlab 5) C/ o* Z0 N Y" C/ m
for systems with no capacitors. 4 T9 `! r9 J5 W" P - Added print2mp.m, which can print out a MATPOWER case file 9 u- A& }) `' J" D3 a& F8 ] from the data matrices. 2 o4 o# B2 P( K7 L! H - Added to run*pf.m ability to save solved case.8 W4 H- r, C1 }7 t4 e
2/10/997 Y) ?- d) ~" q
- Modified ext2int.m to allow for area matrix to be empty.: r8 \3 c5 f4 J9 z9 y0 q
12/3/98% H" ?+ T4 |/ E: H; @
- Changed pfsoln.m so that there is only one slack generator. 9 f+ M, [0 } p7 r3 t2 s- L! v! n Instead of dividing the P between multiple gens at the5 H' U. h; D: \) m
slack bus in proportion to capacity (this caused problems : J* P5 ?) k# E4 j7 {' n for the LPconstr versions of the OPF), it now treats the& k/ e! |3 C0 b i/ g
first generator at the slack bus as the only slack generator, 2 E% S& J! e6 t8 t0 |' Q' Y3 ` leaving the dispatch of the other gens at the bus unchanged.+ ]) M. F, L1 R9 m8 y5 g) U4 _
- Added generator number to generation constraint printout and- X/ p) _6 k. {* h3 \
branch number to branch data and branch flow limit printouts.: S$ l6 A) n& P, i
12/2/98 3 ~6 u0 [6 R0 [* _2 g1 ~5 ` - Changed printpf.m to print elapsed time and objective fcn' V' P# O% e: o1 x' U
value even when OUT_SYS_SUM is turned off. / i% ]; X. K& {1 o+ a - Added code to LPconstr.m to explicitly zero out lambdas for* A: [9 s! F: L. H8 Y
non-binding constraints.7 [& q5 O0 n, G
12/1/98 8 v; z' N- ]" ~5 @ [3 m' ^( {& A - Made modifications to ..., I# H( d* U# c
bustypes.m, |8 B( X' D9 l1 R, a
fun_ccv.m ; k9 K3 k/ |( a2 m7 I fun_std.m : h+ R4 ^6 K8 P3 M$ q' a) j grad_ccv.m M' K s+ H5 k. L% g- B: ? grad_std.m2 }! a l/ o+ z. Y
LPeqslvr.m % Q8 o d/ ?# H% c! o% B/ Q* l6 f' h makeSbus.m! [8 e z7 P0 u8 T' a W
opf.m4 N. R4 p* [: ~0 G
opfsoln.m `! o7 P5 l' W h) h' o
pfsoln.m 1 e: e, n" x$ j2 u& i) L9 n: x! s printpf.m : D3 N; h J2 B/ G% [5 O- d+ G$ z runpf.m 3 R+ P n& @5 z+ p; D1 O ... to allow for multiple generators at each bus. For simple 6 S. W% ~/ q3 `2 T9 g/ V power flow, the Q dispatch is divided between multiple gens1 N Z) t# f4 u u9 r4 z
at a bus in proportion to each gen's Q capacity. Likewise5 b! f( t9 A; J( ?# w+ {
with P for multiple gens at the slack bus. ' z1 {0 e3 ?) v6 b& B3 F1 R% N& m! p10/29/989 p- `( \, r6 o. T0 c
- Fixed bug in uopf.m which caused it to crash when attempting" X) F3 u3 M1 s# x- s% L
to restart a generator after more than 2 had been shut down. + ]4 Q+ J0 J; B, s6 j10/19/98 5 y. B5 u4 t" W8 b( E1 l' D5 l - Generalized definition of GEN_STATUS column of gen matrix& b5 m( e B* L7 Y* L
to allow for distinctions in the status of out-of-service X8 r! y7 e) a. Q
generators. The default values of 0 => out-of-service and& m% R q# y/ O; {6 O
1 => in-service still work, but the logic has been changed `/ s: p$ O: K1 e a so that GEN_STATUS > 0 is now in-service and& Q# ]- `. }8 {
GEN_STATUS <= 0 is now out-of-service, as opposed to 1 n; \8 p) g5 }, m& `, V6 c GEN_STATUS ~= 0 and GEN_STATUS == 0, respectively, which ( C) A$ R) n* I# D3 [! c2 j was used previously. This allows for a GEN_STATUS of -1,6 |& e7 ~) `0 A* X" H- B
for example, to indicate a generator which is off-line5 x1 t& b7 e) V* c% e2 K" n& m! `- o# c
but could be brought on in case of an emergency. 5 s3 s, D! s1 A) K9 l% J9/2/98 % }0 T2 H, N- E7 W - Fixed bug in printpf.m which caused area exports to be" b7 A* {% I% y5 C
off slightly. 1 o. T3 v4 j/ l7 Y9/1/98 $ Y5 A: g5 M6 C7 v0 J - Fixed bug in printpf.m. Total intertie flow was double the , g& L$ W" o6 l' T9 r correct value. 0 H3 O9 ?& a$ \. C5 [8/31/98 ; W4 Z3 }5 ^, O0 ~ - Fixed bug which included line flow limits for out-of-service5 @7 [! `( X' u, e* _( k2 |
lines in OPF.2 o1 z9 a3 O; i( E! H0 B
- Modified pfsoln.m, opfsoln.m, printpf.m to zero out flow on / E4 U, Y6 y* j4 A. _ X$ R3 [ lines which are out-of-service (found by Ramazan Caglar). ) R6 P- b: k2 V1 E+ ?7/28/98" p5 B( N0 Q3 o) G2 E1 D* h7 N
- Changed VAR and MVAR to VAr and MVAr everywhere in output. & d0 b2 U% r3 ?! F# n" D3/13/98 / G7 m" g# _1 B6 ~ - Decreased the default value of LPC_TOL_X option to increase- b3 t9 ?; ~) J' {
solution quality. % I) `2 o$ F4 K6 { - Modified fix of 2/10/98 to use a value based on the value of $ q5 \" i* e3 L7 M9 ?) O( C* o the OPF_VIOLATION option. $ T" I$ R' i8 j/ V3/6/982 A; f$ O0 E/ L) k+ v5 O
- Fixed 2 bugs in makeYbus.m. Phase shifters now shift the phase the* i1 ?4 `) i& V) N3 s2 k f
right direction, the line charging susceptance parameter is now# S/ K* C1 }9 }+ h) o# w
correctly ignored for transformer and phase shifters. : e0 Y6 \5 w; ?* D3/3/98 * G9 b: X# v0 C9 g) [8 _ - Fixed a bug fun_std.m which caused it to always compute 2nd order$ J" G8 {/ l6 ?, \
derivatives. Now it only computes them when requested.9 @$ A% d% D1 h9 s0 @$ \
2/10/98; y# O) G7 {1 p4 P( ?1 l
- In previous versions, Pmin/Pmax constraints are relaxed by 1.0e-6* r9 K. L; }9 @2 l& u
in opf.m to avoid falsely reporting a binding Pmin/Pmax constraint; d2 h: ~9 p8 y# ]; [# Y
in a case where a piece-wise linear cost function has a corner Z8 L) j! N, G+ ]& a
point exactly at the limit. Changed the amount of relaxation to0 Q4 l( ^8 {1 f! w. ^
1.0e-4 since the problem still occurred at times.& Y: z& H+ M2 |1 C5 F% }
1/29/98 4 e" S( l3 m }) q - Changed the value of LPC_MAX_IT from 1000 to 400 to allow for- N. @3 {4 j$ `0 g, h: J
earlier detection of infeasible OPF./ B. l, R' y( K1 [( Z0 F. E. \
Changes since 1.0.1 5 @3 _; a! C. t! }' {/ E4 S-------------------. }* @3 m' B Y: S9 f- W8 T3 U8 |6 j' E
12/24/977 k F+ C: `8 g. Q3 s
- Released version 2.0. 3 M4 w2 k" ]8 ^4 v! K# @12/19/97 U9 S1 c5 g5 Z1 k' g/ n
- Fixed ambiguity in case file data and comments regarding lines [5 S4 b* C1 M- V) o! R
vs. transformers. Now a tap ratio of zero means that it's a line* h4 Z1 w: ?) Z1 J; X
and a non-zero tap ratio means that it's a transformer.. n* o& d0 _! ?+ ^# @. d5 Y
- Optimized formation of Ybus (and hence B matrices).9 P6 a7 h) X3 I9 y& k9 i
12/18/97 ) a8 h/ l; t$ i, {, c | - Implemented fast decoupled load flow.) P! s- }& _ g# u: p C- m# J& k
12/17/97- v& G9 a, [/ `) @
- Optimized formation of Jacobian matrix in newtonpf.m (significant5 e7 R. {; `: u( W
improvement for large systems under Matlab 5). 0 H: _7 V7 }: l % S. e5 L( Q& S* X; }; y5 V12/16/97+ |3 t+ ^. _0 K
- Fixed another bug in calculation of losses. Previous versions6 A, F8 A# R$ f) Z# f: G( e
did not take into account off-nominal taps for transformers. 3 ~1 `. B6 m" c9 J - Fixed a bug in calculation of losses. Previous versions; E0 h% d! n- I: q: `; y
included line charging injection in reactive line losses.& K8 D6 h; _8 `4 k3 Q9 B
- Added ability to optionally return solution data from 6 s! K7 }/ P+ a9 v3 l run*.m functions. 2 j6 a! _* @; B+ }; O - Added ability to optionally print results to a file. 5 s0 _8 a" R6 ` ^ - Added system and area summaries to printpf and modified to # H0 ]( g' Y( g$ R+ K) \* I- ? handle the new printing options.9 Z8 d |4 T# N) W9 f
12/12/977 F+ O2 M. O L, y# E6 L. ?% b! c
- Consolidated printing into printpf.m, eliminated printopf.m. $ B! C- \6 T% Q - Removed QCCV method (standard formulation solves same problem, - ?! c3 z" F. g& \ but more efficiently). / Z6 S, n$ Q* Y3 k' p6 |5 i - Removed OPF algorithms which use fixed generator voltages, A& z) g. _& b! g+ t( N9 o
(this can still be done by changing voltage limits in the3 P! m# q7 C8 n
case file), renumbered OPF algorithms, removed CCV.m and 8 ~$ Z4 I$ [3 j( v( g X: Q varVg.m.8 G3 i$ {9 w- o: g
12/11/97 ' C2 j1 c U" e$ I - Added 2 more levels of control of verbose output.( Y& U1 {1 N* [
- Put all MATPOWER options into an options vector defined in t7 @% s3 m7 K4 s, b# e5 I0 @: @ mpoption.m.% q" s: _: f% q7 _5 @0 q: j
12/10/97 4 T% |6 j; ^" ]3 o- E! a - Incorporated new LP-based OPF routines and updated alg codes.9 ^- C$ u' D4 L, v+ {" |
- Fixed a bug in the documentation in the case files regarding ; d1 [! ~7 E- n8 d the 4th column of gencost. For piece-wise linear cost functions ' G; l- H7 S. o2 H/ i7 ^ this value is the number of data points, not the number of5 {7 b( W4 ~) e1 D# X& ~- W; a0 v
parameters (x and y for each point). $ K5 o$ p% r& `2 M9 l7 C+ E6 Y - Removed some m-files that are not used (usesOT.m, usesLP.m). ! l% }# F& x) C2 `; U! M - Renamed some m-files (OTfungra.m to fg_names.m, OTSfun.m to2 L8 `5 G( N' u0 d" J# f% g
fun_std.m, OTgra.m to grad_std.m, OTCCVfun.m to fun_ccv.m,- }7 T2 {7 D7 P6 x9 P2 o
OTCCVgra.m to grad_ccv.m). % f0 P8 N+ w% a) k12/8/97" z3 r2 I m" {
- Rewrote uopf.m to use a smarter decommitment strategy (see the - m2 z: a3 R; m! q+ x docs for the details of the new method). Removed ref, pv, pq + E4 Z" N% |/ K; e$ z3 d" B3 X1 R from the list of parameters passed in, since they were not used./ @5 @2 w" W" {. x) K7 ^
11/19/97 4 s0 Q$ F, b: [1 L( g% S - Fixed a bug in previous versions of uopf.m which returned" D& K, a$ m" m/ E5 N
incorrect values for Pmin. % f3 S4 a. g* z( s: L- w- c10/28/97 4 u# S) r/ L2 W1 a9 w- S9 r# Q; r - Increased maximum number of iterations for constr-based OPF.# j, Z! Q$ C3 U2 W/ G ?& d* P
10/24/97 ) u n: k; v. \# b - Fixed a bug in previous versions which may result in incorrectly & n f! W% S( Z8 O" y reporting Pmin or Pmax limits to be binding, possibly with large: y9 ^) O# L, M( V4 q8 T$ b
multipliers, if the piece-wise linear cost function has a corner7 c( i' Z. T: s7 q
point exactly at Pmin or Pmax.: D; i( n( C7 e: T% K" X
10/22/97 0 ], f3 H' O0 y- \# |" ]8 P - Added to OTSgra.m (renamed to grad_std.m in 2.0) the ability/ m, T# ?3 |8 g* i, M- ]6 P
to return the second derivatives of the objective function. ; }2 M- ^' i2 q: S* K- Q( k9/24/97 ) ~5 V' @$ L' z9 a9 M: P - Fixed a bug in previous versions of runuopf.m which prevented it ' F9 p# Q- J- d5 Q, H8 W/ Q from printing out the raw data needed for our Perl DB interface. , Q7 L$ O( i D6 K9/23/97 % {* n* {& H. `: d: x7 f) ^! F - Fixed a bug in 1.1b1 in OTCCVgra.m (renamed to grad_ccv.m in 2.0)7 j' _- ^0 n5 j$ g
which caused printing of warning message "Concatenation involves& {/ D K5 f: B7 @& y W6 ]
an incommensurate empty array" under Matlab 5./ o, k1 _+ O1 l5 ^8 E3 p& |
9/22/97 7 Q% l* a: V2 Z- Q6 p - Fixed a bug in 1.1b1 which prevented runuopf.m from running at all. 4 b5 O. m: _4 t/ e# @8 T/ ^ Wrong number of parameters to call opf.m. e- g3 c" i" D0 {2 ~# ~5 z, ^9/20/97; ] a% V* ^+ U& f" E
- Released version 1.1b1.7 G I6 A+ K# Q# @1 _, R
9/19/97& L6 @! o3 L) ^# o1 Z2 [/ ~
- Modified the formulation of the OT-based OPF. The objective ' H y% D) ^1 g& _# I7 R function may now include costs for reactive power as well as : ?2 O3 u. \0 p% v1 r7 e' n# u active power. In previous versions the reactive power variables* f% u7 M0 w6 { N1 c" V0 C
and reactive power balance equations for generator buses were * \3 P$ g* N6 l5 n0 D% H not included explicitly in the optimization as variables and . q& A6 O% Y5 X" h; C* g equality constraints. Generator reactive powers were computed ' c; g" c9 q4 A; b directly. Now they are included explicitly in the optimization.2 f9 x! A! x( e( p! m9 q
Costs for Qg are specified in extra rows int gencost.& p- m+ b. _* L
* s$ e+ ]' T" a3 D- yChanges since 1.0 ' y, [$ I I0 H I8 l----------------- 4 |9 g) w0 W1 Q# M+ r! x- D9/20/97+ a1 g$ q" h! e9 \. T1 j
- Released version 1.0.1.* Y( Q; g* d( t' o* e" B2 B% J
9/19/97 " \0 S/ |& M' _, _. _; ^ - Fixed a bug in 1.0 OTSgra.m and OTCCVgra.m (renamed to5 u0 M3 A; d6 v4 m
grad_std and grad_ccv.m, respectively, in 2.0).m which used/ ?4 F- ?3 F2 T4 |4 g: R
incorrect coefficients to compute cost if specified as ( j; r2 N; S1 E polynomials of different degrees. # p2 t8 l, H* z3 z# C1 _9 i9/18/97 ( v: T1 A8 S( E - Fixed a bug in 1.0 in OTopf.m which caused the last equality8 B# h/ h, G" K2 e* E' ?
constraint (Q mismatch for last pq bus) to be treated as an2 Y1 `1 E; W3 l/ v9 S* [( V
inequality constraint. It appears that this constraint was# u0 j# W G ^3 l# ^
normally binding (unless Qd was negative) in which case the3 p9 Z" j+ U$ z) j
solution was still correct.& z" W' n" N( m2 y P- }& G" t
- Fixed a bug in 1.0 in runpf.m, initial voltage for generators 1 g8 c& B* L4 s t which were shut down were taken from gen(:, VG) rather4 N1 O' F, _8 B" H# w
than bus(:, VM).+ p$ m; S+ F$ F: q+ r7 b3 m8 k
- Fixed a bug in 1.0 in varVg.m which caused Kuhn-Tucker ~$ d+ V" A0 j0 l2 V- } multipliers to print out in the wrong place for LP-based OPF. 7 L! I% p6 H! E! p+ \# A, P! K- S2 }% }" K( K
Changes since 6/25/97 Version: N& r# l& j+ |9 B
-----------------------------7 k6 f' R1 F8 m( X4 o: }6 q6 `7 i
9/17/97! M( S: G# H+ s- `& k: x! J0 m
- Released version 1.0 (first widely publicized release). , z& |% N s- V( I+ M. D - added placeholders for LP-solvers that we can't re-distribute 0 A" d0 s/ u2 M/ k - updated documentation1 z3 T8 c0 V# |7 v' |, }+ C9 j
9/12/97 ) ^' a4 f% b/ h6 W8 n3 {8 }" D - added ability to do pretty & ugly printing at the same time 8 r- E7 ?7 a% y# g; i. s7 e also documented that ugly printing is for talking to our : j6 v/ T/ G8 _ W0 J3 Y our Perl database interface code* |9 l. Q0 l, k& | z8 O
- included Deqiang (David) Gan's LP IEEE -> matpower data. w! z- W; G; Z
conversion code / h) }3 @5 h1 A8 g - included Deqiang (David) Gan's LP based opf code L4 K& W% s+ n) H2 w t! y - fixed LAM_Q bug, now computes correctly for generator buses / h/ b+ d, m% c$ Y - fixed some bugs in totcost.m 6 S6 t/ o7 x6 R% J. l9/9/97 0 y6 d j& m; t9 R& @- b4 U - removed PRICE from idx_gen; p4 [8 B1 p+ y+ g4 M% \: ~$ {
9/4/97 ' r& K# T; T" m0 T - added code to convert from (possibly non-consecutive) external $ H* a) ]2 t2 b1 I6 z5 S% S! k+ L" T bus numbering to consecutive internal bus numbering before 3 L* }& @# F' H solving, and back to external before printing results : Q" B$ _) {/ p0 _' S/ W - replaced test*pf with run*pf which are now functions: b) L, y$ e# \1 m: M
taking the casefile name as a parameter (among other params)5 y5 i/ h/ b8 E
- made changes necessary to handle new format of case file$ Y" t1 O) E2 {0 P3 X5 i5 Q; U
(generator costs moved to gencost variable)3 {0 k' R; G/ D/ ]% g! B% N
( G+ L! Z' ]7 f" g7 ~! ]
Changes since I started keeping track ; G S! n; S' P3 P-------------------------------------. A" ~% `0 K- L9 H# X
6/25/97% T1 W; p! t: M, D. F
- made first public release (not widely publicized) $ B+ Y& F7 [+ q' X* _ - documentation updates% K0 [. p7 b- W2 Q l8 A
- changed names of m-files to fit DOS 8.3 limitation H f$ L. B$ ` buildsbus.m => makeSbus.m + [% n; R5 `$ J' m) S5 T buildybus.m => makeYbus.m & P7 Z0 a5 x- A: J1 m) P idx_branch.m => idx_brch.m ! b7 @, L. w/ `$ M dSbranch_dV.m => dSbr_dV.m; b1 @4 V o, P6 r
dAbranch_dV.m => dAbr_dV.m" R6 l2 c# Q0 G0 A% z( [
ucopfsoln.m => uopfsoln.m . B2 T/ L/ F9 s/ U. @! p4 E" f0 l testucopf.m => testuopf.m ; b l8 P& U( [6 I) h/ G ucopf.m => uopf.m (for naming consistency)3 }0 L" X& O, u$ v/ U6 p% \
- changed copyright notice 9 T* C. z: s' X2 s8 F6/18/97- {5 M/ K8 p9 L3 B1 R) g
- modified ucopf.m to allow a generator to be turned back on if 3 K Y$ c% b& u7 z6 q" _ shutting it off results in an infeasible (or at least 3 A- d) y1 P( u) r% n6 [/ i* u non-convergent) OPF, also changed the order of shutting down* i. P, l& D: h3 m7 V7 w
generators which are dispatched at zero, now chooses one with 7 c9 s1 k- |! W largest mu_Pmin 3 `* J% s% \5 c% f5 C- G3 I6/12/979 K! ^ p. t# X1 E! L
- fixed bug in printpf.m so it doesn't print PG & QG for gens that 7 t6 |+ P6 A# T g have been shut down* [* Y7 Z! F& ^# \
- fixed bug in pfsoln.m to correctly compute the reference bus power E% W# U/ k- q. B injection when generators have been shut down 6 L/ m0 P; t* I; o6/10/97- a8 y5 }1 g( j1 u0 ^$ X
- fixed Vg initialization bug in testpf.m (not just testopf, etc)! {+ Z7 {+ q" a8 s+ T) c7 g
6/9/97/ Z( f0 v. N+ C8 W* V3 |% `
- fixed bug in PLCCV versions which set the initial values of the 2 A1 @( a! w% N cost variables wrong (used p.u. Pg instead of actual) 9 x; b2 z) D0 E7 Y# y- w. a+ f - made opfsoln.m copy generator voltages back to gen(:, VG)8 I9 L" K: H1 s9 U4 B) w
- fixed bug in code which initializes generator voltages, it was6 ^3 }- ?; r( R; p; B
always setting the angle to zero, now it uses the value from the + M( \, O2 N, [8 ~& y case file 2 p0 M( e" i* H- {+ [9 P9 Q6/3/97 / ]2 `/ Y2 E& _: }& ~ - included opf variations which use cost variables constrained 2 P9 K$ F! m: B by a piece-wise linear cost function (PLCCV = piece-wise linearly& W/ F9 A4 ]. ^# Q. p; q+ ~7 Q2 Z4 B
constrained cost variables)5 r1 _4 F- f Z: Q3 y- r) [
6/2/97 7 @/ ]7 y5 N3 r+ f( r- g - included opf variations which use cost variables constrained. b7 C1 o1 A. Y* O
by a quadratic cost function (QCCV = quadratically constrained # M: s. q2 I+ c# F cost variables) * S0 F* H5 \8 f- o1 w - included opf variation which allows generator voltage - K5 d, t, s, s! E magnitudes to vary ( \1 O( N7 B, |2 B - fixed line in test*pf.m scripts which initializes V0 (I'd missed) y% N# S) O0 m" z8 _2 P4 f3 W1 w
the sqrt(-1) before " V$ L5 @' n* t' b* L4/16/97* Z+ h8 x) c( t1 p
- changed line 59 of ucopf.m from "return" to "break" to ensure ! Q0 H/ Y! i1 f6 S( s( M, \ return values are correct 5 F9 C# `3 }/ o& c3 k& p3 _- O4/14/97& D; ]1 b3 M6 K X2 j, J7 N
- added some print statements to ucopf.m . N' S) r" J2 |8 |1 Z# n7 z U4/12/97 " G4 A/ n( k, _( x3 y5 v5 J - reduced max iterations to 100 for constr in opf.m 6 A$ P7 |5 F. |* P. E1 k$ b. g; ]* d; L4/8/97; [/ C" z% F( e0 y" s. Z
- modified opf.m, ucopf.m, testopf.m, testucopf.m to include f0 ^3 i( V; ` "success", a variable which indicates whether opf was solved ' M1 r* s- G) x' H) U successfully or not6 P5 C7 R7 e/ i: n1 Y3 |5 A2 X
4/7/97 . t! Y2 Y2 I* y' K0 S: V, K - fixed bug in ucopf.m, assumed all generators are initially , f- G0 j( @+ }6 l) }. M1 s. d/ ^ available