Skip to content

Commit e986d39

Browse files
author
mvelasqu
committed
fix: resolve distributed gens parsing and apply net load calculation
1 parent cb8ed33 commit e986d39

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

src/parsers/pm_io/psse.jl

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -583,8 +583,19 @@ function _psse2pm_load!(pm_data::Dict, pti_data::Dict, import_all::Bool)
583583
for load in pti_data["LOAD"]
584584
sub_data = Dict{String, Any}()
585585
sub_data["load_bus"] = pop!(load, "I")
586-
sub_data["pd"] = pop!(load, "PL")
587-
sub_data["qd"] = pop!(load, "QL")
586+
dgenp = 0.0
587+
dgenq = 0.0
588+
dgenm = 0.0
589+
if pm_data["source_version"] == "35"
590+
dgenp = pop!(load, "DGENP", 0.0)
591+
dgenq = pop!(load, "DGENQ", 0.0)
592+
dgenm = pop!(load, "DGENM", 0.0)
593+
end
594+
595+
# PSS(R)E models distributed generation as negative demand on the load record.
596+
# Net active/reactive demand seen by PF should be gross load minus DGEN.
597+
sub_data["pd"] = pop!(load, "PL") - dgenp
598+
sub_data["qd"] = pop!(load, "QL") - dgenq
588599
sub_data["pi"] = pop!(load, "IP")
589600
sub_data["qi"] = pop!(load, "IQ")
590601
sub_data["py"] = pop!(load, "YP")
@@ -601,6 +612,9 @@ function _psse2pm_load!(pm_data::Dict, pti_data::Dict, import_all::Bool)
601612
sub_data["ext"]["LOADTYPE"] = ""
602613
elseif pm_data["source_version"] == "35"
603614
sub_data["ext"]["LOADTYPE"] = pop!(load, "LOADTYPE", "")
615+
sub_data["ext"]["DGENP"] = dgenp
616+
sub_data["ext"]["DGENQ"] = dgenq
617+
sub_data["ext"]["DGENM"] = dgenm
604618
else
605619
error("Unsupported PSS(R)E source version: $(pm_data["source_version"])")
606620
end

0 commit comments

Comments
 (0)