Skip to content

Commit 2deabeb

Browse files
committed
Release 4.0.
1 parent d3947c6 commit 2deabeb

9 files changed

Lines changed: 114 additions & 36 deletions

File tree

AUTHORS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
Ray Zimmerman <rz10@cornell.edu>
2+
3+
Shrirang Abhyankar
4+
Alex Flueck
25
Carlos E. Murillo-Sanchez <carlos_murillo@ieee.org>

CHANGES.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ Change history for MP-Opt-Model
22
===============================
33

44

5-
since last release
6-
------------------
5+
Version 4.0 - *Oct 18, 2021*
6+
----------------------------
7+
8+
#### 10/18/21
9+
- Release 4.0.
710

811
#### 5/8/21
912
- Add several enhancements to `mp_idx_manager/set_type_idx_map()`.

CITATION

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
We request that publications derived from the use of MP-Opt-Model
22
explicitly acknowledge that fact by citing the MP-Opt-Model User's
33
Manual. The citation and DOI can be version-specific or general, as
4-
appropriate. For version 3.0, use:
4+
appropriate. For version 4.0, use:
55

6-
R. D. Zimmerman. MP-Opt-Model User's Manual, Version 3.0. 2020.
7-
[Online]. Available: https://matpower.org/docs/MP-Opt-Model-manual-3.0.pdf
8-
doi: 10.5281/zenodo.4073361
6+
R. D. Zimmerman. MP-Opt-Model User's Manual, Version 4.0. 2021.
7+
[Online]. Available: https://matpower.org/docs/MP-Opt-Model-manual-4.0.pdf
8+
doi: 10.5281/zenodo.5576755
99

1010
For a version non-specific citation, use the following citation and DOI,
1111
with *\<YEAR\>* replaced by the year of the most recent release:

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,19 @@ of MATLAB or Octave, including setting up your MATLAB/Octave path.
5252
t_have_fcn..............ok
5353
t_nested_struct_copy....ok
5454
t_nleqs_master..........ok (30 of 150 skipped)
55+
t_pnes_master...........ok
5556
t_qps_master............ok (100 of 432 skipped)
5657
t_miqps_master..........ok (68 of 288 skipped)
5758
t_nlps_master...........ok
5859
t_opt_model.............ok
5960
t_om_solve_leqs.........ok
6061
t_om_solve_nleqs........ok (36 of 194 skipped)
62+
t_om_solve_pne..........ok
6163
t_om_solve_qps..........ok (81 of 387 skipped)
6264
t_om_solve_miqps........ok (14 of 118 skipped)
6365
t_om_solve_nlps.........ok
64-
All tests successful (3032 passed, 329 skipped of 3361)
65-
Elapsed time 3.11 seconds.
66+
All tests successful (3430 passed, 329 skipped of 3759)
67+
Elapsed time 7.75 seconds.
6668
```
6769

6870
Sample Usage
@@ -200,11 +202,11 @@ function, e.g.: `qps_master`, `miqps_master`, and `nlps_master`.
200202
We request that publications derived from the use of MP-Opt-Model
201203
explicitly acknowledge that fact by citing the [MP-Opt-Model User's Manual][7].
202204
The citation and DOI can be version-specific or general, as appropriate.
203-
For version 3.0, use:
205+
For version 4.0, use:
204206

205-
> R. D. Zimmerman. *MP-Opt-Model User's Manual, Version 3.0*. 2020.
206-
[Online]. Available: https://matpower.org/docs/MP-Opt-Model-manual-3.0.pdf
207-
doi: [10.5281/zenodo.4073361](https://doi.org/10.5281/zenodo.4073361)
207+
> R. D. Zimmerman. *MP-Opt-Model User's Manual, Version 4.0*. 2021.
208+
[Online]. Available: https://matpower.org/docs/MP-Opt-Model-manual-4.0.pdf
209+
doi: [10.5281/zenodo.5576755](https://doi.org/10.5281/zenodo.5576755)
208210

209211
For a version non-specific citation, use the following citation and DOI,
210212
with *\<YEAR\>* replaced by the year of the most recent release:

docs/MP-Opt-Model-manual.pdf

119 KB
Binary file not shown.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
What's New in MP-Opt-Model 4.0
2+
------------------------------
3+
4+
#### Released October 18, 2021
5+
6+
Below is a summary of the changes since version 3.0 of MP-Opt-Model. See
7+
the [`CHANGES.md`][1] file for all the gory details. For release notes
8+
for previous versions, see Appendix C of the [MP-Opt-Model User's
9+
Manual][2].
10+
11+
12+
#### New Features
13+
- Support for new class of problems -- parameterized nonlinear equations
14+
(PNE). Either create a model with only equality constraints (no
15+
inequalities or costs) and with number of variables equal to 1 more than
16+
number of constraints, _or_ call `pnes_master()` directly. See Section 4.5
17+
of User's Manual for details.
18+
*Thanks to Shrirang Abhyankar and Alexander Flueck for contributions to this
19+
feature, which is based on the continuation power flow code in MATPOWER 7.1.*
20+
- Predictor/corrector numerical continuation method for tracing solution
21+
curves for PNE problems.
22+
- Plotting of solution curves.
23+
- User-defined event functions and callback functions.
24+
- Warm-start capabilities.
25+
- Optional threshold for detecting failure of LEQ solve, by setting the
26+
`leq_opt.thresh` option. If the absolute value of any element of the
27+
solution vector exceeds the threshold, `exitflag` is set to 0, indicating
28+
failure.
29+
- New functions:
30+
- `pnes_master()` provides unified interface for parameterized nonlinear
31+
equation (PNE) solvers.
32+
- `pne_callback_default()` collects PNE results and optionally plots
33+
solution curve.
34+
- `pne_callback_nose()` handles event signaling a nose point or limit
35+
has been reached.
36+
- `pne_callback_target_lam()` handles event signaling a target value
37+
of parameter &#955; has been reached.
38+
- `pne_detect_events()` detects events from event function values.
39+
- `pne_detected_event()` returns detected event details for events
40+
with a particular name.
41+
- `pne_event_nose()` detects the limit or nose point.
42+
- `pne_event_target_lam()` detects a target &#955; value.
43+
- `pne_pfcn_arc_length()` implements arc length parameterization.
44+
- `pne_pfcn_natural()` implements natural parameterization.
45+
- `pne_pfcn_pseudo_arc_length()` implements pseudo arc length
46+
parameterization.
47+
- `pne_register_callbacks()` registers callback functions.
48+
- `pne_register_events()` registers event functions.
49+
- `mp_idx_manager/set_type_idx_map()` method returns information about
50+
mapping of indices for a given set type back to the corresponding
51+
named (and possibly indexed) sets.
52+
- `mpopt2pneopt()` creates or modifies an options struct for
53+
`pnes_master()` from a MATPOWER options struct.
54+
55+
#### Bugs Fixed:
56+
- Calling the `problem_type()` or `is_mixed_integer()` method on an empty
57+
model no longer causes a fatal error.
58+
59+
#### Other Changes
60+
- Labels from the `set_types` property are now used as headers for
61+
`opt_model/display()` to simplify things facilitate use by sub-classes.
62+
- Refactored `describe_idx` into a new method, `set_type_idx_map`, that
63+
returns in information in a programmatically usable form, and an updated
64+
`describe_idx` that calls the new method, then formats the results in
65+
the expected char array(s).
66+
67+
68+
[1]: ../../CHANGES.md
69+
[2]: ../MP-Opt-Model-manual.pdf

docs/src/MP-Opt-Model-manual/MP-Opt-Model-manual.tex

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@
151151
\newcommand{\mpomlink}[0]{\href{\mpomurl}{\mpom{}}}
152152
\newcommand{\mpomname}[0]{\mpom{}}
153153
% \newcommand{\mpomname}[0]{{{\bf M}{\sc at}{\bf P}{\sc ower} \textbf{Opt}imization \textbf{Model}}}
154-
\newcommand{\mpomver}[0]{4.0-dev}
154+
\newcommand{\mpomver}[0]{4.0}
155155
\newcommand{\most}[0]{{MOST}}
156156
\newcommand{\mostname}[0]{{{\bf M}{\sc atpower} \textbf{O}ptimal \textbf{S}cheduling \textbf{T}ool}}
157157
\newcommand{\mosturl}[0]{https://github.com/MATPOWER/most}
@@ -242,7 +242,7 @@
242242
%\title{\hl{--- DRAFT ---}\\\hl{\em do not distribute}\\~\\{\huge \bfseries \mpomname{} User's Manual } \\ ~ \\ \LARGE Version \mpomver{}\\
243243
\title{{\huge \bfseries \mpomname{} User's Manual } \\ ~ \\ \LARGE Version \mpomver{}}
244244
\author{Ray~D.~Zimmerman}
245-
%\date{October 8, 2020} % comment this line to display the current date
245+
\date{October 18, 2021} % comment this line to display the current date
246246
%\date{May 8, 2020\thanks{Second revision. First revision was April 29, 2020}} % comment this line to display the current date
247247

248248
%%% BEGIN DOCUMENT
@@ -253,7 +253,7 @@
253253
\vfill
254254
\begin{center}
255255
{\scriptsize
256-
\copyright~2020~\PSERC{}\\
256+
\copyright~2020, 2021~\PSERC{}\\
257257
All Rights Reserved}
258258
\end{center}
259259

@@ -327,12 +327,12 @@ \subsection{License and Terms of Use}
327327
\subsection{Citing \mpom{}}
328328

329329
We request that publications derived from the use of \mpom{} explicitly acknowledge that fact by citing the \mpomname{} User's Manual~\cite{mpom_manual}.
330-
The citation and DOI can be version-specific or general, as appropriate. For version 3.0, use:
330+
The citation and DOI can be version-specific or general, as appropriate. For version 4.0, use:
331331

332332
\begin{quote}
333333
\footnotesize
334-
R.~D. Zimmerman. \mpomname{} User's Manual, Verision 3.0. 2020. [Online]. Available: \url{https://matpower.org/docs/MP-Opt-Model-manual-3.0.pdf}\\
335-
\doi{10.5281/zenodo.4073361}
334+
R.~D. Zimmerman. \mpomname{} User's Manual, Verision 4.0. 2021. [Online]. Available: \url{https://matpower.org/docs/MP-Opt-Model-manual-4.0.pdf}\\
335+
\doi{10.5281/zenodo.5576755}
336336
\end{quote}
337337
For a version non-specific citation, use the following citation and DOI,
338338
with \emph{\textless{}YEAR\textgreater{}} replaced by the year of the most recent release:
@@ -411,17 +411,19 @@ \subsection{Installation}
411411
t_have_fcn..............ok
412412
t_nested_struct_copy....ok
413413
t_nleqs_master..........ok (30 of 150 skipped)
414+
t_pnes_master...........ok
414415
t_qps_master............ok (100 of 432 skipped)
415416
t_miqps_master..........ok (68 of 288 skipped)
416417
t_nlps_master...........ok
417418
t_opt_model.............ok
418419
t_om_solve_leqs.........ok
419420
t_om_solve_nleqs........ok (36 of 194 skipped)
421+
t_om_solve_pne..........ok
420422
t_om_solve_qps..........ok (81 of 387 skipped)
421423
t_om_solve_miqps........ok (14 of 118 skipped)
422424
t_om_solve_nlps.........ok
423-
All tests successful (3032 passed, 329 skipped of 3361)
424-
Elapsed time 3.11 seconds.
425+
All tests successful (3430 passed, 329 skipped of 3759)
426+
Elapsed time 7.75 seconds.
425427
\end{Code}
426428
\end{enumerate}
427429

@@ -2070,7 +2072,6 @@ \subsubsection{PNE Example}
20702072
Then, call the \code{pnes\_master} function with a handle to that function, a starting value for $x$, and an option to make it trace the full continuation curve.
20712073
\begin{Code}
20722074
>> x = pnes_master(@f1p, [-1;0;0], struct('stop_at', 'FULL'))
2073-
>> pne_ex1
20742075

20752076
x =
20762077

@@ -2108,7 +2109,7 @@ \subsubsection{PNE Example}
21082109
\begin{Code}
21092110
>> pne_ex1
21102111

2111-
MP-Opt-Model Version 4.0, 03-May-2021 -- Predictor/Corrector Continuation Method
2112+
MP-Opt-Model Version 4.0, 18-Oct-2021 -- Predictor/Corrector Continuation Method
21122113
step 0 : lambda = 0.000, 6 corrector steps
21132114
step 1 : PAL stepsize = 0.6 lambda = 0.081 2 corrector steps
21142115
step 2 : PAL stepsize = 0.6 lambda = 0.162 2 corrector steps
@@ -2146,8 +2147,8 @@ \subsubsection{PNE Example}
21462147
0
21472148

21482149
f =
2149-
0
2150-
-6.4837e-13
2150+
0
2151+
-6.4837e-13
21512152

21522153
jac =
21532154
1 1 6
@@ -4398,7 +4399,7 @@ \subsubsection*{Other Changes}
43984399
\end{itemize}
43994400

44004401

4401-
\subsection{Version 4.0 -- released Oct 19, 2021}
4402+
\subsection{Version 4.0 -- released Oct 18, 2021}
44024403
\label{app:v40}
44034404

44044405
The \href{https://matpower.org/docs/MP-Opt-Model-manual-4.0.pdf}{\mpom{} 4.0 User's Manual} is available online.\footnote{\url{https://matpower.org/docs/MP-Opt-Model-manual-4.0.pdf}}
@@ -4495,7 +4496,7 @@ \subsubsection*{Other Changes}
44954496
The BSD 3-Clause License. [Online]. Available: \url{https://opensource.org/licenses/BSD-3-Clause}.
44964497

44974498
\bibitem{mpom_manual}
4498-
R.~D. Zimmerman. \mpomname{} User's Manual. 2020.
4499+
R.~D. Zimmerman. \mpomname{} User's Manual. 2021.
44994500
[Online]. Available: \url{https://matpower.org/docs/MP-Opt-Model-manual.pdf}\\
45004501
\doi{10.5281/zenodo.3818002}
45014502

lib/Contents.m

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
% MP-Opt-Model
2-
% Version 3.0 08-Oct-2020
2+
% Version 4.0 18-Oct-2021
33
%
44
% MP-Opt-Model is a package of MATLAB/Octave M-files for constructing
5-
% and solving mathematical optimization problems. It provides an
6-
% easy-to-use, object-oriented interface for building and solving
7-
% your optimization model. It also includes a unified interface for
8-
% calling numerous LP, QP, mixed-integer and nonlinear solvers, with
9-
% the ability to switch solvers by simply changing an input option.
5+
% and solving mathematical programming and optimization problems. It
6+
% provides an easy-to-use, object-oriented interface for building and
7+
% solving your model. It also includes a unified interface for calling
8+
% numerous LP, QP, mixed-integer and nonlinear solvers, with the ability
9+
% to switch solvers by simply changing an input option.
1010
%
1111
% It is based on code that was originally developed by Ray D. Zimmerman
1212
% of Cornell University as part of MATPOWER.
@@ -18,7 +18,7 @@
1818
% MIPS is covered by the 3-clause BSD License (see LICENSE for details).
1919

2020
% MP-Opt-Model
21-
% Copyright (c) 2020, Power Systems Engineering Research Center (PSERC)
21+
% Copyright (c) 2020-2021, Power Systems Engineering Research Center (PSERC)
2222
% by Ray Zimmerman, PSERC Cornell
2323
%
2424
% This file is part of MP-Opt-Model.

lib/mpomver.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@
99
% See also MPVER.
1010

1111
% MP-Opt-Model
12-
% Copyright (c) 2010-2020, Power Systems Engineering Research Center (PSERC)
12+
% Copyright (c) 2010-2021, Power Systems Engineering Research Center (PSERC)
1313
% by Ray Zimmerman, PSERC Cornell
1414
%
1515
% This file is part of MP-Opt-Model.
1616
% Covered by the 3-clause BSD License (see LICENSE file for details).
1717
% See https://github.com/MATPOWER/mp-opt-model for more info.
1818

1919
v = struct( 'Name', 'MP-Opt-Model', ...
20-
'Version', '4.0-dev', ...
20+
'Version', '4.0', ...
2121
'Release', '', ...
22-
'Date', '11-Aug-2021' );
22+
'Date', '18-Oct-2021' );
2323
if nargout > 0
2424
if nargin > 0
2525
rv = v;

0 commit comments

Comments
 (0)