www.gusucode.com > matpower工具箱源码程序 > matpower工具箱源码程序/MP2_0/Changes.txt

    -----------------------------
 Change history for MATPOWER        Wed, Dec 24, 1997
-----------------------------

Version:    2.0

maintained by Ray Zimmerman <rz10@cornell.edu>

Known Bugs
----------

Please report any bugs you find to Ray Zimmerman <rz10@cornell.edu>.

- MathWorks bug: constr does not correctly handle negative lambdas
- identification of binding constraints in printpf.m should
  use OPF_VIOLATION instead of size of MU
- 'area' is the name of an m-file in Matlab 5, my variable 'area'
  masks this m-file


Possible Future Changes
------------------------

- allow printing of constraints & violations with power flow
- add ability to enable/disable certain constraints
- rename m-files to all lower-case to avoid problems when copying
  from a case insensitive OS to a case-sensitive one
- add feasibility constraints to power flow
- add security constraints
- add objective function to maximize transfer from one area to another
  (can be done via generator cost functions)
- add continuation power flow to solve when no direct solution exists
- allow multiple generators at a bus and load "bids"


Changes since 1.0.1
-------------------

12/24/97
    - Released version 2.0.

12/19/97
    - Fixed ambiguity in case file data and comments regarding lines
      vs. transformers. Now a tap ratio of zero means that it's a line
      and a non-zero tap ratio means that it's a transformer.
    - Optimized formation of Ybus (and hence B matrices).

12/18/97
    - Implemented fast decoupled load flow.

12/17/97
    - Optimized formation of Jacobian matrix in newtonpf.m (significant
      improvement for large systems under Matlab 5).
    
12/16/97
    - Fixed another bug in calculation of losses. Previous versions
      did not take into account off-nominal taps for transformers.
    - Fixed a bug in calculation of losses. Previous versions
      included line charging injection in reactive line losses.
    - Added ability to optionally return solution data from
      run*.m functions.
    - Added ability to optionally print results to a file.
    - Added system and area summaries to printpf and modified to
      handle the new printing options.

12/12/97
    - Consolidated printing into printpf.m, eliminated printopf.m.
    - Removed QCCV method (standard formulation solves same problem,
      but more efficiently).
    - Removed OPF algorithms which use fixed generator voltages
      (this can still be done by changing voltage limits in the
      case file), renumbered OPF algorithms, removed CCV.m and
      varVg.m.

12/11/97
    - Added 2 more levels of control of verbose output.
    - Put all MATPOWER options into an options vector defined in
      mpoption.m.

12/10/97
    - Incorporated new LP-based OPF routines and updated alg codes.
    - Fixed a bug in the documentation in the case files regarding
      the 4th column of gencost. For piece-wise linear cost functions
      this value is the number of data points, not the number of
      parameters (x and y for each point).
    - Removed some m-files that are not used (usesOT.m, usesLP.m).
    - Renamed some m-files (OTfungra.m to fg_names.m, OTSfun.m to
      fun_std.m, OTgra.m to grad_std.m, OTCCVfun.m to fun_ccv.m,
      OTCCVgra.m to grad_ccv.m).

12/8/97
    - Rewrote uopf.m to use a smarter decommitment strategy (see the
      docs for the details of the new method). Removed ref, pv, pq
      from the list of parameters passed in, since they were not used.

11/19/97
    - Fixed a bug in previous versions of uopf.m which returned
      incorrect values for Pmin.

10/28/97
    - Increased maximum number of iterations for constr-based OPF.

10/24/97
    - Fixed a bug in previous versions which may result in incorrectly
      reporting Pmin or Pmax limits to be binding, possibly with large
      multipliers, if the piece-wise linear cost function has a corner
      point exactly at Pmin or Pmax.

10/22/97
    - Added to OTSgra.m (renamed to grad_std.m in 2.0) the ability
      to return the second derivatives of the objective function.

9/24/97
    - Fixed a bug in previous versions of runuopf.m which prevented it
      from printing out the raw data needed for our Perl DB interface.

9/23/97
    - Fixed a bug in 1.1b1 in OTCCVgra.m (renamed to grad_ccv.m in 2.0)
      which caused printing of warning message "Concatenation involves
      an incommensurate empty array" under Matlab 5.

9/22/97
    - Fixed a bug in 1.1b1 which prevented runuopf.m from running at all.
      Wrong number of parameters to call opf.m.

9/20/97
    - Released version 1.1b1.

9/19/97
    - Modified the formulation of the OT-based OPF. The objective
      function may now include costs for reactive power as well as
      active power. In previous versions the reactive power variables
      and reactive power balance equations for generator buses were
      not included explicitly in the optimization as variables and
      equality constraints. Generator reactive powers were computed
      directly. Now they are included explicitly in the optimization.
      Costs for Qg are specified in extra rows int gencost.


Changes since 1.0
-----------------

9/20/97
    - Released version 1.0.1.

9/19/97
    - Fixed a bug in 1.0 OTSgra.m and OTCCVgra.m (renamed to
      grad_std and grad_ccv.m, respectively, in 2.0).m which used
      incorrect coefficients to compute cost if specified as
      polynomials of different degrees.

9/18/97
    - Fixed a bug in 1.0 in OTopf.m which caused the last equality
      constraint (Q mismatch for last pq bus) to be treated as an
      inequality constraint. It appears that this constraint was
      normally binding (unless Qd was negative) in which case the
      solution was still correct.
    - Fixed a bug in 1.0 in runpf.m, initial voltage for generators
      which were shut down were taken from gen(:, VG) rather
      than bus(:, VM).
    - Fixed a bug in 1.0 in varVg.m which caused Kuhn-Tucker
      multipliers to print out in the wrong place for LP-based OPF.


Changes since 6/25/97 Version
-----------------------------

9/17/97
    - Released version 1.0 (first widely publicized release).
    - added placeholders for LP-solvers that we can't re-distribute
    - updated documentation

9/12/97
    - added ability to do pretty & ugly printing at the same time
      also documented that ugly printing is for talking to our
      our Perl database interface code
    - included Deqiang (David) Gan's LP IEEE -> matpower data
      conversion code
    - included Deqiang (David) Gan's LP based opf code
    - fixed LAM_Q bug, now computes correctly for generator buses
    - fixed some bugs in totcost.m

9/9/97
    - removed PRICE from idx_gen

9/4/97
    - added code to convert from (possibly non-consecutive) external
      bus numbering to consecutive internal bus numbering before
      solving, and back to external before printing results
    - replaced test*pf with run*pf which are now functions
      taking the casefile name as a parameter (among other params)
    - made changes necessary to handle new format of case file
      (generator costs moved to gencost variable)


Changes since I started keeping track
-------------------------------------

6/25/97
    - made first public release (not widely publicized)
    - documentation updates
    - changed names of m-files to fit DOS 8.3 limitation
        buildsbus.m     =>  makeSbus.m
        buildybus.m     =>  makeYbus.m
        idx_branch.m    =>  idx_brch.m
        dSbranch_dV.m   =>  dSbr_dV.m
        dAbranch_dV.m   =>  dAbr_dV.m
        ucopfsoln.m     =>  uopfsoln.m
        testucopf.m     =>  testuopf.m
        ucopf.m         =>  uopf.m  (for naming consistency)
    - changed copyright notice

6/18/97
    - modified ucopf.m to allow a generator to be turned back on if
      shutting it off results in an infeasible (or at least
      non-convergent) OPF, also changed the order of shutting down
      generators which are dispatched at zero, now chooses one with
      largest mu_Pmin     

6/12/97
    - fixed bug in printpf.m so it doesn't print PG & QG for gens that
      have been shut down
    - fixed bug in pfsoln.m to correctly compute the reference bus power
      injection when generators have been shut down

6/10/97
    - fixed Vg initialization bug in testpf.m (not just testopf, etc)

6/9/97
    - fixed bug in PLCCV versions which set the initial values of the
      cost variables wrong (used p.u. Pg instead of actual)
    - made opfsoln.m copy generator voltages back to gen(:, VG)
    - fixed bug in code which initializes generator voltages, it was
      always setting the angle to zero, now it uses the value from the
      case file

6/3/97
    - included opf variations which use cost variables constrained
      by a piece-wise linear cost function (PLCCV = piece-wise linearly
      constrained cost variables)

6/2/97
    - included opf variations which use cost variables constrained
      by a quadratic cost function (QCCV = quadratically constrained
      cost variables)
    - included opf variation which allows generator voltage
      magnitudes to vary
    - fixed line in test*pf.m scripts which initializes V0 (I'd missed
      the sqrt(-1) before

4/16/97
    - changed line 59 of ucopf.m from "return" to "break" to ensure
      return values are correct

4/14/97
    - added some print statements to ucopf.m

4/12/97
    - reduced max iterations to 100 for constr in opf.m

4/8/97
    - modified opf.m, ucopf.m, testopf.m, testucopf.m to include
      "success", a variable which indicates whether opf was solved
      successfully or not

4/7/97
    - fixed bug in ucopf.m, assumed all generators are initially
      available