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)
# psspy.change_plmod_con(500,r"""1""",r"""GPMPPC""",36, 50)
# psspy.change_plmod_con(500,r"""1""",r"""GPMPPC""",16, 50)
# psspy.change_plmod_con(500,r"""1""",r"""GPMPPC""",17, 50)
# psspy.change_con(var_ppc_conp+9, 1.0)
# psspy.change_con(var_ppc_conp+4, 0.6)
# psspy.change_con(var_ppc_conp+5,-0.6)
# psspy.change_con(var_ppc_conp+22,0.001)
# psspy.change_con(var_ppc_conp+23,0.50)
#
# psspy.change_con(var_ppc_conp+25,0.80)
# psspy.change_con(var_ppc_conp+26,1.20)
#
# psspy.change_con(var_ppc_conp+1,0.02)
# psspy.change_con(var_ppc_conp+2,0.15)
    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,
                           0.115)  # HVRT 1-J+30
    psspy.change_plmod_con(100, r"""1""", r"""SMASC161""", 32,
                           0.095)  # HVRT 1-J+31

    psspy.strt_2([0, 0], OutputFilePath)
    J_vals = []
    L_vals = []
    Vset_vals = []
    ierr, J1 = psspy.mdlind(100, '1', 'EXC', 'CON')
    ierr, L1 = psspy.mdlind(100, '1', 'EXC', 'VAR')
    ierr, vset1 = psspy.dsrval('VAR', L1 + VAR_PPCVini)
    J_vals.append(J1)
    L_vals.append(L1)
    Vset_vals.append(vset1)
Example #3
0
    _f, _f, _f, ReactivePowerSetpoint * S, 120, _f, _f, _f, _f, _f, _f, _f, _f,
    _f, _f, _f, _f
])
# psspy.machine_chng_2(101,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(102,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(103,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(104,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f, 10.8,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(104,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f, 10.8, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(103,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f, 10.8, 10.8, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(102,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f, 10.8, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(101,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f, 10.8, 10.8, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(102,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f, 10.8,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
psspy.fdns([0, 0, 0, 1, 1, 1, 99, 0])
psspy.add_plant_model(600, r"""1""", 6, r"""SEXS""", 0, "", 0, [], [], 6,
                      [0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 1, 0.1)
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 2, 10.0)
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 3, 50.0)
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 4, 0.05)
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 6, 2.5)
psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 1, 0.9)
psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 2, 1)

psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 13, -0.3)
psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 14, 0.5)
psspy.change_plmod_con(102, r"""1""", r"""HWS2000""", 13, -0.3)
psspy.change_plmod_con(102, r"""1""", r"""HWS2000""", 14, 0.5)
psspy.change_plmod_con(103, r"""1""", r"""HWS2000""", 13, -0.3)
psspy.change_plmod_con(103, r"""1""", r"""HWS2000""", 14, 0.5)
psspy.change_plmod_con(104, r"""1""", r"""HWS2000""", 13, -0.3)
psspy.change_plmod_con(104, r"""1""", r"""HWS2000""", 14, 0.5)
Example #4
0
    _f, _f, _f, ReactivePowerSetpoint * S, 120, _f, _f, _f, _f, _f, _f, _f, _f,
    _f, _f, _f, _f
])
# psspy.machine_chng_2(101,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(102,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(103,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(104,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f, 10.8,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(104,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f, 10.8, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(103,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f, 10.8, 10.8, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(102,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f,_f, 10.8, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(101,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f, 10.8, 10.8, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
# psspy.machine_chng_2(102,r"""1""",[_i,_i,_i,_i,_i,_i],[ 108.0,_f, 10.8,_f, 120.0,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f,_f])
psspy.fdns([0, 0, 0, 1, 0, 0, 99, 0])
psspy.add_plant_model(600, r"""1""", 6, r"""SEXS""", 0, "", 0, [], [], 6,
                      [0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 1, 0.1)
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 2, 10.0)
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 3, 50.0)
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 4, 0.05)
psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 6, 2.5)
psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 1, 0.9)
psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 2, 1)

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')
Example #5
0
psspy.conl(0, 1, 3, [0, 0], [100.0, 0.0, -306.02, 303.0])
psspy.ordr(0)
psspy.fact()
psspy.tysl(0)
psspy.bsys(0, 0, [0.4, 500.], 0, [], 0, [], 0, [], 0, [])

# psspy.plmod_status(500,r"""1""",6,0)
# psspy.plmod_status(500,r"""1""",3,0)
# psspy.change_plmod_con(500,r"""1""",r"""GPMPPC""",26, 0.85)
# psspy.change_plmod_con(500,r"""1""",r"""GPMPPC""",27, 1.15)
# psspy.change_plmod_icon(500,r"""1""",r"""HWS2000""",2,1) # disable PF function of the inverter
# psspy.plmod_status(500,r"""1""",6,0) # disable PPC

psspy.change_plmod_icon(500, r"""1""", r"""HWS2000""", 1, 0)
psspy.change_plmod_icon(500, r"""1""", r"""HWS2000""", 2, 0)
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 16, 6)
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 17, 6)
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 33, 50.15)
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 34, 52.0)
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 35, 50.2)
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 36, 20.0)
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 37, 49.85)
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 38, 47.0)
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 8, 1)
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 9, 1)
# this is for the votlage control
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 1, 20)  #ori=5
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 2, 20)  #ori=5
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 3, 50)  #ori=5
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 4, 2)  #ori=3
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 23, 0.003)  #ori=0.003
        psspy.machine_data_2(102, r"""1""", [_i, _i, _i, _i, _i, _i],
                             [100, _f, 60, -40, 120, _f,120, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f])
        psspy.machine_data_2(103, r"""1""", [_i, _i, _i, _i, _i, _i],
                             [100, _f, 60, -40, 120, _f, 120, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f])
        psspy.machine_data_2(104, r"""1""", [_i, _i, _i, _i, _i, _i],
                             [100, _f, 60, -40, 120, _f, 120, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f])
        # psspy.machine_data_2(100, r"""1""", [_i, _i, _i, _i, _i, _i],
        #                      [_f, _f, 5, _f, 132, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f])
        # psspy.machine_data_2(100, r"""1""", [_i, _i, _i, _i, _i, _i],
        #                      [_f, _f, _f, 5, 132, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f,
        #                       _f])  # be careful, partial active power = not enough solar irraidance.
        psspy.fdns([1, 0, 0, 1, 0, 0, 99, 0])
        t_q = 0.569
        # psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 5, 0.6667)
        # psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 5, -0.5)
        psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 13, -t_q)
        psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 14, t_q)
        psspy.change_plmod_con(102, r"""1""", r"""HWS2000""", 13, -t_q)
        psspy.change_plmod_con(102, r"""1""", r"""HWS2000""", 14, t_q)
        psspy.change_plmod_con(103, r"""1""", r"""HWS2000""", 13, -t_q)
        psspy.change_plmod_con(103, r"""1""", r"""HWS2000""", 14, t_q)
        psspy.change_plmod_con(104, r"""1""", r"""HWS2000""", 13, -t_q)
        psspy.change_plmod_con(104, r"""1""", r"""HWS2000""", 14, t_q)
        psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 23, 0.001)  # QV droop deadband
        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)
Example #7
0
    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"""SMAPPC130""", 1, 4)

    psspy.strt_2([0, 0], OutputFilePath)
    J_vals = []
    L_vals = []
    Qset_vals = []
    ierr, J1 = psspy.mdlind(100, '1', 'EXC', 'CON')
    ierr, L1 = psspy.mdlind(100, '1', 'EXC', 'VAR')
    ierr, qset1 = psspy.dsrval('VAR', L1 + VAR_PPCQini)
    J_vals.append(J1)
    L_vals.append(L1)
    Qset_vals.append(qset1)

    # Run dynamic simulations
    psspy.run(0, 1.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 34,
Example #8
0
psspy.bsys(1,0,[0.0,0.0],0,[],6,[37600,37601,37602,37580,37584,38588],0,[],0,[])
psspy.conl(1,0,2,[0,0],[ 52.75, 58.13, 5.97, 95.52])
psspy.bsys(1,0,[0.0,0.0],0,[],1,[21790],0,[],0,[])
psspy.conl(1,0,2,[0,0],[ 86.63, 25.19, -378.97, 347.97])
psspy.bsys(1,0,[0.0,0.0],0,[],1,[45082],0,[],0,[])
psspy.conl(1,0,2,[0,0],[ 51.36, 59.32,-228.04, 254.01])
psspy.bsys(1,0,[0.0,0.0],0,[],9,[40320,40340,40350,40970,40980,40990,41050,41071,41120],0,[],0,[])
psspy.conl(1,0,2,[0,0],[ 100.0,0.0,0.0, 100.0])
psspy.conl(0,1,2,[0,0],[ 100.0,0.0,-306.02, 303.0])
psspy.conl(0,1,3,[0,0],[ 100.0,0.0,-306.02, 303.0])
psspy.ordr(0)
psspy.fact()
psspy.tysl(0)
psspy.bsys(0,0,[ 0.4, 500.],0,[],0,[],0,[],0,[])

psspy.change_plmod_con(101,r"""1""",r"""GPMPPC""",16, 3)
psspy.change_plmod_con(101,r"""1""",r"""GPMPPC""",17, 3)
psspy.change_plmod_icon(101,r"""1""",r"""GPMPPC""",10,1)


# start simulation
psspy.strt_2([0, 0], OutputFilePath)
psspy.run(0, 1, 1000,  1, 0)
psspy.change_var(var_ppc_setp+10,400)
#psspy.change_var(var_ppc_setp+11,0)
psspy.run(0, 10, 1000,  1, 0)
psspy.change_var(var_ppc_setp+10,200)
psspy.run(0, 30, 1000,  1, 0)
psspy.change_var(var_ppc_setp+10,100)
psspy.run(0, 50, 1000,  1, 0)
psspy.change_var(var_ppc_setp+10,200)
            # convert load , do not change
            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(0)
            psspy.fact()
            psspy.tysl(0)

            # psspy.add_plant_model(600, r"""1""", 6, r"""SEXS""", 0, "", 0, [], [], 6, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 1, 0.1)
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 2, 10.0)
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 3, 50.0)
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 4, 0.05)
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 6, 2.5)
            psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 1, 0.9)
            psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 2, 1)
            # tune the controllers
            t_q = 0.569
            psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 5, 0.335)
            psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 6, -0.335)
            psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 13, -t_q)
            psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 14, t_q)
            psspy.change_plmod_con(102, r"""1""", r"""HWS2000""", 13, -t_q)
            psspy.change_plmod_con(102, r"""1""", r"""HWS2000""", 14, t_q)
            psspy.change_plmod_con(103, r"""1""", r"""HWS2000""", 13, -t_q)
            psspy.change_plmod_con(103, r"""1""", r"""HWS2000""", 14, t_q)
            psspy.change_plmod_con(104, r"""1""", r"""HWS2000""", 13, -t_q)
            psspy.change_plmod_con(104, r"""1""", r"""HWS2000""", 14, t_q)
            psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 23,
                                   0.001)  # QV droop deadband
Example #10
0
 psspy.machine_data_2(103, r"""1""", [_i, _i, _i, _i, _i, _i], [
     100, _f, 60, -40, 120, _f, 120, _f, _f, _f, _f, _f, _f, _f, _f, _f,
     _f
 ])
 psspy.machine_data_2(104, r"""1""", [_i, _i, _i, _i, _i, _i], [
     100, _f, 60, -40, 120, _f, 120, _f, _f, _f, _f, _f, _f, _f, _f, _f,
     _f
 ])
 # psspy.machine_data_2(100, r"""1""", [_i, _i, _i, _i, _i, _i],
 #                      [_f, _f, 5, _f, 132, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f])
 # psspy.machine_data_2(100, r"""1""", [_i, _i, _i, _i, _i, _i],
 #                      [_f, _f, _f, 5, 132, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f,
 #                       _f])  # be careful, partial active power = not enough solar irraidance.
 psspy.fdns([1, 0, 0, 1, 0, 0, 99, 0])
 t_q = 0.569
 psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 5, 0.5)
 psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 5, -0.5)
 psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 13, -t_q)
 psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 14, t_q)
 psspy.change_plmod_con(102, r"""1""", r"""HWS2000""", 13, -t_q)
 psspy.change_plmod_con(102, r"""1""", r"""HWS2000""", 14, t_q)
 psspy.change_plmod_con(103, r"""1""", r"""HWS2000""", 13, -t_q)
 psspy.change_plmod_con(103, r"""1""", r"""HWS2000""", 14, t_q)
 psspy.change_plmod_con(104, r"""1""", r"""HWS2000""", 13, -t_q)
 psspy.change_plmod_con(104, r"""1""", r"""HWS2000""", 14, t_q)
 psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 23,
                        0.001)  # QV droop deadband
 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
    [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.strt_2([0, 0], OutputFilePath)
    J_vals = []
    L_vals = []
    Vset_vals = []
    ierr, J1 = psspy.mdlind(100, '1', 'EXC', 'CON')
    ierr, L1 = psspy.mdlind(100, '1', 'EXC', 'VAR')
    ierr, vset1 = psspy.dsrval('VAR', L1 + VAR_PPCVini)
    J_vals.append(J1)
    L_vals.append(L1)
    Vset_vals.append(vset1)

    # Run dynamic simulations
    psspy.run(0, 1.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 11,
                           float(Vset_vals[0]) - dVref)
    psspy.run(0, 10.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 11,
                           float(Vset_vals[0]))
    psspy.run(0, 20.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 11,
                           float(Vset_vals[0]) + dVref)
    psspy.run(0, 30.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 11,
                           float(Vset_vals[0]))
    psspy.run(0, 40.0, 1000, 5, 5)
        _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, 0.0, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f, _f])

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

# convert load , do not change
psspy.cong(0)
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 1, 20)  #ori=5
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 2, 20)  #ori=5
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 3, 50)  #ori=5
psspy.change_plmod_icon(500, r"""1""", r"""GPMPPC""", 4, 2)  #ori=3
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 23, 0.003)  #ori=0.003
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 24, 0.5)  # droop  ori=5%
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 2,
                       0.02)  #  proportional gain  ori=0.001
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 3,
                       0.25)  # integral gain  ori=0.15
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 5,
                       0.5)  #PPC reactive power UB   #ori=1
psspy.change_plmod_con(500, r"""1""", r"""GPMPPC""", 6,
                       -0.3)  #PPC reactive power LB   #ori=1

# psspy.change_plmod_con(500,r"""1""",r"""GPMPPC""",7, 0.01)  ##ramp up

# psspy.change_plmod_con(500,r"""1""",r"""HWS2000""",13,-0.46)
# psspy.change_plmod_con(500,r"""1""",r"""HWS2000""",14,0.46)
Example #13
0
# psspy.addmodellibrary(GridInfoPath+'GEWTG34.dll')
# psspy.addmodellibrary(GridInfoPath+'SMAPPC_B111_34_IVF111.dll')
# psspy.addmodellibrary(GridInfoPath+'SMASC_C135_34_IVF111.dll')
psspy.dyre_new([1, 1, 1, 1], GridInfoPath + file_name + ".dyr", "", "", "")
psspy.dynamics_solution_param_2([_i, _i, _i, _i, _i, _i, _i, _i],
                                [1.000, _f, 0.001, 0.004, _f, _f, _f, _f])

for i in range(0, len(Disturbance_Load_Amount)):
    # re - initialize
    psspy.read(0, GridInfoPath + file_name + ".raw")
    psspy.dyre_new([1, 1, 1, 1], GridInfoPath + file_name + ".dyr", "", "", "")
    psspy.change_plmod_icon(101, r"""1""", r"""HWS2000""", 1, 2)
    psspy.change_plmod_icon(102, r"""1""", r"""HWS2000""", 1, 2)
    psspy.change_plmod_icon(103, r"""1""", r"""HWS2000""", 1, 2)
    psspy.change_plmod_icon(104, r"""1""", r"""HWS2000""", 1, 2)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 45, 50.6)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 46, 600.0)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 47, 51.1)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 48, 120.0)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 49, 52.1)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 51, 53.1)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 53, 54.0)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 55, 49.4)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 56, 600.0)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 57, 48.9)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 58, 120.0)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 59, 46.9)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 61, 45.9)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 63, 44.9)
    psspy.change_plmod_con(101, r"""1""", r"""HWS2000""", 65, 43.9)
    psspy.change_plmod_con(102, r"""1""", r"""HWS2000""", 45, 50.6)
Example #14
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([4, -1, -1, 400, 46660], r"""1""",
                                 [r"""P Injection""", r"""Q Injection"""])
    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""")

    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.0)

    # start simulation
    psspy.strt_2([0, 0], OutputFilePath)
    psspy.run(0, 1, 1000, 1, 0)

    if fault_type == 1:  # three phase fault
        psspy.dist_bus_fault(500, 3, 275.0, [0, 0.0])
        fault_name = 'T10_3-phase_DD'
        fault_time = 0.430

    if fault_type == 2:  # two phase
        psspy.dist_scmu_fault_2([0, 0, 2, 500, _i], [0.0, 0.0, 0.0, 0.0])
        fault_name = 'T11_2-phase_DD'
        fault_time = 0.430
Example #15
0
    [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.strt_2([0, 0], OutputFilePath)
    J_vals = []
    L_vals = []
    Pset_vals = []
    ierr, J1 = psspy.mdlind(100, '1', 'EXC', 'CON')
    ierr, L1 = psspy.mdlind(100, '1', 'EXC', 'VAR')
    ierr, Pset1 = psspy.dsrval('VAR', L1 + VAR_PPCPini)
    J_vals.append(J1)
    L_vals.append(L1)
    Pset_vals.append(Pset1)

    # Run dynamic simulations
    psspy.run(0, 5.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 19, Pset_vals[0] * (1 - dPref))
    psspy.run(0, 10.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 19, Pset_vals[0] * (1 - dPref*2))
    psspy.run(0, 15.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 19, Pset_vals[0] * (1 - dPref*3))
    psspy.run(0, 20.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 19, Pset_vals[0] * (1 - dPref*4))
    psspy.run(0, 25.0, 1000, 5, 5)
    psspy.change_plmod_con(100, r"""1""", r"""SMAPPC130""", 19, Pset_vals[0])
    psspy.run(0, 40.0, 1000, 5, 5)
Example #16
0
            # convert load , do not change
            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(0)
            psspy.fact()
            psspy.tysl(0)

            # psspy.add_plant_model(600, r"""1""", 6, r"""SEXS""", 0, "", 0, [], [], 6, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 1, 0.1)
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 2, 10.0)
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 3, 50.0)
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 4, 0.05)
            # psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 6, 2.5)
            psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 1, 0.9)
            psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 2, 1)

            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],
psspy.addmodellibrary(HuaweiModelPath + 'MOD_GPM_SB_V7.dll')
# psspy.addmodellibrary(GridInfoPath+'GEWTG34.dll')
# psspy.addmodellibrary(GridInfoPath+'SMAPPC_B111_34_IVF111.dll')
# psspy.addmodellibrary(GridInfoPath+'SMASC_C135_34_IVF111.dll')
psspy.dyre_new([1, 1, 1, 1], GridInfoPath + file_name + ".dyr", "", "", "")
psspy.dynamics_solution_param_2([_i, _i, _i, _i, _i, _i, _i, _i], [1.000, _f, 0.001, 0.004, _f, _f, _f, _f])

for i in range(0, len(Disturbance_Load_Amount)):
    # re - initialize
    psspy.read(0, GridInfoPath + file_name + ".raw")
    psspy.dyre_new([1, 1, 1, 1], GridInfoPath + file_name + ".dyr", "", "", "")
    psspy.change_plmod_icon(101, r"""1""", r"""HWS2000""", 1, 2)
    psspy.change_plmod_icon(102, r"""1""", r"""HWS2000""", 1, 2)
    psspy.change_plmod_icon(103, r"""1""", r"""HWS2000""", 1, 2)
    psspy.change_plmod_icon(104, r"""1""", r"""HWS2000""", 1, 2)
    psspy.change_plmod_con(101, r"""1""", r"""GPMPPC""", 10, 0.45)
    psspy.change_plmod_icon(101, r"""1""", r"""GPMPPC""", 4, 3)
    psspy.change_plmod_icon(101, r"""1""", r"""GPMPPC""", 8, 1)
    psspy.add_plant_model(600, r"""1""", 6, r"""SEXS""", 0, "", 0, [], [], 6, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0])
    psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 1, 0.1)
    psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 2, 10.0)
    psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 3, 100.0)
    psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 4, 0.1)
    psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 5, -10.0)
    psspy.change_plmod_con(600, r"""1""", r"""SEXS""", 6, 10.0)
    psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 1, 0.5)
    psspy.change_plmod_con(600, r"""1""", r"""GENCLS""", 2, 0.1)
    psspy.resq(GridInfoPath + file_name + ".seq")
    psspy.load_data_3(600, r"""1""", [_i, _i, _i, _i, _i], [300, 20, _f, _f, _f, _f])  # apply assumption load
    psspy.fdns([1, 0, 0, 1, 0, 0, 99, 0])
    for t_var in range(1, 500):