Skip to content

Commit 6a9573b

Browse files
committed
FIX: find voltages function that was assigning incorrect voltage bases to elements in connected to three-phase transformers with single-phase tanks.
1 parent 1f743fc commit 6a9573b

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

src/data_model/utils_ravens.jl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,10 +193,19 @@ function find_voltages(data::Dict{String,<:Any})::Dict{String,Any}
193193
for (i, tr) in _recursive_dict_get(data, ["PowerSystemResource", "Equipment", "ConductingEquipment", "PowerTransformer"], Dict())
194194
info_name = match(Regex("TransformerTankInfo::'(.*)'"), get(get(tr, "PowerTransformer.TransformerTank", [Dict()])[1], "PowerSystemResource.AssetDatasheet", "TransformerTankInfo::''")).captures[1]
195195
trinfos = _recursive_dict_get(data, ["AssetInfo", "PowerTransformerInfo", info_name, "PowerTransformerInfo.TransformerTankInfos", info_name, "TransformerTankInfo.TransformerEndInfos"], [])
196+
197+
# Corrects voltage ratios for TransformerTanks with Single-phase Tanks datasheets
198+
voltage_ratios = ones(length(tr["ConductingEquipment.Terminals"]))
199+
for wdg_id in 1:1:length(tr["ConductingEquipment.Terminals"])
200+
conns = length(_phasecode_map[tr["ConductingEquipment.Terminals"][wdg_id]["Terminal.phases"]])
201+
voltage_ratios[wdg_id] = conns >= 3 ? sqrt(3) : 1.0
202+
end
203+
196204
rated_u = merge(
197-
filter(x -> !ismissing(x.second), Dict(get(trinfo, "TransformerEndInfo.endNumber", n) => get(trinfo, "TransformerEndInfo.ratedU", missing) for (n, trinfo) in enumerate(trinfos))),
205+
filter(x -> !ismissing(x.second), Dict(get(trinfo, "TransformerEndInfo.endNumber", n) => get(trinfo, "TransformerEndInfo.ratedU", missing) * voltage_ratios[n] for (n, trinfo) in enumerate(trinfos))),
198206
filter(x -> !ismissing(x.second), Dict(get(pte, "endNumber", n) => get(pte, "PowerTransformerEnd.ratedU", missing) for (n, pte) in enumerate(get(tr, "PowerTransformer.PowerTransformerEnd", []))))
199207
)
208+
200209
for (n, term) in enumerate(get(tr, "ConductingEquipment.Terminals", []))
201210
voltages[match(Regex("ConnectivityNode::'(.+)'"), term["Terminal.ConnectivityNode"]).captures[1]] = get(rated_u, n, missing)
202211
end

0 commit comments

Comments
 (0)