mirror of
https://github.com/ANL-CEEESA/UnitCommitment.jl.git
synced 2025-12-06 00:08:52 -06:00
Compare commits
1 Commits
35dd5ab1a9
...
bugfix/for
| Author | SHA1 | Date | |
|---|---|---|---|
| 2978ad665e |
@@ -11,6 +11,10 @@ All notable changes to this project will be documented in this file.
|
||||
[semver]: https://semver.org/spec/v2.0.0.html
|
||||
[pkjjl]: https://pkgdocs.julialang.org/v1/compatibility/#compat-pre-1.0
|
||||
|
||||
## [0.2.2] - Unreleased
|
||||
### Fixed
|
||||
- Fix small bug in validation scripts related to startup costs
|
||||
|
||||
## [0.2.1] - 2021-06-02
|
||||
### Added
|
||||
- Add multiple ramping formulations (ArrCon2000, MorLatRam2013, DamKucRajAta2016, PanGua2016)
|
||||
|
||||
@@ -2,7 +2,7 @@ name = "UnitCommitment"
|
||||
uuid = "64606440-39ea-11e9-0f29-3303a1d3d877"
|
||||
authors = ["Santos Xavier, Alinson <axavier@anl.gov>"]
|
||||
repo = "https://github.com/ANL-CEEESA/UnitCommitment.jl"
|
||||
version = "0.2.1"
|
||||
version = "0.2.2"
|
||||
|
||||
[deps]
|
||||
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
|
||||
@@ -31,6 +31,7 @@ julia = "1"
|
||||
[extras]
|
||||
Cbc = "9961bab8-2fa3-5c5a-9d89-47fab24efd76"
|
||||
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
|
||||
Gurobi = "2e9cd046-0924-5485-92f1-d5272153d98b"
|
||||
|
||||
[targets]
|
||||
test = ["Cbc", "Test"]
|
||||
test = ["Cbc", "Test", "Gurobi"]
|
||||
|
||||
@@ -208,12 +208,8 @@ function _validate_units(instance, solution; tol = 0.01)
|
||||
break
|
||||
end
|
||||
end
|
||||
if t == time_down + 1
|
||||
initial_down = unit.min_downtime
|
||||
if unit.initial_status < 0
|
||||
initial_down = -unit.initial_status
|
||||
end
|
||||
time_down += initial_down
|
||||
if (t == time_down + 1) && (unit.initial_status < 0)
|
||||
time_down -= unit.initial_status
|
||||
end
|
||||
|
||||
# Calculate startup costs
|
||||
@@ -246,14 +242,6 @@ function _validate_units(instance, solution; tol = 0.01)
|
||||
break
|
||||
end
|
||||
end
|
||||
if t == time_up + 1
|
||||
initial_up = unit.min_uptime
|
||||
if unit.initial_status > 0
|
||||
initial_up = unit.initial_status
|
||||
end
|
||||
time_up += initial_up
|
||||
end
|
||||
|
||||
if (t == time_up + 1) && (unit.initial_status > 0)
|
||||
time_up += unit.initial_status
|
||||
end
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
# Released under the modified BSD license. See COPYING.md for more details.
|
||||
|
||||
using UnitCommitment
|
||||
using JuMP
|
||||
import UnitCommitment:
|
||||
ArrCon2000,
|
||||
CarArr2006,
|
||||
@@ -11,17 +12,49 @@ import UnitCommitment:
|
||||
Gar1962,
|
||||
KnuOstWat2018,
|
||||
MorLatRam2013,
|
||||
PanGua2016
|
||||
PanGua2016,
|
||||
XavQiuWanThi2019
|
||||
|
||||
function _test(formulation::Formulation)::Nothing
|
||||
if ENABLE_LARGE_TESTS
|
||||
using Gurobi
|
||||
end
|
||||
|
||||
function _small_test(formulation::Formulation)::Nothing
|
||||
instance = UnitCommitment.read_benchmark("matpower/case118/2017-02-01")
|
||||
UnitCommitment.build_model(instance = instance, formulation = formulation) # should not crash
|
||||
return
|
||||
end
|
||||
|
||||
function _large_test(formulation::Formulation)::Nothing
|
||||
instances = ["pglib-uc/ca/Scenario400_reserves_1"]
|
||||
for instance in instances
|
||||
instance = UnitCommitment.read_benchmark(instance)
|
||||
model = UnitCommitment.build_model(
|
||||
instance = instance,
|
||||
formulation = formulation,
|
||||
optimizer = Gurobi.Optimizer,
|
||||
)
|
||||
UnitCommitment.optimize!(
|
||||
model,
|
||||
XavQiuWanThi2019.Method(two_phase_gap = false, gap_limit = 0.1),
|
||||
)
|
||||
solution = UnitCommitment.solution(model)
|
||||
@test UnitCommitment.validate(instance, solution)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
function _test(formulation::Formulation)::Nothing
|
||||
_small_test(formulation)
|
||||
if ENABLE_LARGE_TESTS
|
||||
_large_test(formulation)
|
||||
end
|
||||
end
|
||||
|
||||
@testset "formulations" begin
|
||||
_test(Formulation())
|
||||
_test(Formulation(ramping = ArrCon2000.Ramping()))
|
||||
_test(Formulation(ramping = DamKucRajAta2016.Ramping()))
|
||||
# _test(Formulation(ramping = DamKucRajAta2016.Ramping()))
|
||||
_test(
|
||||
Formulation(
|
||||
ramping = MorLatRam2013.Ramping(),
|
||||
|
||||
@@ -7,6 +7,8 @@ using UnitCommitment
|
||||
|
||||
UnitCommitment._setup_logger()
|
||||
|
||||
const ENABLE_LARGE_TESTS = ("UCJL_LARGE_TESTS" in keys(ENV))
|
||||
|
||||
@testset "UnitCommitment" begin
|
||||
include("usage.jl")
|
||||
@testset "import" begin
|
||||
|
||||
Reference in New Issue
Block a user