Example #1
0
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
Example #2
0
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