Skip to content

Commit 1c75a74

Browse files
committed
REF: Calculation of impedance in EnergySource.
1 parent 6a9573b commit 1c75a74

2 files changed

Lines changed: 17 additions & 23 deletions

File tree

src/data_model/transformations/ravens2math.jl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1500,6 +1500,13 @@ function _map_ravens2math_energy_source!(data_math::Dict{String,<:Any}, data_rav
15001500
math_obj["gen_bus"] = bus_obj["bus_i"]
15011501
data_math["bus"]["$(bus_obj["index"])"] = bus_obj
15021502

1503+
# Impedance calculation
1504+
r = get(ravens_obj, "EnergySource.r", 0.0)
1505+
r0 = get(ravens_obj, "EnergySource.r0", 0.0)
1506+
x = get(ravens_obj, "EnergySource.x", 0.0)
1507+
x0 = get(ravens_obj, "EnergySource.x0", 0.0)
1508+
Z_ABC = _impedance_conversion_ravens_energy_source(data_ravens, ravens_obj, r+x*1im, r0+x0*1im)
1509+
15031510
branch_obj = Dict(
15041511
"name" => "_virtual_branch.EnergySource.$name",
15051512
"source_id" => "EnergySource.$name",
@@ -1511,8 +1518,8 @@ function _map_ravens2math_energy_source!(data_math::Dict{String,<:Any}, data_rav
15111518
"angmax" => fill(10.0, nconductors),
15121519
"c_rating_a" => fill(Inf, nconductors),
15131520
"br_status" => math_obj["gen_status"],
1514-
"br_r" => _impedance_conversion_ravens_energy_source(data_ravens, ravens_obj, "EnergySource.r", "EnergySource.r0"),
1515-
"br_x" => _impedance_conversion_ravens_energy_source(data_ravens, ravens_obj, "EnergySource.x", "EnergySource.x0"),
1521+
"br_r" => real(Z_ABC),
1522+
"br_x" => imag(Z_ABC),
15161523
"g_fr" => zeros(nconductors, nconductors),
15171524
"g_to" => zeros(nconductors, nconductors),
15181525
"b_fr" => zeros(nconductors, nconductors),

src/data_model/utils_ravens.jl

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -78,27 +78,14 @@ function _impedance_conversion_ravens(data_eng::Dict{String,Any}, eng_obj::Dict{
7878
end
7979

8080

81-
"converts impendance in Ohm/m by multiplying by length"
82-
function _impedance_conversion_ravens_energy_source(data_eng::Dict{String,Any}, eng_obj::Dict{String,Any}, key1::String, key2::String)
83-
# Default energy sources considered 3 phases
84-
nphases = 3
85-
_impedance_matrix = zeros(Float64, nphases, nphases)
86-
87-
z = get(eng_obj, key1, 0.0)
88-
z0 = get(eng_obj, key2, 0.0)
89-
90-
for i in 1:nphases
91-
for j in 1:i
92-
if(i==j)
93-
_impedance_matrix[i, j] = z + ((z0 - z)/3)
94-
else
95-
_impedance_matrix[i, j] = (z0 - z)/3
96-
_impedance_matrix[j, i] = (z0 - z)/3
97-
end
98-
end
99-
end
100-
101-
return _impedance_matrix .* get(eng_obj, "Conductor.length", 1.0)
81+
"converts impendance in Ohm/m in EnergySource"
82+
function _impedance_conversion_ravens_energy_source(data_eng::Dict{String,Any}, eng_obj::Dict{String,Any}, z1::Complex, z0::Complex)
83+
# TODO : Single-phase
84+
a = 1*exp(120*im*π/180)
85+
A = [1 1 1; 1 a a^2; 1 a^2 a]
86+
Z_012 = [z0 0im 0im; 0im z1 0im; 0im 0im z1]
87+
Z_ABC = A^-1 * Z_012 * A
88+
return Z_ABC
10289
end
10390

10491

0 commit comments

Comments
 (0)