@@ -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