{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Chapter 13 : System Protection"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Example 13.1, Page No 341"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Chapter 13\n",
"#Example 13.1\n",
"#Page 341\n",
"print('Solution to this problem can be got by theory from Section 13.2 in the textbook')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Solution to this problem can be got by theory from Section 13.2 in the textbook\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Example 13.2, Page No 355"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import math\n",
"#initialisation of variables\n",
"V = 13.8e3\n",
"Z_tr = complex(5)\n",
"Z_tr_eq = Z_tr / 2#since two reactances of equal value are in parallel\n",
"Z1 = complex(9.6)\n",
"Z2 = complex(6.4)\n",
"Z3 = complex(8.0)\n",
"Z4 = complex(12.8)\n",
"m = math.sqrt(3)/2\t\t\t#to obtain line-to-line fault from a three-phase fault current\n",
"#At bus 5\n",
"#Max. Current\n",
"\n",
"#Calculations\n",
"If_b5_max = (V/math.sqrt(3))/(Z_tr_eq + Z1 + Z2 + Z3 + Z4)\n",
"print(If_b5_max,'Maximum fault current at bus 5 in A')\n",
"#Min. Current\n",
"If_b5_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2 + Z3 + Z4)\n",
"print(If_b5_min,'Minimum fault current at bus 5 in A')\n",
"#At bus 4\n",
"#Max. Current\n",
"If_b4_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2 + Z3)\n",
"print(If_b4_max,'Maximum fault current at bus 4 in A')\n",
"#Min. Current\n",
"If_b4_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2 + Z3)\n",
"print(If_b4_min,'Minimum fault current at bus 4 in A')\n",
"#At bus 3\n",
"#Max. Current\n",
"If_b3_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2)\n",
"print(If_b3_max,'Maximum fault current at bus 3 in A')\n",
"#Min. Current\n",
"If_b3_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2)\n",
"print(If_b3_min,'Minimum fault current at bus 3 in A')\n",
"#At bus 2\n",
"#Max. Current\n",
"If_b2_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1)\n",
"print(If_b2_max,'Maximum fault current at bus 2 in A')\n",
"#Min. Current\n",
"If_b2_min = (V/math.sqrt(3)) * m / (Z_tr + Z1)\n",
"print(If_b2_min,'Minimum fault current at bus 2 in A')\n",
"#At bus 2\n",
"#Max. Current\n",
"If_b1_max = (V/math.sqrt(3)) / (Z_tr_eq)\n",
"print(If_b1_max,'Maximum fault current at bus 1 in A')\n",
"#Min. Current\n",
"If_b1_min = (V/math.sqrt(3)) * m / (Z_tr)\n",
"print(If_b1_min,'Minimum fault current at bus 1 in A')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"((202.73368231086098+0j), 'Maximum fault current at bus 5 in A')\n",
"((165.07177033492823+0j), 'Minimum fault current at bus 5 in A')\n",
"((300.657876030824+0j), 'Maximum fault current at bus 4 in A')\n",
"((237.93103448275863+0j), 'Minimum fault current at bus 4 in A')\n",
"((430.6720926928019+0j), 'Maximum fault current at bus 3 in A')\n",
"((328.57142857142856+0j), 'Minimum fault current at bus 3 in A')\n",
"((658.4655962658543+0j), 'Maximum fault current at bus 2 in A')\n",
"((472.60273972602744+0j), 'Minimum fault current at bus 2 in A')\n",
"((3186.9734859267346+0j), 'Maximum fault current at bus 1 in A')\n",
"((1380+0j), 'Minimum fault current at bus 1 in A')\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Example 13.3, Page No 357"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import math\n",
"#initialisation of variables\n",
"#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.\n",
"V = 13.8e3\n",
"Z_tr = complex(5)\n",
"Z_tr_eq = Z_tr / 2\t\t#since two reactances of equal value are in parallel\n",
"Z1 = complex(9.6)\n",
"Z2 = complex(6.4)\n",
"Z3 = complex(8.0)\n",
"Z4 = complex(12.8)\n",
"m = math.sqrt(3) / 2\t\t#to obtain line-to-line fault from a three-phase fault current\n",
"If_b5_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2 + Z3 + Z4)\n",
"If_b5_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2 + Z3 + Z4)\n",
"If_b4_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2 + Z3)\n",
"If_b4_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2 + Z3)\n",
"If_b3_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1 + Z2)\n",
"If_b3_min = (V/math.sqrt(3)) * m / (Z_tr + Z1 + Z2)\n",
"If_b2_max = (V/math.sqrt(3)) / (Z_tr_eq + Z1)\n",
"If_b2_min = (V/math.sqrt(3)) * m / (Z_tr + Z1)\n",
"If_b1_max = (V/math.sqrt(3)) / (Z_tr_eq)\n",
"If_b1_min = (V/math.sqrt(3)) * m / (Z_tr)\n",
"#Settings for relay R4\n",
"R4_I_1_p = If_b5_min /3\n",
"print('One third of minimum fault current in A')\n",
"print(abs(R4_I_1_p))\n",
"R4_I_p = R4_I_1_p * 5 /55\n",
"print('For CT ratio 50/5 resulting relay current in A will be')\n",
"print(abs(R4_I_p))\n",
"print('Settings for relay R4')\n",
"print('CT ratio = 50:5')\n",
"print('Pick up setting in A = 5')\n",
"print('Time-dial setting = 1/2')\n",
"#Settings for relay R3\n",
"R3_I_p = If_b4_max * 5 / 50\n",
"print('The relay current of both R3 and R4 for higest fault current seen by R4')\n",
"print(abs(R3_I_p))\n",
"R4_t_op = 0.135\n",
"print('Operating time for R4 with time dial setting 1/2 in sec is')\n",
"print(R4_t_op)\n",
"t=0.3\n",
"R3_t_op = R4_t_op + t\n",
"print('Required operating time of relay R3')\n",
"print(R3_t_op)\n",
"print('Settings for relay R3')\n",
"print('CT ratio = 50:5')\n",
"print('Pick up setting in A = 5')\n",
"print('Time-dial setting = 2')\n",
"#Settings for relay R2\n",
"R2_I_p = (1.0/3) * If_b4_min * (5.0/100)\n",
"print('Pickup setting in A')\n",
"print(abs(R2_I_p))\n",
"R3_I_1_p = If_b3_max * (5.0/50) * (1.0/5)\n",
"print('Reatio of relay current to picup setting in A for max fault current through R3')\n",
"print(abs(R3_I_1_p))\n",
"R3_t_op = 0.31\n",
"R2_t_op = R3_t_op + t\n",
"print('Operating time of R2 in sec')\n",
"print(R2_t_op)\n",
"R2_I_1_p = If_b3_max * (5.0/100) * (1.0/4)\n",
"print('For backing up R3 the ratio of relay current to pickup setting of R2 in A')\n",
"print(abs(R2_I_1_p))\n",
"print('Settings for relay R2')\n",
"print('CT ratio = 100:5')\n",
"print('Pick up setting in A = 4')\n",
"print('Time-dial setting = 2.6')\n",
"#Settings for relay R1\n",
"R1_I_p = If_b3_min * (1.0/3) * (5.0/100)\n",
"#taking tap as 5.0\n",
"R2_1_I_1_op = If_b2_max * (5.0/50) * (1.0/5)\n",
"#Operating time will come to 0.33s\n",
"R1_t_op = 0.33+t\n",
"R1_1_I_1_op = If_b2_max * (5.0/100) * (1.0/5)\n",
"\n",
"#Results\n",
"print('Settings for relay R1')\n",
"print('CT ratio = 100:5')\n",
"print('Pick up setting in A = 5')\n",
"print('Time-dial setting = 2.9')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"One third of minimum fault current in A\n",
"55.023923445\n",
"For CT ratio 50/5 resulting relay current in A will be\n",
"5.00217485863\n",
"Settings for relay R4\n",
"CT ratio = 50:5\n",
"Pick up setting in A = 5\n",
"Time-dial setting = 1/2\n",
"The relay current of both R3 and R4 for higest fault current seen by R4\n",
"30.0657876031\n",
"Operating time for R4 with time dial setting 1/2 in sec is\n",
"0.135\n",
"Required operating time of relay R3\n",
"0.435\n",
"Settings for relay R3\n",
"CT ratio = 50:5\n",
"Pick up setting in A = 5\n",
"Time-dial setting = 2\n",
"Pickup setting in A\n",
"3.96551724138\n",
"Reatio of relay current to picup setting in A for max fault current through R3\n",
"8.61344185386\n",
"Operating time of R2 in sec\n",
"0.61\n",
"For backing up R3 the ratio of relay current to pickup setting of R2 in A\n",
"5.38340115866\n",
"Settings for relay R2\n",
"CT ratio = 100:5\n",
"Pick up setting in A = 4\n",
"Time-dial setting = 2.6\n",
"Settings for relay R1\n",
"CT ratio = 100:5\n",
"Pick up setting in A = 5\n",
"Time-dial setting = 2.9\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Example 13.4 Page No 363"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import math\n",
"#initialisation of variables\n",
"l_12 = 64\n",
"l_23 = 64\n",
"l_24 = 96\t\t#in km\n",
"l_12m = 40\n",
"l_23m = 40\n",
"l_24m = 60\n",
"z = complex(0.05 ,0.5)\n",
"Pmax = 50e6\n",
"V = 138e3\n",
"pf = 0.8\n",
"cvt = 67\n",
"\n",
"#Calculations\n",
"Z_12 = z * l_12\n",
"Z_23 = z * l_23\n",
"Z_24 = z * l_24\n",
"print('The positive sequnce impedances of the three line in ohms in the order line 1-2,line 2-3,line 2-4 are')\n",
"print(Z_12)\n",
"print(Z_23)\n",
"print(Z_24)\n",
"Il_max = Pmax / (math.sqrt(3) * V)\n",
"print('Maximum load current in A')\n",
"print(Il_max)\n",
"Vn = V/ math.sqrt(3)\n",
"print('System Voltage to neutral')\n",
"print(Vn)\n",
"ratio_cvt = Vn / cvt\n",
"print('cvt ratio = 1089.1/1')\n",
"b1_factor = l_12m / ratio_cvt\n",
"Z_r12 = Z_12 * b1_factor\n",
"Z_r23 = Z_23 * b1_factor\n",
"Z_r24 = Z_24 * b1_factor\n",
"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')\n",
"print(Z_r12)\n",
"print(Z_r23)\n",
"print(Z_r24)\n",
"Zload = (cvt * complex(pf,math.sqrt(1-pf**2))) / (Il_max * (5.0/200))\n",
"print('Impedance of load current')\n",
"print(Zload)\n",
"zone1 = 0.8 * Z_r12\n",
"print('Setting of zone one on secondary in ohms')\n",
"print(zone1)\n",
"zone2 = 1.2 * Z_r23\n",
"print('Setting of zone two on secondary in ohms')\n",
"print(zone2)\n",
"zone3 = Z_r23 + 1.2 * Z_r24\n",
"print('Setting of zone three on secondary in ohms')\n",
"print(zone3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"The positive sequnce impedances of the three line in ohms in the order line 1-2,line 2-3,line 2-4 are\n",
"(3.2+32j)\n",
"(3.2+32j)\n",
"(4.8+48j)\n",
"Maximum load current in A\n",
"209.184880141\n",
"System Voltage to neutral\n",
"79674.3371482\n",
"cvt ratio = 1089.1/1\n",
"The impedance of the lines as seen by R12 in ohms in the order line 1-2,line 2-3,line 2-4 are\n",
"(0.107638171925+1.07638171925j)\n",
"(0.107638171925+1.07638171925j)\n",
"(0.161457257888+1.61457257888j)\n",
"Impedance of load current\n",
"(10.2493067307+7.68698004806j)\n",
"Setting of zone one on secondary in ohms\n",
"(0.0861105375404+0.861105375404j)\n",
"Setting of zone two on secondary in ohms\n",
"(0.129165806311+1.29165806311j)\n",
"Setting of zone three on secondary in ohms\n",
"(0.301386881391+3.01386881391j)\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Example 13.5, Page No 368"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import math\n",
"#initialisation of variables\n",
"V_ht = 345e3\n",
"V_lt = 34.5e3\n",
"P = 50e6\n",
"P_short_term = 60e6\n",
"\n",
"#Calculations\n",
"I_ht = P_short_term / (math.sqrt(3) * V_ht)\n",
"I_lt = P_short_term / (math.sqrt(3) * V_lt)\n",
"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))\n",
"#CT ratio on the 34.5kV side 1000/5\n",
"I_r_lt = I_lt * 5 / 1000\n",
"print('Current flowing through the differential relay from 34.5-kV side = %.2f' %I_r_lt)\n",
"I_balance = 5.0\n",
"I_lt_sec_ct = I_balance / math.sqrt(3)\n",
"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)\n",
"ct_sec = I_ht / I_lt_sec_ct\n",
"print('CT ratios in secondary for the above currents = %.2f' %ct_sec)\n",
"I_ht_sec_ct = I_ht * 5 / 200\n",
"\n",
"#Results\n",
"print('CT secondary currents for ratio 200/5 on the secondary side of 345-kV will be = %.2f' %I_ht_sec_ct)\n",
"I_line_ctr = I_ht_sec_ct * math.sqrt(3)\n",
"print('Line currents from CTs to differential relays = %.2f' %I_line_ctr)\n",
"turns_ratio = I_r_lt / I_line_ctr\n",
"print('Required turns ratio for the three auxillary CTs uses is = %.2f' %turns_ratio)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Under maximum load the currents on 345-kV and 34.5-kV side of the transformer respectively in A = 100.41 1004.09\n",
"Current flowing through the differential relay from 34.5-kV side = 5.02\n",
"To balance the above current each of the secondary windings of the delta connected CTs should have a current(in A) of = 2.89\n",
"CT ratios in secondary for the above currents = 34.78\n",
"CT secondary currents for ratio 200/5 on the secondary side of 345-kV will be = 2.51\n",
"Line currents from CTs to differential relays = 4.35\n",
"Required turns ratio for the three auxillary CTs uses is = 1.15\n"
]
}
],
"prompt_number": 5
}
],
"metadata": {}
}
]
}