Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions example_systems/10_IEEE_9_bus_DC_OPF/system/Network.csv
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
,Network_zones,Network_Lines,Start_Zone,End_Zone,Line_Max_Flow_MW,transmission_path_name,distance_mile,Line_Loss_Percentage,Line_Max_Reinforcement_MW,Line_Reinforcement_Cost_per_MWyr,DerateCapRes_1,CapRes_Excl_1,Angle_Limit_Rad,Line_Voltage_kV,Line_Resistance_Ohms,Line_Reactance_Ohms
BUS1,z1,1,1,4,250,BUS1_to_BUS4,0.5,0.015,500,12000,0.95,0,0.785398,345,0,68.5584
BUS2,z2,2,4,5,250,BUS4_to_BUS5,0.5,0.015,500,12000,0.95,0,0.785398,345,20.23425,109.503
BUS3,z3,3,5,6,150,BUS5_to_BUS6,0.5,0.015,500,12000,0.95,0,0.785398,345,46.41975,202.3425
BUS4,z4,4,3,6,300,BUS3_to_BUS6,0.5,0.015,500,12000,0.95,0,0.785398,345,0,69.74865
BUS5,z5,5,6,7,150,BUS6_to_BUS7,0.5,0.015,500,12000,0.95,0,0.785398,345,14.163975,119.9772
BUS6,z6,6,7,8,250,BUS7_to_BUS8,0.5,0.015,500,12000,0.95,0,0.785398,345,10.117125,85.698
BUS7,z7,7,8,2,250,BUS8_to_BUS2,0.5,0.015,500,12000,0.95,0,0.785398,345,0,74.390625
BUS8,z8,8,8,9,250,BUS8_to_BUS9,0.5,0.015,500,12000,0.95,0,0.785398,345,38.088,191.63025
BUS9,z9,9,9,4,250,BUS9_to_BUS4,0.5,0.015,500,12000,0.95,0,0.785398,345,11.9025,101.17125
,,10,1,6,250,BUS1_to_BUS6,0.5,0.015,500,12000,0.95,0,0.785398,345,11.9025,101.17125
,Network_zones,Network_Lines,Start_Zone,End_Zone,Line_Max_Flow_MW,transmission_path_name,distance_mile,Line_Loss_Percentage,Line_Max_Reinforcement_MW,Line_Reinforcement_Cost_per_MWyr,DerateCapRes_1,CapRes_Excl_1,Angle_Limit_Rad,Line_Voltage_kV,Line_Resistance_Ohms,Line_Reactance_Ohms,Line_Hurdle_Rates
BUS1,z1,1,1,4,250,BUS1_to_BUS4,0.5,0.015,500,12000,0.95,0,0.785398,345,0,68.5584,10
BUS2,z2,2,4,5,250,BUS4_to_BUS5,0.5,0.015,500,12000,0.95,0,0.785398,345,20.23425,109.503,10
BUS3,z3,3,5,6,150,BUS5_to_BUS6,0.5,0.015,500,12000,0.95,0,0.785398,345,46.41975,202.3425,10
BUS4,z4,4,3,6,300,BUS3_to_BUS6,0.5,0.015,500,12000,0.95,0,0.785398,345,0,69.74865,10
BUS5,z5,5,6,7,150,BUS6_to_BUS7,0.5,0.015,500,12000,0.95,0,0.785398,345,14.163975,119.9772,10
BUS6,z6,6,7,8,250,BUS7_to_BUS8,0.5,0.015,500,12000,0.95,0,0.785398,345,10.117125,85.698,10
BUS7,z7,7,8,2,250,BUS8_to_BUS2,0.5,0.015,500,12000,0.95,0,0.785398,345,0,74.390625,10
BUS8,z8,8,8,9,250,BUS8_to_BUS9,0.5,0.015,500,12000,0.95,0,0.785398,345,38.088,191.63025,10
BUS9,z9,9,9,4,250,BUS9_to_BUS4,0.5,0.015,500,12000,0.95,0,0.785398,345,11.9025,101.17125,10
,,10,1,6,250,BUS1_to_BUS6,0.5,0.015,500,12000,0.95,0,0.785398,345,11.9025,101.17125,10
9 changes: 9 additions & 0 deletions src/load_inputs/load_network_data.jl
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@ function load_network_data!(setup::Dict, path::AbstractString, inputs_nw::Dict)
# Transmission capacity of the network (in MW)
inputs_nw["pTrans_Max"] = to_floats(:Line_Max_Flow_MW) / scale_factor # convert to GW

# Transmission line Hurdle rates (in $/MW)
# This is the cost of using the transmission line, which is added to the cost of
# the generator at the start zone of the line.
# It is used in the objective function to calculate the total cost of the system.
inputs_nw["pTrans_Hurdles"] = zeros(Float64, L)
if :Line_Hurdle_Rate in names(network_var)
inputs_nw["pTrans_Hurdles"] = to_floats(:Line_Hurdle_Rate) .* scale_factor # convert to million $/GW
end

if setup["Trans_Loss_Segments"] == 1
# Line percentage Loss - valid for case when modeling losses as a fixed percent of absolute value of power flows
inputs_nw["pPercent_Loss"] = to_floats(:Line_Loss_Percentage)
Expand Down
8 changes: 7 additions & 1 deletion src/model/core/transmission/investment_transmission.jl
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ function investment_transmission!(EP::Model, inputs::Dict, setup::Dict)
@expression(EP,
eTotalCNetworkExp,
sum(vNEW_TRANS_CAP[l] * inputs["pC_Line_Reinforcement"][l]
for l in EXPANSION_LINES))
for l in EXPANSION_LINES)+sum(eAvail_Trans_Cap[l] * inputs["pTrans_Hurdles"][l]
for l in 1:L))

if MultiStage == 1
# OPEX multiplier to count multiple years between two model stages
Expand All @@ -85,6 +86,11 @@ function investment_transmission!(EP::Model, inputs::Dict, setup::Dict)
else
add_to_expression!(EP[:eObj], eTotalCNetworkExp)
end
else
# If no network expansion, we only add the hurdle costs to the objective function
@expression(EP, eTotalCNetworkExp,
sum(inputs["pTrans_Hurdles"][l] * eAvail_Trans_Cap[l] for l in 1:L))
add_to_expression!(EP[:eObj], eTotalCNetworkExp)
end

## End Objective Function Expressions ##
Expand Down
Loading