|
|
<!DOCTYPE html>
|
|
|
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>API Reference · UnitCommitment.jl</title><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.045/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href="../">UnitCommitment.jl</a></span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><a class="tocitem" href="../usage/">Usage</a></li><li><a class="tocitem" href="../format/">Data Format</a></li><li><a class="tocitem" href="../instances/">Instances</a></li><li><a class="tocitem" href="../model/">JuMP Model</a></li><li class="is-active"><a class="tocitem" href>API Reference</a><ul class="internal"><li><a class="tocitem" href="#Read-data,-build-model-and-optimize"><span>Read data, build model & optimize</span></a></li><li><a class="tocitem" href="#Modify-instance"><span>Modify instance</span></a></li><li><a class="tocitem" href="#Formulations"><span>Formulations</span></a></li><li><a class="tocitem" href="#Solution-Methods"><span>Solution Methods</span></a></li><li><a class="tocitem" href="#Randomization-Methods"><span>Randomization Methods</span></a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>API Reference</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>API Reference</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/dev/docs/src/api.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="API-Reference"><a class="docs-heading-anchor" href="#API-Reference">API Reference</a><a id="API-Reference-1"></a><a class="docs-heading-anchor-permalink" href="#API-Reference" title="Permalink"></a></h1><h2 id="Read-data,-build-model-and-optimize"><a class="docs-heading-anchor" href="#Read-data,-build-model-and-optimize">Read data, build model & optimize</a><a id="Read-data,-build-model-and-optimize-1"></a><a class="docs-heading-anchor-permalink" href="#Read-data,-build-model-and-optimize" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.read" href="#UnitCommitment.read"><code>UnitCommitment.read</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">read(path::AbstractString)::UnitCommitmentInstance</code></pre><p>Read a unit commitment instance from a file. The file may be gzipped.</p><p><strong>Example</strong></p><pre><code class="nohighlight hljs">import UnitCommitment
|
|
|
instance = UnitCommitment.read("/path/to/input.json.gz")</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/instance/read.jl#L48-L58">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.read_benchmark" href="#UnitCommitment.read_benchmark"><code>UnitCommitment.read_benchmark</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">read_benchmark(name::AbstractString)::UnitCommitmentInstance</code></pre><p>Read one of the benchmark unit commitment instances included in the package. See "Instances" section of the documentation for the entire list of benchmark instances available.</p><p><strong>Example</strong></p><pre><code class="nohighlight hljs">import UnitCommitment
|
|
|
instance = UnitCommitment.read_benchmark("matpower/case3375wp/2017-02-01")</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/instance/read.jl#L13-L25">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.build_model" href="#UnitCommitment.build_model"><code>UnitCommitment.build_model</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">function build_model(;
|
|
|
instance::UnitCommitmentInstance,
|
|
|
optimizer = nothing,
|
|
|
variable_names::Bool = false,
|
|
|
)::JuMP.Model</code></pre><p>Build the JuMP model corresponding to the given unit commitment instance.</p><p><strong>Arguments</strong></p><ul><li><code>instance</code>: the instance.</li><li><code>optimizer</code>: the optimizer factory that should be attached to this model (e.g. Cbc.Optimizer). If not provided, no optimizer will be attached.</li><li><code>variable_names</code>: If true, set variable and constraint names. Important if the model is going to be exported to an MPS file. For large models, this can take significant time, so it's disabled by default.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/model/build.jl#L8-L28">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.optimize!" href="#UnitCommitment.optimize!"><code>UnitCommitment.optimize!</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">function optimize!(model::JuMP.Model)::Nothing</code></pre><p>Solve the given unit commitment model. Unlike JuMP.optimize!, this uses more advanced methods to accelerate the solution process and to enforce transmission and N-1 security constraints.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/solution/optimize.jl#L5-L11">source</a></section></article><div class="admonition is-warning"><header class="admonition-header">Missing docstring.</header><div class="admonition-body"><p>Missing docstring for <code>UnitCommitment.solution</code>. Check Documenter's build log for details.</p></div></div><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.validate" href="#UnitCommitment.validate"><code>UnitCommitment.validate</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">validate(instance, solution)::Bool</code></pre><p>Verifies that the given solution is feasible for the problem. If feasible, silently returns true. In infeasible, returns false and prints the validation errors to the screen.</p><p>This function is implemented independently from the optimization model in <code>model.jl</code>, and therefore can be used to verify that the model is indeed producing valid solutions. It can also be used to verify the solutions produced by other optimization packages.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/validation/validate.jl#L15-L26">source</a></section></article><div class="admonition is-warning"><header class="admonition-header">Missing docstring.</header><div class="admonition-body"><p>Missing docstring for <code>UnitCommitment.write</code>. Check Documenter's build log for details.</p></div></div><h2 id="Modify-instance"><a class="docs-heading-anchor" href="#Modify-instance">Modify instance</a><a id="Modify-instance-1"></a><a class="docs-heading-anchor-permalink" href="#Modify-instance" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.slice" href="#UnitCommitment.slice"><code>UnitCommitment.slice</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">slice(instance, range)</code></pre><p>Creates a new instance, with only a subset of the time periods. This function does not modify the provided instance. The initial conditions are also not modified.</p><p><strong>Example</strong></p><pre><code class="nohighlight hljs"># Build a 2-hour UC instance
|
|
|
instance = UnitCommitment.read_benchmark("test/case14")
|
|
|
modified = UnitCommitment.slice(instance, 1:2)</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/transform/slice.jl#L5-L19">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.randomize!" href="#UnitCommitment.randomize!"><code>UnitCommitment.randomize!</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">function randomize!(
|
|
|
instance::UnitCommitment.UnitCommitmentInstance,
|
|
|
method::XavQiuAhm2021.Randomization,
|
|
|
rng = MersenneTwister(),
|
|
|
)::Nothing</code></pre><p>Randomize costs and loads based on the method described in XavQiuAhm2021.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/transform/randomize/XavQiuAhm2021.jl#L189-L197">source</a></section></article><div class="admonition is-warning"><header class="admonition-header">Missing docstring.</header><div class="admonition-body"><p>Missing docstring for <code>generate_initial_conditions!</code>. Check Documenter's build log for details.</p></div></div><h2 id="Formulations"><a class="docs-heading-anchor" href="#Formulations">Formulations</a><a id="Formulations-1"></a><a class="docs-heading-anchor-permalink" href="#Formulations" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.ArrCon2000" href="#UnitCommitment.ArrCon2000"><code>UnitCommitment.ArrCon2000</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Formulation described in:</p><pre><code class="nohighlight hljs">Arroyo, J. M., & Conejo, A. J. (2000). Optimal response of a thermal unit
|
|
|
to an electricity spot market. IEEE Transactions on power systems, 15(3),
|
|
|
1098-1104. DOI: https://doi.org/10.1109/59.871739</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/model/formulations/ArrCon2000/structs.jl#L5-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.CarArr2006" href="#UnitCommitment.CarArr2006"><code>UnitCommitment.CarArr2006</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Formulation described in:</p><pre><code class="nohighlight hljs">Carrión, M., & Arroyo, J. M. (2006). A computationally efficient
|
|
|
mixed-integer linear formulation for the thermal unit commitment problem.
|
|
|
IEEE Transactions on power systems, 21(3), 1371-1378.
|
|
|
DOI: https://doi.org/10.1109/TPWRS.2006.876672</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/model/formulations/CarArr2006/structs.jl#L5-L12">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.DamKucRajAta2016" href="#UnitCommitment.DamKucRajAta2016"><code>UnitCommitment.DamKucRajAta2016</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Formulation described in:</p><pre><code class="nohighlight hljs">Damcı-Kurt, P., Küçükyavuz, S., Rajan, D., & Atamtürk, A. (2016). A polyhedral
|
|
|
study of production ramping. Mathematical Programming, 158(1), 175-205.
|
|
|
DOI: https://doi.org/10.1007/s10107-015-0919-9</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/model/formulations/DamKucRajAta2016/structs.jl#L5-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.Gar1962" href="#UnitCommitment.Gar1962"><code>UnitCommitment.Gar1962</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Formulation described in:</p><pre><code class="nohighlight hljs">Garver, L. L. (1962). Power generation scheduling by integer
|
|
|
programming-development of theory. Transactions of the American Institute
|
|
|
of Electrical Engineers. Part III: Power Apparatus and Systems, 81(3), 730-734.
|
|
|
DOI: https://doi.org/10.1109/AIEEPAS.1962.4501405</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/model/formulations/Gar1962/structs.jl#L5-L13">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.KnuOstWat2018" href="#UnitCommitment.KnuOstWat2018"><code>UnitCommitment.KnuOstWat2018</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Formulation described in:</p><pre><code class="nohighlight hljs">Knueven, B., Ostrowski, J., & Watson, J. P. (2018). Exploiting identical
|
|
|
generators in unit commitment. IEEE Transactions on Power Systems, 33(4),
|
|
|
4496-4507. DOI: https://doi.org/10.1109/TPWRS.2017.2783850</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/model/formulations/KnuOstWat2018/structs.jl#L5-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.MorLatRam2013" href="#UnitCommitment.MorLatRam2013"><code>UnitCommitment.MorLatRam2013</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Formulation described in:</p><pre><code class="nohighlight hljs">Morales-España, G., Latorre, J. M., & Ramos, A. (2013). Tight and compact
|
|
|
MILP formulation for the thermal unit commitment problem. IEEE Transactions
|
|
|
on Power Systems, 28(4), 4897-4908. DOI: https://doi.org/10.1109/TPWRS.2013.2251373</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/model/formulations/MorLatRam2013/structs.jl#L5-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.PanGua2016" href="#UnitCommitment.PanGua2016"><code>UnitCommitment.PanGua2016</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Formulation described in:</p><pre><code class="nohighlight hljs">Pan, K., & Guan, Y. (2016). Strong formulations for multistage stochastic
|
|
|
self-scheduling unit commitment. Operations Research, 64(6), 1482-1498.
|
|
|
DOI: https://doi.org/10.1287/opre.2016.1520</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/model/formulations/PanGua2016/structs.jl#L5-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.WanHob2016" href="#UnitCommitment.WanHob2016"><code>UnitCommitment.WanHob2016</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Formulation described in:</p><pre><code class="nohighlight hljs">B. Wang and B. F. Hobbs, "Real-Time Markets for Flexiramp: A Stochastic
|
|
|
Unit Commitment-Based Analysis," in IEEE Transactions on Power Systems,
|
|
|
vol. 31, no. 2, pp. 846-860, March 2016, doi: 10.1109/TPWRS.2015.2411268.</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/model/formulations/WanHob2016/structs.jl#L5-L11">source</a></section></article><h2 id="Solution-Methods"><a class="docs-heading-anchor" href="#Solution-Methods">Solution Methods</a><a id="Solution-Methods-1"></a><a class="docs-heading-anchor-permalink" href="#Solution-Methods" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.XavQiuWanThi2019" href="#UnitCommitment.XavQiuWanThi2019"><code>UnitCommitment.XavQiuWanThi2019</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Lazy constraint solution method described in:</p><pre><code class="nohighlight hljs">Xavier, A. S., Qiu, F., Wang, F., & Thimmapuram, P. R. (2019). Transmission
|
|
|
constraint filtering in large-scale security-constrained unit commitment.
|
|
|
IEEE Transactions on Power Systems, 34(3), 2457-2460.
|
|
|
DOI: https://doi.org/10.1109/TPWRS.2019.2892620</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/solution/methods/XavQiuWanThi2019/structs.jl#L5-L12">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.XavQiuWanThi2019.Method" href="#UnitCommitment.XavQiuWanThi2019.Method"><code>UnitCommitment.XavQiuWanThi2019.Method</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">mutable struct Method
|
|
|
time_limit::Float64
|
|
|
gap_limit::Float64
|
|
|
two_phase_gap::Bool
|
|
|
max_violations_per_line::Int
|
|
|
max_violations_per_period::Int
|
|
|
end</code></pre><p><strong>Fields</strong></p><ul><li><code>time_limit</code>: the time limit over the entire optimization procedure.</li><li><code>gap_limit</code>: the desired relative optimality gap. Only used when <code>two_phase_gap=true</code>.</li><li><code>two_phase_gap</code>: if true, solve the problem with large gap tolerance first, then reduce the gap tolerance when no further violated constraints are found.</li><li><code>max_violations_per_line</code>: maximum number of violated transmission constraints to add to the formulation per transmission line.</li><li><code>max_violations_per_period</code>: maximum number of violated transmission constraints to add to the formulation per time period.</li></ul></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/solution/methods/XavQiuWanThi2019/structs.jl#L15-L41">source</a></section></article><h2 id="Randomization-Methods"><a class="docs-heading-anchor" href="#Randomization-Methods">Randomization Methods</a><a id="Randomization-Methods-1"></a><a class="docs-heading-anchor-permalink" href="#Randomization-Methods" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.XavQiuAhm2021" href="#UnitCommitment.XavQiuAhm2021"><code>UnitCommitment.XavQiuAhm2021</code></a> — <span class="docstring-category">Module</span></header><section><div><p>Methods described in:</p><pre><code class="nohighlight hljs">Xavier, Álinson S., Feng Qiu, and Shabbir Ahmed. "Learning to solve
|
|
|
large-scale security-constrained unit commitment problems." INFORMS
|
|
|
Journal on Computing 33.2 (2021): 739-756. DOI: 10.1287/ijoc.2020.0976</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/transform/randomize/XavQiuAhm2021.jl#L5-L11">source</a></section></article><article class="docstring"><header><a class="docstring-binding" id="UnitCommitment.XavQiuAhm2021.Randomization" href="#UnitCommitment.XavQiuAhm2021.Randomization"><code>UnitCommitment.XavQiuAhm2021.Randomization</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Randomization
|
|
|
cost = Uniform(0.95, 1.05)
|
|
|
load_profile_mu = [...]
|
|
|
load_profile_sigma = [...]
|
|
|
load_share = Uniform(0.90, 1.10)
|
|
|
peak_load = Uniform(0.6 * 0.925, 0.6 * 1.075)
|
|
|
randomize_costs = true
|
|
|
randomize_load_profile = true
|
|
|
randomize_load_share = true
|
|
|
end</code></pre><p>Randomization method that changes: (1) production and startup costs, (2) share of load coming from each bus, (3) peak system load, and (4) temporal load profile, as follows:</p><ol><li><p><strong>Production and startup costs:</strong> For each unit <code>u</code>, the vectors <code>u.min_power_cost</code> and <code>u.cost_segments</code> are multiplied by a constant <code>α[u]</code> sampled from the provided <code>cost</code> distribution. If <code>randomize_costs</code> is false, skips this step.</p></li><li><p><strong>Load share:</strong> For each bus <code>b</code> and time <code>t</code>, the value <code>b.load[t]</code> is multiplied by <code>(β[b] * b.load[t]) / sum(β[b2] * b2.load[t] for b2 in buses)</code>, where <code>β[b]</code> is sampled from the provided <code>load_share</code> distribution. If <code>randomize_load_share</code> is false, skips this step.</p></li><li><p><strong>Peak system load and temporal load profile:</strong> Sets the peak load to <code>ρ * C</code>, where <code>ρ</code> is sampled from <code>peak_load</code> and <code>C</code> is the maximum system capacity, at any time. Also scales the loads of all buses, so that <code>system_load[t+1]</code> becomes equal to <code>system_load[t] * γ[t]</code>, where <code>γ[t]</code> is sampled from <code>Normal(load_profile_mu[t], load_profile_sigma[t])</code>.</p><p>The system load for the first time period is set so that the peak load matches <code>ρ * C</code>. If <code>load_profile_sigma</code> and <code>load_profile_mu</code> have fewer elements than <code>instance.time</code>, wraps around. If <code>randomize_load_profile</code> is false, skips this step.</p></li></ol><p>The default parameters were obtained based on an analysis of publicly available bid and hourly data from PJM, corresponding to the month of January, 2017. For more details, see Section 4.2 of the paper.</p></div><a class="docs-sourcelink" target="_blank" href="https://github.com/ANL-CEEESA/UnitCommitment.jl/blob/b68b4ff9e46f67a4711596883d93d0275266dc36/src/transform/randomize/XavQiuAhm2021.jl#L17-L58">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../model/">« JuMP Model</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 0.27.21 on <span class="colophon-date" title="Sunday 17 July 2022 14:42">Sunday 17 July 2022</span>. Using Julia version 1.7.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
|