Skip to content

Commit

Permalink
fiw reading GOC solutions for bus with several generators
Browse files Browse the repository at this point in the history
  • Loading branch information
Gimaju committed Apr 20, 2018
1 parent 7d645d7 commit d539a14
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 28 deletions.
7 changes: 4 additions & 3 deletions src_GOC/GOC_read_raw.jl
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,15 @@ end
###read bus data
function read_data_bus_fromraw(bus_data, load_data, shunt_data, baseMVA)
nb_bus = size(bus_data,1)
index = SortedDict(bus_data[i,1] => i for i in 1:nb_bus)
# index = SortedDict(bus_data[i,1] => i for i in 1:nb_bus)
index = SortedDict(bus_data[i,1] => bus_data[i,1] for i in 1:nb_bus)
bus = SortedDict{String, SortedDict{String,Any}}()
for i in 1:nb_bus
bus[bus_name(i)] = SortedDict{String,Any}()
bus[bus_name(index[bus_data[i,1]])] = SortedDict{String,Any}()
end
for i in 1:nb_bus
id_bus = bus_data[i,1]
busname = bus_name(i)
busname = bus_name(index[id_bus])
baseKV = bus_data[i,3]
baseMVA = baseMVA
voltage_magnitude_min = bus_data[i,11]
Expand Down
22 changes: 11 additions & 11 deletions src_GOC/GOC_read_solutions.jl
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ function gen_solution_basecase(basecase_generator_solution,index)
for i in 1:size(basecase_generator_solution,1)
num_bus = index[basecase_generator_solution[i,1]]
gen_id = basecase_generator_solution[i,2]
if typeof(gen_id)!=Int64
gen_id = matchall(r"\d+" , String(gen_id))[1]
if typeof(gen_id) == String || typeof(gen_id) == SubString{String}
gen_id = matchall(r"\d+" , gen_id)[1]
else
gen_id = Int(gen_id)
end
Expand All @@ -75,7 +75,7 @@ function gen_solution_contingencies(basecase_generator_solution,contingency_gene
scenario_name = scenarioname(id_contingency)
gen_id = contingency_generator_solution[i,4]
num_bus = index[Int(contingency_generator_solution[i,3])]
if typeof(gen_id)!=Int64
if typeof(gen_id) == String || typeof(gen_id) == SubString{String}
gen_id = matchall(r"\d+" ,gen_id)[1]
else
gen_id = Int(gen_id)
Expand All @@ -92,7 +92,7 @@ function gen_solution_contingencies(basecase_generator_solution,contingency_gene
for i in 1:size(basecase_generator_solution,1)
num_bus = index[Int(basecase_generator_solution[i,1])]
gen_id = basecase_generator_solution[i,2]
if typeof(gen_id)!=Int64
if typeof(gen_id) == String || typeof(gen_id) == SubString{String}
gen_id = matchall(r"\d+" ,gen_id)[1]
else
gen_id = Int(gen_id)
Expand Down Expand Up @@ -162,7 +162,7 @@ end

function compute_binary_values(basecase_generator_solution, bus_solution, power_data)
index = get_bus_index(power_data)
generators = collect(basecase_generator_solution[:,1])
generators = SortedSet(basecase_generator_solution[:,1])
generators = [ index[gen] for gen in generators]
module_v_basecase = Dict{Int64, Float64}()
module_v_scenarios = Dict{String,Dict{Int64, Float64}}()
Expand All @@ -184,16 +184,16 @@ function compute_binary_values(basecase_generator_solution, bus_solution, power_
for num_bus in generators
if abs(dict_modules[num_bus]^2 - module_v_basecase[num_bus]^2) < get_GOC_Volt_ϵ()
add_coord!(point, Variable(get_binEq_varname(scenario, basecase_scenario_name(), bus_name(num_bus)),Bool), 1.0)
add_coord!(point, Variable(get_binInf_varname(basecase_scenario_name(),scenario, bus_name(num_bus)),Bool), 1e-16)
add_coord!(point, Variable(get_binInf_varname(scenario, basecase_scenario_name(),bus_name(num_bus)),Bool), 1e-16)
# add_coord!(point, Variable(get_binInf_varname(basecase_scenario_name(),scenario, bus_name(num_bus)),Bool), 1e-16)
# add_coord!(point, Variable(get_binInf_varname(scenario, basecase_scenario_name(),bus_name(num_bus)),Bool), 1e-16)
elseif dict_modules[num_bus]^2 - module_v_basecase[num_bus]^2 > get_GOC_Volt_ϵ()
add_coord!(point, Variable(get_binInf_varname(basecase_scenario_name(),scenario, bus_name(num_bus)),Bool), 1.0)
add_coord!(point, Variable(get_binInf_varname(scenario, basecase_scenario_name(),bus_name(num_bus)),Bool), 1e-16)
add_coord!(point, Variable(get_binEq_varname(scenario, basecase_scenario_name(), bus_name(num_bus)),Bool), 1e-16)
# add_coord!(point, Variable(get_binInf_varname(scenario, basecase_scenario_name(),bus_name(num_bus)),Bool), 1e-16)
# add_coord!(point, Variable(get_binEq_varname(scenario, basecase_scenario_name(), bus_name(num_bus)),Bool), 1e-16)
else
add_coord!(point, Variable(get_binInf_varname(scenario, basecase_scenario_name(),bus_name(num_bus)),Bool), 1.0)
add_coord!(point, Variable(get_binInf_varname(basecase_scenario_name(),scenario, bus_name(num_bus)),Bool), 1e-16)
add_coord!(point, Variable(get_binEq_varname(scenario, basecase_scenario_name(), bus_name(num_bus)),Bool), 1e-16)
# add_coord!(point, Variable(get_binInf_varname(basecase_scenario_name(),scenario, bus_name(num_bus)),Bool), 1e-16)
# add_coord!(point, Variable(get_binEq_varname(scenario, basecase_scenario_name(), bus_name(num_bus)),Bool), 1e-16)
end
end
end
Expand Down
3 changes: 2 additions & 1 deletion src_PolynomialOptim/Poly_operators.jl
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,8 @@ function evaluate(expo::Exponent, pt::Point)
if haskey(pt, var)
res *= (evaluate(var, pt)^deg.explvar) * (conj(evaluate(var, pt))^deg.conjvar)
else
res *= var^deg.explvar * conj(var)^deg.conjvar
# res *= var^deg.explvar * conj(var)^deg.conjvar
res *= (evaluate(var, pt)^deg.explvar) * (conj(evaluate(var, pt))^deg.conjvar)
end
end
return res
Expand Down
25 changes: 12 additions & 13 deletions src_test/global_test.jl
Original file line number Diff line number Diff line change
Expand Up @@ -64,19 +64,18 @@ function build_and_solve_instance(typeofinput, instance_path)

tic()

# if typeofinput == GOCInput
# raw = "powersystem.raw"
# gen = "generator.csv"
# con = "contingency.csv"
# rawfile = joinpath(instance_path,raw)
# genfile = joinpath(instance_path, gen)
# contfile = joinpath(instance_path, con)
# OPFpbs = load_OPFproblems(rawfile, genfile, contfile)
#
# else
# OPFpbs = load_OPFproblems(typeofinput, instance_path)
# end
OPFpbs = load_OPFproblems(typeofinput, instance_path)
if typeofinput == GOCInput
raw = "powersystem.raw"
gen = "generator.csv"
con = "contingency.csv"
rawfile = joinpath(instance_path,raw)
genfile = joinpath(instance_path, gen)
contfile = joinpath(instance_path, con)
OPFpbs = load_OPFproblems(rawfile, genfile, contfile)

else
OPFpbs = load_OPFproblems(typeofinput, instance_path)
end

## Introducing coupling constraints on generator output
(typeofinput != GOCInput) || introduce_Sgenvariables!(OPFpbs)
Expand Down
6 changes: 6 additions & 0 deletions src_test/test_feasibility_GOC_solution.jl
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,12 @@ function test_feasiblity_GOC_solution(instance_path, solution_path)
sol_txt = read_solution_point_GOC(instance_path, solution_path)
pt_txt = cplx2real(sol_txt)

# println("BinVolt_122_Scen1_eq_BaseCase : ", pt_txt[Variable("BinVolt_122_Scen1_eq_BaseCase",Bool)])
# println("BinVolt_122_Scen1_in_BaseCase : ", pt_txt[Variable("BinVolt_122_Scen1_inf_BaseCase",Bool)])
# println("abs2(BaseCase_122_VOLT) : ", abs2(sol_txt[Variable("BaseCase_122_VOLT",Complex)]))
# println("abs2(Scen1_122_VOLT) : ", abs2(sol_txt[Variable("Scen1_122_VOLT",Complex)]))
# println(pb_global_real.constraints["Scen1_122_Gen25_BinDef_upper_Re"].p)

return get_minslack(pb_global_real, pt_txt)
end

Expand Down

0 comments on commit d539a14

Please sign in to comment.