Smart_Report/CheckMainTransformer.py

162 lines
15 KiB
Python
Raw Permalink Normal View History

2025-04-17 14:15:10 +08:00
import Self_defined_functions as SDF
import math
#------------------------------------------------------------------------------------------------------------------------------------
def Check_MTF_OvrCrrnt_Time(hi_time,lo_time,delta_t,checked_preset,checked_fail_reason):
if not all(isinstance(x, (int, float)) for x in [hi_time, lo_time, delta_t]):
reason = '输入参数必须为数字类型'
checked_preset, checked_fail_reason = SDF.checkPresetFlag('低压侧b相过电流动作时限', 2, checked_preset, checked_fail_reason, FailReason=reason)
checked_preset, checked_fail_reason = SDF.checkPresetFlag('高压侧B相过电流动作时限', 2, checked_preset, checked_fail_reason, FailReason=reason)
return checked_preset, checked_fail_reason
if SDF.are_values_equal_with_tolerance(hi_time , lo_time+delta_t) and (hi_time > lo_time):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('低压侧b相过电流动作时限',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('高压侧B相过电流动作时限',1,checked_preset,checked_fail_reason)
else:
reason = '高压侧B相过流时限应较低压侧高' + str(delta_t) +'s请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('低压侧b相过电流动作时限',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('高压侧B相过电流动作时限',2,checked_preset,checked_fail_reason,FailReason=reason)
return(checked_preset,checked_fail_reason)
def Check_MTF_OvrCrrnt_LwVltg(hi_LwVltg,lo_LwVltg,hi_PT,lo_PT,checked_preset,checked_fail_reason):
if not all(isinstance(x, (int, float)) for x in [hi_LwVltg, lo_LwVltg, hi_PT, lo_PT]):
reason = '输入参数必须为数字类型'
checked_preset, checked_fail_reason = SDF.checkPresetFlag('高压侧过电流低压定值', 2, checked_preset, checked_fail_reason, FailReason=reason)
checked_preset, checked_fail_reason = SDF.checkPresetFlag('高压侧PT断线动作电压', 2, checked_preset, checked_fail_reason, FailReason=reason)
return checked_preset, checked_fail_reason
if hi_LwVltg > hi_PT:
checked_preset,checked_fail_reason = SDF.checkPresetFlag('高压侧过电流低压定值',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('高压侧PT断线动作电压',1,checked_preset,checked_fail_reason)
else:
reason = '高压侧过电流低压定值应大于高压侧PT断线动作电压定值请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('高压侧过电流低压定值',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('高压侧PT断线动作电压',2,checked_preset,checked_fail_reason,FailReason=reason)
if lo_LwVltg > lo_PT:
checked_preset,checked_fail_reason = SDF.checkPresetFlag('低压侧过电流低压定值',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('低压侧PT断线动作电压',1,checked_preset,checked_fail_reason)
else:
reason = '低压侧过电流低压定值应大于低压侧PT断线动作电压定值请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('低压侧过电流低压定值',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('低压侧PT断线动作电压',2,checked_preset,checked_fail_reason,FailReason=reason)
return(checked_preset,checked_fail_reason)
def Check_MTF_Bus_Prtct_Time(Bus_Prtct_Time,Preset,checked_preset,checked_fail_reason):
pass
# preset_time_max_dict = {key: value for key, value in Preset.items() if '时限' in key and '差动' not in key and '过励磁' not in key}
# preset_time_max = max(preset_time_max_dict.values())
# if Bus_Prtct_Time < preset_time_max:
# checked_preset['高压侧过电流低压定值'] = '校验通过'
# checked_preset['高压侧PT断线动作电压'] = '校验通过'
# else:
# checked_preset['高压侧过电流低压定值'] = '校验不通过'
# checked_preset['高压侧PT断线动作电压'] = '校验不通过'
# checked_fail_reason['高压侧过电流低压定值'] = '高压侧过电流低压定值应大于高压侧PT断线动作电压定值请检查相应定值设置。'
# checked_fail_reason['高压侧PT断线动作电压'] = '高压侧过电流低压定值应大于高压侧PT断线动作电压定值请检查相应定值设置。'
# if lo_LwVltg > lo_PT:
# checked_preset['低压侧过电流低压定值'] = '校验通过'
# checked_preset['低压侧PT断线动作电压'] = '校验通过'
# else:
# checked_preset['低压侧过电流低压定值'] = '校验不通过'
# checked_preset['低压侧PT断线动作电压'] = '校验不通过'
# checked_fail_reason['低压侧过电流低压定值'] = '低压侧过电流低压定值应大于低压侧PT断线动作电压定值请检查相应定值设置。'
# checked_fail_reason['低压侧PT断线动作电压'] = '低压侧过电流低压定值应大于低压侧PT断线动作电压定值请检查相应定值设置。'
# return(checked_preset,checked_fail_reason)
def Check_MTF_VltgDiff(preset,MainTrsfmrType,checked_preset,checked_fail_reason):
A_ratio = preset['A相比率差动动作电流']
B_ratio = preset['B相比率差动动作电流']
A_Diff = preset['A相差动速断动作电流']
B_Diff = preset['B相差动速断动作电流']
A_ZD_1 = preset['A相1段制动电流']
B_ZD_1 = preset['B相1段制动电流']
A_ZD_2 = preset['A相2段制动电流']
B_ZD_2 = preset['B相2段制动电流']
if MainTrsfmrType == 1: #主变类型1是VV、Vx、YND11、Ynv、SCOTT2是lii、li
C_ratio = preset['C相比率差动动作电流']
C_Diff = preset['C相差动速断动作电流']
C_ZD_1 = preset['C相1段制动电流']
C_ZD_2 = preset['C相2段制动电流']
if SDF.are_values_equal_with_tolerance(B_ratio, 1.732*A_ratio):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相比率差动动作电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相比率差动动作电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的比率差动电流应约为A相的1.732倍,请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相比率差动动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相比率差动动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(B_Diff, 1.732*A_Diff):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相差动速断动作电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相差动速断动作电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的差动速断动作电流应约为A相的1.732倍,请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相差动速断动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相差动速断动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(B_ZD_1, 1.732*A_ZD_1):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相1段制动电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相1段制动电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的1段制动电流应约为A相的1.732倍,请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相1段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相1段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(B_ZD_2, 1.732*A_ZD_2):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相2段制动电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相2段制动电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的2段制动电流应约为A相的1.732倍,请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相2段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相2段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(C_ratio, B_ratio) < 0.05:
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相比率差动动作电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('C相比率差动动作电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的比率差动电流应和为C相的相同请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相比率差动动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('C相比率差动动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(C_Diff, B_Diff):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相差动速断动作电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('C相差动速断动作电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的差动速断动作电流应约为A相的1.732倍,请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相差动速断动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('C相差动速断动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(C_ZD_1, B_ZD_1):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相1段制动电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('C相1段制动电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的1段制动电流应约为A相的1.732倍,请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相1段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('C相1段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(C_ZD_2, B_ZD_2):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相2段制动电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('C相2段制动电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的2段制动电流应约为A相的1.732倍,请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相2段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('C相2段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if MainTrsfmrType == 2:
if SDF.are_values_equal_with_tolerance(A_ratio, B_ratio):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相比率差动动作电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相比率差动动作电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的比率差动电流应和A相的相同请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相比率差动动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相比率差动动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(A_Diff, B_Diff):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相差动速断动作电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相差动速断动作电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的差动速断动作电流应和A相的相同请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相差动速断动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相差动速断动作电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(A_ZD_1, B_ZD_1):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相1段制动电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相1段制动电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的1段制动电流应和A相的相同请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相1段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相1段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
if SDF.are_values_equal_with_tolerance(A_ZD_2, B_ZD_2):
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相2段制动电流',1,checked_preset,checked_fail_reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相2段制动电流',1,checked_preset,checked_fail_reason)
else:
reason = 'B相的2段制动电流应约为A相的1.732倍,请检查相应定值设置。'
checked_preset,checked_fail_reason = SDF.checkPresetFlag('A相2段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)
checked_preset,checked_fail_reason = SDF.checkPresetFlag('B相2段制动电流',2,checked_preset,checked_fail_reason,FailReason=reason)