資源簡介
電力系統短路電流計算的python3實現;可任意添加節點;有交互界面;

代碼片段和文件信息
import?numpy?as?np
import?math
#=============================================
g_data?=?[]??#存放發電機參數
l_data?=?[]??#存放輸電線路參數
t2_data?=?[]?????#存放雙繞組變壓器參數
t3_data?=?[]?????#存放三繞組變壓器參數
sys_data?=?[]????#存放“系統“參數
#?文本的處理、讀取函數
def?loadin(fg):??#?f:文件??g:保存參數的列表
????for?i?in?f:
????????if?i[:5]?!=?“=====“:
????????????if?i[:2]?!=?“//“:
????????????????a?=?i.split(‘‘)
????????????????for?i?in?range(len(a)):
????????????????????a[i]?=?a[i].strip()
????????????????g.append(a)
????????else:
????????????break
?#定義讀取文件內容的函數,在GUI中通過button調用
def?read_file(fileName):
????f?=?open(fileName)
??????
????loadin(fg_data)
????loadin(ft2_data)
????loadin(ft3_data)
????loadin(fl_data)????????????????????
????loadin(fsys_data)
????
????f.close()
#=================================================
note?=?dict()?#母線?名稱--節點?對應的字典類型
count?=?0????#母線節點編號
note_list?=?[]
t3_note?=?set()?#?三繞組變壓器中間節點編號記錄,后續求電壓有名值去掉該節點
line_f?=?‘‘???#?先設置line_f為空字符串?若線路中點故障?給其賦值線路的實例
#定義讀入母線(節點)名稱并標號的函數
def?bus_in(datanotenumber):
????global?count????#這里count為母線編號,必須是全局變量?-->?global?關鍵字
????if?data:??#?這里判斷是否空列表,如果“非空”才執行操作!!!
????????for?i?in?data:
????????????if?i[number]?not?in?note.keys():
????????????????note[i[number]]?=?count
????????????????count?+=?1???
????????????else:
????????????????continue
????else:
????????pass
def?t3_bus_in(datanotenumbert3_note):
????global?count????#這里count改變必須是全局變量?-->?global?關鍵字
????if?data:??#?這里判斷是否空列表,如果“非空”才執行操作!!!
????????for?i?in?data:
????????????if?i[number]?not?in?note.keys():
????????????????note[i[number]]?=?count
????????????????t3_note.add(count)
????????????????count?+=?1???
????????????else:
????????????????continue
????else:
????????pass
def?bus_IN(bus_in):
????bus_in(g_datanote2)???#?在輸入文件中注意:kV的寫法要統一?
????bus_in(t2_datanote2)
????bus_in(t2_datanote3)
????bus_in(t3_datanote2)
????bus_in(t3_datanote3)
????bus_in(t3_datanote4)
????
????t3_bus_in(t3_datanote1t3_note)?#?三繞組變壓器“中間節點”?實際并不存在
????print(“三繞組變壓器中點編號:“t3_note)
????
????bus_in(l_datanote2)
????bus_in(l_datanote3)
????bus_in(sys_datanote1)?#?“系統“所連接的節點母線
????global?note_list
????print(‘節點名稱及對應編號:‘)??#打印節點名稱及其對應編號
????for?i?in?sorted(note.items()key?=?lambda?item:item[1]):
????????????print(i)
????????????note_list.append(i)
????‘‘‘這里的bus.items()實際上是將bus轉換為可迭代對象
????這里key參數對應的lambda表達式的意思則是選取元組中的第二個元素作為比較參數
????lambda?x:y中x表示輸出參數,y表示lambda?函數的返回值,
????所以采用這種方法可以對字典的value進行排序。
????注意排序后的返回值是一個list,而原字典中的名值對被轉換為了list中的元組。‘‘‘
????#創建n*n的Y陣,n為節點數:len(note)(空矩陣,元素=0)dtype指定為復數矩陣
????global?Y???#?創建全局變量:Y陣?和?Y0陣
????global?Y0
????Y?=?np.zeros((len(note)len(note))dtype=np.complex64)
????Y0?=?np.zeros((len(note)len(note))dtype=np.complex64)
##=======================================================
S_B?=?100?#定義基準容量(100MVA)
#創建電壓等級及其對應的平均額定電壓對照表(字典形式),書本41頁
v?=?[(33.15)(66.3)(1010.5)(1515.75)(3537)(110115)(220230)(330345)(500
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????52973??2018-11-20?17:05??all_in.py
?????文件???????30311??2018-11-20?17:05??GUI.py
?????文件????????1965??2018-11-20?17:07??線路參數.txt
評論
共有 條評論