mirror of
https://github.com/ANL-CEEESA/UnitCommitment.jl.git
synced 2025-12-06 08:18:51 -06:00
56 lines
1.8 KiB
Julia
56 lines
1.8 KiB
Julia
# UnitCommitment.jl: Optimization Package for Security-Constrained Unit Commitment
|
|
# Copyright (C) 2020, UChicago Argonne, LLC. All rights reserved.
|
|
# Released under the modified BSD license. See COPYING.md for more details.
|
|
|
|
using UnitCommitment, Cbc, HiGHS, JuMP
|
|
|
|
function solve_conventional_testcase(path::String)
|
|
instance = UnitCommitment.read(path)
|
|
model = UnitCommitment.build_model(
|
|
instance = instance,
|
|
optimizer = optimizer_with_attributes(Cbc.Optimizer, "logLevel" => 0),
|
|
variable_names = true,
|
|
)
|
|
JuMP.set_silent(model)
|
|
UnitCommitment.optimize!(model)
|
|
lmp = UnitCommitment.compute_lmp(
|
|
model,
|
|
ConventionalLMP(),
|
|
optimizer = optimizer_with_attributes(
|
|
HiGHS.Optimizer,
|
|
"log_to_console" => false,
|
|
),
|
|
)
|
|
return lmp
|
|
end
|
|
|
|
function lmp_conventional_test()
|
|
@testset "conventional" begin
|
|
# instance 1
|
|
path = fixture("lmp_simple_test_1.json.gz")
|
|
lmp = solve_conventional_testcase(path)
|
|
@test lmp["s1", "A", 1] == 50.0
|
|
@test lmp["s1", "B", 1] == 50.0
|
|
|
|
# instance 2
|
|
path = fixture("lmp_simple_test_2.json.gz")
|
|
lmp = solve_conventional_testcase(path)
|
|
@test lmp["s1", "A", 1] == 50.0
|
|
@test lmp["s1", "B", 1] == 60.0
|
|
|
|
# instance 3
|
|
path = fixture("lmp_simple_test_3.json.gz")
|
|
lmp = solve_conventional_testcase(path)
|
|
@test lmp["s1", "A", 1] == 50.0
|
|
@test lmp["s1", "B", 1] == 70.0
|
|
@test lmp["s1", "C", 1] == 100.0
|
|
|
|
# instance 4
|
|
path = fixture("lmp_simple_test_4.json.gz")
|
|
lmp = solve_conventional_testcase(path)
|
|
@test lmp["s1", "A", 1] == 50.0
|
|
@test lmp["s1", "B", 1] == 70.0
|
|
@test lmp["s1", "C", 1] == 90.0
|
|
end
|
|
end
|