diff --git a/CHANGES.md b/CHANGES.md index 6dab4008..a36617bb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,140 +10,147 @@ For change history for [MP-Opt-Model][27], see [mp-opt-model/CHANGES.md](mp-opt- For change history for [MOST][3], see [most/CHANGES.md](most/CHANGES.md). -Changes since 7.1 ------------------ +Version 8.0b1 - *Dec 22, 2022* +------------------------------ + +#### 12/22/22 + - Release 8.0b1. #### 12/21/22 -- Add MP-Core tests to `test_matpower`. -- Remove deprecated `opf.init_from_mpc` option. Use `opf.start`. + - Add MP-Core tests to `test_matpower`. + - Remove deprecated `opf.init_from_mpc` option. Use `opf.start`. #### 12/19/22 -- Add option `exp.use_legacy_core` to bypass MP-Core and force use of - legacy core code for `runpf()`, `runcpf()`, `runopf()`. - Remove redundant `exp.mp_core` option. + - Add option `exp.use_legacy_core` to bypass MP-Core and force use of + legacy core code for `runpf()`, `runcpf()`, `runopf()`. + Remove redundant `exp.mp_core` option. #### 12/16/22 -- Use new name "MP-Core" everywhere in place of "MP-Element" and "OOP core", - including: - - `mp_element` --> `mp_core`. - - `have_feature_mp_element()` --> `have_feature_mp_core()` - - `test_mp_element()` --> `test_mp_core()` - - `mpopt.exp.mpe` --> `mpopt.exp.mp_core` -- **MASSIVE UPDATE**: Move the contents of [MP-Element][30] from its own - separate repo into the main MATPOWER code base. This introduces a major - redesign and rewrite of all of the MATPOWER internals, previously - developed under the name [MP-Element][30] in a separate repository at - [https://github.com/MATPOWER/mp-element][30]). It includes - - *MP-Core* -- New flexible object-oriented core architecture, - providing unparalleled flexibility and customization - capabilities at all levels. Built around an explicit three-layer - modeling structure, with *data*, *network*, and *mathematical* model - objects, and a *task* object to manage them. - - *Flexible Framework* -- Provides new top-level functions (note - underscores) `run_pf()`, `run_cpf()`, `run_opf()` for running - power flow (PF), continuation power flow (CPF) and optimal power - flow (OPF), along with new MATPOWER Extension API for user access - to the full customization capability of MP-Core. - - *Legacy Framework* -- Allows MP-Core modeling to be used internally - by legacy `runpf()`, `runcpf()`, `runopf()`, etc. Facilitates use of - legacy tests, but is restricted to legacy customization mechanisms. - - See the new [MATPOWER Developer's Manual][34] and [MATPOWER Technical - Note 5][31] for details of the new architecture. The User's Manual has - not yet been updated for the flexible framework. - - The features based on MP-Core are available under MATLAB 9.1 or - Octave 6.2 or newer, where the legacy framework uses MP-Core's new - modeling by default for: - - `rundcpf` -- DC power flow - - `rundcopf` -- DC optimal power flow - - `runpf` -- AC power flow, for all except radial and hybrid - Newton-Raphson formulations/solvers - - `runcpf` -- AC continuation power flow - - `runopf` -- AC OPF, for solvers MIPS, `fmincon`, IPOPT, and - Artelys Knitro, for all formulations - - Under older versions of MATLAB or Octave, MATPOWER automatically reverts - to the legacy core code, which is still included and can also be - selected manually on newer versions with the `'exp.mp_core'` (now - `'exp.use_legacy_core'`) option or `have_feature('mp_core', 0)`. + - Use new name "MP-Core" everywhere in place of "MP-Element" and "OOP core", + including: + - `mp_element` --> `mp_core`. + - `have_feature_mp_element()` --> `have_feature_mp_core()` + - `test_mp_element()` --> `test_mp_core()` + - `mpopt.exp.mpe` --> `mpopt.exp.mp_core` + - **MASSIVE UPDATE**: Move the contents of [MP-Element][30] from its own + separate repo into the main MATPOWER code base. This introduces a major + redesign and rewrite of all of the MATPOWER internals, previously + developed under the name [MP-Element][30] in a separate repository at + [https://github.com/MATPOWER/mp-element][30]). It includes + - *MP-Core* -- New flexible object-oriented core architecture, + providing unparalleled flexibility and customization + capabilities at all levels. Built around an explicit three-layer + modeling structure, with *data*, *network*, and *mathematical* model + objects, and a *task* object to manage them. + - *Flexible Framework* -- Provides new top-level functions (note + underscores) `run_pf()`, `run_cpf()`, `run_opf()` for running + power flow (PF), continuation power flow (CPF) and optimal power + flow (OPF), along with new MATPOWER Extension API for user access + to the full customization capability of MP-Core. + - *Legacy Framework* -- Allows MP-Core modeling to be used internally + by legacy `runpf()`, `runcpf()`, `runopf()`, etc. Facilitates use of + legacy tests, but is restricted to legacy customization mechanisms. + + See the new [MATPOWER Developer's Manual][34] and [MATPOWER Technical + Note 5][31] for details of the new architecture. The User's Manual has + not yet been updated for the flexible framework. + + The features based on MP-Core are available under MATLAB 9.1 or + Octave 6.2 or newer, where the legacy framework uses MP-Core's new + modeling by default for: + - `rundcpf` -- DC power flow + - `rundcopf` -- DC optimal power flow + - `runpf` -- AC power flow, for all except radial and hybrid + Newton-Raphson formulations/solvers + - `runcpf` -- AC continuation power flow + - `runopf` -- AC OPF, for solvers MIPS, `fmincon`, IPOPT, and + Artelys Knitro, for all formulations + + Under older versions of MATLAB or Octave, MATPOWER automatically reverts + to the legacy core code, which is still included and can also be + selected manually on newer versions with the `'exp.mp_core'` (now + `'exp.use_legacy_core'`) option or `have_feature('mp_core', 0)`. #### 12/14/22 -- Remove deprecated legacy `@opt_model` methods. Summary of deprecated - method names, with current alternatives in parenthesis: - - `add_constraints` (`add_lin_constraint` or `add_nln_constraint`) - - `add_costs` (`add_legacy_cost`, `add_quad_cost` or `add_nln_cost`) - - `add_vars` (`add_var`) - - `build_cost_params` (no longer needed) - - `compute_cost` (`eval_legacy_cost`) - - `get_cost_params` (`params_legacy_cost`) - - `getv` (`params_var`) - - `linear_constraints` (`params_lin_constraint`) -- Remove deprecated functions: - - `d2AIbr_dV2` (use `d2Abr_dV2()`) - - `d2ASbr_dV2` (use `d2Abr_dV2()`) + - Update to [MP-Test][1] 8.0b1. + - Update to [MIPS][2] 1.5. + - Update to [MP-Opt-Model][27] 4.1. + - Update to [MOST][3] 1.2 + - Remove deprecated legacy `@opt_model` methods. Summary of deprecated + method names, with current alternatives in parenthesis: + - `add_constraints` (`add_lin_constraint` or `add_nln_constraint`) + - `add_costs` (`add_legacy_cost`, `add_quad_cost` or `add_nln_cost`) + - `add_vars` (`add_var`) + - `build_cost_params` (no longer needed) + - `compute_cost` (`eval_legacy_cost`) + - `get_cost_params` (`params_legacy_cost`) + - `getv` (`params_var`) + - `linear_constraints` (`params_lin_constraint`) + - Remove deprecated functions: + - `d2AIbr_dV2` (use `d2Abr_dV2()`) + - `d2ASbr_dV2` (use `d2Abr_dV2()`) #### 11/8/22 -- Automatically reduce order of polynomial generator costs with higher - order coefficients equal to zero. Allows the DC OPF to solve cases, - e.g. with cubic costs where the 3rd order term is 0, such as cases - exported by PowerWorld. - *Thanks to Rajesh Mookerjee.* + - Automatically reduce order of polynomial generator costs with higher + order coefficients equal to zero. Allows the DC OPF to solve cases, + e.g. with cubic costs where the 3rd order term is 0, such as cases + exported by PowerWorld. + *Thanks to Rajesh Mookerjee.* #### 9/29/22 -- Silence near singular matrix warnings in some tests that began with - MATLAB R2022b. + - Silence near singular matrix warnings in some tests that began with + MATLAB R2022b. #### 7/27/22 -- Update MP-Opt-Model to latest for compatibility with Artelys - Knitro 13.1 and later. -- Update MOST to latest to add TLMP capabilities and include ramping reserves - and constraints for the transition from the initial state into period 1. - See `most/CHANGES.md` for details. + - Update MP-Opt-Model to latest for compatibility with Artelys + Knitro 13.1 and later. + - Update MOST to latest to add TLMP capabilities and include ramping reserves + and constraints for the transition from the initial state into period 1. + See `most/CHANGES.md` for details. #### 4/8/22 -- Relax some test tolerances to prevent failure with Gurobi 9.5. + - Relax some test tolerances to prevent failure with Gurobi 9.5. #### 3/31/22 -- Add support for MATPOWER extensions in MP-Element 0.7+ - *(later renamed MP-Core)**. + - Add support for MATPOWER extensions in MP-Element 0.7+ + *(later renamed MP-Core)**. #### 2/11/22 -- Add option for `makePTDF()` function to use a different slack distribution - for each bus by specifying the `slack` input as a matrix. Fix bug in - existing code for this previously undocumented feature. - *Thanks to Jon Martinez Corral.* + - Add option for `makePTDF()` function to use a different slack distribution + for each bus by specifying the `slack` input as a matrix. Fix bug in + existing code for this previously undocumented feature. + *Thanks to Jon Martinez Corral.* #### 1/25/22 -- New MATPOWER Docker image (now named [`matpower/matpower`][32]) is based - on the official GNU Octave image ([`gnuoctave/octave`][33]) and is - available for multiple MATPOWER and Octave versions. + - New MATPOWER Docker image (now named [`matpower/matpower`][32]) is based + on the official GNU Octave image ([`gnuoctave/octave`][33]) and is + available for multiple MATPOWER and Octave versions. #### 7/12/21 -- A vector-valued `label` passed to `apply_changes()` now throws a useful - error. + - A vector-valued `label` passed to `apply_changes()` now throws a useful + error. #### 5/17/21 -- Fix generator voltage set points in `case9target` to match `case9`. + - Fix generator voltage set points in `case9target` to match `case9`. #### 5/5/21 -- Add experimental support for [MP-Element][30] *(later renamed MP-Core)*, - a new, generalized - network and element modeling layer for MATPOWER. See also [MATPOWER - Technical Note 5][31]. Documentation not yet included in User's Manual. - - If MP-Element is installed, its modeling is used by default for the - following (can be turned off with `have_feature('mp_element', 0)`): - - DC power flow - - DC optimal power flow - - AC power flow for all except radial and hybrid Newton-Raphson - formulations/solvers, including a new `'FSOLVE'` option based on - `fsolve()` function - - AC continuation power flow - - AC OPF for solvers MIPS, `fmincon`, IPOPT, and Artelys Knitro, for - all formulations - - MP-Opt-Model object is used for power flow and continuation power flow - as well as OPF and is added as `om` field to power flow and CPF - `results` struct. + - Add experimental support for [MP-Element][30] *(later renamed MP-Core)*, + a new, generalized + network and element modeling layer for MATPOWER. See also [MATPOWER + Technical Note 5][31]. Documentation not yet included in User's Manual. + - If MP-Element is installed, its modeling is used by default for the + following (can be turned off with `have_feature('mp_element', 0)`): + - DC power flow + - DC optimal power flow + - AC power flow for all except radial and hybrid Newton-Raphson + formulations/solvers, including a new `'FSOLVE'` option based on + `fsolve()` function + - AC continuation power flow + - AC OPF for solvers MIPS, `fmincon`, IPOPT, and Artelys Knitro, for + all formulations + - MP-Opt-Model object is used for power flow and continuation power flow + as well as OPF and is added as `om` field to power flow and CPF + `results` struct. #### 4/5/21 - Fix typo in computation of CPF prediction error that had very minor @@ -179,8 +186,8 @@ Changes since 7.1 user callback function. #### 10/27/20 -- Add Implicit Z-bus Gauss power flow solver for distribution systems. - Select by setting `pf.alg` to `'ZG'`. + - Add Implicit Z-bus Gauss power flow solver for distribution systems. + Select by setting `pf.alg` to `'ZG'`. Version 7.1 - *Oct 8, 2020* diff --git a/docker/MATPOWER-Docker.md b/docker/MATPOWER-Docker.md index 38426b3f..b0ddaaad 100644 --- a/docker/MATPOWER-Docker.md +++ b/docker/MATPOWER-Docker.md @@ -105,6 +105,7 @@ GitHub repositories. | **_release versions_** | | | | `latest` | _current release_ | _current release_ | | `c` | _X.Y_ | _current release_ | +| `8.0b1` | 8.0b1 | 7.3.0 | | `7.1` | 7.1 | 5.2.0 | | `7.0` | 7.0 | 5.1.0 | | `6.0` | 6.0 | 4.2.2 | diff --git a/docker/build_matpower_images.sh b/docker/build_matpower_images.sh index 5a71ba73..7011e024 100755 --- a/docker/build_matpower_images.sh +++ b/docker/build_matpower_images.sh @@ -34,9 +34,11 @@ docker build --build-arg VER=6.0 --build-arg WARN=1 --build-arg PATCH_PSSE=1 -f ## with contemporary Octave version docker build --build-arg MP_SRC=github --build-arg BRANCH=7.0 --build-arg BASE_TAG=5.1.0 -f docker/Dockerfile -t matpower/matpower:7.0 . docker build --build-arg MP_SRC=github --build-arg BRANCH=7.1 --build-arg BASE_TAG=5.2.0 -f docker/Dockerfile -t matpower/matpower:7.1 . +docker build --build-arg MP_SRC=github --build-arg BRANCH=8.0b1 --build-arg BASE_TAG=7.3.0 -f docker/Dockerfile -t matpower/matpower:8.0b1 . ## with current (latest) Octave version docker build --build-arg MP_SRC=github --build-arg BRANCH=7.0 --build-arg WARN=1 -f docker/Dockerfile -t matpower/matpower:7.0c . docker build --build-arg MP_SRC=github --build-arg BRANCH=7.1 --build-arg PATCH_MOST_TEST=1 -f docker/Dockerfile -t matpower/matpower:7.1c . +docker build --build-arg MP_SRC=github --build-arg BRANCH=8.0b1 --build-arg PATCH_MOST_TEST=1 -f docker/Dockerfile -t matpower/matpower:8.0b1c . # docker build --build-arg MP_SRC=github --build-arg BRANCH=7.1 --build-arg PATCH_MOST_TEST=1 -f docker/Dockerfile -t matpower/matpower:latest . docker tag matpower/matpower:7.1c matpower/matpower:latest diff --git a/docs/MATPOWER-manual.pdf b/docs/MATPOWER-manual.pdf index ff5c3df0..52c63e01 100644 Binary files a/docs/MATPOWER-manual.pdf and b/docs/MATPOWER-manual.pdf differ diff --git a/docs/relnotes/MATPOWER-Announce-8.0b1.md b/docs/relnotes/MATPOWER-Announce-8.0b1.md new file mode 100644 index 00000000..0ba4b7a9 --- /dev/null +++ b/docs/relnotes/MATPOWER-Announce-8.0b1.md @@ -0,0 +1,95 @@ +What's New in MATPOWER 8.0b1 +---------------------------- + +#### Released Dec 22, 2022 + +Below are some of the highlights of the changes since version 7.1 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]. + + +#### Major Redesign: + +MATPOWER 8 introduces a major redesign and rewrite of all of the MATPOWER +internals in the form of the flexible, all-new MATPOWER object-oriented core +architecture (*MP-Core*) and new two user-level frameworks to access it. +*(Previously developed under the name [MP-Element][4] in a separate repository +at [https://github.com/MATPOWER/mp-element][4].)* + +- *MP-Core* -- Provides unparalleled flexibility and customization capabilities +at all levels. Facilitates new modeling (e.g. unbalanced multiphase elements, FACTS devices, etc.), new controls (e.g. optimization of transformer taps, +PAR angles, etc.), new problem formulations, and more. +- *Flexible Framework* -- Provides new top-level functions for running power +flow (PF), continuation power flow (CPF) and optimal power flow (OPF), along +with new MATPOWER Extension API for user access to the full customization +capability of MP-Core. +- *Legacy Framework* -- Allows MP-Core modeling to be used internally by +legacy functions, facilitating use of legacy test suite. + +See the new [MATPOWER Developer's Manual][5] and [*MATPOWER Technical +Note 5*][6] for details of the new architecture. The User's Manual has +not yet been updated for the flexible framework. + + +#### New Features: + +- [MIPS][7] 1.5 adds to `mplinsolve()` the ability to save an LU + factorization and reuse it to solve for additional right-hand sides. +- [MOST][8] 1.2 adds calculation of expected temporal locational marginal + price (TLMP), includes transitions into first period in ramping + reserves, and more. +- New options: + - New AC power flow solver based on `fsolve()` function, selected by + setting `'pf.alg'` option to `'FSOLVE'`. + - New Implicit Z-bus Gauss method power flow for distribution systems, + selected by setting `pf.alg` option to `'ZG'`. +- New functions/methods: + - `run_mp` - Top-level function for running any task (PF, CPF, OPF) with + the new MP-Core and flexible framework. + - `run_pf` - Wrapper around `run_mp` for running PF. + - `run_cpf` - Wrapper around `run_mp` for running CPF. + - `run_opf` - Wrapper around `run_mp` for running OPF. + + +#### New Case Files: + +- Two new European case files. *Thanks to Florin Capitanescu.* + + +#### New Documentation: + +- [MATPOWER Developer's Manual][5] -- describes the architecture of the + new MP-Core and MATPOWER flexible framework +- [*MATPOWER Technical Note 5*][6] "MP-Element: A Unified MATPOWER + Element Model, with Corresponding Functions and Derivatives" + + +#### Other Improvements: + +- New MATPOWER Docker image (named [`matpower/matpower`][9]) is + based on the official GNU Octave image ([`gnuoctave/octave`][10]) and + is available for multiple MATPOWER and Octave versions. +- Update versions of included packages: + - MP-Test 8.0b1. + - MIPS 1.5. + - MP-Opt-Model 4.1 + - MOST 1.2. +- Numerous bug fixes. + + +#### Incompatible Changes: + +- Remove several deprecated functions, methods and options. + + +[1]: https://github.com/MATPOWER/matpower/blob/master/docs/relnotes/MATPOWER-Release-Notes-8.0.md +[2]: https://github.com/MATPOWER/matpower/blob/master/CHANGES.md +[3]: https://github.com/MATPOWER/matpower/blob/master/docs/MATPOWER-manual.pdf +[4]: https://github.com/MATPOWER/mp-element +[5]: https://matpower.org/documentation/dev-manual/ +[6]: https://matpower.org/docs/TN5-MP-Element.pdf +[7]: https://github.com/MATPOWER/mips +[8]: https://github.com/MATPOWER/most +[9]: https://hub.docker.com/r/matpower/matpower +[10]: https://hub.docker.com/r/gnuoctave/octave diff --git a/docs/relnotes/MATPOWER-Release-Notes-7.1.md b/docs/relnotes/MATPOWER-Release-Notes-7.1.md index 1a1abe62..94e5927d 100644 --- a/docs/relnotes/MATPOWER-Release-Notes-7.1.md +++ b/docs/relnotes/MATPOWER-Release-Notes-7.1.md @@ -34,7 +34,7 @@ previous versions, see Appendix H of the [MATPOWER User's Manual][2]. - [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] +- [MIPS][4] 1.4. For details, see the [MIPS 1.4 release notes][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 diff --git a/docs/relnotes/MATPOWER-Release-Notes-8.0b1.md b/docs/relnotes/MATPOWER-Release-Notes-8.0b1.md new file mode 100644 index 00000000..0ede771c --- /dev/null +++ b/docs/relnotes/MATPOWER-Release-Notes-8.0b1.md @@ -0,0 +1,178 @@ +What's New in MATPOWER 8.0b1 +---------------------------- + +#### Released Dec 22, 2022 + +Below is a summary of the changes since version 7.1 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]. + + +#### Major Redesign: + +MATPOWER 8 introduces a major redesign and rewrite of all of the MATPOWER +internals in the form of the flexible, all-new MATPOWER object-oriented core +architecture (*MP-Core*) and new two user-level frameworks to access it. +*(Previously developed under the name [MP-Element][3] in a separate repository +at [https://github.com/MATPOWER/mp-element][3].)* + +- *MP-Core* -- Provides unparalleled flexibility and customization capabilities +at all levels. Built around an explicit three-layer modeling structure, with +*data*, *network* and *mathematical* model objects and a *task* object to +manage them. Facilitates new modeling (e.g. unbalanced multiphase elements, FACTS devices, etc.), new controls (e.g. optimization of transformer taps, +PAR angles, etc.), new problem formulations, and more. +- *Flexible Framework* -- Provides new top-level functions (note underscores) +`run_pf()`, `run_cpf()`, `run_opf()` for running power flow (PF), continuation +power flow (CPF) and optimal power flow (OPF), along with new MATPOWER +Extension API for user access to the full customization capability of MP-Core. +- *Legacy Framework* -- Allows MP-Core modeling to be used internally by +legacy `runpf()`, `runcpf()`, `runopf()`, etc. Facilitates use of legacy +test suite, but is restricted to legacy customization mechanisms. + +See the new [MATPOWER Developer's Manual][4] and [*MATPOWER Technical +Note 5*][5] for details of the new architecture. The User's Manual has +not yet been updated for the flexible framework. + +The features based on MP-Core are available under MATLAB 9.1 or Octave 6.2 +or newer, where the legacy framework uses MP-Core's new modeling by default +for: +- `rundcpf` -- DC power flow +- `rundcopf` -- DC optimal power flow +- `runpf` -- AC power flow, for all except radial and hybrid Newton-Raphson + formulations/solvers +- `runcpf` -- AC continuation power flow +- `runopf` -- AC OPF, for solvers MIPS, `fmincon`, IPOPT, and Artelys + Knitro, for all formulations + +Under older versions of MATLAB or Octave, MATPOWER automatically reverts to the legacy core code, which is still included. The legacy core can also be selected manually on newer versions with the `'exp.use_legacy_core'` option or by disabling MP-Core in the legacy framework via `have_feature('mp_core', 0)`. + + +#### New Features: + +- [MP-Test][6] 8.0b1 includes new functions for testing string values + and text file contents. For details, see the [MP-Test 8.0b1 release + notes][7]. +- [MIPS][8] 1.5 adds to `mplinsolve()` the ability to save an LU + factorization and reuse it to solve for additional right-hand sides. + For details, see the [MIPS 1.5 release notes][9] + *(also in Appendix C in the [MIPS User's Manual][10])*. +- [MP-Opt-Model][11] 4.1 adds support for Artelys Knitro 13.1 and more. + For details, see the [MP-Opt-Model 4.1 release notes][12] *(also in + Appendix C in the [MP-Opt-Model User's Manual][13])*. +- [MOST][14] 1.2 adds calculation of expected temporal locational marginal + price (TLMP), includes transitions into first period in ramping + reserves, and more. For details, see the [MOST 1.2 release notes][15] + *(also in Appendix B in the [MOST User's Manual][16])*. +- New options: + - New AC power flow solver based on `fsolve()` function, selected by + setting `'pf.alg'` option to `'FSOLVE'`. *(`fsolve()` is part of the MATLAB + Optimization Toolbox and included in Octave. Supported via MP-Core + only.)* + - New Implicit Z-bus Gauss method power flow for distribution systems, + selected by setting `pf.alg` option to `'ZG'`. *(Support for PV buses + is very limited.)* + - New `'exp.use_legacy_core'` option to bypass MP-Core and force use of + legacy core code for `runpf()`, `runcpf()`, `runopf()`. +- New functions/methods: + - MP-Test 8.0b1 + - `t_str_match()` -- test that a string matches expected value + - `t_file_match()` -- test that the content of a text files matches + that of another file + - `have_feature_mp_core` - Determines availability of MP-Core. + - `run_mp` - Top-level function for running any task (PF, CPF, OPF) with + the new MP-Core and flexible framework. + - `run_pf` - Wrapper around `run_mp` for running PF. + - `run_cpf` - Wrapper around `run_mp` for running CPF. + - `run_opf` - Wrapper around `run_mp` for running OPF. + + +#### New Case Files: + +- Two new European case files. *Thanks to Florin Capitanescu.* + - `case60nordic` -- 60-bus Nordic case + - `case8387pegase` -- 8387-bus PEGASE case + + +#### New Documentation: + +- [MATPOWER Developer's Manual][4] -- describes the architecture of the + new MP-Core and MATPOWER flexible framework +- [*MATPOWER Technical Note 5*][5] "MP-Element: A Unified MATPOWER + Element Model, with Corresponding Functions and Derivatives" + + +#### Other Improvements: + +- MP-Opt-Model object is now used for power flow as well as OPF and is + added as `om` field to power flow `results` struct. +- New MATPOWER Docker image (named [`matpower/matpower`][17]) is + based on the official GNU Octave image ([`gnuoctave/octave`][18]) and + is available for multiple MATPOWER and Octave versions. +- Each power flow is initialized with the solved voltages of the previous + one when changing PV buses to PQ during Q limit enforcement. + *Thanks to Tostado-Véliz, Kamel, Jurado.* +- The `makePTDF()` function can now optionally use a different slack + distribution for each bus by specifying the `slack` input as a matrix. + *Thanks to Jon Martinez Corral.* +- Automatically reduce order of polynomial generator costs with higher + order coefficients equal to zero. Allows the DC OPF to solve cases, + e.g. with cubic costs where the 3rd order term is 0, such as cases + exported by PowerWorld. *Thanks to Rajesh Mookerjee.* + + +#### Bugs Fixed: + +- Fatal bug in `int2ext()` when called with `mpopt` and an `int2ext` user + callback function. +- Bug affecting AC OPF initialization for cases with piecewise linear + costs and cartesian voltage representations. Fix results in improved + convergence for affected cases. +- Fix generator voltage set points in `case9target` to match `case9`. +- A vector-valued `label` passed to `apply_changes()` now throws a + useful error. +- Fix bug in previously undocumented feature of `makePTDF()` where + the `slack` input is a matrix. *Thanks to Jon Martinez Corral.* + + +#### Incompatible Changes: + +- Removed unused `mpopt` argument from `opf_gen_cost_fcn()` inputs. +- Remove deprecated functions: + - `d2AIbr_dV2()` -- use `dA2br_dV2()` instead. + - `d2ASbr_dV2()` -- use `dA2br_dV2()` instead. + - Deprecated methods of `@opf_model`: + - `add_constraints()` -- use the corresponding one of the following + methods instead: `add_lin_constraint()`, `add_nln_constraint()`, or + `init_indexed_name()`. + - `add_costs()` -- use the corresponding one of the following methods + instead: `add_quad_cost()`, `add_nln_cost()`, `add_legacy_cost()`, + or `init_indexed_name()`. + - `add_vars()` -- use the corresponding one of the following methods + instead: `add_var()`, or `init_indexed_name()`. + - `build_cost_params()` -- no longer needed, incorporated into + `params_legacy_cost()`. + - `get_cost_params()` -- use `params_legacy_cost()` instead. + - `getv()` -- use `params_var()` instead. + - `linear_constraints()` -- use `params_lin_constraint()` instead. +- Remove deprecated option: + - `'opf.init_from_mpc'` -- use `'opf.start'` instead. + + +[1]: https://github.com/MATPOWER/matpower/blob/master/CHANGES.md +[2]: https://github.com/MATPOWER/matpower/blob/master/docs/MATPOWER-manual.pdf +[3]: https://github.com/MATPOWER/mp-element +[4]: https://matpower.org/documentation/dev-manual/ +[5]: https://matpower.org/docs/TN5-MP-Element.pdf +[6]: https://github.com/MATPOWER/mptest +[7]: https://github.com/MATPOWER/mptest/blob/master/docs/relnotes/MP-Test-Release-Notes-8.0.md +[8]: https://github.com/MATPOWER/mips +[9]: https://github.com/MATPOWER/mips/blob/master/docs/relnotes/MIPS-Release-Notes-1.5.md +[10]: https://matpower.org/docs/MIPS-manual-1.5.pdf +[11]: https://github.com/MATPOWER/mp-opt-model +[12]: https://github.com/MATPOWER/mp-opt-model/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-4.1.md +[13]: https://matpower.org/docs/MP-Opt-Model-manual-4.1.pdf +[14]: https://github.com/MATPOWER/most +[15]: https://github.com/MATPOWER/most/blob/master/docs/relnotes/MOST-Release-Notes-1.2.md +[16]: https://matpower.org/docs/MOST-manual-1.2.pdf +[17]: https://hub.docker.com/r/matpower/matpower +[18]: https://hub.docker.com/r/gnuoctave/octave diff --git a/docs/src/MATPOWER-manual/MATPOWER-manual.tex b/docs/src/MATPOWER-manual/MATPOWER-manual.tex index f35113d9..70436fd7 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]{8.0-dev} +\newcommand{\mpver}[0]{8.0b1} %\newcommand{\matlab}[0]{{Matlab}} %\newcommand{\matlab}[0]{{\sc Matlab}\textsuperscript{\tiny \textregistered}} \newcommand{\matlab}[0]{{\sc Matlab}} @@ -157,18 +157,18 @@ \newcommand{\mptest}[0]{{MP-Test}} \newcommand{\mptesturl}[0]{https://github.com/MATPOWER/mptest} \newcommand{\mptestlink}[0]{\href{\mptesturl}{\mptest{}}} -\newcommand{\mptestver}[0]{7.1} +\newcommand{\mptestver}[0]{8.0b1} \newcommand{\mips}[0]{{MIPS}} \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.4} +\newcommand{\mipsver}[0]{1.5} \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]{3.0} +\newcommand{\mpomver}[0]{4.1} \newcommand{\mpcore}{{MP-Core}} \newcommand{\mpe}{{MP-Element}} \newcommand{\mpeurl}[0]{https://github.com/MATPOWER/mp-element} @@ -177,7 +177,7 @@ \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.1} +\newcommand{\mostver}[0]{1.2} \newcommand{\md}[0]{{\most{} Data struct}} \newcommand{\east}[0]{E4ST} \newcommand{\eastver}[0]{1.0b2} @@ -282,7 +282,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{October 8, 2020} % comment this line to display the current date +\date{December 22, 2022} % 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 @@ -306,7 +306,7 @@ {\large \@date \par}% \vfill {\scriptsize -\copyright~2010--2020~\PSERC\\ +\copyright~2010--2022~\PSERC\\ All Rights Reserved} \end{center} \end{titlepage} @@ -665,70 +665,86 @@ \subsection{Installation} % UPDATE BEFORE RELEASE \begin{Code} >> test_matpower -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 -t_ext2int2ext...........ok -t_jacobian..............ok -t_hessian...............ok -t_margcost..............ok -t_totcost...............ok -t_modcost...............ok -t_hasPQcap..............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 (280 of 1308 skipped) -t_opf_dc_default........ok -t_opf_dc_mips...........ok -t_opf_dc_mips_sc........ok +t_test_fcns...............ok +t_have_feature............ok +t_mplinsolve..............ok (8 of 180 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_pnes_master.............ok +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_pne............ok +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 +t_ext2int2ext.............ok +t_jacobian................ok +t_hessian.................ok +t_margcost................ok +t_totcost.................ok +t_modcost.................ok +t_hasPQcap................ok +t_mp_mapped_array.........ok +t_mp_table................ok +t_mp_data_model...........ok +t_dmc_element.............ok +t_mp_dm_converter_mpc2....ok +t_nm_element..............ok +t_port_inj_current_acc....ok +t_port_inj_current_acp....ok +t_port_inj_power_acc......ok +t_port_inj_power_acp......ok +t_node_test...............ok \end{Code} \emph{continued from previous page} \begin{Code} -t_opf_userfcns..........ok -t_opf_softlims..........ok -t_runopf_w_res..........ok -t_dcline................ok -t_get_losses............ok -t_load2disp.............ok -t_makePTDF..............ok -t_makeLODF..............ok -t_printpf...............ok -t_vdep_load.............ok -t_total_load............ok -t_scale_load............ok -t_apply_changes.........ok -t_psse..................ok -t_off2case..............ok -t_auction_mips..........ok -t_runmarket.............ok -All tests successful (10368 passed, 2695 skipped of 13063) -Elapsed time 23.98 seconds. +t_run_mp..................ok +t_run_mp_3p...............ok +t_pretty_print............ok +t_mpxt_reserves...........ok +t_pf_ac...................ok +t_pf_dc...................ok +t_pf_radial...............ok +t_cpf.....................ok (97 of 415 skipped) +t_islands.................ok +t_opf_model...............ok +t_opf_default.............ok +t_opf_mips................ok (286 of 1344 skipped) +t_opf_dc_default..........ok +t_opf_dc_mips.............ok +t_opf_dc_mips_sc..........ok +t_opf_userfcns............ok +t_opf_softlims............ok +t_runopf_w_res............ok +t_dcline..................ok +t_get_losses..............ok +t_load2disp...............ok +t_makePTDF................ok +t_makeLODF................ok +t_printpf.................ok +t_vdep_load...............ok +t_total_load..............ok +t_scale_load..............ok +t_apply_changes...........ok +t_psse....................ok +t_off2case................ok +t_auction_mips............ok +t_runmarket...............ok +All tests successful (13079 passed, 2800 skipped of 15879) +Elapsed time 99.93 seconds. \end{Code} \end{enumerate} @@ -2279,25 +2295,33 @@ \subsubsection{CPF Example} \end{Code} This should result in something like the following output to the screen. \begin{Code} -MATPOWER Version 7.1, 08-Oct-2020 -- AC Continuation Power Flow +MATPOWER Version 8.0b1, 22-Dec-2022 -- 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 -step 3 : stepsize = 0.2 lambda = 0.530 2 corrector Newton steps -step 4 : stepsize = 0.2 lambda = 0.693 3 corrector Newton steps -step 5 : stepsize = 0.2 lambda = 0.839 3 corrector Newton steps -step 6 : stepsize = 0.2 lambda = 0.952 3 corrector Newton steps -step 7 : stepsize = 0.2 lambda = 0.988 3 corrector Newton steps -step 8 : stepsize = 0.2 lambda = 0.899 3 corrector Newton steps -step 9 : stepsize = 0.2 lambda = 0.776 3 corrector Newton steps -step 10 : stepsize = 0.2 lambda = 0.654 3 corrector Newton steps -step 11 : stepsize = 0.2 lambda = 0.533 2 corrector Newton steps -step 12 : stepsize = 0.2 lambda = 0.413 2 corrector Newton steps -step 13 : stepsize = 0.2 lambda = 0.294 2 corrector Newton steps -step 14 : stepsize = 0.2 lambda = 0.176 2 corrector Newton steps -step 15 : stepsize = 0.2 lambda = 0.060 2 corrector Newton steps -step 16a : stepsize = 0.2 lambda = -0.054 2 corrector Newton steps ^ ROLLBACK -step 16 : stepsize = 0.0604 lambda = 0.000 3 corrector Newton steps + +MATPOWER Version 8.0b1, 22-Dec-2022 +Continuation Power Flow -- AC-polar-power formulation + +MP-Opt-Model Version 4.1, 13-Dec-2022 -- Predictor/Corrector Continuation Method +step 0 : lambda = 0.000, 0 corrector steps +step 1 : PAL stepsize = 0.2 lambda = 0.181 2 corrector steps +step 2 : PAL stepsize = 0.2 lambda = 0.359 2 corrector steps +step 3 : PAL stepsize = 0.2 lambda = 0.530 2 corrector steps +step 4 : PAL stepsize = 0.2 lambda = 0.693 3 corrector steps +step 5 : PAL stepsize = 0.2 lambda = 0.839 3 corrector steps +step 6 : PAL stepsize = 0.2 lambda = 0.952 3 corrector steps +step 7 : PAL stepsize = 0.2 lambda = 0.988 3 corrector steps +step 8 : PAL stepsize = 0.2 lambda = 0.899 3 corrector steps +step 9 : PAL stepsize = 0.2 lambda = 0.776 3 corrector steps +step 10 : PAL stepsize = 0.2 lambda = 0.654 3 corrector steps +step 11 : PAL stepsize = 0.2 lambda = 0.533 2 corrector steps +step 12 : PAL stepsize = 0.2 lambda = 0.413 2 corrector steps +step 13 : PAL stepsize = 0.2 lambda = 0.294 2 corrector steps +step 14 : PAL stepsize = 0.2 lambda = 0.176 2 corrector steps +step 15 : PAL stepsize = 0.2 lambda = 0.060 2 corrector steps +step 16a : PAL stepsize = 0.2 lambda = -0.054 2 corrector steps ^ ROLLBACK +step 16 : NAT stepsize = 0.0604 lambda = -0.000 3 corrector steps +CONTINUATION TERMINATION: Traced full continuation curve in 16 continuation steps +CPF successful CPF TERMINATION: Traced full continuation curve in 16 continuation steps \end{Code} The results of the continuation power flow are then found in the \code{cpf} field of the returned \results{} struct. @@ -6007,7 +6031,7 @@ \subsection{\matpower{} Software} \end{tabular} \begin{tablenotes} \scriptsize - \item [*] With the exception of \code{most}, by default these now use \mpcore{} internally via the legacy \matpower{} framework, though the legacy core from \matpower{} 7.1 and earlier can be selected explicitly via the \codeq{'exp.use\_legacy\_core'} option or by disabling MP-Core in the legacy framework via \code{have\_feature(\textquotesingle{}mp\_core\textquotesingle{}, 0)}. + \item [*] With the exception of \code{most}, by default these now use \mpcore{} internally via the legacy \matpower{} framework, though the legacy core from \matpower{} 7.1 and earlier can be selected explicitly via the \codeq{'exp.use\_legacy\_core'} option or by disabling \mpcore{} in the legacy framework via \code{have\_feature(\textquotesingle{}mp\_core\textquotesingle{}, 0)}. \item [\dag] Uses AC model by default. \item [\ddag] Simple wrapper function to set option to use DC model before calling the corresponding general function above. \item [\S] \most{} and its supporting files and functions in the \code{most/} sub-directory are documented in the \mostman{} and listed in its Appendix~\ref{MOSTMAN-app:functions}. @@ -8445,10 +8469,10 @@ \subsubsection*{Incompatible Changes} \clearpage -\subsection{Version 8.0 -- released ??? ??, 202?} +\subsection{Version 8.0b1 -- released Dec 22, 2022} \label{app:v80} -The \href{https://matpower.org/docs/MATPOWER-manual-8.0.pdf}{\matpower{} 8.0 User's Manual} is available online.\footnote{\url{https://matpower.org/docs/MATPOWER-manual-8.0.pdf}} +The \href{https://matpower.org/docs/MATPOWER-manual-8.0b1.pdf}{\matpower{} 8.0b1 User's Manual} is available online.\footnote{\url{https://matpower.org/docs/MATPOWER-manual-8.0b1.pdf}} \subsubsection*{Major Redesign} @@ -8456,7 +8480,7 @@ \subsubsection*{Major Redesign} \begin{itemize} \item \emph{\mpcore{}} -- Provides unparalleled flexibility and customization capabilities at all levels. Built around an explicit three-layer modeling structure, with \emph{data}, \emph{network} and \emph{mathematical} model objects and a \emph{task} object to manage them. Facilitates new modeling (e.g. unbalanced multiphase elements, FACTS devices, etc.), new controls (e.g. optimization of transformer taps, PAR angles, etc.), new problem formulations, and more. \item \emph{Flexible Framework} -- Provides new top-level functions (note underscores) \code{run\_pf()}, \code{run\_cpf()}, \code{run\_opf()} for running power flow (PF), continuation power flow (CPF) and optimal power flow (OPF), along with new \matpower{} Extension API for user access to the full customization capability of \mpcore{}. -\item \emph{Legacy Framework} -- Allows \mpcore{} modeling to be used internally by legacy \code{runpf()}, \code{runcpf()}, \code{runopf()}, etc. Facilitates use of legacy tests, but is restricted to legacy customization mechanisms. +\item \emph{Legacy Framework} -- Allows \mpcore{} modeling to be used internally by legacy \code{runpf()}, \code{runcpf()}, \code{runopf()}, etc. Facilitates use of legacy test suite, but is restricted to legacy customization mechanisms. \end{itemize} See the new \mdm{}\footnote{\url{\mdmurl}} and \TNfive{}~\cite{zimmerman2020} for details of the new architecture. The User's Manual has not yet been updated for the flexible framework. @@ -8468,10 +8492,14 @@ \subsubsection*{Major Redesign} \item \code{runcpf} -- AC continuation power flow \item \code{runopf} -- AC OPF, for solvers MIPS, \code{fmincon}, \ipopt{}, and \knitro{}, for all formulations \end{itemize} -Under older versions of \matlab{} or Octave, \matpower{} automatically reverts to the legacy core code, which is still included. The legacy core can also be selected manually on newer versions with the \codeq{exp.use\_legacy\_core} option or by disabling MP-Core in the legacy framework via \code{have\_feature(\textquotesingle{}mp\_core\textquotesingle{}, 0)}. +Under older versions of \matlab{} or Octave, \matpower{} automatically reverts to the legacy core code, which is still included. The legacy core can also be selected manually on newer versions with the \codeq{exp.use\_legacy\_core} option or by disabling \mpcore{} in the legacy framework via \code{have\_feature(\textquotesingle{}mp\_core\textquotesingle{}, 0)}. \subsubsection*{New Features} \begin{itemize} +\item \mptestlink{} 8.0b1 includes new functions for testing string values and text file contents. For details, see the \href{\mptesturl/blob/master/docs/relnotes/MP-Test-Release-Notes-8.0.md}{\mptest{} 8.0b1 release notes}. +\item \mipslink{} 1.5 adds to \code{mplinsolve()} the ability to save an LU factorization and reuse it to solve for additional right-hand sides. For details, see the \href{\mipsurl/blob/master/docs/relnotes/MIPS-Release-Notes-1.5.md}{\mips{} 1.5 release notes}.\footnote{See Appendix~\ref{MIPSMAN-app:release_history} in the \mipsman{}.} +\item \mpomlink{} 4.1 adds support for Artelys Knitro 13.1 and more. For details, see the \href{\mpomurl/blob/master/docs/relnotes/MP-Opt-Model-Release-Notes-4.1.md}{\mpom{} 4.1 release notes}.\footnote{See Appendix~\ref{MPOMMAN-app:release_history} in the \mpomman{}.} +\item \mostlink{} 1.2 adds calculation of expected temporal locational marginal price (TLMP), includes transitions into first period in ramping reserves, and more. For details, see the \href{\mosturl/blob/master/docs/relnotes/MOST-Release-Notes-1.2.md}{\most{} 1.2 release notes}.\footnote{See Appendix~\ref{MOSTMAN-app:release_history} in the \mostman{}.} \item New options: \begin{itemize} \item New AC power flow solver based on \code{fsolve()} function,\footnote{Part of the \matlab{} \ot{} and included in Octave. Supported via \mpcore{} only.} selected by setting \code{pf.alg} option to \codeq{FSOLVE}. @@ -8480,11 +8508,16 @@ \subsubsection*{New Features} \end{itemize} \item New functions/methods: \begin{itemize} - \item \code{have\_feature\_mp\_core} - Determines availability of \mpcore{}. - \item \code{run\_mp} - Top-level function for running any task (PF, CPF, OPF) with the new \mpcore{} and flexible framework. - \item \code{run\_pf} - Wrapper around \code{run\_mp} for running PF. - \item \code{run\_cpf} - Wrapper around \code{run\_mp} for running CPF. - \item \code{run\_opf} - Wrapper around \code{run\_mp} for running OPF. + \item MP-Test 8.0b1 + \begin{itemize} + \item \code{t\_str\_match()} -- test that a string matches expected value + \item \code{t\_file\_match()} -- test that the content of a text files matches that of another file + \end{itemize} + \item \code{have\_feature\_mp\_core} -- Determines availability of \mpcore{}. + \item \code{run\_mp} -- Top-level function for running any task (PF, CPF, OPF) with the new \mpcore{} and flexible framework. + \item \code{run\_pf} -- Wrapper around \code{run\_mp} for running PF. + \item \code{run\_cpf} -- Wrapper around \code{run\_mp} for running CPF. + \item \code{run\_opf} -- Wrapper around \code{run\_mp} for running OPF. \end{itemize} \end{itemize} @@ -8502,6 +8535,7 @@ \subsubsection*{New Case Files} \subsubsection*{New Documentation} \begin{itemize} + \item \mdm{}~\cite{dev_manual} -- describes the architecture of the new \mpcore{} and \matpower{} flexible framework \item \TNfive{} ``\mpe{}: A Unified \matpower{} Element Model, with Corresponding Functions and Derivatives''~\cite{zimmerman2020} \end{itemize} @@ -8512,11 +8546,6 @@ \subsubsection*{Other Improvements} \item Each power flow is initialized with the solved voltages of the previous one when changing PV buses to PQ during Q limit enforcement. \emph{Thanks to Tostado-Véliz, Kamel, Jurado.} \item The \code{makePTDF()} function can now optionally use a different slack distribution for each bus by specifying the \code{slack} input as a matrix. \emph{Thanks to Jon Martinez Corral.} \item Automatically reduce order of polynomial generator costs with higher order coefficients equal to zero. Allows the DC OPF to solve cases, e.g. with cubic costs where the 3rd order term is 0, such as cases exported by PowerWorld. \emph{Thanks to Rajesh Mookerjee.} -\item \emph{Thanks to ...} -\item Deprecated functions: - \begin{itemize} - \item - \end{itemize} \end{itemize} % \pagebreak @@ -8617,7 +8646,7 @@ \subsubsection*{Incompatible Changes} \doi{10.1109/TPWRS.2010.2051168} \bibitem{matpower} -R.~D. Zimmerman, C.~E. Murillo-S{\'a}nchez (2020). \matpower{}\\~ +R.~D. Zimmerman, C.~E. Murillo-S{\'a}nchez (2022). \matpower{}\\~ [Software]. Available: \url{https://matpower.org} \doi{10.5281/zenodo.3236535} diff --git a/docs/src/MATPOWER-manual/MIPS-manual.aux b/docs/src/MATPOWER-manual/MIPS-manual.aux index 48662fe1..6a90e44a 100644 --- a/docs/src/MATPOWER-manual/MIPS-manual.aux +++ b/docs/src/MATPOWER-manual/MIPS-manual.aux @@ -2,13 +2,10 @@ \providecommand\hyper@newdestlabel[2]{} \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined -\global\let\oldcontentsline\contentsline -\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} \global\let\oldnewlabel\newlabel \gdef\newlabel#1#2{\newlabelxx{#1}#2} \gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} \AtEndDocument{\ifx\hyper@anchor\@undefined -\let\contentsline\oldcontentsline \let\newlabel\oldnewlabel \fi} \fi} @@ -60,15 +57,15 @@ \newlabel{eq:mips_h}{{3.3}{10}{\mips {} -- \mipsname {}}{equation.3.2}{}} \newlabel{eq:mips_linear_constraints}{{3.4}{10}{\mips {} -- \mipsname {}}{equation.3.2}{}} \newlabel{eq:mips_var_bounds}{{3.5}{10}{\mips {} -- \mipsname {}}{equation.3.2}{}} -\@writefile{lot}{\contentsline {table}{\numberline {3\unhbox \voidb@x \hbox {-}1}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{mips}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{11}{table.caption.4}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {3\mbox {-}1}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{mips}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{11}{table.caption.4}\protected@file@percent } \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} -\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{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}}} +\newlabel{tab:mips_input}{{3\mbox {-}1}{11}{Input Arguments for \code {mips}\tnote {\dag }\relax }{table.caption.4}{}} +\@writefile{lot}{\contentsline {table}{\numberline {3\mbox {-}2}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{mips}}}}\relax }}{12}{table.caption.6}\protected@file@percent } +\newlabel{tab:mips_output}{{3\mbox {-}2}{12}{Output Arguments for \code {mips}\relax }{table.caption.6}{}} +\@writefile{lot}{\contentsline {table}{\numberline {3\mbox {-}3}{\ignorespaces Options for {\relsize {-0.5}{\tt {{mips}}}}\relax }}{13}{table.caption.8}\protected@file@percent } +\newlabel{tab:mips_options}{{3\mbox {-}3}{13}{Options for \code {mips}\relax }{table.caption.8}{}} +\@writefile{brf}{\backcite{wang2007a}{{13}{3\mbox {-}3}{table.caption.8}}} +\@writefile{brf}{\backcite{wang2007a}{{13}{3\mbox {-}3}{table.caption.8}}} \@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 } @@ -92,29 +89,29 @@ \@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 {subsection}{\numberline {4.2}Quadratic Programming Solver - {\tt qps\_mips}}{23}{subsection.4.2}\protected@file@percent } +\newlabel{sec:qps_mips}{{4.2}{23}{Quadratic Programming Solver - {\tt qps\_mips}}{subsection.4.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Private Feature Detection Functions}{24}{subsection.4.3}\protected@file@percent } +\newlabel{sec:featuredetection}{{4.3}{24}{Private Feature Detection Functions}{subsection.4.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}\tt have\_feature\_lu\_vec}{24}{subsubsection.4.3.1}\protected@file@percent } +\newlabel{sec:have_feature_lu_vec}{{4.3.1}{24}{\tt have\_feature\_lu\_vec}{subsubsection.4.3.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}\tt have\_feature\_pardiso\_legacy}{24}{subsubsection.4.3.2}\protected@file@percent } +\newlabel{sec:have_feature_pardiso_legacy}{{4.3.2}{24}{\tt have\_feature\_pardiso\_legacy}{subsubsection.4.3.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.3}\tt have\_feature\_pardiso\_object}{24}{subsubsection.4.3.3}\protected@file@percent } +\newlabel{sec:have_feature_pardiso_object}{{4.3.3}{24}{\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}{}} +\@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\mbox {-}1}{\ignorespaces {MIPS}{} Files and Functions\relax }}{26}{table.caption.10}\protected@file@percent } +\newlabel{tab:files}{{A\mbox {-}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}{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 {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 } @@ -135,6 +132,8 @@ \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}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.11}Version 1.5 -- released Dec 12, 2022}{33}{subsection.1.C.11}\protected@file@percent } +\newlabel{app:v15}{{C.11}{33}{Version 1.5 -- released Dec 12, 2022}{subsection.1.C.11}{}} \bibcite{tspopf}{1} \bibcite{wang2007a}{2} \bibcite{wang2007}{3} @@ -145,5 +144,6 @@ \bibcite{bsd}{8} \bibcite{gpl}{9} \bibcite{pardiso}{10} -\@writefile{toc}{\contentsline {section}{References}{34}{section*.30}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{References}{34}{section*.31}\protected@file@percent } \bibcite{pardiso2}{11} +\gdef \@abspage@last{35} diff --git a/docs/src/MATPOWER-manual/MOST-manual.aux b/docs/src/MATPOWER-manual/MOST-manual.aux index 4a8b30ba..e43ce4df 100644 --- a/docs/src/MATPOWER-manual/MOST-manual.aux +++ b/docs/src/MATPOWER-manual/MOST-manual.aux @@ -2,13 +2,10 @@ \providecommand\hyper@newdestlabel[2]{} \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined -\global\let\oldcontentsline\contentsline -\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} \global\let\oldnewlabel\newlabel \gdef\newlabel#1#2{\newlabelxx{#1}#2} \gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} \AtEndDocument{\ifx\hyper@anchor\@undefined -\let\contentsline\oldcontentsline \let\newlabel\oldnewlabel \fi} \fi} @@ -45,8 +42,8 @@ \@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 } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.4}Setting Options}{15}{subsubsection.2.3.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Documentation}{15}{subsection.2.4}\protected@file@percent } \citation{superopf2008,murillo-sanchez2013} \citation{murillo-sanchez2013a} \citation{matpower_manual} @@ -55,31 +52,31 @@ \@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}\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{lof}{\contentsline {figure}{\numberline {3\mbox {-}1}{\ignorespaces MOST Continuous Single-Period Problems}}{17}{figure.3.1}\protected@file@percent } +\newlabel{fig:most_single_period}{{3\mbox {-}1}{17}{MOST Continuous Single-Period Problems}{figure.3.1}{}} \@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}\protected@file@percent } -\newlabel{fig:reserves_single_base}{{3\unhbox \voidb@x \hbox {-}3}{19}{Reserve Structure for Generator~$i$}{figure.3.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\mbox {-}2}{\ignorespaces Secure Dispatch Problem Structure}}{19}{figure.3.2}\protected@file@percent } +\newlabel{fig:secure_dispatch_structure}{{3\mbox {-}2}{19}{Secure Dispatch Problem Structure}{figure.3.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\mbox {-}3}{\ignorespaces Reserve Structure for Generator\nobreakspace {}$i$}}{19}{figure.3.3}\protected@file@percent } +\newlabel{fig:reserves_single_base}{{3\mbox {-}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}\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}\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{lof}{\contentsline {figure}{\numberline {3\mbox {-}4}{\ignorespaces Problem Structure with Multiple Base Scenarios}}{20}{figure.3.4}\protected@file@percent } +\newlabel{fig:structure_multi_scenario}{{3\mbox {-}4}{20}{Problem Structure with Multiple Base Scenarios}{figure.3.4}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\mbox {-}5}{\ignorespaces Reserve Structure for Generator\nobreakspace {}$i$ in Period\nobreakspace {}$t$}}{21}{figure.3.5}\protected@file@percent } +\newlabel{fig:reserves}{{3\mbox {-}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}\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}\protected@file@percent } -\newlabel{fig:storage}{{3\unhbox \voidb@x \hbox {-}7}{24}{Storage}{figure.3.7}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\mbox {-}6}{\ignorespaces Ramping and Load Following Ramp Reserves}}{23}{figure.3.6}\protected@file@percent } +\newlabel{fig:ramping}{{3\mbox {-}6}{23}{Ramping and Load Following Ramp Reserves}{figure.3.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\mbox {-}7}{\ignorespaces Storage}}{24}{figure.3.7}\protected@file@percent } +\newlabel{fig:storage}{{3\mbox {-}7}{24}{Storage}{figure.3.7}{}} \@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}\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{lof}{\contentsline {figure}{\numberline {3\mbox {-}8}{\ignorespaces Overall Problem Structure}}{26}{figure.3.8}\protected@file@percent } +\newlabel{fig:structure}{{3\mbox {-}8}{26}{Overall Problem Structure}{figure.3.8}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3\mbox {-}9}{\ignorespaces MOST Mixed Integer and Multi-Period Problems}}{27}{figure.3.9}\protected@file@percent } +\newlabel{fig:most_multi_period}{{3\mbox {-}9}{27}{MOST Mixed Integer and Multi-Period Problems}{figure.3.9}{}} \@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}\protected@file@percent } @@ -113,6 +110,7 @@ \newlabel{eq:inter1}{{4.26}{37}{Load-following Ramping Limits and Reserves}{equation.4.26}{}} \newlabel{eq:rampconstr}{{4.27}{37}{Load-following Ramping Limits and Reserves}{equation.4.27}{}} \newlabel{eq:storage1st}{{4.33}{38}{Storage Constraints}{equation.4.33}{}} +\newlabel{eq:storage2nd}{{4.34}{38}{Storage Constraints}{equation.4.34}{}} \newlabel{eq:storagecontingencylast}{{4.36}{38}{Storage Constraints}{equation.4.36}{}} \newlabel{eq:sftarget}{{4.37}{38}{Storage Constraints}{equation.4.37}{}} \newlabel{eq:sfequals0}{{4.38}{38}{Storage Constraints}{equation.4.38}{}} @@ -150,8 +148,8 @@ \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}\protected@file@percent } -\newlabel{tab:fivepricemodel}{{4\unhbox \voidb@x \hbox {-}1}{48}{Five Price Model}{table.4.1}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}1}{\ignorespaces Five Price Model}}{48}{table.4.1}\protected@file@percent } +\newlabel{tab:fivepricemodel}{{4\mbox {-}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}{}} @@ -161,67 +159,69 @@ \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}\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}\protected@file@percent } -\newlabel{fig:loadmd}{{5\unhbox \voidb@x \hbox {-}1}{52}{Assembling the \md {}}{figure.5.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5\mbox {-}1}{\ignorespaces Assembling the {{MOST}{} Data struct}{}}}{52}{figure.5.1}\protected@file@percent } +\newlabel{fig:loadmd}{{5\mbox {-}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}\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}\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}\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{lot}{\contentsline {table}{\numberline {5\mbox {-}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\mbox {-}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}\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}\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}\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{lot}{\contentsline {table}{\numberline {5\mbox {-}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\mbox {-}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}\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}\protected@file@percent } -\newlabel{tab:profile}{{5\unhbox \voidb@x \hbox {-}3}{57}{Fields of Profle Struct (\code {profile})}{table.5.3}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}3}{\ignorespaces Fields of Profle Struct ({\relsize {-0.5}{\tt {{profile}}}})}}{57}{table.5.3}\protected@file@percent } +\newlabel{tab:profile}{{5\mbox {-}3}{57}{Fields of Profle Struct (\code {profile})}{table.5.3}{}} \@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}\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}\protected@file@percent } -\newlabel{tab:mostmodeloptions}{{5\unhbox \voidb@x \hbox {-}5}{59}{\most {} Model Options}{table.5.5}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}4}{\ignorespaces {MOST}{} Run Options}}{58}{table.5.4}\protected@file@percent } +\newlabel{tab:mostrunoptions}{{5\mbox {-}4}{58}{\most {} Run Options}{table.5.4}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}5}{\ignorespaces {MOST}{} Model Options}}{59}{table.5.5}\protected@file@percent } +\newlabel{tab:mostmodeloptions}{{5\mbox {-}5}{59}{\most {} Model Options}{table.5.5}{}} \@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}\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}\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}\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}\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}\protected@file@percent } -\newlabel{tab:md_inputstorage}{{5\unhbox \voidb@x \hbox {-}9}{64}{Input Fields of \code {md.Storage}}{table.5.9}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}6}{\ignorespaces Input Data Fields of {\relsize {-0.5}{\tt {{md}}}}}}{61}{table.5.6}\protected@file@percent } +\newlabel{tab:md_inputs}{{5\mbox {-}6}{61}{Input Data Fields of \code {md}}{table.5.6}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}7}{\ignorespaces Additional Input Data Fields of {\relsize {-0.5}{\tt {{md}}}}}}{62}{table.5.7}\protected@file@percent } +\newlabel{tab:md_inputs2}{{5\mbox {-}7}{62}{Additional Input Data Fields of \code {md}}{table.5.7}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}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\mbox {-}8}{63}{Fields of Offer struct \code {md.offer(t)}}{table.5.8}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}9}{\ignorespaces Input Fields of {\relsize {-0.5}{\tt {{md.Storage}}}}}}{64}{table.5.9}\protected@file@percent } +\newlabel{tab:md_inputstorage}{{5\mbox {-}9}{64}{Input Fields of \code {md.Storage}}{table.5.9}{}} +\citation{guo2021,chen2021,chen2022} \@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}\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}\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}\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}\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{lot}{\contentsline {table}{\numberline {5\mbox {-}10}{\ignorespaces Output Data Fields of {\relsize {-0.5}{\tt {{md}}}}}}{66}{table.5.10}\protected@file@percent } +\newlabel{tab:md_outputs}{{5\mbox {-}10}{66}{Output Data Fields of \code {md}}{table.5.10}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}11}{\ignorespaces Fields of Index struct {\relsize {-0.5}{\tt {{md.idx}}}}}}{67}{table.5.11}\protected@file@percent } +\newlabel{tab:md_inputidx}{{5\mbox {-}11}{67}{Fields of Index struct \code {md.idx}}{table.5.11}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}12}{\ignorespaces Fields of QP struct {\relsize {-0.5}{\tt {{md.QP}}}}}}{68}{table.5.12}\protected@file@percent } +\newlabel{tab:md_qp}{{5\mbox {-}12}{68}{Fields of QP struct \code {md.QP}}{table.5.12}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}13}{\ignorespaces Fields of Results struct {\relsize {-0.5}{\tt {{md.results}}}}}}{69}{table.5.13}\protected@file@percent } +\newlabel{tab:md_results}{{5\mbox {-}13}{69}{Fields of Results struct \code {md.results}}{table.5.13}{}} +\@writefile{brf}{\backcite{guo2021, chen2021, chen2022}{{69}{5\mbox {-}13}{table.5.13}}} \@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}\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}\protected@file@percent } -\newlabel{tab:gen_types}{{6\unhbox \voidb@x \hbox {-}1}{71}{Typical Generator Types}{table.6.1}{}} +\@writefile{lot}{\contentsline {table}{\numberline {6\mbox {-}1}{\ignorespaces Typical Generator Types}}{71}{table.6.1}\protected@file@percent } +\newlabel{tab:gen_types}{{6\mbox {-}1}{71}{Typical Generator Types}{table.6.1}{}} \@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}\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{lot}{\contentsline {table}{\numberline {6\mbox {-}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\mbox {-}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}\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}\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{lot}{\contentsline {table}{\numberline {6\mbox {-}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\mbox {-}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}\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}\protected@file@percent } @@ -232,30 +232,30 @@ \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}\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}\protected@file@percent } -\newlabel{tab:idx_profile}{{6\unhbox \voidb@x \hbox {-}4}{75}{Constants Defined by \code {idx\_profile}}{table.6.4}{}} +\@writefile{lot}{\contentsline {table}{\numberline {6\mbox {-}4}{\ignorespaces Constants Defined by {\relsize {-0.5}{\tt {{idx\_profile}}}}}}{75}{table.6.4}\protected@file@percent } +\newlabel{tab:idx_profile}{{6\mbox {-}4}{75}{Constants Defined by \code {idx\_profile}}{table.6.4}{}} \@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}\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}\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{lot}{\contentsline {table}{\numberline {6\mbox {-}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\mbox {-}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}\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}\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{lot}{\contentsline {table}{\numberline {6\mbox {-}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\mbox {-}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}\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}\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{lot}{\contentsline {table}{\numberline {6\mbox {-}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\mbox {-}7}{79}{Fields of \code {most\_summary} struct (\code {ms})}{table.6.7}{}} \@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{lot}{\contentsline {table}{\numberline {7\mbox {-}1}{\ignorespaces Summary of Tutorial Example System Data}}{81}{table.7.1}\protected@file@percent } +\newlabel{tab:threebus}{{7\mbox {-}1}{81}{Summary of Tutorial Example System Data}{table.7.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}1}{\ignorespaces Tutorial Example System}}{82}{figure.7.1}\protected@file@percent } +\newlabel{fig:threebus}{{7\mbox {-}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}{}} @@ -272,54 +272,54 @@ \@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{lof}{\contentsline {figure}{\numberline {7\mbox {-}2}{\ignorespaces Example Load and Wind Profiles}}{90}{figure.7.2}\protected@file@percent } +\newlabel{fig:load_wind_profiles}{{7\mbox {-}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{lof}{\contentsline {figure}{\numberline {7\mbox {-}3}{\ignorespaces Deterministic UC : Base Case with No Network}}{93}{figure.7.3}\protected@file@percent } +\newlabel{fig:uc_ex_1}{{7\mbox {-}3}{93}{Deterministic UC : Base Case with No Network}{figure.7.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}4}{\ignorespaces Deterministic UC : Add DC Network Model}}{94}{figure.7.4}\protected@file@percent } +\newlabel{fig:uc_ex_2}{{7\mbox {-}4}{94}{Deterministic UC : Add DC Network Model}{figure.7.4}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}5}{\ignorespaces Deterministic UC : Add Startup and Shutdown Costs}}{95}{figure.7.5}\protected@file@percent } +\newlabel{fig:uc_ex_3}{{7\mbox {-}5}{95}{Deterministic UC : Add Startup and Shutdown Costs}{figure.7.5}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}6}{\ignorespaces Deterministic UC : Add Min Up/Down Time Constraints}}{97}{figure.7.6}\protected@file@percent } +\newlabel{fig:uc_ex_4}{{7\mbox {-}6}{97}{Deterministic UC : Add Min Up/Down Time Constraints}{figure.7.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}7}{\ignorespaces Deterministic UC : Add Ramp Constraints and Ramp Reserve Costs}}{98}{figure.7.7}\protected@file@percent } +\newlabel{fig:uc_ex_5}{{7\mbox {-}7}{98}{Deterministic UC : Add Ramp Constraints and Ramp Reserve Costs}{figure.7.7}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}8}{\ignorespaces Deterministic UC : Add Storage}}{99}{figure.7.8}\protected@file@percent } +\newlabel{fig:uc_ex_6}{{7\mbox {-}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{lof}{\contentsline {figure}{\numberline {7\mbox {-}9}{\ignorespaces Example Wind Profiles, Individual Trajectories}}{101}{figure.7.9}\protected@file@percent } +\newlabel{fig:wind_profile_1}{{7\mbox {-}9}{101}{Example Wind Profiles, Individual Trajectories}{figure.7.9}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}10}{\ignorespaces Stochastic UC : Individual Trajectories}}{102}{figure.7.10}\protected@file@percent } +\newlabel{fig:suc_ex_2}{{7\mbox {-}10}{102}{Stochastic UC : Individual Trajectories}{figure.7.10}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}11}{\ignorespaces Example Wind Profiles, Full Transition Probabilities}}{103}{figure.7.11}\protected@file@percent } +\newlabel{fig:wind_profile_2}{{7\mbox {-}11}{103}{Example Wind Profiles, Full Transition Probabilities}{figure.7.11}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}12}{\ignorespaces Stochastic UC : Full Transition Probabilities}}{104}{figure.7.12}\protected@file@percent } +\newlabel{fig:suc_ex_3}{{7\mbox {-}12}{104}{Stochastic UC : Full Transition Probabilities}{figure.7.12}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}13}{\ignorespaces Secure Stochastic UC : Full Transition Probabilities + Contingencies}}{105}{figure.7.13}\protected@file@percent } +\newlabel{fig:suc_ex_4}{{7\mbox {-}13}{105}{Secure Stochastic UC : Full Transition Probabilities + Contingencies}{figure.7.13}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7\mbox {-}14}{\ignorespaces Secure Stochastic UC with Storage}}{106}{figure.7.14}\protected@file@percent } +\newlabel{fig:suc_ex_5}{{7\mbox {-}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 {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{lot}{\contentsline {table}{\numberline {A\mbox {-}1}{\ignorespaces {MOST}{} Documentation Files}}{108}{table.1.A.1}\protected@file@percent } +\newlabel{tab:mostdocfiles}{{A\mbox {-}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{lot}{\contentsline {table}{\numberline {A\mbox {-}2}{\ignorespaces {MOST}{} Functions}}{109}{table.1.A.2}\protected@file@percent } +\newlabel{tab:mostsw}{{A\mbox {-}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{lot}{\contentsline {table}{\numberline {A\mbox {-}3}{\ignorespaces {MOST}{} Test and Example Data}}{110}{table.1.A.3}\protected@file@percent } +\newlabel{tab:mosttestdata}{{A\mbox {-}3}{110}{\most {} Test and Example Data}{table.1.A.3}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}4}{\ignorespaces {MOST}{} Tests}}{111}{table.1.A.4}\protected@file@percent } +\newlabel{tab:mosttests}{{A\mbox {-}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 } @@ -328,6 +328,10 @@ \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}{}} +\citation{guo2021,chen2021,chen2022} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.5}Version 1.2 -- released Dec 13, 2022}{115}{subsection.1.B.5}\protected@file@percent } +\newlabel{app:v12}{{B.5}{115}{Version 1.2 -- released Dec 13, 2022}{subsection.1.B.5}{}} +\@writefile{brf}{\backcite{guo2021,chen2021,chen2022}{{115}{B.5}{section*.34}}} \bibcite{zimmerman2011}{1} \bibcite{matpower}{2} \bibcite{matpower_manual}{3} @@ -337,5 +341,9 @@ \bibcite{bsd}{7} \bibcite{most_manual}{8} \bibcite{superopf2008}{9} -\@writefile{toc}{\contentsline {section}{References}{115}{section*.34}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{References}{117}{section*.37}\protected@file@percent } \bibcite{murillo-sanchez2013}{10} +\bibcite{guo2021}{11} +\bibcite{chen2021}{12} +\bibcite{chen2022}{13} +\gdef \@abspage@last{118} diff --git a/docs/src/MATPOWER-manual/MP-Opt-Model-manual.aux b/docs/src/MATPOWER-manual/MP-Opt-Model-manual.aux index a81356bf..f374c226 100644 --- a/docs/src/MATPOWER-manual/MP-Opt-Model-manual.aux +++ b/docs/src/MATPOWER-manual/MP-Opt-Model-manual.aux @@ -2,13 +2,10 @@ \providecommand\hyper@newdestlabel[2]{} \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined -\global\let\oldcontentsline\contentsline -\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} \global\let\oldnewlabel\newlabel \gdef\newlabel#1#2{\newlabelxx{#1}#2} \gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} \AtEndDocument{\ifx\hyper@anchor\@undefined -\let\contentsline\oldcontentsline \let\newlabel\oldnewlabel \fi} \fi} @@ -18,316 +15,372 @@ \providecommand\HyField@AuxAddToCoFields[2]{} \citation{octave} \citation{zimmerman2011,matpower} -\@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}}} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{8}{section.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Background}{8}{subsection.1.1}\protected@file@percent } +\@writefile{brf}{\backcite{zimmerman2011,matpower}{{8}{1.1}{subsection.1.1}}} +\@writefile{brf}{\backcite{octave}{{8}{1}{subsection.1.1}}} \citation{bsd} -\@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}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}License and Terms of Use}{9}{subsection.1.2}\protected@file@percent } +\@writefile{brf}{\backcite{bsd}{{9}{1.2}{subsection.1.2}}} \citation{mpom_manual} -\@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}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Citing \mbox {MP-Opt-Model}{}}{10}{subsection.1.3}\protected@file@percent } +\@writefile{brf}{\backcite{mpom_manual}{{10}{1.3}{subsection.1.3}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}\mbox {MP-Opt-Model}{} Development}{10}{subsection.1.4}\protected@file@percent } +\newlabel{sec:development}{{1.4}{10}{\mpom {} Development}{subsection.1.4}{}} \citation{octave} \citation{wang2007a,mips_manual} -\@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 } +\@writefile{toc}{\contentsline {section}{\numberline {2}Getting Started}{11}{section.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}System Requirements}{11}{subsection.2.1}\protected@file@percent } +\newlabel{sec:sysreq}{{2.1}{11}{System Requirements}{subsection.2.1}{}} +\@writefile{brf}{\backcite{wang2007a, mips_manual}{{11}{2.1}{subsection.2.1}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Installation}{11}{subsection.2.2}\protected@file@percent } +\newlabel{sec:installation}{{2.2}{11}{Installation}{subsection.2.2}{}} +\@writefile{brf}{\backcite{octave}{{11}{4}{subsection.2.1}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Sample Usage}{12}{subsection.2.3}\protected@file@percent } +\newlabel{sec:usage}{{2.3}{12}{Sample Usage}{subsection.2.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Documentation}{15}{subsection.2.4}\protected@file@percent } +\newlabel{sec:documentation}{{2.4}{15}{Documentation}{subsection.2.4}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3}\mbox {MP-Opt-Model}{} -- Overview}{16}{section.3}\protected@file@percent } +\newlabel{sec:mpom}{{3}{16}{\mpom {} -- Overview}{section.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4}Solver Interface Functions}{17}{section.4}\protected@file@percent } +\newlabel{sec:master_solvers}{{4}{17}{Solver Interface Functions}{section.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}LP/QP Solvers -- {\tt qps\_master}}{17}{subsection.4.1}\protected@file@percent } +\newlabel{sec:qps_master}{{4.1}{17}{LP/QP Solvers -- {\tt qps\_master}}{subsection.4.1}{}} +\newlabel{eq:LPobj}{{4.1}{17}{LP/QP Solvers -- {\tt qps\_master}}{equation.4.1}{}} +\newlabel{eq:LPvarbounds}{{4.3}{17}{LP/QP Solvers -- {\tt qps\_master}}{equation.4.2}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}1}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{qps\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{18}{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}{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}{}} +\newlabel{tab:qps_master_input}{{4\mbox {-}1}{18}{Input Arguments for \code {qps\_master}\tnote {\dag }\relax }{table.caption.4}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}2}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{qps\_master}}}}\relax }}{18}{table.caption.6}\protected@file@percent } +\newlabel{tab:qps_master_output}{{4\mbox {-}2}{18}{Output Arguments for \code {qps\_master}\relax }{table.caption.6}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}3}{\ignorespaces Options for {\relsize {-0.5}{\tt {{qps\_master}}}}\relax }}{19}{table.caption.8}\protected@file@percent } +\newlabel{tab:qps_master_options}{{4\mbox {-}3}{19}{Options for \code {qps\_master}\relax }{table.caption.8}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}QP Example}{20}{subsubsection.4.1.1}\protected@file@percent } +\newlabel{sec:qp_ex}{{4.1.1}{20}{QP Example}{subsubsection.4.1.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}MILP/MIQP Solvers -- {\tt miqps\_master}}{21}{subsection.4.2}\protected@file@percent } +\newlabel{sec:miqps_master}{{4.2}{21}{MILP/MIQP Solvers -- {\tt miqps\_master}}{subsection.4.2}{}} +\newlabel{eq:mi_integer}{{4.4}{21}{MILP/MIQP Solvers -- {\tt miqps\_master}}{equation.4.4}{}} +\newlabel{eq:mi_binary}{{4.5}{21}{MILP/MIQP Solvers -- {\tt miqps\_master}}{equation.4.5}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}4}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{miqps\_master}}}}\relax }}{21}{table.caption.10}\protected@file@percent } +\newlabel{tab:miqps_master_input}{{4\mbox {-}4}{21}{Input Arguments for \code {miqps\_master}\relax }{table.caption.10}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}5}{\ignorespaces Options for {\relsize {-0.5}{\tt {{miqps\_master}}}}\relax }}{22}{table.caption.12}\protected@file@percent } +\newlabel{tab:miqps_master_options}{{4\mbox {-}5}{22}{Options for \code {miqps\_master}\relax }{table.caption.12}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}MILP Example}{23}{subsubsection.4.2.1}\protected@file@percent } +\newlabel{sec:milp_ex}{{4.2.1}{23}{MILP Example}{subsubsection.4.2.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}NLP Solvers -- {\tt nlps\_master}}{23}{subsection.4.3}\protected@file@percent } +\newlabel{sec:nlps_master}{{4.3}{23}{NLP Solvers -- {\tt nlps\_master}}{subsection.4.3}{}} +\newlabel{eq:nlp_obj}{{4.6}{23}{NLP Solvers -- {\tt nlps\_master}}{equation.4.6}{}} +\newlabel{eq:nlp_g}{{4.7}{23}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} +\newlabel{eq:nlp_h}{{4.8}{23}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} +\newlabel{eq:nlp_linear_constraints}{{4.9}{23}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} +\newlabel{eq:nlp_var_bounds}{{4.10}{23}{NLP Solvers -- {\tt nlps\_master}}{equation.4.7}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}6}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{nlps\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{24}{table.caption.14}\protected@file@percent } +\newlabel{tab:nlps_master_input}{{4\mbox {-}6}{24}{Input Arguments for \code {nlps\_master}\tnote {\dag }\relax }{table.caption.14}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}7}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{nlps\_master}}}}\relax }}{25}{table.caption.16}\protected@file@percent } +\newlabel{tab:nlps_master_output}{{4\mbox {-}7}{25}{Output Arguments for \code {nlps\_master}\relax }{table.caption.16}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}8}{\ignorespaces Options for {\relsize {-0.5}{\tt {{nlps\_master}}}}\relax }}{25}{table.caption.18}\protected@file@percent } +\newlabel{tab:nlps_master_options}{{4\mbox {-}8}{25}{Options for \code {nlps\_master}\relax }{table.caption.18}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}NLP Example 1}{26}{subsubsection.4.3.1}\protected@file@percent } +\newlabel{sec:nlp_ex1}{{4.3.1}{26}{NLP Example 1}{subsubsection.4.3.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}NLP Example 2}{27}{subsubsection.4.3.2}\protected@file@percent } +\newlabel{sec:nlp_ex2}{{4.3.2}{27}{NLP Example 2}{subsubsection.4.3.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Nonlinear Equation Solvers -- {\tt nleqs\_master}}{30}{subsection.4.4}\protected@file@percent } +\newlabel{sec:nleqs_master}{{4.4}{30}{Nonlinear Equation Solvers -- {\tt nleqs\_master}}{subsection.4.4}{}} +\newlabel{eq:nleq}{{4.16}{30}{Nonlinear Equation Solvers -- {\tt nleqs\_master}}{equation.4.16}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}9}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{nleqs\_master}}}}\relax }}{31}{table.caption.20}\protected@file@percent } +\newlabel{tab:nleqs_master_input}{{4\mbox {-}9}{31}{Input Arguments for \code {nleqs\_master}\relax }{table.caption.20}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}10}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{nleqs\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{32}{table.caption.22}\protected@file@percent } +\newlabel{tab:nleqs_master_output}{{4\mbox {-}10}{32}{Output Arguments for \code {nleqs\_master}\tnote {\dag }\relax }{table.caption.22}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1}NLEQ Example 1}{32}{subsubsection.4.4.1}\protected@file@percent } +\newlabel{sec:nleq_ex1}{{4.4.1}{32}{NLEQ Example 1}{subsubsection.4.4.1}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}11}{\ignorespaces Options for {\relsize {-0.5}{\tt {{nleqs\_master}}}}\relax }}{33}{table.caption.24}\protected@file@percent } +\newlabel{tab:nleqs_master_options}{{4\mbox {-}11}{33}{Options for \code {nleqs\_master}\relax }{table.caption.24}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.2}NLEQ Example 2}{35}{subsubsection.4.4.2}\protected@file@percent } +\newlabel{sec:nleq_ex2}{{4.4.2}{35}{NLEQ Example 2}{subsubsection.4.4.2}{}} +\citation{allgower2003} +\citation{chiang1995,li2008} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Parameterized Nonlinear Equation Solver -- {\tt pnes\_master}}{39}{subsection.4.5}\protected@file@percent } +\newlabel{sec:pnes_master}{{4.5}{39}{Parameterized Nonlinear Equation Solver -- {\tt pnes\_master}}{subsection.4.5}{}} +\newlabel{eq:pne}{{4.19}{39}{Parameterized Nonlinear Equation Solver -- {\tt pnes\_master}}{equation.4.19}{}} +\newlabel{eq:pne_x}{{4.20}{39}{Parameterized Nonlinear Equation Solver -- {\tt pnes\_master}}{equation.4.20}{}} +\newlabel{eq:pne_fx}{{4.21}{39}{Parameterized Nonlinear Equation Solver -- {\tt pnes\_master}}{equation.4.21}{}} +\@writefile{brf}{\backcite{allgower2003}{{39}{4.5}{equation.4.21}}} +\newlabel{eq:pccm}{{4.22}{39}{Parameterized Nonlinear Equation Solver -- {\tt pnes\_master}}{equation.4.22}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.1}Parameterization}{39}{subsubsection.4.5.1}\protected@file@percent } +\@writefile{brf}{\backcite{chiang1995, li2008}{{39}{4.5.1}{subsubsection.4.5.1}}} +\citation{mori2002} +\newlabel{eq:natural_parm}{{4.23}{40}{Parameterization}{equation.4.23}{}} +\newlabel{eq:arc_parm}{{4.24}{40}{Parameterization}{equation.4.24}{}} +\@writefile{brf}{\backcite{mori2002}{{40}{4.5.1}{equation.4.24}}} +\newlabel{eq:psuedo_arc_parm}{{4.25}{40}{Parameterization}{equation.4.25}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2}Predictor}{40}{subsubsection.4.5.2}\protected@file@percent } +\newlabel{eq:tangent_predictor}{{4.26}{40}{Predictor}{equation.4.26}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.3}Corrector}{41}{subsubsection.4.5.3}\protected@file@percent } +\newlabel{eq:corrector}{{4.29}{41}{Corrector}{equation.4.29}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.4}Step Length Control}{41}{subsubsection.4.5.4}\protected@file@percent } +\newlabel{eq:step_adapt1}{{4.30}{41}{Step Length Control}{equation.4.30}{}} +\newlabel{eq:step_adapt2}{{4.31}{41}{Step Length Control}{equation.4.31}{}} +\newlabel{eq:step_adapt3}{{4.32}{41}{Step Length Control}{equation.4.32}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.5}Event Detection and Location}{42}{subsubsection.4.5.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.6}Callback Functions}{42}{subsubsection.4.5.6}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}12}{\ignorespaces Callback Input Arguments\relax }}{43}{table.caption.26}\protected@file@percent } +\newlabel{tab:pne_callback_in}{{4\mbox {-}12}{43}{Callback Input Arguments\relax }{table.caption.26}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}13}{\ignorespaces Callback Output Arguments\relax }}{44}{table.caption.28}\protected@file@percent } +\newlabel{tab:pne_callback_out}{{4\mbox {-}13}{44}{Callback Output Arguments\relax }{table.caption.28}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}14}{\ignorespaces Fields of Continuation State Struct\relax }}{44}{table.caption.30}\protected@file@percent } +\newlabel{tab:pne_state}{{4\mbox {-}14}{44}{Fields of Continuation State Struct\relax }{table.caption.30}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.7}\tt pnes\_master}{46}{subsubsection.4.5.7}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}15}{\ignorespaces Input Arguments for {\relsize {-0.5}{\tt {{pnes\_master}}}}\relax }}{46}{table.caption.32}\protected@file@percent } +\newlabel{tab:pnes_master_input}{{4\mbox {-}15}{46}{Input Arguments for \code {pnes\_master}\relax }{table.caption.32}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}16}{\ignorespaces Output Arguments for {\relsize {-0.5}{\tt {{pnes\_master}}}}\TPToverlap {\textsuperscript {\dag }}\relax }}{47}{table.caption.34}\protected@file@percent } +\newlabel{tab:pnes_master_output}{{4\mbox {-}16}{47}{Output Arguments for \code {pnes\_master}\tnote {\dag }\relax }{table.caption.34}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}17}{\ignorespaces Options for {\relsize {-0.5}{\tt {{pnes\_master}}}}\relax }}{48}{table.caption.36}\protected@file@percent } +\newlabel{tab:pnes_master_options}{{4\mbox {-}17}{48}{Options for \code {pnes\_master}\relax }{table.caption.36}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}18}{\ignorespaces Plot Options for {\relsize {-0.5}{\tt {{pnes\_master}}}}\TPToverlap {\textsuperscript {*}}\relax }}{49}{table.caption.38}\protected@file@percent } +\newlabel{tab:pnes_master_plot_opts}{{4\mbox {-}18}{49}{Plot Options for \code {pnes\_master}\tnote {*}\relax }{table.caption.38}{}} +\@writefile{lot}{\contentsline {table}{\numberline {4\mbox {-}19}{\ignorespaces Warm-start Data for {\relsize {-0.5}{\tt {{pnes\_master}}}}\TPToverlap {\textsuperscript {*}}\relax }}{50}{table.caption.40}\protected@file@percent } +\newlabel{tab:pnes_master_warmstart}{{4\mbox {-}19}{50}{Warm-start Data for \code {pnes\_master}\tnote {*}\relax }{table.caption.40}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.8}PNE Example}{51}{subsubsection.4.5.8}\protected@file@percent } +\newlabel{sec:pne_ex}{{4.5.8}{51}{PNE Example}{subsubsection.4.5.8}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {4\mbox {-}1}{\ignorespaces Continuation Curve for PNE Example\relax }}{52}{figure.caption.41}\protected@file@percent } +\newlabel{fig:pne_ex1}{{4\mbox {-}1}{52}{Continuation Curve for PNE Example\relax }{figure.caption.41}{}} +\@writefile{toc}{\contentsline {section}{\numberline {5}Optimization Model Class -- {\tt opt\_model}}{54}{section.5}\protected@file@percent } +\newlabel{sec:opt_model}{{5}{54}{Optimization Model Class -- {\tt opt\_model}}{section.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Adding Variables}{54}{subsection.5.1}\protected@file@percent } +\newlabel{sec:add_var}{{5.1}{54}{Adding Variables}{subsection.5.1}{}} +\newlabel{eq:x}{{5.1}{55}{Adding Variables}{equation.5.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.1}Variable Subsets}{55}{subsubsection.5.1.1}\protected@file@percent } +\newlabel{sec:varsets}{{5.1.1}{55}{Variable Subsets}{subsubsection.5.1.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Adding Constraints}{56}{subsection.5.2}\protected@file@percent } +\newlabel{sec:constraint}{{5.2}{56}{Adding Constraints}{subsection.5.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Linear Constraints}{56}{subsubsection.5.2.1}\protected@file@percent } +\newlabel{sec:add_lin_constraint}{{5.2.1}{56}{Linear Constraints}{subsubsection.5.2.1}{}} +\newlabel{eq:linear_constraints}{{5.2}{56}{Linear Constraints}{equation.5.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}General Nonlinear Constraints}{57}{subsubsection.5.2.2}\protected@file@percent } +\newlabel{sec:add_nln_constraint}{{5.2.2}{57}{General Nonlinear Constraints}{subsubsection.5.2.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Adding Costs}{58}{subsection.5.3}\protected@file@percent } +\newlabel{sec:add_cost}{{5.3}{58}{Adding Costs}{subsection.5.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Quadratic Costs}{59}{subsubsection.5.3.1}\protected@file@percent } +\newlabel{sec:add_quad_cost}{{5.3.1}{59}{Quadratic Costs}{subsubsection.5.3.1}{}} +\newlabel{eq:quad_cost}{{5.11}{59}{Quadratic Costs}{equation.5.11}{}} +\newlabel{eq:quad_cost2}{{5.12}{59}{Quadratic Costs}{equation.5.12}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2}General Nonlinear Costs}{60}{subsubsection.5.3.2}\protected@file@percent } +\newlabel{sec:add_nln_cost}{{5.3.2}{60}{General Nonlinear Costs}{subsubsection.5.3.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Solving the Model}{61}{subsection.5.4}\protected@file@percent } +\newlabel{sec:solve}{{5.4}{61}{Solving the Model}{subsection.5.4}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}1}{\ignorespaces Options for {\relsize {-0.5}{\tt {{solve}}}}\relax }}{62}{table.caption.43}\protected@file@percent } +\newlabel{tab:solve_options}{{5\mbox {-}1}{62}{Options for \code {solve}\relax }{table.caption.43}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}2}{\ignorespaces Values for {\relsize {-0.5}{\tt {{alg}}}} Option to {\relsize {-0.5}{\tt {{solve}}}}\relax }}{63}{table.caption.45}\protected@file@percent } +\newlabel{tab:solve_alg_option}{{5\mbox {-}2}{63}{Values for \code {alg} Option to \code {solve}\relax }{table.caption.45}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}Accessing the Model}{63}{subsection.5.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.1}Indexing}{63}{subsubsection.5.5.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}3}{\ignorespaces Example Indexing Data\relax }}{64}{table.caption.47}\protected@file@percent } +\newlabel{tab:vv}{{5\mbox {-}3}{64}{Example Indexing Data\relax }{table.caption.47}{}} +\newlabel{sec:get_idx}{{5.5.1}{64}{\code {get\_idx}}{section*.48}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}4}{\ignorespaces Valid Set Types\relax }}{65}{table.caption.50}\protected@file@percent } +\newlabel{tab:set_types}{{5\mbox {-}4}{65}{Valid Set Types\relax }{table.caption.50}{}} +\newlabel{sec:set_type_idx_map}{{5.5.1}{65}{\code {set\_type\_idx\_map}}{section*.52}{}} +\newlabel{sec:describe_idx}{{5.5.1}{67}{\code {describe\_idx}}{section*.53}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.2}Variables}{68}{subsubsection.5.5.2}\protected@file@percent } +\newlabel{sec:params_var}{{5.5.2}{68}{\code {params\_var}}{section*.54}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.3}Constraints}{69}{subsubsection.5.5.3}\protected@file@percent } +\newlabel{sec:eval_lin_constraint}{{5.5.3}{70}{\code {eval\_lin\_constraint}}{section*.57}{}} +\newlabel{sec:eval_nln_constraint}{{5.5.3}{70}{\code {eval\_nln\_constraint}}{section*.58}{}} +\newlabel{sec:eval_nln_constraint_hess}{{5.5.3}{71}{\code {eval\_nln\_constraint\_hess}}{section*.59}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.4}Costs}{71}{subsubsection.5.5.4}\protected@file@percent } +\newlabel{sec:eval_quad_cost}{{5.5.4}{72}{\code {eval\_quad\_cost}}{section*.62}{}} +\newlabel{sec:eval_nln_cost}{{5.5.4}{73}{\code {eval\_nln\_cost}}{section*.63}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.5}Model Solution}{73}{subsubsection.5.5.5}\protected@file@percent } +\newlabel{sec:soln}{{5.5.5}{73}{Model Solution}{subsubsection.5.5.5}{}} +\newlabel{sec:get_soln}{{5.5.5}{73}{\code {get\_soln}}{section*.66}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}5}{\ignorespaces Model Solution\relax }}{74}{table.caption.65}\protected@file@percent } +\newlabel{tab:soln}{{5\mbox {-}5}{74}{Model Solution\relax }{table.caption.65}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}6}{\ignorespaces Inputs for {\relsize {-0.5}{\tt {{get\_soln}}}}\relax }}{75}{table.caption.69}\protected@file@percent } +\newlabel{tab:get_soln}{{5\mbox {-}6}{75}{Inputs for \code {get\_soln}\relax }{table.caption.69}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}7}{\ignorespaces Values of {\relsize {-0.5}{\tt {{tags}}}} input to {\relsize {-0.5}{\tt {{get\_soln}}}}\relax }}{76}{table.caption.71}\protected@file@percent } +\newlabel{tab:get_soln_tags}{{5\mbox {-}7}{76}{Values of \code {tags} input to \code {get\_soln}\relax }{table.caption.71}{}} +\newlabel{sec:parse_soln}{{5.5.5}{77}{\code {parse\_soln}}{section*.72}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}8}{\ignorespaces Output of {\relsize {-0.5}{\tt {{parse\_soln}}}}\relax }}{77}{table.caption.74}\protected@file@percent } +\newlabel{tab:parse_soln}{{5\mbox {-}8}{77}{Output of \code {parse\_soln}\relax }{table.caption.74}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.6}Modifying the Model}{78}{subsection.5.6}\protected@file@percent } +\newlabel{sec:modifying}{{5.6}{78}{Modifying the Model}{subsection.5.6}{}} +\newlabel{sec:set_params}{{5.6}{78}{\code {set\_params}}{section*.75}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}9}{\ignorespaces Inputs for {\relsize {-0.5}{\tt {{set\_params}}}}\relax }}{78}{table.caption.78}\protected@file@percent } +\newlabel{tab:set_params}{{5\mbox {-}9}{78}{Inputs for \code {set\_params}\relax }{table.caption.78}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.7}Indexed Sets}{79}{subsection.5.7}\protected@file@percent } +\newlabel{sec:indexed_sets}{{5.7}{79}{Indexed Sets}{subsection.5.7}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.8}Miscellaneous Methods}{80}{subsection.5.8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.8.1}Public Methods}{80}{subsubsection.5.8.1}\protected@file@percent } +\newlabel{sec:display}{{5.8.1}{81}{\code {display}}{section*.83}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.8.2}Private Methods}{83}{subsubsection.5.8.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.9}{\sc Matpower}{} Index Manager Base Class -- {\tt mp\_idx\_manager}}{83}{subsection.5.9}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}10}{\ignorespaces {\sc Matpower}{} Index Manager ({\relsize {-0.5}{\tt {{mp\_idx\_manager}}}}) Properties and Methods\relax }}{84}{table.caption.94}\protected@file@percent } +\newlabel{tab:mp_idx_manager2}{{5\mbox {-}10}{84}{\matpower {} Index Manager (\code {mp\_idx\_manager}) Properties and Methods\relax }{table.caption.94}{}} +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}11}{\ignorespaces {\sc Matpower}{} Index Manager ({\relsize {-0.5}{\tt {{mp\_idx\_manager}}}}) Object Structure\relax }}{85}{table.caption.96}\protected@file@percent } +\newlabel{tab:obj_structure}{{5\mbox {-}11}{85}{\matpower {} Index Manager (\code {mp\_idx\_manager}) Object Structure\relax }{table.caption.96}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.10}Reference}{86}{subsection.5.10}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.10.1}Properties}{86}{subsubsection.5.10.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}12}{\ignorespaces {\relsize {-0.5}{\tt {{opt\_model}}}} Properties\relax }}{86}{table.caption.98}\protected@file@percent } +\newlabel{tab:properties}{{5\mbox {-}12}{86}{\code {opt\_model} Properties\relax }{table.caption.98}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.10.2}Methods}{86}{subsubsection.5.10.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5\mbox {-}13}{\ignorespaces {\relsize {-0.5}{\tt {{opt\_model}}}} Methods\relax }}{87}{table.caption.100}\protected@file@percent } +\newlabel{tab:methods}{{5\mbox {-}13}{87}{\code {opt\_model} Methods\relax }{table.caption.100}{}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Utility Functions}{88}{section.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}\tt have\_fcn}{88}{subsection.6.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}\tt mpomver}{88}{subsection.6.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}\tt nested\_struct\_copy}{88}{subsection.6.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Private Feature Detection Functions}{88}{subsection.6.4}\protected@file@percent } +\newlabel{sec:featuredetection}{{6.4}{88}{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}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.1}\tt have\_feature\_bpmpd}{89}{subsubsection.6.4.1}\protected@file@percent } +\newlabel{sec:have_feature_bpmpd}{{6.4.1}{89}{\tt have\_feature\_bpmpd}{subsubsection.6.4.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.2}\tt have\_feature\_catchme}{89}{subsubsection.6.4.2}\protected@file@percent } +\newlabel{sec:have_feature_catchme}{{6.4.2}{89}{\tt have\_feature\_catchme}{subsubsection.6.4.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.3}\tt have\_feature\_clp}{89}{subsubsection.6.4.3}\protected@file@percent } +\newlabel{sec:have_feature_clp}{{6.4.3}{89}{\tt have\_feature\_clp}{subsubsection.6.4.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.4}\tt have\_feature\_opti\_clp}{89}{subsubsection.6.4.4}\protected@file@percent } +\newlabel{sec:have_feature_opti_clp}{{6.4.4}{89}{\tt have\_feature\_opti\_clp}{subsubsection.6.4.4}{}} +\@writefile{brf}{\backcite{opti}{{89}{6.4.4}{subsubsection.6.4.4}}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.5}\tt have\_feature\_cplex}{89}{subsubsection.6.4.5}\protected@file@percent } +\newlabel{sec:have_feature_cplex}{{6.4.5}{89}{\tt have\_feature\_cplex}{subsubsection.6.4.5}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.6}\tt have\_feature\_evalc}{89}{subsubsection.6.4.6}\protected@file@percent } +\newlabel{sec:have_feature_evalc}{{6.4.6}{89}{\tt have\_feature\_evalc}{subsubsection.6.4.6}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.7}\tt have\_feature\_fmincon}{89}{subsubsection.6.4.7}\protected@file@percent } +\newlabel{sec:have_feature_fmincon}{{6.4.7}{89}{\tt have\_feature\_fmincon}{subsubsection.6.4.7}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.8}\tt have\_feature\_fmincon\_ipm}{90}{subsubsection.6.4.8}\protected@file@percent } +\newlabel{sec:have_feature_fmincon_ipm}{{6.4.8}{90}{\tt have\_feature\_fmincon\_ipm}{subsubsection.6.4.8}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.9}\tt have\_feature\_fsolve}{90}{subsubsection.6.4.9}\protected@file@percent } +\newlabel{sec:have_feature_fsolve}{{6.4.9}{90}{\tt have\_feature\_fsolve}{subsubsection.6.4.9}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.10}\tt have\_feature\_glpk}{90}{subsubsection.6.4.10}\protected@file@percent } +\newlabel{sec:have_feature_glpk}{{6.4.10}{90}{\tt have\_feature\_glpk}{subsubsection.6.4.10}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.11}\tt have\_feature\_gurobi}{90}{subsubsection.6.4.11}\protected@file@percent } +\newlabel{sec:have_feature_gurobi}{{6.4.11}{90}{\tt have\_feature\_gurobi}{subsubsection.6.4.11}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.12}\tt have\_feature\_intlinprog}{90}{subsubsection.6.4.12}\protected@file@percent } +\newlabel{sec:have_feature_intlinprog}{{6.4.12}{90}{\tt have\_feature\_intlinprog}{subsubsection.6.4.12}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.13}\tt have\_feature\_ipopt}{90}{subsubsection.6.4.13}\protected@file@percent } +\newlabel{sec:have_feature_ipopt}{{6.4.13}{90}{\tt have\_feature\_ipopt}{subsubsection.6.4.13}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.14}\tt have\_feature\_ipopt\_auxdata}{90}{subsubsection.6.4.14}\protected@file@percent } +\newlabel{sec:have_feature_ipopt_auxdata}{{6.4.14}{90}{\tt have\_feature\_ipopt\_auxdata}{subsubsection.6.4.14}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.15}\tt have\_feature\_isequaln}{91}{subsubsection.6.4.15}\protected@file@percent } +\newlabel{sec:have_feature_isequaln}{{6.4.15}{91}{\tt have\_feature\_isequaln}{subsubsection.6.4.15}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.16}\tt have\_feature\_knitro}{91}{subsubsection.6.4.16}\protected@file@percent } +\newlabel{sec:have_feature_knitro}{{6.4.16}{91}{\tt have\_feature\_knitro}{subsubsection.6.4.16}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.17}\tt have\_feature\_knitromatlab}{91}{subsubsection.6.4.17}\protected@file@percent } +\newlabel{sec:have_feature_knitromatlab}{{6.4.17}{91}{\tt have\_feature\_knitromatlab}{subsubsection.6.4.17}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.18}\tt have\_feature\_ktrlink}{91}{subsubsection.6.4.18}\protected@file@percent } +\newlabel{sec:have_feature_ktrlink}{{6.4.18}{91}{\tt have\_feature\_ktrlink}{subsubsection.6.4.18}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.19}\tt have\_feature\_linprog}{91}{subsubsection.6.4.19}\protected@file@percent } +\newlabel{sec:have_feature_linprog}{{6.4.19}{91}{\tt have\_feature\_linprog}{subsubsection.6.4.19}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.20}\tt have\_feature\_linprog\_ds}{91}{subsubsection.6.4.20}\protected@file@percent } +\newlabel{sec:have_feature_linprog_ds}{{6.4.20}{91}{\tt have\_feature\_linprog\_ds}{subsubsection.6.4.20}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.21}\tt have\_feature\_mosek}{91}{subsubsection.6.4.21}\protected@file@percent } +\newlabel{sec:have_feature_mosek}{{6.4.21}{91}{\tt have\_feature\_mosek}{subsubsection.6.4.21}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.22}\tt have\_feature\_optim}{92}{subsubsection.6.4.22}\protected@file@percent } +\newlabel{sec:have_feature_optim}{{6.4.22}{92}{\tt have\_feature\_optim}{subsubsection.6.4.22}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.23}\tt have\_feature\_optimoptions}{92}{subsubsection.6.4.23}\protected@file@percent } +\newlabel{sec:have_feature_optimoptions}{{6.4.23}{92}{\tt have\_feature\_optimoptions}{subsubsection.6.4.23}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.24}\tt have\_feature\_osqp}{92}{subsubsection.6.4.24}\protected@file@percent } +\newlabel{sec:have_feature_osqp}{{6.4.24}{92}{\tt have\_feature\_osqp}{subsubsection.6.4.24}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.25}\tt have\_feature\_quadprog}{92}{subsubsection.6.4.25}\protected@file@percent } +\newlabel{sec:have_feature_quadprog}{{6.4.25}{92}{\tt have\_feature\_quadprog}{subsubsection.6.4.25}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.26}\tt have\_feature\_quadprog\_ls}{92}{subsubsection.6.4.26}\protected@file@percent } +\newlabel{sec:have_feature_quadprog_ls}{{6.4.26}{92}{\tt have\_feature\_quadprog\_ls}{subsubsection.6.4.26}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.27}\tt have\_feature\_sdpt3}{92}{subsubsection.6.4.27}\protected@file@percent } +\newlabel{sec:have_feature_sdpt3}{{6.4.27}{92}{\tt have\_feature\_sdpt3}{subsubsection.6.4.27}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.28}\tt have\_feature\_sedumi}{92}{subsubsection.6.4.28}\protected@file@percent } +\newlabel{sec:have_feature_sedumi}{{6.4.28}{92}{\tt have\_feature\_sedumi}{subsubsection.6.4.28}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.29}\tt have\_feature\_yalmip}{93}{subsubsection.6.4.29}\protected@file@percent } +\newlabel{sec:have_feature_yalmip}{{6.4.29}{93}{\tt have\_feature\_yalmip}{subsubsection.6.4.29}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}{\sc Matpower}{}-related Functions}{93}{subsection.6.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.1}\tt mpopt2nleqopt}{93}{subsubsection.6.5.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.2}\tt mpopt2nlpopt}{93}{subsubsection.6.5.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.3}\tt mpopt2qpopt}{93}{subsubsection.6.5.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.4}\tt mpopt2pneopt}{94}{subsubsection.6.5.4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Acknowledgments}{95}{section.7}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{Appendix \numberline {A}\mbox {MP-Opt-Model}{} Files, Functions and Classes}{96}{appendix.1.A}\protected@file@percent } +\newlabel{app:functions}{{A}{96}{\mpom {} Files, Functions and Classes}{appendix.1.A}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}1}{\ignorespaces \mbox {MP-Opt-Model}{} Files and Functions\relax }}{96}{table.caption.102}\protected@file@percent } +\newlabel{tab:files}{{A\mbox {-}1}{96}{\mpom {} Files and Functions\relax }{table.caption.102}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}2}{\ignorespaces Solver Functions\relax }}{97}{table.caption.104}\protected@file@percent } +\newlabel{tab:solvers}{{A\mbox {-}2}{97}{Solver Functions\relax }{table.caption.104}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}3}{\ignorespaces PNE Implementation Functions\TPToverlap {\textsuperscript {*}}\relax }}{98}{table.caption.106}\protected@file@percent } +\newlabel{tab:pne_functions}{{A\mbox {-}3}{98}{PNE Implementation Functions\tnote {*}\relax }{table.caption.106}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}4}{\ignorespaces Solver Options, etc.\relax }}{98}{table.caption.108}\protected@file@percent } +\newlabel{tab:solver_options}{{A\mbox {-}4}{98}{Solver Options, etc.\relax }{table.caption.108}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}5}{\ignorespaces Optimization Model Class\relax }}{99}{table.caption.110}\protected@file@percent } +\newlabel{tab:opt_model}{{A\mbox {-}5}{99}{Optimization Model Class\relax }{table.caption.110}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}6}{\ignorespaces {\sc Matpower}{} Index Manager Class\relax }}{100}{table.caption.112}\protected@file@percent } +\newlabel{tab:mp_idx_manager}{{A\mbox {-}6}{100}{\matpower {} Index Manager Class\relax }{table.caption.112}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}7}{\ignorespaces Utility Functions\relax }}{100}{table.caption.114}\protected@file@percent } +\newlabel{tab:utility}{{A\mbox {-}7}{100}{Utility Functions\relax }{table.caption.114}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}8}{\ignorespaces Feature Detection Functions\TPToverlap {\textsuperscript {*}}\relax }}{101}{table.caption.116}\protected@file@percent } +\newlabel{tab:have_feature_fcns}{{A\mbox {-}8}{101}{Feature Detection Functions\tnote {*}\relax }{table.caption.116}{}} +\@writefile{lot}{\contentsline {table}{\numberline {A\mbox {-}9}{\ignorespaces \mbox {MP-Opt-Model}{} Examples \& Tests\relax }}{102}{table.caption.118}\protected@file@percent } +\newlabel{tab:tests}{{A\mbox {-}9}{102}{\mpom {} Examples \& Tests\relax }{table.caption.118}{}} \citation{bpmpdmex,meszaros1996} \citation{clp} \citation{opti} -\@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}}} +\@writefile{toc}{\contentsline {section}{Appendix \numberline {B}Optional Packages}{103}{appendix.1.B}\protected@file@percent } +\newlabel{app:optional_packages}{{B}{103}{Optional Packages}{appendix.1.B}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.1}BPMPD\_MEX -- MEX interface for BPMPD}{103}{subsection.1.B.1}\protected@file@percent } +\newlabel{app:bpmpd}{{B.1}{103}{BPMPD\_MEX -- MEX interface for BPMPD}{subsection.1.B.1}{}} +\@writefile{brf}{\backcite{bpmpdmex,meszaros1996}{{103}{B.1}{subsection.1.B.1}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.2}{CLP}{} -- COIN-OR Linear Programming}{103}{subsection.1.B.2}\protected@file@percent } +\newlabel{app:clp}{{B.2}{103}{\clp {} -- COIN-OR Linear Programming}{subsection.1.B.2}{}} +\@writefile{brf}{\backcite{clp}{{103}{B.2}{subsection.1.B.2}}} \citation{glpk} \citation{opti} -\@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}}} +\@writefile{brf}{\backcite{opti}{{104}{B.2}{subsection.1.B.2}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.3}{CPLEX}{} -- High-performance LP, QP, MILP and MIQP Solvers}{104}{subsection.1.B.3}\protected@file@percent } +\newlabel{app:cplex}{{B.3}{104}{\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}{104}{subsection.1.B.4}\protected@file@percent } +\newlabel{app:glpk}{{B.4}{104}{\glpk {} -- GNU Linear Programming Kit}{subsection.1.B.4}{}} +\@writefile{brf}{\backcite{glpk}{{104}{B.4}{subsection.1.B.4}}} +\@writefile{brf}{\backcite{opti}{{104}{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}{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}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.5}{Gurobi}{} -- High-performance LP, QP, MILP and MIQP Solvers}{105}{subsection.1.B.5}\protected@file@percent } +\newlabel{app:gurobi}{{B.5}{105}{\gurobi {} -- High-performance LP, QP, MILP and MIQP Solvers}{subsection.1.B.5}{}} +\@writefile{brf}{\backcite{gurobi}{{105}{B.5}{subsection.1.B.5}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.6}{\sc Ipopt}{} -- Interior Point Optimizer}{105}{subsection.1.B.6}\protected@file@percent } +\newlabel{app:ipopt}{{B.6}{105}{\ipopt {} -- Interior Point Optimizer}{subsection.1.B.6}{}} +\@writefile{brf}{\backcite{ipopt}{{105}{B.6}{subsection.1.B.6}}} \citation{knitro} +\@writefile{brf}{\backcite{pardiso, pardiso2}{{106}{B.6}{subsection.1.B.6}}} +\@writefile{brf}{\backcite{opti}{{106}{B.6}{subsection.1.B.6}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.7}{Artelys Knitro}{} -- Non-Linear Programming Solver}{106}{subsection.1.B.7}\protected@file@percent } +\newlabel{app:knitro}{{B.7}{106}{\knitro {} -- Non-Linear Programming Solver}{subsection.1.B.7}{}} +\@writefile{brf}{\backcite{knitro}{{106}{B.7}{subsection.1.B.7}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.8}{MOSEK}{} -- High-performance LP, QP, MILP and MIQP Solvers}{106}{subsection.1.B.8}\protected@file@percent } +\newlabel{app:mosek}{{B.8}{106}{\mosek {} -- High-performance LP, QP, MILP and MIQP Solvers}{subsection.1.B.8}{}} \citation{ot,otug} -\@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}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.9}{Optimization Toolbox}{} -- LP, QP, NLP, NLEQ and MILP Solvers}{107}{subsection.1.B.9}\protected@file@percent } +\newlabel{app:ot}{{B.9}{107}{\ot {} -- LP, QP, NLP, NLEQ and MILP Solvers}{subsection.1.B.9}{}} +\@writefile{brf}{\backcite{ot, otug}{{107}{B.9}{subsection.1.B.9}}} +\@writefile{toc}{\contentsline {subsection}{\numberline {B.10}{OSQP}{} -- Operator Splitting Quadratic Program Solver}{107}{subsection.1.B.10}\protected@file@percent } +\newlabel{app:osqp}{{B.10}{107}{\osqp {} -- Operator Splitting Quadratic Program Solver}{subsection.1.B.10}{}} +\@writefile{brf}{\backcite{osqp}{{107}{B.10}{subsection.1.B.10}}} +\@writefile{toc}{\contentsline {section}{Appendix \numberline {C}Release History}{108}{appendix.1.C}\protected@file@percent } +\newlabel{app:release_history}{{C}{108}{Release History}{appendix.1.C}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.1}Version 0.7 -- Jun 20, 2019}{108}{subsection.1.C.1}\protected@file@percent } +\newlabel{app:v07}{{C.1}{108}{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)}}{108}{subsection.1.C.2}\protected@file@percent } +\newlabel{app:v08}{{C.2}{108}{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}{110}{subsection.1.C.3}\protected@file@percent } +\newlabel{app:v10}{{C.3}{110}{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}{110}{subsection.1.C.4}\protected@file@percent } +\newlabel{app:v20}{{C.4}{110}{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}{112}{subsection.1.C.5}\protected@file@percent } +\newlabel{app:v21}{{C.5}{112}{Version 2.1 -- released Aug 25, 2020}{subsection.1.C.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.6}Version 3.0 -- released Oct 8, 2020}{113}{subsection.1.C.6}\protected@file@percent } +\newlabel{app:v30}{{C.6}{113}{Version 3.0 -- released Oct 8, 2020}{subsection.1.C.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.7}Version 4.0 -- released Oct 18, 2021}{114}{subsection.1.C.7}\protected@file@percent } +\newlabel{app:v40}{{C.7}{114}{Version 4.0 -- released Oct 18, 2021}{subsection.1.C.7}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {C.8}Version 4.1 -- released Dec 13, 2022}{116}{subsection.1.C.8}\protected@file@percent } +\newlabel{app:v41}{{C.8}{116}{Version 4.1 -- released Dec 13, 2022}{subsection.1.C.8}{}} \bibcite{zimmerman2011}{1} \bibcite{matpower}{2} \bibcite{octave}{3} @@ -335,17 +388,22 @@ \bibcite{mpom_manual}{5} \bibcite{wang2007a}{6} \bibcite{mips_manual}{7} -\bibcite{bpmpdmex}{8} -\bibcite{meszaros1996}{9} -\bibcite{clp}{10} -\bibcite{opti}{11} -\@writefile{toc}{\contentsline {section}{References}{96}{section*.111}\protected@file@percent } -\bibcite{glpk}{12} -\bibcite{gurobi}{13} -\bibcite{ipopt}{14} -\bibcite{pardiso}{15} -\bibcite{pardiso2}{16} -\bibcite{knitro}{17} -\bibcite{ot}{18} -\bibcite{otug}{19} -\bibcite{osqp}{20} +\bibcite{allgower2003}{8} +\bibcite{chiang1995}{9} +\bibcite{li2008}{10} +\@writefile{toc}{\contentsline {section}{References}{117}{section*.137}\protected@file@percent } +\bibcite{mori2002}{11} +\bibcite{bpmpdmex}{12} +\bibcite{meszaros1996}{13} +\bibcite{clp}{14} +\bibcite{opti}{15} +\bibcite{glpk}{16} +\bibcite{gurobi}{17} +\bibcite{ipopt}{18} +\bibcite{pardiso}{19} +\bibcite{pardiso2}{20} +\bibcite{knitro}{21} +\bibcite{ot}{22} +\bibcite{otug}{23} +\bibcite{osqp}{24} +\gdef \@abspage@last{119} diff --git a/lib/Contents.m b/lib/Contents.m index 3727e584..26249b84 100644 --- a/lib/Contents.m +++ b/lib/Contents.m @@ -1,5 +1,5 @@ % MATPOWER -% Version 7.1 08-Oct-2020 +% Version 8.0b1 22-Dec-2022 % % 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-2020, Power Systems Engineering Research Center (PSERC) +% Copyright (c) 2004-2022, 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 1effb837..8766b139 100644 --- a/lib/mpver.m +++ b/lib/mpver.m @@ -8,7 +8,7 @@ % MIPS and any optional MATPOWER packages. % MATPOWER -% Copyright (c) 2005-2019, Power Systems Engineering Research Center (PSERC) +% Copyright (c) 2005-2022, Power Systems Engineering Research Center (PSERC) % by Ray Zimmerman, PSERC Cornell % % This file is part of MATPOWER. @@ -26,9 +26,9 @@ % v{1} = ver(p); v{1} = struct( 'Name', 'MATPOWER', ... - 'Version', '8.0-dev?', ... + 'Version', '8.0b1', ... 'Release', '', ... - 'Date', '09-Nov-2022' ); + 'Date', '22-Dec-2022' ); if nargout > 0 if nargin > 0 rv = v{1};