L = 250.0 #Span(m)
d = 1.1*10**-2 #Conductor diameter(m)
w = 0.650*9.81 #Conductor weight(N/m)
bl = 7000.0 #Breaking load(kg)
sf = 2 #Safety factor
P_w_2 = 350.0 #Wind pressure(N/m^2) for case(ii)
P_w_3 = 400.0 #Wind pressure(N/m^2) for case(iii)
t_3 = 10.0**-2 #Thickness of ice covering(m) for case(iii)
w_ice = 915.0 #Ice weight(kg/m^3)
import math
T_0 = (bl/sf)*9.81 #Allowable tension(N)
S_1 = (T_0/w)*(math.cosh(w*L/(2*T_0))-1) #Sag(m)
S_1_1 = (w*L**2)/(8*T_0) #Sag using parabolic equation(m)
F_w_2 = P_w_2 * d #Wind force(N/m)
w_t_2 = (w**2 + F_w_2**2)**0.5 #Total force on conductor(N/m)
S_2 = (T_0/w_t_2)*(math.cosh(w_t_2*L/(2*T_0))-1) #Sag(m)
S_2_2 = w_t_2*L**2/(8*T_0) #Sag using parabolic equation(m)
alpha_2 = math.atan(F_w_2/w) #w_t inclined vertical angle(radians)
S_v_2 = S_2 * math.cos(alpha_2) #Vertical component of sag(m)
D_3 = d + 2*t_3 #Diameter of conductor with ice(m)
F_w_3 = P_w_3 * D_3 #Wind force(N/m)
w_ice_3 = (math.pi/4)*(D_3**2 - d**2)*w_ice*9.81 #Weight of ice(N/m)
w_t_3 = ((w+w_ice_3)**2 + F_w_3**2)**0.5 #Total force on conductor(N/m)
S_3 = (T_0/w_t_3)*(math.cosh(w_t_3*L/(2*T_0))-1) #Sag(m)
S_3_3 = w_t_3*L**2/(8*T_0) #Sag using parabolic equation(m)
alpha_3 = math.atan(F_w_3/(w+w_ice_3)) #w_t inclined vertical angle(radians)
S_v_3 = S_3 * math.cos(alpha_3) #Vertical component of sag(m)
print('Case(i) :')
print('Sag using catenary equation = %.4f m ' %S_1)
print('Sag using parabolic equation = %.4f m \n' %S_1_1)
print('Case(ii) :')
print('Sag using catenary equation = %.4f m ' %S_2)
print('Sag using parabolic equation = %.4f m ' %S_2_2)
print('Vertical component of sag = %.2f m \n' %S_v_2)
print('Case(iii) :')
print('Sag using catenary equation = %.4f m ' %S_3)
print('Sag using parabolic equation = %.4f m ' %S_3_3)
print('Vertical component of sag = %.3f m \n' %S_v_3)
w = 0.85 #Weight of overhead line(kg/m)
T_0 = 3.5*10**4 #Maximum allowable tension(N)
L_1 = 160.0 #Span(m) for case(i)
L_2 = 200.0 #Span(m) for case(ii)
L_3 = 250.0 #Span(m) for case(iii)
L_4 = 275.0 #Span(m) for case(iv)
g_c = 7.1 #Minimum ground clearance(m)
L_S = 1.5 #Length of suspension insulator string
w1 = w * 9.81 #Weight(N/m)
S_1 = w1*L_1**2/(8*T_0) #Sag(m)
H_1 = g_c + S_1 + L_S #Height of lowest cross-arm(m)
S_2 = w1*L_2**2/(8*T_0) #Sag(m)
H_2 = g_c + S_2 + L_S #Height of lowest cross-arm(m)
S_3 = w1*L_3**2/(8*T_0) #Sag(m)
H_3 = g_c + S_3 + L_S #Height of lowest cross-arm(m)
S_4 = w1*L_4**2/(8*T_0) #Sag(m)
H_4 = g_c + S_4 + L_S #Height of lowest cross-arm(m)
print('Span in meters\t %d\t %d\t %d\t %d' %(L_1,L_2,L_3,L_4))
print('Sag in meters\t %.3f\t %.3f\t %.3f\t %.3f' %(S_1,S_2,S_3,S_4))
print('Height of lowest cross-arm in meters\t %.3f\t %.3f\t %.3f\t %.3f' %(H_1,H_2,H_3,H_4))
print('\nNOTE : ERROR : For finding height of lowest cross arm the length of insulation string is not considered in textbook calculation')
print('although it is mentioned in formula. Since length of insulation string is taken here there is a difference in answers from that of given in textbook')
w = 0.63 #Weight of conductor(kg/m)
T_0 = 1350.0 #Maximum allowable load(kg)
h_1 = 20.0 #Height of first tower(m)
h_2 = 15.0 #Height of second tower(m)
L = 240.0 #Span(m)
h = h_1 - h_2 #Difference in levels of towers(m)
L_1 = (L/2)+(T_0*h/(w*L)) #Horizontal distance from higher support(m)
L_2 = (L/2)-(T_0*h/(w*L)) #Horizontal distance from lower support(m)
S_1 = w*L_1**2/(2*T_0) #Sag from upper support(m)
S_2 = w*L_2**2/(2*T_0) #Sag from lower support(m)
clearance = (h_1 - S_1) #Minimum clearance(m)
print('Minimum clearance between a line conductor & water surface = %.3f m' %clearance)
print('Sag from upper support = %.3f m' %S_1)
n = 3 #Number of discs
m = 0.1 #capacitance of each link pin to self capacitance
V = 33.0 #Voltage(kV)
a_1 = 1
a_2 = (1 + m)*a_1
a_3 = m*(a_1 + a_2) + a_2
v_1 = V/(a_1 + a_2 + a_3) #Voltage across top unit(kV)
v_2 = a_2 * v_1 #Voltage across middle unit(kV)
v_3 = a_3 * v_1 #Voltage across bottom unit(kV)
s_v_1 = (v_1/V)*100 #Voltage across top unit to string voltage(%)
s_v_2 = (v_2/V)*100 #Voltage across middle unit to string voltage(%)
s_v_3 = (v_3/V)*100 #Voltage across bottom unit to string voltage(%)
efficiency = V*100/(3*v_3) #String efficiency(%)
print('Case(i) :')
print('Voltage across top unit , v_1 = %.3f kV' %v_1)
print('Voltage across middle unit , v_2 = %.3f kV' %v_2)
print('Voltage across bottom unit , v_3 = %.3f kV' %v_3)
print('Voltage across top unit as a percentage of string voltage , v_1/V = %.1f percent' %s_v_1)
print('Voltage across middle unit as a percentage of string voltage , v_2/V = %.1f percent' %s_v_2)
print('Voltage across bottom unit as a percentage of string voltage , v_3/V = %.1f percent' %s_v_3)
print('\nCase(ii) :')
print('String efficiency = %.2f percent' %efficiency)
n = 8 #Number of discs
m = 1.0/6 #capacitance of each link pin to self capacitance
V = 30.0 #Voltage(kV)
a_1 = 1
a_2 = (1+m)*a_1
a_3 = m*(a_1+a_2)+a_2
a_4 = m*(a_1+a_2+a_3)+a_3
a_5 = m*(a_1+a_2+a_3+a_4)+a_4
a_6 = m*(a_1+a_2+a_3+a_4+a_5)+a_5
a_7 = m*(a_1+a_2+a_3+a_4+a_5+a_6)+a_6
a_8 = m*(a_1+a_2+a_3+a_4+a_5+a_6+a_7)+a_7
v_1 = V/(a_1+a_2+a_3+a_4+a_5+a_6+a_7+a_8) #Voltage across unit 1(kV)
v_2 = a_2*v_1 #Voltage across unit 2(kV)
v_3 = a_3*v_1 #Voltage across unit 3(kV)
v_4 = a_4*v_1 #Voltage across unit 4(kV)
v_5 = a_5*v_1 #Voltage across unit 5(kV)
v_6 = a_6*v_1 #Voltage across unit 6(kV)
v_7 = a_7*v_1 #Voltage across unit 7(kV)
v_8 = a_8*v_1 #Voltage across unit 8(kV)
s_v_1 = v_1/V*100 #Voltage across unit 1 as a % of V
s_v_2 = v_2/V*100 #Voltage across unit 2 as a % of V
s_v_3 = v_3/V*100 #Voltage across unit 3 as a % of V
s_v_4 = v_4/V*100 #Voltage across unit 4 as a % of V
s_v_5 = v_5/V*100 #Voltage across unit 5 as a % of V
s_v_6 = v_6/V*100 #Voltage across unit 6 as a % of V
s_v_7 = v_7/V*100 #Voltage across unit 7 as a % of V
s_v_8 = v_8/V*100 #Voltage across unit 8 as a % of V
V_2 = V*100/s_v_8
V_sys = (3**0.5)*V_2 #Permissible system voltage(kV)
print('Case(i) :')
print('____________________________________________________________________________________________')
print('Unit number 1 2 3 4 5 6 7 8\n')
print('Percentage of conductor voltage %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f' %(s_v_1,s_v_2,s_v_3,s_v_4,s_v_5,s_v_6,s_v_7,s_v_8))
print('____________________________________________________________________________________________')
print('\nCase(ii) :')
print('System voltage at which this string can be used = %.2f kV' %V_sys)
v_dry = 65.0 #Dry power frequency flashover voltage for each disc(kV)
v_wet = 43.0 #Wet power frequency flashover voltage for each disc(kV)
V = 110 #Voltage of system to be insulated(kV)
m = 1.0/6 #capacitance of each link pin to self capacitance
n_4 = 4 #Number of units in a string
n_8 = 8 #Number of units in a string
n_10 = 10 #Number of units in a string
v_dry_4 = 210.0 #Dry power frequency flashover voltage for 4 units(kV)
v_dry_8 = 385.0 #Dry power frequency flashover voltage for 8 units(kV)
v_dry_10 = 460.0 #Dry power frequency flashover voltage for 10 units(kV)
v_wet_4 = 150.0 #Wet power frequency flashover voltage for 4 units(kV)
v_wet_8 = 285.0 #Wet power frequency flashover voltage for 8 units(kV)
v_wet_10 = 345.0 #Wet power frequency flashover voltage for 10 units(kV)
eff_dry_4 = v_dry_4*100/(n_4*v_dry)
eff_dry_8 = v_dry_8*100/(n_8*v_dry)
eff_dry_10 = v_dry_10*100/(n_10*v_dry)
eff_wet_4 = v_wet_4*100/(n_4*v_wet)
eff_wet_8 = v_wet_8*100/(n_8*v_wet)
eff_wet_10 = v_wet_10*100/(n_10*v_wet)
a_1 = 1
a_2 = (1+m)*a_1
a_3 = m*(a_1+a_2)+a_2
a_4 = m*(a_1+a_2+a_3)+a_3
a_5 = m*(a_1+a_2+a_3+a_4)+a_4
a_6 = m*(a_1+a_2+a_3+a_4+a_5)+a_5
a_7 = m*(a_1+a_2+a_3+a_4+a_5+a_6)+a_6
a_8 = m*(a_1+a_2+a_3+a_4+a_5+a_6+a_7)+a_7
v_1 = V/(a_1+a_2+a_3+a_4+a_5+a_6+a_7+a_8) #Voltage across unit 1(kV)
v_8 = a_8*v_1 #Voltage across unit 8(kV)
s_v_8 = v_8/V #Ratio of Voltage across unit 8 to string voltage
voltage_2 = V/(3**0.5)*s_v_8 #Voltage across the disc adjacent to conductor(kV)
sf_dry = v_dry/voltage_2 #Factor of safety for dry flashover
sf_wet = v_wet/voltage_2 #Factor of safety for wet flashover
print('Case(i) :')
print('___________________________________________________________________________')
print(' No. of units Dry string efficiency(%) Wet string efficiency(%)')
print('___________________________________________________________________________')
print(' %d %.2f %.2f ' %(n_4,eff_dry_4,eff_wet_4))
print(' %d %.2f %.2f ' %(n_8,eff_dry_8,eff_wet_8))
print(' %d %.2f %.2f ' %(n_10,eff_dry_10,eff_wet_10))
print('___________________________________________________________________________')
print('\nCase(ii) :')
print('Factor of safety for dry flashover = %.2f' %sf_dry)
print('Factor of safety for wet flashover = %.2f' %sf_wet)
n = 4 #Number of disc
v_2 = 13.2 #Voltage across second unit(kV)
v_3 = 18.0 #Voltage across third unit(kV)
m = 0.198 #Obtained by solving the quadratic equation
a_1 = 1
a_2 = 1+m
a_3 = m*(a_1+a_2)+a_2
a_4 = m*(a_1+a_2+a_3)+a_3
v_1 = v_2/a_2 #Voltage across first unit(kV)
v_4 = a_4*v_1 #Voltage across second unit(kV)
V = v_1+v_2+v_3+v_4 #Conductor voltage(kV)
efficiency = V/(n*v_4)*100 #String efficiency(%)
print('Conductor voltage with respect to the cross-arm , V = %.2f kV' %V)
print('String efficiency = %.2f percent' %efficiency)
n = 3 #Number of disc
unit_1 = 100/3.072 #Disc voltage as % of conductor voltage of Topmost unit
unit_2 = 1.014/3.072*100 #Disc voltage as % of conductor voltage of second unit
unit_3 = 1.058/3.072*100 #Disc voltage as % of conductor voltage of bottom unit
efficiency = 3.072*100/(n*1.058) #String efficiency(%)
unit_1g = 100/3.752 #Disc voltage as % of conductor voltage of Topmost unit
unit_2g = 1.18/3.752*100 #Disc voltage as % of conductor voltage of second unit
unit_3g = 1.5724/3.752*100 #Disc voltage as % of conductor voltage of bottom unit
efficiency1 = 3.752*100/(n*1.5724) #String efficiency(%)
print('Disc voltages as a percentage of the conductor voltage with guard ring are :')
print('Topmost unit = %.2f percent' %unit_1)
print('Second unit = %.2f percent' %unit_2)
print('Bottom unit = %.2f percent' %unit_3)
print('String efficiency = %.2f percent' %efficiency)
print('\nDisc voltages as a percentage of the conductor voltage without guard ring are :')
print('Topmost unit = %.2f percent' %unit_1g)
print('Second unit = %.2f percent' %unit_2g)
print('Bottom unit = %.2f percent' %unit_3g)
print('String efficiency = %.2f percent' %efficiency1)
v = 220.0 #Voltage(kV)
f = 50.0 #Frequency(Hertz)
p = 752.0 #Pressure(mm of Hg)
t = 40.0 #Temperature(°C)
m = 0.92 #Surface irregularity factor
r = 1.2 #Conductor radius(cm)
d = 550.0 #Spacing(cm)
import math
delta = (0.392*p)/(273+t) #Air density correction factor
V_c = 21.1*delta*m*r*math.log(d/r) #Corona inception voltage(kv/phase)rms
V_c_l = 3**0.5*V_c #Line-line corona inception voltage(kV)
print('Corona inception voltage , V_c = %.2f kV/phase' %V_c)
print('Line-to-line corona inception voltage = %.2f kV' %V_c_l)
v = 220.0 #Voltage(kV)
f = 50.0 #Frequency(Hertz)
v_o = 1.6 #Over voltage(p.u)
p = 752.0 #Pressure(mm of Hg)
t = 40.0 #Temperature(°C)
m = 0.92 #Surface irregularity factor
r = 1.2 #Conductor radius(cm)
d = 550.0 #Spacing(cm)
import math
delta = (0.392*p)/(273+t) #Air density correction factor
V_c = 21.1*delta*m*r*math.log(d/r) #Corona inception voltage(kv/phase)rms
V_ph = (v * v_o)/3**0.5 #Phase voltage(kV)
peek = 3*(241/delta)*(f+25)*(r/d)**0.5*(V_ph-V_c)**2*10**-5 #Peek's formula(kW/km)
ratio = V_ph/V_c
F = 0.9 #Ratio of V_ph to V_c
peterson = 3*2.1*f*F*(V_c/math.log10(d/r))**2*10**-5 #Peterson's formula(kW/km)
print('Corona loss using Peeks formula , P = %.2f kW/km' %peek)
print('Corona loss using Petersons formula , P = %.2f kW/km' %peterson)