371 lines
36 KiB
Python
371 lines
36 KiB
Python
![]() |
# Ziran Gao 20240905
|
|||
|
# 智能二次运维项目中,定值计算功能
|
|||
|
#-------------2024年9月6日--------------------------------------------------------------------------------------------------------
|
|||
|
# 本功能基本逻辑是:
|
|||
|
# 1:从外部文件中读取定值单和装置基本参数。
|
|||
|
# 2:根据要校验哪些定值的合理性,进行相应的计算。
|
|||
|
# 3:将不合理的定值进行标注。
|
|||
|
# 4:目前的初步代码开发,因为定值单不是从我这里获取,读取也做不了,因此只暂时只做读取基本参数-由基本参数计算理论定值这一部分。
|
|||
|
# 5:首先进行对象的开发。分两个类:供电方式与相应装置
|
|||
|
#---------2024年9月13日-----------------------------------------------------------------------------------------------------------
|
|||
|
# 面向对象实现太复杂,回到面向过程
|
|||
|
# 主要逻辑是:首先从外界读入供电方式、运行区域和大所还是小所,根据这些信息,运行指定函数,从中excel中读取基础参数,当前分了两个excel基础参数表
|
|||
|
# 一个适用于大所,一个适用于小所,每个所中各有6个sheet,适用于6种供电方式。
|
|||
|
# 然后对每种供电方式,建立计算公式库,里面有针对6种设备的计算公式合集。
|
|||
|
# 对每个定值应该单独写函数计算,为了避免传入函数太多以及我不是所有都要校核。
|
|||
|
# 目前仅是定值计算,还没到合理性校验那里。
|
|||
|
# encoding:utf-8
|
|||
|
#---------2024年10月10日-----------------------------------------------------------------------------------------------------------
|
|||
|
# 定值计算第一稿完成
|
|||
|
# 分为读取,计算,存储三部分。
|
|||
|
# 部分计算还存在疑问,但已完成从excel中读取系统参数-程序计算-存储至数据库对应表整个功能历程。
|
|||
|
# 对每个装置各建了个表,对馈线建了三个表,分别表示0区1区2区
|
|||
|
# 之所以这么做是为了后续只计算某个区的时候方便。
|
|||
|
|
|||
|
# encoding:utf-8
|
|||
|
import pandas as pd
|
|||
|
import ImportSystemParameter as ISP
|
|||
|
import CalculateATValue as AT
|
|||
|
import CalculateFeederValue as Feeder
|
|||
|
import CalculateMainTransformer as MT
|
|||
|
import CalculateShuntValue as Shunt
|
|||
|
import Self_defined_functions
|
|||
|
import json
|
|||
|
import re
|
|||
|
|
|||
|
def read_device_preset_values(json_file_path):
|
|||
|
# 读取JSON文件
|
|||
|
with open(json_file_path, 'r', encoding='utf-8') as f:
|
|||
|
preset_data = json.load(f)
|
|||
|
device_name = preset_data['devName']
|
|||
|
if '主变' in device_name:
|
|||
|
Device = 3
|
|||
|
ImportedParameter_MainTrsfmr = pd.read_excel('牵引变压器定值整定基础参数表.xlsx',header=None)
|
|||
|
MainTrsfmrprmtr = ImportedParameter_MainTrsfmr.set_index(0)[1].to_dict()
|
|||
|
return preset_data, Device, MainTrsfmrprmtr
|
|||
|
elif '馈线' in device_name:
|
|||
|
numbers = re.findall(r'\d+\.?\d*', device_name)
|
|||
|
Device = 1
|
|||
|
try:
|
|||
|
ImportedParameter_feeder = pd.read_excel('馈线定值整定基础参数表_变电所_全并联II型.xlsx',sheet_name=numbers[0],header=None)
|
|||
|
except ValueError:
|
|||
|
raise ValueError(f"在Excel文件中找不到工作表 {numbers[0]},请检查断路器号是否正确或基础文件配置是否正确")
|
|||
|
#ImportedParameter_feeder = pd.read_excel('馈线定值整定基础参数表_变电所_全并联II型.xlsx',sheet_name=numbers[0],header=None)
|
|||
|
Feederprmtr = ImportedParameter_feeder.set_index(0)[1].to_dict()
|
|||
|
return preset_data, Device, Feederprmtr
|
|||
|
elif '测距' in device_name:
|
|||
|
GDB_name = device_name.split('方向')[0]
|
|||
|
try:
|
|||
|
ImportedParameter_feeder = pd.read_excel('故障测距装置定值整定基础参数表.xlsx',sheet_name=GDB_name,header=None)
|
|||
|
except ValueError:
|
|||
|
raise ValueError(f"在Excel文件中找不到工作表 {GDB_name},请检查断路器号是否正确或基础文件配置是否正确")
|
|||
|
Device = 2
|
|||
|
Feederprmtr = ImportedParameter_feeder.set_index(0)[1].to_dict()
|
|||
|
return preset_data, Device, Feederprmtr
|
|||
|
elif '自耦变' in device_name:
|
|||
|
Device = 4
|
|||
|
ImportedParameter_AT = pd.read_excel('AT变压器定值整定基础参数表.xlsx',header=None)
|
|||
|
ATprmtr = ImportedParameter_AT.set_index(0)[1].to_dict()
|
|||
|
return preset_data, Device, ATprmtr
|
|||
|
elif '并补' in device_name:
|
|||
|
Device = 5
|
|||
|
ImportedParameter_Shunt = pd.read_excel('并补定值整定基础参数表.xlsx',header=None)
|
|||
|
Shuntprmtr = ImportedParameter_Shunt.set_index(0)[1].to_dict()
|
|||
|
return preset_data, Device, Shuntprmtr
|
|||
|
else:
|
|||
|
raise ValueError(f"暂不支持该装置定值计算。")
|
|||
|
|
|||
|
input_json_path = "./212馈线保护测控装置_IN.json"
|
|||
|
output_json_path = input_json_path.replace('_IN.json', '_OUT.json')
|
|||
|
result = read_device_preset_values(input_json_path)
|
|||
|
#第一步:从U/I读数据,这一步需要王喜直接从界面把选择的数据读进来。这里我直接定义。
|
|||
|
preset_data = result[0]
|
|||
|
Device = result[1]
|
|||
|
if Device == 1:
|
|||
|
Feederprmtr = result[2]
|
|||
|
elif Device == 2:
|
|||
|
Feederprmtr = result[2]
|
|||
|
elif Device == 3:
|
|||
|
MainTrsfmrprmtr = result[2]
|
|||
|
elif Device == 4:
|
|||
|
ATprmtr = result[2]
|
|||
|
elif Device == 5:
|
|||
|
Shuntprmtr = result[2]
|
|||
|
#第二步,根据选择的参数计算定值,这里现在做的是选择一个装置,对所有该装置的定值进行计算。理想情况是在UI上勾选要计算哪些定值,再一一计算,但仅靠我这里无法判断输入是怎样,所以先做通过选择装置,然后计算该装置所有定值的情况。后面可以再改,我之所以把每个定值都写了一个函数就是为了避免这个情况。
|
|||
|
#Device = 1 #是什么装置?1是馈线,2是测距(测距和馈线的定值目前认为是一致的),3是主变,4是AT,5是并补,6是动力变(目前未做)
|
|||
|
if Device == 4:
|
|||
|
DiffProtect_I_AT = AT.ATTransformer_DiffProtection(1.2, ATprmtr['变压器最大励磁涌流倍数'], ATprmtr['T绕组额定电流'], ATprmtr['电流互感器变比'])
|
|||
|
Overcurrent_I_AT = AT.ATTransformer_OvrCrrntProtection(ATprmtr['T绕组额定电流'], ATprmtr['电流互感器变比'])
|
|||
|
#PresetValue_AT = {'差动速断电流':DiffProtect_I_AT[0],'比率制动差动保护动作电流':DiffProtect_I_AT[1],'比率制动差动保护1段制动电流':DiffProtect_I_AT[2],'比率制动差动保护2段制动电流':DiffProtect_I_AT[3]}
|
|||
|
for item in preset_data['dzList']:
|
|||
|
if item['dzComment'] == '差动速断|差动速断':
|
|||
|
item['accountStr'] = str(DiffProtect_I_AT[0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '比率差动|比率差动动作电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_AT[1])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '比率差动|1段制动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_AT[2])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '比率差动|2段制动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_AT[3])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '过负荷|过负荷动作电流':
|
|||
|
item['accountStr'] = str(Overcurrent_I_AT)
|
|||
|
continue
|
|||
|
with open(output_json_path, 'w', encoding='utf-8') as f:
|
|||
|
json.dump(preset_data, f, ensure_ascii=False, indent=4)
|
|||
|
|
|||
|
if Device == 5:
|
|||
|
OvrCurrntMax_I_Shunt = Shunt.ShuntCapacitor_OverCurrentMax_Current(Shuntprmtr['电流速断保护可靠系数'],Shuntprmtr['电容器装置的额定电流'])
|
|||
|
DiffVltg_V_Shunt = Shunt.ShuntCapacitor_DiffVoltage_Voltage(Shuntprmtr['差电压保护可靠系数'],Shuntprmtr['差电压互感器变比'],Shuntprmtr['电容器串联组数'],Shuntprmtr['每组电容器并联台数'],Shuntprmtr['电抗率'])
|
|||
|
DiffCurrnt_I_Shunt = Shunt.ShuntCapacitor_DiffCurrent_Current(Shuntprmtr['差电流保护可靠系数'],Shuntprmtr['电流互感器同型系数'],Shuntprmtr['电流互感器误差'],Shuntprmtr['电容器投入时的最大涌流倍数'],Shuntprmtr['电容器装置的额定电流'])
|
|||
|
OvrCurrnt_I_Shunt = Shunt.ShuntCapacitor_OverCurrent_Current(Shuntprmtr['电容器装置的额定电流'])
|
|||
|
LngTmOvrCurrnt_I_Shunt = Shunt.ShuntCapacitor_LongTimeOverCurrent_Current( Shuntprmtr['过电流系数'],Shuntprmtr['电容器装置的额定电流'])
|
|||
|
OvrVltg_V_Shunt = Shunt.ShuntCapacitor_OverVoltage_Voltage(Shuntprmtr['过电压系数'],Shuntprmtr['电抗率'],Shuntprmtr['电容器串联组数'],Shuntprmtr['单台电容器额定电压'],Shuntprmtr['差电压互感器变比'])
|
|||
|
n_CT = Shuntprmtr['电流互感器变比']
|
|||
|
PresetValue_Shunt = {'电流速断电流':OvrCurrntMax_I_Shunt,'差电压保护电压':DiffVltg_V_Shunt,'差电流保护电流':DiffCurrnt_I_Shunt,'过电流保护电流':OvrCurrnt_I_Shunt,'全电流过电流保护电流':LngTmOvrCurrnt_I_Shunt,'过电压保护电压':OvrVltg_V_Shunt}
|
|||
|
for item in preset_data['dzList']:
|
|||
|
if item['dzComment'] == '电流速断|动作电流':
|
|||
|
item['accountStr'] = str(OvrCurrntMax_I_Shunt/n_CT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '过电流|动作电流':
|
|||
|
item['accountStr'] = str(OvrCurrnt_I_Shunt/n_CT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '全电流过电流|动作电流':
|
|||
|
item['accountStr'] = str(LngTmOvrCurrnt_I_Shunt/n_CT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '差流1|动作电流':
|
|||
|
item['accountStr'] = str(DiffCurrnt_I_Shunt/n_CT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '差流2|动作电流':
|
|||
|
item['accountStr'] = str(DiffCurrnt_I_Shunt/n_CT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '过电压|动作电压':
|
|||
|
item['accountStr'] = str(OvrVltg_V_Shunt)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '差压1|动作电压':
|
|||
|
item['accountStr'] = str(DiffVltg_V_Shunt)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '差压2|动作电压':
|
|||
|
item['accountStr'] = str(DiffVltg_V_Shunt)
|
|||
|
continue
|
|||
|
with open(output_json_path, 'w', encoding='utf-8') as f:
|
|||
|
json.dump(preset_data, f, ensure_ascii=False, indent=4)
|
|||
|
#Self_defined_functions.SavePresetValuetoSQLSERVER('im_PresetValue_Shunt',PresetValue_Shunt)
|
|||
|
if Device == 3:
|
|||
|
DiffProtect_I_MT = MT.MainTransformer_DiffProtection(1.2,MainTrsfmrprmtr['高压侧额定电流'],MainTrsfmrprmtr['高压侧电流互感器变比'],MainTrsfmrprmtr['变压器最大励磁涌流倍数'])
|
|||
|
#print(DiffProtect_I_MT)
|
|||
|
ZeroSquncOvrCurrnt_I_MT = MT.MainTransformer_ZeroSequence_Overcurrent(MainTrsfmrprmtr['高压侧额定电流'],MainTrsfmrprmtr['高压侧电流互感器变比'])
|
|||
|
LowVltg_V_MT = MT.MainTransformer_LowVoltage_Voltage(MainTrsfmrprmtr['低压侧最低运行电压'],1.2,MainTrsfmrprmtr['低压侧电压互感器变比'])
|
|||
|
LowVltg_Ih_MT = MT.MainTransformer_LowVoltage_HiVoltageSideCurrent(MainTrsfmrprmtr['低压启动过电流高压侧可靠系数'],MainTrsfmrprmtr['高压侧额定电流'],MainTrsfmrprmtr['高压侧电流互感器变比'])
|
|||
|
LowVltg_Il_MT = MT.MainTransformer_LowVoltage_LowVoltageSideCurrent(MainTrsfmrprmtr['低压启动过电流低压侧可靠系数'],MainTrsfmrprmtr['低压侧额定电流'],MainTrsfmrprmtr['低压侧电流互感器变比'])
|
|||
|
LowVltg_PTV_MT = MT.MainTransformer_LowVoltage_PTVoltage(MainTrsfmrprmtr['低压侧最低运行电压'],1.2,MainTrsfmrprmtr['低压启动过电流PT断线灵敏系数'],MainTrsfmrprmtr['低压侧电压互感器变比'])
|
|||
|
LowVltg_Cffcnth_MT = MT.MainTransformer_LowVoltage_AmpCoeffiHigh(MainTrsfmrprmtr['高压侧各相最大负荷电流'],MainTrsfmrprmtr['高压侧额定电流'])
|
|||
|
LowVltg_Cffcntl_MT = MT.MainTransformer_LowVoltage_AmpCoeffiLow(MainTrsfmrprmtr['低压侧各相最大负荷电流'],MainTrsfmrprmtr['低压侧额定电流'])
|
|||
|
OvrLd_I_MT = MT.MainTransformer_Overload_Current(MainTrsfmrprmtr['高压侧额定电流'],MainTrsfmrprmtr['高压侧电流互感器变比'])
|
|||
|
#print(OvrLd_I_MT)
|
|||
|
PresetValue_MT_ZJX = {'中间相差动保护速断电流':DiffProtect_I_MT[0][1],'中间相比率制动差动保护动作电流':DiffProtect_I_MT[0][3],'中间相比率制动差动保护制动电流I段':DiffProtect_I_MT[0][5],'中间相比率制动差动保护制动电流II段':DiffProtect_I_MT[0][7],'差动保护差流越限定值':DiffProtect_I_MT[1],'零序过电流保护电流定值':ZeroSquncOvrCurrnt_I_MT,
|
|||
|
'低压启动过电流动作电压':LowVltg_V_MT,'中间相低压启动过电流高压侧动作电流':LowVltg_Ih_MT[1],'中间相低压启动过电流低压侧动作电流':LowVltg_Il_MT[1],'低压启动过电流PT断线电压定值':LowVltg_PTV_MT,'低压启动过电流高压侧放大倍数':LowVltg_Cffcnth_MT,'低压启动过电流低压侧放大倍数':LowVltg_Cffcntl_MT,'中间相过负荷I段保护动作电流':OvrLd_I_MT[1],'中间相相过负荷II段保护动作电流':OvrLd_I_MT[3]}
|
|||
|
PresetValue_MT_BX = {' 边相差动保护速断电流':DiffProtect_I_MT[0][0],'边相比率制动差动保护动作电流':DiffProtect_I_MT[0][2],'边相比率制动差动保护制动电流I段':DiffProtect_I_MT[0][4],'边相比率制动差动保护制动电流II段':DiffProtect_I_MT[0][6],'差动保护差流越限定值':DiffProtect_I_MT[1],'零序过电流保护电流定值':ZeroSquncOvrCurrnt_I_MT,
|
|||
|
'低压启动过电流动作电压':LowVltg_V_MT,'边相低压启动过电流高压侧动作电流':LowVltg_Ih_MT[0],'边相低压启动过电流低压侧动作电流':LowVltg_Il_MT[0],'低压启动过电流PT断线电压定值':LowVltg_PTV_MT,'低压启动过电流高压侧放大倍数':LowVltg_Cffcnth_MT,'低压启动过电流低压侧放大倍数':LowVltg_Cffcntl_MT,'边相过负荷I段保护动作电流':OvrLd_I_MT[0],'边相过负荷II段保护动作电流':OvrLd_I_MT[2]}
|
|||
|
#中间项定值与边相定值
|
|||
|
PresetValue_MT = {**PresetValue_MT_ZJX,**PresetValue_MT_BX}
|
|||
|
for item in preset_data['dzList']:
|
|||
|
if item['dzComment'] == 'A相差动|A 相差动速断电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'A相差动|A 相比率差动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][2])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'A相差动|A 相 1 段制动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][4])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'A相差动|A 相 2 段制动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][6])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'B相差动|B 相差动速断电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][1])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'B相差动|B 相比率差动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][3])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'B相差动|B 相 1 段制动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][5])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'B相差动|B 相 2 段制动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][7])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'C相差动|C 相差动速断电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'C相差动|C 相比率差动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][2])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'C相差动|C 相 1 段制动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][4])
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'C相差动|C 相 2 段制动电流':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[0][6])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '差流越限系数':
|
|||
|
item['accountStr'] = str(DiffProtect_I_MT[1])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '高压侧过流|高压侧 A 相过流电流':
|
|||
|
item['accountStr'] = str(LowVltg_Ih_MT[0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '高压侧过流|高压侧 B 相过流电流':
|
|||
|
item['accountStr'] = str(LowVltg_Ih_MT[1])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '高压侧过流|高压侧 C 相过流电流':
|
|||
|
item['accountStr'] = str(LowVltg_Ih_MT[0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '高压侧过电流放大|高压侧过流低压定值':
|
|||
|
item['accountStr'] = str(LowVltg_V_MT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '高压侧过电流放大|高压侧过流放大倍数':
|
|||
|
item['accountStr'] = str(LowVltg_Cffcnth_MT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '低压侧过电流|低压侧 a 相过流电流':
|
|||
|
item['accountStr'] = str(LowVltg_Il_MT[0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '低压侧过电流|低压侧 b 相过流电流':
|
|||
|
item['accountStr'] = str(LowVltg_Il_MT[0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '低压侧过电流放大|低压侧过流低压定值':
|
|||
|
item['accountStr'] = str(LowVltg_V_MT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '低压侧过电流放大|低压侧过流放大倍数':
|
|||
|
item['accountStr'] = str(LowVltg_Cffcntl_MT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '过负荷I段|A 相过负荷 I 段电流':
|
|||
|
item['accountStr'] = str(OvrLd_I_MT[0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '过负荷I段|B 相过负荷 I 段电流':
|
|||
|
item['accountStr'] = str(OvrLd_I_MT[1])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '过负荷I段|C 相过负荷 I 段电流':
|
|||
|
item['accountStr'] = str(OvrLd_I_MT[0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '过负荷II段|A 相过负荷 II 段电流':
|
|||
|
item['accountStr'] = str(OvrLd_I_MT[2])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '过负荷II段|B 相过负荷 II 段电流':
|
|||
|
item['accountStr'] = str(OvrLd_I_MT[3])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '过负荷II段|C 相过负荷 II 段电流':
|
|||
|
item['accountStr'] = str(OvrLd_I_MT[2])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '零序电流|零序过流电流':
|
|||
|
item['accountStr'] = str(ZeroSquncOvrCurrnt_I_MT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'PT断线|高压侧 PT 断线动作电压':
|
|||
|
item['accountStr'] = str(LowVltg_PTV_MT)
|
|||
|
continue
|
|||
|
if item['dzComment'] == 'PT断线|低压侧 PT 断线动作电压':
|
|||
|
item['accountStr'] = str(LowVltg_PTV_MT)
|
|||
|
continue
|
|||
|
with open(output_json_path, 'w', encoding='utf-8') as f:
|
|||
|
json.dump(preset_data, f, ensure_ascii=False, indent=4)
|
|||
|
|
|||
|
#print(PresetValue_MT)
|
|||
|
#Self_defined_functions.SavePresetValuetoSQLSERVER('im_PresetValue_MT',PresetValue_MT)
|
|||
|
if Device == 1:
|
|||
|
DistI_X_0 = Feeder.Line_ATI_zero_DistanceI_Reactance(Feederprmtr['距离I段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
DistI_R_0 = Feeder.Line_ATI_zero_DistanceI_Resistance(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['距离I段电阻值可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['负荷阻抗角'], Feederprmtr['线路阻抗角'],Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
OvrCurrnt_I_0 = Feeder.Line_AT1_zero_OverCurrent_Current(Feederprmtr['电流速断可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['分区所故障时变电所馈线最大短路电流'], Feederprmtr['电流互感器变比'],Feederprmtr['变电所馈线最大短路电流'])
|
|||
|
LowVltg_V_0 = Feeder.Line_AT1_zero_LowVoltage_Voltage(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['低压过电流电压可靠系数'], Feederprmtr['电压互感器变比'])
|
|||
|
LowVltg_I_0 = Feeder.Line_AT1_zero_LowVoltage_Current(Feederprmtr['低压过电流电流可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['低压过电流电流最小灵敏度'], Feederprmtr['解列为单线直供分区所故障时变电所馈线最小短路电流'], Feederprmtr['电流互感器变比'])
|
|||
|
Delta_Currnt_I_0 = Feeder.Line_AT1_zero_DeltaCurrent_Current(Feederprmtr['电流增量可靠系数'], Feederprmtr['线路运行最大功率电力机车的额定电流'],Feederprmtr['电流互感器变比'])
|
|||
|
for item in preset_data['dzList']:
|
|||
|
if item['dzComment'] == '距离Ⅰ段|电抗':
|
|||
|
item['accountStr'] = str(DistI_X_0)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '距离Ⅰ段|电阻':
|
|||
|
item['accountStr'] = str(DistI_R_0)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '电流速断|动作电流':
|
|||
|
item['accountStr'] = str(OvrCurrnt_I_0[0])
|
|||
|
continue
|
|||
|
if item['dzComment'] == '低压起动过电流|动作电流':
|
|||
|
item['accountStr'] = str(LowVltg_I_0)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '低压起动过电流|动作电压':
|
|||
|
item['accountStr'] = str(LowVltg_V_0)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '电流增量|动作电流':
|
|||
|
item['accountStr'] = str(Delta_Currnt_I_0)
|
|||
|
continue
|
|||
|
with open(output_json_path, 'w', encoding='utf-8') as f:
|
|||
|
json.dump(preset_data, f, ensure_ascii=False, indent=4)
|
|||
|
# DistI_X_1 = Feeder.Line_SingDirect_zero_DistanceI_Reactance(Feederprmtr['越区时距离I段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['越区侧接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# DistII_X_1 = Feeder.Line_AT2_one_DistanceII_Reactance(Feederprmtr['距离II段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'], Feederprmtr['越区侧接触网长度'])
|
|||
|
# DistI_R_1 = Feeder.Line_ATI_zero_DistanceI_Resistance(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['距离I段电阻值可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['负荷阻抗角'], Feederprmtr['线路阻抗角'],Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# DistII_R_1 = Feeder.Line_ATI_zero_DistanceI_Resistance(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['距离I段电阻值可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['负荷阻抗角'], Feederprmtr['线路阻抗角'],Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# #DistII_R_1 = Feeder.Line_AT2_one_DistanceII_Reactance(Feederprmtr['越区时距离II段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'], Feederprmtr['越区侧接触网长度'])
|
|||
|
# OvrCurrnt_I_1 = Feeder.Line_AT1_zero_OverCurrent_Current(Feederprmtr['电流速断可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['分区所故障时变电所馈线最大短路电流'], Feederprmtr['电流互感器变比'],Feederprmtr['变电所馈线最大短路电流'])
|
|||
|
# LowVltg_V_1 = Feeder.Line_AT1_zero_LowVoltage_Voltage(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['低压过电流电压可靠系数'], Feederprmtr['电压互感器变比'])
|
|||
|
# LowVltg_I_1 = Feeder.Line_AT1_zero_LowVoltage_Current(Feederprmtr['低压过电流电流可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['低压过电流电流最小灵敏度'], Feederprmtr['解列为单线直供分区所故障时变电所馈线最小短路电流'], Feederprmtr['电流互感器变比'])
|
|||
|
# Delta_Currnt_I_1 = Feeder.Line_AT1_zero_DeltaCurrent_Current(Feederprmtr['电流增量可靠系数'], Feederprmtr['线路运行最大功率电力机车的额定电流'],Feederprmtr['电流互感器变比'])
|
|||
|
# DistI_X_2 = Feeder.Line_SingDirect_zero_DistanceI_Reactance(Feederprmtr['距离I段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# DistI_R_2 = Feeder.Line_ATI_zero_DistanceI_Resistance(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['距离I段电阻值可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['负荷阻抗角'], Feederprmtr['线路阻抗角'],Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# OvrCurrnt_I_2 = Feeder.Line_AT1_zero_OverCurrent_Current(Feederprmtr['电流速断可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['分区所故障时变电所馈线最大短路电流'], Feederprmtr['电流互感器变比'],Feederprmtr['变电所馈线最大短路电流'])
|
|||
|
# LowVltg_V_2 = Feeder.Line_AT1_zero_LowVoltage_Voltage(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['低压过电流电压可靠系数'], Feederprmtr['电压互感器变比'])
|
|||
|
# LowVltg_I_2 = Feeder.Line_AT1_zero_LowVoltage_Current(Feederprmtr['低压过电流电流可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['低压过电流电流最小灵敏度'], Feederprmtr['解列为单线直供分区所故障时变电所馈线最小短路电流'], Feederprmtr['电流互感器变比'])
|
|||
|
# Delta_Currnt_I_2 = Feeder.Line_AT1_zero_DeltaCurrent_Current(Feederprmtr['电流增量可靠系数'], Feederprmtr['线路运行最大功率电力机车的额定电流'],Feederprmtr['电流互感器变比'])
|
|||
|
# PresetValue_dict_0 = {'距离I段电抗定值':DistI_X_0, '距离I段电阻定值':DistI_R_0, '过流保护电流定值':OvrCurrnt_I_0[0],'过流保护灵敏度':OvrCurrnt_I_0[1], '低压启动过电流电压定值':LowVltg_V_0, '低压启动过电流电流定值':LowVltg_I_0, '电流增量电流定值':Delta_Currnt_I_0}
|
|||
|
# PresetValue_dict_1 = {'距离I段电抗定值':DistI_X_1, '距离I段电阻定值':DistI_R_1, '距离II段电抗定值':DistII_X_1, '距离II段电阻定值':DistII_R_1, '过流保护电流定值':OvrCurrnt_I_1[0],'过流保护灵敏度':OvrCurrnt_I_1[1], '低压启动过电流电压定值':LowVltg_V_1, '低压启动过电流电流定值':LowVltg_I_1, '电流增量电流定值':Delta_Currnt_I_1}
|
|||
|
# PresetValue_dict_2 = {'距离I段电抗定值':DistI_X_2, '距离I段电阻定值':DistI_R_2, '过流保护电流定值':OvrCurrnt_I_2[0],'过流保护灵敏度':OvrCurrnt_I_2[1], '低压启动过电流电压定值':LowVltg_V_2, '低压启动过电流电流定值':LowVltg_I_2, '电流增量电流定值':Delta_Currnt_I_2}
|
|||
|
# Self_defined_functions.SavePresetValuetoSQLSERVER('im_PresetValue_Feeder_0',PresetValue_dict_0)
|
|||
|
# Self_defined_functions.SavePresetValuetoSQLSERVER('im_PresetValue_Feeder_1',PresetValue_dict_1)
|
|||
|
# Self_defined_functions.SavePresetValuetoSQLSERVER('im_PresetValue_Feeder_2',PresetValue_dict_2)
|
|||
|
if Device == 2:
|
|||
|
DistI_X_0 = Feeder.Line_ATI_zero_DistanceI_Reactance(Feederprmtr['距离I段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
DistI_R_0 = Feeder.Line_ATI_zero_DistanceI_Resistance(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['距离I段电阻值可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['负荷阻抗角'], Feederprmtr['线路阻抗角'],Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
OvrCurrnt_I_0 = Feeder.Line_AT1_zero_OverCurrent_Current(Feederprmtr['电流速断可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['分区所故障时变电所馈线最大短路电流'], Feederprmtr['电流互感器变比'],Feederprmtr['变电所馈线最大短路电流'])
|
|||
|
LowVltg_V_0 = Feeder.Line_AT1_zero_LowVoltage_Voltage(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['低压过电流电压可靠系数'], Feederprmtr['电压互感器变比'])
|
|||
|
LowVltg_I_0 = Feeder.Line_AT1_zero_LowVoltage_Current(Feederprmtr['低压过电流电流可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['低压过电流电流最小灵敏度'], Feederprmtr['解列为单线直供分区所故障时变电所馈线最小短路电流'], Feederprmtr['电流互感器变比'])
|
|||
|
Delta_Currnt_I_0 = Feeder.Line_AT1_zero_DeltaCurrent_Current(Feederprmtr['电流增量可靠系数'], Feederprmtr['线路运行最大功率电力机车的额定电流'],Feederprmtr['电流互感器变比'])
|
|||
|
for item in preset_data['dzList']:
|
|||
|
if item['dzComment'] == '阻抗启动|电抗值':
|
|||
|
item['accountStr'] = str(DistI_X_0)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '阻抗启动|电阻值':
|
|||
|
item['accountStr'] = str(DistI_R_0)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '电流增量|电流值':
|
|||
|
item['accountStr'] = str(Delta_Currnt_I_0)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '低压起动过电流|电流值':
|
|||
|
item['accountStr'] = str(LowVltg_I_0)
|
|||
|
continue
|
|||
|
if item['dzComment'] == '低压起动过电流|低压电压值':
|
|||
|
item['accountStr'] = str(LowVltg_V_0)
|
|||
|
continue
|
|||
|
with open(output_json_path, 'w', encoding='utf-8') as f:
|
|||
|
json.dump(preset_data, f, ensure_ascii=False, indent=4)
|
|||
|
# DistI_X_1 = Feeder.Line_SingDirect_zero_DistanceI_Reactance(Feederprmtr['越区时距离I段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['越区侧接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# DistII_X_1 = Feeder.Line_AT2_one_DistanceII_Reactance(Feederprmtr['距离II段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'], Feederprmtr['越区侧接触网长度'])
|
|||
|
# DistI_R_1 = Feeder.Line_ATI_zero_DistanceI_Resistance(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['距离I段电阻值可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['负荷阻抗角'], Feederprmtr['线路阻抗角'],Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# DistII_R_1 = Feeder.Line_ATI_zero_DistanceI_Resistance(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['距离I段电阻值可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['负荷阻抗角'], Feederprmtr['线路阻抗角'],Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# #DistII_R_1 = Feeder.Line_AT2_one_DistanceII_Reactance(Feederprmtr['越区时距离II段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'], Feederprmtr['越区侧接触网长度'])
|
|||
|
# OvrCurrnt_I_1 = Feeder.Line_AT1_zero_OverCurrent_Current(Feederprmtr['电流速断可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['分区所故障时变电所馈线最大短路电流'], Feederprmtr['电流互感器变比'],Feederprmtr['变电所馈线最大短路电流'])
|
|||
|
# LowVltg_V_1 = Feeder.Line_AT1_zero_LowVoltage_Voltage(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['低压过电流电压可靠系数'], Feederprmtr['电压互感器变比'])
|
|||
|
# LowVltg_I_1 = Feeder.Line_AT1_zero_LowVoltage_Current(Feederprmtr['低压过电流电流可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['低压过电流电流最小灵敏度'], Feederprmtr['解列为单线直供分区所故障时变电所馈线最小短路电流'], Feederprmtr['电流互感器变比'])
|
|||
|
# Delta_Currnt_I_1 = Feeder.Line_AT1_zero_DeltaCurrent_Current(Feederprmtr['电流增量可靠系数'], Feederprmtr['线路运行最大功率电力机车的额定电流'],Feederprmtr['电流互感器变比'])
|
|||
|
# DistI_X_2 = Feeder.Line_SingDirect_zero_DistanceI_Reactance(Feederprmtr['距离I段电抗值可靠系数'], Feederprmtr['供电线长度'], Feederprmtr['供电线单位电抗'], Feederprmtr['接触网长度'], Feederprmtr['接触网单位电抗'], Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# DistI_R_2 = Feeder.Line_ATI_zero_DistanceI_Resistance(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['距离I段电阻值可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['负荷阻抗角'], Feederprmtr['线路阻抗角'],Feederprmtr['电流互感器变比'], Feederprmtr['电压互感器变比'])
|
|||
|
# OvrCurrnt_I_2 = Feeder.Line_AT1_zero_OverCurrent_Current(Feederprmtr['电流速断可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['分区所故障时变电所馈线最大短路电流'], Feederprmtr['电流互感器变比'],Feederprmtr['变电所馈线最大短路电流'])
|
|||
|
# LowVltg_V_2 = Feeder.Line_AT1_zero_LowVoltage_Voltage(Feederprmtr['正常供电变电所T线最低电压'], Feederprmtr['低压过电流电压可靠系数'], Feederprmtr['电压互感器变比'])
|
|||
|
# LowVltg_I_2 = Feeder.Line_AT1_zero_LowVoltage_Current(Feederprmtr['低压过电流电流可靠系数'], Feederprmtr['正常供电变电所馈线最大负荷电流'], Feederprmtr['低压过电流电流最小灵敏度'], Feederprmtr['解列为单线直供分区所故障时变电所馈线最小短路电流'], Feederprmtr['电流互感器变比'])
|
|||
|
# Delta_Currnt_I_2 = Feeder.Line_AT1_zero_DeltaCurrent_Current(Feederprmtr['电流增量可靠系数'], Feederprmtr['线路运行最大功率电力机车的额定电流'],Feederprmtr['电流互感器变比'])
|
|||
|
# PresetValue_dict_0 = {'距离I段电抗定值':DistI_X_0, '距离I段电阻定值':DistI_R_0, '过流保护电流定值':OvrCurrnt_I_0[0],'过流保护灵敏度':OvrCurrnt_I_0[1], '低压启动过电流电压定值':LowVltg_V_0, '低压启动过电流电流定值':LowVltg_I_0, '电流增量电流定值':Delta_Currnt_I_0}
|
|||
|
# PresetValue_dict_1 = {'距离I段电抗定值':DistI_X_1, '距离I段电阻定值':DistI_R_1, '距离II段电抗定值':DistII_X_1, '距离II段电阻定值':DistII_R_1, '过流保护电流定值':OvrCurrnt_I_1[0],'过流保护灵敏度':OvrCurrnt_I_1[1], '低压启动过电流电压定值':LowVltg_V_1, '低压启动过电流电流定值':LowVltg_I_1, '电流增量电流定值':Delta_Currnt_I_1}
|
|||
|
# PresetValue_dict_2 = {'距离I段电抗定值':DistI_X_2, '距离I段电阻定值':DistI_R_2, '过流保护电流定值':OvrCurrnt_I_2[0],'过流保护灵敏度':OvrCurrnt_I_2[1], '低压启动过电流电压定值':LowVltg_V_2, '低压启动过电流电流定值':LowVltg_I_2, '电流增量电流定值':Delta_Currnt_I_2}
|
|||
|
# Self_defined_functions.SavePresetValuetoSQLSERVER('im_PresetValue_Feeder_0',PresetValue_dict_0)
|
|||
|
# Self_defined_functions.SavePresetValuetoSQLSERVER('im_PresetValue_Feeder_1',PresetValue_dict_1)
|
|||
|
# Self_defined_functions.SavePresetValuetoSQLSERVER('im_PresetValue_Feeder_2',PresetValue_dict_2)
|
|||
|
|
|||
|
|
|||
|
|