Smart_Report/CheckMainTransformer.py
2025-04-17 14:15:10 +08:00

162 lines
15 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)