def fault_LLG(faultbus, faultphases, phases, r, buscoords, dssObj, conn, c): """LLG fault simulation in bus and results """ # Get directory of .py file dir = os.path.dirname(os.path.abspath(__file__)) # Create database for faults conn = sqlite3.connect('database_faultlocation_1PV.db') c = conn.cursor() c.execute("""CREATE TABLE IF NOT EXISTS PV1_faultloc_db ( fault_type TEXT, season TEXT, hour INT, bus TEXT, buscoordX REAL, buscoordY REAL, fault_resistance INT, busphases TEXT, faultphases TEXT, Vsub_mag1 REAL, Vsub_ang1 REAL, Vsub_mag2 REAL, Vsub_ang2 REAL, Vsub_mag3 REAL, Vsub_ang3 REAL, Isub_mag1 REAL, Isub_ang1 REAL, Isub_mag2 REAL, Isub_ang2 REAL, Isub_mag3 REAL, Isub_ang3 REAL)""") dssText = dssObj.Text dssCircuit = dssObj.ActiveCircuit dssBus = dssCircuit.ActiveBus dssText.Command = "Edit Fault.fault phases=2 bus1="+faultbus \ +faultphases[0]+faultphases[0]+" bus2="+faultbus+faultphases[1] \ +".0"+" Gmatrix=[10000|0 "+str(1/float(r))+"|-10000 0 10000|0 " \ +str(-1/float(r))+" 0 "+str(1/float(r))+"]" for season in ["Spring", "Summer", "Autumn", "Winter"]: dssText.Command = "Edit Loadshape.LS_PhaseA" \ +" mult=(file=LS_PhaseA_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.LS_PhaseB" \ +" mult=(file=LS_PhaseB_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.LS_PhaseC" \ +" mult=(file=LS_PhaseC_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.LS_ThreePhase" \ +" mult=(file=LS_ThreePhase_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.Other_Bus_Load" \ +" mult=(file=Other_Bus_Load_"+season+"Day.txt)" dssText.Command = "Redirect " + dir + "\\1PV_" + season + ".dss" for hour in [9, 10, 11, 12, 13, 14, 15, 16, 17]: dssText.Command = "Redirect " + dir + "\\ckt24_vbases.dss" dssText.Command = "Solve mode=daily number=1 hour=" + str(hour) Vsub = V("SubXfmr_LSB", dssCircuit) Csub = C("Transformer.SUBXFMR", dssCircuit) c.execute( """INSERT INTO PV1_faultloc_db (fault_type, season, hour, bus, buscoordX, buscoordY, fault_resistance, busphases, faultphases, Vsub_mag1, Vsub_ang1, Vsub_mag2, Vsub_ang2, Vsub_mag3, Vsub_ang3, Isub_mag1, Isub_ang1, Isub_mag2, Isub_ang2, Isub_mag3, Isub_ang3) VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)""", ("LLG", season, int(hour), faultbus, float( buscoords[0]), float(buscoords[1]), int(r), phases, faultphases[0] + faultphases[1], float3(Vsub[0]), float3(Vsub[1]), float3(Vsub[2]), float3( Vsub[3]), float3(Vsub[4]), float3(Vsub[5]), float3( Csub[8]), float3(Csub[9]), float3(Csub[10]), float3(Csub[11]), float3(Csub[12]), float3(Csub[13]))) conn.commit() return
def fault_LLLG(faultbus, r, buscoords, xfmr_list, dssObj, conn, c): """LLLG fault simulation in bus and results """ # Get directory of .py file dir = os.path.dirname(os.path.abspath(__file__)) dssText = dssObj.Text dssCircuit = dssObj.ActiveCircuit dssBus = dssCircuit.ActiveBus dssText.Command = "Edit Fault.fault phases=3 bus1=" + faultbus + ".1.2.3 r=" + r for season in ["Spring", "Summer", "Autumn", "Winter"]: if season == "Spring": irrad = "0.981" if season == "Summer": irrad = "0.944" if season == "Autumn": irrad = "0.923" if season == "Winter": irrad = "0.950" dssText.Command = "Edit Loadshape.LS_PhaseA" \ +" mult=(file=LS_PhaseA_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.LS_PhaseB" \ +" mult=(file=LS_PhaseB_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.LS_PhaseC" \ +" mult=(file=LS_PhaseC_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.LS_ThreePhase" \ +" mult=(file=LS_ThreePhase_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.Other_Bus_Load" \ +" mult=(file=Other_Bus_Load_"+season+"Day.txt)" dssText.Command = "Redirect " + dir + "\\339PV_" + season + ".dss" for i in range(len(xfmr_list)): bus_pv = xfmr_list[i][6] kv_pv = xfmr_list[i][7] phase = str(xfmr_list[i][1]) dssText.Command = "Edit PVSystem.PV"+str(i)\ +" phases=1 bus1="+bus_pv+"."+phase+" kv="+kv_pv+" kVA=15"\ +" irrad="+irrad+" pmpp=15 temperature=25 pf=1"\ +" %cutin=5 %cutout=5 effcurve=MyEff P-tCurve=MyPvst"\ +" Daily=MyIrrad Tdaily=Mytemp" for hour in [9, 10, 11, 12, 13, 14, 15, 16, 17]: dssText.Command = "Redirect " + dir + "\\ckt24_vbases.dss" dssText.Command = "Solve mode=daily number=1 hour=" + str(hour) Vsub = V("SubXfmr_LSB", dssCircuit) Csub = C("Transformer.SUBXFMR", dssCircuit) c.execute( """INSERT INTO PV339_faultloc_db (fault_type, season, hour, bus, buscoordX, buscoordY, fault_resistance, busphases, faultphases, Vsub_mag1, Vsub_ang1, Vsub_mag2, Vsub_ang2, Vsub_mag3, Vsub_ang3, Isub_mag1, Isub_ang1, Isub_mag2, Isub_ang2, Isub_mag3, Isub_ang3) VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)""", ("LLLG", season, int(hour), faultbus, float( buscoords[0]), float(buscoords[1]), int(r), ".1.2.3", ".1.2.3", float3(Vsub[0]), float3(Vsub[1]), float3(Vsub[2]), float3(Vsub[3]), float3(Vsub[4]), float3(Vsub[5]), float3(Csub[8]), float3(Csub[9]), float3(Csub[10]), float3(Csub[11]), float3(Csub[12]), float3(Csub[13]))) conn.commit() return
def fault_LG(faultbus,faultphase,phases,r,buscoords,dssObj,conn,c): """LG fault simulation in bus and results """ # Get directory of .py file dir = os.path.dirname(os.path.abspath(__file__)) dssText = dssObj.Text dssCircuit = dssObj.ActiveCircuit dssBus = dssCircuit.ActiveBus dssText.Command = "Edit Fault.fault phases=1 bus1="+faultbus \ +faultphase+" r="+r for season in ["Spring","Summer","Autumn","Winter"]: dssText.Command = "Edit Loadshape.LS_PhaseA" \ +" mult=(file=LS_PhaseA_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.LS_PhaseB" \ +" mult=(file=LS_PhaseB_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.LS_PhaseC" \ +" mult=(file=LS_PhaseC_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.LS_ThreePhase" \ +" mult=(file=LS_ThreePhase_"+season+"Day.txt)" dssText.Command = "Edit Loadshape.Other_Bus_Load" \ +" mult=(file=Other_Bus_Load_"+season+"Day.txt)" dssText.Command = "Redirect "+dir+"\\5PV_"+season+".dss" for hour in [9,10,11,12,13,14,15,16,17]: dssText.Command = "Redirect "+dir+"\\ckt24_vbases.dss" dssText.Command = "Solve mode=daily number=1 hour="+str(hour) Vsub = V("SubXfmr_LSB", dssCircuit) Csub = C("Transformer.SUBXFMR", dssCircuit) c.execute("""INSERT INTO PV5_faultloc_db (fault_type, season, hour, bus, buscoordX, buscoordY, fault_resistance, busphases, faultphases, Vsub_mag1, Vsub_ang1, Vsub_mag2, Vsub_ang2, Vsub_mag3, Vsub_ang3, Isub_mag1, Isub_ang1, Isub_mag2, Isub_ang2, Isub_mag3, Isub_ang3) VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)""", ( "LG",season, int(hour), faultbus, float(buscoords[0]), float(buscoords[1]), int(r), phases, faultphase, float3(Vsub[0]), float3(Vsub[1]), float3(Vsub[2]), float3(Vsub[3]), float3(Vsub[4]), float3(Vsub[5]), float3(Csub[8]), float3(Csub[9]), float3(Csub[10]), float3(Csub[11]), float3(Csub[12]), float3(Csub[13]))) conn.commit() return