Skip to content

Instantly share code, notes, and snippets.

@jmmauricio
Created June 13, 2015 18:41
Show Gist options
  • Save jmmauricio/1198491fa8223572881a to your computer and use it in GitHub Desktop.
Save jmmauricio/1198491fa8223572881a to your computer and use it in GitHub Desktop.
PowerFactory DigSILENT Python Script to load flow, set variables to save, set event, initialize, run and save results to a txt file
import sys
sys.path.append(r"C:\DigSILENT15p1p7\python")
# import PowerFactory module
import powerfactory
# start PowerFactory in engine mode
app = powerfactory.GetApplication()
user = app.GetCurrentUser()
# activate project
project = app.ActivateProject("Nine Bus System")
prj = app.GetActiveProject()
ldf = app.GetFromStudyCase("ComLdf")
ini = app.GetFromStudyCase('ComInc')
sim = app.GetFromStudyCase('ComSim')
Shc_folder = app.GetFromStudyCase('IntEvt');
terminals = app.GetCalcRelevantObjects("*.ElmTerm")
lines = app.GetCalcRelevantObjects("*.ElmTerm")
syms = app.GetCalcRelevantObjects("*.ElmSym")
Shc_folder.CreateObject('EvtSwitch', 'evento de generacion');
EventSet = Shc_folder.GetContents();
evt = EventSet[0];
evt.time =1.0
evt.p_target = syms[1]
ldf.iopt_net = 0
ldf.Execute()
elmres = app.GetFromStudyCase('Results.ElmRes')
for terminal in terminals:
elmres.AddVars(terminal,'m:u','m:phiu','m:fehz')
for sym in syms:
elmres.AddVars(sym,'s:xspeed')
ini.Execute()
sim.Execute()
evt.Delete()
comres = app.GetFromStudyCase('ComRes');
comres.iopt_csel = 0
comres.iopt_tsel = 0
comres.iopt_locn = 2
comres.ciopt_head = 1
comres.pResult=elmres
comres.f_name = r'C:\Users\jmmauricio\hola.txt'
comres.iopt_exp=4
comres.Execute()
@rimmetz17
Copy link

thank u so much for the replies.

now I am wondering why my calculations are differ from the simulation result. I calculate Ploss using I^2 R, which R replaced by Z (R+XL for <80km line), Z calculation are similar than in simulation "resulting values" in line data (6.8 vs 6.78 ohm), Current are similar (both 85A) since Power are similar (both 21-22 MW), using I^2 Z, simulation differ up to 2x-4x value of calculation.

@rizky-r-lab
Copy link

I don't know how the procedure that you are using to calculate Ploss. However, If you only calculate Ploss(active power losses), you should using I^2 R, not I^2 Z.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment