#Chapter 13
#Example 13.1
#Page 341
print('Solution to this problem can be got by theory from Section 13.2 in the textbook')
import math
#initialisation of variables
V = 13.8e3
Z_tr = complex(5)
Z_tr_eq = Z_tr / 2#since two reactances of equal value are in parallel
Z1 = complex(9.6)
Z2 = complex(6.4)
Z3 = complex(8.0)
Z4 = complex(12.8)
m = math.sqrt(3)/2 #to obtain line-to-line fault from a three-phase fault current
#At bus 5
#Max. Current
#Calculations
If_b5_max = (V/math.sqrt(3))/(Z_tr_eq + Z1 + Z2 + Z3 + Z4)
print(If_b5_max,'Maximum fault current at bus 5 in A')
#Min. Current
If_b5_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2 + Z3 + Z4)
print(If_b5_min,'Minimum fault current at bus 5 in A')
#At bus 4
#Max. Current
If_b4_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2 + Z3)
print(If_b4_max,'Maximum fault current at bus 4 in A')
#Min. Current
If_b4_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2 + Z3)
print(If_b4_min,'Minimum fault current at bus 4 in A')
#At bus 3
#Max. Current
If_b3_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2)
print(If_b3_max,'Maximum fault current at bus 3 in A')
#Min. Current
If_b3_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2)
print(If_b3_min,'Minimum fault current at bus 3 in A')
#At bus 2
#Max. Current
If_b2_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1)
print(If_b2_max,'Maximum fault current at bus 2 in A')
#Min. Current
If_b2_min = (V/math.sqrt(3)) * m / (Z_tr + Z1)
print(If_b2_min,'Minimum fault current at bus 2 in A')
#At bus 2
#Max. Current
If_b1_max = (V/math.sqrt(3)) / (Z_tr_eq)
print(If_b1_max,'Maximum fault current at bus 1 in A')
#Min. Current
If_b1_min = (V/math.sqrt(3)) * m / (Z_tr)
print(If_b1_min,'Minimum fault current at bus 1 in A')
import math
#initialisation of variables
#This problem contains many assumptions and values are taken from Figure 13.7 in page 348 after intial calculations,it is done in order to select equipment of the available rated value in the market to meet the required conditions.So only the required calculations are shown and final answer after the required changes are printlayed.
V = 13.8e3
Z_tr = complex(5)
Z_tr_eq = Z_tr / 2 #since two reactances of equal value are in parallel
Z1 = complex(9.6)
Z2 = complex(6.4)
Z3 = complex(8.0)
Z4 = complex(12.8)
m = math.sqrt(3) / 2 #to obtain line-to-line fault from a three-phase fault current
If_b5_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2 + Z3 + Z4)
If_b5_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2 + Z3 + Z4)
If_b4_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2 + Z3)
If_b4_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2 + Z3)
If_b3_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2)
If_b3_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2)
If_b2_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1)
If_b2_min = (V/math.sqrt(3)) * m / (Z_tr + Z1)
If_b1_max = (V/math.sqrt(3)) / (Z_tr_eq)
If_b1_min = (V/math.sqrt(3)) * m / (Z_tr)
#Settings for relay R4
R4_I_1_p = If_b5_min /3
print('One third of minimum fault current in A')
print(abs(R4_I_1_p))
R4_I_p = R4_I_1_p * 5 /55
print('For CT ratio 50/5 resulting relay current in A will be')
print(abs(R4_I_p))
print('Settings for relay R4')
print('CT ratio = 50:5')
print('Pick up setting in A = 5')
print('Time-dial setting = 1/2')
#Settings for relay R3
R3_I_p = If_b4_max * 5 / 50
print('The relay current of both R3 and R4 for higest fault current seen by R4')
print(abs(R3_I_p))
R4_t_op = 0.135
print('Operating time for R4 with time dial setting 1/2 in sec is')
print(R4_t_op)
t=0.3
R3_t_op = R4_t_op + t
print('Required operating time of relay R3')
print(R3_t_op)
print('Settings for relay R3')
print('CT ratio = 50:5')
print('Pick up setting in A = 5')
print('Time-dial setting = 2')
#Settings for relay R2
R2_I_p = (1.0/3) * If_b4_min * (5.0/100)
print('Pickup setting in A')
print(abs(R2_I_p))
R3_I_1_p = If_b3_max * (5.0/50) * (1.0/5)
print('Reatio of relay current to picup setting in A for max fault current through R3')
print(abs(R3_I_1_p))
R3_t_op = 0.31
R2_t_op = R3_t_op + t
print('Operating time of R2 in sec')
print(R2_t_op)
R2_I_1_p = If_b3_max * (5.0/100) * (1.0/4)
print('For backing up R3 the ratio of relay current to pickup setting of R2 in A')
print(abs(R2_I_1_p))
print('Settings for relay R2')
print('CT ratio = 100:5')
print('Pick up setting in A = 4')
print('Time-dial setting = 2.6')
#Settings for relay R1
R1_I_p = If_b3_min * (1.0/3) * (5.0/100)
#taking tap as 5.0
R2_1_I_1_op = If_b2_max * (5.0/50) * (1.0/5)
#Operating time will come to 0.33s
R1_t_op = 0.33+t
R1_1_I_1_op = If_b2_max * (5.0/100) * (1.0/5)
#Results
print('Settings for relay R1')
print('CT ratio = 100:5')
print('Pick up setting in A = 5')
print('Time-dial setting = 2.9')
import math
#initialisation of variables
l_12 = 64
l_23 = 64
l_24 = 96 #in km
l_12m = 40
l_23m = 40
l_24m = 60
z = complex(0.05 ,0.5)
Pmax = 50e6
V = 138e3
pf = 0.8
cvt = 67
#Calculations
Z_12 = z * l_12
Z_23 = z * l_23
Z_24 = z * l_24
print('The positive sequnce impedances of the three line in ohms in the order line 1-2,line 2-3,line 2-4 are')
print(Z_12)
print(Z_23)
print(Z_24)
Il_max = Pmax / (math.sqrt(3) * V)
print('Maximum load current in A')
print(Il_max)
Vn = V/ math.sqrt(3)
print('System Voltage to neutral')
print(Vn)
ratio_cvt = Vn / cvt
print('cvt ratio = 1089.1/1')
b1_factor = l_12m / ratio_cvt
Z_r12 = Z_12 * b1_factor
Z_r23 = Z_23 * b1_factor
Z_r24 = Z_24 * b1_factor
print('The impedance of the lines as seen by R12 in ohms in the order line 1-2,line 2-3,line 2-4 are')
print(Z_r12)
print(Z_r23)
print(Z_r24)
Zload = (cvt * complex(pf,math.sqrt(1-pf**2))) / (Il_max * (5.0/200))
print('Impedance of load current')
print(Zload)
zone1 = 0.8 * Z_r12
print('Setting of zone one on secondary in ohms')
print(zone1)
zone2 = 1.2 * Z_r23
print('Setting of zone two on secondary in ohms')
print(zone2)
zone3 = Z_r23 + 1.2 * Z_r24
print('Setting of zone three on secondary in ohms')
print(zone3)
import math
#initialisation of variables
V_ht = 345e3
V_lt = 34.5e3
P = 50e6
P_short_term = 60e6
#Calculations
I_ht = P_short_term / (math.sqrt(3) * V_ht)
I_lt = P_short_term / (math.sqrt(3) * V_lt)
print('Under maximum load the currents on 345-kV and 34.5-kV side of the transformer respectively in A = %.2f %.2f' %(I_ht,I_lt))
#CT ratio on the 34.5kV side 1000/5
I_r_lt = I_lt * 5 / 1000
print('Current flowing through the differential relay from 34.5-kV side = %.2f' %I_r_lt)
I_balance = 5.0
I_lt_sec_ct = I_balance / math.sqrt(3)
print('To balance the above current each of the secondary windings of the delta connected CTs should have a current(in A) of = %.2f' %I_lt_sec_ct)
ct_sec = I_ht / I_lt_sec_ct
print('CT ratios in secondary for the above currents = %.2f' %ct_sec)
I_ht_sec_ct = I_ht * 5 / 200
#Results
print('CT secondary currents for ratio 200/5 on the secondary side of 345-kV will be = %.2f' %I_ht_sec_ct)
I_line_ctr = I_ht_sec_ct * math.sqrt(3)
print('Line currents from CTs to differential relays = %.2f' %I_line_ctr)
turns_ratio = I_r_lt / I_line_ctr
print('Required turns ratio for the three auxillary CTs uses is = %.2f' %turns_ratio)