def add_dummy_branch(fr_bus, to_bus, br_id):

    psspy.branch_data(int(fr_bus), int(to_bus), str(br_id),
                      [1, int(fr_bus), 1, 0, 0, 0], [
                          0.0, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
                          0.0, 1.0, 1.0, 1.0, 1.0
                      ])

    return
def add_branch(fr_bus, to_bus, br_id, br_owner, R, X, B, Rate_A, Rate_B,
               Rate_C):

    psspy.branch_data(fr_bus, to_bus, str(br_id),
                      [1, fr_bus, br_owner, 0, 0, 0], [
                          R, X, B, Rate_A, Rate_B, Rate_C, 0.0, 0.0, 0.0, 0.0,
                          0.0, 1.0, 1.0, 1.0, 1.0
                      ])

    return
Exemplo n.º 3
0
def dist_branch_trip(
    fromBus, toBus
):  #trip a line or two winding transformer KEYWORDS: trip line branch transformer tx
    psspy.branch_data(
        fromBus, toBus, r"""1""", [0, _i, _i, _i, _i, _i],
        [_f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f])
Exemplo n.º 4
0
ierr = psspy.load_data_3(44208, realar1=105., realar2=34.5) #BURNPUR
ierr = psspy.load_data_3(44209, realar1=53., realar2=17.4) #RAMGARH2
ierr = psspy.load_data_3(44217, realar1=207.4, realar2=70.4) #BORJORA
ierr = psspy.load_data_3(44218, realar1=178.3, realar2=46.3) #PARULIA
ierr = psspy.load_data_3(44219, realar1=0., realar2=0.) #GOLA2
ierr = psspy.load_data_3(44220, realar1=20., realar2=9.6) #GIRIDIH2
ierr = psspy.load_data_3(44223, realar1=40., realar2=9.3) #KODERMA2
ierr = psspy.load_data_3(44227, realar1=50., realar2=14.2) #RTPS2
ierr = psspy.load_data_3(44230, realar1=30., realar2=10.5) #CHAS2
ierr = psspy.load_data_3(44233, realar1=20., realar2=3.6) #PANAGARH
ierr = psspy.load_data_3(44235, realar1=25., realar2=8.1) #NKPURA2
ierr = psspy.load_data_3(44236, realar1=50., realar2=8.2) #PATRATU
ierr = psspy.load_data_3(44239, realar1=40., realar2=10.3) #PARULIA

# Case specific branch interconnection changes to be indicated here
ierr = psspy.branch_data(44220, 44223, "1", intgar1=0) #giridih - koderma line
ierr = psspy.branch_data(44220, 44223, "2", intgar1=0) 
ierr = psspy.branch_data(44123, 44130, "1", intgar1=0) #patherdih - dhanbad line
ierr = psspy.branch_data(44123, 44130, "2", intgar1=0) 
ierr = psspy.branch_data(44111, 44123, "1", intgar1=0) #maithon hydel - patherdih line
ierr = psspy.branch_data(44111, 44123, "2", intgar1=0) 
ierr = psspy.branch_data(44109, 44118, "1", intgar1=1) #dtps-kalipahari line
ierr = psspy.branch_data(44109, 44118, "2", intgar1=1)
ierr = psspy.branch_data(44403, 45400, "1", intgar1=0) #RTPS - Ranchi line
ierr = psspy.branch_data(44403, 45400, "2", intgar1=0) 
ierr = psspy.branch_data(44404, 45404, "1", intgar1=0) #DSTPS - paruliaPG line
ierr = psspy.branch_data(44404, 45404, "2", intgar1=0) 
ierr = psspy.branch_data(44218, 44231, "1", intgar1=1) #DSTPS - PARU line
ierr = psspy.branch_data(44218, 44231, "2", intgar1=1)

# Kalipahari voltage upgrade case
Exemplo n.º 5
0
def preprocesado(parametros, info_casos):

   # se inicia el PSS/E
   initpss.inicia_psse(print_alert_psse=True)

   for x in info_casos:
      try:
         #se encuentra caso en la carpeta y se carga
         path_caso_psse = os.path.join(Rutas().ruta_casos, str(x.N_Caso) + '.sav')
         caso_pss = redpsse.CasoPSSE(filepath=path_caso_psse)
         caso_pss.load(save_previous=False)
         #se comprueba si el caso es peninsular o insular consultando las areas
         areas = redpsse.get_areas()
         area_numbers = []
         for a in areas:
            area_numbers.append(a.number)
         if 9 in area_numbers:
            Umin = parametros.U_min_i
            Umax = parametros.U_max_i
         else:
            Umin = parametros.U_min_p
            Umax = parametros.U_max_p
      except Exception as e:
         raise StandardError('Error al cargar el caso de referencia: {}'.format(e.message))

      try:
         # Cambio a tipo 2 los buses tipo 1 e incluyo generador con Pgen=0.01 MW
         # se recupera lista con buses tipo 1
         list_bus = redpsse.get_bus_number_used_by_tension_tipo(Umin=Umin, Umax=Umax, tipo=1)
         for bus_num in list_bus:
            # se modifica el tipo del bus
            ierr = psspy.bus_chng_3(bus_num, [2, _i, _i, _i], [_f, _f, _f, _f, _f, _f, _f], _s)
            # se crea una planta en el bus para poder añadir después el generador
            ierr = psspy.plant_data(bus_num, _i, [_f, _f])
            # se crea el generador con Pgen=0.01 MW
            intgar = [_i, _i, _i, _i, _i]
            Pgen = 0.01  # MW
            Qmin = 0  # MVar
            Qmax = 0  # MVar
            realar = [Pgen, _f, Qmin, Qmax, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f]
            idn = str(11)
            ierr = psspy.machine_data_2(bus_num, idn, intgar, realar)
      except Exception as e:
         raise StandardError('Error al modificar los nudos en el caso de referencia: {}'.format(e.message))

      try:
         # Modificacion del rateA y rateB segun ficheros de entrada
         #se recupera una lista con ramas
         list_branches = redpsse.get_branch_list()
         for branch in list_branches:
            ibus = branch.from_bus
            jbus = branch.to_bus
            ckt= branch.idn
            #se calculan los nuevos rates A y B de la rama segun parametros de entrada
            rateA=parametros.Rate_A/100 * branch.rate_a
            rateB=parametros.Rate_B/100 * branch.rate_a
            intgar=[_i,_i,_i,_i,_i,_i]
            realar=[_f,_f,_f,rateA,rateB,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f]
            #se modifica la rama con los nuevos rates A y B
            ierr = psspy.branch_data(ibus, jbus, ckt, intgar, realar)
      except Exception as e:
         raise StandardError('Error al modificar los rates A y B de las ramas en el caso de referencia: {}'.format(e.message))

      #se guarda temporalmente el caso procesado
      ierr = psspy.save(os.path.join(Rutas().ruta_casos_procesados, str(x.N_Caso) + '_procesado.sav'))
Exemplo n.º 6
0
ierr = psspy.load_data_3(44208, realar1=105., realar2=34.5)  #BURNPUR
ierr = psspy.load_data_3(44209, realar1=53., realar2=17.4)  #RAMGARH2
ierr = psspy.load_data_3(44217, realar1=207.4, realar2=70.4)  #BORJORA
ierr = psspy.load_data_3(44218, realar1=178.3, realar2=46.3)  #PARULIA
ierr = psspy.load_data_3(44219, realar1=0., realar2=0.)  #GOLA2
ierr = psspy.load_data_3(44220, realar1=20., realar2=9.6)  #GIRIDIH2
ierr = psspy.load_data_3(44223, realar1=40., realar2=9.3)  #KODERMA2
ierr = psspy.load_data_3(44227, realar1=50., realar2=14.2)  #RTPS2
ierr = psspy.load_data_3(44230, realar1=30., realar2=10.5)  #CHAS2
ierr = psspy.load_data_3(44233, realar1=20., realar2=3.6)  #PANAGARH
ierr = psspy.load_data_3(44235, realar1=25., realar2=8.1)  #NKPURA2
ierr = psspy.load_data_3(44236, realar1=50., realar2=8.2)  #PATRATU
ierr = psspy.load_data_3(44239, realar1=40., realar2=10.3)  #PARULIA

# Case specific branch interconnection changes to be indicated here
ierr = psspy.branch_data(44220, 44223, "1", intgar1=0)  #giridih - koderma line
ierr = psspy.branch_data(44220, 44223, "2", intgar1=0)
ierr = psspy.branch_data(44123, 44130, "1",
                         intgar1=0)  #patherdih - dhanbad line
ierr = psspy.branch_data(44123, 44130, "2", intgar1=0)
ierr = psspy.branch_data(44111, 44123, "1",
                         intgar1=0)  #maithon hydel - patherdih line
ierr = psspy.branch_data(44111, 44123, "2", intgar1=0)
ierr = psspy.branch_data(44109, 44118, "1", intgar1=1)  #dtps-kalipahari line
ierr = psspy.branch_data(44109, 44118, "2", intgar1=1)
ierr = psspy.branch_data(44403, 45400, "1", intgar1=0)  #RTPS - Ranchi line
ierr = psspy.branch_data(44403, 45400, "2", intgar1=0)
ierr = psspy.branch_data(44404, 45404, "1", intgar1=0)  #DSTPS - paruliaPG line
ierr = psspy.branch_data(44404, 45404, "2", intgar1=0)
ierr = psspy.branch_data(44218, 44231, "1", intgar1=1)  #DSTPS - PARU line
ierr = psspy.branch_data(44218, 44231, "2", intgar1=1)
Exemplo n.º 7
0
psspy.load_data_3(busMap['RAMGARH2'], realar1=53.) #RAMGARH2
psspy.load_data_3(busMap['BARJORA2'], realar1=203.-26.) #BORJORA
psspy.load_data_3(busMap['PARULIA2'], realar1=179.1) #PARULIA
psspy.load_data_3(busMap['GOLA2'], realar1=0.) #GOLA2
psspy.load_data_3(busMap['GIRIDIH2'], realar1=20.) #GIRIDIH2
psspy.load_data_3(busMap['KODERMA2'], realar1=0.) #KODERMA2
psspy.load_data_3(busMap['RTPS2'], realar1=0.) #RTPS2
psspy.load_data_3(busMap['CHAS2'], realar1=0.) #CHAS2
psspy.load_data_3(busMap['PANAGARH2'], realar1=0.) #PANAGARH
psspy.load_data_3(busMap['NKPURA2'], realar1=0.) #NKPURA2
psspy.load_data_3(busMap['PATRATU2'], realar1=0.) #PATRATU
psspy.load_data_3(busMap['MEJIAB2'], realar1=0.) #MEJIAB


# Case specific branch interconnection changes to be indicated here
psspy.branch_data(busMap['KALIPAHARI1'], busMap['KALYANESWARI1'], "1", intgar1=1) #KLYN1 - KALI1 line
psspy.branch_data(busMap['KALIPAHARI1'], busMap['KALYANESWARI1'], "2", intgar1=1)
psspy.branch_data(busMap['PATHERDIH1'], busMap['DHANBAD1'], "1", intgar1=0) #patherdih - dhanbad line
psspy.branch_data(busMap['PATHERDIH1'], busMap['DHANBAD1'], "2", intgar1=0) 
psspy.branch_data(busMap['MAITHONHYDL1'], busMap['PATHERDIH1'], "1", intgar1=1) #maithon hydel - patherdih line
psspy.branch_data(busMap['MAITHONHYDL1'], busMap['PATHERDIH1'], "2", intgar1=1) 
psspy.branch_data(busMap['DTPS1'], busMap['CTPS1'], "1", intgar1=1) #dtps-ctps line
psspy.branch_data(busMap['DTPS1'], busMap['JAMURIA1'], "1", intgar1=1) #dtps-jamuria line
psspy.branch_data(busMap['DTPS1'], busMap['JAMURIA1'], "2", intgar1=0)
psspy.branch_data(busMap['RAMKANALI1'], busMap['JAMURIA1'], "1", intgar1=1) #jamuria-ramkanali line 
psspy.branch_data(busMap['GOLA1'], busMap['BIADA1'], "1", intgar1=0) #gola-biada line
psspy.branch_data(busMap['GOLA1'], busMap['BIADA1'], "2", intgar1=0)

psspy.branch_data(busMap['GIRIDIH2'], busMap['KODERMA2'], "1", intgar1=1) #giridih - koderma line
psspy.branch_data(busMap['GIRIDIH2'], busMap['KODERMA2'], "2", intgar1=1)
#psspy.branch_data(busMap['PARULIA2'], busMap['DSTPS2'], "1", intgar1=0) #DSTPS - PARU line
Exemplo n.º 8
0
def QVAnalysis(CASE,ireg,activateplot):

    busno = 44999 # Fictitious generator bus
    genid = 1
    status = 1
    pgen = 0.0 # Fict gen P output
    Qlimit = 9999.0 # Fict. gen Q limit
    pmax = 0.0 # Fict gen P limit
    
    #--------------------------------

    def add_machine():
        psspy.plant_data(busno, intgar1=ireg)
        psspy.machine_data_2(
            busno,
            str(genid),
            intgar1=int(status),
            realar1=pgen,
            realar3=Qlimit,
            realar4=-Qlimit,
            realar5=pmax)

    def get_mvar(i):
        """
        Changes the voltage set point at the synchronous machine
        solves the case
        returns the the new reactive power output of the sync machine.
        """
        psspy.plant_data(busno, realar1=i)
        ierr = psspy.fnsl()
        val = psspy.solved()
        if val == 0:
            ierr, mvar = psspy.macdat(busno, str(genid), 'Q')
            return mvar
        else:
            return None
        
    def get_genExhausted(pv):
        """
        get the number of gen whose reactive power got exhausted.
        """
        genExhausted = []
        GenReactivePowerOutput = getGenReactivePowerOutput(pv)
        GenReactivePowerMax = getGenReactivePowerMax(pv)
        GenReactivePowerMin = getGenReactivePowerMin(pv)
        for i in range(0,len(pv)):
            if GenReactivePowerOutput[i] == GenReactivePowerMax[i] \
               or GenReactivePowerOutput[i] == GenReactivePowerMin[i]:
                genExhausted.append(pv[i])
        return genExhausted
        
    
    psspy.psseinit(12000)
    psspy.case(CASE)
    psspy.solution_parameters_3(intgar2=60) # set number of solution iterations.

    psspy.bus_data_2(busno, intgar1=2, name='TEST')
    psspy.branch_data(i=busno, j=ireg)
    all_bus = findAllBuses()
    pq,pv,slackBus = findAllBusType(all_bus)
    add_machine()

    
    # get gen that exhausted its reactive power    
    genExhausted_old = get_genExhausted(pv) 

    pu = [x for x in np.arange(1.0, 0.2, -0.005)]
    varlist = []
    voltagelist = []
    
    for v in pu:
        res = get_mvar(v)
        if res:
            psspy.save("temp")
            varlist.append(res)
            voltagelist.append(v)
        else:
            break

    # get new gen that exhausted its reactive power
    psspy.case("temp")
    busGenExhausted = []
    genExhausted_new = get_genExhausted(pv)
    for bus in genExhausted_new:
        if bus not in genExhausted_old:
            busGenExhausted.append(bus)
                
    QminIndex = np.argmin(varlist)
    Qmin = varlist[QminIndex]
    Vmin = voltagelist[QminIndex]

    if activateplot == 1:
        plt.plot(voltagelist, varlist, '-o')
        plt.plot(Vmin,Qmin,'ro')
        plt.xlabel('PU')
        plt.ylabel('MVar')
        plt.grid()

    return Qmin,Vmin,busGenExhausted
Exemplo n.º 9
0
# PSS/E Saved case
#CASE = r"C:\Program Files\PTI\PSSE32\EXAMPLE\11TH_PLAN_REV_MAR_2012.sav"
#CASE = r"C:\Program Files\PTI\PSSE32\EXAMPLE\12TH_PLAN_MAR_2017R1.sav"
CASE = r"C:\Program Files (x86)\PTI\PSSE33\EXAMPLE\11TH_PLAN_REV_MAR_2012.sav"
psspy.psseinit(9000)
psspy.case(CASE)

#------------------------
ierr = psspy.bus_data_2(44405, intgar1=4)  #BkroA
ierr = psspy.bus_data_2(44010, intgar1=4)  #BkroA
ierr, realaro = psspy.two_winding_data(44010, 44405, "1",
                                       intgar1=0)  #BTPSAG to BkroA
ierr, realaro = psspy.two_winding_data(
    44200, 44405, "1", intgar1=0)  #btps-b to bokaro-a interconnection
ierr = psspy.branch_data(44402, 44405, "1", intgar1=0)  #Koderma - BkroA line
ierr = psspy.branch_data(44402, 44405, "2", intgar1=0)  #Koderma - BkroA line

# Case specific load changes to be indicated here
# CD as on 28.2.2014
ierr = psspy.load_data_3(44100, realar1=44.6)  #BOKARO
ierr = psspy.load_data_3(44101, realar1=24.4)  #MOSABANI
ierr = psspy.load_data_3(44102, realar1=123.7)  #BURDWAN
ierr = psspy.load_data_3(44103, realar1=43.0)  #BELMURI
ierr = psspy.load_data_3(44104, realar1=15.0)  #HOWRAH
ierr = psspy.load_data_3(44105, realar1=17.0)  #KHARAGPUR
ierr = psspy.load_data_3(44106, realar1=359.5)  #CHANDRAPURA
ierr = psspy.load_data_3(44107, realar1=10.0)  #KOLAGHAT
ierr = psspy.load_data_3(44108, realar1=140.0)  #JAMSHEDPUR
ierr = psspy.load_data_3(44101, realar1=42.2)  #DTPS
ierr = psspy.load_data_3(44110, realar1=20.0)  #BARHI
Exemplo n.º 10
0
psspy.load_data_3(busMap['RAMGARH2'], realar1=53.)  #RAMGARH2
psspy.load_data_3(busMap['BARJORA2'], realar1=203. - 26.)  #BORJORA
psspy.load_data_3(busMap['PARULIA2'], realar1=179.1)  #PARULIA
psspy.load_data_3(busMap['GOLA2'], realar1=0.)  #GOLA2
psspy.load_data_3(busMap['GIRIDIH2'], realar1=20.)  #GIRIDIH2
psspy.load_data_3(busMap['KODERMA2'], realar1=0.)  #KODERMA2
#psspy.load_data_3(busMap['RTPS2'], realar1=0.) #RTPS2
#psspy.load_data_3(busMap['CHAS2'], realar1=0.) #CHAS2
#psspy.load_data_3(busMap['PANAGARH2'], realar1=0.) #PANAGARH
#psspy.load_data_3(busMap['NKPURA2'], realar1=0.) #NKPURA2
#psspy.load_data_3(busMap['PATRATU2'], realar1=0.) #PATRATU
#psspy.load_data_3(busMap['MEJIAB2'], realar1=0.) #MEJIAB

# Case specific branch interconnection changes to be indicated here
psspy.branch_data(busMap['KALIPAHARI1'],
                  busMap['KALYANESWARI1'],
                  "1",
                  intgar1=1)  #KLYN1 - KALI1 line
psspy.branch_data(busMap['KALIPAHARI1'],
                  busMap['KALYANESWARI1'],
                  "2",
                  intgar1=1)
psspy.branch_data(busMap['PATHERDIH1'], busMap['DHANBAD1'], "1",
                  intgar1=0)  #patherdih - dhanbad line
psspy.branch_data(busMap['PATHERDIH1'], busMap['DHANBAD1'], "2", intgar1=0)
psspy.branch_data(busMap['MAITHONHYDL1'], busMap['PATHERDIH1'], "1",
                  intgar1=1)  #maithon hydel - patherdih line
psspy.branch_data(busMap['MAITHONHYDL1'], busMap['PATHERDIH1'], "2", intgar1=1)
psspy.branch_data(busMap['DTPS1'], busMap['CTPS1'], "1",
                  intgar1=1)  #dtps-ctps line
psspy.branch_data(busMap['DTPS1'], busMap['JAMURIA1'], "1",
                  intgar1=1)  #dtps-jamuria line
        case_id = "_scr" + str(round(scr, 2)) + "_xr" + str(xrratio) + "_P65.0"
    else:
        case_id = "_scr" + str(round(scr, 2)) + "_xr" + str(xrratio) + "_P3.25"
    # Direct conversion of SCR to impedance # The impedance is on MBASE
    Rsys = math.sqrt(((1.0 / scr) ** 2) / (xrratio ** 2 + 1.0))  # make sure that the division is forced to be a floating point number
    Xsys = Rsys * xrratio
    # Convert impedances from MBASE to SBASE for entry in PSS/E
    Rsys = Rsys * (SBASE / poc_p_max)
    Xsys = Xsys * (SBASE / poc_p_max)

    psspy.fnsl([1, 0, 0, 1, 1, 0, 0, 0])

    psspy.machine_data_2(bus_gen, '1', realar1 = ppoc)  # Update the UUT active power output
    psspy.machine_data_2(bus_inf, '1', realar8 = 0.0, realar9 = 0.0001)  # Update the infinite bus equivalent impedance
    psspy.seq_machine_data(bus_inf, '1', [0.0, 0.0001, 0.0, 0.0001, _f, _f])  # Update the infinite bus equivalent impedance in sequence info
    psspy.branch_data(bus_dummy, bus_inf, '1', realar1 = Rsys, realar2 = Xsys)
    psspy.fdns([1, 0, 1, 1, 0, 0, 99, 0])
    #if caseIndex == 0:# Qexport at POC is 0
    PpocNOW = ppoc*1.01+0.1
    dPpoc = PpocNOW-ppoc
    PgenNOW = ppoc
    while abs(dPpoc) > PQMisMatch_Tol:
        PgenNOW = PgenNOW-dPpoc/P_factor
        QpocNOW = qpoc * 1.01 + 0.1
        dQpoc = QpocNOW - qpoc
        QgenNOW = QgenINImax[caseIndex]
        while abs(dQpoc) > PQMisMatch_Tol:
            QgenNOW = QgenNOW - dQpoc / Q_factor
            psspy.machine_data_2(bus_gen, '1', realar1=PgenNOW, realar2=QgenNOW, realar3=QgenNOW, realar4=QgenNOW)
            psspy.fdns([1, 0, 1, 1, 0, 0, 99, 0])
            ierr, Vinf = psspy.busdat(bus_inf, 'PU')
Exemplo n.º 12
0
import math
from itertools import groupby

# PSS/E Saved case
#CASE = r"C:\Program Files\PTI\PSSE32\EXAMPLE\11TH_PLAN_REV_MAR_2012.sav"
#CASE = r"C:\Program Files\PTI\PSSE32\EXAMPLE\12TH_PLAN_MAR_2017R1.sav"
CASE = r"C:\Program Files (x86)\PTI\PSSE33\EXAMPLE\11TH_PLAN_REV_MAR_2012.sav"
psspy.psseinit(9000)
psspy.case(CASE)

#------------------------
ierr = psspy.bus_data_2(44405, intgar1=4) #BkroA
ierr = psspy.bus_data_2(44010, intgar1=4) #BkroA
ierr, realaro = psspy.two_winding_data(44010, 44405, "1", intgar1=0) #BTPSAG to BkroA
ierr, realaro = psspy.two_winding_data(44200, 44405, "1", intgar1=0) #btps-b to bokaro-a interconnection
ierr = psspy.branch_data(44402, 44405, "1", intgar1=0) #Koderma - BkroA line
ierr = psspy.branch_data(44402, 44405, "2", intgar1=0) #Koderma - BkroA line

# Case specific load changes to be indicated here
# CD as on 28.2.2014
ierr = psspy.load_data_3(44100, realar1=44.6) #BOKARO
ierr = psspy.load_data_3(44101, realar1=24.4) #MOSABANI
ierr = psspy.load_data_3(44102, realar1=123.7) #BURDWAN
ierr = psspy.load_data_3(44103, realar1=43.0) #BELMURI
ierr = psspy.load_data_3(44104, realar1=15.0) #HOWRAH
ierr = psspy.load_data_3(44105, realar1=17.0) #KHARAGPUR
ierr = psspy.load_data_3(44106, realar1=359.5) #CHANDRAPURA
ierr = psspy.load_data_3(44107, realar1=10.0) #KOLAGHAT
ierr = psspy.load_data_3(44108, realar1=140.0) #JAMSHEDPUR
ierr = psspy.load_data_3(44101, realar1=42.2) #DTPS
ierr = psspy.load_data_3(44110, realar1=20.0) #BARHI
    bus_inf = 969
    bus_IDTRF = 108

    # OPEN PSSE
    _i = psspy.getdefaultint()
    _f = psspy.getdefaultreal()
    _s = psspy.getdefaultchar()
    redirect.psse2py()
    psspy.psseinit(50000)

    FileName = f_list[case[test - 1]-1]
    psspy.case(CasePath + FileName)
    psspy.resq(CasePath + "Tamworth_SMIB.seq")
    psspy.addmodellibrary(CasePath + 'SMASC_E161_SMAPPC_E130_342_IVF150.dll')
    psspy.dyre_new([1, 1, 1, 1], CasePath + "Tamworth_SMIB_E161_E130.dyr", '', '', '')
    psspy.branch_data(bus_flt, bus_inf, '1', realar1=0, realar2=0.0001)
    ierr, line_rx = psspy.brndt2(bus_flt, bus_inf, '1', 'RX')
    psspy.ltap(bus_flt, bus_inf, r"""1""", 0.0001, bus_IDTRF, r"""IDTRF""", _f)
    psspy.plant_data(bus_inf, realar1=1.0)
    psspy.purgbrn(bus_IDTRF, bus_flt, r"""1""")
    psspy.two_winding_data_3(bus_flt, bus_IDTRF, r"""1""",
                             [1, bus_flt, 1, 0, 0, 0, 33, 0, bus_flt, 0, 1, 0, 1, 1, 1],
                             [0.0, 0.0001, 100.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0,
                              0.0, 1.1, 0.9, 1.1, 0.9, 0.0, 0.0, 0.0], r"""IDTRF""")

    OutputFilePath = FigurePath + '07. Grid Voltage Step Test' + "\\" + 'Test' + str(
        test+42) + '_' + FileName + '_sFac' + str(acceleration) + '_dT' + str(
        integration_step) + '_Grid Voltage Step Test.out'
    # ! Setup Dynamic Simulation parameters
    psspy.dynamics_solution_param_2([n_iteration, _i, _i, _i, _i, _i, _i, _i],
                                    [acceleration, tolerance, integration_step, _f, _f, _f, _f, _f])