1 #NetworkFile = r"C:\Users\J15773\Documents\GTDosier\PSENdocs\Victoria ALL - EFICAS PSEN\Data\2030Conv_HFP2.sav"
\r
2 #PSSE_PATH = "C:/Program Files/PTI/PSSE33/PSSBIN" #emplacement de PSSE
\r
4 def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH):
\r
11 sys.path.append(PSSE_PATH)
\r
12 os.environ['PATH'] += ';' + PSSE_PATH + ';'
\r
17 ###initialization PSSE
\r
18 psspy.psseinit(10000)
\r
19 _i=psspy.getdefaultint()
\r
20 _f=psspy.getdefaultreal()
\r
21 _s=psspy.getdefaultchar()
\r
24 # Silent execution of PSSe
\r
25 islct=6 # 6=no output; 1=standard
\r
26 psspy.progress_output(islct)
\r
29 psspy.case(NetworkFile)
\r
33 flag = 1 #all in service loads/generators (4 all loads/generators)
\r
37 ierr,iarray = psspy.aloadint(sid,flag,string)
\r
39 string = ['NAME','ID','EXNAME']
\r
40 ierr,carray = psspy.aloadchar(sid,flag,string)
\r
42 LoadDico = {} # [Bus name, load ID, extended bus name, bus number]
\r
43 for i in range(len(iarray[0])):
\r
44 idname = "Lo" + str(int(carray[1][i]))
\r
45 loadname = carray[0][i].strip()+ "__" + idname
\r
46 loadname = loadname.replace(" ","_")
\r
47 loadname = loadname.replace(".","_")
\r
48 loadname = loadname.replace("&","and")
\r
51 loadname="_" + loadname
\r
54 LoadDico[loadname]= {}
\r
55 LoadDico[loadname]['BusName'] = carray[0][i].strip()
\r
56 LoadDico[loadname]['ID'] = carray[1][i]
\r
57 LoadDico[loadname]['BusExName'] =carray[2][i]
\r
58 LoadDico[loadname]['BusNum']=iarray[0][i]
\r
62 flag = 1 #all in service loads/generators (4 all loads/generators)
\r
65 ierr,iarray = psspy.amachint(sid,flag,string)
\r
67 string = ['NAME','ID','EXNAME']
\r
68 ierr,carray = psspy.amachchar(sid,flag,string)
\r
70 MachineDico = {} # [Bus name, machine ID, extended bus name, bus number]
\r
71 for i in range(len(iarray[0])):
\r
72 idname = "Gr" + str(int(carray[1][i]))
\r
73 machinename = carray[0][i].strip()+ "__" + idname
\r
74 machinename = machinename.replace(" ","_")
\r
75 machinename = machinename.replace(".","_")
\r
76 machinename = machinename.replace("&","and")
\r
79 machinename="_" + machinename
\r
82 MachineDico[machinename]={}
\r
83 MachineDico[machinename]['NAME'] = carray[0][i].strip()
\r
84 MachineDico[machinename]['ID'] = carray[1][i]
\r
85 MachineDico[machinename]['EXNAME'] =carray[2][i]
\r
86 MachineDico[machinename]['NUMBER']=iarray[0][i]
\r
92 flag = 2 #6 for two-winding transfos
\r
93 entry = 1 #each branch once, not both directions
\r
94 string = ['FROMNUMBER','TONUMBER']
\r
95 ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)
\r
96 string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']
\r
97 ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)
\r
99 LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]
\r
100 for i in range(len(iarray[0])):
\r
101 idname = carray[4][i]
\r
103 idname = idname.replace('@','Br')
\r
105 idname = 'Li' + str(int(idname))
\r
106 linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname
\r
107 linename = linename.replace(" ","_")
\r
108 linename = linename.replace(".","_")
\r
109 linename = linename.replace("&","and")
\r
112 linename="_" + linename
\r
115 LineDico[linename]={}
\r
116 LineDico[linename]['FROMNAME']=carray[0][i].strip()
\r
117 LineDico[linename]['TONAME']=carray[1][i].strip()
\r
118 LineDico[linename]['ID']=carray[4][i]
\r
119 LineDico[linename]['FROMEXNAME']=carray[2][i]
\r
120 LineDico[linename]['TOEXNAME']=carray[3][i]
\r
121 LineDico[linename]['FROMNUMBER']=iarray[0][i]
\r
122 LineDico[linename]['TONUMBER']=iarray[1][i]
\r
128 flag = 6 #two-winding transfos
\r
129 entry = 1 #each branch once, not both directions
\r
130 string = ['FROMNUMBER','TONUMBER']
\r
131 ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)
\r
132 string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']
\r
133 ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)
\r
135 TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]
\r
136 for i in range(len(iarray[0])):
\r
137 idname = 'Tr' + str(int(carray[4][i]))
\r
138 tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname
\r
139 tfoname = tfoname.replace(" ","_")
\r
140 tfoname = tfoname.replace(".","_")
\r
141 tfoname = tfoname.replace("&","and")
\r
144 tfoname="_" + tfoname
\r
147 TfoDico[tfoname]={}
\r
148 TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()
\r
149 TfoDico[tfoname]['TONAME']=carray[1][i].strip()
\r
150 TfoDico[tfoname]['ID']=carray[4][i]
\r
151 TfoDico[tfoname]['FROMEXNAME']=carray[2][i]
\r
152 TfoDico[tfoname]['TOEXNAME']=carray[3][i]
\r
153 TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]
\r
154 TfoDico[tfoname]['TONUMBER']=iarray[1][i]
\r
156 return MachineDico, LoadDico, LineDico, TfoDico
\r
159 #MachineDico, LoadDico, LineDico, TfoDico = ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH)
\r
162 def ExtractGeneratorLoadLineandTransfoDico2(NetworkFile,PSSE_PATH):
\r
163 MachineDico={'M1':'M1','M2':'M2','M3':'M3','M4':'M4','B6_BUS13__1':'AZ','CSPRING__1':'DD','GT12B__1':'ER','BSTMB__1':'JJ'}
\r
164 LoadDico={'C1':'C1','C2':'C2','C3':'C3','C4':'C4'}
\r
165 LineDico={'L1':'L1','L2':'L2','L3':'L3','L4':'L4'}
\r
166 TfoDico={'T1':'T1','T2':'T2','T3':'T3','T4':'T4'}
\r
167 return MachineDico, LoadDico, LineDico, TfoDico
\r