From 32b5d03beb644e0748614104a5a945daecf6c2a4 Mon Sep 17 00:00:00 2001 From: Kaarthik Sundar Date: Thu, 17 Oct 2024 10:49:12 -0600 Subject: [PATCH] bug fix in steady state --- src/core/objective.jl | 2 +- src/core/variable.jl | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/core/objective.jl b/src/core/objective.jl index def09c98..6660793e 100644 --- a/src/core/objective.jl +++ b/src/core/objective.jl @@ -111,7 +111,7 @@ function objective_min_economic_costs(gm::AbstractGasModel, nws = [nw_id_default ) transfer_prices = Dict( n => Dict( - i => get(ref(gm, n, :transfer, i), "bid_price", 1.0) for i in transfer_set[n] + i => ref(gm, n, :transfer, i)["withdrawal_min"] >= 0.0 ? get(ref(gm, n, :transfer, i), "bid_price", 1.0) : (-1) * get(ref(gm, n, :transfer, i), "offer_price", 1.0) for i in transfer_set[n] ) for n in nws ) diff --git a/src/core/variable.jl b/src/core/variable.jl index 7b2875c3..3b988521 100644 --- a/src/core/variable.jl +++ b/src/core/variable.jl @@ -298,7 +298,8 @@ function variable_load_mass_flow(gm::AbstractGasModel, nw::Int=nw_id_default; bo fl = var(gm, nw)[:fl] = JuMP.@variable(gm.model, [i in ids(gm,nw,:dispatchable_delivery)], base_name="$(nw)_fl", - start=comp_start_value(ref(gm, nw, :delivery), i, "fl_start", 0.0) + start=comp_start_value(ref(gm, nw, :delivery), i, "fl_start", + ref(gm,nw,:delivery,i)["withdrawal_max"]) ) if bounded @@ -325,7 +326,10 @@ function variable_transfer_mass_flow(gm::AbstractGasModel, nw::Int=nw_id_default ft = var(gm, nw)[:ft] = JuMP.@variable(gm.model, [i in ids(gm,nw,:dispatchable_transfer)], base_name="$(nw)_ft", - start=comp_start_value(ref(gm, nw, :transfer), i, "ft_start", 0.0) + start= ref(gm, nw, :transfer, i)["withdrawal_min"] < 0.0 ? + ref(gm, nw, :transfer, i)["withdrawal_min"] : + ref(gm, nw, :transfer, i)["withdrawal_max"] + # comp_start_value(ref(gm, nw, :transfer), i, "ft_start", rand()) ) if bounded @@ -352,7 +356,9 @@ function variable_production_mass_flow(gm::AbstractGasModel, nw::Int=nw_id_defau fg = var(gm, nw)[:fg] = JuMP.@variable(gm.model, [i in ids(gm,nw,:dispatchable_receipt)], base_name="$(nw)_fg", - start=comp_start_value(ref(gm, nw, :receipt), i, "fg_start", 0.0) + start=comp_start_value(ref(gm, nw, :receipt), i, "fg_start", + ref(gm,nw,:receipt,i)["injection_max"] + ) ) if bounded