Skip to content

Commit 2ca704d

Browse files
committed
FIX: voltage source impedance for >3 wire networks
For indices >1:nphases, the impedance of voltage sources was being set to zero, which is the incorrect behavior. Closes #376 Closes #422
1 parent 97e1630 commit 2ca704d

4 files changed

Lines changed: 10 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## staged
44

5+
- Fixed voltage_source impedance matrices, which were populating impedances outside of `1:nphases` with zeros instead of the defined mutual and self impedances [#422](https://github.com/lanl-ansi/PowerModelsDistribution.jl/pull/422) [#376](https://github.com/lanl-ansi/PowerModelsDistribution.jl/issues/376)
56
- Added compat for SpecialFunctions
67
- Added support for computing line constants from WireData, LineGeometry, LineSpacing, TSData and CNData
78
- Added Julia library SpecialFunctions for `besselj0` implementation

src/io/dss/dss2eng.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -383,11 +383,11 @@ function _dss2eng_vsource!(data_eng::Dict{String,<:Any}, data_dss::Dict{String,<
383383

384384
# some values require addition of neutral by default
385385
n_conductors = length(eng_obj["connections"])
386-
eng_obj["rs"] = zeros(n_conductors, n_conductors)
387-
eng_obj["rs"][1:phases, 1:phases] = defaults["rmatrix"]
386+
eng_obj["rs"] = fill(defaults["r_mutual"], n_conductors, n_conductors)
387+
eng_obj["rs"][LinearAlgebra.diagind(eng_obj["rs"])] .= defaults["r_self"]
388388

389-
eng_obj["xs"] = zeros(n_conductors, n_conductors)
390-
eng_obj["xs"][1:phases, 1:phases] = defaults["xmatrix"]
389+
eng_obj["xs"] = fill(defaults["x_mutual"], n_conductors, n_conductors)
390+
eng_obj["xs"][LinearAlgebra.diagind(eng_obj["xs"])] .= defaults["x_self"]
391391

392392
eng_obj["vm"] = zeros(n_conductors)
393393
eng_obj["vm"][1:phases] = vm

src/io/dss/dss_edge_structs.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,10 @@ function _create_vsource(name::String=""; kwargs...)::Dict{String,Any}
525525
# Derived Properties
526526
"rmatrix" => real(Z),
527527
"xmatrix" => imag(Z),
528+
"r_self" => rs,
529+
"r_mutual" => rm,
530+
"x_self" => xs,
531+
"x_mutual" => xm,
528532
"vmag" => Vmag,
529533
"like" => get(kwargs, :like, "")
530534
)

test/data/en_validation_case_data/test_gen_3ph_wye.dss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Clear
44

5-
New Circuit.Test phases=3 basekv=0.4 baseMVA=0.2 bus1=B1 MVASC1=1e8 MVASC3=1e8
5+
New Circuit.Test phases=3 basekv=0.4 baseMVA=0.2 bus1=B1 MVASC1=1e4 MVASC3=1e4
66

77
New Linecode.Zabcn units=km nphases=4
88
~ rmatrix=(0.227217624 0.059217624 0.059217624 0.059217624 |0.059217624 0.227217624 0.059217624 0.059217624 |0.059217624 0.059217624 0.227217624 0.059217624 |0.059217624 0.059217624 0.059217624 0.227217624)

0 commit comments

Comments
 (0)