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