-
大小: 18KB文件類型: .zip金幣: 2下載: 1 次發(fā)布日期: 2021-10-22
- 語言: Python
- 標(biāo)簽: 電力系統(tǒng)??短路計算??
資源簡介
電力系統(tǒng)短路電流計算的python3實現(xiàn);可任意添加節(jié)點;有交互界面;

代碼片段和文件信息
import?numpy?as?np
import?math
#=============================================
g_data?=?[]??#存放發(fā)電機參數(shù)
l_data?=?[]??#存放輸電線路參數(shù)
t2_data?=?[]?????#存放雙繞組變壓器參數(shù)
t3_data?=?[]?????#存放三繞組變壓器參數(shù)
sys_data?=?[]????#存放“系統(tǒng)“參數(shù)
#?文本的處理、讀取函數(shù)
def?loadin(fg):??#?f:文件??g:保存參數(shù)的列表
????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
?#定義讀取文件內(nèi)容的函數(shù),在GUI中通過button調(diào)用
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()?#母線?名稱--節(jié)點?對應(yīng)的字典類型
count?=?0????#母線節(jié)點編號
note_list?=?[]
t3_note?=?set()?#?三繞組變壓器中間節(jié)點編號記錄,后續(xù)求電壓有名值去掉該節(jié)點
line_f?=?‘‘???#?先設(shè)置line_f為空字符串?若線路中點故障?給其賦值線路的實例
#定義讀入母線(節(jié)點)名稱并標(biāo)號的函數(shù)
def?bus_in(datanotenumber):
????global?count????#這里count為母線編號,必須是全局變量?-->?global?關(guān)鍵字
????if?data:??#?這里判斷是否空列表,如果“非空”才執(zhí)行操作!!!
????????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?關(guān)鍵字
????if?data:??#?這里判斷是否空列表,如果“非空”才執(zhí)行操作!!!
????????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的寫法要統(tǒng)一?
????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)?#?三繞組變壓器“中間節(jié)點”?實際并不存在
????print(“三繞組變壓器中點編號:“t3_note)
????
????bus_in(l_datanote2)
????bus_in(l_datanote3)
????bus_in(sys_datanote1)?#?“系統(tǒng)“所連接的節(jié)點母線
????global?note_list
????print(‘節(jié)點名稱及對應(yīng)編號:‘)??#打印節(jié)點名稱及其對應(yīng)編號
????for?i?in?sorted(note.items()key?=?lambda?item:item[1]):
????????????print(i)
????????????note_list.append(i)
????‘‘‘這里的bus.items()實際上是將bus轉(zhuǎn)換為可迭代對象
????這里key參數(shù)對應(yīng)的lambda表達(dá)式的意思則是選取元組中的第二個元素作為比較參數(shù)
????lambda?x:y中x表示輸出參數(shù),y表示lambda?函數(shù)的返回值,
????所以采用這種方法可以對字典的value進(jìn)行排序。
????注意排序后的返回值是一個list,而原字典中的名值對被轉(zhuǎn)換為了list中的元組。‘‘‘
????#創(chuàng)建n*n的Y陣,n為節(jié)點數(shù):len(note)(空矩陣,元素=0)dtype指定為復(fù)數(shù)矩陣
????global?Y???#?創(chuàng)建全局變量: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?#定義基準(zhǔn)容量(100MVA)
#創(chuàng)建電壓等級及其對應(yīng)的平均額定電壓對照表(字典形式),書本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??線路參數(shù).txt
評論
共有 條評論