资源简介
电力系统短路电流计算的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
评论
共有 条评论