The ^{83}

- Continuation power ﬂow with tangent predictor and Newton method corrector, based on code contributed by Shrirang Abhyankar and Alex Flueck.
SDP _PF , a set of applications of a semideﬁnite programming relaxation of the power ﬂow equations, contributed by Dan Molzahn (seeextras/sdp _pf ):- Globally optimal AC OPF solver (under certain conditions).
- Functions to check suﬃcient conditions for:
- global optimality of OPF solution
- insolvability of power ﬂow equations

- PSS/E RAW data conversion to
Matpower case format (experimental) based on code contributed by Yujia Zhu. - Brand new extensible
Matpower options architecture based on options struct instead of options vector. - Utility routines to check network connectivity and handle islands and isolated buses.
- New extension implementing DC OPF branch ﬂow soft limits. See
help toggle _softlims for details. - New and updated support for 3rd party solvers:
- CPLEX 12.6
- GLPK
- Gurobi 5.x
Ipopt 3.11.x- Knitro 9.x.x
- Optimization Toolbox 7.1

- Numerous performance enhancements.
- New functions:
runcpf() for continuation power ﬂow.case _info() for summarizing system information, including network connectivity.extract _islands() to extract a network island into a separateMatpower case.find _islands() to detect network islands.@opt _model/describe _idx() to identify variable, constraint or cost row indices to aid in debugging.margcost() for computing the marginal cost of generation.psse2mpc() to convert PSS/E RAW data intoMatpower case format.get _losses() to compute branch series losses and reactive charging injections and derivatives as functions of bus voltages.- New experimental functions in
extras/misc for computing loss factors, checking feasibility of solutions, converting losses to negative bus injections and modifying an OPF problem to make it feasible.

- Added
case5.m , a 5-bus, 5-generator example case from Rui Bo. - New options:
scale _load() can scale corresponding gencost for dispatchable loads.makeJac() can return full Jacobian instead of reduced version used in Newton power ﬂow updates.modcost() can accept a vector of shift/scale factors.total _load() can return actual or nominal values for dispatchable loads.runpf() ,runopf() , etc. can send pretty-printed output to ﬁle without also sending it to the screen.out.suppress _detail option suppresses all output except system summary (on by default for large cases).opf.init _from _mpc option forces some solvers to use user-supplied starting point.- MIPS 1.1 includes many new user-settable options.

- Reimplementated
@opf _model class as sub-class of the new@opt _model class, which supports indexed named sets of variables, constraints and costs. - Many new tests in test suite.

- Running a power ﬂow for a case with DC lines but no
gencost no longer causes an error. - Fixed a bug in
runpf() where it was using the wrong initial voltage magnitude for generator buses marked as PQ buses. Power ﬂow of solved case was not converging in zero iterations as expected. - Fixed fatal bug in MIPS for unconstrained, scalar problems.
Thanks to Han Na Gwon. - Fixed a bug in
int2ext() where converting a case to internal ordering before callingrunpf() orrunopf() could result in a fatal error due to mismatched number of columns in internal and external versions of data matrices.Thanks to Nasiruzzaman and Shiyang Li for reporting and detailing the issue. - DC OPF now correctly sets voltage magnitudes to 1 p.u. in
results . - Fixed a bug in MIPS where a near-singular matrix could produce an extremely large Newton step, resulting in incorrectly satisfying the relative feasibility criterion for successful termination.
- Improved the starting point created for
Ipopt , Knitro and MIPS for variables that are only bounded on one side. - Fixed bug in
savecase() where the function name mistakenly included the path when thefname input included a path. - Fixed bugs in
runpf() related to enforcing generator reactive power limits when all generators violate limits or when the slack bus is converted to PQ. - Fixed crash when using Knitro to solve cases with all lines unconstrained.
- Fixed memory issue resulting from nested
om ﬁelds when repeatedly running an OPF using the results of a previous OPF as input.Thanks to Carlos Murillo-S á nchez. - Fixed fatal error when
uopf() shuts down all gens attempting to satisfy limits. - Reactive power output of multiple generators at a PQ bus no longer get re-allocated when running a power ﬂow.
- Fixed a bug in
savecase() where agencost matrix with extra columns of zeros resulted in a corruptedMatpower case ﬁle. - Fixed bug in
runpf() that caused a crash for cases withpf.enforce _q _lims turned on and exactly two Q limit violations, one Qmax and one Qmin.Thanks to Jose Luis Mar í n.

- Optional packages TSPOPF and MINOPF must be updated to latest versions.
- Renamed
cdf2matp() tocdf2mpc() and updated the interface to be consistent withpsse2mpc() . - Removed
ot _opts ﬁeld, replaced withlinprog _opts andquadprog _opts ﬁelds in theopt argument toqps _matpower() andqps _ot() . - The name of the
mips() option used to specify the maximum number of step-size reductions withstep _control on was changed frommax _red tosc.red _it for consistency with otherMatpower options. - Removed
max _it option fromqps _matpower() (and friends) args. Use algorithm speciﬁc options to control iteration limits. - Changed behavior of branch angle diﬀerence limits so that 0 is interpreted as
unbounded only if both
ANGMIN andANGMAX are zero. - In
results struct returned by an OPF, the value ofresults.raw.output.alg is now a string, not an old-style numeric alg code. - Removed:
- Support for
Matlab 6.x. - Support for
constr() and successive LP-based OPF solvers. - Support for Gurobi 4.x/
gurobi _mex() interface. extras/cpf , replaced byruncpf() .extras/psse2matpower , replaced bypsse2mpc() .

- Support for