├── .github └── workflows │ └── continuous-integration.yml ├── .gitignore ├── AUTHORS ├── CHANGES.md ├── CITATION ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── docs ├── MOST-manual.pdf ├── other │ └── MOST-Release-Checklist.md ├── relnotes │ ├── MOST-Release-Notes-1.0.1.md │ ├── MOST-Release-Notes-1.0.2.md │ ├── MOST-Release-Notes-1.1.md │ ├── MOST-Release-Notes-1.2.md │ └── MOST-Release-Notes-1.3.md ├── sphinx │ ├── Building-Docs.md │ ├── Makefile │ ├── make.bat │ └── source │ │ ├── _static │ │ └── css │ │ │ └── matpower.css │ │ ├── conf.py │ │ ├── functions │ │ ├── addgen2mpc.rst │ │ ├── addstorage.rst │ │ ├── addwind.rst │ │ ├── apply_profile.rst │ │ ├── c118swf.rst │ │ ├── ex_case3a.rst │ │ ├── ex_case3b.rst │ │ ├── ex_contab.rst │ │ ├── ex_load_profile.rst │ │ ├── ex_storage.rst │ │ ├── ex_transmat.rst │ │ ├── ex_wind.rst │ │ ├── ex_wind_profile.rst │ │ ├── ex_wind_profile_d.rst │ │ ├── ex_wind_uc.rst │ │ ├── ex_xgd.rst │ │ ├── ex_xgd_ramp.rst │ │ ├── ex_xgd_res.rst │ │ ├── ex_xgd_uc.rst │ │ ├── filter_ramp_transitions.rst │ │ ├── getprofiles.rst │ │ ├── idx_profile.rst │ │ ├── loadgenericdata.rst │ │ ├── loadmd.rst │ │ ├── loadstoragedata.rst │ │ ├── loadxgendata.rst │ │ ├── md_init.rst │ │ ├── most.rst │ │ ├── most_ex1_ed.rst │ │ ├── most_ex2_dcopf.rst │ │ ├── most_ex3_dcopf_w_uc.rst │ │ ├── most_ex4_dcopf_ss.rst │ │ ├── most_ex5_mpopf.rst │ │ ├── most_ex6_uc.rst │ │ ├── most_ex7_suc.rst │ │ ├── most_summary.rst │ │ ├── mostver.rst │ │ ├── mpoption_info_most.rst │ │ ├── plot_gen.rst │ │ ├── plot_storage.rst │ │ ├── plot_uc.rst │ │ ├── plot_uc_data.rst │ │ ├── t_case30_most.rst │ │ ├── t_case3_most.rst │ │ ├── t_case_tlmp.rst │ │ ├── t_case_tlmp_storage.rst │ │ ├── t_most_30b_1_1_0.rst │ │ ├── t_most_30b_1_1_0_uc.rst │ │ ├── t_most_30b_1_1_17.rst │ │ ├── t_most_30b_3_1_0.rst │ │ ├── t_most_30b_3_1_17.rst │ │ ├── t_most_3b_1_1_0.rst │ │ ├── t_most_3b_1_1_2.rst │ │ ├── t_most_3b_3_1_0.rst │ │ ├── t_most_3b_3_1_2.rst │ │ ├── t_most_fixed_res.rst │ │ ├── t_most_mpopf.rst │ │ ├── t_most_sp.rst │ │ ├── t_most_spuc.rst │ │ ├── t_most_suc.rst │ │ ├── t_most_tlmp.rst │ │ ├── t_most_uc.rst │ │ ├── t_most_w_ds.rst │ │ ├── test_most.rst │ │ └── uniformwindprofile.rst │ │ ├── index.rst │ │ ├── matlab-source │ │ └── most │ │ │ ├── addgen2mpc.m │ │ │ ├── addstorage.m │ │ │ ├── addwind.m │ │ │ ├── apply_profile.m │ │ │ ├── c118swf.m │ │ │ ├── ex_case3a.m │ │ │ ├── ex_case3b.m │ │ │ ├── ex_contab.m │ │ │ ├── ex_load_profile.m │ │ │ ├── ex_storage.m │ │ │ ├── ex_transmat.m │ │ │ ├── ex_wind.m │ │ │ ├── ex_wind_profile.m │ │ │ ├── ex_wind_profile_d.m │ │ │ ├── ex_wind_uc.m │ │ │ ├── ex_xgd.m │ │ │ ├── ex_xgd_ramp.m │ │ │ ├── ex_xgd_res.m │ │ │ ├── ex_xgd_uc.m │ │ │ ├── filter_ramp_transitions.m │ │ │ ├── getprofiles.m │ │ │ ├── idx_profile.m │ │ │ ├── loadgenericdata.m │ │ │ ├── loadmd.m │ │ │ ├── loadstoragedata.m │ │ │ ├── loadxgendata.m │ │ │ ├── md_init.m │ │ │ ├── most.m │ │ │ ├── most_ex1_ed.m │ │ │ ├── most_ex2_dcopf.m │ │ │ ├── most_ex3_dcopf_w_uc.m │ │ │ ├── most_ex4_dcopf_ss.m │ │ │ ├── most_ex5_mpopf.m │ │ │ ├── most_ex6_uc.m │ │ │ ├── most_ex7_suc.m │ │ │ ├── most_summary.m │ │ │ ├── mostver.m │ │ │ ├── mpoption_info_most.m │ │ │ ├── plot_gen.m │ │ │ ├── plot_storage.m │ │ │ ├── plot_uc.m │ │ │ ├── plot_uc_data.m │ │ │ ├── t_case30_most.m │ │ │ ├── t_case3_most.m │ │ │ ├── t_case_tlmp.m │ │ │ ├── t_case_tlmp_storage.m │ │ │ ├── t_most_30b_1_1_0.m │ │ │ ├── t_most_30b_1_1_0_uc.m │ │ │ ├── t_most_30b_1_1_17.m │ │ │ ├── t_most_30b_3_1_0.m │ │ │ ├── t_most_30b_3_1_17.m │ │ │ ├── t_most_3b_1_1_0.m │ │ │ ├── t_most_3b_1_1_2.m │ │ │ ├── t_most_3b_3_1_0.m │ │ │ ├── t_most_3b_3_1_2.m │ │ │ ├── t_most_fixed_res.m │ │ │ ├── t_most_mpopf.m │ │ │ ├── t_most_sp.m │ │ │ ├── t_most_spuc.m │ │ │ ├── t_most_suc.m │ │ │ ├── t_most_tlmp.m │ │ │ ├── t_most_uc.m │ │ │ ├── t_most_w_ds.m │ │ │ ├── test_most.m │ │ │ └── uniformwindprofile.m │ │ └── reference.rst └── src │ └── MOST-manual │ ├── MATPOWER-manual.aux │ ├── MOST-manual.tex │ └── figures │ ├── 3-bus-ex.pdf │ ├── load_wind_profiles.pdf │ ├── loadmd.pdf │ ├── most-multi-period-problems-14.pdf │ ├── most-single-period-problems-16.pdf │ ├── ramping-9.pdf │ ├── reserves-single-base.pdf │ ├── reserves.pdf │ ├── src │ ├── 3-bus-ex.graffle │ ├── loadmd.graffle │ ├── most-multi-period-problems.graffle │ ├── most-single-period-problems.graffle │ ├── ramping.graffle │ ├── reserves-single-base.graffle │ │ ├── data.plist │ │ ├── image10.pdf │ │ ├── image11.pdf │ │ ├── image12.pdf │ │ ├── image13.pdf │ │ ├── image14.pdf │ │ ├── image21.pdf │ │ ├── image22.pdf │ │ ├── image23.pdf │ │ ├── image24.pdf │ │ ├── image25.pdf │ │ ├── image26.pdf │ │ ├── image27.pdf │ │ ├── image28.pdf │ │ ├── image29.pdf │ │ ├── image4.pdf │ │ ├── image5.pdf │ │ ├── image6.pdf │ │ ├── image7.pdf │ │ ├── image8.pdf │ │ └── image9.pdf │ ├── reserves.graffle │ │ ├── data.plist │ │ ├── image13.pdf │ │ ├── image14.pdf │ │ ├── image23.pdf │ │ ├── image24.pdf │ │ ├── image26.pdf │ │ ├── image27.pdf │ │ ├── image28.pdf │ │ ├── image29.pdf │ │ ├── image30.pdf │ │ ├── image31.pdf │ │ ├── image32.pdf │ │ ├── image33.pdf │ │ ├── image34.pdf │ │ ├── image35.pdf │ │ ├── image36.pdf │ │ ├── image38.pdf │ │ ├── image39.pdf │ │ ├── image40.pdf │ │ ├── image41.pdf │ │ ├── image42.pdf │ │ ├── image43.pdf │ │ ├── image44.pdf │ │ ├── image45.pdf │ │ └── image46.pdf │ ├── storage.graffle │ │ ├── data.plist │ │ ├── image24.pdf │ │ ├── image25.pdf │ │ ├── image26.pdf │ │ ├── image27.pdf │ │ ├── image28.pdf │ │ ├── image29.pdf │ │ ├── image30.pdf │ │ ├── image31.pdf │ │ ├── image32.pdf │ │ ├── image33.pdf │ │ ├── image36.pdf │ │ └── image37.pdf │ ├── structure-multi-period.graffle │ ├── structure-multi-scenario.graffle │ └── structure.graffle │ │ ├── data.plist │ │ ├── image55.pdf │ │ ├── image59.pdf │ │ ├── image60.pdf │ │ ├── image61.pdf │ │ └── image62.pdf │ ├── storage-18.pdf │ ├── structure-multi-period-17.pdf │ ├── structure-multi-period.pdf │ ├── structure-multi-scenario.pdf │ ├── structure.pdf │ ├── suc-ex-2.pdf │ ├── suc-ex-3.pdf │ ├── suc-ex-4.pdf │ ├── suc-ex-5.pdf │ ├── uc-ex-1.pdf │ ├── uc-ex-2.pdf │ ├── uc-ex-3.pdf │ ├── uc-ex-4.pdf │ ├── uc-ex-5.pdf │ ├── uc-ex-6.pdf │ ├── wind_profile_1.pdf │ └── wind_profile_2.pdf └── lib ├── Contents.m ├── addgen2mpc.m ├── addstorage.m ├── addwind.m ├── apply_profile.m ├── filter_ramp_transitions.m ├── getprofiles.m ├── idx_profile.m ├── loadgenericdata.m ├── loadmd.m ├── loadstoragedata.m ├── loadxgendata.m ├── md_init.m ├── most.m ├── most_summary.m ├── mostver.m ├── mpoption_info_most.m ├── plot_gen.m ├── plot_storage.m ├── plot_uc.m ├── plot_uc_data.m └── t ├── c118swf.m ├── ex_case3a.m ├── ex_case3b.m ├── ex_contab.m ├── ex_load_profile.m ├── ex_storage.m ├── ex_transmat.m ├── ex_wind.m ├── ex_wind_profile.m ├── ex_wind_profile_d.m ├── ex_wind_uc.m ├── ex_xgd.m ├── ex_xgd_ramp.m ├── ex_xgd_res.m ├── ex_xgd_uc.m ├── generate_most_autodoc.m ├── most_ex1_ed.m ├── most_ex2_dcopf.m ├── most_ex3_dcopf_w_uc.m ├── most_ex4_dcopf_ss.m ├── most_ex5_mpopf.m ├── most_ex6_uc.m ├── most_ex7_suc.m ├── t_case30_most.m ├── t_case3_most.m ├── t_case_tlmp.m ├── t_case_tlmp_storage.m ├── t_most_30b_1_1_0.m ├── t_most_30b_1_1_0_uc.m ├── t_most_30b_1_1_17.m ├── t_most_30b_3_1_0.m ├── t_most_30b_3_1_17.m ├── t_most_3b_1_1_0.m ├── t_most_3b_1_1_2.m ├── t_most_3b_3_1_0.m ├── t_most_3b_3_1_2.m ├── t_most_fixed_res.m ├── t_most_mpopf.m ├── t_most_mpopf_soln.mat ├── t_most_sp.m ├── t_most_spuc.m ├── t_most_suc.m ├── t_most_suc_soln.mat ├── t_most_tlmp.m ├── t_most_uc.m ├── t_most_uc_soln.mat ├── t_most_w_ds.m ├── t_most_w_ds_z.mat ├── test_most.m └── uniformwindprofile.m /.github/workflows/continuous-integration.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | # controls when action will run 4 | on: 5 | # triggers workflow on push events 6 | push: 7 | # allows workflow to be triggered manually from Actions tab 8 | workflow_dispatch: 9 | 10 | jobs: 11 | build: 12 | strategy: 13 | fail-fast: false 14 | matrix: 15 | platform: [octave] 16 | # os: [macos-10.15, macos-11.0, macos-12.0, ubuntu-18.04, ubuntu-20.04, ubuntu-22.04] 17 | os: [macos-latest, ubuntu-22.04, ubuntu-24.04, ubuntu-latest] 18 | include: 19 | - platform: matlab 20 | os: ubuntu-latest 21 | 22 | runs-on: ${{ matrix.os }} 23 | 24 | steps: 25 | - name: Check out repository 26 | uses: actions/checkout@v4 27 | 28 | - name: Install Octave (Linux) 29 | if: matrix.platform == 'octave' && startsWith(matrix.os, 'ubuntu') 30 | uses: MATPOWER/action-install-octave-linux@v1 31 | 32 | - name: Install Octave (macOS) 33 | if: matrix.platform == 'octave' && startsWith(matrix.os, 'macos') 34 | uses: MATPOWER/action-install-octave-macos@v1 35 | 36 | - name: Install MATLAB 37 | if: matrix.platform == 'matlab' 38 | uses: matlab-actions/setup-matlab@v2 39 | with: 40 | products: Optimization_Toolbox 41 | 42 | - name: Configure MATLAB 43 | if: matrix.platform == 'matlab' 44 | uses: MATPOWER/action-configure-matlab@v2 45 | 46 | - name: ${{ env.ML_NAME }} ${{ env.ML_VER }} Installed 47 | run: $ML_CMD ver 48 | 49 | - name: Install MP-Test, Set MPTEST_PATH 50 | run: | 51 | git clone --depth=1 https://github.com/MATPOWER/mptest.git $HOME/mptest 52 | echo "MPTEST_PATH=$HOME/mptest/lib:$HOME/mptest/lib/t" >> $GITHUB_ENV 53 | 54 | - name: Install MIPS, Set MIPS_PATH 55 | run: | 56 | git clone --depth=1 https://github.com/MATPOWER/mips.git $HOME/mips 57 | echo "MIPS_PATH=$HOME/mips/lib:$HOME/mips/lib/t:${MPTEST_PATH}" >> $GITHUB_ENV 58 | 59 | - name: Install MP-Opt-Model, Set MP_OPT_MODEL_PATH 60 | run: | 61 | git clone --depth=1 https://github.com/MATPOWER/mp-opt-model.git $HOME/mp-opt-model 62 | echo "MP_OPT_MODEL_PATH=$HOME/mp-opt-model/lib:$HOME/mp-opt-model/lib/t:${MIPS_PATH}" >> $GITHUB_ENV 63 | 64 | - name: Install MATPOWER 65 | run: | 66 | git clone --depth=1 https://github.com/MATPOWER/matpower.git $HOME/matpower 67 | env $ML_PATHVAR=$HOME/matpower $ML_CMD "install_matpower(0,1,1)" 68 | ln -s ./startup.m .octaverc 69 | echo "TEST_PATH=${GITHUB_WORKSPACE}/lib:${GITHUB_WORKSPACE}/lib/t:${MP_OPT_MODEL_PATH}" >> $GITHUB_ENV 70 | 71 | - name: Test MOST 72 | run: env $ML_PATHVAR=$TEST_PATH $ML_CMD "mpver; test_most(0,1)" 73 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | untracked 2 | docs/src/MOST-manual/MOST-manual.aux 3 | docs/src/MOST-manual/MOST-manual.brf 4 | docs/src/MOST-manual/MOST-manual.lof 5 | docs/src/MOST-manual/MOST-manual.log 6 | docs/src/MOST-manual/MOST-manual.lot 7 | docs/src/MOST-manual/MOST-manual.out 8 | docs/src/MOST-manual/MOST-manual.pdf 9 | docs/src/MOST-manual/MOST-manual.synctex.gz 10 | docs/src/MOST-manual/MOST-manual.synctex.gz(busy) 11 | docs/src/MOST-manual/MOST-manual.toc 12 | docs/sphinx/build 13 | docs/sphinx/source/mp-docs-shared 14 | .vs 15 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Carlos Murillo-Sanchez 2 | Ray Zimmerman 3 | Daniel Munoz-Alvarez 4 | -------------------------------------------------------------------------------- /CITATION: -------------------------------------------------------------------------------- 1 | We request that publications derived from the use of the MATPOWER Optimal 2 | Scheduling Tool (MOST) explicitly acknowledge that fact by citing both the 3 | 2011 MATPOWER paper and the 2013 MOST paper. 4 | 5 | R. D. Zimmerman, C. E. Murillo-Sanchez, and R. J. Thomas, "MATPOWER: 6 | Steady-State Operations, Planning and Analysis Tools for Power Systems 7 | Research and Education," Power Systems, IEEE Transactions on, vol. 26, 8 | no. 1, pp. 12-19, Feb. 2011. 9 | doi: 10.1109/TPWRS.2010.2051168 10 | 11 | C. E. Murillo-Sanchez, R. D. Zimmerman, C. L. Anderson, and R. J. Thomas, 12 | "Secure Planning and Operations of Systems with Stochastic Sources, 13 | Energy Storage and Active Demand," Smart Grid, IEEE Transactions on, 14 | vol. 4, no. 4, pp. 2220-2229, Dec. 2013. 15 | doi: 10.1109/TSG.2013.2281001 16 | 17 | The MATPOWER Optimal Scheduling Tool (MOST) User's Manual should also be 18 | cited explicitly in work that refers to or is derived from its content. 19 | The citation and DOI can be version-specific or general, as appropriate. 20 | For version 1.3, use: 21 | 22 | R. D. Zimmerman, C. E. Murillo-Sanchez. MATPOWER Optimal Scheduling 23 | Tool (MOST) User's Manual, Version 1.3. 2024. [Online]. 24 | Available: https://matpower.org/docs/MOST-manual-1.3.pdf 25 | doi: 10.5281/zenodo.11177189 26 | 27 | For a version non-specific citation, use the following citation and DOI, 28 | with replaced by the year of the most recent release: 29 | 30 | R. D. Zimmerman, C. E. Murillo-Sanchez. MATPOWER Optimal Scheduling 31 | Tool (MOST) User's Manual. . [Online]. 32 | Available: https://matpower.org/docs/MOST-manual.pdf 33 | doi: 10.5281/zenodo.3236531 34 | 35 | A list of versions of the User's Manual with release dates and 36 | version-specific DOI's can be found via the general DOI at 37 | https://doi.org/10.5281/zenodo.3236531. 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 1996-2024, Power Systems Engineering Research Center (PSERC) 2 | and individual contributors (see AUTHORS file for details). 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are 7 | met: 8 | 9 | 1. Redistributions of source code must retain the above copyright 10 | notice, this list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright 13 | notice, this list of conditions and the following disclaimer in the 14 | documentation and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 21 | IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 | TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 23 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 26 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /docs/MOST-manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/MOST-manual.pdf -------------------------------------------------------------------------------- /docs/other/MOST-Release-Checklist.md: -------------------------------------------------------------------------------- 1 | MOST Release Checklist 2 | ====================== 3 | 4 | 5 | Pre-release 6 | ----------- 7 | - Check [MOST issue tracker](https://github.com/MATPOWER/most/issues) 8 | and `untracked/MOST-To-Do-List.md` for to do items. 9 | - Create & checkout new `prep-for-release` branch from latest `master`. 10 | - Release notes: 11 | - Make sure Release History in Appendix B of `MOST-manual.tex` is 12 | up-to-date. 13 | - Create `docs/relnotes/MOST-Release-Notes-#.#.md` document from 14 | Appendix B of `MOST-manual.tex`. 15 | - Update date in Copyright line in: 16 | - `LICENSE` 17 | - `docs/sphinx/source/conf.py`. 18 | - Update version number and date in: 19 | - `mostver.m` 20 | - `docs/sphinx/source/conf.py` 21 | - `most.m` (copyright line in printout) 22 | - `lib/Contents.m` 23 | - `docs/relnotes/MOST-Release-Notes-#.#.md` 24 | - `docs/src/MOST-manual/MOST-manual.tex` 25 | - title page 26 | - copyright (front page and LICENSE text) 27 | - Appendix B Release History 28 | - `\mostver` (update `\mpver`, `\mptestver`, `\mipsver`, `\mpomver` too) 29 | - Sphinx docs 30 | - `mp-docs-shared/preamble.tex.txt` - \mostver 31 | - `mp-docs-shared/prolog.rst.txt` - in URL in raw-html for |MOSTman| 32 | - In `README.md` and `docs/src/MOST-manual/MOST-manual.tex` 33 | - update output of `test_most` in Section 2.2 34 | - may require first doing: 35 | ```matlab 36 | have_feature('cplex', 0); 37 | have_feature('glpk', 0); 38 | have_feature('intlinprog', 0); 39 | have_feature('mosek', 0); 40 | rmpath('/Users/ray/dev/projects/sopf/dist'); 41 | ``` 42 | - In `docs/src/MOST-manual/MOST-manual.tex` 43 | - update output of run of sample case in Section 2.3.2 44 | ```matlab 45 | mpc = loadcase('ex_case3b'); 46 | transmat = ex_transmat(12); 47 | xgd = loadxgendata('ex_xgd_uc', mpc); 48 | [iwind, mpc, xgd] = addwind('ex_wind_uc', mpc, xgd); 49 | [iess, mpc, xgd, sd] = addstorage('ex_storage', mpc, xgd); 50 | contab = ex_contab(); 51 | profiles = getprofiles('ex_load_profile'); 52 | profiles = getprofiles('ex_wind_profile', profiles, iwind); 53 | mdi = loadmd(mpc, transmat, xgd, sd, contab, profiles); 54 | mpopt = mpoption('verbose', 1); 55 | mdo = most(mdi, mpopt); 56 | ``` 57 | - check for any highlighting `\hl` 58 | - Create new DOI for this version of the User's Manual 59 | - Go to https://doi.org/10.5281/zenodo.3236531 60 | - Click "New Version" to reserve new DOI for new version 61 | - Make updates for current version specific citations: 62 | - version number (3 places) 63 | - year 64 | - latest version DOI, current is: 10.5281/zenodo.11177189 65 | - (update here each time) 66 | ... in the following places ... 67 | - CITATION file 68 | - Citing ... section of README.md 69 | - Citing ... section of User's Manual 70 | - Citing ... section of website (not currently here) 71 | - Make updates for non-version specific citations: 72 | - search everywhere for 10.5281/zenodo.3236531 and update year 73 | - User's Manual 74 | - search citations in all other projects being updated simultaneously 75 | - MATPOWER User's Manual 76 | - search everywhere for 10.5281/zenodo.3236519 and update year (MATPOWER User's Manual) 77 | - User's Manual 78 | - Copy latest `MATPOWER-manual.aux` to `docs/src/MOST-manual` for 79 | `\externaldocument` 80 | - Create `MOST-manual.pdf` from `MOST-manual.tex` and move to `docs`. 81 | - Add release notice with date and version in `CHANGES.md`. 82 | - Commit all changes to `prep-for-release`. 83 | - Push `prep-for-release` to GitHub. 84 | - Make sure CI checks are ok. 85 | - Make copy of `docs/MOST-manual.pdf` named `MOST-manual-x.x.pdf` 86 | - copy to `docs` directory of `matpower.org-static` git repo 87 | - update `MOST-manual.pdf` symlink on `https://matpower.org/docs/` to point 88 | to new `MOST-manual-x.x.pdf` (replaces existing current version) 89 | - `cd dev/projects/matpower.org-static/docs` 90 | - `rm MOST-manual.pdf` 91 | - `ln -s ./MOST-manual-x.x.pdf MOST-manual.pdf` 92 | - commit & push, then pull to matpower.org 93 | - upload `MOST-manual-x.x.pdf` to Zenodo and finish entry for "New Version" 94 | - update: 95 | - Publication date 96 | - Version 97 | - Identifiers: 98 | - version number in "identical to" 99 | - Add link on `https://matpower.org/doc/manuals/` page 100 | 101 | 102 | Release 103 | ------- 104 | - Merge latest `prep-for-release` into `master`. 105 | - Tag with version number, e.g. `1.3`. 106 | - Push `master` to GitHub. 107 | - Publish new release on GitHub: https://github.com/MATPOWER/most/releases/new 108 | - use (possibly shortened) contents of `docs/relnotes/MOST-Release-Notes-#.#.md` 109 | 110 | 111 | Post-release 112 | ------------ 113 | - Merge latest `master` into `release`. 114 | - Push `release` to GitHub. 115 | - In manual 116 | - update version to dev version 117 | - comment out date line so it uses current date 118 | -------------------------------------------------------------------------------- /docs/relnotes/MOST-Release-Notes-1.0.1.md: -------------------------------------------------------------------------------- 1 | What's New in MOST 1.0.1 2 | ------------------------ 3 | 4 | #### Released Oct 30, 2018 5 | 6 | Below is a summary of the changes since version 1.0 of MOST. See the 7 | [`CHANGES.md`][1] file for all the gory details. For release notes for 8 | previous versions, see Appendix B of the [MOST User's Manual][2]. 9 | 10 | #### Bugs Fixed: 11 | - Fix bugs in `plot_uc_data()` resulting in incorrect legends. 12 | - Fix dimension of `RampWear` cost indexing if `mdi.OpenEnded` is true. 13 | - Add missing constant term to objective function value reported by 14 | `most_summary`. 15 | 16 | #### Other Changes: 17 | - LaTeX source code for [MOST User's Manual][2] included in `docs/src`. 18 | - Updated to use OOP notation for `opt_model` object, and avoid calls 19 | to deprecated methods, using `init_indexed_name()` and 20 | `add_lin_constraint()` instead. 21 | - Updated to use MATPOWER's new quadratic costs in `opt_model` in 22 | place of the legacy cost model. 23 | 24 | #### Incompatible Changes: 25 | - Failure of the optimization no longer halts execution and jumps to 26 | the debugger. 27 | - Requires MATPOWER 7.x or later. 28 | 29 | 30 | [1]: https://github.com/MATPOWER/most/blob/master/CHANGES.md 31 | [2]: https://github.com/MATPOWER/most/blob/master/docs/MOST-manual.pdf 32 | -------------------------------------------------------------------------------- /docs/relnotes/MOST-Release-Notes-1.0.2.md: -------------------------------------------------------------------------------- 1 | What's New in MOST 1.0.2 2 | ------------------------ 3 | 4 | #### Released Jun 20, 2019 5 | 6 | Below is a summary of the changes since version 1.0.1 of MOST. See the 7 | [`CHANGES.md`][1] file for all the gory details. For release notes for 8 | previous versions, see Appendix B of the [MOST User's Manual][2]. 9 | 10 | #### Bugs Fixed: 11 | - Fix default solver selection issue in `t_most_w_ds` test. 12 | 13 | #### Other Changes: 14 | - Add `CITATION` file. 15 | - Other miscellaneous documentation updates, e.g. MATPOWER website 16 | links updated to https://matpower.org, separate references for 17 | MATPOWER software and User's Manual, with DOIs. 18 | 19 | 20 | [1]: https://github.com/MATPOWER/most/blob/master/CHANGES.md 21 | [2]: https://github.com/MATPOWER/most/blob/master/docs/MOST-manual.pdf 22 | -------------------------------------------------------------------------------- /docs/relnotes/MOST-Release-Notes-1.1.md: -------------------------------------------------------------------------------- 1 | What's New in MOST 1.1 2 | ---------------------- 3 | 4 | #### Released Oct 8, 2020 5 | 6 | Below is a summary of the changes since version 1.0.2 of MOST. See the 7 | [`CHANGES.md`][1] file for all the gory details. For release notes for 8 | previous versions, see Appendix B of the [MOST User's Manual][2]. 9 | 10 | #### Changes: 11 | - Requires [MATPOWER][4] 7.1 or later. 12 | - Output of `most_summary()` includes sections for fixed loads and for 13 | expected stored energy for storage units. 14 | - Relies on [MP-Opt-Model][3] 3.0, which can be found at 15 | https://github.com/MATPOWER/mp-opt-model and is included in 16 | [MATPOWER][4] 7.1. 17 | - Significant performance improvement for some problems when constructing 18 | sparse matrices for linear constraints or quadratic costs (e.g. during 19 | problem setup). 20 | *Thanks to Daniel Muldrew.* 21 | - Uses the `opt_model.solve()` method rather than calling 22 | `miqps_matpower()` or `qps_matpower()` directly. 23 | - Uses the `opt_model.get_soln()` method to extract variable and shadow 24 | price results, rather than doing the indexing manually. 25 | 26 | #### Bugs Fixed: 27 | - Fix bug [#6][5] where building a model without solving it, or solving a 28 | previously built model resulted in a fatal error. 29 | *Thanks to Baraa Mohandes.* 30 | - Fix bug [#11][6] where storage constraints were not correct for 31 | `t=1` and `rho` not equal to 1. *Thanks to Baraa Mohandes.* 32 | - Fix issue [#16][7], where the `om` field of the output MOST data struct 33 | (`mdo`) was a handle to the same object as as the `om` field of the 34 | input MOST data struct (`mdi`), meaning that changing one would modify 35 | the other. *Thanks to Baraa Mohandes.* 36 | 37 | #### Incompatible Changes: 38 | - Objective function value returned in `mdo.QP.f` updated to include the 39 | previously missing constant term. 40 | 41 | 42 | [1]: ../../CHANGES.md 43 | [2]: ../MOST-manual.pdf 44 | [3]: https://github.com/MATPOWER/mp-opt-model 45 | [4]: https://github.com/MATPOWER/matpower 46 | [5]: https://github.com/MATPOWER/most/issues/6 47 | [6]: https://github.com/MATPOWER/most/issues/11 48 | [7]: https://github.com/MATPOWER/most/issues/16 49 | -------------------------------------------------------------------------------- /docs/relnotes/MOST-Release-Notes-1.2.md: -------------------------------------------------------------------------------- 1 | What's New in MOST 1.2 2 | ---------------------- 3 | 4 | #### Released Dec 13, 2022 5 | 6 | Below is a summary of the changes since version 1.1 of MOST. See the 7 | [`CHANGES.md`][1] file for all the gory details. For release notes for 8 | previous versions, see Appendix B of the [MOST User's Manual][2]. 9 | 10 | #### Changes: 11 | - Ramping reserves and constraints are now included for the 12 | transition from the initial state into period 1, except for 13 | single-period problems. 14 | - Added calculation of expected TLMP (temporal locational marginal 15 | price) based on work by Guo, Chen, Tong in [[1](#references), 16 | [2](#references), [3](#references)]. For generators, these are 17 | returned in `mdo.results.GenTLMP` and `mdo.results.CondGenTLMP`. 18 | For storage units they are returned in `mdo.results.StorageTLMPc`, 19 | `mdo.results.StorageTLMPd`, `mdo.results.CondStorageTLMPc`, and 20 | `mdo.results.CondStorageTLMPd`. See Table 5-13 in the 21 | [MOST User's Manual][2]. 22 | - For deterministic cases with storage where `ForceCyclicStorage` is 0, 23 | ensure that initial storage bounds are equal to initial storage and 24 | output a warning if they are modified. Fix deterministic UC tests 25 | where this was causing results to change depending on value of `rho`. 26 | 27 | #### Bugs Fixed: 28 | - Plotting of commitment schedule using `plot_uc()` did not work 29 | properly in a subplot, such as in `t_most_uc()`. *Thanks to Lim Han.* 30 | - Fix tests that were failing under Octave 7.x. 31 | - Fix issue [#29][3] where a typo caused a check on `md.UC.MinDown` > 1 32 | to be skipped. *Thanks to Talha Iqbal.* 33 | 34 | #### Incompatible Changes: 35 | - Modified definition of ramping reserves for period *t* (and all 36 | corresponding input and output parameters) to refer to the transition 37 | from *t*-1 to *t*, not *t* to *t*+1. This means that the ramping 38 | reserves for the transition into the first period are now optimization 39 | variables and the corresponding constraints are explicit. This is for 40 | multiperiod problems only. Ramping reserves and contraints are explicitly 41 | excluded for single-period problems. 42 | *Note:* This change also corrects an error in (4.11), where \gamma^t 43 | is now correct. Previously it should have been \gamma^{t+1}, as it was 44 | in the code. 45 | 46 | #### References 47 | 48 | 1. Y. Guo, C. Chen and L. Tong, [“Pricing Multi-Interval Dispatch Under 49 | Uncertainty Part I: Dispatch-Following Incentives,”][4] *IEEE Transactions 50 | on Power Systems*, vol. 36, no. 5, pp. 3865–3877, Sept. 2021, 51 | doi: [10.1109/TPWRS.2021.3055730][4]. 52 | 53 | 2. C. Chen, Y. Guo and L. Tong, [“Pricing Multi-Interval Dispatch Under 54 | Uncertainty Part II: Generalization and Performance,”][5] *IEEE Transactions 55 | on Power Systems*, vol. 36, no. 5, pp. 3878–3886, Sept. 2021, 56 | doi: [10.1109/TPWRS.2020.3045162][5]. 57 | 58 | 3. C. Chen and L. Tong, [“Pricing Real-time Stochastic Storage Operations,”][6] 59 | *2022 Power Systems Computation Conference (PSCC)*, June 27–July 1, 2022, 60 | doi: [10.48550/arXiv.2204.08140][6]. 61 | 62 | 63 | [1]: ../../CHANGES.md 64 | [2]: ../MOST-manual.pdf 65 | [3]: https://github.com/MATPOWER/most/issues/29 66 | [4]: https://doi.org/10.1109/TPWRS.2021.3055730 67 | [5]: https://doi.org/10.1109/TPWRS.2020.3045162 68 | [6]: https://doi.org/10.48550/arXiv.2204.08140 69 | 70 | -------------------------------------------------------------------------------- /docs/relnotes/MOST-Release-Notes-1.3.md: -------------------------------------------------------------------------------- 1 | What's New in MOST 1.3 2 | ---------------------- 3 | 4 | #### Released May 10, 2024 5 | 6 | Below is a summary of the changes since version 1.2 of MOST. See the 7 | [`CHANGES.md`][1] file for all the gory details. For release notes for 8 | previous versions, see Appendix B of the [MOST User's Manual][2]. 9 | 10 | #### New Features: 11 | - New Sphinx-based [Reference documentation][3]. 12 | 13 | #### Changes: 14 | - Reduce memory requirements for long horizon cases with storage by 15 | forming/storing transposes of matrices for storage constraints. 16 | *Requires [MP-Opt-Model][4] 4.2 or later.* 17 | - Speed up building unit commitment (min up/down time) constraints. 18 | Improvement can be quite substantial on large problems. 19 | 20 | #### Bugs Fixed: 21 | - Fix [issue #37][5] which caused a fatal error in storage input 22 | checks with multiple storage units under some circumstances. 23 | *Thanks to Keir Steegstra.* 24 | - Fix [issue #39][6] in which the value of `mdi.Delta_T`, the number 25 | of hours represented by each period, was not being accounted for in 26 | most of the terms in the objective function. 27 | *Thanks to Stefano Nicolin.* 28 | 29 | #### Incompatible Changes: 30 | - Remove extra column in `mdo.results.ExpectedRampCost` and ignore for 31 | single period. 32 | 33 | 34 | [1]: ../../CHANGES.md 35 | [2]: ../MOST-manual.pdf 36 | [3]: https://matpower.org/doc/most/ 37 | [4]: https://github.com/MATPOWER/mp-opt-model/ 38 | [5]: https://github.com/MATPOWER/most/issues/37 39 | [6]: https://github.com/MATPOWER/most/issues/39 40 | -------------------------------------------------------------------------------- /docs/sphinx/Building-Docs.md: -------------------------------------------------------------------------------- 1 | How to Build the Documentation 2 | ============================== 3 | 4 | The documentation for this project is based on [Sphinx][1], a [Python][2]-based 5 | documentation processing package. The documentation source is written in the 6 | [reStructuredText][3] (rST) format and compiled to HTML and/or PDF formats. 7 | 8 | As part of [MATPOWER][4], the documentation for this project is normally 9 | built as a component of the overall MATPOWER documentation. However, the HTML 10 | version can be build separately by following the steps below. 11 | 12 | 1. Install [Python][2]. 13 | 14 | 2. Create and activate a Python [virtual environment][5]. *(optional, but recommended)* 15 | 16 | Unix/macOS 17 | ``` 18 | python3 -m venv sphinx-env 19 | source sphinx-env/bin/activate 20 | ``` 21 | 22 | Windows 23 | ``` 24 | python3 -m venv sphinx-env 25 | .\sphinx-env\Scripts\activate 26 | ``` 27 | 28 | Then confirm you're in the virtual environment: 29 | 30 | Unix/macOS 31 | ``` 32 | which python 33 | ``` 34 | 35 | Windows 36 | ``` 37 | where python 38 | ``` 39 | 40 | To leave the virtual environment: 41 | ``` 42 | deactivate 43 | ``` 44 | 45 | 3. Install [Sphinx][1], [sphinxcontrib-matlabdomain][6], [sphinx-tabs][7] and 46 | [sphinx-rtd-theme][8]. 47 | ``` 48 | pip install -U sphinx 49 | pip install -U sphinxcontrib-matlabdomain 50 | pip install -U sphinx-tabs 51 | pip install -U sphinx-rtd-theme 52 | ``` 53 | 54 | 4. Include [mp-docs-shared][9], a collection of files shared by all of the 55 | [Sphinx][1] documention for [MATPOWER][4], in the `source` directory. 56 | ``` 57 | cd docs/sphinx/source 58 | git clone https://github.com/MATPOWER/mp-docs-shared.git 59 | ``` 60 | 61 | 5. In the `docs/sphinx` directory, type: 62 | ``` 63 | make html 64 | ``` 65 | 66 | The resulting HTML documentation can be found in `docs/sphinx/build/html` and 67 | accessed by opening `docs/sphinx/build/html/index.html` in a web browser. 68 | 69 | 70 | ---- 71 | [1]: https://www.sphinx-doc.org 72 | [2]: https://python.org 73 | [3]: https://www.writethedocs.org/guide/writing/reStructuredText/ 74 | [4]: https://matpower.org 75 | [5]: https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment 76 | [6]: https://pypi.org/project/sphinxcontrib-matlabdomain/ 77 | [7]: https://pypi.org/project/sphinx-tabs/ 78 | [8]: https://pypi.org/project/sphinx-rtd-theme/ 79 | [9]: https://github.com/MATPOWER/mp-docs-shared/ 80 | -------------------------------------------------------------------------------- /docs/sphinx/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /docs/sphinx/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=source 11 | set BUILDDIR=build 12 | 13 | %SPHINXBUILD% >NUL 2>NUL 14 | if errorlevel 9009 ( 15 | echo. 16 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 17 | echo.installed, then set the SPHINXBUILD environment variable to point 18 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 19 | echo.may add the Sphinx directory to PATH. 20 | echo. 21 | echo.If you don't have Sphinx installed, grab it from 22 | echo.https://www.sphinx-doc.org/ 23 | exit /b 1 24 | ) 25 | 26 | if "%1" == "" goto help 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /docs/sphinx/source/_static/css/matpower.css: -------------------------------------------------------------------------------- 1 | ../../mp-docs-shared/css/matpower.css -------------------------------------------------------------------------------- /docs/sphinx/source/conf.py: -------------------------------------------------------------------------------- 1 | # Configuration file for the Sphinx documentation builder. 2 | # 3 | # This file only contains a selection of the most common options. For a full 4 | # list see the documentation: 5 | # https://www.sphinx-doc.org/en/master/usage/configuration.html 6 | 7 | # -- Path setup -------------------------------------------------------------- 8 | 9 | # If extensions (or modules to document with autodoc) are in another directory, 10 | # add these directories to sys.path here. If the directory is relative to the 11 | # documentation root, use os.path.abspath to make it absolute, like shown here. 12 | # 13 | import sphinx_rtd_theme 14 | import re 15 | 16 | 17 | # -- Project information ----------------------------------------------------- 18 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information 19 | 20 | project = 'MOST' 21 | copyright = '2011-2025, Power Systems Engineering Research Center (PSERC)' 22 | author = 'Ray D. Zimmerman, Carlos E. Murillo-Sánchez' 23 | 24 | # The full version, including alpha/beta/rc tags 25 | release = '1.3' 26 | 27 | 28 | # -- General configuration --------------------------------------------------- 29 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration 30 | 31 | extensions = [ 32 | 'sphinxcontrib.matlab', 33 | 'sphinx.ext.autodoc', 34 | 'sphinx.ext.extlinks', 35 | 'sphinx.ext.napoleon', 36 | 'sphinx_rtd_theme', 37 | 'sphinx_tabs.tabs', 38 | ] 39 | matlab_src_dir = 'matlab-source' 40 | primary_domain = 'mat' 41 | 42 | templates_path = ['_templates'] 43 | exclude_patterns = [] 44 | 45 | 46 | # -- Options for HTML output ------------------------------------------------- 47 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output 48 | 49 | html_theme = 'sphinx_rtd_theme' 50 | html_static_path = ['_static'] 51 | html_css_files = ['css/matpower.css'] 52 | 53 | 54 | # -- Options for Sphinx RTD Theme ------------------------------------------------ 55 | # See https://pypi.org/project/sphinx-rtd-theme/ 56 | # https://github.com/readthedocs/sphinx_rtd_theme 57 | # https://sphinx-rtd-theme.readthedocs.io/ 58 | # https://sphinx-rtd-theme.readthedocs.io/en/stable/configuring.html 59 | 60 | html_theme_options = { 61 | 'logo_only': False, 62 | 'display_version': True, 63 | 'prev_next_buttons_location': 'both', 64 | 'style_nav_header_background': '#568085', # medium dark teal 65 | } 66 | 67 | 68 | # -- Other Options ----------------------------------------------------------- 69 | 70 | matlab_short_links = True 71 | # matlab_auto_link = "basic" 72 | matlab_auto_link = "all" 73 | matlab_show_property_default_value = True 74 | matlab_show_property_specs = True 75 | # autoclass_content = 'both' # 'class', 'init', 'both' 76 | autodoc_member_order = 'bysource' # 'alphabetical', 'groupwise', 'bysource' 77 | napoleon_use_param = False 78 | napoleon_use_rtype = False 79 | napoleon_custom_sections = [ 80 | ('Input', 'params_style'), 81 | ('Inputs', 'params_style'), 82 | ('Output', 'params_style'), 83 | ('Outputs', 'params_style'), 84 | ] 85 | 86 | rst_prolog = """ 87 | .. include:: /mp-docs-shared/prolog.rst.txt 88 | """ 89 | extlinks = { 90 | # 'mostman': ('https://matpower.org/docs/MOST-manual-%s.pdf', 'MOST User''s Manual'), 91 | 'doi': ('https://doi.org/%s', 'doi: %s'), 92 | } 93 | 94 | numfig = True # enable numbered references 95 | numfig_format = { 96 | 'figure': 'Figure %s', 97 | 'code-block': 'Listing %s', 98 | 'section': 'Section %s' } 99 | highlight_language = 'octave' # 'matlab' has issues with '...' 100 | # e.g. y = fcn(x, ...) 101 | math_number_all = True 102 | math_eqref_format = '({number})' 103 | 104 | 105 | # -- MathJax Macro Setup ----------------------------------------------------- 106 | # -- based on https://stackoverflow.com/questions/9728292/creating-latex-math-macros-within-sphinx#comment124804327_60497853 107 | mathjax3_config = { 108 | 'loader': {'load': ['[tex]/upgreek']}, 109 | 'tex': {'packages': {'[+]': ['upgreek']}, 110 | 'macros': {}} # create empty 111 | } 112 | 113 | with open('mp-docs-shared/mathCmds.tex.txt', 'r') as f: 114 | for line in f: 115 | macros = re.findall(r'(?` 4 | 5 | addgen2mpc 6 | ---------- 7 | 8 | .. autofunction:: addgen2mpc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/addstorage.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | addstorage 6 | ---------- 7 | 8 | .. autofunction:: addstorage 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/addwind.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | addwind 6 | ------- 7 | 8 | .. autofunction:: addwind 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/apply_profile.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | apply_profile 6 | ------------- 7 | 8 | .. autofunction:: apply_profile 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/c118swf.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | c118swf 6 | ------- 7 | 8 | .. autofunction:: c118swf 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_case3a.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_case3a 6 | --------- 7 | 8 | .. autofunction:: ex_case3a 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_case3b.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_case3b 6 | --------- 7 | 8 | .. autofunction:: ex_case3b 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_contab.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_contab 6 | --------- 7 | 8 | .. autofunction:: ex_contab 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_load_profile.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_load_profile 6 | --------------- 7 | 8 | .. autofunction:: ex_load_profile 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_storage.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_storage 6 | ---------- 7 | 8 | .. autofunction:: ex_storage 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_transmat.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_transmat 6 | ----------- 7 | 8 | .. autofunction:: ex_transmat 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_wind.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_wind 6 | ------- 7 | 8 | .. autofunction:: ex_wind 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_wind_profile.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_wind_profile 6 | --------------- 7 | 8 | .. autofunction:: ex_wind_profile 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_wind_profile_d.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_wind_profile_d 6 | ----------------- 7 | 8 | .. autofunction:: ex_wind_profile_d 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_wind_uc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_wind_uc 6 | ---------- 7 | 8 | .. autofunction:: ex_wind_uc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_xgd.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_xgd 6 | ------ 7 | 8 | .. autofunction:: ex_xgd 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_xgd_ramp.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_xgd_ramp 6 | ----------- 7 | 8 | .. autofunction:: ex_xgd_ramp 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_xgd_res.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_xgd_res 6 | ---------- 7 | 8 | .. autofunction:: ex_xgd_res 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/ex_xgd_uc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | ex_xgd_uc 6 | --------- 7 | 8 | .. autofunction:: ex_xgd_uc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/filter_ramp_transitions.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | filter_ramp_transitions 6 | ----------------------- 7 | 8 | .. autofunction:: filter_ramp_transitions 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/getprofiles.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | getprofiles 6 | ----------- 7 | 8 | .. autofunction:: getprofiles 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/idx_profile.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | idx_profile 6 | ----------- 7 | 8 | .. autofunction:: idx_profile 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/loadgenericdata.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | loadgenericdata 6 | --------------- 7 | 8 | .. autofunction:: loadgenericdata 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/loadmd.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | loadmd 6 | ------ 7 | 8 | .. autofunction:: loadmd 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/loadstoragedata.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | loadstoragedata 6 | --------------- 7 | 8 | .. autofunction:: loadstoragedata 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/loadxgendata.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | loadxgendata 6 | ------------ 7 | 8 | .. autofunction:: loadxgendata 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/md_init.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | md_init 6 | ------- 7 | 8 | .. autofunction:: md_init 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/most.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | most 6 | ---- 7 | 8 | .. autofunction:: most 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/most_ex1_ed.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | most_ex1_ed 6 | ----------- 7 | 8 | .. autofunction:: most_ex1_ed 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/most_ex2_dcopf.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | most_ex2_dcopf 6 | -------------- 7 | 8 | .. autofunction:: most_ex2_dcopf 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/most_ex3_dcopf_w_uc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | most_ex3_dcopf_w_uc 6 | ------------------- 7 | 8 | .. autofunction:: most_ex3_dcopf_w_uc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/most_ex4_dcopf_ss.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | most_ex4_dcopf_ss 6 | ----------------- 7 | 8 | .. autofunction:: most_ex4_dcopf_ss 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/most_ex5_mpopf.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | most_ex5_mpopf 6 | -------------- 7 | 8 | .. autofunction:: most_ex5_mpopf 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/most_ex6_uc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | most_ex6_uc 6 | ----------- 7 | 8 | .. autofunction:: most_ex6_uc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/most_ex7_suc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | most_ex7_suc 6 | ------------ 7 | 8 | .. autofunction:: most_ex7_suc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/most_summary.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | most_summary 6 | ------------ 7 | 8 | .. autofunction:: most_summary 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/mostver.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | mostver 6 | ------- 7 | 8 | .. autofunction:: mostver 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/mpoption_info_most.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | mpoption_info_most 6 | ------------------ 7 | 8 | .. autofunction:: mpoption_info_most 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/plot_gen.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | plot_gen 6 | -------- 7 | 8 | .. autofunction:: plot_gen 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/plot_storage.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | plot_storage 6 | ------------ 7 | 8 | .. autofunction:: plot_storage 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/plot_uc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | plot_uc 6 | ------- 7 | 8 | .. autofunction:: plot_uc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/plot_uc_data.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | plot_uc_data 6 | ------------ 7 | 8 | .. autofunction:: plot_uc_data 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_case30_most.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_case30_most 6 | ------------- 7 | 8 | .. autofunction:: t_case30_most 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_case3_most.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_case3_most 6 | ------------ 7 | 8 | .. autofunction:: t_case3_most 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_case_tlmp.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_case_tlmp 6 | ----------- 7 | 8 | .. autofunction:: t_case_tlmp 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_case_tlmp_storage.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_case_tlmp_storage 6 | ------------------- 7 | 8 | .. autofunction:: t_case_tlmp_storage 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_30b_1_1_0.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_30b_1_1_0 6 | ---------------- 7 | 8 | .. autofunction:: t_most_30b_1_1_0 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_30b_1_1_0_uc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_30b_1_1_0_uc 6 | ------------------- 7 | 8 | .. autofunction:: t_most_30b_1_1_0_uc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_30b_1_1_17.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_30b_1_1_17 6 | ----------------- 7 | 8 | .. autofunction:: t_most_30b_1_1_17 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_30b_3_1_0.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_30b_3_1_0 6 | ---------------- 7 | 8 | .. autofunction:: t_most_30b_3_1_0 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_30b_3_1_17.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_30b_3_1_17 6 | ----------------- 7 | 8 | .. autofunction:: t_most_30b_3_1_17 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_3b_1_1_0.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_3b_1_1_0 6 | --------------- 7 | 8 | .. autofunction:: t_most_3b_1_1_0 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_3b_1_1_2.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_3b_1_1_2 6 | --------------- 7 | 8 | .. autofunction:: t_most_3b_1_1_2 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_3b_3_1_0.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_3b_3_1_0 6 | --------------- 7 | 8 | .. autofunction:: t_most_3b_3_1_0 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_3b_3_1_2.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_3b_3_1_2 6 | --------------- 7 | 8 | .. autofunction:: t_most_3b_3_1_2 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_fixed_res.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_fixed_res 6 | ---------------- 7 | 8 | .. autofunction:: t_most_fixed_res 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_mpopf.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_mpopf 6 | ------------ 7 | 8 | .. autofunction:: t_most_mpopf 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_sp.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_sp 6 | --------- 7 | 8 | .. autofunction:: t_most_sp 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_spuc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_spuc 6 | ----------- 7 | 8 | .. autofunction:: t_most_spuc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_suc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_suc 6 | ---------- 7 | 8 | .. autofunction:: t_most_suc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_tlmp.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_tlmp 6 | ----------- 7 | 8 | .. autofunction:: t_most_tlmp 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_uc.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_uc 6 | --------- 7 | 8 | .. autofunction:: t_most_uc 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/t_most_w_ds.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | t_most_w_ds 6 | ----------- 7 | 8 | .. autofunction:: t_most_w_ds 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/test_most.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | test_most 6 | --------- 7 | 8 | .. autofunction:: test_most 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/functions/uniformwindprofile.rst: -------------------------------------------------------------------------------- 1 | .. currentmodule:: most 2 | 3 | :raw-html:`
` 4 | 5 | uniformwindprofile 6 | ------------------ 7 | 8 | .. autofunction:: uniformwindprofile 9 | -------------------------------------------------------------------------------- /docs/sphinx/source/index.rst: -------------------------------------------------------------------------------- 1 | .. _most_users_manual: 2 | 3 | ################## 4 | MOST User's Manual 5 | ################## 6 | 7 | .. toctree:: 8 | :maxdepth: 2 9 | :numbered: 3 10 | 11 | .. note:: 12 | 13 | The new web-based version of the MOST User's Manual is not yet available. Please, continue to use the PDF version of the |MOSTman| for now, along with the new reference documentation below. 14 | 15 | 16 | Reference 17 | ========= 18 | 19 | The primary sources of documentation for MOST, aside from the legacy PDF |MOSTman|, are this :ref:`sec_most_reference` documentation and the built-in ``help`` command. As with the built-in functions and toolbox routines in |MATLAB>| and |Octave>|, you can type ``help`` followed by the name of a command or M-file to get help on that particular function. 20 | 21 | .. toctree:: 22 | 23 | reference 24 | -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/addgen2mpc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/addgen2mpc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/addstorage.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/addstorage.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/addwind.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/addwind.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/apply_profile.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/apply_profile.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/c118swf.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/c118swf.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_case3a.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_case3a.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_case3b.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_case3b.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_contab.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_contab.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_load_profile.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_load_profile.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_storage.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_storage.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_transmat.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_transmat.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_wind.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_wind.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_wind_profile.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_wind_profile.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_wind_profile_d.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_wind_profile_d.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_wind_uc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_wind_uc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_xgd.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_xgd.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_xgd_ramp.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_xgd_ramp.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_xgd_res.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_xgd_res.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/ex_xgd_uc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/ex_xgd_uc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/filter_ramp_transitions.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/filter_ramp_transitions.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/getprofiles.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/getprofiles.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/idx_profile.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/idx_profile.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/loadgenericdata.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/loadgenericdata.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/loadmd.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/loadmd.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/loadstoragedata.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/loadstoragedata.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/loadxgendata.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/loadxgendata.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/md_init.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/md_init.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/most.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/most.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/most_ex1_ed.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/most_ex1_ed.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/most_ex2_dcopf.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/most_ex2_dcopf.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/most_ex3_dcopf_w_uc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/most_ex3_dcopf_w_uc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/most_ex4_dcopf_ss.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/most_ex4_dcopf_ss.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/most_ex5_mpopf.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/most_ex5_mpopf.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/most_ex6_uc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/most_ex6_uc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/most_ex7_suc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/most_ex7_suc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/most_summary.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/most_summary.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/mostver.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/mostver.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/mpoption_info_most.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/mpoption_info_most.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/plot_gen.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/plot_gen.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/plot_storage.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/plot_storage.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/plot_uc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/plot_uc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/plot_uc_data.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/plot_uc_data.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_case30_most.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_case30_most.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_case3_most.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_case3_most.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_case_tlmp.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_case_tlmp.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_case_tlmp_storage.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_case_tlmp_storage.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_30b_1_1_0.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_30b_1_1_0.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_30b_1_1_0_uc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_30b_1_1_0_uc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_30b_1_1_17.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_30b_1_1_17.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_30b_3_1_0.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_30b_3_1_0.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_30b_3_1_17.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_30b_3_1_17.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_3b_1_1_0.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_3b_1_1_0.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_3b_1_1_2.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_3b_1_1_2.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_3b_3_1_0.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_3b_3_1_0.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_3b_3_1_2.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_3b_3_1_2.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_fixed_res.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_fixed_res.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_mpopf.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_mpopf.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_sp.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_sp.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_spuc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_spuc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_suc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_suc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_tlmp.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_tlmp.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_uc.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_uc.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/t_most_w_ds.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/t_most_w_ds.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/test_most.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/test_most.m -------------------------------------------------------------------------------- /docs/sphinx/source/matlab-source/most/uniformwindprofile.m: -------------------------------------------------------------------------------- 1 | ../../../../../lib/t/uniformwindprofile.m -------------------------------------------------------------------------------- /docs/sphinx/source/reference.rst: -------------------------------------------------------------------------------- 1 | .. _sec_most_reference: 2 | 3 | Reference 4 | ========= 5 | 6 | 7 | Main MOST Functions 8 | ------------------- 9 | 10 | Functions to load data for MOST, run the |MOSTname|, and print out some summary results. 11 | 12 | .. toctree:: 13 | 14 | functions/loadmd 15 | functions/most 16 | functions/most_summary 17 | 18 | 19 | Functions for plotting results. 20 | 21 | .. toctree:: 22 | 23 | functions/plot_gen 24 | functions/plot_storage 25 | functions/plot_uc 26 | functions/plot_uc_data 27 | 28 | 29 | Other Functions 30 | --------------- 31 | 32 | Additional functions for use with MOST. 33 | 34 | .. toctree:: 35 | 36 | functions/mostver 37 | functions/addgen2mpc 38 | functions/addstorage 39 | functions/addwind 40 | functions/apply_profile 41 | functions/filter_ramp_transitions 42 | functions/getprofiles 43 | functions/idx_profile 44 | functions/loadstoragedata 45 | functions/loadxgendata 46 | functions/md_init 47 | functions/uniformwindprofile 48 | 49 | 50 | MOST Examples 51 | ------------- 52 | 53 | These are examples of using MOST to solve various classes of problems. 54 | 55 | .. toctree:: 56 | 57 | functions/most_ex1_ed 58 | functions/most_ex2_dcopf 59 | functions/most_ex3_dcopf_w_uc 60 | functions/most_ex4_dcopf_ss 61 | functions/most_ex5_mpopf 62 | functions/most_ex6_uc 63 | functions/most_ex7_suc 64 | 65 | Data for MOST examples. 66 | 67 | .. toctree:: 68 | 69 | functions/ex_case3a 70 | functions/ex_case3b 71 | functions/ex_contab 72 | functions/ex_load_profile 73 | functions/ex_storage 74 | functions/ex_transmat 75 | functions/ex_wind 76 | functions/ex_wind_profile 77 | functions/ex_wind_profile_d 78 | functions/ex_wind_uc 79 | functions/ex_xgd 80 | functions/ex_xgd_ramp 81 | functions/ex_xgd_res 82 | functions/ex_xgd_uc 83 | 84 | 85 | MOST Tests 86 | ---------- 87 | 88 | These functions test that MOST is installed and functioning as expected. 89 | 90 | .. toctree:: 91 | 92 | functions/test_most 93 | functions/t_most_3b_1_1_0 94 | functions/t_most_3b_1_1_2 95 | functions/t_most_3b_3_1_0 96 | functions/t_most_3b_3_1_2 97 | functions/t_most_30b_1_1_0 98 | functions/t_most_30b_1_1_17 99 | functions/t_most_30b_3_1_0 100 | functions/t_most_30b_3_1_17 101 | functions/t_most_fixed_res 102 | functions/t_most_30b_1_1_0_uc 103 | functions/t_most_sp 104 | functions/t_most_spuc 105 | functions/t_most_mpopf 106 | functions/t_most_uc 107 | functions/t_most_suc 108 | functions/t_most_tlmp 109 | functions/t_most_w_ds 110 | 111 | Data for MOST tests. 112 | 113 | .. toctree:: 114 | 115 | functions/c118swf 116 | functions/t_case30_most 117 | functions/t_case3_most 118 | functions/t_case_tlmp 119 | functions/t_case_tlmp_storage 120 | 121 | 122 | Private Functions 123 | ----------------- 124 | 125 | The following are private functions that are used to implement functionality used by other functions. 126 | 127 | .. toctree:: 128 | 129 | functions/loadgenericdata 130 | functions/mpoption_info_most 131 | -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/3-bus-ex.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/3-bus-ex.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/load_wind_profiles.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/load_wind_profiles.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/loadmd.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/loadmd.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/most-multi-period-problems-14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/most-multi-period-problems-14.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/most-single-period-problems-16.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/most-single-period-problems-16.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/ramping-9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/ramping-9.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/reserves-single-base.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/reserves-single-base.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/reserves.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/reserves.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/most-multi-period-problems.graffle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/most-multi-period-problems.graffle -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/most-single-period-problems.graffle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/most-single-period-problems.graffle -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image10.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image11.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image12.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image12.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image13.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image14.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image21.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image21.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image22.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image22.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image23.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image23.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image24.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image24.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image25.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image25.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image26.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image26.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image27.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image27.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image28.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image28.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image29.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image29.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image4.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image5.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image6.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image7.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image7.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image8.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image8.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves-single-base.graffle/image9.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image13.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image13.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image14.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image14.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image23.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image23.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image24.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image24.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image26.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image26.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image27.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image27.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image28.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image28.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image29.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image29.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image30.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image30.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image31.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image31.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image32.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image32.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image33.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image33.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image34.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image34.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image35.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image35.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image36.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image36.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image38.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image38.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image39.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image39.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image40.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image40.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image41.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image41.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image42.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image42.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image43.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image43.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image44.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image44.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image45.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image45.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/reserves.graffle/image46.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/reserves.graffle/image46.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image24.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image24.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image25.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image25.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image26.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image26.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image27.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image27.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image28.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image28.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image29.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image29.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image30.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image30.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image31.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image31.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image32.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image32.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image33.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image33.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image36.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image36.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/storage.graffle/image37.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/storage.graffle/image37.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/structure.graffle/image55.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/structure.graffle/image55.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/structure.graffle/image59.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/structure.graffle/image59.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/structure.graffle/image60.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/structure.graffle/image60.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/structure.graffle/image61.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/structure.graffle/image61.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/src/structure.graffle/image62.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/src/structure.graffle/image62.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/storage-18.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/storage-18.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/structure-multi-period-17.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/structure-multi-period-17.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/structure-multi-period.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/structure-multi-period.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/structure-multi-scenario.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/structure-multi-scenario.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/structure.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/structure.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/suc-ex-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/suc-ex-2.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/suc-ex-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/suc-ex-3.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/suc-ex-4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/suc-ex-4.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/suc-ex-5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/suc-ex-5.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/uc-ex-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/uc-ex-1.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/uc-ex-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/uc-ex-2.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/uc-ex-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/uc-ex-3.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/uc-ex-4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/uc-ex-4.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/uc-ex-5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/uc-ex-5.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/uc-ex-6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/uc-ex-6.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/wind_profile_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/wind_profile_1.pdf -------------------------------------------------------------------------------- /docs/src/MOST-manual/figures/wind_profile_2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/docs/src/MOST-manual/figures/wind_profile_2.pdf -------------------------------------------------------------------------------- /lib/Contents.m: -------------------------------------------------------------------------------- 1 | % MOST 2 | % Version 1.3 10-May-2024 3 | % 4 | % The MATPOWER Optimal Scheduling Tool (MOST) is framework for solving 5 | % generalized steady-state electric power scheduling problems. 6 | % 7 | % MOST can be used to solve problems as simple as a deterministic, 8 | % single period economic dispatch problem with no transmission 9 | % constraints or as complex as a stochastic, security-constrained, 10 | % combined unit-commitment and multiperiod optimal power flow problem 11 | % with locational contingency and load-following reserves, ramping 12 | % costs and constraints, deferrable demands, lossy storage resources 13 | % and uncertain renewable generation. 14 | % 15 | % While the problem formulation is general and incorporates a full 16 | % nonlinear AC network model, the current implementation is limited 17 | % to DC power flow modeling of the network. Some work has been done 18 | % on an AC implementation, but it is not yet ready for release. 19 | % 20 | % The primary developers of MOST are Carlos E. Murillo-Sanchez and 21 | % Ray D. Zimmerman, with significant contributions from 22 | % Daniel Munoz-Alvarez and Alberto J. Lamadrid. It is built on top of 23 | % MATPOWER, a package of MATLAB/Octave M-files for solving power flow 24 | % and optimal power flow problems. 25 | % 26 | % The latest version of MOST can be found on GitHub at: 27 | % 28 | % https://github.com/MATPOWER/most 29 | % 30 | % MOST is covered by the 3-clause BSD License (see LICENSE for details). 31 | 32 | % MOST 33 | % Copyright (c) 2010-2024, Power Systems Engineering Research Center (PSERC) 34 | % by Carlos E. Murillo-Sanchez, PSERC Cornell & Universidad Nacional de Colombia 35 | % and Ray Zimmerman, PSERC Cornell 36 | % 37 | % This file is part of MOST. 38 | % Covered by the 3-clause BSD License (see LICENSE file for details). 39 | % See https://github.com/MATPOWER/most for more info. 40 | -------------------------------------------------------------------------------- /lib/addgen2mpc.m: -------------------------------------------------------------------------------- 1 | function [mpco, NewGenIdx] = addgen2mpc(mpci, gen, gencost, fuel) 2 | % addgen2mpc - Adds a set of generators to a MATPOWER case struct. 3 | % :: 4 | % 5 | % [NEW_MPC, IDX] = ADDGEN2MPC(MPC, GEN, GENCOST, GEN_TYPE) 6 | % 7 | % Inserts a set of generators to a MATPOWER case struct by adding the 8 | % info of the new generators (in inputs GEN, GENCOST and GEN_TYPE) to the 9 | % bottom of the corresponding tables (fields of MPC). Dimensions must 10 | % be consistent. 11 | % 12 | % Inputs: 13 | % MPC : standard MATPOWER case struct, with the following additional 14 | % fields: 15 | % .genfuel : (optional) cell array of strings with fuel type 16 | % (filled with 'unknown' if missing) 17 | % .i : vector of generator indices for units of the 18 | % specified fuel type 19 | % GEN: standard MATPOWER generator matrix for units to be added 20 | % GENCOST: standard MATPOWER generator cost matrix for units to be added 21 | % GEN_TYPE: string or cell array of names of fuel or type of new gens 22 | % 23 | % Outputs: 24 | % NEW_MPC : the new MATPOWER case with the additional generators 25 | % appended to GEN, GENCOST, GENFUEL and additional field 26 | % .i : vector of generator indices for units of the 27 | % specified fuel type 28 | % IDX : generator indices of the newly added generators 29 | 30 | % MOST 31 | % Copyright (c) 2013-2024, Power Systems Engineering Research Center (PSERC) 32 | % by Daniel Munoz-Alvarez and Ray Zimmerman, PSERC Cornell 33 | % 34 | % This file is part of MOST. 35 | % Covered by the 3-clause BSD License (see LICENSE file for details). 36 | % See https://github.com/MATPOWER/most for more info. 37 | 38 | [ng, ncg] = size(mpci.gen); 39 | [nr, nc] = size(gen); 40 | [ng2, ncgc] = size(mpci.gencost); 41 | [nr2, ncgc2] = size(gencost); 42 | if nr ~= nr2 43 | error('addgen2mpc: number of rows in GEN (%d) and GENCOST (%d) must agree', nr, nr2); 44 | end 45 | if ng ~= ng2 46 | error('addgen2mpc: number of rows in MPC.GEN (%d) and MPC.GENCOST (%d) must agree', ng, ng2); 47 | end 48 | 49 | %% append rows to GEN 50 | mpco = mpci; 51 | if nc <= ncg 52 | mpco.gen = [mpco.gen ; gen zeros(nr, ncg-nc)]; 53 | else 54 | error('addgen2mpc: number of columns of GEN (%d) exceeds number of columns of MPC.GEN (%d)', nc, ncg); 55 | end 56 | 57 | %% append rows to GENCOST 58 | dim_gencost = size(gencost); 59 | dim_gencost_cur = size(mpco.gencost); 60 | if dim_gencost(2) < dim_gencost_cur(2) 61 | mpco.gencost = [mpco.gencost ; [gencost zeros(dim_gencost(1),dim_gencost_cur(2)-dim_gencost(2))]]; 62 | elseif dim_gencost(2) > dim_gencost_cur(2) 63 | mpco.gencost = [mpco.gencost zeros(dim_gencost_cur(1),dim_gencost(2)-dim_gencost_cur(2))]; 64 | mpco.gencost = [mpco.gencost ; gencost]; 65 | else 66 | mpco.gencost = [mpco.gencost ; gencost]; 67 | end 68 | 69 | %% initialize 'genfuel' and 'i' fields if missing 70 | if ~isfield(mpco, 'genfuel') 71 | mpco.genfuel = mat2cell(repmat('unknown', ng, 1), ones(ng,1), 7); 72 | end 73 | if ~isfield(mpco,['i' fuel]) 74 | mpco.(['i' fuel]) = []; 75 | end 76 | 77 | %% append 'genfuel' and 'i' fields 78 | if iscell(fuel) 79 | for i = dim_gencost(1) 80 | mpco.genfuel = [mpco.genfuel ; fuel{i}]; 81 | mpco.(['i' fuel{i}]) = [ mpco.(['i' fuel{i}]) ; dim_gencost_cur(1) + i ]; 82 | end 83 | elseif ischar(fuel) 84 | for i = 1:dim_gencost(1) 85 | mpco.genfuel = [ mpco.genfuel ; fuel ]; 86 | mpco.(['i' fuel]) = [ mpco.(['i' fuel]) ; dim_gencost_cur(1) + i ]; 87 | end 88 | else 89 | error('addgen2mpc: GEN_TYPE must be a string (or cell array of strings) indicating the fuel type of the new generators'); 90 | end 91 | 92 | %% expand reserves parameters, if present 93 | if isfield(mpco, 'reserves') 94 | ngr = size(mpco.reserves.cost, 1); 95 | %% expand zones 96 | mpco.reserves.zones(end, ng+nr) = 0; 97 | if ngr == ng %% expand cost and qty 98 | mpco.reserves.cost(ng+nr, 1) = 0; 99 | if isfield(mpco.reserves, 'qty') 100 | mpco.reserves.qty(ng+nr, 1) = 0; 101 | end 102 | end 103 | end 104 | 105 | NewGenIdx = ( ng + 1 : size(mpco.gen,1) )'; 106 | -------------------------------------------------------------------------------- /lib/addwind.m: -------------------------------------------------------------------------------- 1 | function [idx, new_mpc, new_xgd] = addwind(wind, mpc, xgd) 2 | % addwind - Adds wind generators and corresponding xGenData to existing data. 3 | % :: 4 | % 5 | % [IDX, NEW_MPC] = ADDWIND(WIND, MPC) 6 | % [IDX, NEW_MPC, NEW_XGD] = ADDWIND(WIND, MPC) 7 | % [IDX, NEW_MPC, NEW_XGD] = ADDWIND(WIND, MPC, XGD) 8 | % 9 | % Given a WindUnitData structure, or the name of a file containing such 10 | % a structure, this function adds the specified wind generators to an 11 | % existing MATPOWER case and xGenData struct. 12 | % 13 | % Inputs: 14 | % WIND : a WindUnitData struct or the name of an M-file 15 | % or MAT-file that returns one, with the following fields 16 | % .gen : rows to be appended to the GEN matrix from MPC 17 | % .gencost : (optional) rows to be added to the GENCOST matrix 18 | % from MPC, default is zero cost 19 | % .xgd_table : xGenData table struct or filename providing data for 20 | % the wind units being added. See LOADXGENDATA for 21 | % more information on the xGenData table format. 22 | % MPC : MATPOWER case struct to which wind generators will be added 23 | % XGD : (optional) xGenData struct corresponding to the generators 24 | % already in MPC, to which the new xGenData for the wind units 25 | % will be added. 26 | % 27 | % Output: 28 | % IDX : Generator indices of newly added wind units. 29 | % NEW_MPC : MPC with wind units appended to MPC.GEN and MPC.GENCOST 30 | % MPC.GENFUEL (= 'wind'). 31 | % NEW_XGD : XGD with xGenData for new wind units appended. 32 | % 33 | % See also loadxgendata. 34 | 35 | % MOST 36 | % Copyright (c) 2013-2024, Power Systems Engineering Research Center (PSERC) 37 | % by Ray Zimmerman, PSERC Cornell 38 | % 39 | % This file is part of MOST. 40 | % Covered by the 3-clause BSD License (see LICENSE file for details). 41 | % See https://github.com/MATPOWER/most for more info. 42 | 43 | %% define named indices into data matrices 44 | [PW_LINEAR, POLYNOMIAL, MODEL, STARTUP, SHUTDOWN, NCOST, COST] = idx_cost; 45 | 46 | %% define fuel type for wind 47 | WIND_FUEL = 'wind'; 48 | 49 | %% input arg handling 50 | if nargin < 3 51 | xgd = []; 52 | end 53 | if ischar(wind) 54 | infile = sprintf(' in file: ''%s''', wind); 55 | wind = loadgenericdata(wind, 'struct', 'gen', 'wind'); 56 | else 57 | infile = ''; 58 | end 59 | 60 | %% add to MPC 61 | nw = size(wind.gen, 1); 62 | if isfield(wind, 'gencost') 63 | wind_gencost = wind.gencost; 64 | else %% use zero cost by default 65 | wind_gencost = repmat([POLYNOMIAL 0 0 2 0 0], nw, 1); 66 | end 67 | [new_mpc, idx] = addgen2mpc(mpc, wind.gen, wind_gencost, WIND_FUEL); 68 | 69 | %% handle xGenData 70 | if nargout > 2 %% output NEW_XGD requested 71 | if isfield(wind, 'xgd_table') 72 | wind_xgd = loadxgendata(wind.xgd_table, wind.gen); 73 | else 74 | error('addwind: missing XGD_TABLE field in WIND'); 75 | end 76 | 77 | if isempty(xgd) %% no input XGD provided 78 | new_xgd = wind_xgd; 79 | else %% input XGD provided 80 | new_xgd = xgd; 81 | fields = fieldnames(xgd); 82 | for f = 1:length(fields) %% append rows of every field in xgd 83 | ff = fields{f}; 84 | %% dims of wind_xgd fields already checked by loadxgendata 85 | if size(xgd.(ff), 1) ~= size(mpc.gen, 1) 86 | error('addwind: # of rows in XGD.%s (%d) does not match MPC.GEN (%d)', ... 87 | ff, size(xgd.(ff), 1), size(mpc.gen, 1)); 88 | end 89 | new_xgd.(ff) = [xgd.(ff); wind_xgd.(ff)]; 90 | end 91 | end 92 | end 93 | -------------------------------------------------------------------------------- /lib/filter_ramp_transitions.m: -------------------------------------------------------------------------------- 1 | function md = filter_ramp_transitions(md0, threshold) 2 | % filter_ramp_transitions - Creates a transition mask for ramp reserves. 3 | % :: 4 | % 5 | % MD = FILTER_RAMP_TRANSITIONS(MD0, THRESHOLD) 6 | % 7 | % Creates a transition mask for ramping reserves, including only transitions 8 | % with probabilities greater than or equal to a given THRESHOLD value, 9 | % where the probability of the transition from j1 to j2 is taken to be the 10 | % conditional probability in TransMat multiplied by the conditional 11 | % probability of being in state j1, given that you've made it to period t. 12 | 13 | % MOST 14 | % Copyright (c) 2012-2024, Power Systems Engineering Research Center (PSERC) 15 | % by Ray Zimmerman, PSERC Cornell 16 | % 17 | % This file is part of MOST. 18 | % Covered by the 3-clause BSD License (see LICENSE file for details). 19 | % See https://github.com/MATPOWER/most for more info. 20 | 21 | %% dimensions 22 | md = md0; 23 | nt = length(md.tstep); 24 | 25 | %% create mask 26 | for t = 1:nt 27 | if t == 1 28 | prob = md.tstep(t).TransMat; 29 | else 30 | prob = md.tstep(t).TransMat * prob; 31 | end 32 | md.tstep(t).TransMask = diag(prob) * md.tstep(t).TransMat >= threshold; 33 | end 34 | -------------------------------------------------------------------------------- /lib/getprofiles.m: -------------------------------------------------------------------------------- 1 | function profiles = getprofiles(profilesi, profiles0, idx) 2 | % getprofiles - Loads profiles, optionally updating 'rows' via an index mapping. 3 | % :: 4 | % 5 | % PROFILES = GETPROFILES(PROFILESI); 6 | % PROFILES = GETPROFILES(PROFILESI, PROFILES0); 7 | % PROFILES = GETPROFILES(PROFILESI, IDX); 8 | % PROFILES = GETPROFILES(PROFILESI, PROFILES0, IDX); 9 | % 10 | % Loads a profile or set of profiles from a struct, MAT-file or M-file, 11 | % optionally using the N-dimensional index vector IDX to modify any 12 | % non-zero values in ROWS fields so that the corresponding ROWS 13 | % field in the returned PROFILES is equal to IDX(ROWS). This makes it 14 | % easy to use profiles defined for a particular set of generators, for 15 | % example, that are added to a case as a group as in the example below. 16 | % 17 | % Inputs: 18 | % PROFILESI : a PROFILE struct or the name of an M-file 19 | % or MAT-file that returns one. See IDX_PROFILE for details. 20 | % PROFILES0 : (optional) a profiles struct to which the newly 21 | % loaded profiles specified in PROFILESI will be appended. 22 | % IDX : (optional) N dimensional index vector used to map non-zero 23 | % values in ROWS fields. 24 | % 25 | % Output: 26 | % PROFILES : Resulting profile struct 27 | % 28 | % Example: Load a MATPOWER case, add some wind generators, with a 29 | % profile that applies only to the rows of the added wind 30 | % units. 31 | % 32 | % mpc = loadcase('mycase'); 33 | % xgd = loadxgendata('myxgendata'); 34 | % [iwind, mpc, xgd] = addwind('mywindunits', mpc, xgd); 35 | % profiles = getprofiles('mywindprofile', iwind); 36 | % md = loadmd(mpc, 'mytransmat', xgd, [], [], profiles); 37 | % 38 | % See also apply_profile, idx_profile. 39 | 40 | % MOST 41 | % Copyright (c) 2012-2024, Power Systems Engineering Research Center (PSERC) 42 | % by Ray Zimmerman, PSERC Cornell 43 | % 44 | % This file is part of MOST. 45 | % Covered by the 3-clause BSD License (see LICENSE file for details). 46 | % See https://github.com/MATPOWER/most for more info. 47 | 48 | %% process input args 49 | if nargin < 2 50 | profiles0 = []; 51 | idx = []; 52 | elseif nargin < 3 53 | if ~isstruct(profiles0) && ~isempty(profiles0) 54 | idx = profiles0; 55 | profiles0 = []; 56 | else 57 | idx = []; 58 | end 59 | end 60 | 61 | %% load the profiles 62 | fields = {'type', 'table', 'rows', 'col', 'chgtype', 'values'}; 63 | profiles = loadgenericdata(profilesi, 'struct', fields, 'profiles'); 64 | 65 | %% use idx to map rows 66 | if ~isempty(idx) 67 | n = length(idx); 68 | for p = 1:length(profiles) 69 | k = find(profiles(p).rows); 70 | if k > 0 71 | if max(profiles(p).rows(k)) <= n 72 | profiles(p).rows(k) = idx(profiles(p).rows(k)); 73 | else 74 | error('getprofiles: to map ROWS using IDX, ROWS must not contain values exceeding LENGTH(IDX) (%d)', n); 75 | end 76 | end 77 | end 78 | end 79 | 80 | %% stack profiles 81 | if ~isempty(profiles0) 82 | profiles = [profiles0; profiles]; 83 | end 84 | -------------------------------------------------------------------------------- /lib/mostver.m: -------------------------------------------------------------------------------- 1 | function rv = mostver(varargin) 2 | % mostver - Prints or returns installed MOST version info. 3 | % :: 4 | % 5 | % mostver 6 | % v = mostver 7 | % v = mostver('all') 8 | % 9 | % When called with an output argument and no input argument, mostver 10 | % returns the current MOST version numbers. With an input argument 11 | % (e.g. ``'all'``) it returns a struct with the fields ``Name``, 12 | % ``Version``, ``Release``, and ``Date`` *(all char arrays)*. Calling 13 | % mostver without assigning the return value prints the version and 14 | % release date of the current installation of MOST. 15 | % 16 | % See also mpver. 17 | 18 | % MOST 19 | % Copyright (c) 2010-2024, Power Systems Engineering Research Center (PSERC) 20 | % by Ray Zimmerman, PSERC Cornell 21 | % 22 | % This file is part of MOST. 23 | % Covered by the 3-clause BSD License (see LICENSE file for details). 24 | % See https://github.com/MATPOWER/most for more info. 25 | 26 | v = struct( 'Name', 'MOST', ... 27 | 'Version', '1.3.1-dev', ... 28 | 'Release', '', ... 29 | 'Date', '23-May-2025' ); 30 | if nargout > 0 31 | if nargin > 0 32 | rv = v; 33 | else 34 | rv = v.Version; 35 | end 36 | else 37 | fprintf('%-22s Version %-9s %11s\n', v.Name, v.Version, v.Date); 38 | end 39 | -------------------------------------------------------------------------------- /lib/mpoption_info_most.m: -------------------------------------------------------------------------------- 1 | function opt = mpoption_info_most(selector) 2 | % mpoption_info_most - Returns |MATPOWER| option info for MOST. 3 | % :: 4 | % 5 | % DEFAULT_OPTS = MPOPTION_INFO_MOST('D') 6 | % VALID_OPTS = MPOPTION_INFO_MOST('V') 7 | % EXCEPTIONS = MPOPTION_INFO_MOST('E') 8 | % 9 | % Returns a structure for MOST options for MATPOWER containing ... 10 | % (1) default options, 11 | % (2) valid options, or 12 | % (3) NESTED_STRUCT_COPY exceptions for setting options 13 | % ... depending on the value of the input argument. 14 | % 15 | % This function is used by MPOPTION to set default options, check validity 16 | % of option names or modify option setting/copying behavior for this 17 | % subset of optional MATPOWER options. 18 | % 19 | % See also mpoption. 20 | 21 | % MOST 22 | % Copyright (c) 2014-2024, Power Systems Engineering Research Center (PSERC) 23 | % by Ray Zimmerman, PSERC Cornell 24 | % 25 | % This file is part of MOST. 26 | % Covered by the 3-clause BSD License (see LICENSE file for details). 27 | % See https://github.com/MATPOWER/most for more info. 28 | 29 | if nargin < 1 30 | selector = 'D'; 31 | end 32 | if have_feature('most') 33 | switch upper(selector) 34 | case {'D', 'V'} %% default and valid options 35 | opt = struct(... 36 | 'most', struct(... 37 | 'build_model', 1, ... %% was md.CreateQP 38 | 'solve_model', 1, ... %% was md.Solve 39 | 'resolve_new_cost', 0, ... %% was md.ReSolveNewCoordCost 40 | 'dc_model', 1, ... %% was md.DCMODEL = [] 41 | 'fixed_res', -1, ... %% was md.IncludeFixedReserves = [] 42 | 'q_coordination', 0, ... %% was md.QCoordination 43 | 'security_constraints', -1, ... %% was md.SecurityConstrained = [] 44 | 'storage', struct(... 45 | 'terminal_target', -1, ... %% was md.Storage.ForceExpectedTerminalStorage 46 | 'cyclic', 0), ... %% was md.Storage.ForceCyclicStorage 47 | 'uc', struct(... 48 | 'run', -1, ... %% was missing 49 | 'cyclic', 0), ... %% was md.UC.CyclicCommitment 50 | 'alpha', 0, ... %% was md.alpha 51 | 'solver', 'DEFAULT', ... %% was md.QP.opt.alg 52 | 'skip_prices', 0, ... %% was md.QP.opt.skip_prices 53 | 'price_stage_warn_tol', 1e-7 ... 54 | ) ... 55 | ); 56 | case 'E' %% exceptions used by nested_struct_copy() for applying 57 | opt = struct([]); %% no exceptions 58 | otherwise 59 | error('mpoption_info_most: ''%s'' is not a valid input argument', selector); 60 | end 61 | else 62 | opt = struct([]); %% MOST is not available 63 | end 64 | -------------------------------------------------------------------------------- /lib/t/ex_case3a.m: -------------------------------------------------------------------------------- 1 | function mpc = ex_case3a 2 | % ex_case3a - Three bus example system. 3 | % 4 | % Please see caseformat for details on the case file format. 5 | 6 | % MOST 7 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 8 | % by Ray Zimmerman, PSERC Cornell 9 | % 10 | % This file is part of MOST. 11 | % Covered by the 3-clause BSD License (see LICENSE file for details). 12 | % See https://github.com/MATPOWER/most for more info. 13 | 14 | %% MATPOWER Case Format : Version 2 15 | mpc.version = '2'; 16 | 17 | %%----- Power Flow Data -----%% 18 | %% system MVA base 19 | mpc.baseMVA = 100; 20 | 21 | %% bus data 22 | % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin 23 | mpc.bus = [ 24 | 1 3 0 0 0 0 1 1 0 135 1 1.05 0.95; 25 | 2 2 0 0 0 0 1 1 0 135 1 1.05 0.95; 26 | 3 2 0 0 0 0 1 1 0 135 1 1.05 0.95; 27 | ]; 28 | 29 | %% generator data 30 | % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf 31 | mpc.gen = [ 32 | 1 125 0 25 -25 1 100 1 200 0 0 0 0 0 0 0 0 250 250 0 0; 33 | 1 125 0 25 -25 1 100 1 200 0 0 0 0 0 0 0 0 250 250 0 0; 34 | 2 200 0 50 -50 1 100 1 500 0 0 0 0 0 0 0 0 600 600 0 0; 35 | 3 -450 0 0 0 1 100 1 0 -450 0 0 0 0 0 0 0 500 500 0 0; 36 | ]; 37 | 38 | %% branch data 39 | % fbus tbus r x b rateA rateB rateC ratio angle status angmin angmax 40 | mpc.branch = [ 41 | 1 2 0.005 0.01 0 300 300 300 0 0 1 -360 360; 42 | 1 3 0.005 0.01 0 240 240 240 0 0 1 -360 360; 43 | 2 3 0.005 0.01 0 300 300 300 0 0 1 -360 360; 44 | ]; 45 | 46 | %%----- OPF Data -----%% 47 | %% generator cost data 48 | % 1 startup shutdown n x1 y1 ... xn yn 49 | % 2 startup shutdown n c(n-1) ... c0 50 | mpc.gencost = [ 51 | 2 0 0 3 0.1 0 0; 52 | 2 0 0 3 0.1 0 0; 53 | 2 0 0 3 0.1 0 0; 54 | 2 0 0 3 0 1000 0; 55 | ]; 56 | 57 | %%----- Reserve Data -----%% 58 | %% reserve zones, element i, j is 1 if gen j is in zone i, 0 otherwise 59 | mpc.reserves.zones = [ 60 | 1 1 1 0; 61 | ]; 62 | 63 | %% reserve requirements for each zone in MW 64 | mpc.reserves.req = 150; 65 | 66 | %% reserve costs in $/MW for each gen that belongs to at least 1 zone 67 | %% (same order as gens, but skipping any gen that does not belong to any zone) 68 | % mpc.reserves.cost = [ 5; 5; 21; ]; 69 | % mpc.reserves.cost = [ 5; 5; 16.25; ]; 70 | % mpc.reserves.cost = [ 0; 0; 11.25; ]; 71 | mpc.reserves.cost = [ 1; 3; 5; ]; 72 | 73 | %% OPTIONAL max reserve quantities for each gen that belongs to at least 1 zone 74 | %% (same order as gens, but skipping any gen that does not belong to any zone) 75 | mpc.reserves.qty = [ 100; 100; 200; ]; 76 | -------------------------------------------------------------------------------- /lib/t/ex_case3b.m: -------------------------------------------------------------------------------- 1 | function mpc = ex_case3b 2 | % ex_case3b - Three bus example system for stochastic unit commitment. 3 | % 4 | % Same as ex_case3a with the following changes: 5 | % 6 | % - Non-zero ``PMIN`` values for generators 7 | % - Linear (vs quadratic) generator costs 8 | % - Includes some ``STARTUP`` and ``SHUTDOWN`` costs 9 | % 10 | % Please see caseformat for details on the case file format. 11 | 12 | % MOST 13 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 14 | % by Ray Zimmerman, PSERC Cornell 15 | % 16 | % This file is part of MOST. 17 | % Covered by the 3-clause BSD License (see LICENSE file for details). 18 | % See https://github.com/MATPOWER/most for more info. 19 | 20 | %% MATPOWER Case Format : Version 2 21 | mpc.version = '2'; 22 | 23 | %%----- Power Flow Data -----%% 24 | %% system MVA base 25 | mpc.baseMVA = 100; 26 | 27 | %% bus data 28 | % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin 29 | mpc.bus = [ 30 | 1 3 0 0 0 0 1 1 0 135 1 1.05 0.95; 31 | 2 2 0 0 0 0 1 1 0 135 1 1.05 0.95; 32 | 3 2 0 0 0 0 1 1 0 135 1 1.05 0.95; 33 | ]; 34 | 35 | %% generator data 36 | % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf 37 | mpc.gen = [ 38 | 1 125 0 25 -25 1 100 1 200 60 0 0 0 0 0 0 0 250 250 0 0; 39 | 1 125 0 25 -25 1 100 1 200 65 0 0 0 0 0 0 0 250 250 0 0; 40 | 2 200 0 50 -50 1 100 1 500 60 0 0 0 0 0 0 0 600 600 0 0; 41 | 3 -450 0 0 0 1 100 1 0 -450 0 0 0 0 0 0 0 500 500 0 0; 42 | ]; 43 | 44 | %% branch data 45 | % fbus tbus r x b rateA rateB rateC ratio angle status angmin angmax 46 | mpc.branch = [ 47 | 1 2 0.005 0.01 0 300 300 300 0 0 1 -360 360; 48 | 1 3 0.005 0.01 0 240 240 240 0 0 1 -360 360; 49 | 2 3 0.005 0.01 0 300 300 300 0 0 1 -360 360; 50 | ]; 51 | 52 | %%----- OPF Data -----%% 53 | %% generator cost data 54 | % 1 startup shutdown n x1 y1 ... xn yn 55 | % 2 startup shutdown n c(n-1) ... c0 56 | mpc.gencost = [ 57 | 2 0 0 2 25 0; 58 | 2 200 200 2 30 0; 59 | 2 3000 600 2 40 0; 60 | 2 0 0 2 1000 0; 61 | ]; 62 | 63 | %%----- Reserve Data -----%% 64 | %% reserve zones, element i, j is 1 if gen j is in zone i, 0 otherwise 65 | mpc.reserves.zones = [ 66 | 1 1 1 0; 67 | ]; 68 | 69 | %% reserve requirements for each zone in MW 70 | mpc.reserves.req = 150; 71 | 72 | %% reserve costs in $/MW for each gen that belongs to at least 1 zone 73 | %% (same order as gens, but skipping any gen that does not belong to any zone) 74 | % mpc.reserves.cost = [ 5; 5; 21; ]; 75 | % mpc.reserves.cost = [ 5; 5; 16.25; ]; 76 | % mpc.reserves.cost = [ 0; 0; 11.25; ]; 77 | mpc.reserves.cost = [ 1; 3; 5; ]; 78 | 79 | %% OPTIONAL max reserve quantities for each gen that belongs to at least 1 zone 80 | %% (same order as gens, but skipping any gen that does not belong to any zone) 81 | mpc.reserves.qty = [ 100; 100; 200; ]; 82 | -------------------------------------------------------------------------------- /lib/t/ex_contab.m: -------------------------------------------------------------------------------- 1 | function contab = ex_contab 2 | % ex_contab - Example contingency data for stochastic unit commitment. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% define constants 13 | [GEN_BUS, PG, QG, QMAX, QMIN, VG, MBASE, GEN_STATUS, PMAX, PMIN, ... 14 | MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN, PC1, PC2, QC1MIN, QC1MAX, ... 15 | QC2MIN, QC2MAX, RAMP_AGC, RAMP_10, RAMP_30, RAMP_Q, APF] = idx_gen; 16 | [F_BUS, T_BUS, BR_R, BR_X, BR_B, RATE_A, RATE_B, RATE_C, ... 17 | TAP, SHIFT, BR_STATUS, PF, QF, PT, QT, MU_SF, MU_ST, ... 18 | ANGMIN, ANGMAX, MU_ANGMIN, MU_ANGMAX] = idx_brch; 19 | [CT_LABEL, CT_PROB, CT_TABLE, CT_TBUS, CT_TGEN, CT_TBRCH, CT_TAREABUS, ... 20 | CT_TAREAGEN, CT_TAREABRCH, CT_ROW, CT_COL, CT_CHGTYPE, CT_REP, ... 21 | CT_REL, CT_ADD, CT_NEWVAL, CT_TLOAD, CT_TAREALOAD, CT_LOAD_ALL_PQ, ... 22 | CT_LOAD_FIX_PQ, CT_LOAD_DIS_PQ, CT_LOAD_ALL_P, CT_LOAD_FIX_P, ... 23 | CT_LOAD_DIS_P, CT_TGENCOST, CT_TAREAGENCOST, CT_MODCOST_F, ... 24 | CT_MODCOST_X] = idx_ct; 25 | 26 | %%----- contingencies ----- 27 | %% contingency table 28 | % label probty type row column chgtype newvalue 29 | contab = [ 30 | 1 0.06 CT_TGEN 2 GEN_STATUS CT_REP 0; %% gen 2 at bus 1 31 | 2 0.04 CT_TBRCH 2 BR_STATUS CT_REP 0; %% line 1-3 32 | ]; 33 | -------------------------------------------------------------------------------- /lib/t/ex_load_profile.m: -------------------------------------------------------------------------------- 1 | function loadprofile = ex_load_profile 2 | % ex_load_profile - Example load profile data file for stochastic unit commitment. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% define constants 13 | [CT_LABEL, CT_PROB, CT_TABLE, CT_TBUS, CT_TGEN, CT_TBRCH, CT_TAREABUS, ... 14 | CT_TAREAGEN, CT_TAREABRCH, CT_ROW, CT_COL, CT_CHGTYPE, CT_REP, ... 15 | CT_REL, CT_ADD, CT_NEWVAL, CT_TLOAD, CT_TAREALOAD, CT_LOAD_ALL_PQ, ... 16 | CT_LOAD_FIX_PQ, CT_LOAD_DIS_PQ, CT_LOAD_ALL_P, CT_LOAD_FIX_P, ... 17 | CT_LOAD_DIS_P, CT_TGENCOST, CT_TAREAGENCOST, CT_MODCOST_F, ... 18 | CT_MODCOST_X] = idx_ct; 19 | 20 | loadprofile = struct( ... 21 | 'type', 'mpcData', ... 22 | 'table', CT_TLOAD, ... 23 | 'rows', 0, ... 24 | 'col', CT_LOAD_ALL_PQ, ... 25 | 'chgtype', CT_REP, ... 26 | 'values', [] ); 27 | loadprofile.values(:, 1, 1) = [ 28 | 440; 29 | 480; 30 | 540 31 | 525; 32 | 500; 33 | 450; 34 | 400; 35 | 350; 36 | 300; 37 | 325; 38 | 375; 39 | 425; 40 | ]-1e-3; 41 | -------------------------------------------------------------------------------- /lib/t/ex_storage.m: -------------------------------------------------------------------------------- 1 | function storage = ex_storage(mpc) 2 | % ex_storage - Example Storage data file for stochastic unit commitment. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %%----- storage ----- 13 | ecap = 200; %% energy capacity 14 | pcap = ecap * .4; %0.25; %% power capacity 15 | scost = 45.166667; %% cost/value of initial/residual stored energy 16 | %scost = 30; %% cost/value of initial/residual stored energy 17 | scost2 = 41.6666667; %% cost/value of initial/residual stored energy 18 | scost3 = 53.3333333; %% cost/value of initial/residual stored energy 19 | %% generator data 20 | % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf 21 | storage.gen = [ 22 | % 1 0 0 0 0 1 100 1 pcap -pcap 0 0 0 0 0 0 0 20 20 0 0; 23 | % 2 0 0 0 0 1 100 1 pcap -pcap 0 0 0 0 0 0 0 20 20 0 0; 24 | 3 0 0 0 0 1 100 1 pcap -pcap 0 0 0 0 0 0 0 20 20 0 0; 25 | ]; 26 | 27 | %%----- OPF Data -----%% 28 | %% generator cost data 29 | % 1 startup shutdown n x1 y1 ... xn yn 30 | % 2 startup shutdown n c(n-1) ... c0 31 | % storage.gencost = [ 32 | % 2 0 0 2 0 0; 33 | % ]; 34 | 35 | %% xGenData 36 | storage.xgd_table.colnames = { 37 | 'CommitKey', ... 38 | 'CommitSched', ... 39 | 'PositiveActiveReservePrice', ... 40 | 'PositiveActiveReserveQuantity', ... 41 | 'NegativeActiveReservePrice', ... 42 | 'NegativeActiveReserveQuantity', ... 43 | 'PositiveActiveDeltaPrice', ... 44 | 'NegativeActiveDeltaPrice', ... 45 | 'PositiveLoadFollowReservePrice', ... 46 | 'PositiveLoadFollowReserveQuantity', ... 47 | 'NegativeLoadFollowReservePrice', ... 48 | 'NegativeLoadFollowReserveQuantity', ... 49 | }; 50 | 51 | storage.xgd_table.data = [ 52 | 2 1 1e-8 2*pcap 2e-8 2*pcap 1e-9 1e-9 1e-6 2*pcap 1e-6 2*pcap; 53 | % 2 1 1e-8 2*pcap 2e-8 2*pcap 1e-9 1e-9 1e-6 2*pcap 1e-6 2*pcap; 54 | % 2 1 1e-8 2*pcap 2e-8 2*pcap 1e-9 1e-9 1e-6 2*pcap 1e-6 2*pcap; 55 | ]; 56 | 57 | %% StorageData 58 | storage.sd_table.OutEff = 1; 59 | storage.sd_table.InEff = 1; 60 | storage.sd_table.LossFactor = 0; 61 | storage.sd_table.rho = 0; 62 | storage.sd_table.colnames = { 63 | 'InitialStorage', ... 64 | 'InitialStorageLowerBound', ... 65 | 'InitialStorageUpperBound', ... 66 | 'InitialStorageCost', ... 67 | 'TerminalStoragePrice', ... 68 | 'MinStorageLevel', ... 69 | 'MaxStorageLevel', ... 70 | 'OutEff', ... 71 | 'InEff', ... 72 | 'LossFactor', ... 73 | 'rho', ... 74 | }; 75 | 76 | storage.sd_table.data = [ 77 | 0 0 ecap scost scost 0 ecap 1 1 1e-5 0; 78 | % 0 0 ecap scost2 scost2 0 ecap 1 1 0 0; 79 | % 0 0 ecap scost3 scost3 0 ecap 1 1 0 0; 80 | ]; 81 | -------------------------------------------------------------------------------- /lib/t/ex_transmat.m: -------------------------------------------------------------------------------- 1 | function transmat = ex_transmat(nt) 2 | % ex_transmat - Example transition probability matrix definition. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | transmat = cell(1, nt); 13 | T = [ 0.158655253931457; 0.682689492137086; 0.158655253931457 ]; 14 | [transmat{:}] = deal(T * ones(1,3)); 15 | transmat{1} = T; 16 | -------------------------------------------------------------------------------- /lib/t/ex_wind.m: -------------------------------------------------------------------------------- 1 | function wind = ex_wind(mpc) 2 | % ex_wind - Example Wind data file for stochastic OPF. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %%----- wind ----- 13 | %% generator data 14 | % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf 15 | wind.gen = [ 16 | 2 0 0 50 -50 1 100 1 100 0 0 0 0 0 0 0 0 200 200 0 0; 17 | ]; 18 | %% xGenData 19 | wind.xgd_table.colnames = { 20 | 'InitialPg', ... 21 | 'RampWearCostCoeff', ... 22 | 'PositiveActiveReservePrice', ... 23 | 'PositiveActiveReserveQuantity', ... 24 | 'NegativeActiveReservePrice', ... 25 | 'NegativeActiveReserveQuantity', ... 26 | 'PositiveActiveDeltaPrice', ... 27 | 'NegativeActiveDeltaPrice', ... 28 | 'PositiveLoadFollowReservePrice', ... 29 | 'PositiveLoadFollowReserveQuantity', ... 30 | 'NegativeLoadFollowReservePrice', ... 31 | 'NegativeLoadFollowReserveQuantity', ... 32 | }; 33 | 34 | wind.xgd_table.data = [ 35 | 0 0 1e-8 200 2e-8 200 1e-9 1e-9 1e-6 200 1e-6 200; 36 | ]; 37 | -------------------------------------------------------------------------------- /lib/t/ex_wind_profile.m: -------------------------------------------------------------------------------- 1 | function windprofile = ex_wind_profile 2 | % ex_wind_profile - Example wind profile data for stochastic unit commitment. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% define constants 13 | [GEN_BUS, PG, QG, QMAX, QMIN, VG, MBASE, GEN_STATUS, PMAX, PMIN, ... 14 | MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN, PC1, PC2, QC1MIN, QC1MAX, ... 15 | QC2MIN, QC2MAX, RAMP_AGC, RAMP_10, RAMP_30, RAMP_Q, APF] = idx_gen; 16 | [CT_LABEL, CT_PROB, CT_TABLE, CT_TBUS, CT_TGEN, CT_TBRCH, CT_TAREABUS, ... 17 | CT_TAREAGEN, CT_TAREABRCH, CT_ROW, CT_COL, CT_CHGTYPE, CT_REP, ... 18 | CT_REL, CT_ADD, CT_NEWVAL, CT_TLOAD, CT_TAREALOAD, CT_LOAD_ALL_PQ, ... 19 | CT_LOAD_FIX_PQ, CT_LOAD_DIS_PQ, CT_LOAD_ALL_P, CT_LOAD_FIX_P, ... 20 | CT_LOAD_DIS_P, CT_TGENCOST, CT_TAREAGENCOST, CT_MODCOST_F, ... 21 | CT_MODCOST_X] = idx_ct; 22 | 23 | windprofile = struct( ... 24 | 'type', 'mpcData', ... 25 | 'table', CT_TGEN, ... 26 | 'rows', 1, ... 27 | 'col', PMAX, ... 28 | 'chgtype', CT_REL, ... 29 | 'values', [] ); 30 | windprofile.values(:, :, 1) = [ 31 | 0.72 0.80 0.88; 32 | 0.49 0.65 0.81; 33 | 0.36 0.60 0.84; 34 | 0.50 0.82 1.14; 35 | 0.60 1.00 1.40; 36 | 0.22 0.70 1.18; 37 | 0.00 0.50 1.00; 38 | 0.33 0.85 1.37; 39 | 0.46 1.00 1.54; 40 | 0.54 1.10 1.66; 41 | 0.48 1.06 1.64; 42 | 0.35 0.95 1.55; 43 | ]; 44 | -------------------------------------------------------------------------------- /lib/t/ex_wind_profile_d.m: -------------------------------------------------------------------------------- 1 | function windprofile = ex_wind_profile_d 2 | % ex_wind_profile_d - Example wind profile data for deterministic unit commitment. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% define constants 13 | [GEN_BUS, PG, QG, QMAX, QMIN, VG, MBASE, GEN_STATUS, PMAX, PMIN, ... 14 | MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN, PC1, PC2, QC1MIN, QC1MAX, ... 15 | QC2MIN, QC2MAX, RAMP_AGC, RAMP_10, RAMP_30, RAMP_Q, APF] = idx_gen; 16 | [CT_LABEL, CT_PROB, CT_TABLE, CT_TBUS, CT_TGEN, CT_TBRCH, CT_TAREABUS, ... 17 | CT_TAREAGEN, CT_TAREABRCH, CT_ROW, CT_COL, CT_CHGTYPE, CT_REP, ... 18 | CT_REL, CT_ADD, CT_NEWVAL, CT_TLOAD, CT_TAREALOAD, CT_LOAD_ALL_PQ, ... 19 | CT_LOAD_FIX_PQ, CT_LOAD_DIS_PQ, CT_LOAD_ALL_P, CT_LOAD_FIX_P, ... 20 | CT_LOAD_DIS_P, CT_TGENCOST, CT_TAREAGENCOST, CT_MODCOST_F, ... 21 | CT_MODCOST_X] = idx_ct; 22 | 23 | windprofile = struct( ... 24 | 'type', 'mpcData', ... 25 | 'table', CT_TGEN, ... 26 | 'rows', 1, ... 27 | 'col', PMAX, ... 28 | 'chgtype', CT_REL, ... 29 | 'values', [] ); 30 | wp = ex_wind_profile; 31 | windprofile.values(:, :, 1) = mean(wp.values, 2); 32 | % windprofile.values(:, :, 1) = [ 33 | % 0.80; 34 | % 0.65; 35 | % 0.60; 36 | % 0.82; 37 | % 1.00; 38 | % 0.70; 39 | % 0.50; 40 | % 0.85; 41 | % 1.00; 42 | % 1.10; 43 | % 1.06; 44 | % 0.95; 45 | % ]; 46 | -------------------------------------------------------------------------------- /lib/t/ex_wind_uc.m: -------------------------------------------------------------------------------- 1 | function wind = ex_wind_uc(mpc) 2 | % ex_wind_uc - Example Wind data file for stochastic unit commitment. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %%----- wind ----- 13 | %% generator data 14 | % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf 15 | wind.gen = [ 16 | 2 0 0 50 -50 1 100 1 100 0 0 0 0 0 0 0 0 200 200 0 0; 17 | ]; 18 | %% xGenData 19 | wind.xgd_table.colnames = { 20 | 'CommitKey', ... 21 | 'CommitSched', ... 22 | 'InitialPg', ... 23 | 'RampWearCostCoeff', ... 24 | 'PositiveActiveReservePrice', ... 25 | 'PositiveActiveReserveQuantity', ... 26 | 'NegativeActiveReservePrice', ... 27 | 'NegativeActiveReserveQuantity', ... 28 | 'PositiveActiveDeltaPrice', ... 29 | 'NegativeActiveDeltaPrice', ... 30 | 'PositiveLoadFollowReservePrice', ... 31 | 'PositiveLoadFollowReserveQuantity', ... 32 | 'NegativeLoadFollowReservePrice', ... 33 | 'NegativeLoadFollowReserveQuantity', ... 34 | }; 35 | 36 | wind.xgd_table.data = [ 37 | 2 1 0 0 1e-8 200 2e-8 200 1e-9 1e-9 1e-6 200 1e-6 200; 38 | ]; 39 | -------------------------------------------------------------------------------- /lib/t/ex_xgd.m: -------------------------------------------------------------------------------- 1 | function xgd_table = ex_xgd(mpc) 2 | % ex_xgd - Example xGenData table for stochastic OPF. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% initial xGenData 13 | xgd_table.colnames = { 14 | 'PositiveActiveReservePrice', ... 15 | 'PositiveActiveReserveQuantity', ... 16 | 'NegativeActiveReservePrice', ... 17 | 'NegativeActiveReserveQuantity', ... 18 | 'PositiveActiveDeltaPrice', ... 19 | 'NegativeActiveDeltaPrice', ... 20 | }; 21 | xgd_table.data = [ 22 | 1e-8 250 2e-8 250 1e-9 1e-9; 23 | 1e-8 250 2e-8 250 1e-9 1e-9; 24 | 1e-8 600 2e-8 600 1e-9 1e-9; 25 | 1e-8 800 2e-8 800 1e-9 1e-9; 26 | ]; 27 | -------------------------------------------------------------------------------- /lib/t/ex_xgd_ramp.m: -------------------------------------------------------------------------------- 1 | function xgd_table = ex_xgd_ramp(mpc) 2 | % ex_xgd_ramp - Example xGenData table for multiperiod DC OPF with ramping. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% initial xGenData 13 | xgd_table.colnames = { 14 | 'PositiveActiveReservePrice', ... 15 | 'PositiveActiveReserveQuantity', ... 16 | 'NegativeActiveReservePrice', ... 17 | 'NegativeActiveReserveQuantity', ... 18 | 'PositiveActiveDeltaPrice', ... 19 | 'NegativeActiveDeltaPrice', ... 20 | 'PositiveLoadFollowReservePrice', ... 21 | 'PositiveLoadFollowReserveQuantity', ... 22 | 'NegativeLoadFollowReservePrice', ... 23 | 'NegativeLoadFollowReserveQuantity', ... 24 | }; 25 | xgd_table.data = [ 26 | 5 250 10 250 1e-9 1e-9 1e-6 250 1e-6 250; 27 | 1e-8 250 2e-8 250 1e-9 1e-9 1e-6 250 1e-6 250; 28 | 1.5 600 3 600 1e-9 1e-9 10 100 10 250; 29 | 1e-8 800 2e-8 800 1e-9 1e-9 1e-6 800 1e-6 800; 30 | ]; 31 | -------------------------------------------------------------------------------- /lib/t/ex_xgd_res.m: -------------------------------------------------------------------------------- 1 | function xgd_table = ex_xgd_res(mpc) 2 | % ex_xgd_res - Example xGenData table for stochastic OPF w/reserve costs. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% initial xGenData 13 | xgd_table.colnames = { 14 | 'PositiveActiveReservePrice', ... 15 | 'PositiveActiveReserveQuantity', ... 16 | 'NegativeActiveReservePrice', ... 17 | 'NegativeActiveReserveQuantity', ... 18 | 'PositiveActiveDeltaPrice', ... 19 | 'NegativeActiveDeltaPrice', ... 20 | }; 21 | xgd_table.data = [ 22 | 5 250 10 0 1e-9 1e-9; 23 | 1e-8 100 2e-8 0 1e-9 1e-9; 24 | 1.5 600 3 0 1e-9 1e-9; 25 | 1e-8 800 2e-8 0 1e-9 1e-9; 26 | ]; 27 | -------------------------------------------------------------------------------- /lib/t/ex_xgd_uc.m: -------------------------------------------------------------------------------- 1 | function xgd_table = ex_xgd_uc(mpc) 2 | % ex_xgd_uc - Example xGenData table for stochastic unit commitment. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% initial xGenData 13 | xgd_table.colnames = { 14 | 'CommitKey', ... 15 | 'CommitSched', ... 16 | 'MinUp', ... 17 | 'MinDown', ... 18 | 'PositiveActiveReservePrice', ... 19 | 'PositiveActiveReserveQuantity', ... 20 | 'NegativeActiveReservePrice', ... 21 | 'NegativeActiveReserveQuantity', ... 22 | 'PositiveActiveDeltaPrice', ... 23 | 'NegativeActiveDeltaPrice', ... 24 | 'PositiveLoadFollowReservePrice', ... 25 | 'PositiveLoadFollowReserveQuantity', ... 26 | 'NegativeLoadFollowReservePrice', ... 27 | 'NegativeLoadFollowReserveQuantity', ... 28 | }; 29 | xgd_table.data = [ 30 | 1 1 1 1 5 250 10 250 1e-9 1e-9 1e-6 250 1e-6 250; 31 | 1 1 3 1 1e-8 250 2e-8 250 1e-9 1e-9 1e-6 250 1e-6 250; 32 | 1 1 1 1 1.5 600 3 600 1e-9 1e-9 10 100 10 250; 33 | 2 1 1 1 1e-8 800 2e-8 800 1e-9 1e-9 1e-6 800 1e-6 800; 34 | ]; 35 | -------------------------------------------------------------------------------- /lib/t/generate_most_autodoc.m: -------------------------------------------------------------------------------- 1 | function generate_most_autodoc(install_dir) 2 | % generate_most_autodoc - Generate the stubs and symlinks for Ref Manual. 3 | % :: 4 | % 5 | % generate_most_autodoc(install_dir) 6 | % 7 | % Inputs: 8 | % install_dir (char array) : path to the install directory for the package 9 | % 10 | % Creates the .rst stubs and symlinks to the source files for all functions 11 | % and classes to be included in the Reference Manual. Creates all of the 12 | % inputs (lists of functions and classes) to pass to generate_autodoc_stubs 13 | % and generate_source_symlinks. 14 | 15 | % MOST 16 | % Copyright (c) 2023-2024, Power Systems Engineering Research Center (PSERC) 17 | % by Ray Zimmerman, PSERC Cornell 18 | % 19 | % This file is part of MOST. 20 | % Covered by the 3-clause BSD License (see LICENSE file for details). 21 | % See https://github.com/MATPOWER/most for more info. 22 | 23 | if nargin < 1 24 | matpower_dir = '~/dev/projects/most/'; 25 | end 26 | 27 | sphinx_src_dir = [matpower_dir 'docs/sphinx/source/']; 28 | 29 | lib_fcns = { 30 | 'addgen2mpc', ... 31 | 'addstorage', ... 32 | 'addwind', ... 33 | 'apply_profile', ... 34 | 'filter_ramp_transitions', ... 35 | 'getprofiles', ... 36 | 'idx_profile', ... 37 | 'loadgenericdata', ... 38 | 'loadmd', ... 39 | 'loadstoragedata', ... 40 | 'loadxgendata', ... 41 | 'md_init', ... 42 | 'most', ... 43 | 'most_summary', ... 44 | 'mostver', ... 45 | 'mpoption_info_most', ... 46 | 'plot_gen', ... 47 | 'plot_storage', ... 48 | 'plot_uc', ... 49 | 'plot_uc_data', ... 50 | }; 51 | lib_t_fcns = { 52 | 'c118swf', ... 53 | 'ex_case3a', ... 54 | 'ex_case3b', ... 55 | 'ex_contab', ... 56 | 'ex_load_profile', ... 57 | 'ex_storage', ... 58 | 'ex_transmat', ... 59 | 'ex_wind', ... 60 | 'ex_wind_profile', ... 61 | 'ex_wind_profile_d', ... 62 | 'ex_wind_uc', ... 63 | 'ex_xgd', ... 64 | 'ex_xgd_ramp', ... 65 | 'ex_xgd_res', ... 66 | 'ex_xgd_uc', ... 67 | 'most_ex1_ed', ... 68 | 'most_ex2_dcopf', ... 69 | 'most_ex3_dcopf_w_uc', ... 70 | 'most_ex4_dcopf_ss', ... 71 | 'most_ex5_mpopf', ... 72 | 'most_ex6_uc', ... 73 | 'most_ex7_suc', ... 74 | 't_case30_most', ... 75 | 't_case3_most', ... 76 | 't_case_tlmp', ... 77 | 't_case_tlmp_storage', ... 78 | 't_most_30b_1_1_0', ... 79 | 't_most_30b_1_1_0_uc', ... 80 | 't_most_30b_1_1_17', ... 81 | 't_most_30b_3_1_0', ... 82 | 't_most_30b_3_1_17', ... 83 | 't_most_3b_1_1_0', ... 84 | 't_most_3b_1_1_2', ... 85 | 't_most_3b_3_1_0', ... 86 | 't_most_3b_3_1_2', ... 87 | 't_most_fixed_res', ... 88 | 't_most_mpopf', ... 89 | 't_most_sp', ... 90 | 't_most_spuc', ... 91 | 't_most_suc', ... 92 | 't_most_tlmp', ... 93 | 't_most_uc', ... 94 | 't_most_w_ds', ... 95 | 'test_most', ... 96 | 'uniformwindprofile', ... 97 | }; 98 | % 'generate_most_autodoc', ... 99 | 100 | 101 | in = struct(... 102 | 'function', struct(... 103 | 'destdir', 'functions', ... 104 | 'gh_base_url', 'https://github.com/MATPOWER/most/blob/master', ... 105 | 'list', struct(... 106 | 'mod', {'most', 'most'}, ... 107 | 'src_path', {'lib', 'lib/t'}, ... 108 | 'names', {lib_fcns, lib_t_fcns} ... 109 | ) ... 110 | ) ... 111 | ); 112 | 113 | %% create stubs and symlinks for reference manual 114 | generate_autodoc_stubs(in, sphinx_src_dir); 115 | generate_source_symlinks(in, [sphinx_src_dir 'matlab-source/'], '../../../../../'); 116 | -------------------------------------------------------------------------------- /lib/t/most_ex1_ed.m: -------------------------------------------------------------------------------- 1 | function most_ex1_ed(quiet) 2 | % most_ex1_ed - Examples of deterministic economic dispatch. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% set up options 13 | define_constants; 14 | verbose = 0; 15 | casefile = 'ex_case3a'; 16 | mpopt = mpoption('verbose', verbose); 17 | mpopt = mpoption(mpopt, 'out.gen', 1); 18 | mpopt = mpoption(mpopt, 'model', 'DC'); 19 | mpopt = mpoption(mpopt, 'opf.dc.solver', 'MIPS'); 20 | mpopt = mpoption(mpopt, 'most.solver', mpopt.opf.dc.solver); 21 | if ~verbose 22 | mpopt = mpoption(mpopt, 'out.all', 0); 23 | end 24 | 25 | %%----- economic dispatch (no network) ----- 26 | %% runopf 27 | mpc = loadcase(casefile); 28 | mpc.branch(:, RATE_A) = 0; % disable line flow limits (mimic no network case) 29 | r1 = rundcopf(mpc, mpopt); 30 | Pg1 = r1.gen(:, PG); % active generation 31 | lam1 = r1.bus(:, LAM_P); % nodal energy price 32 | 33 | %% most 34 | mpc = loadcase(casefile); 35 | mpopt = mpoption(mpopt, 'most.dc_model', 0); % use model with no network 36 | mdi = loadmd(mpc); 37 | mdo = most(mdi, mpopt); 38 | ms = most_summary(mdo); 39 | r2 = mdo.flow.mpc; 40 | Pg2 = r2.gen(:, PG); % active generation 41 | lam2 = r2.bus(:, LAM_P); % nodal energy price 42 | 43 | %% comparison 44 | Pg = [Pg1 Pg2] 45 | lam = [lam1 lam2] 46 | 47 | %%----- economic dispatch (w/reserves) ----- 48 | %% runopf_w_res 49 | mpc = loadcase(casefile); 50 | mpc.branch(:, RATE_A) = 0; % disable line flow limits (mimic no network case) 51 | r1 = runopf_w_res(mpc, mpopt); 52 | Pg1 = r1.gen(:, PG); % active generation 53 | lam1 = r1.bus(:, LAM_P); % nodal energy price 54 | R1 = r1.reserves.R; % reserve quantity 55 | prc1 = r1.reserves.prc; % reserve price 56 | 57 | %% most 58 | mpc = loadcase(casefile); 59 | mpopt = mpoption(mpopt, 'most.dc_model', 0); % use model with no network 60 | mdi = loadmd(mpc); 61 | mdi.FixedReserves = mpc.reserves; % include fixed zonal reserves 62 | mdo = most(mdi, mpopt); 63 | ms = most_summary(mdo); 64 | r2 = mdo.flow.mpc; 65 | Pg2 = r2.gen(:, PG); % active generation 66 | lam2 = r2.bus(:, LAM_P); % nodal energy price 67 | R2 = r2.reserves.R; % reserve quantity 68 | prc2 = r2.reserves.prc; % reserve price 69 | 70 | %% comparison 71 | Pg = [Pg1 Pg2] 72 | lam = [lam1 lam2] 73 | R = [R1 R2] 74 | prc = [prc1 prc2] 75 | -------------------------------------------------------------------------------- /lib/t/most_ex2_dcopf.m: -------------------------------------------------------------------------------- 1 | function most_ex2_dcopf(quiet) 2 | % most_ex2_dcopf - Examples of deterministic DC optimal power flow. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% set up options 13 | define_constants; 14 | verbose = 0; 15 | casefile = 'ex_case3a'; 16 | mpopt = mpoption('verbose', verbose); 17 | mpopt = mpoption(mpopt, 'out.gen', 1); 18 | mpopt = mpoption(mpopt, 'model', 'DC'); 19 | mpopt = mpoption(mpopt, 'opf.dc.solver', 'MIPS'); 20 | mpopt = mpoption(mpopt, 'most.solver', mpopt.opf.dc.solver); 21 | if ~verbose 22 | mpopt = mpoption(mpopt, 'out.all', 0); 23 | end 24 | 25 | %%----- DC OPF ----- 26 | %% runopf 27 | mpc = loadcase(casefile); 28 | r1 = rundcopf(mpc, mpopt); 29 | Pg1 = r1.gen(:, PG); % active generation 30 | lam1 = r1.bus(:, LAM_P); % nodal energy price 31 | 32 | %% most 33 | mpc = loadcase(casefile); 34 | mpopt = mpoption(mpopt, 'most.dc_model', 1); % use DC network model (default) 35 | mdi = loadmd(mpc); 36 | mdo = most(mdi, mpopt); 37 | ms = most_summary(mdo); 38 | r2 = mdo.flow.mpc; 39 | Pg2 = r2.gen(:, PG); % active generation 40 | lam2 = r2.bus(:, LAM_P); % nodal energy price 41 | 42 | %% comparison 43 | Pg = [Pg1 Pg2] 44 | lam = [lam1 lam2] 45 | 46 | %%----- DC OPF (w/reserves) ----- 47 | %% runopf_w_res 48 | mpc = loadcase(casefile); 49 | r1 = runopf_w_res(mpc, mpopt); 50 | Pg1 = r1.gen(:, PG); % active generation 51 | lam1 = r1.bus(:, LAM_P); % nodal energy price 52 | R1 = r1.reserves.R; % reserve quantity 53 | prc1 = r1.reserves.prc; % reserve price 54 | 55 | %% most 56 | mpc = loadcase(casefile); 57 | mpopt = mpoption(mpopt, 'most.dc_model', 1); % use DC network model (default) 58 | mdi = loadmd(mpc); 59 | mdi.FixedReserves = mpc.reserves; % include fixed zonal reserves 60 | mdo = most(mdi, mpopt); 61 | ms = most_summary(mdo); 62 | r2 = mdo.flow.mpc; 63 | Pg2 = r2.gen(:, PG); % active generation 64 | lam2 = r2.bus(:, LAM_P); % nodal energy price 65 | R2 = r2.reserves.R; % reserve quantity 66 | prc2 = r2.reserves.prc; % reserve price 67 | 68 | %% comparison 69 | Pg = [Pg1 Pg2] 70 | lam = [lam1 lam2] 71 | R = [R1 R2] 72 | prc = [prc1 prc2] 73 | -------------------------------------------------------------------------------- /lib/t/most_ex3_dcopf_w_uc.m: -------------------------------------------------------------------------------- 1 | function most_ex3_dcopf_w_uc(quiet) 2 | % most_ex3_dcopf_w_uc - Examples of deterministic DC optimal power flow with UC. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% set up options 13 | define_constants; 14 | verbose = 0; 15 | mpopt = mpoption('verbose', verbose); 16 | mpopt = mpoption(mpopt, 'out.gen', 1); 17 | mpopt = mpoption(mpopt, 'model', 'DC'); 18 | mpopt = mpoption(mpopt, 'opf.dc.solver', 'MIPS'); 19 | mpopt = mpoption(mpopt, 'most.solver', 'DEFAULT'); 20 | if ~verbose 21 | mpopt = mpoption(mpopt, 'out.all', 0); 22 | end 23 | 24 | %%----- DC OPF (w/UC) ----- 25 | casefile = 'ex_case3b'; 26 | mpc = loadcase(casefile); 27 | xgd_table.colnames = { 'CommitKey' }; 28 | xgd_table.data = [ 29 | 1; 30 | 1; 31 | 1; 32 | 2; 33 | ]; 34 | xgd = loadxgendata(xgd_table, mpc); 35 | [iwind, mpc, xgd] = addwind('ex_wind_uc', mpc, xgd); 36 | mpc = scale_load(499, mpc, [], struct('scale', 'QUANTITY')); 37 | mpc.gencost(:, STARTUP) = 0; % ignore STARTUP and SHUTDOWN 38 | mpc.gencost(:, SHUTDOWN) = 0; % costs for this example 39 | mpc.reserves.zones = [mpc.reserves.zones 0]; 40 | mpc0 = mpc; 41 | xgd0 = xgd; 42 | 43 | %% runduopf 44 | mpc = mpc0; 45 | r1 = runuopf(mpc, mpopt); 46 | u1 = r1.gen(:, GEN_STATUS); % commitment status 47 | Pg1 = r1.gen(:, PG); % active generation 48 | lam1 = r1.bus(:, LAM_P); % nodal energy price 49 | 50 | %% most 51 | mdi = loadmd(mpc, [], xgd); 52 | mdo = most(mdi, mpopt); 53 | r2 = mdo.flow.mpc; 54 | u2 = r2.gen(:, GEN_STATUS); % commitment status 55 | u2 = mdo.UC.CommitSched; % commitment status 56 | Pg2 = r2.gen(:, PG); % active generation 57 | lam2 = r2.bus(:, LAM_P); % nodal energy price 58 | if verbose 59 | printpf(r2, [], mpopt); 60 | most_summary(mdo); 61 | end 62 | 63 | %% comparison 64 | u = [u1 u2] 65 | Pg = [Pg1 Pg2] 66 | lam = [lam1 lam2] 67 | -------------------------------------------------------------------------------- /lib/t/most_ex4_dcopf_ss.m: -------------------------------------------------------------------------------- 1 | function most_ex4_dcopf_ss(quiet) 2 | % most_ex4_dcopf_ss - Examples of secure and stochastic DC OPF problems. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% set up options 13 | define_constants; 14 | verbose = 0; 15 | mpopt = mpoption('verbose', verbose); 16 | mpopt = mpoption(mpopt, 'out.gen', 1); 17 | mpopt = mpoption(mpopt, 'model', 'DC'); 18 | mpopt = mpoption(mpopt, 'opf.dc.solver', 'MIPS'); 19 | mpopt = mpoption(mpopt, 'most.solver', 'DEFAULT'); 20 | if ~verbose 21 | mpopt = mpoption(mpopt, 'out.all', 0); 22 | end 23 | 24 | casefile = 'ex_case3a'; 25 | mpc = loadcase(casefile); 26 | xgd = loadxgendata('ex_xgd_res', mpc); 27 | 28 | %%----- Secure DC OPF (w/cont,res,ramp) ----- 29 | %% most 30 | mdi = loadmd(mpc, [], xgd, [], 'ex_contab'); 31 | mdo = most(mdi, mpopt); 32 | EPg1 = mdo.results.ExpectedDispatch; % active generation 33 | Elam1 = mdo.results.GenPrices; % nodal energy price 34 | if verbose 35 | most_summary(mdo); 36 | end 37 | 38 | 39 | %%----- Stochastic DC OPF (w/wind,res) ----- 40 | [iwind, mpc, xgd] = addwind('ex_wind', mpc, xgd); 41 | transmat = {[0.158655253931457; 0.682689492137086; 0.158655253931457]}; 42 | nt = 1; % number of periods 43 | nj = 3; % number of scenarios 44 | profiles = getprofiles(uniformwindprofile(nt, nj), iwind); 45 | 46 | %% most 47 | mdi = loadmd(mpc, transmat, xgd, [], [], profiles); 48 | mdo = most(mdi, mpopt); 49 | EPg2 = mdo.results.ExpectedDispatch; % active generation 50 | Elam2 = mdo.results.GenPrices; % nodal energy price 51 | if verbose 52 | most_summary(mdo); 53 | end 54 | 55 | %%----- Secure Stochastic DC OPF (w/wind,cont,res,ramp) ----- 56 | %% most 57 | mdi = loadmd(mpc, transmat, xgd, [], 'ex_contab', profiles); 58 | mdo = most(mdi, mpopt); 59 | EPg3 = mdo.results.ExpectedDispatch; % active generation 60 | Elam3 = mdo.results.GenPrices; % nodal energy price 61 | if verbose 62 | most_summary(mdo); 63 | end 64 | 65 | %%----- Secure Stochastic UC / DC OPF (w/wind,cont,res,ramp) ----- 66 | %% most 67 | casefile = 'ex_case3b'; 68 | mpc = loadcase(casefile); 69 | xgd = loadxgendata('ex_xgd_uc', mpc); 70 | [iwind, mpc, xgd] = addwind('ex_wind_uc', mpc, xgd); 71 | mpc = scale_load(350, mpc, [], struct('scale', 'QUANTITY')); 72 | mpc.gencost(:, STARTUP) = 0; 73 | mpc.gencost(:, SHUTDOWN) = 0; 74 | mpc.reserves.zones = [mpc.reserves.zones 0]; 75 | 76 | mdi = loadmd(mpc, transmat, xgd, [], 'ex_contab', profiles); 77 | mdo = most(mdi, mpopt); 78 | u = mdo.UC.CommitSched; % commitment status 79 | EPg4 = mdo.results.ExpectedDispatch; % active generation 80 | Elam4 = mdo.results.GenPrices; % nodal energy price 81 | if verbose 82 | most_summary(mdo); 83 | end 84 | 85 | EPg = [[EPg1; NaN] EPg2 EPg3 EPg4] 86 | Elam = [[Elam1; NaN] Elam2 Elam3 Elam4] 87 | -------------------------------------------------------------------------------- /lib/t/most_ex5_mpopf.m: -------------------------------------------------------------------------------- 1 | function most_ex5_mpopf(quiet) 2 | % most_ex5_mpopf - Examples of deterministic multiperiod DC OPF problems. 3 | 4 | % MOST 5 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 6 | % by Ray Zimmerman, PSERC Cornell 7 | % 8 | % This file is part of MOST. 9 | % Covered by the 3-clause BSD License (see LICENSE file for details). 10 | % See https://github.com/MATPOWER/most for more info. 11 | 12 | %% set up options 13 | define_constants; 14 | verbose = 1; 15 | mpopt = mpoption('verbose', verbose); 16 | mpopt = mpoption(mpopt, 'out.gen', 1); 17 | mpopt = mpoption(mpopt, 'model', 'DC'); 18 | mpopt = mpoption(mpopt, 'opf.dc.solver', 'MIPS'); 19 | mpopt = mpoption(mpopt, 'most.solver', 'MIPS'); 20 | mpopt = mpoption(mpopt, 'most.dc_model', 1); 21 | if ~verbose 22 | mpopt = mpoption(mpopt, 'out.all', 0); 23 | end 24 | 25 | casefile = 'ex_case3b'; 26 | mpc = loadcase(casefile); 27 | xgd = loadxgendata('ex_xgd_ramp', mpc); 28 | [iwind, mpc, xgd] = addwind('ex_wind', mpc, xgd); 29 | profiles = getprofiles('ex_wind_profile_d', iwind); 30 | profiles = getprofiles('ex_load_profile', profiles); 31 | nt = size(profiles(1).values, 1); % number of periods 32 | 33 | %%----- Multiperiod DC OPF (w/ramp) ----- 34 | mdi = loadmd(mpc, nt, xgd, [], [], profiles); 35 | mdo = most(mdi, mpopt); 36 | EPg1 = mdo.results.ExpectedDispatch; % active generation 37 | Elam1 = mdo.results.GenPrices; % nodal energy price 38 | if verbose 39 | most_summary(mdo); 40 | end 41 | 42 | %%----- Multiperiod DC OPF (w/ramp+wear/tear) ----- 43 | xgd.RampWearCostCoeff(1:3) = 1; 44 | mdi = loadmd(mpc, nt, xgd, [], [], profiles); 45 | mdo = most(mdi, mpopt); 46 | EPg1 = mdo.results.ExpectedDispatch; % active generation 47 | Elam1 = mdo.results.GenPrices; % nodal energy price 48 | if verbose 49 | most_summary(mdo); 50 | end 51 | -------------------------------------------------------------------------------- /lib/t/t_case3_most.m: -------------------------------------------------------------------------------- 1 | function mpc = t_case3_most 2 | % t_case3_most - Three bus example system 3 | % 4 | % Please see caseformat for details on the case file format. 5 | 6 | % MOST 7 | % Copyright (c) 2015-2024, Power Systems Engineering Research Center (PSERC) 8 | % by Ray Zimmerman, PSERC Cornell 9 | % 10 | % This file is part of MOST. 11 | % Covered by the 3-clause BSD License (see LICENSE file for details). 12 | % See https://github.com/MATPOWER/most for more info. 13 | 14 | %% MATPOWER Case Format : Version 2 15 | mpc.version = '2'; 16 | 17 | %%----- Power Flow Data -----%% 18 | %% system MVA base 19 | mpc.baseMVA = 100; 20 | 21 | %% bus data 22 | % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin 23 | mpc.bus = [ 24 | 1 3 0 0 0 0 1 1 0 135 1 1.05 0.95; 25 | 2 2 0 0 0 0 1 1 0 135 1 1.05 0.95; 26 | 3 2 0 0 0 0 1 1 0 135 1 1.05 0.95; 27 | ]; 28 | 29 | %% generator data 30 | % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf 31 | mpc.gen = [ 32 | 1 250 0 50 -50 1 100 1 400 0 0 0 0 0 0 0 0 100 100 0 0; 33 | 2 200 0 50 -50 1 100 1 300 0 0 0 0 0 0 0 0 100 100 0 0; 34 | 3 -450 0 0 0 1 100 1 0 -450 0 0 0 0 0 0 0 450 450 0 0; 35 | ]; 36 | 37 | %% branch data 38 | % fbus tbus r x b rateA rateB rateC ratio angle status angmin angmax 39 | mpc.branch = [ 40 | 1 2 0.005 0.01 0 300 300 300 0 0 1 -360 360; 41 | 1 3 0.005 0.01 0 240 240 240 0 0 1 -360 360; 42 | 2 3 0.005 0.01 0 300 300 300 0 0 1 -360 360; 43 | ]; 44 | 45 | %%----- OPF Data -----%% 46 | %% generator cost data 47 | % 1 startup shutdown n x1 y1 ... xn yn 48 | % 2 startup shutdown n c(n-1) ... c0 49 | % mpc.gencost = [ 50 | % 1 0 0 2 0 0 1 25; 51 | % 1 0 0 2 0 0 1 30; 52 | % 1 0 0 2 -1 -10000 0 0; 53 | % ]; 54 | mpc.gencost = [ 55 | 2 0 0 2 25 0; 56 | 2 0 0 2 30 0; 57 | 2 0 0 2 1000 0; 58 | ]; 59 | -------------------------------------------------------------------------------- /lib/t/t_case_tlmp.m: -------------------------------------------------------------------------------- 1 | function mpc = t_case_tlmp 2 | % t_case_tlmp - Single bus, 2-gen case for TLMP examples from Cong Chen 3 | % 4 | % Please see caseformat for details on the case file format. 5 | 6 | % MOST 7 | % Copyright (c) 2022-2024, Power Systems Engineering Research Center (PSERC) 8 | % by Ray Zimmerman, PSERC Cornell 9 | % 10 | % This file is part of MOST. 11 | % Covered by the 3-clause BSD License (see LICENSE file for details). 12 | % See https://github.com/MATPOWER/most for more info. 13 | 14 | %% MATPOWER Case Format : Version 2 15 | mpc.version = '2'; 16 | 17 | %%----- Power Flow Data -----%% 18 | %% system MVA base 19 | mpc.baseMVA = 100; 20 | 21 | %% bus data 22 | % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin 23 | mpc.bus = [ 24 | 1 3 0 0 0 0 1 1 0 135 1 1.05 0.95; 25 | 2 1 0 0 0 0 1 1 0 135 1 1.05 0.95; 26 | ]; 27 | 28 | %% generator data 29 | % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf 30 | mpc.gen = [ 31 | 1 450 0 50 -50 1 100 1 500 0 0 0 0 0 0 0 0 1000 1000 0 0; 32 | 1 50 0 50 -50 1 100 1 500 0 0 0 0 0 0 0 0 1000 1000 0 0; 33 | 2 -420 0 0 0 1 100 1 0 -450 0 0 0 0 0 0 0 1000 1000 0 0; 34 | ]; 35 | 36 | %% branch data 37 | % fbus tbus r x b rateA rateB rateC ratio angle status angmin angmax 38 | mpc.branch = [ 39 | 1 2 0.005 0.01 0 0 0 3 0 0 1 -360 360; 40 | ]; 41 | 42 | %%----- OPF Data -----%% 43 | %% generator cost data 44 | % 1 startup shutdown n x1 y1 ... xn yn 45 | % 2 startup shutdown n c(n-1) ... c0 46 | mpc.gencost = [ 47 | 2 0 0 2 25 0; 48 | 2 0 0 2 30 0; 49 | 2 0 0 2 1000 0; 50 | ]; 51 | -------------------------------------------------------------------------------- /lib/t/t_case_tlmp_storage.m: -------------------------------------------------------------------------------- 1 | function mpc = t_case_tlmp_storage 2 | % t_case_tlmp_storage - Single bus, 1-gen, 1-storage case for TLMP example from Cong Chen 3 | % 4 | % Please see caseformat for details on the case file format. 5 | 6 | % MOST 7 | % Copyright (c) 2022-2024, Power Systems Engineering Research Center (PSERC) 8 | % by Ray Zimmerman, PSERC Cornell 9 | % 10 | % This file is part of MOST. 11 | % Covered by the 3-clause BSD License (see LICENSE file for details). 12 | % See https://github.com/MATPOWER/most for more info. 13 | 14 | %% MATPOWER Case Format : Version 2 15 | mpc.version = '2'; 16 | 17 | %%----- Power Flow Data -----%% 18 | %% system MVA base 19 | mpc.baseMVA = 100; 20 | 21 | %% bus data 22 | % bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin 23 | mpc.bus = [ 24 | 1 3 0 0 0 0 1 1 0 135 1 1.05 0.95; 25 | 2 1 0 0 0 0 1 1 0 135 1 1.05 0.95; 26 | ]; 27 | 28 | %% generator data 29 | % bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf 30 | mpc.gen = [ 31 | 1 200 0 50 -50 1 100 1 200 0 0 0 0 0 0 0 0 1000 1000 0 0; 32 | 2 -200 0 0 0 1 100 1 0 -450 0 0 0 0 0 0 0 1000 1000 0 0; 33 | 1 0 0 50 -50 1 100 1 25 -25 0 0 0 0 0 0 0 1000 1000 0 0; 34 | ]; 35 | 36 | %% branch data 37 | % fbus tbus r x b rateA rateB rateC ratio angle status angmin angmax 38 | mpc.branch = [ 39 | 1 2 0.005 0.01 0 0 0 3 0 0 1 -360 360; 40 | ]; 41 | 42 | %%----- OPF Data -----%% 43 | %% generator cost data 44 | % 1 startup shutdown n x1 y1 ... xn yn 45 | % 2 startup shutdown n c(n-1) ... c0 46 | mpc.gencost = [ 47 | 2 0 0 2 16.3 0 0 0 0 0; 48 | 2 0 0 2 17.7 0 0 0 0 0; 49 | 1 0 0 3 -1 -13.6 0 0 1 15.7; 50 | ]; 51 | -------------------------------------------------------------------------------- /lib/t/t_most_mpopf_soln.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/lib/t/t_most_mpopf_soln.mat -------------------------------------------------------------------------------- /lib/t/t_most_suc_soln.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/lib/t/t_most_suc_soln.mat -------------------------------------------------------------------------------- /lib/t/t_most_uc_soln.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/lib/t/t_most_uc_soln.mat -------------------------------------------------------------------------------- /lib/t/t_most_w_ds_z.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MATPOWER/most/241195754fa6bb609d4728b6370b812a2961d55c/lib/t/t_most_w_ds_z.mat -------------------------------------------------------------------------------- /lib/t/test_most.m: -------------------------------------------------------------------------------- 1 | function success = test_most(verbose, exit_on_fail) 2 | % test_most - Run all MOST tests. 3 | % :: 4 | % 5 | % test_most 6 | % test_most(verbose) 7 | % test_most(verbose, exit_on_fail) 8 | % success = test_most(...) 9 | % 10 | % Runs all of the MOST tests. If ``verbose`` is true *(false by default)*, 11 | % it prints the details of the individual tests. If ``exit_on_fail`` is true 12 | % *(false by default)*, it will exit MATLAB or Octave with a status of 1 13 | % unless t_run_tests returns ``all_ok`` true. 14 | % 15 | % See also t_run_tests. 16 | 17 | % MOST 18 | % Copyright (c) 2004-2024, Power Systems Engineering Research Center (PSERC) 19 | % by Ray Zimmerman, PSERC Cornell 20 | % 21 | % This file is part of MOST. 22 | % Covered by the 3-clause BSD License (see LICENSE file for details). 23 | % See https://github.com/MATPOWER/most for more info. 24 | 25 | if nargin < 2 26 | exit_on_fail = 0; 27 | if nargin < 1 28 | verbose = 0; 29 | end 30 | end 31 | 32 | tests = {}; 33 | 34 | %% MOST tests 35 | have_c3sopf = exist('c3sopf', 'file') == 2; 36 | tests{end+1} = 't_most_3b_1_1_0'; 37 | tests{end+1} = 't_most_3b_3_1_0'; 38 | if have_c3sopf 39 | tests{end+1} = 't_most_3b_1_1_2'; 40 | tests{end+1} = 't_most_3b_3_1_2'; 41 | end 42 | tests{end+1} = 't_most_30b_1_1_0'; 43 | tests{end+1} = 't_most_30b_3_1_0'; 44 | if have_c3sopf 45 | tests{end+1} = 't_most_30b_1_1_17'; 46 | tests{end+1} = 't_most_30b_3_1_17'; 47 | end 48 | tests{end+1} = 't_most_fixed_res'; 49 | tests{end+1} = 't_most_30b_1_1_0_uc'; 50 | if have_c3sopf 51 | tests{end+1} = 't_most_sp'; 52 | tests{end+1} = 't_most_spuc'; 53 | end 54 | tests{end+1} = 't_most_mpopf'; 55 | tests{end+1} = 't_most_uc'; 56 | tests{end+1} = 't_most_suc'; 57 | tests{end+1} = 't_most_tlmp'; 58 | tests{end+1} = 't_most_w_ds'; 59 | 60 | %% run the tests 61 | all_ok = t_run_tests( tests, verbose ); 62 | 63 | %% handle success/failure 64 | if exit_on_fail && ~all_ok 65 | exit(1); 66 | end 67 | if nargout 68 | success = all_ok; 69 | end 70 | -------------------------------------------------------------------------------- /lib/t/uniformwindprofile.m: -------------------------------------------------------------------------------- 1 | function profiles = uniformwindprofile(nt, nj, n) 2 | % uniformwindprofile - Creates a wind profile with evenly spaced capacity values. 3 | % :: 4 | % 5 | % PROFILES = UNIFORMWINDPROFILE(NT, NJ, N) 6 | % 7 | % Returns a Profile struct to modify the PMAX of a set N generators. 8 | % The profile has NT periods and NJ scenarios, where the NJ scale 9 | % factors are evenly spaced from 0 to 1. All inputs are optional. 10 | % Defaults are NT = 24, NJ = 5, N = 1. 11 | % 12 | % See also idx_profile, getprofiles. 13 | 14 | % MOST 15 | % Copyright (c) 2013-2024, Power Systems Engineering Research Center (PSERC) 16 | % by Ray Zimmerman, PSERC Cornell 17 | % 18 | % This file is part of MOST. 19 | % Covered by the 3-clause BSD License (see LICENSE file for details). 20 | % See https://github.com/MATPOWER/most for more info. 21 | 22 | %% define constants 23 | [GEN_BUS, PG, QG, QMAX, QMIN, VG, MBASE, GEN_STATUS, PMAX, PMIN, ... 24 | MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN, PC1, PC2, QC1MIN, QC1MAX, ... 25 | QC2MIN, QC2MAX, RAMP_AGC, RAMP_10, RAMP_30, RAMP_Q, APF] = idx_gen; 26 | [CT_LABEL, CT_PROB, CT_TABLE, CT_TBUS, CT_TGEN, CT_TBRCH, CT_TAREABUS, ... 27 | CT_TAREAGEN, CT_TAREABRCH, CT_ROW, CT_COL, CT_CHGTYPE, CT_REP, ... 28 | CT_REL, CT_ADD, CT_NEWVAL, CT_TLOAD, CT_TAREALOAD, CT_LOAD_ALL_PQ, ... 29 | CT_LOAD_FIX_PQ, CT_LOAD_DIS_PQ, CT_LOAD_ALL_P, CT_LOAD_FIX_P, ... 30 | CT_LOAD_DIS_P, CT_TGENCOST, CT_TAREAGENCOST, CT_MODCOST_F, ... 31 | CT_MODCOST_X] = idx_ct; 32 | 33 | %% set up default input args 34 | if nargin < 3 35 | n = []; 36 | if nargin < 2 37 | nj = []; 38 | if nargin < 1 39 | nt = []; 40 | end 41 | end 42 | end 43 | if isempty(nt) 44 | nt = 24; 45 | end 46 | if isempty(nj) 47 | nj = 5; 48 | end 49 | if isempty(n) 50 | n = 1; 51 | end 52 | 53 | %% initialize profile 54 | profiles = struct( ... 55 | 'type', 'mpcData', ... 56 | 'table', CT_TGEN, ... 57 | 'rows', 1, ... 58 | 'col', PMAX, ... 59 | 'chgtype', CT_REL, ... 60 | 'values', [] ); 61 | 62 | c = (0:1/(nj-1):1); 63 | profiles.values = repmat(c, [nt 1 n]); 64 | 65 | %% default looks like ... 66 | % profiles.values(:, :, 1) = [ 67 | % 0 0.25 0.5 0.75 1; 68 | % 0 0.25 0.5 0.75 1; 69 | % 0 0.25 0.5 0.75 1; 70 | % 0 0.25 0.5 0.75 1; 71 | % 0 0.25 0.5 0.75 1; 72 | % 0 0.25 0.5 0.75 1; 73 | % 0 0.25 0.5 0.75 1; 74 | % 0 0.25 0.5 0.75 1; 75 | % 0 0.25 0.5 0.75 1; 76 | % 0 0.25 0.5 0.75 1; 77 | % 0 0.25 0.5 0.75 1; 78 | % 0 0.25 0.5 0.75 1; 79 | % 0 0.25 0.5 0.75 1; 80 | % 0 0.25 0.5 0.75 1; 81 | % 0 0.25 0.5 0.75 1; 82 | % 0 0.25 0.5 0.75 1; 83 | % 0 0.25 0.5 0.75 1; 84 | % 0 0.25 0.5 0.75 1; 85 | % 0 0.25 0.5 0.75 1; 86 | % 0 0.25 0.5 0.75 1; 87 | % 0 0.25 0.5 0.75 1; 88 | % 0 0.25 0.5 0.75 1; 89 | % 0 0.25 0.5 0.75 1; 90 | % 0 0.25 0.5 0.75 1; 91 | % ]; 92 | --------------------------------------------------------------------------------