parent
2677fb6404
commit
e3d2fe59f7
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1,288 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
|
||||
<link rel="shortcut icon" href="../img/favicon.ico">
|
||||
|
||||
|
||||
<title>Solvers - UnitCommitment.jl</title>
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/v4-shims.css">
|
||||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack.min.css">
|
||||
<link href='//rsms.me/inter/inter.css' rel='stylesheet' type='text/css'>
|
||||
<link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,600,700&subset=latin-ext,latin' rel='stylesheet' type='text/css'>
|
||||
<link href="../css/bootstrap-custom.min.css" rel="stylesheet">
|
||||
<link href="../css/base.min.css" rel="stylesheet">
|
||||
<link href="../css/cinder.min.css" rel="stylesheet">
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/styles/github.min.css">
|
||||
|
||||
|
||||
<link href="../css/custom.css" rel="stylesheet">
|
||||
|
||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
|
||||
<!-- Collapsed navigation -->
|
||||
<div class="navbar-header">
|
||||
<!-- Expander button -->
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
|
||||
|
||||
<!-- Main title -->
|
||||
|
||||
<a class="navbar-brand" href="..">UnitCommitment.jl</a>
|
||||
</div>
|
||||
|
||||
<!-- Expanded navigation -->
|
||||
<div class="navbar-collapse collapse">
|
||||
<!-- Main navigation -->
|
||||
<ul class="nav navbar-nav">
|
||||
|
||||
|
||||
<li >
|
||||
<a href="..">Home</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../install/">Install</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li >
|
||||
<a href="../format/">Data</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li>
|
||||
<a href="#" data-toggle="modal" data-target="#mkdocs_search_modal">
|
||||
<i class="fas fa-search"></i> Search
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/edit/master/src/docs/solvers.md"><i class="fab fa-github"></i> Edit on GitHub</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
|
||||
|
||||
<div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
|
||||
<ul class="nav bs-sidenav">
|
||||
<li class="first-level active"><a href="#benchmark-solver">Benchmark Solver</a></li>
|
||||
<li class="second-level"><a href="#usage">Usage</a></li>
|
||||
|
||||
<li class="second-level"><a href="#reference">Reference</a></li>
|
||||
|
||||
</ul>
|
||||
</div></div>
|
||||
<div class="col-md-9" role="main">
|
||||
|
||||
<h1 id="benchmark-solver">Benchmark Solver</h1>
|
||||
<p>Solving an instance of the Unit Commitment problem typically involves more
|
||||
than simply building a Mixed-Integer Linear Programming and handing it over to the
|
||||
solver. Since the number of transmission and N-1 security constraints can
|
||||
easily exceed hundreds of millions for large instances of the problem, it is often
|
||||
necessary to iterate between MILP optimization and contingency screening, so
|
||||
that only necessary transmission constraints are added to the MILP.</p>
|
||||
<p><code>UnitCommitment.jl</code> includes a fast implementation of the contingency
|
||||
screening method described in
|
||||
<a href="https://doi.org/10.1109/TPWRS.2019.2892620">[1]</a>, which is able to
|
||||
efficiently handle even ISO-scale instances of the problem. The method makes
|
||||
use of Injection Shift Factors (ISFs) and Line Outage Distribution Factors
|
||||
(LODFs) to model DC power flows and N-1 contingencies. If Julia is configured
|
||||
to use multiple threads (through the environment variable <code>JULIA_NUM_THREADS</code>)
|
||||
then multiple contingency scenarios are evaluated in parallel.</p>
|
||||
<h2 id="usage">Usage</h2>
|
||||
<p>To solve one of the benchmark instances using the included benchmark solver, use the method <code>UnitCommitment.solve</code>
|
||||
as shown in the example below.</p>
|
||||
<pre><code>julia> UnitCommitment.solve("ieee_rts/case118")
|
||||
[ Info: Loading instance: ieee_rts/case118
|
||||
[ Info: 54 units
|
||||
[ Info: 118 buses
|
||||
[ Info: 186 lines
|
||||
[ Info: Scaling problem (0.6 demands, 1.0 limits)...
|
||||
[ Info: Using Cbc as MILP solver (0.001 gap, 4 threads)
|
||||
[ Info: Computing sensitivity factors (0.001 ISF cutoff, 0.0001 LODF cutoff)...
|
||||
[ Info: Building MILP model (24 hours, 0.01 reserve)...
|
||||
[ Info: Optimizing...
|
||||
[ Info: Optimal value: 4.033106e+06
|
||||
[ Info: Solved in 8.73 seconds
|
||||
</code></pre>
|
||||
<p>With default settings, the solver does not consider any transmission or
|
||||
security constraints, and the peak load is automatically set to 60% of the
|
||||
installed capacity of the system. These, and many other settings, can be
|
||||
configured using keyword arguments. See the reference section below for more
|
||||
details. Sample usage:</p>
|
||||
<pre><code>julia> UnitCommitment.solve("ieee_rts/case118", demand_scale=0.7, security=true)
|
||||
[ Info: Loading instance: ieee_rts/case118
|
||||
[ Info: 54 units
|
||||
[ Info: 118 buses
|
||||
[ Info: 186 lines
|
||||
[ Info: Scaling problem (0.7 demands, 1.0 limits)...
|
||||
[ Info: Using Cbc as MILP solver (0.001 gap, 4 threads)
|
||||
[ Info: Computing sensitivity factors (0.001 ISF cutoff, 0.0001 LODF cutoff)...
|
||||
[ Info: Building MILP model (24 hours, 0.01 reserve)...
|
||||
[ Info: Optimizing...
|
||||
[ Info: Verifying flow constraints...
|
||||
[ Info: Optimal value: 4.888740e+06
|
||||
[ Info: Solved in 4.50 seconds
|
||||
</code></pre>
|
||||
<p>When transmission or N-1 security constraints are activated, the solver uses an
|
||||
iterative method to lazily enforce them. See <a href="https://doi.org/10.1109/TPWRS.2019.2892620">this
|
||||
paper</a> for a detailed description
|
||||
of the method. Injection Shift Factors (ISF) and Line Outage Distribution
|
||||
Factors (LODF) are used for the computation of DC power flows. </p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>Many of the benchmark instances were not originally designed for N-1
|
||||
security-constrained studies, and may become infeasible if these constraints
|
||||
are enforced. To avoid infeasibilities, the transmission limits can be
|
||||
increased through the keyword argument <code>limit_scale</code>.</p>
|
||||
</div>
|
||||
<p>By default, the MILP is solved using <a href="https://github.com/coin-or/Cbc">Cbc, the COIN-OR Branch and Cut
|
||||
solver</a>. If <code>UnitCommitment</code> is loaded after
|
||||
either <a href="https://github.com/JuliaOpt/CPLEX.jl">CPLEX</a> or
|
||||
<a href="https://github.com/SCIP-Interfaces/SCIP.jl">SCIP</a>, then these solvers will be
|
||||
used instead. A detailed solver log can be displayed by setting <code>verbose=true</code>.</p>
|
||||
<h2 id="reference">Reference</h2>
|
||||
<p><code>@docs
|
||||
UnitCommitment.solve</code></p></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="col-md-12 text-center">
|
||||
|
||||
<hr>
|
||||
<p>
|
||||
<small>Copyright © 2020, UChicago Argonne, LLC. All Rights Reserved.</small><br>
|
||||
|
||||
<small>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</small>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
</footer>
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
|
||||
<script src="../js/bootstrap-3.0.3.min.js"></script>
|
||||
|
||||
|
||||
<script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.0/build/highlight.min.js"></script>
|
||||
|
||||
<script>hljs.initHighlightingOnLoad();</script>
|
||||
|
||||
|
||||
<script>var base_url = ".."</script>
|
||||
|
||||
<script src="../js/base.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script src="../js/mathjax.js"></script>
|
||||
<script src="../search/main.js"></script>
|
||||
|
||||
<div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal">
|
||||
<span aria-hidden="true">×</span>
|
||||
<span class="sr-only">Close</span>
|
||||
</button>
|
||||
<h4 class="modal-title" id="searchModalLabel">Search</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
From here you can search these documents. Enter
|
||||
your search terms below.
|
||||
</p>
|
||||
<form>
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query" title="Type search term here">
|
||||
</div>
|
||||
</form>
|
||||
<div id="mkdocs-search-results"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
||||
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20%;">Keys</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="help shortcut"><kbd>?</kbd></td>
|
||||
<td>Open this help</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="next shortcut"><kbd>n</kbd></td>
|
||||
<td>Next page</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="prev shortcut"><kbd>p</kbd></td>
|
||||
<td>Previous page</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="search shortcut"><kbd>s</kbd></td>
|
||||
<td>Search</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
Loading…
Reference in new issue