Matpower

Latest version: v8.0.0.2.2.2

Safety actively analyzes 714973 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 6

3.0b2

-----------------------------

9/7/04
- Released version 3.0b2.
- Added `OPF_P_LINE_LIM` option to mpoptions to use active power
instead of apparent power for line limits. *Thanks to Pan Wei
for the suggestion and some code.*

9/1/04
- Fixed bug in `savecase.m` introduced when making `areas` and `gencost`
optional.
- Updated `opf_slvr.m` with options for MINOS and fmincon.
- Removed option 15 `OPF_NEQ` from docs (not a user option). Removed option
52 `VAR_LOAD_PF` (unused, always behaves as if this option were 1).
Changed semantics and default value for option 51 `SPARSE_QP`. By default
(value = 1) it will use sparse matrices if a sparse QP/LP solver is
available and full matrices otherwise. Setting the value to 0
will force it to use full matrices even with a sparse-capable solver.
- Cleaned up checking for optional functionality, and fixed a bug
that would miss MEX files if there was an identically named directory
by adding `have_fcn.m`.

3.0b1

------------------------------

8/25/04
- Released version 3.0b1.

8/24/04
- Made `mpoption()` throw an error if passed an invalid option name.

8/23/04
- Added an `fmincon` based OPF solver for the generalized formulation
previously used by `mopf` (Carlos).
- Restructured `opf.m` so all OPF solvers have a similar API based
on the one from `mopf.m` (Carlos).
- Added some quick tests for `runpf` and `runopf` for each algorithm.

8/13/04
- Renamed `area` variable to `areas` to avoid masking the built-in
function of the same name.
- Made OPF data matrices `areas` and `gencost` optional for running
simple power flow.

7/15/04
- The `loadcase` function (and therefore all of the `run*` functions
now optionally accept a struct with the data matrices as fields
in place of the case file name.
- Added `t` subdirectory with various tests and testing tools.

7/8/04
- Updated `mp_lp.m` and `mp_qp.m` to try `linprog()` and `quadprog()`
after trying `bp`, since `lp()` and `qp()` are no longer included
in the Optimization Toolbox as of version 3.

7/7/04
- Removed `case.m`, added `caseformat.m`, made `case9.m` the default
case and fixed function names in other case files to avoid
use of reserved word `case`.
- Fixed bugs in `runcomp.m`.

6/23/04
- Fixed bug in `newtonpf.m` which caused algorithm to diverge when
the Newton step resulted in a negative voltage magnitude.

4/17/03
- Changed `uopf.m` to use a dynamic programming approach. More
computationally expensive, but should find significantly better
results when there are many gens to shut down.
- Added `mp_lp.m` and `mp_qp.m`, equivalents to `lp.m` and `qp.m`,
respectively that call BPMPD if available. Modified `LPrelax.m`,
`LPsetup.m` and `dcopf.m` to call these new functions.

4/14/03
- Fixed a bug in `pfsoln.m` which for cases with a single generator.

10/23/02
- Fixed bus numbering bug in System Summary section of `printpf.m`.

6/20/00
- Fixed a bug in `printpf.m` in the generator section, where
the generator was assumed to be off if it's real power
output was zero, even if the reactive output was non-zero.
- Modified `printpf.m` to print out lambdas in generation section
for generators that are shut down.

6/8/00
- Modified `cdf2matp.m` so that `Pd` also includes any generation at
buses specified as PQ buses. Also modified identification of
generator buses to include only PV or reference buses. *Thanks
to Venkat.*
- Modified `cdf2matp.m` so that it always treats the input values
for `Gs` and `Bs` as per unit values and converts them to actual
values expected by MATPOWER. *Thanks to D. Devaraj.*

2.5b3

9/22/99
- Modified `grad_*.m` to return sparse matrices, unless using
`constr.m` or an LP/QP solver that doesn't handle sparse
matrices. Cleaned up sparse<->full conversions in `LPconstr.m`,
`LPrelax.m`, and `LPsetup.m`.

9/21/99
- Undid a "bug fix" from 3/6/98 in `makeYbus.m` which zeros out
charging capacitance for transformers. Apparently some
transformer models actually have a non-zero charging parameter
when using the model used by MATPOWER (ideal transformer in
series with a PI model).
- Added `loadcase.m` which loads a MATPOWER case from an M-file
or from a MAT-file. Changed all of the `run*.m` files to use this
as the default way to load case files.
- Renamed `print2mp.m` to `savecase.m` and added the ability to
save a case as a MAT-file as well as an M-file.

9/15/99
- Fixed `opf.m` so that it correctly uses the termination
tolerances in the MATPOWER options vector for `constr.m`.
- In previous versions, Pmin/Pmax constraints are relaxed by
`10 * OPF_VIOLATION` in `opf.m` to avoid falsely reporting a
binding Pmin/Pmax constraint in a case where a piece-wise linear
cost function has a corner point exactly at the limit. This
code was moved out of `opf.m` (and the standard MATPOWER
distribution) to `smartmkt.m` and the value was changed to
`100 * OPF_VIOLATION`.
- Modified `opf.m` so the MINOS-based solver uses `OPF_VIOLATION`
to set the value of `MNS_FEASTOL` and `MNS_ROWTOL` if they are
set to zero.

9/9/99
- Included MINOS-based OPF with all of its options as
algorithm 500. (involved including `area` in calls to `opf.m`
and `uopf.m`)
- Removed some unused lines from `fun_ccv.m` and `grad_ccv.m`.

8/5/99
- Fixed a bug in the `pfsoln.m` in the distribution of Q among
generators at the same bus. Initially attempted to distribute
Q to generators proportional to each generators' Q "capacity".
To do this correctly requires special cases for generators
with `QMIN` equal to `QMAX`. For the sake of simplicity, we now
distribute Q equally among all generators at the bus.
Note: As before, the simple power flow does NO feasibility
checking.

7/19/99
- Modified `runuopf.m` and `uopf.m` to handle DC OPF. Added the
function `runduopf.m` which calls `runuopf.m` with the `PF_DC` flag
set to 1.
- Fixed size of 2nd order (all zero) coefficient of objective
for piecewise linear cost case in `dcopf.m`.

7/16/99
- Added the flag `QP_SPARSE` to `mpoption.m` to indicate whether the
QP solver being used can accept sparse matrices. Also modified
`dcopf.m` to use this flag.
- Fixed handling of `VERBOSE` option in `dcopf.m`
- Added the flag `PF_DC` to `mpoption.m` to indicate whether the
power flow formulation to be used for power flow and optimal
power flow is a DC approximation or full AC representation.
Merged `rundcpf.m` with `runpf.m` and `rundcopf.m` with `runopf.m`
so that the appropriate solver will be used based on the
value of the `PF_DC` flag in the options. The functions `rundcpf.m`
and `rundcopf.m` were modified to simply call `runpf.m` and
`runopf.m`, respectively, with the `PF_DC` flag set to 1.

7/15/99
- Changed the sign of the phase shifters in `printpf.m` to be
consistent with the bug fix to `makeYbus.m` made on 3/6/98.

7/14/99
- Included four new m-files (`makeBdc.m`, `dcopf.m`, `rundcpf.m`,
and `rundcopf.m`) which implement a DC power flow and DC
optimal power flow algorithms.

7/13/99
- Cleaned up variable names in `makeYbus.m` to avoid confusion.

6/10/99
- Changed UOFP to UOPF in print statements `uopf.m`.

6/3/99
- Modified `print2mp.m` overwrite instead of append to an
existing file.
- Fixed bug in `cdf2matp.m` to make it always correctly write
a text file output.

2.5b2

- Modified `print2mp.m` to include line flows and Lagrange
and Kuhn-Tucker multipliers in output if available.

4/29/99
- Included a Gauss-Seidel power flow solver `gausspf.m`, and
made corresponding changes to `runpf.m` and `mpoption.m`.
*Code contributed by Alberto Borghetti.*

4/28/99
- Modified `newtonpf.m` to handle cases with no PQ buses or no
PV buses under newer versions of MATLAB.

2/25/99
- Fixed a bug in `uopf.m` which occurs when two (or more)
generators have positive decommitment indices but shutting
them down one at a time always results in increased system
cost. In this scenario, it would go into an infinite loop
of attempting to shut them down one by one.

2/24/99
- Modified `uopf.m` to be able to handle the case where the
sum of the Pmin's is greater than the load. It shuts down
generators in order of decreasing average cost at Pmin
(breaking ties randomly) until this infeasibility is gone.

2/16/99
- Fixed bug in `pfsoln.m` which caused crashes in MATLAB 5
for systems with no capacitors.
- Added `print2mp.m`, which can print out a MATPOWER case file
from the data matrices.
- Added to run*`pf.m` ability to save solved case.

2/10/99
- Modified `ext2int.m` to allow for area matrix to be empty.

12/3/98
- Changed `pfsoln.m` so that there is only one slack generator.
Instead of dividing the P between multiple gens at the
slack bus in proportion to capacity (this caused problems
for the `LPconstr` versions of the OPF), it now treats the
first generator at the slack bus as the only slack generator,
leaving the dispatch of the other gens at the bus unchanged.
- Added generator number to generation constraint printout and
branch number to branch data and branch flow limit printouts.

12/2/98
- Changed `printpf.m` to print elapsed time and objective fcn
value even when `OUT_SYS_SUM` is turned off.
- Added code to `LPconstr.m` to explicitly zero out lambdas for
non-binding constraints.

12/1/98
- Made modifications to the following to allow for multiple
generators at each bus. For simple power flow, the Q dispatch
is divided between multiple gens at a bus in proportion to
each gen's Q capacity. Likewise with P for multiple gens at
the slack bus.
- `bustypes.m`
- `fun_ccv.m`
- `fun_std.m`
- `grad_ccv.m`
- `grad_std.m`
- `LPeqslvr.m`
- `makeSbus.m`
- `opf.m`
- `opfsoln.m`
- `pfsoln.m`
- `printpf.m`
- `runpf.m`

10/29/98
- Fixed bug in `uopf.m` which caused it to crash when attempting
to restart a generator after more than 2 had been shut down.

10/19/98
- Generalized definition of `GEN_STATUS` column of `gen` matrix
to allow for distinctions in the status of out-of-service
generators. The default values of 0 => out-of-service and
1 => in-service still work, but the logic has been changed
so that `GEN_STATUS > 0` is now in-service and
`GEN_STATUS <= 0` is now out-of-service, as opposed to
`GEN_STATUS ~= 0` and `GEN_STATUS == 0`, respectively, which
was used previously. This allows for a `GEN_STATUS` of -1,
for example, to indicate a generator which is off-line
but could be brought on in case of an emergency.

9/2/98
- Fixed bug in `printpf.m` which caused area exports to be
off slightly.

9/1/98
- Fixed bug in `printpf.m`. Total intertie flow was double the
correct value.

8/31/98
- Fixed bug which included line flow limits for out-of-service
lines in OPF.
- Modified `pfsoln.m`, `opfsoln.m`, `printpf.m` to zero out flow on
lines which are out-of-service. *Found by Ramazan Caglar.*

7/28/98
- Changed VAR and MVAR to VAr and MVAr everywhere in output.

3/13/98
- Decreased the default value of `LPC_TOL_X` option to increase
solution quality.
- Modified fix of 2/10/98 to use a value based on the value of
the `OPF_VIOLATION` option.

3/6/98
- Fixed 2 bugs in `makeYbus.m`. Phase shifters now shift the phase the
right direction, the line charging susceptance parameter is now
correctly ignored for transformer and phase shifters.

3/3/98
- Fixed a bug `fun_std.m` which caused it to always compute 2nd order
derivatives. Now it only computes them when requested.

2/10/98
- In previous versions, Pmin/Pmax constraints are relaxed by 1.0e-6
in `opf.m` to avoid falsely reporting a binding Pmin/Pmax constraint
in a case where a piece-wise linear cost function has a corner
point exactly at the limit. Changed the amount of relaxation to
1.0e-4 since the problem still occurred at times.

1/29/98
- Changed the value of `LPC_MAX_IT` from 1000 to 400 to allow for
earlier detection of infeasible OPF.

2.0

----------------------------

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 in `gencost`.

1.0.1

------------------------------

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.m` and `grad_ccv.m`, respectively, in 2.0) 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.

Page 5 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.