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