Code
Code
if bundling == 0
fprintf("GMR: %.6f\n", GMR);
GMR = 0.7788*Radius;
GMD = (Dab*Dbc*Dca)^(1/3);
l = (2e-4)*log(GMD/GMR); % in H/km
c = (2*pi*8.85e-9)/log(GMD/GMR); % in F/km and line to neutral
fprintf("l: %.6f H/km\n", l);
fprintf("c: %.6f F/km (line to neutral)\n", c);
elseif bundling == 1
Conductor = input("Enter the number of conductors (2 or 3) : ");
fprintf("Number of conductors: %d\n", Conductor);
if Conductor == 2
GMR = sqrt(conductor_spacing * Radius * 0.7788);
GMD = (conductor_spacing);
fprintf("GMR: %.6f\n", GMR);
l = (2e-4)*log(GMD/GMR); % in H/km
c = (2*pi*8.85e-9)/log(GMD/GMR); % in F/km and line to neutral
fprintf("l: %.6f H/km\n", l);
fprintf("c: %.6f F/km (line to neutral)\n", c);
elseif Conductor == 3
GMR = sqrt(conductor_spacing^2 * Radius * 0.7788);
GMD = (conductor_spacing*conductor_spacing*conductor_spacing)^(1/3);
fprintf("GMR: %.6f\n", GMR);
l = (2e-4)*log(GMD/GMR); % in H/km
c = (2*pi*8.85e-9)/log(GMD/GMR); % in F/km and line to neutral
fprintf("l: %.6f H/km\n", l);
fprintf("c: %.6f F/km (line to neutral)\n", c);
else
disp("Invalid number of conductors. Please enter 2 or 3.");
return;
end
else
disp("Invalid bundling option. Please enter '0' or '1'.");
return;
end
l = (2e-4)*log(GMD/GMR); % in H/km
c = (2*pi*8.85e-9)/log(GMD/R1); % in F/km and line to neutral
L = l*Length;
R = r*Length;
C = c*Length;
% per phase series impedance and Shunt Capacitance
Xl = 2*pi*f*L; % in Ohm
Xc = 1/(2*pi*f*C); % in Ohm
Z = R+1i*Xl;
Y = 1i/Xc;
% Receiving end parameters
Pr1 = input('Receiving end Power (in MW): ');
Pr = Pr1*(1e+6);
Vr1 = input('Receiving end Voltage (in kV): ');
Vr = (Vr1*(1e+3))*(1+1i*0);
PF = input('Power Factor: ');
sint = (1-PF^2)^(1/2);
Ir1 = Pr/(3*Vr*PF);
Ir = Ir1*(PF-1i*sint);
%String Efficiency
m = input('Enter the value of m (i.e. mutual Capacitance/capacitance to ground)
:');
v1 = Vr1/((1+m)*(3+m));
v2 = v1*(1+m);
v3 = v2+(v1+v2)*m;
se = (Vr1*100)/(3*v3);
% Transmission Line model
if (Length<=80)
fprintf('\n------Short Transmission Line Model-----\n');
Is = Ir;
Vs = Vr+Ir*Z; % per phase
Vs1 = abs(Vs);
Vsl = sqrt(3)*Vs;
Is1 = abs(Is);
Vreg = ((Vs1-Vr)/Vr)*100;
Loss = 3*(R)*(Is1^2);
Ps = Pr+Loss;
PFs = Ps/(3*Vs1*Is1);
Efficiency = (Pr/Ps)*100;
elseif (Length>=80 && Length<=200)
fprintf('\n------Medium Transmission Line Model-----\n');
Model=input('Enter the desirable Model:\n For Nominal-T press 1 \n For Nominal-Pi
press 2');
if (Model==1)
V1 = Vr+Ir*(Z/2);
Ic = Y*V1;
Is = Ir+Ic;
Vs = V1+Is*(Z/2);
Vsl = sqrt(3)*Vs;
Vs1 = abs(Vs);
Is1 = abs(Is);
Vro = Vs*(-1i*Xc)/(Z/2-1i*Xc);
Vreg = ((abs(Vro)-Vr)/Vr)*100;
Loss = 3*(R/2)*(Is1^2+Ir1^2);
Ps = Pr+Loss;
PFs = Ps/(3*Vs1*Is1);
Efficiency = (Pr/Ps)*100;
elseif (Model==2)
Icr = (Y/2)*Vr;
Il = Ir+Icr;
Vs = Vr+Il*Z;
Ics = (Y/2)*Vs;
Is = Il+Ics;
Vsl = sqrt(3)*Vs;
Vs1 = abs(Vs);
Is1 = abs(Is);
Vro = Vs*(-1i*(Xc/2))/(Z/-1i*(Xc/2));
Vreg = ((abs(Vro)-Vr)/Vr)*100;
Loss = 3*R*(abs(Il)^2);
Ps = Pr+Loss;
PFs = Ps/(3*Vs1*Is1);
Efficiency = (Pr/Ps)*100;
end
else
fprintf('\n------Long Transmission Line Model-----\n');
Gamma = sqrt(Y*Z);
Zc = sqrt(Y/Z);
A = cosh(Gamma);
B = sinh(Gamma)/Zc;
C = Zc*sinh(Gamma);
D = A;
Vs = A*Vr+B*Ir;
Is = C*Vr+D*Ir;
Vsl = sqrt(3)*Vs;
Vs1 = abs(Vs);
Is1 = abs(Is);
Vreg = (((Vs1/abs(A))-Vr)/Vr)*100;
avs = angle(Vs)*(180/pi);
ais = angle(Is)*(180/pi);
PFs = cos(avs-ais);
Ps = 3*abs(Vs)*abs(Is)*PFs;
Efficiency = (Pr/Ps)*100;
end
fprintf('\n-------Transmission line Parameters-------\n\n');
fprintf('\nResistance of transmission line is %d Ohm\n',R);
fprintf('Inductance of transmission line is %d H\n',L);
fprintf('Capacitance of transmission line is %d F\n',C);
fprintf('Per phase series Impedance is %d Ohm \n',Z);
fprintf('Shunt capacitance is %d Ohm \n\n',Xc);
fprintf('\n-------Performance of transmission line-------\n');
fprintf('Sending end current: %d Ampere\n',Is);
fprintf('Sending end voltage: %d Volt\n',Vsl);
fprintf('Sending end power factor: %d \n',PFs);
fprintf('Sending end power: %d Watt\n',Ps);
fprintf('Efficiency: %d \n',Efficiency);
fprintf('Voltage Regulation: %d \n',Vreg);
fprintf('String Efficiency for 3 insulator disc is: %d \n',se);