diff --git a/CHANGES.md b/CHANGES.md index 543d816e..2ae16085 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -9,10 +9,11 @@ For change history for [MIPS][2], see [mips/CHANGES.md](mips/CHANGES.md). For change history for [MOST][3], see [most/CHANGES.md](most/CHANGES.md). -Changes since 7.0 ------------------ +Version 7.1 - *Oct 8, 2020* +--------------------------- #### 10/8/20 + - Release 7.1. - Update to [MP-Test][1] 7.1. - Update to [MIPS][2] 1.4. - Update to [MP-Opt-Model][27] 3.0. @@ -30,6 +31,8 @@ Changes since 7.0 - `'smartmarket'` - `'syngrid'` - `'tralmopf'` + - Add support for [OSQP][29], if installed, to solve the DC OPF, by setting + `opf.dc.solver` to `'OSQP'`. #### 10/1/20 - **INCOMPATIBLE CHANGE:** Update `case18`, `case22`, `case69`, `case85` @@ -3143,3 +3146,4 @@ First Public Release – *Jun 25, 1997* [26]: https://github.com/MATPOWER/matpower/issues/89 [27]: https://github.com/MATPOWER/mp-opt-model [28]: http://www.convexoptimization.com/wikimization/index.php/Gurobi_mex +[29]: https://osqp.org diff --git a/CITATION b/CITATION index 48e9c0aa..70fedff8 100644 --- a/CITATION +++ b/CITATION @@ -40,11 +40,11 @@ corresponding case files. For the sake of reproducibility of research results, it is best to cite the specific version of the software used with the version-specfic DOI. -For example, for version 7.0 of MATPOWER, use: +For example, for version 7.1 of MATPOWER, use: - R. D. Zimmerman, C. E. Murillo-Sanchez (2019). MATPOWER (Version 7.0) + R. D. Zimmerman, C. E. Murillo-Sanchez (2020). MATPOWER (Version 7.1) [Software]. Available: https://matpower.org - doi: 10.5281/zenodo.3251119 + doi: 10.5281/zenodo.4074135 To cite the MATPOWER software generally, without reference to a specific version, use the following citation and DOI, with replaced by the @@ -62,13 +62,13 @@ found via the general DOI at https://doi.org/10.5281/zenodo.3236535. The MATPOWER, MIPS and MOST User's Manuals should also be cited explicitly in work that refers to or is derived from their content. As with the software, the citation and DOI can be version-specific or -general, as appropriate. For version 7.0 of the MATPOWER User's Manual, +general, as appropriate. For version 7.1 of the MATPOWER User's Manual, use: R. D. Zimmerman, C. E. Murillo-Sanchez. MATPOWER User's Manual, - Version 7.0. 2019. [Online]. - Available: https://matpower.org/docs/MATPOWER-manual-7.0.pdf - doi: 10.5281/zenodo.3251118 + Version 7.1. 2020. [Online]. + Available: https://matpower.org/docs/MATPOWER-manual-7.1.pdf + doi: 10.5281/zenodo.4074122 For a version non-specific citation, use the following citation and DOI, with replaced by the year of the most recent release: diff --git a/LICENSE b/LICENSE index 7d8dc546..e23a4c56 100644 --- a/LICENSE +++ b/LICENSE @@ -8,7 +8,7 @@ The following is the official license notice: -------------------------------------------------------------------------- -Copyright (c) 1996-2019, Power Systems Engineering Research Center (PSERC) +Copyright (c) 1996-2020, Power Systems Engineering Research Center (PSERC) and individual contributors (see AUTHORS file for details). All rights reserved. diff --git a/README.md b/README.md index 597e3456..629f2ea0 100644 --- a/README.md +++ b/README.md @@ -326,11 +326,11 @@ corresponding case files. For the sake of reproducibility of research results, it is best to cite the specific version of the software used, with the version-specfic DOI. -For example, for version 7.0 of MATPOWER, use: +For example, for version 7.1 of MATPOWER, use: -> R. D. Zimmerman, C. E. Murillo-Sanchez (2019). *MATPOWER (Version 7.0)* +> R. D. Zimmerman, C. E. Murillo-Sanchez (2020). *MATPOWER (Version 7.1)* [Software]. Available: https://matpower.org - doi: [10.5281/zenodo.3251119](https://doi.org/10.5281/zenodo.3251119) + doi: [10.5281/zenodo.4074135](https://doi.org/10.5281/zenodo.4074135) To cite the MATPOWER software generally, without reference to a specific version, use the following citation and DOI, with *\* replaced by the @@ -348,13 +348,13 @@ found via the general DOI at https://doi.org/10.5281/zenodo.3236535. The MATPOWER, MIPS and MOST User's Manuals should also be cited explicitly in work that refers to or is derived from their content. As with the software, the citation and DOI can be version-specific or -general, as appropriate. For version 7.0 of the [MATPOWER User's Manual][8], +general, as appropriate. For version 7.1 of the [MATPOWER User's Manual][8], use: > R. D. Zimmerman, C. E. Murillo-Sanchez. *MATPOWER User's Manual, - Version 7.0.* 2019. - [Online]. Available: https://matpower.org/docs/MATPOWER-manual-7.0.pdf - doi: [10.5281/zenodo.3251118](https://doi.org/10.5281/zenodo.3251118) + Version 7.1.* 2020. + [Online]. Available: https://matpower.org/docs/MATPOWER-manual-7.1.pdf + doi: [10.5281/zenodo.4074122](https://doi.org/10.5281/zenodo.4074122) For a version non-specific citation, use the following citation and DOI, with *\* replaced by the year of the most recent release: diff --git a/docs/MATPOWER-manual.pdf b/docs/MATPOWER-manual.pdf index 6d279216..ff5c3df0 100644 Binary files a/docs/MATPOWER-manual.pdf and b/docs/MATPOWER-manual.pdf differ diff --git a/docs/relnotes/MATPOWER-Announce-7.1.md b/docs/relnotes/MATPOWER-Announce-7.1.md new file mode 100644 index 00000000..8fc64741 --- /dev/null +++ b/docs/relnotes/MATPOWER-Announce-7.1.md @@ -0,0 +1,61 @@ +What's New in MATPOWER 7.1 +-------------------------- + +#### Released Oct 8, 2020 + +Below are some of the highlights of the changes since version 7.0 of +MATPOWER. See the [full release notes][1] and the [`CHANGES.md`][2] +file for more details. For release notes for previous versions, see +Appendix H of the [MATPOWER User's Manual][3]. + +#### New Features: +- Core optimization model and solver interfaces released as separate + package (included), [MP-Opt-Model][4] 3.0, bringing many enhancements: + - Support for new QP solver [OSQP][5] for DC OPF + - New unified interfaces for nonlinear programming and nonlinear equation + solvers + - Many new features of the `opt_model` class, including a `solve()` + method that selects and calls the appropriate solver based on the + automatically detected problem type, and methods for extracting + specific variables, costs, constraint values and shadow prices, etc. + from a solved model + - Performance improvements +- [MP-Test][6] 7.1, with new modular, extensible `have_feature()` function + for detecting optional functionality +- New options and speed improvements for computing shift factors. +- Numerous new functions and program options. + +#### New Case Files: +- Nineteen new distribution system cases \[[ref 1][7], [ref 2][8]\]. + *Thanks to Houssem Bouchekara, et. al.* + +#### New Documentation: +- New [MP-Opt-Model User's Manual][9], included in `mp-opt-model/docs`. + +#### Other Improvements: +- New implementation of Newton power flow for cartesian voltage + representations. +- Improved robustness of Newton power flow with hybrid voltage updates. +- Significant performance improvement for CPLEX on small DC OPF problems. +- Update versions of included packages: + - MIPS 1.4. + - MOST 1.1. + - MP-Test 7.1. +- Numerous bug fixes. + +#### Incompatible Changes: +- Update `case18`, `case22`, `case69`, `case85` and `case141` to more closely + match data from original papers, thanks in part to case files contributed + by Houssem Bouchekara, et al. Solutions for updated cases may not match + exactly. See help text in case files for details. + + +[1]: MATPOWER-Release-Notes-7.1.md +[2]: ../../CHANGES.md +[3]: ../MATPOWER-manual.pdf +[4]: https://github.com/MATPOWER/mp-opt-model +[5]: https://osqp.org +[6]: https://github.com/MATPOWER/mptest +[7]: https://doi.org/10.18799/24056537/2019/3/196 +[8]: https://doi.org/10.36227/techrxiv.12578648.v1 +[9]: https://matpower.org/docs/MP-Opt-Model-manual-3.0.pdf diff --git a/docs/relnotes/MATPOWER-Release-Notes-7.1.md b/docs/relnotes/MATPOWER-Release-Notes-7.1.md new file mode 100644 index 00000000..3e875677 --- /dev/null +++ b/docs/relnotes/MATPOWER-Release-Notes-7.1.md @@ -0,0 +1,230 @@ +What's New in MATPOWER 7.1 +-------------------------- + +#### Released Oct 8, 2020 + +Below is a summary of the changes since version 7.0 of MATPOWER. See the +[`CHANGES.md`][1] file for all the gory details. For release notes for +previous versions, see Appendix H of the [MATPOWER User's Manual][2]. + +#### New Features: +- [MP-Opt-Model][3] 3.0 brings many new enhancements to the `opt_model` + class and the various optimization solver interfaces, including: + - New unified interface `nlps_master()` for nonlinear programming problems, + including implementations for [MIPS][4], `fmincon`, IPOPT and + Artelys Knitro. + - New unified interface `nleqs_master()` for solving nonlinear equations, + including implementations for `fsolve`, Newton's method, fast-decoupled + Newton and Gauss-Seidel. + - Automatic determination of explicit model type from characteristics of + variables, costs and constraints. + - New `solve()` method for `opt_model` to call appropriate solver for the + respective problem type, including for linear and nonlinear equations. + - Performance improvements. + - Support for new solvers ([OSQP][6], `fsolve`, Newton, fast-decoupled + Newton, Gauss-Seidel) and new versions of CPLEX and Artelys Knitro. + - Support for modifying parameters of an existing model. + - Support for extracting specific variables, costs, constraint values + and shadow prices, etc. from a solved model. + + For more details on improvements related to [MP-Opt-Model][3], see the + [release notes][7] *(also in Appendix C in the [MP-Opt-Model User's + Manual][8])* for MP-Opt-Model 0.8, [1.0][9], [2.0][10], [2.1][11], and + [3.0][12]. +- [MP-Test][5] 7.1, with new modular, extensible `have_feature()` function + for detecting optional functionality. For more details, see the + [MP-Test 7.1 release notes][13]. +- [MIPS][4] 1.4. For details, see the [MIPS 1.4 release notess][14] + *(also in Appendix C in the [MIPS User's Manual][15])*. +- Support for [OSQP][6] to solve LP and QP problems. Set option + `opf.dc.solver` to `'OSQP'` to use OSQP to solve the DC OPF. Requires the + MATLAB interface to OSQP, available from [https://osqp.org][6]. See + `help mpoption` for more OSQP options. +- Option for `makePTDF()` to compute shift factors very efficiently for + specific transfers or specific buses only. +- New options: + - `pf.alg` now accepts `'NR-SP'` as a shortcut for Newton's method with + the default power/polar formulation, and `'NR-SH'` and `'NR-IH'` for + those with the hybrid voltage updates. + - `pf.v_cartesian` now accepts `2` as a valid value to select the Newton + power flow with hybrid voltage update. + - `opf.dc.solver` now accepts `'OSQP'` as a valid value if [OSQP][6] is + installed, to select [OSQP][6] to solve the DC OPF. + - `osqp.opts` overrides default [OSQP][6] options. +- New functions/methods: + - MP-Test 7.1 + - `have_feature()` detects availability and version information for + optional functionality. This is a modular, extensible replacement for + `have_fcn()` where the detection of a feature named `` is + implemented by the function `have_feature_()`. + - MP-Opt-Model 3.0 + - `mpopt2nleqopt()` creates or modifies an options struct for + `nleqs_master()` from a MATPOWER options struct. + - `mpopt2nlpopt()` creates or modifies an options struct for + `nlps_master()` from a MATPOWER options struct. + - `nleqs_master()` provides a single wrapper function for calling any + of MP-Opt-Model's nonlinear equation solvers. + - `nlps_master()` provides a single wrapper function for calling any + of MP-Opt-Model's nonlinear programming solvers. + - `opt_model/eval_lin_constraint()` method computes the constraint values + for the full set or an individual named subset of linear constraints. + - `opt_model/get_soln()` method extracts solved results for a given named + set of variables, constraints or costs. + - `opt_model/params_nln_constraint()` method returns parameters for a + named (and optionally indexed) set of nonlinear constraints. + - `opt_model/params_nln_cost()` method returns parameters for a named + (and optionally indexed) set of general nonlinear costs. + - `opt_model/parse_soln()` method returns a complete set of solution + vector and shadow price values for a solved model. + - `opt_model/problem_type()` determines the type of problem based on the + characteristics of the variables, costs and constraints in the model. + - `opt_model/set_params()` method modifies parameters for a given named + set of existing variables, costs, or constraints of an MP-Opt-Model object. + - `opt_model/solve()` solves the model using `mplinsolve()`, + `qps_master()`, `miqps_master()`, `nleqs_master()` or `nlps_master()`, + depending on the problem type. + - `osqp_options()` initializes options for [OSQP][6] solver. + - `osqpver()` returns/displays version information for [OSQP][6]. + - ... plus `nleqs_core()`, `nleqs_fd_newton()`, `nleqs_fsolve()`, + `nleqs_gauss_seidel()`, `nleqs_newton()`, `nlps_fmincon()`, + `nlps_ipopt()`, `nlps_knitro()`, `opt_model/copy()`, + `opt_model/is_mixed_integer()`, and `qps_osqp()`. +- `nlpopf_solver()` implements the AC OPF solver based on `opt_model`'s new + `solve()` method, and replaces the individual solver-specific functions + `fmincopf_solver()`, `ipoptopf_solver()`, `ktropf_solver()`, and + `mipsopf_solver()`. +- ... plus 45 individual feature detection functions for `have_feature()` + *(10 in MATPOWER proper, plus 2 in MP-Test, 4 in MIPS, and 29 in MP-Opt-Model + (see Table A-7 in the [MP-Opt-Model User's Manual][8] for details).*. + +#### New Case Files: +- Nineteen new distribution system cases \[[ref 1][16], [ref 2][17]\]. + *Thanks to Houssem Bouchekara, et. al.* + - `case10ba` -- 10-bus radial system from Baghzouz and Ertem + - `case12da` -- 12-bus radial system from Das, Nagi, and Kothari + - `case15da` -- 15-bus radial system from Das, Kothari, and Kalam + - `case15nbr` -- 15-bus radial system from Battu, Abhyankar, Senroy + - `case16am` -- 16-bus radial system from Das, Kothari, and Kalam + - `case16ci` -- 16-bus system from Civanlar, Grainger, Yin, and Lee + - `case17me` -- 17-bus radial system from Mendoza, Morales, Lopez, et. al. + - `case18nbr` -- 18-bus radial system from Battu, Abhyankar, Senroy + - `case28da` -- 28-bus radial system from Das, Nagi, and Kothari + - `case33mg` -- 33-bus radial system from Kashem, et. al. + - `case34sa` -- 34-bus radial system from Salama and Chikhani + - `case38si` -- 38-bus radial system from Singh and Misra + - `case51ga` -- 51-bus radial system from Gampa and Das + - `case51he` -- 51-bus radial system from Hengsritawat, et. al. + - `case70da` -- 70-bus system from Das + - `case74ds` -- 74-bus radial system from Myint and Naing + - `case94pi` -- 94-bus radial system from Pires, Antunes and Martins + - `case118zh` -- 118-bus radial system from Zhang, Fu and Zhang + - `case136ma` -- 136-bus radial system from Mantovani, Casari and Romero + +#### New Documentation: +- New [MP-Opt-Model User's Manual][8], included in `mp-opt-model/docs`. + +#### Other Improvements: +- Refactor `opt_model` class to inherit from new abstract base class + `mp_idx_manager` which can be used to manage the indexing of other sets + of parameters, etc. in other contexts. +- Add to `opt_model/eval_nln_constraint()` method the ability to compute + constraints for a single named set. +- Significant performance improvement for some problems when constructing + sparse matrices for linear constraints or quadratic costs (e.g. during + problem setup in MOST). *Thanks to Daniel Muldrew.* +- Move original implementation of Newton power flow for cartesian + voltage representations to `newtonpf_S_hybrid()` and `newtonpf_I_hybrid()`, + accessible by setting the `pf.v_cartesian` option to 2. The `pf.alg` option + can also be set to `'NR-SH'` or `'NR-IH'`, respectively, as shortcuts to + select these formulations. +- Improve robustness of these hybrid Newton power flow formulations to avoid + ill-conditioning when the real part of the voltage approaches zero. +- Redesign implementation of Newton power flow for cartesian voltage + representations to use standard Newton method with explicit voltage + magnitude constraints at PV buses. This method is slower (larger number of + equations and unknowns) but appears to be more reliable in some cases than + the original implementation, which was a hybrid approach by Sereeter that + used a modified Newton method to compute polar voltage updates using a + modified cartesian Jacobian. +- Modify voltage limit constraints for cartesian AC OPF formulation to use + voltage squared, resulting in simpler derivatives. +- Performance improvement for `makePTDF()` for large cases, e.g. more + than 70% improvement for `case9241pegase`. +- Significant performance improvement for CPLEX on small problems by + eliminating call to `cplexoptimset()`, which was a huge bottleneck. +- Convert `dcopf_solver()` to use the new `solver()` method of `opt_model` + instead of calling `qps_matpower()` manually. +- Convert `opf_execute()` to use `nlpopf_solver()`, based on the new + `solver()` method of `opt_model`, for AC OPF when using `fmincon`, IPOPT, + Artelys Knitro, or [MIPS][4]. +- Reduce memory usage in `modcost()` for very large systems. + *Thanks to Christoph Funke.* +- Deprecated functions: + - `have_fcn()` -- use `have_feature()` from [MP-Test][5] instead. + - `qps_matpower()` -- use `qps_master()` from [MP-Opt-Model][3] instead. + - `miqps_matpower()` -- use `miqps_master()` from [MP-Opt-Model][3] instead. +- Removed functions: + - `fmincopf_solver()` -- functionality now covered by `nlpopf_solver()`. + - `ipoptopf_solver()` -- functionality now covered by `nlpopf_solver()`. + - `ktropf_solver()` -- functionality now covered by `nlpopf_solver()`. + - `mipsopf_solver()` -- functionality now covered by `nlpopf_solver()`. + +#### Bugs Fixed: +- For `opt_model`, incorrect evaluation of constant term has been fixed for + vector valued quadratic costs with constant term supplied as a vector. +- Calling `opt_model/params_var()` method with empty `idx` no longer results + in fatal error. +- Fix bug in `scale_load()` where only one of multiple dispatchable loads at + a bus would be scaled. + *Thanks to Christoph Funke.* +- Fix bug #77 where incorrect indexing could cause fatal error in OPF with + additional nonlinear constraints. + *Thanks to Sergio Garcia.* +- Fix OPF issue #71 for IPOPT and Artelys Knitro where structure of Jacobian + and/or Hessian could change from the structure provided (i.e. elements with + value of zero were being eliminated from the sparsity structure). + *Thanks to Drosos Kourounis.* +- Artelys Knitro 12.1 compatibility fix. +- Fix CPLEX 12.10 compatibility issue #90. +- Fix bug #89 where running a power flow with `pf.enforce_q_lims` enabled and + voltage dependent ZIP loads produced incorrect results. + *Thanks to Florian.* +- Fix issue with missing objective function value from `miqps_mosek()` and + `qps_mosek()` when return status is "Stalled at or near optimal solution." +- Fix bug orginally in `ktropf_solver()` (code now moved to `nlps_knitro()`) + where Artelys Knitro was still using `fmincon` options. + +#### Incompatible Changes: +- Modify order of default output arguments of `opt_model/get_idx()` (again), + removing the one related to legacy costs. +- MP-Opt-Model has renamed the following functions and modified the order of + their input args so that the MP-Opt-Model object appears first. Ideally, + these would be defined as methods of the `opt_model` class, but Octave 4.2 + and earlier is not able to find them via a function handle (as used in the + `solve()` method) if they are inherited by a sub-class. + - `opf_consfcn()` ––> `nlp_consfcn()` + - `opf_costfcn()` ––> `nlp_costfcn()` + - `opf_hessfcn()` ––> `nlp_hessfcn()` +- Update `case18`, `case22`, `case69`, `case85` and `case141` to more closely + match data from original papers, thanks in part to case files contributed + by Houssem Bouchekara, et al. Solutions for updated cases may not match + exactly. See help text in case files for details. + + +[1]: ../../CHANGES.md +[2]: ../MATPOWER-manual.pdf +[3]: https://github.com/MATPOWER/mp-opt-model +[4]: https://github.com/MATPOWER/mips +[5]: https://github.com/MATPOWER/mptest +[6]: https://osqp.org +[7]: https://github.com/MATPOWER/mp-opt-model/blob/master/docs/relnotes/ +[8]: https://matpower.org/docs/MP-Opt-Model-manual-3.0.pdf +[9]: https://github.com/MATPOWER/mp-opt-model/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-1.0.md +[10]: https://github.com/MATPOWER/mp-opt-model/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-2.0.md +[11]: https://github.com/MATPOWER/mp-opt-model/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-2.1.md +[12]: https://github.com/MATPOWER/mp-opt-model/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-3.0.md +[13]: https://github.com/MATPOWER/mptest/blob/master/docs/relnotes/MP-Test-Release-Notes-7.1.md +[14]: https://github.com/MATPOWER/mips/blob/master/docs/relnotes/MIPS-Release-Notes-1.4.md +[15]: https://matpower.org/docs/MIPS-manual-1.4.pdf +[16]: https://doi.org/10.18799/24056537/2019/3/196 +[17]: https://doi.org/10.36227/techrxiv.12578648.v1 diff --git a/docs/src/MATPOWER-manual/MATPOWER-manual.tex b/docs/src/MATPOWER-manual/MATPOWER-manual.tex index 0dc8278c..d52cbc26 100644 --- a/docs/src/MATPOWER-manual/MATPOWER-manual.tex +++ b/docs/src/MATPOWER-manual/MATPOWER-manual.tex @@ -140,7 +140,7 @@ %\hyphenation{matpower} -\newcommand{\mpver}[0]{7.1-dev} +\newcommand{\mpver}[0]{7.1} %\newcommand{\matlab}[0]{{Matlab}} %\newcommand{\matlab}[0]{{\sc Matlab}\textsuperscript{\tiny \textregistered}} \newcommand{\matlab}[0]{{\sc Matlab}} @@ -160,18 +160,18 @@ \newcommand{\mipsurl}[0]{https://github.com/MATPOWER/mips} \newcommand{\mipslink}[0]{\href{\mipsurl}{\mips{}}} \newcommand{\mipsname}[0]{{{\bf M}{\sc atpower} \textbf{I}nterior \textbf{P}oint \textbf{S}olver}} -\newcommand{\mipsver}[0]{1.3.1} -\newcommand{\mpom}[0]{{MP-Opt-Model}} +\newcommand{\mipsver}[0]{1.4} +\newcommand{\mpom}[0]{\mbox{MP-Opt-Model}} \newcommand{\mpomurl}[0]{https://github.com/MATPOWER/mp-opt-model} \newcommand{\mpomlink}[0]{\href{\mpomurl}{\mpom{}}} \newcommand{\mpomname}[0]{\mpom{}} % \newcommand{\mpomname}[0]{{{\bf M}{\sc at}{\bf P}{\sc ower} \textbf{Opt}imization \textbf{Model}}} -\newcommand{\mpomver}[0]{2.1} +\newcommand{\mpomver}[0]{3.0} \newcommand{\most}[0]{{MOST}} \newcommand{\mostname}[0]{{{\bf M}{\sc atpower} \textbf{O}ptimal \textbf{S}cheduling \textbf{T}ool}} \newcommand{\mosturl}[0]{https://github.com/MATPOWER/most} \newcommand{\mostlink}[0]{\href{\mosturl}{\most{}}} -\newcommand{\mostver}[0]{1.0.2} +\newcommand{\mostver}[0]{1.1} \newcommand{\md}[0]{{\most{} Data struct}} \newcommand{\east}[0]{E4ST} \newcommand{\eastver}[0]{1.0b2} @@ -194,22 +194,24 @@ \newcommand{\gurobi}[0]{{Gurobi}} \newcommand{\mosek}[0]{{MOSEK}} \newcommand{\osqp}[0]{{OSQP}} +\newcommand{\osqplink}[0]{{\href{https://osqp.org}{\osqp}}} \newcommand{\ot}[0]{{Optimization Toolbox}} \newcommand{\pardiso}[0]{{PARDISO}} \newcommand{\sdppf}[0]{\texttt{SDP\_PF}} -\newcommand{\sdppfver}[0]{1.0.1} +\newcommand{\sdppfver}[0]{1.0.2} \newcommand{\sdpopf}[0]{SDPOPF} \newcommand{\code}[1]{{\relsize{-0.5}{\tt{{#1}}}}} % requires package relsize % Note: to get straight single quotes in \code you have to use one of the % following: \char13 \char'15 \char"0D \textquotesingle \newcommand{\codeq}[1]{\code{\textquotesingle{}#1\textquotesingle}} % requires package textcomp \newcommand{\mppath}[1]{\textsf{\textsl{{\relsize{-1.0}\textless{}\mbox{MATPOWER}\textgreater{}}}}\code{{#1}}} % requires package relsize -%\newcommand{\mostpath}[1]{\code{\$MOST{#1}}} %\newcommand{\mipspath}[1]{\textsf{\textsl{{\relsize{-1.0}\textless{}\mbox{MIPS}\textgreater{}}}}\code{{#1}}} % requires package relsize -\newcommand{\mptestpath}[1]{\mppath{/mptest{#1}}} -\newcommand{\mipspath}[1]{\mppath{/mips{#1}}} -\newcommand{\mpompath}[1]{\mppath{/mp-opt-model{#1}}} -\newcommand{\mostpath}[1]{\mppath{/most{#1}}} +%\newcommand{\mpompath}[1]{\textsf{\textsl{{\relsize{-1.0}\textless{}\mbox{MPOM}\textgreater{}}}}\code{{#1}}} % requires package relsize +\newcommand{\mptestpath}[1]{\mppath{}\code{/mptest{#1}}} +\newcommand{\mipspath}[1]{\mppath{}\code{/mips{#1}}} +\newcommand{\mpompath}[1]{\mppath{}\code{/mp-opt-model{#1}}} +\newcommand{\mostpath}[1]{\mppath{}\code{/most{#1}}} +\newcommand{\mostpathb}[1]{\textsf{\textsl{{\relsize{-1.0}\textless{}\mbox{MOST}\textgreater{}}}}\code{{#1}}} % requires package relsize \newcommand{\baseMVA}[0]{\code{baseMVA}} \newcommand{\bus}[0]{\code{bus}} \newcommand{\branch}[0]{\code{branch}} @@ -270,7 +272,7 @@ %\title{\hl{--- DRAFT ---}\\\hl{\em do not distribute}\\~\\\matpower{} \mpver{}\\User's Manual} \title{User's Manual} \author{Ray~D.~Zimmerman \and Carlos~E.~Murillo-S\'anchez} -%\date{June 20, 2019} % comment this line to display the current date +\date{October 8, 2020} % comment this line to display the current date %\date{December 14, 2011\thanks{Second revision. First revision was December 13, 2011}} % comment this line to display the current date %%% BEGIN DOCUMENT @@ -294,7 +296,7 @@ {\large \@date \par}% \vfill {\scriptsize -\copyright~2010--2019~\PSERC\\ +\copyright~2010--2020~\PSERC\\ All Rights Reserved} \end{center} \end{titlepage} @@ -426,13 +428,13 @@ \subsubsection*{Software} For the sake of reproducibility of research results, it is best to cite the specific version of the software used, with the version-specfic DOI. -For example, for version 7.0 of \matpower{}: +For example, for version 7.1 of \matpower{}: \begin{quote} \footnotesize -R.~D. Zimmerman, C.~E. Murillo-S{\'a}nchez (2019). \matpower{} (Version 7.0)\\~ +R.~D. Zimmerman, C.~E. Murillo-S{\'a}nchez (2020). \matpower{} (Version 7.1)\\~ [Software]. Available: \url{https://matpower.org}\\ -\doi{10.5281/zenodo.3251119} +\doi{10.5281/zenodo.4074135} \end{quote} To cite the \matpower{} software generally, without reference to a specific @@ -454,13 +456,13 @@ \subsubsection*{User's Manuals} The \matpower{}, \mips{} and \most{} User's Manuals should also be cited explicitly in work that refers to or is derived from their content.\footnote{For information on citing the \mips{} or \most{} User's Manuals, please see the \code{mips/CITATION} and \code{most/CITATION} files, respectively.} As with the software, the citation and DOI can be version-specific or -general, as appropriate. For version 7.0 of the \mum{}, use: +general, as appropriate. For version 7.1 of the \mum{}, use: \begin{quote} \footnotesize -R.~D. Zimmerman, C.~E. Murillo-S{\'a}nchez. \matpower{} User's Manual, Version 7.0. 2019. -[Online]. Available: \url{https://matpower.org/docs/MATPOWER-manual-7.0.pdf}\\ -\doi{10.5281/zenodo.3251118} +R.~D. Zimmerman, C.~E. Murillo-S{\'a}nchez. \matpower{} User's Manual, Version 7.1. 2020. +[Online]. Available: \url{https://matpower.org/docs/MATPOWER-manual-7.1.pdf}\\ +\doi{10.5281/zenodo.4074122} \end{quote} For a version non-specific citation, use the following citation and DOI, @@ -648,8 +650,26 @@ \subsection{Installation} % UPDATE BEFORE RELEASE \begin{Code} >> test_matpower -t_nested_struct_copy....ok +t_test_fcns.............ok +t_have_feature..........ok +t_mplinsolve............ok (6 of 66 skipped) +t_mips..................ok +t_mips_pardiso..........ok (60 of 60 skipped) +t_qps_mips..............ok t_have_fcn..............ok +t_nested_struct_copy....ok +t_nleqs_master..........ok (30 of 150 skipped) +t_qps_master............ok (324 of 432 skipped) +t_miqps_master..........ok (288 of 288 skipped) +t_nlps_master...........ok (378 of 540 skipped) +t_opt_model.............ok +t_om_solve_leqs.........ok +t_om_solve_nleqs........ok (36 of 194 skipped) +t_om_solve_qps..........ok (270 of 387 skipped) +t_om_solve_miqps........ok (118 of 118 skipped) +t_om_solve_nlps.........ok (329 of 504 skipped) +t_qps_matpower..........ok (288 of 396 skipped) +t_miqps_matpower........ok (288 of 288 skipped) t_feval_w_path..........ok t_mpoption..............ok t_loadcase..............ok @@ -660,21 +680,21 @@ \subsection{Installation} t_totcost...............ok t_modcost...............ok t_hasPQcap..............ok -t_mplinsolve............ok (6 of 44 skipped) -t_mips..................ok -t_mips_pardiso..........ok (60 of 60 skipped) -t_qps_master............ok (288 of 360 skipped) -t_miqps_master..........ok (240 of 240 skipped) -t_pf....................ok +t_pf_ac.................ok +t_pf_dc.................ok t_pf_radial.............ok t_cpf...................ok t_islands...............ok t_opf_model.............ok t_opf_model_legacy......ok t_opf_default...........ok -t_opf_mips..............ok (278 of 1296 skipped) +t_opf_mips..............ok (280 of 1308 skipped) +t_opf_dc_default........ok t_opf_dc_mips...........ok t_opf_dc_mips_sc........ok +\end{Code} +\emph{continued from previous page} +\begin{Code} t_opf_userfcns..........ok t_opf_softlims..........ok t_runopf_w_res..........ok @@ -692,8 +712,8 @@ \subsection{Installation} t_off2case..............ok t_auction_mips..........ok t_runmarket.............ok -All tests successful (8242 passed, 872 skipped of 9114) -Elapsed time 40.35 seconds. +All tests successful (10368 passed, 2695 skipped of 13063) +Elapsed time 23.98 seconds. \end{Code} \end{enumerate} @@ -2050,7 +2070,7 @@ \subsubsection{CPF Example} \end{Code} This should result in something like the following output to the screen. \begin{Code} -MATPOWER Version 7.0, 20-Jun-2019 -- AC Continuation Power Flow +MATPOWER Version 7.1, 08-Oct-2020 -- AC Continuation Power Flow step 0 : lambda = 0.000, 4 Newton steps step 1 : stepsize = 0.2 lambda = 0.181 2 corrector Newton steps step 2 : stepsize = 0.2 lambda = 0.359 2 corrector Newton steps @@ -4274,7 +4294,7 @@ \subsubsection{\tt feval\_w\_path} \subsubsection{\tt have\_fcn} -Now deprecated, but included as part of \mpomlink{}~\cite{mpom} (see \mpompath{}). Instead, please use \code{have\_feature}, a modular, extensible replacement for \code{have\_fcn} that is now included as part of \mptestlink{} (see \mptestpath{}). +Now deprecated, but included as part of \mpomlink{}~\cite{mpom} (see \mpompath{}). Instead, please use \code{have\_feature}, a modular, extensible replacement for \code{have\_fcn} that is now included as part of \mptestlink{} (see \mptestpath{}) and described in the \mptest{} \href{\mptesturl/blob/master/README.md}{\code{README}} file. \subsubsection{\tt mpopt2qpopt} @@ -6251,7 +6271,7 @@ \subsection{\matpower{} Functions} \item [*] {These functions implement new tags and the detection of the corresponding features for \code{have\_feature}, included as part of \mptestlink{} (see \mptestpath{}).} \item [\dag] {See \mostpath{}.} \item [\ddag] {Part of TSPOPF~\cite{tspopf}.} - \item [\S] {Part of \matpowerextraslink{}, included in \matpower{} ZIP distributions in \mppath{/extras}.} + \item [\S] {Part of \matpowerextraslink{}, the \code{extras} subdirectory in \matpower{} ZIP distributions.} \end{tablenotes} \end{threeparttable} \end{table} @@ -7996,48 +8016,66 @@ \subsubsection*{Incompatible Changes} \clearpage -\subsection{Version 7.1? -- released ??? ??, 20??} +\subsection{Version 7.1 -- released Oct 8, 2020} \label{app:v71} -\hl{Note: Next version may be changed to something other than 7.1 before release.} - The \href{https://matpower.org/docs/MATPOWER-manual-7.1.pdf}{\matpower{} 7.1 User's Manual} is available online.\footnote{\url{https://matpower.org/docs/MATPOWER-manual-7.1.pdf}} \subsubsection*{New Features} \begin{itemize} -\item \mpomlink{} \hl{2.x brings many new enhancements, including ...} +\item \mpomlink{} 3.0 brings many new enhancements to the \code{opt\_model} class and the various optimization solver interfaces, including: \begin{itemize} - \item + \item New unified interface \code{nlps\_master()} for nonlinear programming problems, including implementations for \mipslink{}, \code{fmincon}, \ipopt{} and \knitro{}. + \item New unified interface \code{nleqs\_master()} for solving nonlinear equations, including implementations for \code{fsolve}, Newton's method, fast-decoupled Newton and Gauss-Seidel. + \item Automatic determination of explicit model type from characteristics of variables, costs and constraints. + \item New \code{solve()} method for \code{opt\_model} to call appropriate solver for the respective problem type, including for linear and nonlinear equations. + \item Performance improvements. + \item Support for new solvers (\osqplink{}, \code{fsolve}, Newton, fast-decoupled Newton, Gauss-Seidel) and new versions of \cplex{} and \knitro{}. + \item Support for modifying parameters of an existing model. + \item Support for extracting specific variables, costs, constraint values and shadow prices, etc. from a solved model. \end{itemize} -\item Support for \osqp{} to solve LP and QP problems. Set option \code{opf.dc.solver} to \codeq{OSQP} to use \osqp{} to solve the DC OPF. Requires the \matlab{} interface to \osqp{}, available from \url{https://osqp.org}. See \code{help mpoption} for more \osqp{} options. -\item New unified interface \code{nlps\_master()} for nonlinear programming solvers \mipslink{}, \code{fmincon}, \ipopt{} and \knitro{}. + For more details on improvements related to \mpomlink{}, see the \href{\mpomurl/blob/master/docs/relnotes/}{release notes}\footnote{See Appendix~\ref{MPOMMAN-app:release_history} in the \mpomman{}.} for \mpom{} 0.8, \href{\mpomurl/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-1.0.md}{1.0}, \href{\mpomurl/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-2.0.md}{2.0}, \href{\mpomurl/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-2.1.md}{2.1}, and \href{\mpomurl/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-3.0.md}{3.0}. +\item \mptestlink{} 7.1, with new modular, extensible \code{have\_feature()} function for detecting optional functionality. For more details, see the \href{\mptesturl/blob/master/docs/relnotes/MP-Test-Release-Notes-7.1.md}{\mptest{} 7.1 release notes}. +\item \mipslink{} 1.4. For details, see the \href{\mipsurl/blob/master/docs/relnotes/MIPS-Release-Notes-1.4.md}{\mips{} 1.4 release notes}.\footnote{See Appendix~\ref{MIPSMAN-app:release_history} in the \mipsman{}.} +\item Support for \osqplink{} to solve LP and QP problems. Set option \code{opf.dc.solver} to \codeq{OSQP} to use \osqp{} to solve the DC OPF. Requires the \matlab{} interface to \osqp{}, available from \url{https://osqp.org}. See \code{help mpoption} for more \osqp{} options. \item Option for \code{makePTDF()} to compute shift factors very efficiently for specific transfers or specific buses only. -\item \emph{Thanks to Fulano.} \item New options: +\begin{itemize} + \item \code{pf.alg} now accepts \codeq{NR-SP} as a shortcut for Newton's method with the default power/polar formulation, and \codeq{NR-SH} and \codeq{NR-IH} for those with the hybrid voltage updates. + \item \code{pf.v\_cartesian} now accepts \code{2} as a valid value to select the Newton power flow with hybrid voltage update. + \item \code{opf.dc.solver} now accepts \codeq{OSQP} as a valid value if \osqplink{} is installed, to select \osqplink{} to solve the DC OPF. + \item \code{osqp.opts} overrides default \osqplink{} options. +\end{itemize} +\item New functions/methods: \begin{itemize} - \item - \end{itemize} -\item New functions: - \begin{itemize} - \item \code{mpopt2nlpopt()} creates an options struct for \code{nlps\_master()} from at \matpower{} options struct. - \item \code{nlps\_fmincon()} provides implementation of unified nonlinear programming solver interface for \code{fmincon}. - \item \code{nlps\_ipopt()} provides implementation of unified nonlinear programming solver interface interface for \ipopt{}. - \item \code{nlps\_knitro()} provides implementation of unified nonlinear programming solver interface interface for \ipopt{}. - \item \code{nlps\_master()} provides a single wrapper function for calling any of \matpower{}'s nonlinear programming solvers. - \item \code{have\_feature\_e4st} detects availability/version of \eastlink{}.\footnote{See \url{https://e4st.com}.} - \item \code{have\_feature\_minopf} detects availability/version of MINOPF, a MINOS-based Optimal Power Flow solver. - \item \code{have\_feature\_most} detects availability/version of \most{} (\mostname{}). - \item \code{have\_feature\_pdipmopf} detects availability/version of PDIPMOPF, a primal-dual interior point method Optimal Power Flow solver included in TSPOPF~\cite{tspopf}. - \item \code{have\_feature\_regexp\_split} detects support for the \codeq{split} argument to \code{regexp}. - \item \code{have\_feature\_scpdipmopf} detects availability/version of SCPDIPMOPF, a step-controlled primal-dual interior point method Optimal Power Flow solver included in TSPOPF~\cite{tspopf}. - \item \code{have\_feature\_sdp\_pf} detects availability/version of \sdppf{}\footnote{See \url{https://github.com/MATPOWER/mx-sdp_pf/}.}, a \matpower{} extension for applications of semi-definite programming relaxations of power flow equations. - \item \code{have\_feature\_smartmarket} detects availability/version of \code{runmarket} and related files for running an energy auction, found under \code{smartmarket} in \matpowerextraslink{}.\footnote{See \url{\matpowerextrasgithuburl}.} - \item \code{have\_feature\_syngrid} detects availability/version of \syngridlink{},\footnote{See \url{\syngridurl}.} Synthetic Grid Creation for \matpower{}. - \item \code{have\_feature\_tralmopf} detects availability/version of TRALMOPF, a trust region based augmented Langrangian Optimal Power Flow solver included in TSPOPF~\cite{tspopf}. + \item \mptest{} 7.1 + \begin{itemize} + \item \code{have\_feature()} detects availability and version information for optional functionality. This is a modular, extensible replacement for \code{have\_fcn()} where the detection of a feature named \code{} is implemented by the function \code{have\_feature\_()}. + \end{itemize} + \item \mpom{} 3.0 + \begin{itemize} + \item \code{mpopt2nleqopt()} creates or modifies an options struct for \code{nleqs\_master()} from a \matpower{} options struct. + \item \code{mpopt2nlpopt()} creates or modifies an options struct for \code{nlps\_master()} from a \matpower{} options struct. + \item \code{nleqs\_master()} provides a single wrapper function for calling any of \mpom{}'s nonlinear equation solvers. + \item \code{nlps\_master()} provides a single wrapper function for calling any of \mpom{}'s nonlinear programming solvers. + \item \code{opt\_model/eval\_lin\_constraint()} method computes the constraint values for the full set or an individual named subset of linear constraints. + \item \code{opt\_model/get\_soln()} method extracts solved results for a given named set of variables, constraints or costs. + \item \code{opt\_model/params\_nln\_constraint()} method returns parameters for a named (and optionally indexed) set of nonlinear constraints. + \item \code{opt\_model/params\_nln\_cost()} method returns parameters for a named (and optionally indexed) set of general nonlinear costs. + \item \code{opt\_model/parse\_soln()} method returns a complete set of solution vector and shadow price values for a solved model. + \item \code{opt\_model/problem\_type()} determines the type of problem based on the characteristics of the variables, costs and constraints in the model. + \item \code{opt\_model/set\_params()} method modifies parameters for a given named set of existing variables, costs, or constraints of an \mpom{} object. + \item \code{opt\_model/solve()} solves the model using \code{mplinsolve()}, \code{qps\_master()}, \code{miqps\_master()}, \code{nleqs\_master()} or \code{nlps\_master()}, depending on the problem type. + \item \code{osqp\_options()} initializes options for \osqplink{} solver. + \item \code{osqpver()} returns/displays version information for \osqplink{}. + \item \dots plus \code{nleqs\_core()}, \code{nleqs\_fd\_newton()}, \code{nleqs\_fsolve()},\\ \code{nleqs\_gauss\_seidel()}, \code{nleqs\_newton()}, \code{nlps\_fmincon()}, \code{nlps\_ipopt()}, \code{nlps\_knitro()}, \code{opt\_model/copy()}, \code{opt\_model/is\_mixed\_integer()}, and \code{qps\_osqp()}. + \end{itemize} +\item \code{nlpopf\_solver()} implements the AC OPF solver based on \code{opt\_model}'s new \code{solve()} method, and replaces the individual solver-specific functions \code{fmincopf\_solver()}, \code{ipoptopf\_solver()}, \code{ktropf\_solver()}, \code{mipsopf\_solver()}. +\item \dots plus 45 individual feature detection functions for \code{have\_feature()} \\ \emph{(10 in \matpower{} proper, plus 2 in \mptest{}, 4 in \mips{}, and 29 in \mpom{}~\footnote{See Table~\ref{MPOMMAN-tab:have_feature_fcns} in the \mpomman{} for details.})}. \end{itemize} \end{itemize} -% \pagebreak +\clearpage \subsubsection*{New Case Files} \begin{itemize} \item Nineteen new distribution system cases~\cite{bouchekara2019, latreche2020}. \emph{Thanks to Houssem Bouchekara, et. al.} @@ -8070,53 +8108,29 @@ \subsubsection*{New Case Files} % \pagebreak \subsubsection*{New Documentation} \begin{itemize} - \item + \item New \mpomman{}, included in \code{mp-opt-model/docs}. \end{itemize} \subsubsection*{Other Improvements} \begin{itemize} +\item Refactor \code{opt\_model} class to inherit from new abstract base class \code{mp\_idx\_manager} which can be used to manage the indexing of other sets of parameters, etc. in other contexts. +\item Add to \code{opt\_model/eval\_nln\_constraint()} method the ability to compute constraints for a single named set. \item Significant performance improvement for some problems when constructing sparse matrices for linear constraints or quadratic costs (e.g. during problem setup in \most{}). \emph{Thanks to Daniel Muldrew.} -\item Move original implementation of Newton power flow for cartesian -voltage representations to \code{newtonpf\_S\_hybrid()} and \code{newtonpf\_I\_hybrid()}, accessible by setting the \code{pf.v\_cartesian} -option to 2. The \code{pf.alg} option can also be set to \codeq{NR-SH} or -\codeq{NR-IH}, respectively, as shortcuts to select these formulations. +\item Move original implementation of Newton power flow for cartesian voltage representations to \code{newtonpf\_S\_hybrid()} and \code{newtonpf\_I\_hybrid()}, accessible by setting the \code{pf.v\_cartesian} option to 2. The \code{pf.alg} option can also be set to \codeq{NR-SH} or \codeq{NR-IH}, respectively, as shortcuts to select these formulations. \item Improve robustness of these hybrid Newton power flow formulations to avoid ill-conditioning when the real part of the voltage approaches zero. -\item The \code{pf.alg} option now accepts \codeq{NR-SP} as a shortcut for Newton's method with the default power/polar formulation. -\item Redesign implementation of Newton power flow for cartesian -voltage representations to use standard Newton method with explicit -voltage magnitude constraints at PV buses. This method is slower -(larger number of equations and unknowns) but appears to be more -reliable in some cases than the original implementation, which was -a hybrid approach by Sereeter that used a modified Newton method -to compute polar voltage updates using a modified cartesian Jacobian. -\item Modify voltage limit constraints for cartesian AC OPF formulation -to use voltage squared, resulting in simpler derivatives. +\item Redesign implementation of Newton power flow for cartesian voltage representations to use standard Newton method with explicit voltage magnitude constraints at PV buses. This method is slower (larger number of equations and unknowns) but appears to be more reliable in some cases than the original implementation, which was a hybrid approach by Sereeter that used a modified Newton method to compute polar voltage updates using a modified cartesian Jacobian. +\item Modify voltage limit constraints for cartesian AC OPF formulation to use voltage squared, resulting in simpler derivatives. \item Performance improvement for \code{makePTDF()} for large cases, e.g. more than 70\% improvement for \code{case9241pegase}. -\item Significant performance improvement for CPLEX on small problems by eliminating call to \code{cplexoptimset()}, which was a huge bottleneck. -\item Add four new methods to \code{@opt\_model} class: - \begin{itemize} - \item \code{copy()} -- works around issues with inheritance in constructors that was preventing copy constructor from working in Octave 5.2 and earlier (see also \url{https://savannah.gnu.org/bugs/?52614}) - \item \code{is\_mixed\_integer()} -- returns true if the model includes any binary or integer variables - \item \code{problem\_type()} -- returns one of the following strings, based on - the characteristics of the variables, costs and constraints in the - model: - \begin{itemize} - \item{\codeq{LP}} -- linear program - \item{\codeq{QP}} -- quadratic program - \item{\codeq{NLP}} -- nonlinear program - \item{\codeq{MILP}} -- mixed-integer linear program - \item{\codeq{MIQP}} -- mixed-integer quadratic program - \item{\codeq{MINLP}} -- mixed-integer nonlinear program - \end{itemize} - \item \code{solve()} - solves the model using \code{qps\_master()}, \code{miqps\_master()}, or \code{nlps\_master()}, depending on the problem type (\codeq{MINLP} problems are not yet implemented) - \end{itemize} -\item Convert \code{dcopf\_solver()} to use the new \code{solver()} method of \code{@opt\_model} instead of calling \code{qps\_matpower()} manually. -\item Convert \code{opf\_execute()} to use \code{nlps\_master()}, based on the new \code{solver()} method of \code{@opt\_model}, for AC OPF when using \code{fmincon}, \ipopt{}, \knitro{}, or \mipslink{}. +\item Significant performance improvement for CPLEX on small problems by eliminating call to \code{cplexoptimset()}, which was a huge bottleneck. +\item Convert \code{dcopf\_solver()} to use the new \code{solver()} method of \code{opt\_model} instead of calling \code{qps\_matpower()} manually. +\item Convert \code{opf\_execute()} to use \code{nlpopf\_solver()}, based on the new \code{solver()} method of \code{opt\_model}, for AC OPF when using \code{fmincon}, \ipopt{}, \knitro{}, or \mipslink{}. \item Reduce memory usage in \code{modcost()} for very large systems. \emph{Thanks to Christoph Funke.} \item Deprecated functions: \begin{itemize} - \item \code{foo()} -- use \code{bar()} instead. + \item \code{have\_fcn()} -- use \code{have\_feature()} from \mptestlink{} instead. + \item \code{qps\_matpower()} -- use \code{qps\_master()} from \mpomlink{} instead. + \item \code{miqps\_matpower()} -- use \code{miqps\_master()} from \mpomlink{} instead. \end{itemize} \item Removed functions: \begin{itemize} @@ -8130,13 +8144,11 @@ \subsubsection*{Other Improvements} % \pagebreak \subsubsection*{Bugs Fixed} \begin{itemize} +\item For \code{opt\_model}, incorrect evaluation of constant term has been fixed for vector valued quadratic costs with constant term supplied as a vector. +\item Calling \code{opt\_model/params\_var()} method with empty \code{idx} no longer results in fatal error. \item Fix bug in \code{scale\_load()} where only one of multiple dispatchable loads at a bus would be scaled. \emph{Thanks to Christoph Funke.} -\item Fix bug \#77 where incorrect indexing could cause fatal error -in OPF with additional nonlinear constraints. \emph{Thanks to Sergio Garcia.} -\item Fix OPF issue \#71 for \ipopt{} and \knitro{} where structure of -Jacobian and/or Hessian could change from the structure provided -(i.e. elements with value of zero were being eliminated from the -sparsity structure). \emph{Thanks to Drosos Kourounis.} +\item Fix bug \#77 where incorrect indexing could cause fatal error in OPF with additional nonlinear constraints. \emph{Thanks to Sergio Garcia.} +\item Fix OPF issue \#71 for \ipopt{} and \knitro{} where structure of Jacobian and/or Hessian could change from the structure provided (i.e. elements with value of zero were being eliminated from the sparsity structure). \emph{Thanks to Drosos Kourounis.} \item Artelys Knitro 12.1 compatibility fix. \item Fix CPLEX 12.10 compatibility issue \#90. \item Fix bug \#89 where running a power flow with \code{pf.enforce\_q\_lims} enabled and voltage dependent ZIP loads produced incorrect results. \emph{Thanks to Florian.} @@ -8146,7 +8158,8 @@ \subsubsection*{Bugs Fixed} \subsubsection*{Incompatible Changes} \begin{itemize} -\item \mpom{} has renamed the following functions and modified the order of their input args so that the \mpom{} object appears first. Ideally, these would be defined as methods of the \code{@opt\_model} class, but Octave 4.2 and earlier is not able to find them via a function handle (as used in the \code{solve()} method) if they are inherited by a sub-class. +\item Modify order of default output arguments of \code{opt\_model/get\_idx()} (again), removing the one related to legacy costs. +\item \mpom{} has renamed the following functions and modified the order of their input args so that the \mpom{} object appears first. Ideally, these would be defined as methods of the \code{opt\_model} class, but Octave 4.2 and earlier is not able to find them via a function handle (as used in the \code{solve()} method) if they are inherited by a sub-class. \begin{itemize} \item \code{opf\_consfcn()} $\rightarrow$ \code{nlp\_consfcn()} \item \code{opf\_costfcn()} $\rightarrow$ \code{nlp\_costfcn()} @@ -8169,7 +8182,7 @@ \subsubsection*{Incompatible Changes} \doi{10.1109/TPWRS.2010.2051168} \bibitem{matpower} -R.~D. Zimmerman, C.~E. Murillo-S{\'a}nchez (2019). \matpower{}\\~ +R.~D. Zimmerman, C.~E. Murillo-S{\'a}nchez (2020). \matpower{}\\~ [Software]. Available: \url{https://matpower.org} \doi{10.5281/zenodo.3236535} @@ -8326,7 +8339,7 @@ \subsubsection*{Incompatible Changes} \url{https://github.com/coin-or/Clp}. \bibitem{mips} -R.~D. Zimmerman, H. Wang. \mipsname{} (\mips{}) User's Manual. 2019. [Online]. Available: \url{\currentmipsmanurl} +R.~D. Zimmerman, H. Wang. \mipsname{} (\mips{}) User's Manual. 2020. [Online]. Available: \url{\currentmipsmanurl} \doi{10.5281/zenodo.3236506} \bibitem{zimmerman2010b} diff --git a/docs/src/MATPOWER-manual/MIPS-manual.aux b/docs/src/MATPOWER-manual/MIPS-manual.aux index cf1fa846..48662fe1 100644 --- a/docs/src/MATPOWER-manual/MIPS-manual.aux +++ b/docs/src/MATPOWER-manual/MIPS-manual.aux @@ -65,59 +65,76 @@ \newlabel{tab:mips_input}{{3\unhbox \voidb@x \hbox {-}1}{11}{Input Arguments for \code {mips}\tnote {\dag }\relax }{table.caption.4}{}} \@writefile{lot}{\contentsline {table}{\numberline {3\unhbox \voidb@x \hbox {-}2}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{mips}}}}\relax }}{12}{table.caption.6}\protected@file@percent } \newlabel{tab:mips_output}{{3\unhbox \voidb@x \hbox {-}2}{12}{Output Arguments for \code {mips}\relax }{table.caption.6}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Example 1}{12}{subsection.3.1}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {3\unhbox \voidb@x \hbox {-}3}{\ignorespaces Options for {\relsize {-0.5}{\tt {{mips}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{13}{table.caption.8}\protected@file@percent } -\newlabel{tab:mips_options}{{3\unhbox \voidb@x \hbox {-}3}{13}{Options for \code {mips}\tnote {\dag }\relax }{table.caption.8}{}} +\@writefile{lot}{\contentsline {table}{\numberline {3\unhbox \voidb@x \hbox {-}3}{\ignorespaces Options for {\relsize {-0.5}{\tt {{mips}}}}\relax }}{13}{table.caption.8}\protected@file@percent } +\newlabel{tab:mips_options}{{3\unhbox \voidb@x \hbox {-}3}{13}{Options for \code {mips}\relax }{table.caption.8}{}} \@writefile{brf}{\backcite{wang2007a}{{13}{3\unhbox \voidb@x \hbox {-}3}{table.caption.8}}} \@writefile{brf}{\backcite{wang2007a}{{13}{3\unhbox \voidb@x \hbox {-}3}{table.caption.8}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Example 2}{14}{subsection.3.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Quadratic Programming Solver}{16}{subsection.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Example 1}{14}{subsection.3.1}\protected@file@percent } +\newlabel{sec:ex1}{{3.1}{14}{Example 1}{subsection.3.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Example 2}{15}{subsection.3.2}\protected@file@percent } +\newlabel{sec:ex2}{{3.2}{15}{Example 2}{subsection.3.2}{}} \citation{wang2007a,wang2007} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Primal-Dual Interior Point Algorithm}{17}{subsection.3.4}\protected@file@percent } -\@writefile{brf}{\backcite{wang2007a, wang2007}{{17}{3.4}{subsection.3.4}}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}Notation}{17}{subsubsection.3.4.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2}Problem Formulation and Lagrangian}{18}{subsubsection.3.4.2}\protected@file@percent } -\newlabel{eq:L}{{3.26}{19}{Problem Formulation and Lagrangian}{equation.3.26}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}First Order Optimality Conditions}{19}{subsubsection.3.4.3}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.4}Newton Step}{20}{subsubsection.3.4.4}\protected@file@percent } -\newlabel{eq:newton_step}{{3.37}{20}{Newton Step}{equation.3.37}{}} -\newlabel{eq:2nd_row}{{3.38}{20}{Newton Step}{equation.3.38}{}} -\newlabel{eq:4th_row}{{3.39}{20}{Newton Step}{equation.3.39}{}} -\newlabel{eq:1st_row}{{3.40}{20}{Newton Step}{equation.3.40}{}} -\newlabel{eq:ipm_reduced_system}{{3.45}{21}{Newton Step}{equation.3.45}{}} -\newlabel{eq:alphap}{{3.46}{21}{Newton Step}{equation.3.46}{}} -\newlabel{eq:alphad}{{3.47}{21}{Newton Step}{equation.3.47}{}} -\newlabel{eq:gamma}{{3.52}{22}{Newton Step}{equation.3.52}{}} -\@writefile{toc}{\contentsline {section}{Appendix \numberline {A}{MIPS}{} Files and Functions}{23}{Appendix.1.A}\protected@file@percent } -\newlabel{app:functions}{{A}{23}{\mips {} Files and Functions}{Appendix.1.A}{}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}1}{\ignorespaces {MIPS}{} Files and Functions\relax }}{23}{table.caption.10}\protected@file@percent } -\newlabel{tab:files}{{A\unhbox \voidb@x \hbox {-}1}{23}{\mips {} Files and Functions\relax }{table.caption.10}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Primal-Dual Interior Point Algorithm}{17}{subsection.3.3}\protected@file@percent } +\@writefile{brf}{\backcite{wang2007a, wang2007}{{17}{3.3}{subsection.3.3}}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Notation}{17}{subsubsection.3.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Problem Formulation and Lagrangian}{18}{subsubsection.3.3.2}\protected@file@percent } +\newlabel{eq:L}{{3.23}{18}{Problem Formulation and Lagrangian}{equation.3.23}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.3}First Order Optimality Conditions}{19}{subsubsection.3.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.4}Newton Step}{19}{subsubsection.3.3.4}\protected@file@percent } +\newlabel{eq:newton_step}{{3.34}{19}{Newton Step}{equation.3.34}{}} +\newlabel{eq:2nd_row}{{3.35}{19}{Newton Step}{equation.3.35}{}} +\newlabel{eq:4th_row}{{3.36}{19}{Newton Step}{equation.3.36}{}} +\newlabel{eq:1st_row}{{3.37}{20}{Newton Step}{equation.3.37}{}} +\newlabel{eq:ipm_reduced_system}{{3.42}{20}{Newton Step}{equation.3.42}{}} +\newlabel{eq:alphap}{{3.43}{21}{Newton Step}{equation.3.43}{}} +\newlabel{eq:alphad}{{3.44}{21}{Newton Step}{equation.3.44}{}} +\newlabel{eq:gamma}{{3.49}{21}{Newton Step}{equation.3.49}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4}Other Functions}{22}{section.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Linear System Solver - {\tt mplinsolve}}{22}{subsection.4.1}\protected@file@percent } +\newlabel{sec:mplinsolve}{{4.1}{22}{Linear System Solver - {\tt mplinsolve}}{subsection.4.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Quadratic Programming Solver - {\tt qps\_mips}}{22}{subsection.4.2}\protected@file@percent } +\newlabel{sec:qps_mips}{{4.2}{22}{Quadratic Programming Solver - {\tt qps\_mips}}{subsection.4.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Private Feature Detection Functions}{23}{subsection.4.3}\protected@file@percent } +\newlabel{sec:featuredetection}{{4.3}{23}{Private Feature Detection Functions}{subsection.4.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}\tt have\_feature\_lu\_vec}{23}{subsubsection.4.3.1}\protected@file@percent } +\newlabel{sec:have_feature_lu_vec}{{4.3.1}{23}{\tt have\_feature\_lu\_vec}{subsubsection.4.3.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}\tt have\_feature\_pardiso\_legacy}{23}{subsubsection.4.3.2}\protected@file@percent } +\newlabel{sec:have_feature_pardiso_legacy}{{4.3.2}{23}{\tt have\_feature\_pardiso\_legacy}{subsubsection.4.3.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.3}\tt have\_feature\_pardiso\_object}{23}{subsubsection.4.3.3}\protected@file@percent } +\newlabel{sec:have_feature_pardiso_object}{{4.3.3}{23}{\tt have\_feature\_pardiso\_object}{subsubsection.4.3.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.4}\tt have\_feature\_pardiso}{24}{subsubsection.4.3.4}\protected@file@percent } +\newlabel{sec:have_feature_pardiso}{{4.3.4}{24}{\tt have\_feature\_pardiso}{subsubsection.4.3.4}{}} +\@writefile{toc}{\contentsline {section}{\numberline {5}Acknowledgments}{25}{section.5}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{Appendix \numberline {A}{MIPS}{} Files and Functions}{26}{Appendix.1.A}\protected@file@percent } +\newlabel{app:functions}{{A}{26}{\mips {} Files and Functions}{Appendix.1.A}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}1}{\ignorespaces {MIPS}{} Files and Functions\relax }}{26}{table.caption.10}\protected@file@percent } +\newlabel{tab:files}{{A\unhbox \voidb@x \hbox {-}1}{26}{\mips {} Files and Functions\relax }{table.caption.10}{}} \citation{pardiso,pardiso2} -\@writefile{toc}{\contentsline {section}{Appendix \numberline {B}{PARDISO}{} -- Parallel Sparse Direct and Multi-Recursive Iterative Linear Solvers}{24}{Appendix.1.B}\protected@file@percent } -\newlabel{app:pardiso}{{B}{24}{\pardiso {} -- Parallel Sparse Direct and Multi-Recursive Iterative Linear Solvers}{Appendix.1.B}{}} -\@writefile{brf}{\backcite{pardiso, pardiso2}{{24}{B}{Appendix.1.B}}} -\@writefile{toc}{\contentsline {section}{Appendix \numberline {C}Release History}{25}{Appendix.1.C}\protected@file@percent } -\newlabel{app:release_history}{{C}{25}{Release History}{Appendix.1.C}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.1}Version 1.0 -- released Feb 7, 2011}{25}{subsection.1.C.1}\protected@file@percent } -\newlabel{app:v10}{{C.1}{25}{Version 1.0 -- released Feb 7, 2011}{subsection.1.C.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.2}Version 1.0.1 -- released Apr 30, 2012}{25}{subsection.1.C.2}\protected@file@percent } -\newlabel{app:v101}{{C.2}{25}{Version 1.0.1 -- released Apr 30, 2012}{subsection.1.C.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.3}Version 1.0.2 -- released Nov 5, 2013}{25}{subsection.1.C.3}\protected@file@percent } -\newlabel{app:v102}{{C.3}{25}{Version 1.0.2 -- released Nov 5, 2013}{subsection.1.C.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.4}Version 1.1 -- released Dec 17, 2014}{26}{subsection.1.C.4}\protected@file@percent } -\newlabel{app:v11}{{C.4}{26}{Version 1.1 -- released Dec 17, 2014}{subsection.1.C.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.5}Version 1.2 -- released Mar 20, 2015}{26}{subsection.1.C.5}\protected@file@percent } -\newlabel{app:v12}{{C.5}{26}{Version 1.2 -- released Mar 20, 2015}{subsection.1.C.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.6}Version 1.2.1 -- released Jun 1, 2016}{27}{subsection.1.C.6}\protected@file@percent } -\newlabel{app:v121}{{C.6}{27}{Version 1.2.1 -- released Jun 1, 2016}{subsection.1.C.6}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.7}Version 1.2.2 -- released Dec 16, 2016}{27}{subsection.1.C.7}\protected@file@percent } -\newlabel{app:v122}{{C.7}{27}{Version 1.2.2 -- released Dec 16, 2016}{subsection.1.C.7}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.8}Version 1.3 -- released Oct 30, 2018}{28}{subsection.1.C.8}\protected@file@percent } -\newlabel{app:v13}{{C.8}{28}{Version 1.3 -- released Oct 30, 2018}{subsection.1.C.8}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.9}Version 1.3.1 -- released Jun 20, 2019}{29}{subsection.1.C.9}\protected@file@percent } -\newlabel{app:v131}{{C.9}{29}{Version 1.3.1 -- released Jun 20, 2019}{subsection.1.C.9}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.10}Version 1.3.2? -- released ??? ??, 202?}{29}{subsection.1.C.10}\protected@file@percent } -\newlabel{app:v132}{{C.10}{29}{Version 1.3.2? -- released ??? ??, 202?}{subsection.1.C.10}{}} +\@writefile{toc}{\contentsline {section}{Appendix \numberline {B}{PARDISO}{} -- Parallel Sparse Direct and Multi-Recursive Iterative Linear Solvers}{27}{Appendix.1.B}\protected@file@percent } +\newlabel{app:pardiso}{{B}{27}{\pardiso {} -- Parallel Sparse Direct and Multi-Recursive Iterative Linear Solvers}{Appendix.1.B}{}} +\@writefile{brf}{\backcite{pardiso, pardiso2}{{27}{B}{Appendix.1.B}}} +\@writefile{toc}{\contentsline {section}{Appendix \numberline {C}Release History}{28}{Appendix.1.C}\protected@file@percent } +\newlabel{app:release_history}{{C}{28}{Release History}{Appendix.1.C}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.1}Version 1.0 -- released Feb 7, 2011}{28}{subsection.1.C.1}\protected@file@percent } +\newlabel{app:v10}{{C.1}{28}{Version 1.0 -- released Feb 7, 2011}{subsection.1.C.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.2}Version 1.0.1 -- released Apr 30, 2012}{28}{subsection.1.C.2}\protected@file@percent } +\newlabel{app:v101}{{C.2}{28}{Version 1.0.1 -- released Apr 30, 2012}{subsection.1.C.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.3}Version 1.0.2 -- released Nov 5, 2013}{28}{subsection.1.C.3}\protected@file@percent } +\newlabel{app:v102}{{C.3}{28}{Version 1.0.2 -- released Nov 5, 2013}{subsection.1.C.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.4}Version 1.1 -- released Dec 17, 2014}{29}{subsection.1.C.4}\protected@file@percent } +\newlabel{app:v11}{{C.4}{29}{Version 1.1 -- released Dec 17, 2014}{subsection.1.C.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.5}Version 1.2 -- released Mar 20, 2015}{29}{subsection.1.C.5}\protected@file@percent } +\newlabel{app:v12}{{C.5}{29}{Version 1.2 -- released Mar 20, 2015}{subsection.1.C.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.6}Version 1.2.1 -- released Jun 1, 2016}{30}{subsection.1.C.6}\protected@file@percent } +\newlabel{app:v121}{{C.6}{30}{Version 1.2.1 -- released Jun 1, 2016}{subsection.1.C.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.7}Version 1.2.2 -- released Dec 16, 2016}{30}{subsection.1.C.7}\protected@file@percent } +\newlabel{app:v122}{{C.7}{30}{Version 1.2.2 -- released Dec 16, 2016}{subsection.1.C.7}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.8}Version 1.3 -- released Oct 30, 2018}{31}{subsection.1.C.8}\protected@file@percent } +\newlabel{app:v13}{{C.8}{31}{Version 1.3 -- released Oct 30, 2018}{subsection.1.C.8}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.9}Version 1.3.1 -- released Jun 20, 2019}{32}{subsection.1.C.9}\protected@file@percent } +\newlabel{app:v131}{{C.9}{32}{Version 1.3.1 -- released Jun 20, 2019}{subsection.1.C.9}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.10}Version 1.4 -- released Oct 8, 2020}{32}{subsection.1.C.10}\protected@file@percent } +\newlabel{app:v14}{{C.10}{32}{Version 1.4 -- released Oct 8, 2020}{subsection.1.C.10}{}} \bibcite{tspopf}{1} \bibcite{wang2007a}{2} \bibcite{wang2007}{3} @@ -128,5 +145,5 @@ \bibcite{bsd}{8} \bibcite{gpl}{9} \bibcite{pardiso}{10} -\@writefile{toc}{\contentsline {section}{References}{30}{section*.28}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{References}{34}{section*.30}\protected@file@percent } \bibcite{pardiso2}{11} diff --git a/docs/src/MATPOWER-manual/MOST-manual.aux b/docs/src/MATPOWER-manual/MOST-manual.aux index 6d1b1f23..4a8b30ba 100644 --- a/docs/src/MATPOWER-manual/MOST-manual.aux +++ b/docs/src/MATPOWER-manual/MOST-manual.aux @@ -21,75 +21,75 @@ \citation{zimmerman2011,zimmerman2009} \citation{matpower_manual} \citation{bsd} -\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{7}{section.1}} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{7}{section.1}\protected@file@percent } \@writefile{brf}{\backcite{zimmerman2011,matpower,matpower_manual}{{7}{1}{section.1}}} \@writefile{brf}{\backcite{murillo-sanchez2013a,lamadrid2018}{{7}{1}{section.1}}} \@writefile{brf}{\backcite{zimmerman2011, zimmerman2009}{{7}{1}{section.1}}} \@writefile{brf}{\backcite{matpower_manual}{{7}{1}{section.1}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}License and Terms of Use}{7}{subsection.1.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}License and Terms of Use}{7}{subsection.1.1}\protected@file@percent } \@writefile{brf}{\backcite{bsd}{{7}{1.1}{subsection.1.1}}} \citation{zimmerman2011} \citation{murillo-sanchez2013a} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Citing {MOST}{}}{8}{subsection.1.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Citing {MOST}{}}{8}{subsection.1.2}\protected@file@percent } \@writefile{brf}{\backcite{zimmerman2011}{{8}{1.2}{subsection.1.2}}} \@writefile{brf}{\backcite{murillo-sanchez2013a}{{8}{1.2}{subsection.1.2}}} \citation{most_manual} \@writefile{brf}{\backcite{most_manual}{{9}{1.2}{subsection.1.2}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}{MOST}{} Development}{9}{subsection.1.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}{MOST}{} Development}{9}{subsection.1.3}\protected@file@percent } \newlabel{sec:development}{{1.3}{9}{\most {} Development}{subsection.1.3}{}} -\@writefile{toc}{\contentsline {section}{\numberline {2}Getting Started}{10}{section.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}System Requirements}{10}{subsection.2.1}} +\@writefile{toc}{\contentsline {section}{\numberline {2}Getting Started}{10}{section.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}System Requirements}{10}{subsection.2.1}\protected@file@percent } \newlabel{sec:sysreq}{{2.1}{10}{System Requirements}{subsection.2.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Installation}{10}{subsection.2.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Running a Simulation}{11}{subsection.2.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.1}Preparing Input Data}{12}{subsubsection.2.3.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.2}Solving the Case}{13}{subsubsection.2.3.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.3}Accessing the Results}{14}{subsubsection.2.3.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.4}Setting Options}{14}{subsubsection.2.3.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Documentation}{14}{subsection.2.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Installation}{10}{subsection.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Running a Simulation}{11}{subsection.2.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.1}Preparing Input Data}{12}{subsubsection.2.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.2}Solving the Case}{13}{subsubsection.2.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.3}Accessing the Results}{14}{subsubsection.2.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.4}Setting Options}{14}{subsubsection.2.3.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Documentation}{14}{subsection.2.4}\protected@file@percent } \citation{superopf2008,murillo-sanchez2013} \citation{murillo-sanchez2013a} \citation{matpower_manual} -\@writefile{toc}{\contentsline {section}{\numberline {3}Background and Overview}{16}{section.3}} +\@writefile{toc}{\contentsline {section}{\numberline {3}Background and Overview}{16}{section.3}\protected@file@percent } \@writefile{brf}{\backcite{superopf2008,murillo-sanchez2013}{{16}{3}{section.3}}} \@writefile{brf}{\backcite{murillo-sanchez2013a}{{16}{3}{section.3}}} \@writefile{brf}{\backcite{matpower_manual}{{16}{3}{section.3}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Continuous Single Period Problems}{16}{subsection.3.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}1}{\ignorespaces MOST Continuous Single-Period Problems}}{17}{figure.3.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Continuous Single Period Problems}{16}{subsection.3.1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}1}{\ignorespaces MOST Continuous Single-Period Problems}}{17}{figure.3.1}\protected@file@percent } \newlabel{fig:most_single_period}{{3\unhbox \voidb@x \hbox {-}1}{17}{MOST Continuous Single-Period Problems}{figure.3.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Security}{18}{subsection.3.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}2}{\ignorespaces Secure Dispatch Problem Structure}}{19}{figure.3.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Security}{18}{subsection.3.2}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}2}{\ignorespaces Secure Dispatch Problem Structure}}{19}{figure.3.2}\protected@file@percent } \newlabel{fig:secure_dispatch_structure}{{3\unhbox \voidb@x \hbox {-}2}{19}{Secure Dispatch Problem Structure}{figure.3.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}3}{\ignorespaces Reserve Structure for Generator\nobreakspace {}$i$}}{19}{figure.3.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}3}{\ignorespaces Reserve Structure for Generator\nobreakspace {}$i$}}{19}{figure.3.3}\protected@file@percent } \newlabel{fig:reserves_single_base}{{3\unhbox \voidb@x \hbox {-}3}{19}{Reserve Structure for Generator~$i$}{figure.3.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Uncertainty of Demand and Renewable Generation}{20}{subsection.3.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}4}{\ignorespaces Problem Structure with Multiple Base Scenarios}}{20}{figure.3.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Uncertainty of Demand and Renewable Generation}{20}{subsection.3.3}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}4}{\ignorespaces Problem Structure with Multiple Base Scenarios}}{20}{figure.3.4}\protected@file@percent } \newlabel{fig:structure_multi_scenario}{{3\unhbox \voidb@x \hbox {-}4}{20}{Problem Structure with Multiple Base Scenarios}{figure.3.4}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}5}{\ignorespaces Reserve Structure for Generator\nobreakspace {}$i$ in Period\nobreakspace {}$t$}}{21}{figure.3.5}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}5}{\ignorespaces Reserve Structure for Generator\nobreakspace {}$i$ in Period\nobreakspace {}$t$}}{21}{figure.3.5}\protected@file@percent } \newlabel{fig:reserves}{{3\unhbox \voidb@x \hbox {-}5}{21}{Reserve Structure for Generator~$i$ in Period~$t$}{figure.3.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Multiple Periods}{21}{subsection.3.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Ramping and Load Following Ramp Reserves}{22}{subsection.3.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Storage and Deferrable Demand}{22}{subsection.3.6}} -\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}6}{\ignorespaces Ramping and Load Following Ramp Reserves}}{23}{figure.3.6}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Multiple Periods}{21}{subsection.3.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Ramping and Load Following Ramp Reserves}{22}{subsection.3.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Storage and Deferrable Demand}{22}{subsection.3.6}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}6}{\ignorespaces Ramping and Load Following Ramp Reserves}}{23}{figure.3.6}\protected@file@percent } \newlabel{fig:ramping}{{3\unhbox \voidb@x \hbox {-}6}{23}{Ramping and Load Following Ramp Reserves}{figure.3.6}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}7}{\ignorespaces Storage}}{24}{figure.3.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}7}{\ignorespaces Storage}}{24}{figure.3.7}\protected@file@percent } \newlabel{fig:storage}{{3\unhbox \voidb@x \hbox {-}7}{24}{Storage}{figure.3.7}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Linear Time-Varying Dynamical System}{25}{subsection.3.7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.8}Unit Commitment}{25}{subsection.3.8}} -\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}8}{\ignorespaces Overall Problem Structure}}{26}{figure.3.8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Linear Time-Varying Dynamical System}{25}{subsection.3.7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.8}Unit Commitment}{25}{subsection.3.8}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}8}{\ignorespaces Overall Problem Structure}}{26}{figure.3.8}\protected@file@percent } \newlabel{fig:structure}{{3\unhbox \voidb@x \hbox {-}8}{26}{Overall Problem Structure}{figure.3.8}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}9}{\ignorespaces MOST Mixed Integer and Multi-Period Problems}}{27}{figure.3.9}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\unhbox \voidb@x \hbox {-}9}{\ignorespaces MOST Mixed Integer and Multi-Period Problems}}{27}{figure.3.9}\protected@file@percent } \newlabel{fig:most_multi_period}{{3\unhbox \voidb@x \hbox {-}9}{27}{MOST Mixed Integer and Multi-Period Problems}{figure.3.9}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4}Problem Formulation}{28}{section.4}} +\@writefile{toc}{\contentsline {section}{\numberline {4}Problem Formulation}{28}{section.4}\protected@file@percent } \newlabel{sec:probformulation}{{4}{28}{Problem Formulation}{section.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Nomenclature}{28}{subsection.4.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Nomenclature}{28}{subsection.4.1}\protected@file@percent } \newlabel{sec:nomenclature}{{4.1}{28}{Nomenclature}{subsection.4.1}{}} \newlabel{eq:psialpha}{{4.1}{33}{Nomenclature}{equation.4.1}{}} \newlabel{eq:sdelta}{{4.3}{34}{Nomenclature}{equation.4.3}{}} \newlabel{eq:expected_dispatch}{{4.4}{34}{Nomenclature}{equation.4.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Formulation}{35}{subsection.4.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Formulation}{35}{subsection.4.2}\protected@file@percent } \newlabel{sec:formulation}{{4.2}{35}{Formulation}{subsection.4.2}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Objective Function}{35}{subsubsection.4.2.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Objective Function}{35}{subsubsection.4.2.1}\protected@file@percent } \newlabel{eq:objfcn1}{{4.5}{35}{Objective Function}{equation.4.5}{}} \newlabel{eq:mostobjective}{{4.6}{35}{Objective Function}{equation.4.6}{}} \newlabel{eq:most_energy_cost}{{4.7}{35}{Objective Function}{equation.4.7}{}} @@ -98,7 +98,7 @@ \newlabel{eq:rampcost}{{4.10}{36}{Objective Function}{equation.4.10}{}} \newlabel{eq:most_rampres_cost}{{4.11}{36}{Objective Function}{equation.4.11}{}} \newlabel{eq:storagecost}{{4.12}{36}{Objective Function}{equation.4.12}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Constraints}{36}{subsubsection.4.2.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Constraints}{36}{subsubsection.4.2.2}\protected@file@percent } \newlabel{eq:firstopf}{{4.14}{36}{Standard OPF Constraints}{equation.4.14}{}} \newlabel{eq:reserve_var2}{{4.16}{37}{Standard OPF Constraints}{equation.4.16}{}} \newlabel{eq:Pg_plus_R2}{{4.17}{37}{Standard OPF Constraints}{equation.4.17}{}} @@ -122,9 +122,9 @@ \newlabel{eq:dynstate2}{{4.51}{40}{Linear Time-Varying Dynamical System}{equation.4.51}{}} \newlabel{eq:dynout1}{{4.52}{40}{Linear Time-Varying Dynamical System}{equation.4.52}{}} \newlabel{eq:dynout2}{{4.53}{40}{Linear Time-Varying Dynamical System}{equation.4.53}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Probability Weighting of Base and Contingency States}{40}{subsection.4.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Probability Weighting of Base and Contingency States}{40}{subsection.4.3}\protected@file@percent } \newlabel{eq:transmat}{{4.55}{41}{Probability Weighting of Base and Contingency States}{equation.4.55}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Value of Residual Storage}{43}{subsection.4.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Value of Residual Storage}{43}{subsection.4.4}\protected@file@percent } \newlabel{sec:residualstorage}{{4.4}{43}{Value of Residual Storage}{subsection.4.4}{}} \newlabel{eq:sf0}{{4.60}{43}{Value of Residual Storage}{equation.4.60}{}} \newlabel{eq:beta1and2}{{4.61}{43}{Value of Residual Storage}{equation.4.61}{}} @@ -150,182 +150,184 @@ \newlabel{eq:SFtjk}{{4.92}{47}{Value of Residual Storage}{equation.4.92}{}} \newlabel{eq:sfend}{{4.93}{47}{Value of Residual Storage}{equation.4.93}{}} \newlabel{eq:singleprice}{{4.95}{48}{Value of Residual Storage}{equation.4.95}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}1}{\ignorespaces Five Price Model}}{48}{table.4.1}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}1}{\ignorespaces Five Price Model}}{48}{table.4.1}\protected@file@percent } \newlabel{tab:fivepricemodel}{{4\unhbox \voidb@x \hbox {-}1}{48}{Five Price Model}{table.4.1}{}} \newlabel{eq:vs}{{4.96}{49}{Value of Residual Storage}{equation.4.96}{}} \newlabel{eq:fs}{{4.104}{49}{Value of Residual Storage}{equation.4.104}{}} \newlabel{eq:Ctsd}{{4.107}{50}{Value of Residual Storage}{equation.4.107}{}} -\@writefile{toc}{\contentsline {section}{\numberline {5}{\tt most}}{51}{section.5}} +\@writefile{toc}{\contentsline {section}{\numberline {5}{\tt most}}{51}{section.5}\protected@file@percent } \newlabel{sec:mostfcn}{{5}{51}{\tt most}{section.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Input Data}{51}{subsection.5.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Input Data}{51}{subsection.5.1}\protected@file@percent } \newlabel{sec:inputdata}{{5.1}{51}{Input Data}{subsection.5.1}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.1}{\tt mpc} -- {\sc Matpower}{} Case}{51}{subsubsection.5.1.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.1}{\tt mpc} -- {\sc Matpower}{} Case}{51}{subsubsection.5.1.1}\protected@file@percent } \newlabel{sec:mpc}{{5.1.1}{51}{{\tt mpc} -- \matpower {} Case}{subsubsection.5.1.1}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {5\unhbox \voidb@x \hbox {-}1}{\ignorespaces Assembling the {{MOST}{} Data struct}{}}}{52}{figure.5.1}} +\@writefile{lof}{\contentsline {figure}{\numberline {5\unhbox \voidb@x \hbox {-}1}{\ignorespaces Assembling the {{MOST}{} Data struct}{}}}{52}{figure.5.1}\protected@file@percent } \newlabel{fig:loadmd}{{5\unhbox \voidb@x \hbox {-}1}{52}{Assembling the \md {}}{figure.5.1}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.2}{\tt transmat} -- Transition Probability Matrices}{53}{subsubsection.5.1.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.2}{\tt transmat} -- Transition Probability Matrices}{53}{subsubsection.5.1.2}\protected@file@percent } \newlabel{sec:transmat}{{5.1.2}{53}{{\tt transmat} -- Transition Probability Matrices}{subsubsection.5.1.2}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.3}{\tt xgd} -- Extra Generator Data ({\tt xGenData})}{53}{subsubsection.5.1.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.3}{\tt xgd} -- Extra Generator Data ({\tt xGenData})}{53}{subsubsection.5.1.3}\protected@file@percent } \newlabel{sec:xgd}{{5.1.3}{53}{{\tt xgd} -- Extra Generator Data ({\tt xGenData})}{subsubsection.5.1.3}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}1}{\ignorespaces Fields\TPToverlap {\textsuperscript {*}} of {\relsize {-0.5}{\tt {{xGenData}}}} struct ({\relsize {-0.5}{\tt {{xgd}}}})}}{54}{table.5.1}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}1}{\ignorespaces Fields\TPToverlap {\textsuperscript {*}} of {\relsize {-0.5}{\tt {{xGenData}}}} struct ({\relsize {-0.5}{\tt {{xgd}}}})}}{54}{table.5.1}\protected@file@percent } \newlabel{tab:xgd}{{5\unhbox \voidb@x \hbox {-}1}{54}{Fields\tnote {*} of \code {xGenData} struct (\code {xgd})}{table.5.1}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.4}{\tt sd} -- Storage Data ({\tt StorageData})}{55}{subsubsection.5.1.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.4}{\tt sd} -- Storage Data ({\tt StorageData})}{55}{subsubsection.5.1.4}\protected@file@percent } \newlabel{sec:sd}{{5.1.4}{55}{{\tt sd} -- Storage Data ({\tt StorageData})}{subsubsection.5.1.4}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.5}{\tt contab} -- Contingency Table}{55}{subsubsection.5.1.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.5}{\tt contab} -- Contingency Table}{55}{subsubsection.5.1.5}\protected@file@percent } \newlabel{sec:contab}{{5.1.5}{55}{{\tt contab} -- Contingency Table}{subsubsection.5.1.5}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}2}{\ignorespaces Fields\TPToverlap {\textsuperscript {*}} of {\relsize {-0.5}{\tt {{StorageData}}}} struct ({\relsize {-0.5}{\tt {{sd}}}})}}{56}{table.5.2}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}2}{\ignorespaces Fields\TPToverlap {\textsuperscript {*}} of {\relsize {-0.5}{\tt {{StorageData}}}} struct ({\relsize {-0.5}{\tt {{sd}}}})}}{56}{table.5.2}\protected@file@percent } \newlabel{tab:sd}{{5\unhbox \voidb@x \hbox {-}2}{56}{Fields\tnote {*} of \code {StorageData} struct (\code {sd})}{table.5.2}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.6}{\tt profiles} -- Profiles for Time-Varying Parameters}{57}{subsubsection.5.1.6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.6}{\tt profiles} -- Profiles for Time-Varying Parameters}{57}{subsubsection.5.1.6}\protected@file@percent } \newlabel{sec:profiles}{{5.1.6}{57}{{\tt profiles} -- Profiles for Time-Varying Parameters}{subsubsection.5.1.6}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}3}{\ignorespaces Fields of Profle Struct ({\relsize {-0.5}{\tt {{profile}}}})}}{57}{table.5.3}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}3}{\ignorespaces Fields of Profle Struct ({\relsize {-0.5}{\tt {{profile}}}})}}{57}{table.5.3}\protected@file@percent } \newlabel{tab:profile}{{5\unhbox \voidb@x \hbox {-}3}{57}{Fields of Profle Struct (\code {profile})}{table.5.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}{MOST}{} Options}{58}{subsection.5.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}{MOST}{} Options}{58}{subsection.5.2}\protected@file@percent } \newlabel{sec:mostoptions}{{5.2}{58}{\most {} Options}{subsection.5.2}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}4}{\ignorespaces {MOST}{} Run Options}}{58}{table.5.4}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}4}{\ignorespaces {MOST}{} Run Options}}{58}{table.5.4}\protected@file@percent } \newlabel{tab:mostrunoptions}{{5\unhbox \voidb@x \hbox {-}4}{58}{\most {} Run Options}{table.5.4}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}5}{\ignorespaces {MOST}{} Model Options}}{59}{table.5.5}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}5}{\ignorespaces {MOST}{} Model Options}}{59}{table.5.5}\protected@file@percent } \newlabel{tab:mostmodeloptions}{{5\unhbox \voidb@x \hbox {-}5}{59}{\most {} Model Options}{table.5.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}{{MOST}{} Data struct}{}}{60}{subsection.5.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}{{MOST}{} Data struct}{}}{60}{subsection.5.3}\protected@file@percent } \newlabel{sec:md}{{5.3}{60}{\md {}}{subsection.5.3}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Input Data}{60}{subsubsection.5.3.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Input Data}{60}{subsubsection.5.3.1}\protected@file@percent } \newlabel{sec:mdinputdata}{{5.3.1}{60}{Input Data}{subsubsection.5.3.1}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}6}{\ignorespaces Input Data Fields of {\relsize {-0.5}{\tt {{md}}}}}}{61}{table.5.6}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}6}{\ignorespaces Input Data Fields of {\relsize {-0.5}{\tt {{md}}}}}}{61}{table.5.6}\protected@file@percent } \newlabel{tab:md_inputs}{{5\unhbox \voidb@x \hbox {-}6}{61}{Input Data Fields of \code {md}}{table.5.6}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}7}{\ignorespaces Additional Input Data Fields of {\relsize {-0.5}{\tt {{md}}}}}}{62}{table.5.7}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}7}{\ignorespaces Additional Input Data Fields of {\relsize {-0.5}{\tt {{md}}}}}}{62}{table.5.7}\protected@file@percent } \newlabel{tab:md_inputs2}{{5\unhbox \voidb@x \hbox {-}7}{62}{Additional Input Data Fields of \code {md}}{table.5.7}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}8}{\ignorespaces Fields of Offer struct {\relsize {-0.5}{\tt {{md.offer(t)}}}}}}{63}{table.5.8}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}8}{\ignorespaces Fields of Offer struct {\relsize {-0.5}{\tt {{md.offer(t)}}}}}}{63}{table.5.8}\protected@file@percent } \newlabel{tab:md_inputoffer}{{5\unhbox \voidb@x \hbox {-}8}{63}{Fields of Offer struct \code {md.offer(t)}}{table.5.8}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}9}{\ignorespaces Input Fields of {\relsize {-0.5}{\tt {{md.Storage}}}}}}{64}{table.5.9}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}9}{\ignorespaces Input Fields of {\relsize {-0.5}{\tt {{md.Storage}}}}}}{64}{table.5.9}\protected@file@percent } \newlabel{tab:md_inputstorage}{{5\unhbox \voidb@x \hbox {-}9}{64}{Input Fields of \code {md.Storage}}{table.5.9}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2}Output Data}{65}{subsubsection.5.3.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2}Output Data}{65}{subsubsection.5.3.2}\protected@file@percent } \newlabel{sec:mdoutputdata}{{5.3.2}{65}{Output Data}{subsubsection.5.3.2}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}10}{\ignorespaces Output Data Fields of {\relsize {-0.5}{\tt {{md}}}}}}{66}{table.5.10}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}10}{\ignorespaces Output Data Fields of {\relsize {-0.5}{\tt {{md}}}}}}{66}{table.5.10}\protected@file@percent } \newlabel{tab:md_outputs}{{5\unhbox \voidb@x \hbox {-}10}{66}{Output Data Fields of \code {md}}{table.5.10}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}11}{\ignorespaces Fields of Index struct {\relsize {-0.5}{\tt {{md.idx}}}}}}{67}{table.5.11}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}11}{\ignorespaces Fields of Index struct {\relsize {-0.5}{\tt {{md.idx}}}}}}{67}{table.5.11}\protected@file@percent } \newlabel{tab:md_inputidx}{{5\unhbox \voidb@x \hbox {-}11}{67}{Fields of Index struct \code {md.idx}}{table.5.11}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}12}{\ignorespaces Fields of QP struct {\relsize {-0.5}{\tt {{md.QP}}}}}}{68}{table.5.12}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}12}{\ignorespaces Fields of QP struct {\relsize {-0.5}{\tt {{md.QP}}}}}}{68}{table.5.12}\protected@file@percent } \newlabel{tab:md_qp}{{5\unhbox \voidb@x \hbox {-}12}{68}{Fields of QP struct \code {md.QP}}{table.5.12}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}13}{\ignorespaces Fields of Results struct {\relsize {-0.5}{\tt {{md.results}}}}}}{69}{table.5.13}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}13}{\ignorespaces Fields of Results struct {\relsize {-0.5}{\tt {{md.results}}}}}}{69}{table.5.13}\protected@file@percent } \newlabel{tab:md_results}{{5\unhbox \voidb@x \hbox {-}13}{69}{Fields of Results struct \code {md.results}}{table.5.13}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Additional Considerations}{70}{subsection.5.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Additional Considerations}{70}{subsection.5.4}\protected@file@percent } \newlabel{sec:mostmisc}{{5.4}{70}{Additional Considerations}{subsection.5.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {6}Additional Functions}{71}{section.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}\tt addgen2mpc}{71}{subsection.6.1}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Additional Functions}{71}{section.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}\tt addgen2mpc}{71}{subsection.6.1}\protected@file@percent } \newlabel{sec:addgen2mpc}{{6.1}{71}{\tt addgen2mpc}{subsection.6.1}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}1}{\ignorespaces Typical Generator Types}}{71}{table.6.1}} +\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}1}{\ignorespaces Typical Generator Types}}{71}{table.6.1}\protected@file@percent } \newlabel{tab:gen_types}{{6\unhbox \voidb@x \hbox {-}1}{71}{Typical Generator Types}{table.6.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}\tt addstorage}{72}{subsection.6.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}\tt addstorage}{72}{subsection.6.2}\protected@file@percent } \newlabel{sec:addstorage}{{6.2}{72}{\tt addstorage}{subsection.6.2}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}2}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{StorageUnitData}}}} struct ({\relsize {-0.5}{\tt {{storage}}}})}}{72}{table.6.2}} +\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}2}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{StorageUnitData}}}} struct ({\relsize {-0.5}{\tt {{storage}}}})}}{72}{table.6.2}\protected@file@percent } \newlabel{tab:storage_unit_data}{{6\unhbox \voidb@x \hbox {-}2}{72}{Fields of \code {StorageUnitData} struct (\code {storage})}{table.6.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}\tt addwind}{72}{subsection.6.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}\tt addwind}{72}{subsection.6.3}\protected@file@percent } \newlabel{sec:addwind}{{6.3}{72}{\tt addwind}{subsection.6.3}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}3}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{WindUnitData}}}} struct ({\relsize {-0.5}{\tt {{wind}}}})}}{73}{table.6.3}} +\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}3}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{WindUnitData}}}} struct ({\relsize {-0.5}{\tt {{wind}}}})}}{73}{table.6.3}\protected@file@percent } \newlabel{tab:wind_unit_data}{{6\unhbox \voidb@x \hbox {-}3}{73}{Fields of \code {WindUnitData} struct (\code {wind})}{table.6.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}\tt apply\_profile}{73}{subsection.6.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}\tt apply\_profile}{73}{subsection.6.4}\protected@file@percent } \newlabel{sec:apply_profile}{{6.4}{73}{\tt apply\_profile}{subsection.6.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}\tt filter\_ramp\_transitions}{73}{subsection.6.5}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}\tt filter\_ramp\_transitions}{73}{subsection.6.5}\protected@file@percent } \newlabel{sec:filter_ramp_transitions}{{6.5}{73}{\tt filter\_ramp\_transitions}{subsection.6.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.6}\tt getprofiles}{74}{subsection.6.6}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.6}\tt getprofiles}{74}{subsection.6.6}\protected@file@percent } \newlabel{sec:getprofiles}{{6.6}{74}{\tt getprofiles}{subsection.6.6}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.7}\tt idx\_profile}{74}{subsection.6.7}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.7}\tt idx\_profile}{74}{subsection.6.7}\protected@file@percent } \newlabel{sec:idx_profile}{{6.7}{74}{\tt idx\_profile}{subsection.6.7}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.8}\tt loadgenericdata}{74}{subsection.6.8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.8}\tt loadgenericdata}{74}{subsection.6.8}\protected@file@percent } \newlabel{sec:loadgenericdata}{{6.8}{74}{\tt loadgenericdata}{subsection.6.8}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}4}{\ignorespaces Constants Defined by {\relsize {-0.5}{\tt {{idx\_profile}}}}}}{75}{table.6.4}} +\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}4}{\ignorespaces Constants Defined by {\relsize {-0.5}{\tt {{idx\_profile}}}}}}{75}{table.6.4}\protected@file@percent } \newlabel{tab:idx_profile}{{6\unhbox \voidb@x \hbox {-}4}{75}{Constants Defined by \code {idx\_profile}}{table.6.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.9}\tt loadmd}{75}{subsection.6.9}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.9}\tt loadmd}{75}{subsection.6.9}\protected@file@percent } \newlabel{sec:loadmd}{{6.9}{75}{\tt loadmd}{subsection.6.9}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.10}\tt loadstoragedata}{76}{subsection.6.10}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.10}\tt loadstoragedata}{76}{subsection.6.10}\protected@file@percent } \newlabel{sec:loadstoragedata}{{6.10}{76}{\tt loadstoragedata}{subsection.6.10}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}5}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{StorageDataTable}}}} struct ({\relsize {-0.5}{\tt {{sd\_table}}}})}}{76}{table.6.5}} +\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}5}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{StorageDataTable}}}} struct ({\relsize {-0.5}{\tt {{sd\_table}}}})}}{76}{table.6.5}\protected@file@percent } \newlabel{tab:sd_table}{{6\unhbox \voidb@x \hbox {-}5}{76}{Fields of \code {StorageDataTable} struct (\code {sd\_table})}{table.6.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.11}\tt loadxgendata}{77}{subsection.6.11}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.11}\tt loadxgendata}{77}{subsection.6.11}\protected@file@percent } \newlabel{sec:loadxgendata}{{6.11}{77}{\tt loadxgendata}{subsection.6.11}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}6}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{xGenDataTable}}}} struct ({\relsize {-0.5}{\tt {{xgd\_table}}}})}}{78}{table.6.6}} +\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}6}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{xGenDataTable}}}} struct ({\relsize {-0.5}{\tt {{xgd\_table}}}})}}{78}{table.6.6}\protected@file@percent } \newlabel{tab:xgd_table}{{6\unhbox \voidb@x \hbox {-}6}{78}{Fields of \code {xGenDataTable} struct (\code {xgd\_table})}{table.6.6}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.12}\tt most\_summary}{79}{subsection.6.12}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.12}\tt most\_summary}{79}{subsection.6.12}\protected@file@percent } \newlabel{sec:most_summary}{{6.12}{79}{\tt most\_summary}{subsection.6.12}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}7}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{most\_summary}}}} struct ({\relsize {-0.5}{\tt {{ms}}}})}}{79}{table.6.7}} +\@writefile{lot}{\contentsline {table}{\numberline {6\unhbox \voidb@x \hbox {-}7}{\ignorespaces Fields of {\relsize {-0.5}{\tt {{most\_summary}}}} struct ({\relsize {-0.5}{\tt {{ms}}}})}}{79}{table.6.7}\protected@file@percent } \newlabel{tab:most_summary}{{6\unhbox \voidb@x \hbox {-}7}{79}{Fields of \code {most\_summary} struct (\code {ms})}{table.6.7}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.13}\tt mostver}{79}{subsection.6.13}} -\newlabel{sec:mostver}{{6.13}{79}{\tt mostver}{subsection.6.13}{}} -\@writefile{toc}{\contentsline {section}{\numberline {7}Tutorial Examples}{80}{section.7}} -\newlabel{sec:tutorial}{{7}{80}{Tutorial Examples}{section.7}{}} -\@writefile{lot}{\contentsline {table}{\numberline {7\unhbox \voidb@x \hbox {-}1}{\ignorespaces Summary of Tutorial Example System Data}}{80}{table.7.1}} -\newlabel{tab:threebus}{{7\unhbox \voidb@x \hbox {-}1}{80}{Summary of Tutorial Example System Data}{table.7.1}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}1}{\ignorespaces Tutorial Example System}}{81}{figure.7.1}} -\newlabel{fig:threebus}{{7\unhbox \voidb@x \hbox {-}1}{81}{Tutorial Example System}{figure.7.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Single Period Problems}{81}{subsection.7.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.1}Example 1 -- Deterministic Economic Dispatch}{81}{subsubsection.7.1.1}} -\newlabel{sec:tutex1}{{7.1.1}{81}{Example 1 -- Deterministic Economic Dispatch}{subsubsection.7.1.1}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.2}Example 2 -- Deterministic DC OPF}{83}{subsubsection.7.1.2}} -\newlabel{sec:tutex2}{{7.1.2}{83}{Example 2 -- Deterministic DC OPF}{subsubsection.7.1.2}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.3}Example 3 -- Deterministic DC OPF with Binary Commitment}{84}{subsubsection.7.1.3}} -\newlabel{sec:tutex3}{{7.1.3}{84}{Example 3 -- Deterministic DC OPF with Binary Commitment}{subsubsection.7.1.3}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.4}Example 4 -- Secure and Stochastic DC OPF}{85}{subsubsection.7.1.4}} -\newlabel{sec:tutex4}{{7.1.4}{85}{Example 4 -- Secure and Stochastic DC OPF}{subsubsection.7.1.4}{}} -\newlabel{sec:secdcopf}{{7.1.4}{85}{Secure DC OPF - with contingencies}{section*.10}{}} -\newlabel{sec:stochdcopf}{{7.1.4}{86}{Stochastic DC OPF - with renewable uncertainty}{section*.11}{}} -\newlabel{sec:ssdcopf}{{7.1.4}{87}{Secure Stochastic DC OPF}{section*.12}{}} -\newlabel{sec:ssdcopfuc}{{7.1.4}{87}{Secure Stochastic DC OPF with Binary Commitment}{section*.13}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Multiperiod Problems}{88}{subsection.7.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.1}Example 5 -- Deterministic Multiperiod OPF}{88}{subsubsection.7.2.1}} -\newlabel{sec:tutex5}{{7.2.1}{88}{Example 5 -- Deterministic Multiperiod OPF}{subsubsection.7.2.1}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}2}{\ignorespaces Example Load and Wind Profiles}}{89}{figure.7.2}} -\newlabel{fig:load_wind_profiles}{{7\unhbox \voidb@x \hbox {-}2}{89}{Example Load and Wind Profiles}{figure.7.2}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.2}Example 6 -- Deterministic Unit Commitment}{90}{subsubsection.7.2.2}} -\newlabel{sec:tutex6}{{7.2.2}{90}{Example 6 -- Deterministic Unit Commitment}{subsubsection.7.2.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}3}{\ignorespaces Deterministic UC : Base Case with No Network}}{92}{figure.7.3}} -\newlabel{fig:uc_ex_1}{{7\unhbox \voidb@x \hbox {-}3}{92}{Deterministic UC : Base Case with No Network}{figure.7.3}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}4}{\ignorespaces Deterministic UC : Add DC Network Model}}{93}{figure.7.4}} -\newlabel{fig:uc_ex_2}{{7\unhbox \voidb@x \hbox {-}4}{93}{Deterministic UC : Add DC Network Model}{figure.7.4}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}5}{\ignorespaces Deterministic UC : Add Startup and Shutdown Costs}}{94}{figure.7.5}} -\newlabel{fig:uc_ex_3}{{7\unhbox \voidb@x \hbox {-}5}{94}{Deterministic UC : Add Startup and Shutdown Costs}{figure.7.5}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}6}{\ignorespaces Deterministic UC : Add Min Up/Down Time Constraints}}{96}{figure.7.6}} -\newlabel{fig:uc_ex_4}{{7\unhbox \voidb@x \hbox {-}6}{96}{Deterministic UC : Add Min Up/Down Time Constraints}{figure.7.6}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}7}{\ignorespaces Deterministic UC : Add Ramp Constraints and Ramp Reserve Costs}}{97}{figure.7.7}} -\newlabel{fig:uc_ex_5}{{7\unhbox \voidb@x \hbox {-}7}{97}{Deterministic UC : Add Ramp Constraints and Ramp Reserve Costs}{figure.7.7}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}8}{\ignorespaces Deterministic UC : Add Storage}}{98}{figure.7.8}} -\newlabel{fig:uc_ex_6}{{7\unhbox \voidb@x \hbox {-}8}{98}{Deterministic UC : Add Storage}{figure.7.8}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.3}Example 7 -- Secure Stochastic Unit Commitment}{99}{subsubsection.7.2.3}} -\newlabel{sec:tutex7}{{7.2.3}{99}{Example 7 -- Secure Stochastic Unit Commitment}{subsubsection.7.2.3}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}9}{\ignorespaces Example Wind Profiles, Individual Trajectories}}{100}{figure.7.9}} -\newlabel{fig:wind_profile_1}{{7\unhbox \voidb@x \hbox {-}9}{100}{Example Wind Profiles, Individual Trajectories}{figure.7.9}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}10}{\ignorespaces Stochastic UC : Individual Trajectories}}{101}{figure.7.10}} -\newlabel{fig:suc_ex_2}{{7\unhbox \voidb@x \hbox {-}10}{101}{Stochastic UC : Individual Trajectories}{figure.7.10}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}11}{\ignorespaces Example Wind Profiles, Full Transition Probabilities}}{102}{figure.7.11}} -\newlabel{fig:wind_profile_2}{{7\unhbox \voidb@x \hbox {-}11}{102}{Example Wind Profiles, Full Transition Probabilities}{figure.7.11}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}12}{\ignorespaces Stochastic UC : Full Transition Probabilities}}{103}{figure.7.12}} -\newlabel{fig:suc_ex_3}{{7\unhbox \voidb@x \hbox {-}12}{103}{Stochastic UC : Full Transition Probabilities}{figure.7.12}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}13}{\ignorespaces Secure Stochastic UC : Full Transition Probabilities + Contingencies}}{104}{figure.7.13}} -\newlabel{fig:suc_ex_4}{{7\unhbox \voidb@x \hbox {-}13}{104}{Secure Stochastic UC : Full Transition Probabilities + Contingencies}{figure.7.13}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}14}{\ignorespaces Secure Stochastic UC with Storage}}{105}{figure.7.14}} -\newlabel{fig:suc_ex_5}{{7\unhbox \voidb@x \hbox {-}14}{105}{Secure Stochastic UC with Storage}{figure.7.14}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.4}Dynamical System Constraint Example}{105}{subsubsection.7.2.4}} -\newlabel{sec:ds_ex}{{7.2.4}{105}{Dynamical System Constraint Example}{subsubsection.7.2.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {8}Acknowledgments}{106}{section.8}} -\@writefile{toc}{\contentsline {section}{Appendix \numberline {A}{MOST}{} Files and Functions}{107}{Appendix.1.A}} -\newlabel{app:functions}{{A}{107}{\most {} Files and Functions}{Appendix.1.A}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {A.1}{MOST}{} Documentation Files}{107}{subsection.1.A.1}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}1}{\ignorespaces {MOST}{} Documentation Files}}{107}{table.1.A.1}} -\newlabel{tab:mostdocfiles}{{A\unhbox \voidb@x \hbox {-}1}{107}{\most {} Documentation Files}{table.1.A.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {A.2}{MOST}{} Functions}{108}{subsection.1.A.2}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}2}{\ignorespaces {MOST}{} Functions}}{108}{table.1.A.2}} -\newlabel{tab:mostsw}{{A\unhbox \voidb@x \hbox {-}2}{108}{\most {} Functions}{table.1.A.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {A.3}Automated Test Suite}{109}{subsection.1.A.3}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}3}{\ignorespaces {MOST}{} Test and Example Data}}{109}{table.1.A.3}} -\newlabel{tab:mosttestdata}{{A\unhbox \voidb@x \hbox {-}3}{109}{\most {} Test and Example Data}{table.1.A.3}{}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}4}{\ignorespaces {MOST}{} Tests}}{110}{table.1.A.4}} -\newlabel{tab:mosttests}{{A\unhbox \voidb@x \hbox {-}4}{110}{\most {} Tests}{table.1.A.4}{}} -\@writefile{toc}{\contentsline {section}{Appendix \numberline {B}Release History}{111}{Appendix.1.B}} -\newlabel{app:release_history}{{B}{111}{Release History}{Appendix.1.B}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.1}Version 1.0 -- released Dec 16, 2016}{111}{subsection.1.B.1}} -\newlabel{app:v10}{{B.1}{111}{Version 1.0 -- released Dec 16, 2016}{subsection.1.B.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.2}Version 1.0.1 -- released Oct 30, 2018}{111}{subsection.1.B.2}} -\newlabel{app:v101}{{B.2}{111}{Version 1.0.1 -- released Oct 30, 2018}{subsection.1.B.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.3}Version 1.0.2 -- released Jun 20, 2019}{112}{subsection.1.B.3}} -\newlabel{app:v102}{{B.3}{112}{Version 1.0.2 -- released Jun 20, 2019}{subsection.1.B.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.13}\tt mostver}{80}{subsection.6.13}\protected@file@percent } +\newlabel{sec:mostver}{{6.13}{80}{\tt mostver}{subsection.6.13}{}} +\@writefile{toc}{\contentsline {section}{\numberline {7}Tutorial Examples}{81}{section.7}\protected@file@percent } +\newlabel{sec:tutorial}{{7}{81}{Tutorial Examples}{section.7}{}} +\@writefile{lot}{\contentsline {table}{\numberline {7\unhbox \voidb@x \hbox {-}1}{\ignorespaces Summary of Tutorial Example System Data}}{81}{table.7.1}\protected@file@percent } +\newlabel{tab:threebus}{{7\unhbox \voidb@x \hbox {-}1}{81}{Summary of Tutorial Example System Data}{table.7.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}1}{\ignorespaces Tutorial Example System}}{82}{figure.7.1}\protected@file@percent } +\newlabel{fig:threebus}{{7\unhbox \voidb@x \hbox {-}1}{82}{Tutorial Example System}{figure.7.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Single Period Problems}{82}{subsection.7.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.1}Example 1 -- Deterministic Economic Dispatch}{82}{subsubsection.7.1.1}\protected@file@percent } +\newlabel{sec:tutex1}{{7.1.1}{82}{Example 1 -- Deterministic Economic Dispatch}{subsubsection.7.1.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.2}Example 2 -- Deterministic DC OPF}{84}{subsubsection.7.1.2}\protected@file@percent } +\newlabel{sec:tutex2}{{7.1.2}{84}{Example 2 -- Deterministic DC OPF}{subsubsection.7.1.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.3}Example 3 -- Deterministic DC OPF with Binary Commitment}{85}{subsubsection.7.1.3}\protected@file@percent } +\newlabel{sec:tutex3}{{7.1.3}{85}{Example 3 -- Deterministic DC OPF with Binary Commitment}{subsubsection.7.1.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.4}Example 4 -- Secure and Stochastic DC OPF}{86}{subsubsection.7.1.4}\protected@file@percent } +\newlabel{sec:tutex4}{{7.1.4}{86}{Example 4 -- Secure and Stochastic DC OPF}{subsubsection.7.1.4}{}} +\newlabel{sec:secdcopf}{{7.1.4}{86}{Secure DC OPF - with contingencies}{section*.10}{}} +\newlabel{sec:stochdcopf}{{7.1.4}{87}{Stochastic DC OPF - with renewable uncertainty}{section*.11}{}} +\newlabel{sec:ssdcopf}{{7.1.4}{88}{Secure Stochastic DC OPF}{section*.12}{}} +\newlabel{sec:ssdcopfuc}{{7.1.4}{88}{Secure Stochastic DC OPF with Binary Commitment}{section*.13}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Multiperiod Problems}{89}{subsection.7.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.1}Example 5 -- Deterministic Multiperiod OPF}{89}{subsubsection.7.2.1}\protected@file@percent } +\newlabel{sec:tutex5}{{7.2.1}{89}{Example 5 -- Deterministic Multiperiod OPF}{subsubsection.7.2.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}2}{\ignorespaces Example Load and Wind Profiles}}{90}{figure.7.2}\protected@file@percent } +\newlabel{fig:load_wind_profiles}{{7\unhbox \voidb@x \hbox {-}2}{90}{Example Load and Wind Profiles}{figure.7.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.2}Example 6 -- Deterministic Unit Commitment}{91}{subsubsection.7.2.2}\protected@file@percent } +\newlabel{sec:tutex6}{{7.2.2}{91}{Example 6 -- Deterministic Unit Commitment}{subsubsection.7.2.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}3}{\ignorespaces Deterministic UC : Base Case with No Network}}{93}{figure.7.3}\protected@file@percent } +\newlabel{fig:uc_ex_1}{{7\unhbox \voidb@x \hbox {-}3}{93}{Deterministic UC : Base Case with No Network}{figure.7.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}4}{\ignorespaces Deterministic UC : Add DC Network Model}}{94}{figure.7.4}\protected@file@percent } +\newlabel{fig:uc_ex_2}{{7\unhbox \voidb@x \hbox {-}4}{94}{Deterministic UC : Add DC Network Model}{figure.7.4}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}5}{\ignorespaces Deterministic UC : Add Startup and Shutdown Costs}}{95}{figure.7.5}\protected@file@percent } +\newlabel{fig:uc_ex_3}{{7\unhbox \voidb@x \hbox {-}5}{95}{Deterministic UC : Add Startup and Shutdown Costs}{figure.7.5}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}6}{\ignorespaces Deterministic UC : Add Min Up/Down Time Constraints}}{97}{figure.7.6}\protected@file@percent } +\newlabel{fig:uc_ex_4}{{7\unhbox \voidb@x \hbox {-}6}{97}{Deterministic UC : Add Min Up/Down Time Constraints}{figure.7.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}7}{\ignorespaces Deterministic UC : Add Ramp Constraints and Ramp Reserve Costs}}{98}{figure.7.7}\protected@file@percent } +\newlabel{fig:uc_ex_5}{{7\unhbox \voidb@x \hbox {-}7}{98}{Deterministic UC : Add Ramp Constraints and Ramp Reserve Costs}{figure.7.7}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}8}{\ignorespaces Deterministic UC : Add Storage}}{99}{figure.7.8}\protected@file@percent } +\newlabel{fig:uc_ex_6}{{7\unhbox \voidb@x \hbox {-}8}{99}{Deterministic UC : Add Storage}{figure.7.8}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.3}Example 7 -- Secure Stochastic Unit Commitment}{100}{subsubsection.7.2.3}\protected@file@percent } +\newlabel{sec:tutex7}{{7.2.3}{100}{Example 7 -- Secure Stochastic Unit Commitment}{subsubsection.7.2.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}9}{\ignorespaces Example Wind Profiles, Individual Trajectories}}{101}{figure.7.9}\protected@file@percent } +\newlabel{fig:wind_profile_1}{{7\unhbox \voidb@x \hbox {-}9}{101}{Example Wind Profiles, Individual Trajectories}{figure.7.9}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}10}{\ignorespaces Stochastic UC : Individual Trajectories}}{102}{figure.7.10}\protected@file@percent } +\newlabel{fig:suc_ex_2}{{7\unhbox \voidb@x \hbox {-}10}{102}{Stochastic UC : Individual Trajectories}{figure.7.10}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}11}{\ignorespaces Example Wind Profiles, Full Transition Probabilities}}{103}{figure.7.11}\protected@file@percent } +\newlabel{fig:wind_profile_2}{{7\unhbox \voidb@x \hbox {-}11}{103}{Example Wind Profiles, Full Transition Probabilities}{figure.7.11}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}12}{\ignorespaces Stochastic UC : Full Transition Probabilities}}{104}{figure.7.12}\protected@file@percent } +\newlabel{fig:suc_ex_3}{{7\unhbox \voidb@x \hbox {-}12}{104}{Stochastic UC : Full Transition Probabilities}{figure.7.12}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}13}{\ignorespaces Secure Stochastic UC : Full Transition Probabilities + Contingencies}}{105}{figure.7.13}\protected@file@percent } +\newlabel{fig:suc_ex_4}{{7\unhbox \voidb@x \hbox {-}13}{105}{Secure Stochastic UC : Full Transition Probabilities + Contingencies}{figure.7.13}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\unhbox \voidb@x \hbox {-}14}{\ignorespaces Secure Stochastic UC with Storage}}{106}{figure.7.14}\protected@file@percent } +\newlabel{fig:suc_ex_5}{{7\unhbox \voidb@x \hbox {-}14}{106}{Secure Stochastic UC with Storage}{figure.7.14}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.4}Dynamical System Constraint Example}{106}{subsubsection.7.2.4}\protected@file@percent } +\newlabel{sec:ds_ex}{{7.2.4}{106}{Dynamical System Constraint Example}{subsubsection.7.2.4}{}} +\@writefile{toc}{\contentsline {section}{\numberline {8}Acknowledgments}{107}{section.8}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{Appendix \numberline {A}{MOST}{} Files and Functions}{108}{Appendix.1.A}\protected@file@percent } +\newlabel{app:functions}{{A}{108}{\most {} Files and Functions}{Appendix.1.A}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {A.1}{MOST}{} Documentation Files}{108}{subsection.1.A.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}1}{\ignorespaces {MOST}{} Documentation Files}}{108}{table.1.A.1}\protected@file@percent } +\newlabel{tab:mostdocfiles}{{A\unhbox \voidb@x \hbox {-}1}{108}{\most {} Documentation Files}{table.1.A.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {A.2}{MOST}{} Functions}{109}{subsection.1.A.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}2}{\ignorespaces {MOST}{} Functions}}{109}{table.1.A.2}\protected@file@percent } +\newlabel{tab:mostsw}{{A\unhbox \voidb@x \hbox {-}2}{109}{\most {} Functions}{table.1.A.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {A.3}Automated Test Suite}{110}{subsection.1.A.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}3}{\ignorespaces {MOST}{} Test and Example Data}}{110}{table.1.A.3}\protected@file@percent } +\newlabel{tab:mosttestdata}{{A\unhbox \voidb@x \hbox {-}3}{110}{\most {} Test and Example Data}{table.1.A.3}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}4}{\ignorespaces {MOST}{} Tests}}{111}{table.1.A.4}\protected@file@percent } +\newlabel{tab:mosttests}{{A\unhbox \voidb@x \hbox {-}4}{111}{\most {} Tests}{table.1.A.4}{}} +\@writefile{toc}{\contentsline {section}{Appendix \numberline {B}Release History}{112}{Appendix.1.B}\protected@file@percent } +\newlabel{app:release_history}{{B}{112}{Release History}{Appendix.1.B}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.1}Version 1.0 -- released Dec 16, 2016}{112}{subsection.1.B.1}\protected@file@percent } +\newlabel{app:v10}{{B.1}{112}{Version 1.0 -- released Dec 16, 2016}{subsection.1.B.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.2}Version 1.0.1 -- released Oct 30, 2018}{112}{subsection.1.B.2}\protected@file@percent } +\newlabel{app:v101}{{B.2}{112}{Version 1.0.1 -- released Oct 30, 2018}{subsection.1.B.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.3}Version 1.0.2 -- released Jun 20, 2019}{113}{subsection.1.B.3}\protected@file@percent } +\newlabel{app:v102}{{B.3}{113}{Version 1.0.2 -- released Jun 20, 2019}{subsection.1.B.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.4}Version 1.1 -- released Oct 8, 2020}{114}{subsection.1.B.4}\protected@file@percent } +\newlabel{app:v11}{{B.4}{114}{Version 1.1 -- released Oct 8, 2020}{subsection.1.B.4}{}} \bibcite{zimmerman2011}{1} \bibcite{matpower}{2} \bibcite{matpower_manual}{3} @@ -335,5 +337,5 @@ \bibcite{bsd}{7} \bibcite{most_manual}{8} \bibcite{superopf2008}{9} -\@writefile{toc}{\contentsline {section}{References}{113}{section*.31}} +\@writefile{toc}{\contentsline {section}{References}{115}{section*.34}\protected@file@percent } \bibcite{murillo-sanchez2013}{10} diff --git a/docs/src/MATPOWER-manual/MP-Opt-Model-manual.aux b/docs/src/MATPOWER-manual/MP-Opt-Model-manual.aux index f8ed3d50..a81356bf 100644 --- a/docs/src/MATPOWER-manual/MP-Opt-Model-manual.aux +++ b/docs/src/MATPOWER-manual/MP-Opt-Model-manual.aux @@ -18,202 +18,316 @@ \providecommand\HyField@AuxAddToCoFields[2]{} \citation{octave} \citation{zimmerman2011,matpower} -\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{5}{section.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Background}{5}{subsection.1.1}\protected@file@percent } -\@writefile{brf}{\backcite{zimmerman2011,matpower}{{5}{1.1}{subsection.1.1}}} -\@writefile{brf}{\backcite{octave}{{5}{1}{subsection.1.1}}} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{7}{section.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Background}{7}{subsection.1.1}\protected@file@percent } +\@writefile{brf}{\backcite{zimmerman2011,matpower}{{7}{1.1}{subsection.1.1}}} +\@writefile{brf}{\backcite{octave}{{7}{1}{subsection.1.1}}} \citation{bsd} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}License and Terms of Use}{6}{subsection.1.2}\protected@file@percent } -\@writefile{brf}{\backcite{bsd}{{6}{1.2}{subsection.1.2}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}License and Terms of Use}{8}{subsection.1.2}\protected@file@percent } +\@writefile{brf}{\backcite{bsd}{{8}{1.2}{subsection.1.2}}} \citation{mpom_manual} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Citing \unhbox \voidb@x \hbox {MP-Opt-Model}{}}{7}{subsection.1.3}\protected@file@percent } -\@writefile{brf}{\backcite{mpom_manual}{{7}{1.3}{subsection.1.3}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}\unhbox \voidb@x \hbox {MP-Opt-Model}{} Development}{7}{subsection.1.4}\protected@file@percent } -\newlabel{sec:development}{{1.4}{7}{\mpom {} Development}{subsection.1.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Citing \unhbox \voidb@x \hbox {MP-Opt-Model}{}}{9}{subsection.1.3}\protected@file@percent } +\@writefile{brf}{\backcite{mpom_manual}{{9}{1.3}{subsection.1.3}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}\unhbox \voidb@x \hbox {MP-Opt-Model}{} Development}{9}{subsection.1.4}\protected@file@percent } +\newlabel{sec:development}{{1.4}{9}{\mpom {} Development}{subsection.1.4}{}} \citation{octave} \citation{wang2007a,mips_manual} -\@writefile{toc}{\contentsline {section}{\numberline {2}Getting Started}{8}{section.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}System Requirements}{8}{subsection.2.1}\protected@file@percent } -\newlabel{sec:sysreq}{{2.1}{8}{System Requirements}{subsection.2.1}{}} -\@writefile{brf}{\backcite{wang2007a, mips_manual}{{8}{2.1}{subsection.2.1}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Installation}{8}{subsection.2.2}\protected@file@percent } -\newlabel{sec:installation}{{2.2}{8}{Installation}{subsection.2.2}{}} -\@writefile{brf}{\backcite{octave}{{8}{4}{subsection.2.1}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Sample Usage}{9}{subsection.2.3}\protected@file@percent } -\newlabel{sec:usage}{{2.3}{9}{Sample Usage}{subsection.2.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Documentation}{12}{subsection.2.4}\protected@file@percent } -\newlabel{sec:documentation}{{2.4}{12}{Documentation}{subsection.2.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {3}\unhbox \voidb@x \hbox {MP-Opt-Model}{} -- Overview}{13}{section.3}\protected@file@percent } -\newlabel{sec:mpom}{{3}{13}{\mpom {} -- Overview}{section.3}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4}Solver Interface Functions}{14}{section.4}\protected@file@percent } -\newlabel{sec:master_solvers}{{4}{14}{Solver Interface Functions}{section.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}LP/QP Solvers -- {\tt qps\_master}}{14}{subsection.4.1}\protected@file@percent } -\newlabel{sec:qps_master}{{4.1}{14}{LP/QP Solvers -- {\tt qps\_master}}{subsection.4.1}{}} -\newlabel{eq:LPobj}{{4.1}{14}{LP/QP Solvers -- {\tt qps\_master}}{equation.4.1}{}} -\newlabel{eq:LPvarbounds}{{4.3}{14}{LP/QP Solvers -- {\tt qps\_master}}{equation.4.2}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}1}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{qps\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{15}{table.caption.4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Getting Started}{10}{section.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}System Requirements}{10}{subsection.2.1}\protected@file@percent } +\newlabel{sec:sysreq}{{2.1}{10}{System Requirements}{subsection.2.1}{}} +\@writefile{brf}{\backcite{wang2007a, mips_manual}{{10}{2.1}{subsection.2.1}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Installation}{10}{subsection.2.2}\protected@file@percent } +\newlabel{sec:installation}{{2.2}{10}{Installation}{subsection.2.2}{}} +\@writefile{brf}{\backcite{octave}{{10}{4}{subsection.2.1}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Sample Usage}{11}{subsection.2.3}\protected@file@percent } +\newlabel{sec:usage}{{2.3}{11}{Sample Usage}{subsection.2.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Documentation}{14}{subsection.2.4}\protected@file@percent } +\newlabel{sec:documentation}{{2.4}{14}{Documentation}{subsection.2.4}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3}\unhbox \voidb@x \hbox {MP-Opt-Model}{} -- Overview}{15}{section.3}\protected@file@percent } +\newlabel{sec:mpom}{{3}{15}{\mpom {} -- Overview}{section.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4}Solver Interface Functions}{16}{section.4}\protected@file@percent } +\newlabel{sec:master_solvers}{{4}{16}{Solver Interface Functions}{section.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}LP/QP Solvers -- {\tt qps\_master}}{16}{subsection.4.1}\protected@file@percent } +\newlabel{sec:qps_master}{{4.1}{16}{LP/QP Solvers -- {\tt qps\_master}}{subsection.4.1}{}} +\newlabel{eq:LPobj}{{4.1}{16}{LP/QP Solvers -- {\tt qps\_master}}{equation.4.1}{}} +\newlabel{eq:LPvarbounds}{{4.3}{16}{LP/QP Solvers -- {\tt qps\_master}}{equation.4.2}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}1}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{qps\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{17}{table.caption.4}\protected@file@percent } \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} -\newlabel{tab:qps_master_input}{{4\unhbox \voidb@x \hbox {-}1}{15}{Input Arguments for \code {qps\_master}\tnote {\dag }\relax }{table.caption.4}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}2}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{qps\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{15}{table.caption.6}\protected@file@percent } -\newlabel{tab:qps_master_output}{{4\unhbox \voidb@x \hbox {-}2}{15}{Output Arguments for \code {qps\_master}\tnote {\dag }\relax }{table.caption.6}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}3}{\ignorespaces Options for {\relsize {-0.5}{\tt {{qps\_master}}}}\relax }}{16}{table.caption.8}\protected@file@percent } -\newlabel{tab:qps_master_options}{{4\unhbox \voidb@x \hbox {-}3}{16}{Options for \code {qps\_master}\relax }{table.caption.8}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}QP Example}{17}{subsubsection.4.1.1}\protected@file@percent } -\newlabel{sec:qp_ex}{{4.1.1}{17}{QP Example}{subsubsection.4.1.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}MILP/MIQP Solvers -- {\tt miqps\_master}}{18}{subsection.4.2}\protected@file@percent } -\newlabel{sec:miqps_master}{{4.2}{18}{MILP/MIQP Solvers -- {\tt miqps\_master}}{subsection.4.2}{}} -\newlabel{eq:mi_integer}{{4.4}{18}{MILP/MIQP Solvers -- {\tt miqps\_master}}{equation.4.4}{}} -\newlabel{eq:mi_binary}{{4.5}{18}{MILP/MIQP Solvers -- {\tt miqps\_master}}{equation.4.5}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}4}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{miqps\_master}}}}\relax }}{18}{table.caption.10}\protected@file@percent } -\newlabel{tab:miqps_master_input}{{4\unhbox \voidb@x \hbox {-}4}{18}{Input Arguments for \code {miqps\_master}\relax }{table.caption.10}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}5}{\ignorespaces Options for {\relsize {-0.5}{\tt {{miqps\_master}}}}\relax }}{19}{table.caption.12}\protected@file@percent } -\newlabel{tab:miqps_master_options}{{4\unhbox \voidb@x \hbox {-}5}{19}{Options for \code {miqps\_master}\relax }{table.caption.12}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}MILP Example}{20}{subsubsection.4.2.1}\protected@file@percent } -\newlabel{sec:milp_ex}{{4.2.1}{20}{MILP Example}{subsubsection.4.2.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}NLP Solvers -- {\tt nlps\_master}}{20}{subsection.4.3}\protected@file@percent } -\newlabel{sec:nlps_master}{{4.3}{20}{NLP Solvers -- {\tt nlps\_master}}{subsection.4.3}{}} -\newlabel{eq:nlp_obj}{{4.6}{20}{NLP Solvers -- {\tt nlps\_master}}{equation.4.6}{}} -\newlabel{eq:nlp_g}{{4.7}{20}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} -\newlabel{eq:nlp_h}{{4.8}{20}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} -\newlabel{eq:nlp_linear_constraints}{{4.9}{20}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} -\newlabel{eq:nlp_var_bounds}{{4.10}{20}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}6}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{nlps\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{21}{table.caption.14}\protected@file@percent } -\newlabel{tab:nlps_master_input}{{4\unhbox \voidb@x \hbox {-}6}{21}{Input Arguments for \code {nlps\_master}\tnote {\dag }\relax }{table.caption.14}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}7}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{nlps\_master}}}}\relax }}{22}{table.caption.16}\protected@file@percent } -\newlabel{tab:nlps_master_output}{{4\unhbox \voidb@x \hbox {-}7}{22}{Output Arguments for \code {nlps\_master}\relax }{table.caption.16}{}} -\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}8}{\ignorespaces Options for {\relsize {-0.5}{\tt {{nlps\_master}}}}\relax }}{22}{table.caption.18}\protected@file@percent } -\newlabel{tab:nlps_master_options}{{4\unhbox \voidb@x \hbox {-}8}{22}{Options for \code {nlps\_master}\relax }{table.caption.18}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}NLP Example 1}{23}{subsubsection.4.3.1}\protected@file@percent } -\newlabel{sec:nlp_ex1}{{4.3.1}{23}{NLP Example 1}{subsubsection.4.3.1}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}NLP Example 2}{24}{subsubsection.4.3.2}\protected@file@percent } -\newlabel{sec:nlp_ex2}{{4.3.2}{24}{NLP Example 2}{subsubsection.4.3.2}{}} -\@writefile{toc}{\contentsline {section}{\numberline {5}Optimization Model Class -- {\tt opt\_model}}{28}{section.5}\protected@file@percent } -\newlabel{sec:opt_model}{{5}{28}{Optimization Model Class -- {\tt opt\_model}}{section.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Adding Variables}{28}{subsection.5.1}\protected@file@percent } -\newlabel{sec:add_var}{{5.1}{28}{Adding Variables}{subsection.5.1}{}} -\newlabel{eq:x}{{5.1}{29}{Adding Variables}{equation.5.1}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.1}Variable Subsets}{29}{subsubsection.5.1.1}\protected@file@percent } -\newlabel{sec:varsets}{{5.1.1}{29}{Variable Subsets}{subsubsection.5.1.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Adding Constraints}{30}{subsection.5.2}\protected@file@percent } -\newlabel{sec:constraint}{{5.2}{30}{Adding Constraints}{subsection.5.2}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Linear Constraints}{30}{subsubsection.5.2.1}\protected@file@percent } -\newlabel{sec:add_lin_constraint}{{5.2.1}{30}{Linear Constraints}{subsubsection.5.2.1}{}} -\newlabel{eq:linear_constraints}{{5.2}{30}{Linear Constraints}{equation.5.2}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}General Nonlinear Constraints}{31}{subsubsection.5.2.2}\protected@file@percent } -\newlabel{sec:add_nln_constraint}{{5.2.2}{31}{General Nonlinear Constraints}{subsubsection.5.2.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Adding Costs}{32}{subsection.5.3}\protected@file@percent } -\newlabel{sec:add_cost}{{5.3}{32}{Adding Costs}{subsection.5.3}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Quadratic Costs}{33}{subsubsection.5.3.1}\protected@file@percent } -\newlabel{sec:add_quad_cost}{{5.3.1}{33}{Quadratic Costs}{subsubsection.5.3.1}{}} -\newlabel{eq:quad_cost}{{5.11}{33}{Quadratic Costs}{equation.5.11}{}} -\newlabel{eq:quad_cost2}{{5.12}{33}{Quadratic Costs}{equation.5.12}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2}General Nonlinear Costs}{34}{subsubsection.5.3.2}\protected@file@percent } -\newlabel{sec:add_nln_cost}{{5.3.2}{34}{General Nonlinear Costs}{subsubsection.5.3.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Solving the Model}{35}{subsection.5.4}\protected@file@percent } -\newlabel{sec:solve}{{5.4}{35}{Solving the Model}{subsection.5.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}Accessing the Model}{35}{subsection.5.5}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.1}Indexing}{35}{subsubsection.5.5.1}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}1}{\ignorespaces Example Indexing Data\relax }}{35}{table.caption.20}\protected@file@percent } -\newlabel{tab:vv}{{5\unhbox \voidb@x \hbox {-}1}{35}{Example Indexing Data\relax }{table.caption.20}{}} -\newlabel{sec:get_idx}{{5.5.1}{36}{\code {get\_idx}}{section*.21}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}2}{\ignorespaces Example Indexing Data\relax }}{36}{table.caption.23}\protected@file@percent } -\newlabel{tab:set_types}{{5\unhbox \voidb@x \hbox {-}2}{36}{Example Indexing Data\relax }{table.caption.23}{}} -\newlabel{sec:describe_idx}{{5.5.1}{37}{\code {describe\_idx}}{section*.25}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.2}Variables}{38}{subsubsection.5.5.2}\protected@file@percent } -\newlabel{sec:params_var}{{5.5.2}{38}{\code {params\_var}}{section*.26}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.3}Constraints}{38}{subsubsection.5.5.3}\protected@file@percent } -\newlabel{sec:eval_nln_constraint}{{5.5.3}{39}{\code {eval\_nln\_constraint}}{section*.28}{}} -\newlabel{sec:eval_nln_constraint_hess}{{5.5.3}{39}{\code {eval\_nln\_constraint\_hess}}{section*.29}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.4}Costs}{40}{subsubsection.5.5.4}\protected@file@percent } -\newlabel{sec:eval_quad_cost}{{5.5.4}{40}{\code {eval\_quad\_cost}}{section*.31}{}} -\newlabel{sec:eval_nln_cost}{{5.5.4}{41}{\code {eval\_nln\_cost}}{section*.32}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.6}Indexed Sets}{41}{subsection.5.6}\protected@file@percent } -\newlabel{sec:indexed_sets}{{5.6}{41}{Indexed Sets}{subsection.5.6}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.7}Miscellaneous Methods}{43}{subsection.5.7}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.7.1}Public Methods}{43}{subsubsection.5.7.1}\protected@file@percent } -\newlabel{sec:display}{{5.7.1}{43}{\code {display}}{section*.37}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.7.2}Private Methods}{45}{subsubsection.5.7.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {5.8}{\sc Matpower}{} Index Manager Base Class -- {\tt mp\_idx\_manager}}{45}{subsection.5.8}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}3}{\ignorespaces {\sc Matpower}{} Index Manager ({\relsize {-0.5}{\tt {{mp\_idx\_manager}}}}) Properties and Methods\relax }}{46}{table.caption.48}\protected@file@percent } -\newlabel{tab:mp_idx_manager2}{{5\unhbox \voidb@x \hbox {-}3}{46}{\matpower {} Index Manager (\code {mp\_idx\_manager}) Properties and Methods\relax }{table.caption.48}{}} -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}4}{\ignorespaces {\sc Matpower}{} Index Manager ({\relsize {-0.5}{\tt {{mp\_idx\_manager}}}}) Object Structure\relax }}{47}{table.caption.50}\protected@file@percent } -\newlabel{tab:obj_structure}{{5\unhbox \voidb@x \hbox {-}4}{47}{\matpower {} Index Manager (\code {mp\_idx\_manager}) Object Structure\relax }{table.caption.50}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.9}Reference}{48}{subsection.5.9}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.9.1}Properties}{48}{subsubsection.5.9.1}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}5}{\ignorespaces {\relsize {-0.5}{\tt {{opt\_model}}}} Properties\relax }}{48}{table.caption.52}\protected@file@percent } -\newlabel{tab:properties}{{5\unhbox \voidb@x \hbox {-}5}{48}{\code {opt\_model} Properties\relax }{table.caption.52}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.9.2}Methods}{48}{subsubsection.5.9.2}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}6}{\ignorespaces {\relsize {-0.5}{\tt {{opt\_model}}}} Methods\relax }}{49}{table.caption.54}\protected@file@percent } -\newlabel{tab:methods}{{5\unhbox \voidb@x \hbox {-}6}{49}{\code {opt\_model} Methods\relax }{table.caption.54}{}} -\@writefile{toc}{\contentsline {section}{\numberline {6}Utility Functions}{50}{section.6}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}\tt have\_fcn}{50}{subsection.6.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}\tt mpomver}{51}{subsection.6.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}\tt nested\_struct\_copy}{51}{subsection.6.3}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}{\sc Matpower}{}-related Functions}{51}{subsection.6.4}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.1}\tt mpopt2nlpopt}{51}{subsubsection.6.4.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.2}\tt mpopt2qpopt}{52}{subsubsection.6.4.2}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{Appendix \numberline {A}\unhbox \voidb@x \hbox {MP-Opt-Model}{} Files, Functions and Classes}{53}{Appendix.1.A}\protected@file@percent } -\newlabel{app:functions}{{A}{53}{\mpom {} Files, Functions and Classes}{Appendix.1.A}{}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}1}{\ignorespaces \unhbox \voidb@x \hbox {MP-Opt-Model}{} Files and Functions\relax }}{53}{table.caption.56}\protected@file@percent } -\newlabel{tab:files}{{A\unhbox \voidb@x \hbox {-}1}{53}{\mpom {} Files and Functions\relax }{table.caption.56}{}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}2}{\ignorespaces LP, QP \& NLP Solver Functions\relax }}{54}{table.caption.58}\protected@file@percent } -\newlabel{tab:solvers}{{A\unhbox \voidb@x \hbox {-}2}{54}{LP, QP \& NLP Solver Functions\relax }{table.caption.58}{}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}3}{\ignorespaces Optimization Model Class\relax }}{55}{table.caption.60}\protected@file@percent } -\newlabel{tab:opt_model}{{A\unhbox \voidb@x \hbox {-}3}{55}{Optimization Model Class\relax }{table.caption.60}{}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}4}{\ignorespaces {\sc Matpower}{} Index Manager Class\relax }}{56}{table.caption.62}\protected@file@percent } -\newlabel{tab:mp_idx_manager}{{A\unhbox \voidb@x \hbox {-}4}{56}{\matpower {} Index Manager Class\relax }{table.caption.62}{}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}5}{\ignorespaces Utility Functions\relax }}{56}{table.caption.64}\protected@file@percent } -\newlabel{tab:utility}{{A\unhbox \voidb@x \hbox {-}5}{56}{Utility Functions\relax }{table.caption.64}{}} -\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}6}{\ignorespaces \unhbox \voidb@x \hbox {MP-Opt-Model}{} Examples \& Tests\relax }}{56}{table.caption.66}\protected@file@percent } -\newlabel{tab:tests}{{A\unhbox \voidb@x \hbox {-}6}{56}{\mpom {} Examples \& Tests\relax }{table.caption.66}{}} +\newlabel{tab:qps_master_input}{{4\unhbox \voidb@x \hbox {-}1}{17}{Input Arguments for \code {qps\_master}\tnote {\dag }\relax }{table.caption.4}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}2}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{qps\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{17}{table.caption.6}\protected@file@percent } +\newlabel{tab:qps_master_output}{{4\unhbox \voidb@x \hbox {-}2}{17}{Output Arguments for \code {qps\_master}\tnote {\dag }\relax }{table.caption.6}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}3}{\ignorespaces Options for {\relsize {-0.5}{\tt {{qps\_master}}}}\relax }}{18}{table.caption.8}\protected@file@percent } +\newlabel{tab:qps_master_options}{{4\unhbox \voidb@x \hbox {-}3}{18}{Options for \code {qps\_master}\relax }{table.caption.8}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}QP Example}{19}{subsubsection.4.1.1}\protected@file@percent } +\newlabel{sec:qp_ex}{{4.1.1}{19}{QP Example}{subsubsection.4.1.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}MILP/MIQP Solvers -- {\tt miqps\_master}}{20}{subsection.4.2}\protected@file@percent } +\newlabel{sec:miqps_master}{{4.2}{20}{MILP/MIQP Solvers -- {\tt miqps\_master}}{subsection.4.2}{}} +\newlabel{eq:mi_integer}{{4.4}{20}{MILP/MIQP Solvers -- {\tt miqps\_master}}{equation.4.4}{}} +\newlabel{eq:mi_binary}{{4.5}{20}{MILP/MIQP Solvers -- {\tt miqps\_master}}{equation.4.5}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}4}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{miqps\_master}}}}\relax }}{20}{table.caption.10}\protected@file@percent } +\newlabel{tab:miqps_master_input}{{4\unhbox \voidb@x \hbox {-}4}{20}{Input Arguments for \code {miqps\_master}\relax }{table.caption.10}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}5}{\ignorespaces Options for {\relsize {-0.5}{\tt {{miqps\_master}}}}\relax }}{21}{table.caption.12}\protected@file@percent } +\newlabel{tab:miqps_master_options}{{4\unhbox \voidb@x \hbox {-}5}{21}{Options for \code {miqps\_master}\relax }{table.caption.12}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}MILP Example}{22}{subsubsection.4.2.1}\protected@file@percent } +\newlabel{sec:milp_ex}{{4.2.1}{22}{MILP Example}{subsubsection.4.2.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}NLP Solvers -- {\tt nlps\_master}}{22}{subsection.4.3}\protected@file@percent } +\newlabel{sec:nlps_master}{{4.3}{22}{NLP Solvers -- {\tt nlps\_master}}{subsection.4.3}{}} +\newlabel{eq:nlp_obj}{{4.6}{22}{NLP Solvers -- {\tt nlps\_master}}{equation.4.6}{}} +\newlabel{eq:nlp_g}{{4.7}{22}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} +\newlabel{eq:nlp_h}{{4.8}{22}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} +\newlabel{eq:nlp_linear_constraints}{{4.9}{22}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} +\newlabel{eq:nlp_var_bounds}{{4.10}{22}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}6}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{nlps\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{23}{table.caption.14}\protected@file@percent } +\newlabel{tab:nlps_master_input}{{4\unhbox \voidb@x \hbox {-}6}{23}{Input Arguments for \code {nlps\_master}\tnote {\dag }\relax }{table.caption.14}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}7}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{nlps\_master}}}}\relax }}{24}{table.caption.16}\protected@file@percent } +\newlabel{tab:nlps_master_output}{{4\unhbox \voidb@x \hbox {-}7}{24}{Output Arguments for \code {nlps\_master}\relax }{table.caption.16}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}8}{\ignorespaces Options for {\relsize {-0.5}{\tt {{nlps\_master}}}}\relax }}{24}{table.caption.18}\protected@file@percent } +\newlabel{tab:nlps_master_options}{{4\unhbox \voidb@x \hbox {-}8}{24}{Options for \code {nlps\_master}\relax }{table.caption.18}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}NLP Example 1}{25}{subsubsection.4.3.1}\protected@file@percent } +\newlabel{sec:nlp_ex1}{{4.3.1}{25}{NLP Example 1}{subsubsection.4.3.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}NLP Example 2}{26}{subsubsection.4.3.2}\protected@file@percent } +\newlabel{sec:nlp_ex2}{{4.3.2}{26}{NLP Example 2}{subsubsection.4.3.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Nonlinear Equation Solvers -- {\tt nleqs\_master}}{29}{subsection.4.4}\protected@file@percent } +\newlabel{sec:nleqs_master}{{4.4}{29}{Nonlinear Equation Solvers -- {\tt nleqs\_master}}{subsection.4.4}{}} +\newlabel{eq:nleq}{{4.16}{29}{Nonlinear Equation Solvers -- {\tt nleqs\_master}}{equation.4.16}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}9}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{nleqs\_master}}}}\relax }}{30}{table.caption.20}\protected@file@percent } +\newlabel{tab:nleqs_master_input}{{4\unhbox \voidb@x \hbox {-}9}{30}{Input Arguments for \code {nleqs\_master}\relax }{table.caption.20}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}10}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{nleqs\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{31}{table.caption.22}\protected@file@percent } +\newlabel{tab:nleqs_master_output}{{4\unhbox \voidb@x \hbox {-}10}{31}{Output Arguments for \code {nleqs\_master}\tnote {\dag }\relax }{table.caption.22}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1}NLEQ Example 1}{31}{subsubsection.4.4.1}\protected@file@percent } +\newlabel{sec:nleq_ex1}{{4.4.1}{31}{NLEQ Example 1}{subsubsection.4.4.1}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\unhbox \voidb@x \hbox {-}11}{\ignorespaces Options for {\relsize {-0.5}{\tt {{nleqs\_master}}}}\relax }}{32}{table.caption.24}\protected@file@percent } +\newlabel{tab:nleqs_master_options}{{4\unhbox \voidb@x \hbox {-}11}{32}{Options for \code {nleqs\_master}\relax }{table.caption.24}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.2}NLEQ Example 2}{34}{subsubsection.4.4.2}\protected@file@percent } +\newlabel{sec:nleq_ex2}{{4.4.2}{34}{NLEQ Example 2}{subsubsection.4.4.2}{}} +\@writefile{toc}{\contentsline {section}{\numberline {5}Optimization Model Class -- {\tt opt\_model}}{38}{section.5}\protected@file@percent } +\newlabel{sec:opt_model}{{5}{38}{Optimization Model Class -- {\tt opt\_model}}{section.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Adding Variables}{38}{subsection.5.1}\protected@file@percent } +\newlabel{sec:add_var}{{5.1}{38}{Adding Variables}{subsection.5.1}{}} +\newlabel{eq:x}{{5.1}{39}{Adding Variables}{equation.5.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.1}Variable Subsets}{39}{subsubsection.5.1.1}\protected@file@percent } +\newlabel{sec:varsets}{{5.1.1}{39}{Variable Subsets}{subsubsection.5.1.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Adding Constraints}{40}{subsection.5.2}\protected@file@percent } +\newlabel{sec:constraint}{{5.2}{40}{Adding Constraints}{subsection.5.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Linear Constraints}{40}{subsubsection.5.2.1}\protected@file@percent } +\newlabel{sec:add_lin_constraint}{{5.2.1}{40}{Linear Constraints}{subsubsection.5.2.1}{}} +\newlabel{eq:linear_constraints}{{5.2}{40}{Linear Constraints}{equation.5.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}General Nonlinear Constraints}{41}{subsubsection.5.2.2}\protected@file@percent } +\newlabel{sec:add_nln_constraint}{{5.2.2}{41}{General Nonlinear Constraints}{subsubsection.5.2.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Adding Costs}{42}{subsection.5.3}\protected@file@percent } +\newlabel{sec:add_cost}{{5.3}{42}{Adding Costs}{subsection.5.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Quadratic Costs}{43}{subsubsection.5.3.1}\protected@file@percent } +\newlabel{sec:add_quad_cost}{{5.3.1}{43}{Quadratic Costs}{subsubsection.5.3.1}{}} +\newlabel{eq:quad_cost}{{5.11}{43}{Quadratic Costs}{equation.5.11}{}} +\newlabel{eq:quad_cost2}{{5.12}{43}{Quadratic Costs}{equation.5.12}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2}General Nonlinear Costs}{44}{subsubsection.5.3.2}\protected@file@percent } +\newlabel{sec:add_nln_cost}{{5.3.2}{44}{General Nonlinear Costs}{subsubsection.5.3.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Solving the Model}{45}{subsection.5.4}\protected@file@percent } +\newlabel{sec:solve}{{5.4}{45}{Solving the Model}{subsection.5.4}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}1}{\ignorespaces Options for {\relsize {-0.5}{\tt {{solve}}}}\relax }}{46}{table.caption.26}\protected@file@percent } +\newlabel{tab:solve_options}{{5\unhbox \voidb@x \hbox {-}1}{46}{Options for \code {solve}\relax }{table.caption.26}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}2}{\ignorespaces Values for {\relsize {-0.5}{\tt {{alg}}}} Option to {\relsize {-0.5}{\tt {{solve}}}}\relax }}{47}{table.caption.28}\protected@file@percent } +\newlabel{tab:solve_alg_option}{{5\unhbox \voidb@x \hbox {-}2}{47}{Values for \code {alg} Option to \code {solve}\relax }{table.caption.28}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}Accessing the Model}{47}{subsection.5.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.1}Indexing}{47}{subsubsection.5.5.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}3}{\ignorespaces Example Indexing Data\relax }}{48}{table.caption.30}\protected@file@percent } +\newlabel{tab:vv}{{5\unhbox \voidb@x \hbox {-}3}{48}{Example Indexing Data\relax }{table.caption.30}{}} +\newlabel{sec:get_idx}{{5.5.1}{48}{\code {get\_idx}}{section*.31}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}4}{\ignorespaces Example Indexing Data\relax }}{49}{table.caption.33}\protected@file@percent } +\newlabel{tab:set_types}{{5\unhbox \voidb@x \hbox {-}4}{49}{Example Indexing Data\relax }{table.caption.33}{}} +\newlabel{sec:describe_idx}{{5.5.1}{49}{\code {describe\_idx}}{section*.35}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.2}Variables}{50}{subsubsection.5.5.2}\protected@file@percent } +\newlabel{sec:params_var}{{5.5.2}{50}{\code {params\_var}}{section*.36}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.3}Constraints}{51}{subsubsection.5.5.3}\protected@file@percent } +\newlabel{sec:eval_nln_constraint}{{5.5.3}{52}{\code {eval\_nln\_constraint}}{section*.39}{}} +\newlabel{sec:eval_nln_constraint_hess}{{5.5.3}{52}{\code {eval\_nln\_constraint\_hess}}{section*.40}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.4}Costs}{53}{subsubsection.5.5.4}\protected@file@percent } +\newlabel{sec:eval_quad_cost}{{5.5.4}{54}{\code {eval\_quad\_cost}}{section*.43}{}} +\newlabel{sec:eval_nln_cost}{{5.5.4}{54}{\code {eval\_nln\_cost}}{section*.44}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.5}Model Solution}{55}{subsubsection.5.5.5}\protected@file@percent } +\newlabel{sec:soln}{{5.5.5}{55}{Model Solution}{subsubsection.5.5.5}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}5}{\ignorespaces Model Solution\relax }}{55}{table.caption.46}\protected@file@percent } +\newlabel{tab:soln}{{5\unhbox \voidb@x \hbox {-}5}{55}{Model Solution\relax }{table.caption.46}{}} +\newlabel{sec:get_soln}{{5.5.5}{55}{\code {get\_soln}}{section*.47}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}6}{\ignorespaces Inputs for {\relsize {-0.5}{\tt {{get\_soln}}}}\relax }}{56}{table.caption.50}\protected@file@percent } +\newlabel{tab:get_soln}{{5\unhbox \voidb@x \hbox {-}6}{56}{Inputs for \code {get\_soln}\relax }{table.caption.50}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}7}{\ignorespaces Values of {\relsize {-0.5}{\tt {{tags}}}} input to {\relsize {-0.5}{\tt {{get\_soln}}}}\relax }}{57}{table.caption.52}\protected@file@percent } +\newlabel{tab:get_soln_tags}{{5\unhbox \voidb@x \hbox {-}7}{57}{Values of \code {tags} input to \code {get\_soln}\relax }{table.caption.52}{}} +\newlabel{sec:parse_soln}{{5.5.5}{58}{\code {parse\_soln}}{section*.53}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}8}{\ignorespaces Output of {\relsize {-0.5}{\tt {{parse\_soln}}}}\relax }}{58}{table.caption.55}\protected@file@percent } +\newlabel{tab:parse_soln}{{5\unhbox \voidb@x \hbox {-}8}{58}{Output of \code {parse\_soln}\relax }{table.caption.55}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.6}Modifying the Model}{59}{subsection.5.6}\protected@file@percent } +\newlabel{sec:modifying}{{5.6}{59}{Modifying the Model}{subsection.5.6}{}} +\newlabel{sec:set_params}{{5.6}{59}{\code {set\_params}}{section*.56}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}9}{\ignorespaces Inputs for {\relsize {-0.5}{\tt {{set\_params}}}}\relax }}{59}{table.caption.59}\protected@file@percent } +\newlabel{tab:set_params}{{5\unhbox \voidb@x \hbox {-}9}{59}{Inputs for \code {set\_params}\relax }{table.caption.59}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.7}Indexed Sets}{60}{subsection.5.7}\protected@file@percent } +\newlabel{sec:indexed_sets}{{5.7}{60}{Indexed Sets}{subsection.5.7}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.8}Miscellaneous Methods}{61}{subsection.5.8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.8.1}Public Methods}{61}{subsubsection.5.8.1}\protected@file@percent } +\newlabel{sec:display}{{5.8.1}{62}{\code {display}}{section*.64}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.8.2}Private Methods}{64}{subsubsection.5.8.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.9}{\sc Matpower}{} Index Manager Base Class -- {\tt mp\_idx\_manager}}{64}{subsection.5.9}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}10}{\ignorespaces {\sc Matpower}{} Index Manager ({\relsize {-0.5}{\tt {{mp\_idx\_manager}}}}) Properties and Methods\relax }}{65}{table.caption.75}\protected@file@percent } +\newlabel{tab:mp_idx_manager2}{{5\unhbox \voidb@x \hbox {-}10}{65}{\matpower {} Index Manager (\code {mp\_idx\_manager}) Properties and Methods\relax }{table.caption.75}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}11}{\ignorespaces {\sc Matpower}{} Index Manager ({\relsize {-0.5}{\tt {{mp\_idx\_manager}}}}) Object Structure\relax }}{66}{table.caption.77}\protected@file@percent } +\newlabel{tab:obj_structure}{{5\unhbox \voidb@x \hbox {-}11}{66}{\matpower {} Index Manager (\code {mp\_idx\_manager}) Object Structure\relax }{table.caption.77}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.10}Reference}{67}{subsection.5.10}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.10.1}Properties}{67}{subsubsection.5.10.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}12}{\ignorespaces {\relsize {-0.5}{\tt {{opt\_model}}}} Properties\relax }}{67}{table.caption.79}\protected@file@percent } +\newlabel{tab:properties}{{5\unhbox \voidb@x \hbox {-}12}{67}{\code {opt\_model} Properties\relax }{table.caption.79}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.10.2}Methods}{67}{subsubsection.5.10.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5\unhbox \voidb@x \hbox {-}13}{\ignorespaces {\relsize {-0.5}{\tt {{opt\_model}}}} Methods\relax }}{68}{table.caption.81}\protected@file@percent } +\newlabel{tab:methods}{{5\unhbox \voidb@x \hbox {-}13}{68}{\code {opt\_model} Methods\relax }{table.caption.81}{}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Utility Functions}{69}{section.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}\tt have\_fcn}{69}{subsection.6.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}\tt mpomver}{69}{subsection.6.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}\tt nested\_struct\_copy}{69}{subsection.6.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Private Feature Detection Functions}{69}{subsection.6.4}\protected@file@percent } +\newlabel{sec:featuredetection}{{6.4}{69}{Private Feature Detection Functions}{subsection.6.4}{}} +\citation{opti} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.1}\tt have\_feature\_bpmpd}{70}{subsubsection.6.4.1}\protected@file@percent } +\newlabel{sec:have_feature_bpmpd}{{6.4.1}{70}{\tt have\_feature\_bpmpd}{subsubsection.6.4.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.2}\tt have\_feature\_catchme}{70}{subsubsection.6.4.2}\protected@file@percent } +\newlabel{sec:have_feature_catchme}{{6.4.2}{70}{\tt have\_feature\_catchme}{subsubsection.6.4.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.3}\tt have\_feature\_clp}{70}{subsubsection.6.4.3}\protected@file@percent } +\newlabel{sec:have_feature_clp}{{6.4.3}{70}{\tt have\_feature\_clp}{subsubsection.6.4.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.4}\tt have\_feature\_opti\_clp}{70}{subsubsection.6.4.4}\protected@file@percent } +\newlabel{sec:have_feature_opti_clp}{{6.4.4}{70}{\tt have\_feature\_opti\_clp}{subsubsection.6.4.4}{}} +\@writefile{brf}{\backcite{opti}{{70}{6.4.4}{subsubsection.6.4.4}}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.5}\tt have\_feature\_cplex}{70}{subsubsection.6.4.5}\protected@file@percent } +\newlabel{sec:have_feature_cplex}{{6.4.5}{70}{\tt have\_feature\_cplex}{subsubsection.6.4.5}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.6}\tt have\_feature\_evalc}{70}{subsubsection.6.4.6}\protected@file@percent } +\newlabel{sec:have_feature_evalc}{{6.4.6}{70}{\tt have\_feature\_evalc}{subsubsection.6.4.6}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.7}\tt have\_feature\_fmincon}{70}{subsubsection.6.4.7}\protected@file@percent } +\newlabel{sec:have_feature_fmincon}{{6.4.7}{70}{\tt have\_feature\_fmincon}{subsubsection.6.4.7}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.8}\tt have\_feature\_fmincon\_ipm}{71}{subsubsection.6.4.8}\protected@file@percent } +\newlabel{sec:have_feature_fmincon_ipm}{{6.4.8}{71}{\tt have\_feature\_fmincon\_ipm}{subsubsection.6.4.8}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.9}\tt have\_feature\_fsolve}{71}{subsubsection.6.4.9}\protected@file@percent } +\newlabel{sec:have_feature_fsolve}{{6.4.9}{71}{\tt have\_feature\_fsolve}{subsubsection.6.4.9}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.10}\tt have\_feature\_glpk}{71}{subsubsection.6.4.10}\protected@file@percent } +\newlabel{sec:have_feature_glpk}{{6.4.10}{71}{\tt have\_feature\_glpk}{subsubsection.6.4.10}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.11}\tt have\_feature\_gurobi}{71}{subsubsection.6.4.11}\protected@file@percent } +\newlabel{sec:have_feature_gurobi}{{6.4.11}{71}{\tt have\_feature\_gurobi}{subsubsection.6.4.11}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.12}\tt have\_feature\_intlinprog}{71}{subsubsection.6.4.12}\protected@file@percent } +\newlabel{sec:have_feature_intlinprog}{{6.4.12}{71}{\tt have\_feature\_intlinprog}{subsubsection.6.4.12}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.13}\tt have\_feature\_ipopt}{71}{subsubsection.6.4.13}\protected@file@percent } +\newlabel{sec:have_feature_ipopt}{{6.4.13}{71}{\tt have\_feature\_ipopt}{subsubsection.6.4.13}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.14}\tt have\_feature\_ipopt\_auxdata}{71}{subsubsection.6.4.14}\protected@file@percent } +\newlabel{sec:have_feature_ipopt_auxdata}{{6.4.14}{71}{\tt have\_feature\_ipopt\_auxdata}{subsubsection.6.4.14}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.15}\tt have\_feature\_isequaln}{72}{subsubsection.6.4.15}\protected@file@percent } +\newlabel{sec:have_feature_isequaln}{{6.4.15}{72}{\tt have\_feature\_isequaln}{subsubsection.6.4.15}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.16}\tt have\_feature\_knitro}{72}{subsubsection.6.4.16}\protected@file@percent } +\newlabel{sec:have_feature_knitro}{{6.4.16}{72}{\tt have\_feature\_knitro}{subsubsection.6.4.16}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.17}\tt have\_feature\_knitromatlab}{72}{subsubsection.6.4.17}\protected@file@percent } +\newlabel{sec:have_feature_knitromatlab}{{6.4.17}{72}{\tt have\_feature\_knitromatlab}{subsubsection.6.4.17}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.18}\tt have\_feature\_ktrlink}{72}{subsubsection.6.4.18}\protected@file@percent } +\newlabel{sec:have_feature_ktrlink}{{6.4.18}{72}{\tt have\_feature\_ktrlink}{subsubsection.6.4.18}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.19}\tt have\_feature\_linprog}{72}{subsubsection.6.4.19}\protected@file@percent } +\newlabel{sec:have_feature_linprog}{{6.4.19}{72}{\tt have\_feature\_linprog}{subsubsection.6.4.19}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.20}\tt have\_feature\_linprog\_ds}{72}{subsubsection.6.4.20}\protected@file@percent } +\newlabel{sec:have_feature_linprog_ds}{{6.4.20}{72}{\tt have\_feature\_linprog\_ds}{subsubsection.6.4.20}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.21}\tt have\_feature\_mosek}{72}{subsubsection.6.4.21}\protected@file@percent } +\newlabel{sec:have_feature_mosek}{{6.4.21}{72}{\tt have\_feature\_mosek}{subsubsection.6.4.21}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.22}\tt have\_feature\_optim}{73}{subsubsection.6.4.22}\protected@file@percent } +\newlabel{sec:have_feature_optim}{{6.4.22}{73}{\tt have\_feature\_optim}{subsubsection.6.4.22}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.23}\tt have\_feature\_optimoptions}{73}{subsubsection.6.4.23}\protected@file@percent } +\newlabel{sec:have_feature_optimoptions}{{6.4.23}{73}{\tt have\_feature\_optimoptions}{subsubsection.6.4.23}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.24}\tt have\_feature\_osqp}{73}{subsubsection.6.4.24}\protected@file@percent } +\newlabel{sec:have_feature_osqp}{{6.4.24}{73}{\tt have\_feature\_osqp}{subsubsection.6.4.24}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.25}\tt have\_feature\_quadprog}{73}{subsubsection.6.4.25}\protected@file@percent } +\newlabel{sec:have_feature_quadprog}{{6.4.25}{73}{\tt have\_feature\_quadprog}{subsubsection.6.4.25}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.26}\tt have\_feature\_quadprog\_ls}{73}{subsubsection.6.4.26}\protected@file@percent } +\newlabel{sec:have_feature_quadprog_ls}{{6.4.26}{73}{\tt have\_feature\_quadprog\_ls}{subsubsection.6.4.26}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.27}\tt have\_feature\_sdpt3}{73}{subsubsection.6.4.27}\protected@file@percent } +\newlabel{sec:have_feature_sdpt3}{{6.4.27}{73}{\tt have\_feature\_sdpt3}{subsubsection.6.4.27}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.28}\tt have\_feature\_sedumi}{73}{subsubsection.6.4.28}\protected@file@percent } +\newlabel{sec:have_feature_sedumi}{{6.4.28}{73}{\tt have\_feature\_sedumi}{subsubsection.6.4.28}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.29}\tt have\_feature\_yalmip}{74}{subsubsection.6.4.29}\protected@file@percent } +\newlabel{sec:have_feature_yalmip}{{6.4.29}{74}{\tt have\_feature\_yalmip}{subsubsection.6.4.29}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}{\sc Matpower}{}-related Functions}{74}{subsection.6.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.1}\tt mpopt2nleqopt}{74}{subsubsection.6.5.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.2}\tt mpopt2nlpopt}{74}{subsubsection.6.5.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.3}\tt mpopt2qpopt}{74}{subsubsection.6.5.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Acknowledgments}{76}{section.7}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{Appendix \numberline {A}\unhbox \voidb@x \hbox {MP-Opt-Model}{} Files, Functions and Classes}{77}{Appendix.1.A}\protected@file@percent } +\newlabel{app:functions}{{A}{77}{\mpom {} Files, Functions and Classes}{Appendix.1.A}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}1}{\ignorespaces \unhbox \voidb@x \hbox {MP-Opt-Model}{} Files and Functions\relax }}{77}{table.caption.83}\protected@file@percent } +\newlabel{tab:files}{{A\unhbox \voidb@x \hbox {-}1}{77}{\mpom {} Files and Functions\relax }{table.caption.83}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}2}{\ignorespaces Solver Functions\relax }}{78}{table.caption.85}\protected@file@percent } +\newlabel{tab:solvers}{{A\unhbox \voidb@x \hbox {-}2}{78}{Solver Functions\relax }{table.caption.85}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}3}{\ignorespaces Solver Options, etc.\relax }}{79}{table.caption.87}\protected@file@percent } +\newlabel{tab:solver_options}{{A\unhbox \voidb@x \hbox {-}3}{79}{Solver Options, etc.\relax }{table.caption.87}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}4}{\ignorespaces Optimization Model Class\relax }}{80}{table.caption.89}\protected@file@percent } +\newlabel{tab:opt_model}{{A\unhbox \voidb@x \hbox {-}4}{80}{Optimization Model Class\relax }{table.caption.89}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}5}{\ignorespaces {\sc Matpower}{} Index Manager Class\relax }}{81}{table.caption.91}\protected@file@percent } +\newlabel{tab:mp_idx_manager}{{A\unhbox \voidb@x \hbox {-}5}{81}{\matpower {} Index Manager Class\relax }{table.caption.91}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}6}{\ignorespaces Utility Functions\relax }}{81}{table.caption.93}\protected@file@percent } +\newlabel{tab:utility}{{A\unhbox \voidb@x \hbox {-}6}{81}{Utility Functions\relax }{table.caption.93}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}7}{\ignorespaces Feature Detection Functions\TPToverlap {\textsuperscript {*}}\relax }}{82}{table.caption.95}\protected@file@percent } +\newlabel{tab:have_feature_fcns}{{A\unhbox \voidb@x \hbox {-}7}{82}{Feature Detection Functions\tnote {*}\relax }{table.caption.95}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\unhbox \voidb@x \hbox {-}8}{\ignorespaces \unhbox \voidb@x \hbox {MP-Opt-Model}{} Examples \& Tests\relax }}{83}{table.caption.97}\protected@file@percent } +\newlabel{tab:tests}{{A\unhbox \voidb@x \hbox {-}8}{83}{\mpom {} Examples \& Tests\relax }{table.caption.97}{}} \citation{bpmpdmex,meszaros1996} \citation{clp} \citation{opti} -\@writefile{toc}{\contentsline {section}{Appendix \numberline {B}Optional Packages}{57}{Appendix.1.B}\protected@file@percent } -\newlabel{app:optional_packages}{{B}{57}{Optional Packages}{Appendix.1.B}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.1}BPMPD\_MEX -- MEX interface for BPMPD}{57}{subsection.1.B.1}\protected@file@percent } -\newlabel{app:bpmpd}{{B.1}{57}{BPMPD\_MEX -- MEX interface for BPMPD}{subsection.1.B.1}{}} -\@writefile{brf}{\backcite{bpmpdmex,meszaros1996}{{57}{B.1}{subsection.1.B.1}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.2}{CLP}{} -- COIN-OR Linear Programming}{57}{subsection.1.B.2}\protected@file@percent } -\newlabel{app:clp}{{B.2}{57}{\clp {} -- COIN-OR Linear Programming}{subsection.1.B.2}{}} -\@writefile{brf}{\backcite{clp}{{57}{B.2}{subsection.1.B.2}}} +\@writefile{toc}{\contentsline {section}{Appendix \numberline {B}Optional Packages}{84}{Appendix.1.B}\protected@file@percent } +\newlabel{app:optional_packages}{{B}{84}{Optional Packages}{Appendix.1.B}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.1}BPMPD\_MEX -- MEX interface for BPMPD}{84}{subsection.1.B.1}\protected@file@percent } +\newlabel{app:bpmpd}{{B.1}{84}{BPMPD\_MEX -- MEX interface for BPMPD}{subsection.1.B.1}{}} +\@writefile{brf}{\backcite{bpmpdmex,meszaros1996}{{84}{B.1}{subsection.1.B.1}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.2}{CLP}{} -- COIN-OR Linear Programming}{84}{subsection.1.B.2}\protected@file@percent } +\newlabel{app:clp}{{B.2}{84}{\clp {} -- COIN-OR Linear Programming}{subsection.1.B.2}{}} +\@writefile{brf}{\backcite{clp}{{84}{B.2}{subsection.1.B.2}}} \citation{glpk} \citation{opti} -\@writefile{brf}{\backcite{opti}{{58}{B.2}{subsection.1.B.2}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.3}{CPLEX}{} -- High-performance LP, QP, MILP and MIQP Solvers}{58}{subsection.1.B.3}\protected@file@percent } -\newlabel{app:cplex}{{B.3}{58}{\cplex {} -- High-performance LP, QP, MILP and MIQP Solvers}{subsection.1.B.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.4}{GLPK}{} -- GNU Linear Programming Kit}{58}{subsection.1.B.4}\protected@file@percent } -\newlabel{app:glpk}{{B.4}{58}{\glpk {} -- GNU Linear Programming Kit}{subsection.1.B.4}{}} -\@writefile{brf}{\backcite{glpk}{{58}{B.4}{subsection.1.B.4}}} -\@writefile{brf}{\backcite{opti}{{58}{B.4}{subsection.1.B.4}}} +\@writefile{brf}{\backcite{opti}{{85}{B.2}{subsection.1.B.2}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.3}{CPLEX}{} -- High-performance LP, QP, MILP and MIQP Solvers}{85}{subsection.1.B.3}\protected@file@percent } +\newlabel{app:cplex}{{B.3}{85}{\cplex {} -- High-performance LP, QP, MILP and MIQP Solvers}{subsection.1.B.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.4}{GLPK}{} -- GNU Linear Programming Kit}{85}{subsection.1.B.4}\protected@file@percent } +\newlabel{app:glpk}{{B.4}{85}{\glpk {} -- GNU Linear Programming Kit}{subsection.1.B.4}{}} +\@writefile{brf}{\backcite{glpk}{{85}{B.4}{subsection.1.B.4}}} +\@writefile{brf}{\backcite{opti}{{85}{B.4}{subsection.1.B.4}}} \citation{gurobi} \citation{ipopt} \citation{pardiso,pardiso2} \citation{opti} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.5}{Gurobi}{} -- High-performance LP, QP, MILP and MIQP Solvers}{59}{subsection.1.B.5}\protected@file@percent } -\newlabel{app:gurobi}{{B.5}{59}{\gurobi {} -- High-performance LP, QP, MILP and MIQP Solvers}{subsection.1.B.5}{}} -\@writefile{brf}{\backcite{gurobi}{{59}{B.5}{subsection.1.B.5}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.6}{\sc Ipopt}{} -- Interior Point Optimizer}{59}{subsection.1.B.6}\protected@file@percent } -\newlabel{app:ipopt}{{B.6}{59}{\ipopt {} -- Interior Point Optimizer}{subsection.1.B.6}{}} -\@writefile{brf}{\backcite{ipopt}{{59}{B.6}{subsection.1.B.6}}} -\@writefile{brf}{\backcite{pardiso, pardiso2}{{59}{B.6}{subsection.1.B.6}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.5}{Gurobi}{} -- High-performance LP, QP, MILP and MIQP Solvers}{86}{subsection.1.B.5}\protected@file@percent } +\newlabel{app:gurobi}{{B.5}{86}{\gurobi {} -- High-performance LP, QP, MILP and MIQP Solvers}{subsection.1.B.5}{}} +\@writefile{brf}{\backcite{gurobi}{{86}{B.5}{subsection.1.B.5}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.6}{\sc Ipopt}{} -- Interior Point Optimizer}{86}{subsection.1.B.6}\protected@file@percent } +\newlabel{app:ipopt}{{B.6}{86}{\ipopt {} -- Interior Point Optimizer}{subsection.1.B.6}{}} +\@writefile{brf}{\backcite{ipopt}{{86}{B.6}{subsection.1.B.6}}} +\@writefile{brf}{\backcite{pardiso, pardiso2}{{86}{B.6}{subsection.1.B.6}}} \citation{knitro} \citation{ot,otug} -\@writefile{brf}{\backcite{opti}{{60}{B.6}{subsection.1.B.6}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.7}{Artelys Knitro}{} -- Non-Linear Programming Solver}{60}{subsection.1.B.7}\protected@file@percent } -\newlabel{app:knitro}{{B.7}{60}{\knitro {} -- Non-Linear Programming Solver}{subsection.1.B.7}{}} -\@writefile{brf}{\backcite{knitro}{{60}{B.7}{subsection.1.B.7}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.8}{MOSEK}{} -- High-performance LP, QP, MILP and MIQP Solvers}{60}{subsection.1.B.8}\protected@file@percent } -\newlabel{app:mosek}{{B.8}{60}{\mosek {} -- High-performance LP, QP, MILP and MIQP Solvers}{subsection.1.B.8}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.9}{Optimization Toolbox}{} -- LP, QP, NLP and MILP Solvers}{61}{subsection.1.B.9}\protected@file@percent } -\newlabel{app:ot}{{B.9}{61}{\ot {} -- LP, QP, NLP and MILP Solvers}{subsection.1.B.9}{}} -\@writefile{brf}{\backcite{ot, otug}{{61}{B.9}{subsection.1.B.9}}} -\@writefile{toc}{\contentsline {section}{Appendix \numberline {C}Release History}{62}{Appendix.1.C}\protected@file@percent } -\newlabel{app:release_history}{{C}{62}{Release History}{Appendix.1.C}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.1}Version 0.8 -- Apr 29, 2020 \emph {(not released publicly)}}{62}{subsection.1.C.1}\protected@file@percent } -\newlabel{app:v08}{{C.1}{62}{Version 0.8 -- Apr 29, 2020 \emph {(not released publicly)}}{subsection.1.C.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.2}Version 0.9 -- released May 8, 2020}{62}{subsection.1.C.2}\protected@file@percent } -\newlabel{app:v09}{{C.2}{62}{Version 0.9 -- released May 8, 2020}{subsection.1.C.2}{}} +\@writefile{brf}{\backcite{opti}{{87}{B.6}{subsection.1.B.6}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.7}{Artelys Knitro}{} -- Non-Linear Programming Solver}{87}{subsection.1.B.7}\protected@file@percent } +\newlabel{app:knitro}{{B.7}{87}{\knitro {} -- Non-Linear Programming Solver}{subsection.1.B.7}{}} +\@writefile{brf}{\backcite{knitro}{{87}{B.7}{subsection.1.B.7}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.8}{MOSEK}{} -- High-performance LP, QP, MILP and MIQP Solvers}{87}{subsection.1.B.8}\protected@file@percent } +\newlabel{app:mosek}{{B.8}{87}{\mosek {} -- High-performance LP, QP, MILP and MIQP Solvers}{subsection.1.B.8}{}} +\citation{osqp} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.9}{Optimization Toolbox}{} -- LP, QP, NLP, NLEQ and MILP Solvers}{88}{subsection.1.B.9}\protected@file@percent } +\newlabel{app:ot}{{B.9}{88}{\ot {} -- LP, QP, NLP, NLEQ and MILP Solvers}{subsection.1.B.9}{}} +\@writefile{brf}{\backcite{ot, otug}{{88}{B.9}{subsection.1.B.9}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.10}{OSQP}{} -- Operator Splitting Quadratic Program Solver}{88}{subsection.1.B.10}\protected@file@percent } +\newlabel{app:osqp}{{B.10}{88}{\osqp {} -- Operator Splitting Quadratic Program Solver}{subsection.1.B.10}{}} +\@writefile{brf}{\backcite{osqp}{{88}{B.10}{subsection.1.B.10}}} +\@writefile{toc}{\contentsline {section}{Appendix \numberline {C}Release History}{89}{Appendix.1.C}\protected@file@percent } +\newlabel{app:release_history}{{C}{89}{Release History}{Appendix.1.C}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.1}Version 0.7 -- Jun 20, 2019}{89}{subsection.1.C.1}\protected@file@percent } +\newlabel{app:v07}{{C.1}{89}{Version 0.7 -- Jun 20, 2019}{subsection.1.C.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.2}Version 0.8 -- Apr 29, 2020 \emph {(not released publicly)}}{89}{subsection.1.C.2}\protected@file@percent } +\newlabel{app:v08}{{C.2}{89}{Version 0.8 -- Apr 29, 2020 \emph {(not released publicly)}}{subsection.1.C.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.3}Version 1.0 -- released May 8, 2020}{91}{subsection.1.C.3}\protected@file@percent } +\newlabel{app:v10}{{C.3}{91}{Version 1.0 -- released May 8, 2020}{subsection.1.C.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.4}Version 2.0 -- released Jul 8, 2020}{91}{subsection.1.C.4}\protected@file@percent } +\newlabel{app:v20}{{C.4}{91}{Version 2.0 -- released Jul 8, 2020}{subsection.1.C.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.5}Version 2.1 -- released Aug 25, 2020}{93}{subsection.1.C.5}\protected@file@percent } +\newlabel{app:v21}{{C.5}{93}{Version 2.1 -- released Aug 25, 2020}{subsection.1.C.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.6}Version 3.0 -- released Sep 24, 2020}{94}{subsection.1.C.6}\protected@file@percent } +\newlabel{app:v30}{{C.6}{94}{Version 3.0 -- released Sep 24, 2020}{subsection.1.C.6}{}} \bibcite{zimmerman2011}{1} \bibcite{matpower}{2} \bibcite{octave}{3} @@ -225,7 +339,7 @@ \bibcite{meszaros1996}{9} \bibcite{clp}{10} \bibcite{opti}{11} -\@writefile{toc}{\contentsline {section}{References}{63}{section*.68}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{References}{96}{section*.111}\protected@file@percent } \bibcite{glpk}{12} \bibcite{gurobi}{13} \bibcite{ipopt}{14} @@ -234,3 +348,4 @@ \bibcite{knitro}{17} \bibcite{ot}{18} \bibcite{otug}{19} +\bibcite{osqp}{20} diff --git a/lib/Contents.m b/lib/Contents.m index 48158ba8..3727e584 100644 --- a/lib/Contents.m +++ b/lib/Contents.m @@ -1,5 +1,5 @@ % MATPOWER -% Version 7.0 20-Jun-2019 +% Version 7.1 08-Oct-2020 % % MATPOWER is a package of M-files for solving power flow, % continuation power flow and optimal power flow problems using @@ -21,7 +21,7 @@ % MATPOWER is covered by the 3-clause BSD License (see LICENSE for details). % MATPOWER -% Copyright (c) 2004-2019, Power Systems Engineering Research Center (PSERC) +% Copyright (c) 2004-2020, Power Systems Engineering Research Center (PSERC) % by Ray Zimmerman, PSERC Cornell % % This file is part of MATPOWER. diff --git a/lib/mpver.m b/lib/mpver.m index 117d3e5b..65585644 100644 --- a/lib/mpver.m +++ b/lib/mpver.m @@ -26,9 +26,9 @@ % v{1} = ver(p); v{1} = struct( 'Name', 'MATPOWER', ... - 'Version', '7.1-dev', ... + 'Version', '7.1', ... 'Release', '', ... - 'Date', '23-Sep-2020' ); + 'Date', '08-Oct-2020' ); if nargout > 0 if nargin > 0 rv = v{1};