psspy.dyre_new([1, 1, 1, 1], GridInfoPath + "/" + file_name + ".dyr", "",
                   "", "")
    psspy.addmodellibrary(HuaweiModelPath + 'HWS2000_psse34.dll')
    psspy.addmodellibrary(HuaweiModelPath + 'MOD_GPM_PPC_V13_34.dll')
    psspy.addmodellibrary(HuaweiModelPath + 'MOD_GPM_SB_V7.dll')
    psspy.dynamics_solution_param_2([_i, _i, _i, _i, _i, _i, _i, _i],
                                    [0.300, _f, 0.001, 0.004, _f, _f, _f, _f])
    psspy.machine_data_2(
        500, r"""1""", [_i, _i, _i, _i, _i, _i],
        [90, _f, _f, _f, 96.8, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f])
    psspy.fnsl([0, 0, 0, 1, 1, 1, 99, 0])

    psspy.bus_frequency_channel([1, 1000], r"""System frequency""")
    psspy.voltage_channel([2, -1, -1, 500], r"""Inverter Voltage Mag.""")
    psspy.voltage_channel([3, -1, -1, 800], r"""WISF POC Voltage Mag.""")
    psspy.branch_p_and_q_channel([4, -1, -1, 800, 900], r"""1""",
                                 [r"""P Injection""", r"""Q Injection"""])
    ierr = psspy.machine_array_channel([6, 2, 500], r"""1""",
                                       r"""Pelec Inverter""")
    ierr = psspy.machine_array_channel([7, 3, 500], r"""1""",
                                       r"""Qelec Inverter""")

    [ierr, var_ppc_conp] = psspy.mdlind(500, '1', 'EXC', 'CON')
    [ierr, var_ppc_setp] = psspy.mdlind(500, '1', 'EXC', 'VAR')
    [ierr, var_ppc_mode] = psspy.mdlind(500, '1', 'EXC', 'ICON')
    [ierr, var_inv1_con] = psspy.mdlind(500, '1', 'GEN', 'CON')
    [ierr, var_inv1_var] = psspy.mdlind(500, '1', 'GEN', 'VAR')
    [ierr, var_inv1_mod] = psspy.mdlind(500, '1', 'GEN', 'ICON')

    # convert load , do not change
    psspy.cong(0)
    psspy.bsys(0, 0, [0.0, 500.], 1, [7], 0, [], 0, [], 0, [])
    # convert load , do not change
    psspy.cong(0)
    psspy.conl(0, 1, 1, [0, 0], [100.0, 0.0, 0.0, 100.0])
    psspy.conl(0, 1, 2, [0, 0], [100.0, 0.0, 0.0, 100.0])
    psspy.conl(0, 1, 3, [0, 0], [100.0, 0.0, 0.0, 100.0])
    psspy.ordr(0)  # Order the matrix: ORDR
    psspy.fact()  # Factorize the matrix: FACT
    psspy.tysl(0)  # TYSL

    psspy.bus_frequency_channel([1, 969], r"""System frequency""")
    psspy.voltage_channel([2, -1, -1, 969], r"""IB_Voltage""")
    psspy.voltage_channel([3, -1, -1, 100], r"""UUT_Voltage""")
    psspy.voltage_channel([4, -1, -1, 106], r"""POC_Voltage""")
    psspy.machine_array_channel([5, 2, 100], r"""1""", r"""UUT_Pelec""")
    psspy.machine_array_channel([6, 3, 100], r"""1""", r"""UUT_Qelec""")
    psspy.branch_p_and_q_channel([7, -1, -1, 105, 106], r"""1""",
                                 [r"""POC_Flow""", ""])
    psspy.machine_array_channel([9, 9, 100], r"""1""", r"""UUT_IDcmd""")
    psspy.machine_array_channel([10, 12, 100], r"""1""", r"""UUT_IQcmd""")
    psspy.machine_array_channel([11, 8, 100], r"""1""", r"""PPC_Pcmd""")
    psspy.machine_array_channel([12, 5, 100], r"""1""", r"""PPC_Qcmd""")

    [ierr, var_ppc_conp] = psspy.mdlind(100, '1', 'EXC', 'CON')
    [ierr, var_ppc_setp] = psspy.mdlind(100, '1', 'EXC', 'VAR')
    [ierr, var_ppc_mode] = psspy.mdlind(100, '1', 'EXC', 'ICON')
    [ierr, var_inv_con] = psspy.mdlind(100, '1', 'GEN', 'CON')
    [ierr, var_inv_var] = psspy.mdlind(100, '1', 'GEN', 'VAR')
    [ierr, var_inv_mod] = psspy.mdlind(100, '1', 'GEN', 'ICON')

    psspy.change_plmod_con(100, r"""1""", r"""SMASC161""", 38,
                           0.0)  # FRT_VOLFILMOD
    psspy.change_plmod_con(100, r"""1""", r"""SMASC161""", 31,
psspy.addmodellibrary(HuaweiModelPath+'MOD_GPM_SB_V7.dll')
psspy.dynamics_solution_param_2([_i,_i,_i,_i,_i,_i,_i,_i],[1.0,_f, 0.001,0.004,_f,_f,_f,_f])
psspy.plant_chng_3(500,0,_i,[ 1.05,_f])
psspy.plant_chng_3(1000,0,_i,[ 1.045,_f])
psspy.machine_data_2(500, r"""1""", [_i, _i, _i, _i, _i, _i],[85, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f])
psspy.two_winding_chng_5(700,800,r"""1""",[_i,_i,_i,_i,_i,_i,_i,_i,800,_i,_i,1,_i,_i,_i],[_f,_f,_f, 1.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f],[_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f],r"""SS-TF-1""",
r"""YNYN0""")
psspy.machine_chng_2(500,r"""1""",[_i,_i,_i,_i,_i,_i],[_f,0.0,0,0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
psspy.load_data_3(1000,r"""1""",[_i,_i,_i,_i,_i],[1000,20,_f,_f,_f,_f])	# apply assumption load
psspy.fnsl([0,0,0,1,0,0,99,0])

psspy.cong(0)
psspy.bus_frequency_channel([1,1000],r"""System frequency""")
ierr=psspy.machine_array_channel([2,4,500],r"""1""",r"""Inverter Terminal Voltage""")
ierr=psspy.voltage_channel([3,-1,-1,800],r"""WISF PoC Voltage""")
psspy.branch_p_and_q_channel([4,-1,-1,800,900],r"""1""",[r"""P Injection""",r"""Q Injection"""])
psspy.branch_p_and_q_channel([6,-1,-1,500,600],r"""1""",[r"""Pelec Inverter""",r"""Pelec Inverter"""])
# ierr=psspy.machine_array_channel([6,2,500],r"""1""",r"""Pelec Inverter""")
# ierr=psspy.machine_array_channel([7,3,500],r"""1""",r"""Qelec Inverter""")
[ierr, var_ppc_conp] = psspy.mdlind(500, '1', 'EXC', 'CON')
[ierr, var_ppc_setp] = psspy.mdlind(500, '1', 'EXC', 'VAR')
[ierr, var_ppc_mode] = psspy.mdlind(500, '1', 'EXC', 'ICON')
[ierr, var_inv1_con] = psspy.mdlind(500, '1', 'GEN', 'CON')
[ierr, var_inv1_var]=  psspy.mdlind(500,'1','GEN','VAR')
[ierr, var_inv1_mod]=  psspy.mdlind(500,'1','GEN','ICON')

ierr=psspy.var_channel([8,var_ppc_setp+68],"Voltage Setpoint")
ierr=psspy.var_channel([9,var_ppc_setp+10],"Active Power Setpoint")

psspy.change_plmod_con(500,r"""1""",r"""HWS2000""",10, 0.1111)
psspy.change_plmod_con(500,r"""1""",r"""HWS2000""",8, 0.75)
Exemple #4
0
psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 23, 0.001)
psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 24, 0.4)

for t_var in range(1, 9000):
    psspy.change_var(t_var, 0)

[ierr, var_ppc_conp] = psspy.mdlind(101, '1', 'EXC', 'CON')
[ierr, var_ppc_setp] = psspy.mdlind(101, '1', 'EXC', 'VAR')
[ierr, var_ppc_mode] = psspy.mdlind(101, '1', 'EXC', 'ICON')
[ierr, var_inv_con] = psspy.mdlind(101, '1', 'GEN', 'CON')
[ierr, var_inv_var] = psspy.mdlind(101, '1', 'GEN', 'VAR')
[ierr, var_inv_stt] = psspy.mdlind(101, '1', 'GEN', 'STATE')
psspy.bus_frequency_channel([1, 400], r"""System frequency""")
psspy.voltage_channel([2, -1, -1, 101], r"""Inverter Voltage Mag.""")
psspy.voltage_channel([3, -1, -1, 400], r"""WD SF POC Voltage Mag.""")
psspy.branch_p_and_q_channel([4, -1, -1, 400, 46660], r"""1""",
                             [r"""P Injection""", r"""Q Injection"""])
psspy.branch_p_and_q_channel([7, -1, -1, 101, 111], r"""1""",
                             [r"""P Injection""", r"""Q Injection"""])
psspy.var_channel([9, var_ppc_setp + 68], r"""Voltage Setpoint""")

psspy.cong(0)
psspy.conl(0, 1, 1, [0, 0], [0.0, 0.0, 0.1, 0.0])
psspy.conl(0, 1, 2, [0, 0], [0.0, 0.0, 0.1, 0.0])
psspy.conl(0, 1, 3, [0, 0], [0.0, 0.0, 0.1, 0.0])
psspy.ordr(1)
psspy.fact()
psspy.tysl(1)
psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 1, 8)
#psspy.change_plmod_icon(101,r"""1""",r"""GPMPPC""",4,0)
# start simulation
psspy.strt_2([0, 0], OutputFilePath)
        psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 24, 0.4)  # QV droop
        psspy.change_plmod_icon(101, r"""1""", r"""GPMPPC""", 4, 2)  # kVar control =0, PF control = 1, Droop Control = 2, Voltage Control = 3
        psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 10, 1.0)

        for t_var in range(0, 9000):
            psspy.change_var(t_var, 0)
        psspy.plmod_status(30531, r"""1""", 1, 0)
        psspy.plmod_status(30531, r"""1""", 6, 0)
        psspy.plmod_status(30531, r"""1""", 7, 0)
        psspy.plmod_status(37530, r"""1""", 1, 0)
        psspy.plmod_status(37530, r"""1""", 6, 0)
        psspy.plmod_status(37530, r"""1""", 7, 0)
        psspy.bus_frequency_channel([1, 400], r"""System frequency""")
        psspy.voltage_channel([2, -1, -1, 101], r"""Inverter Voltage Mag.""")
        psspy.voltage_channel([3, -1, -1, 400], r"""WDs SF POC Voltage Mag.""")
        psspy.branch_p_and_q_channel([4, -1, -1, 400, 46660], r"""1""", [r"""P Injection""", r"""Q Injection"""])
        psspy.branch_p_and_q_channel([7, -1, -1, 101, 111], r"""1""", [r"""Pelec 101""", r"""Qelec 101"""])
        psspy.branch_p_and_q_channel([9, -1, -1, 102, 112], r"""1""", [r"""Pelec 102""", r"""Qelec 102"""])
        psspy.branch_p_and_q_channel([11, -1, -1, 103, 113], r"""1""", [r"""Pelec 103""", r"""Qelec 103"""])
        psspy.branch_p_and_q_channel([13, -1, -1, 104, 114], r"""1""", [r"""Pelec 104""", r"""Qelec 104"""])
        # ierr = psspy.machine_array_channel([7, 2, 101], r"""1""", r"""Pelec 101""")
        # ierr = psspy.machine_array_channel([8, 3, 101], r"""1""", r"""Qelec 101""")
        # ierr = psspy.machine_array_channel([9, 2, 102], r"""1""", r"""Pelec 102""")
        # ierr = psspy.machine_array_channel([10, 3, 102], r"""1""", r"""Qelec 102""")
        # ierr = psspy.machine_array_channel([11, 2, 103], r"""1""", r"""Pelec 103""")
        # ierr = psspy.machine_array_channel([12, 3, 103], r"""1""", r"""Qelec 103""")
        # ierr = psspy.machine_array_channel([13, 2, 104], r"""1""", r"""Pelec 104""")
        # ierr = psspy.machine_array_channel([14, 3, 104], r"""1""", r"""Qelec 104""")
        [ierr, var_ppc_conp] = psspy.mdlind(101, '1', 'EXC', 'CON')
        [ierr, var_ppc_setp] = psspy.mdlind(101, '1', 'EXC', 'VAR')
        [ierr, var_ppc_mode] = psspy.mdlind(101, '1', 'EXC', 'ICON')
    ## calculate impedance for POC and fault
    z_g[test_no] = 1 / SCR_31_60[test_no]  # grid impedance
    r_g[test_no] = sqrt(z_g[test_no]**2 / (GXR_31_60[test_no]**2 + 1))  #grid r
    x_g[test_no] = GXR_31_60[test_no] * r_g[test_no]  #grid_x
    z_f[test_no] = d * z_g[test_no] * u_dip / (1 - u_dip)
    r_f[test_no] = sqrt(z_f[test_no]**2 / 10)
    x_f[test_no] = 3 * r_f[test_no]
    psspy.branch_chng_3(
        400, 46660, r"""1""", [_i, _i, _i, _i, _i, _i],
        [r_g[test_no], x_g[test_no], _f, _f, _f, _f, _f, _f, _f, _f, _f, _f],
        [_f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f], "")
    psspy.fdns([1, 0, 0, 1, 1, 1, 0, 0])
    psspy.bus_frequency_channel([1, 400], r"""System frequency""")
    # psspy.voltage_channel([2, -1, -1, 101], r"""Inverter Voltage Mag.""")
    # psspy.voltage_channel([3, -1, -1, 400], r"""WD SF POC Voltage Mag.""")
    psspy.branch_p_and_q_channel([2, -1, -1, 400, 46660], r"""1""",
                                 [r"""P Injection""", r"""Q Injection"""])
    # ierr = psspy.machine_array_channel([4, 2, 101], r"""1""", r"""Pelec 101""")
    # ierr = psspy.machine_array_channel([5, 3, 101], r"""1""", r"""Qelec 101""")
    psspy.branch_p_and_q_channel([4, -1, -1, 101, 201], r"""1""",
                                 [r"""101_P""", r"""101_Q"""])
    psspy.voltage_and_angle_channel(
        [6, -1, -1, 101],
        [r"""Inverter Voltage Mag""", r"""Inverter Voltage Ang"""])
    psspy.voltage_and_angle_channel(
        [8, -1, -1, 400], [r"""POC_Voltage Mag""", r"""POC Voltage Ang"""])

    psspy.cong(0)
    psspy.conl(0, 1, 1, [0, 0], [0.0, 0.0, 0.1, 0.0])
    psspy.conl(0, 1, 2, [0, 0], [0.0, 0.0, 0.1, 0.0])
    psspy.conl(0, 1, 3, [0, 0], [0.0, 0.0, 0.1, 0.0])
    psspy.ordr(1)