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