title : Example Case 3 - Year Planning author : Andrew Rosemberg date : 15th Feb 2019 –-
This an example of the HydroPowerModels package for solving a simple stochastic case with the following specifications:
3 Buses
3 Lines
2 Generators
1 Reservoir and Hydrogenerator
3 Scenarios
12 Stages
using GLPK using HydroPowerModels
results = "hidden"
if !@isdefined plot_bool plot_bool = true end using Random seed = 1221
1221
Data
alldata = HydroPowerModels.parse_folder(joinpath(WEAVE_ARGS[:testcases_dir], "case3"));
Plot power grid graph
if plot_bool == true Random.seed!(seed) HydroPowerModels.plot_grid(alldata[1]; node_label=false) end
ERROR: UndefVarError: `plot_grid` not defined
Parameters
params = create_param(; stages=12, model_constructor_grid=DCPPowerModel, post_method=PowerModels.build_opf, optimizer=GLPK.Optimizer, );
results = "hidden"
m = hydrothermaloperation(alldata, params);
ERROR: UndefVarError: `MathOptInterface` not defined
results = "hidden"
Random.seed!(seed) start_time = time() HydroPowerModels.train( m; iteration_limit=100, stopping_rules=[SDDP.Statistical(; num_replications=20, iteration_period=20)], ); end_time = time() - start_time
ERROR: UndefVarError: `m` not defined
Termination Status and solve time (s)
(SDDP.termination_status(m.policygraph), end_time)
ERROR: UndefVarError: `m` not defined
Bounds
if plot_bool == true HydroPowerModels.plot_bound(m) end
ERROR: UndefVarError: `plot_bound` not defined
using Random: Random Random.seed!(seed) results = HydroPowerModels.simulate(m, 100); results
ERROR: UndefVarError: `m` not defined
using Test
Bound
@test SDDP.calculate_bound(m.policygraph) >= 1.1e4
Error During Test at /home/runner/work/HydroPowerModels.jl/HydroPowerModels
.jl/examples/HydroValleys/case3.jl:2
Test threw exception
Expression: SDDP.calculate_bound(m.policygraph) >= 11000.0
UndefVarError: `m` not defined
Stacktrace:
[1] top-level scope
@ /opt/hostedtoolcache/julia/1.9.3/x64/share/julia/stdlib/v1.9/Test/s
rc/Test.jl:478
[2] eval
@ ./boot.jl:370 [inlined]
[3] include_string(mapexpr::typeof(identity), mod::Module, code::String
, filename::String)
@ Base ./loading.jl:1903
[4] include_string
@ ./loading.jl:1913 [inlined]
[5] (::Weave.var"#32#34"{String, Module, String, Bool, Task, Base.PipeE
ndpoint, Base.PipeEndpoint, Base.PipeEndpoint})()
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:218
[6] task_local_storage(body::Weave.var"#32#34"{String, Module, String,
Bool, Task, Base.PipeEndpoint, Base.PipeEndpoint, Base.PipeEndpoint}, key::
Symbol, val::String)
@ Base ./task.jl:296
[7] capture_output(code::String, mod::Module, path::String, error::Bool
, report::Weave.Report)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:216
[8] #29
@ ~/.julia/packages/Weave/f7Ly3/src/run.jl:191 [inlined]
[9] _broadcast_getindex_evalf
@ ./broadcast.jl:683 [inlined]
[10] _broadcast_getindex
@ ./broadcast.jl:656 [inlined]
[11] getindex
@ ./broadcast.jl:610 [inlined]
[12] macro expansion
@ ./broadcast.jl:974 [inlined]
[13] macro expansion
@ ./simdloop.jl:77 [inlined]
[14] copyto!
@ ./broadcast.jl:973 [inlined]
[15] copyto!
@ ./broadcast.jl:926 [inlined]
[16] copy
@ ./broadcast.jl:898 [inlined]
[17] materialize(bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultAr
rayStyle{1}, Nothing, Weave.var"#29#30"{Weave.Report, Module, Bool, String}
, Tuple{Vector{String}}})
@ Base.Broadcast ./broadcast.jl:873
[18] run_code(doc::Weave.WeaveDoc, chunk::Weave.CodeChunk, report::Weave
.Report, mod::Module)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:192
[19] eval_chunk(doc::Weave.WeaveDoc, chunk::Weave.CodeChunk, report::Wea
ve.Report, mod::Module)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:263
[20] run_chunk(chunk::Weave.CodeChunk, doc::Weave.WeaveDoc, report::Weav
e.Report, mod::Module)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:133
[21] run_doc(doc::Weave.WeaveDoc; doctype::String, out_path::String, arg
s::Dict{Symbol, String}, mod::Nothing, fig_path::Nothing, fig_ext::Nothing,
cache_path::String, cache::Symbol)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:74
[22] weave(source::String; doctype::String, informat::Nothing, out_path:
:String, args::Dict{Symbol, String}, mod::Nothing, fig_path::Nothing, fig_e
xt::Nothing, cache_path::String, cache::Symbol, template::Nothing, css::Not
hing, highlight_theme::Nothing, pandoc_options::Vector{String}, latex_cmd::
Vector{String}, keep_unicode::Bool)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/Weave.jl:176
[23] top-level scope
@ ~/work/HydroPowerModels.jl/HydroPowerModels.jl/docs/make_examples.j
l:9
[24] include(fname::String)
@ Base.MainInclude ./client.jl:478
[25] top-level scope
@ ~/work/HydroPowerModels.jl/HydroPowerModels.jl/docs/make.jl:30
[26] include(fname::String)
@ Base.MainInclude ./client.jl:478
[27] top-level scope
@ none:5
[28] eval
@ ./boot.jl:370 [inlined]
[29] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:280
[30] _start()
@ Base ./client.jl:522
ERROR: Test.FallbackTestSetException("There was an error during testing")
Number of Simulations
@test length(results[:simulations]) == 100
Error During Test at /home/runner/work/HydroPowerModels.jl/HydroPowerModels
.jl/examples/HydroValleys/case3.jl:2
Test threw exception
Expression: length(results[:simulations]) == 100
UndefVarError: `results` not defined
Stacktrace:
[1] top-level scope
@ /opt/hostedtoolcache/julia/1.9.3/x64/share/julia/stdlib/v1.9/Test/s
rc/Test.jl:478
[2] eval
@ ./boot.jl:370 [inlined]
[3] include_string(mapexpr::typeof(identity), mod::Module, code::String
, filename::String)
@ Base ./loading.jl:1903
[4] include_string
@ ./loading.jl:1913 [inlined]
[5] (::Weave.var"#32#34"{String, Module, String, Bool, Task, Base.PipeE
ndpoint, Base.PipeEndpoint, Base.PipeEndpoint})()
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:218
[6] task_local_storage(body::Weave.var"#32#34"{String, Module, String,
Bool, Task, Base.PipeEndpoint, Base.PipeEndpoint, Base.PipeEndpoint}, key::
Symbol, val::String)
@ Base ./task.jl:296
[7] capture_output(code::String, mod::Module, path::String, error::Bool
, report::Weave.Report)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:216
[8] #29
@ ~/.julia/packages/Weave/f7Ly3/src/run.jl:191 [inlined]
[9] _broadcast_getindex_evalf
@ ./broadcast.jl:683 [inlined]
[10] _broadcast_getindex
@ ./broadcast.jl:656 [inlined]
[11] getindex
@ ./broadcast.jl:610 [inlined]
[12] macro expansion
@ ./broadcast.jl:974 [inlined]
[13] macro expansion
@ ./simdloop.jl:77 [inlined]
[14] copyto!
@ ./broadcast.jl:973 [inlined]
[15] copyto!
@ ./broadcast.jl:926 [inlined]
[16] copy
@ ./broadcast.jl:898 [inlined]
[17] materialize(bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultAr
rayStyle{1}, Nothing, Weave.var"#29#30"{Weave.Report, Module, Bool, String}
, Tuple{Vector{String}}})
@ Base.Broadcast ./broadcast.jl:873
[18] run_code(doc::Weave.WeaveDoc, chunk::Weave.CodeChunk, report::Weave
.Report, mod::Module)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:192
[19] eval_chunk(doc::Weave.WeaveDoc, chunk::Weave.CodeChunk, report::Wea
ve.Report, mod::Module)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:263
[20] run_chunk(chunk::Weave.CodeChunk, doc::Weave.WeaveDoc, report::Weav
e.Report, mod::Module)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:133
[21] run_doc(doc::Weave.WeaveDoc; doctype::String, out_path::String, arg
s::Dict{Symbol, String}, mod::Nothing, fig_path::Nothing, fig_ext::Nothing,
cache_path::String, cache::Symbol)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/run.jl:74
[22] weave(source::String; doctype::String, informat::Nothing, out_path:
:String, args::Dict{Symbol, String}, mod::Nothing, fig_path::Nothing, fig_e
xt::Nothing, cache_path::String, cache::Symbol, template::Nothing, css::Not
hing, highlight_theme::Nothing, pandoc_options::Vector{String}, latex_cmd::
Vector{String}, keep_unicode::Bool)
@ Weave ~/.julia/packages/Weave/f7Ly3/src/Weave.jl:176
[23] top-level scope
@ ~/work/HydroPowerModels.jl/HydroPowerModels.jl/docs/make_examples.j
l:9
[24] include(fname::String)
@ Base.MainInclude ./client.jl:478
[25] top-level scope
@ ~/work/HydroPowerModels.jl/HydroPowerModels.jl/docs/make.jl:30
[26] include(fname::String)
@ Base.MainInclude ./client.jl:478
[27] top-level scope
@ none:5
[28] eval
@ ./boot.jl:370 [inlined]
[29] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:280
[30] _start()
@ Base ./client.jl:522
ERROR: Test.FallbackTestSetException("There was an error during testing")
if plot_bool == true HydroPowerModels.plot_aggregated_results(results) end
ERROR: UndefVarError: `plot_aggregated_results` not defined
if plot_bool == true PowerModels.print_summary(alldata[1]["powersystem"]) end
Metadata
baseMVA: 100
cost_deficit: 1000
name: case3
per_unit: true
source_type: matpower
source_version: 2
Table Counts
bus: 3
load: 3
shunt: 0
gen: 3
storage: 0
switch: 0
branch: 3
dcline: 0
Table: bus
bus_i, bus_type
1: 1, 3
2: 2, 2
3: 3, 2
default values:
base_kv: 0
vm: 1
va: 0
vmin: 0.900
vmax: 1.100
area: 1
zone: 1
Table: load
load_bus, pd, qd
1: 3, 1, 0
2: 1, 0, 0.000
3: 2, 0, 0.000
default values:
status: 1
Table: gen
gen_bus, pmax, ncost, cost
1: 2, 1, 2, [(2)]
2: 3, 0.500, 2, [(2)]
3: 1, 0.800, 0, [(0)]
default values:
pg: 0
qg: 0
vg: 1
mbase: 100
pmin: 0
qmin: -100
qmax: 100
gen_status: 1
model: 2
startup: 0
shutdown: 0
apf: 0
pc1: 0
pc2: 0
qc1max: 0
qc1min: 0
qc2max: 0
qc2min: 0
ramp_10: 0
ramp_30: 0
ramp_agc: 0
ramp_q: 0
Table: branch
f_bus, t_bus, br_r, br_x, b_fr, b_to, rate_a
1: 1, 3, 0.065, 1, 0.225, 0.225, 1
2: 3, 2, 0.025, 0.500, 0.350, 0.350, 0.650
3: 1, 2, 0.042, 1, 0.150, 0.150, 0.250
default values:
g_fr: 0
g_to: 0
tap: 1
shift: 0
br_status: 1
angmax: 1.047
angmin: -1.047
transformer: false
if plot_bool == true HydroPowerModels.plotresults(results) end
ERROR: UndefVarError: `plotresults` not defined