summaryrefslogtreecommitdiff
path: root/1067/CH20
diff options
context:
space:
mode:
Diffstat (limited to '1067/CH20')
-rwxr-xr-x1067/CH20/EX20.03/20_03.sce13
-rwxr-xr-x1067/CH20/EX20.04/20_04.sce26
-rwxr-xr-x1067/CH20/EX20.05.a/20_5_a.sce36
-rwxr-xr-x1067/CH20/EX20.05.b/20_5_b.sce18
-rwxr-xr-x1067/CH20/EX20.06/20_6.sce22
-rwxr-xr-x1067/CH20/EX20.07/20_7.sce29
-rwxr-xr-x1067/CH20/EX20.08/20_8.sce37
-rwxr-xr-x1067/CH20/EX20.09/20_9.sce13
-rwxr-xr-x1067/CH20/EX20.1/20_01.sce38
-rwxr-xr-x1067/CH20/EX20.10/20_10.sce7
-rwxr-xr-x1067/CH20/EX20.11/20_11.sce14
-rwxr-xr-x1067/CH20/EX20.12/20_12.sce10
-rwxr-xr-x1067/CH20/EX20.13/20_13.sce15
-rwxr-xr-x1067/CH20/EX20.14/20_14.sce26
-rwxr-xr-x1067/CH20/EX20.15/20_15.sce25
-rwxr-xr-x1067/CH20/EX20.16.a/20_16_a.sce23
-rwxr-xr-x1067/CH20/EX20.16.b/20_16_b.sce19
-rwxr-xr-x1067/CH20/EX20.16.c/20_16_c.sce10
-rwxr-xr-x1067/CH20/EX20.17.a/20_17_a.sce15
-rwxr-xr-x1067/CH20/EX20.17.b/20_17_b.sce17
-rwxr-xr-x1067/CH20/EX20.18.a/20_18a.sce11
-rwxr-xr-x1067/CH20/EX20.18.b/20_18b.sce13
-rwxr-xr-x1067/CH20/EX20.19/20_19.sce23
-rwxr-xr-x1067/CH20/EX20.2/20_02.sce20
-rwxr-xr-x1067/CH20/EX20.20.b/20_20_b.sce12
-rwxr-xr-x1067/CH20/EX20.21/20_21.sce37
-rwxr-xr-x1067/CH20/EX20.22/20_22.sce11
-rwxr-xr-x1067/CH20/EX20.23/20_23.sce11
-rwxr-xr-x1067/CH20/EX20.24/20_24.sce7
29 files changed, 558 insertions, 0 deletions
diff --git a/1067/CH20/EX20.03/20_03.sce b/1067/CH20/EX20.03/20_03.sce
new file mode 100755
index 000000000..2e320ea7b
--- /dev/null
+++ b/1067/CH20/EX20.03/20_03.sce
@@ -0,0 +1,13 @@
+clear;
+clc;
+rating=25e6;
+vb=11e3;
+x=.16/4;
+faultMVA=rating*1e-6/x;
+mprintf("the fault MVA from method 1=%dMVA",faultMVA);
+//method 2
+Ifault=1/(x*%i);
+Ib=rating/(sqrt(3)*vb);
+Isc=Ib*25;
+MVA=sqrt(3)*vb*Isc/1e6;
+mprintf("\n the fault MVA from method 2=%dMVA",MVA);
diff --git a/1067/CH20/EX20.04/20_04.sce b/1067/CH20/EX20.04/20_04.sce
new file mode 100755
index 000000000..e873b3368
--- /dev/null
+++ b/1067/CH20/EX20.04/20_04.sce
@@ -0,0 +1,26 @@
+clear;
+clc;
+R=3e6;
+Rb=6000e3;
+vb1=11e3;
+vb2=22e3;
+X=.15;
+x=.15*Rb/R;
+xeq=x/2;
+MVA=Rb/xeq;
+Ifault=MVA/(sqrt(3)*vb1*%i);
+Ir=real(Ifault);
+Ii=imag(Ifault);
+Imod=sqrt((Ir^2)+(Ii^2));
+Iangle=atand(Ir/Ii)-90;
+Imod=round(Imod/10)*10;
+mprintf("for fault on generator side \n Fault MVA=%dMVA \n Fault current=%d/_%dAmp",MVA/1e6,Imod,Iangle);
+x2=.05;
+Xeq=x2+xeq;
+MVA=Rb/Xeq;
+Ifault=MVA/(1.734*vb2*%i);
+Ir=real(Ifault);
+Ii=imag(Ifault);
+Imod=sqrt((Ir^2)+(Ii^2));
+Iangle=atand(Ir/Ii)-90;
+mprintf("\nfor fault on transmission side \n Fault MVA=%dMVA \n Fault current=%d/_%dAmp(lag)",MVA/1e6,Imod,Iangle);
diff --git a/1067/CH20/EX20.05.a/20_5_a.sce b/1067/CH20/EX20.05.a/20_5_a.sce
new file mode 100755
index 000000000..50a541318
--- /dev/null
+++ b/1067/CH20/EX20.05.a/20_5_a.sce
@@ -0,0 +1,36 @@
+clear;
+clc;
+R=3e6;
+Rb=6e6;
+vb2=11e3;
+vb3=66e3;
+x=.2;
+Xg=x*Rb/R;
+xt=.05;
+xl=vb3^2/Rb;
+xl1=20*.1/xl;
+xl2=xl1*4;
+
+X1=Xg+xt+xl2;
+X2=Xg+xt+xl1;
+X=inv(inv(X1)+inv(X2));
+Ifaultpu=1/(X*%i);
+Ifault=Ifaultpu*Rb/(sqrt(3)*vb3);
+MVA=sqrt(3)*vb3*Ifault*%i;
+Ir=real(Ifault);
+Ii=imag(Ifault);
+Imod=sqrt((Ir^2)+(Ii^2));
+Iangle=atand(Ir/Ii)-90;
+MVA=fix(MVA/1e5)*1e5;
+Imod=fix(Imod);
+mprintf("\n Fault MVA=%fMVA \n Fault current=%d/_%dAmp",MVA/1e6,Imod,Iangle);
+//another method
+MVA=Rb/X;
+Ifault=MVA/(sqrt(3)*vb3*%i);
+Ir=real(Ifault);
+Ii=imag(Ifault);
+Imod=sqrt((Ir^2)+(Ii^2));
+Iangle=atand(Ir/Ii)-90;
+MVA=fix(MVA/1e5)*1e5;
+Imod=fix(Imod);
+mprintf("\n \n from second method\nFault MVA=%fMVA \n Fault current=%d/_%dAmp",MVA/1e6,Imod,Iangle);
diff --git a/1067/CH20/EX20.05.b/20_5_b.sce b/1067/CH20/EX20.05.b/20_5_b.sce
new file mode 100755
index 000000000..9b9ec95c4
--- /dev/null
+++ b/1067/CH20/EX20.05.b/20_5_b.sce
@@ -0,0 +1,18 @@
+clear;
+clc;
+v1=66e3;
+v2=11e3;
+x2=.461;
+x1=.4527;
+If=229;
+I1=If*x2/(x1+x2);
+I2=If*x1/(x1+x2);
+I=I1+I2;
+Ig1=I1*v1/v2;
+Ig1=fix(Ig1);
+I1=round(I1*10)/10;
+I2=round(I2*10)/10;
+mprintf("the fault current supplied by each transformer is\n I1=%fA\nI2=%fA\nI3=I1+I2=%dA\n",I1,I2,I);
+I2=fix(I2);
+Ig2=I2*v1/v2;
+mprintf("the fault current supplied by each generator \n Ig1=%dA\n Ig2=%dA\n",Ig1,Ig2);
diff --git a/1067/CH20/EX20.06/20_6.sce b/1067/CH20/EX20.06/20_6.sce
new file mode 100755
index 000000000..0d79fadd5
--- /dev/null
+++ b/1067/CH20/EX20.06/20_6.sce
@@ -0,0 +1,22 @@
+clear;
+clc;
+r=6e6;
+v1=11e3;
+v2=66e3;
+xg=.1;
+xt=.09;
+z=4+(1*%i);
+zb=v2^2/r;
+zpu=z/zb;
+E=1;
+Ifault=E/(zpu+((xg+xt)*%i));
+Ir=real(Ifault);
+Ii=imag(Ifault);
+Imod=sqrt((Ir^2)+(Ii^2));
+Ib=r/(sqrt(3)*v2);
+i=Imod*Ib;
+igb=r/(sqrt(3)*v1);
+ig=igb*Imod;
+i=fix(i);
+ig=fix(ig);
+mprintf("the base current on HT side = %dA\n the current from generator = %dA",i,ig);
diff --git a/1067/CH20/EX20.07/20_7.sce b/1067/CH20/EX20.07/20_7.sce
new file mode 100755
index 000000000..f7838aab6
--- /dev/null
+++ b/1067/CH20/EX20.07/20_7.sce
@@ -0,0 +1,29 @@
+clear;
+clc;
+r1=20e6;
+rb=30e6;
+v1=11e3;
+v2=110e3;
+x1g=.2*rb/r1;
+x1t=.08*rb/r1;
+x2g=.2;
+x2t=.1;
+xl=.516;
+x0=xl/2;
+x1=x1g+x1t;
+x2=x2g+x2t;
+x=inv(inv(x2)+inv(x1));
+z=x+x0;
+E=1;
+isc=E/z;
+ig1=isc*x2/(x1+x2);
+ig2=isc*x1/(x1+x2);
+i=ig1+ig2;
+ib=rb/(1.7355*v1);
+ig1=fix(ig1*1000)/1000;
+Ig1=ig1*ib;
+ib=fix(ib);
+ig2=fix(ig2*100)/100;
+Ig2=ig2*ib;
+Ig2=fix(Ig2);
+mprintf("the current taken from G1=%dA(lagging)\n the current taken from G2=%dA(lagging)",Ig1,Ig2);
diff --git a/1067/CH20/EX20.08/20_8.sce b/1067/CH20/EX20.08/20_8.sce
new file mode 100755
index 000000000..1cddc0db8
--- /dev/null
+++ b/1067/CH20/EX20.08/20_8.sce
@@ -0,0 +1,37 @@
+clear;
+clc;
+r=25e6;
+rb=5e6;
+v1=6.6e3;
+v2=25e3;
+xs=.2;
+xt=.3;
+Xs=xs*r/rb;
+Xt=xt*r/rb;
+Z=.125;
+v=1;
+I=v/(Z);
+ib=r/(1.7355*v1);
+ib=fix(ib);
+i=ib*8;
+ig=I*.25/.5;
+im=I-ig;
+it=3*1+im;
+Ia=ib*it;
+Imom=1.6*Ia;
+xt=.15;
+Zth=.375*.25/(.375+.25);
+I=v/xt;
+igen=I*.375/.625;
+imot=.25*I*.25/.625;
+itot=igen+(3*imot);//symm breaking current
+ibr=itot*1.1;//asymm breaking current
+is=itot*ib;
+ia=ibr*ib*1.01;
+ia=fix(ia/100)*100;
+rbreaking=1.739*v1*ia;
+rbreaking=fix(rbreaking/1e6)*1e6;
+Imom=round(Imom/10)*10;
+ia=round(ia);
+is=fix(is/100)*100;
+mprintf("the subtransient fault current If= %d/_-90A\nsubtansient current in breaker A=%dA\n the momentary current = %dA\n,the current to be interrupted asymmetric=%dA \n symmetric interrupting current=%dA\n the rating of the CB in kva=%dkVA",i,Ia,Imom,ia,is,rbreaking/1e3);
diff --git a/1067/CH20/EX20.09/20_9.sce b/1067/CH20/EX20.09/20_9.sce
new file mode 100755
index 000000000..1c4a991b6
--- /dev/null
+++ b/1067/CH20/EX20.09/20_9.sce
@@ -0,0 +1,13 @@
+clc;
+clear;
+rb=100e6;
+rf=1e6;
+v=3.3e3;
+x=rf/rb;
+xpu=.6;
+xtot=x+xpu;
+rf2=rf/xtot;
+rf2=round(rf2/1e4)*1e4;
+If=rf2/(1.72*v);
+If=fix(If);
+mprintf("the fault level is=%fMVA\n the fault current=%dA",rf2/1e6,If);;
diff --git a/1067/CH20/EX20.1/20_01.sce b/1067/CH20/EX20.1/20_01.sce
new file mode 100755
index 000000000..6cec8cacd
--- /dev/null
+++ b/1067/CH20/EX20.1/20_01.sce
@@ -0,0 +1,38 @@
+clear;
+clc;
+V=6.6e3;
+r=5e6;
+X=.12;
+F=r/X;
+I=(F/V)/(%i*sqrt(3));
+Ir=real(I);
+Ii=imag(I);
+Imod=sqrt((Ir^2)+(Ii^2));
+Iangle=atand(Ir/Ii)-90;
+F=fix(F/1e5)*1e5;
+Imod=fix(Imod);
+mprintf("Method 1 \nthe value of fault MVA=%fMVA \n the fault current is = %d /_%d A\n",(F/1e6),Imod,Iangle);
+//method 2
+Vbase=V/sqrt(3);
+Ifaultpu=1/(X*%i);
+Ibase=r/(Vbase*3);
+Ifault=Ifaultpu*Ibase;
+P=sqrt(3)*Ifault*V;
+Ir=real(Ifault);
+Ii=imag(Ifault);
+Imod=sqrt((Ir^2)+(Ii^2));
+Pr=real(P);
+Pi=imag(P);
+Pmod=sqrt((Pr^2)+(Pi^2));
+Pangle=atand(Pr/Pi)-90;
+Pmod=fix(Pmod/1e5)*1e5;
+Imod=fix(Imod);
+mprintf("From method 2\n the value of fault MVA=%f /_%d MVA \n the fault current is = %d A",(Pmod/1e6),Pangle,Imod);
+//method 3
+v1=6.4e3;
+I=(v1/V)/X;
+Ifault=Ibase*I;
+p=sqrt(3)*Ifault*v1;//the difference in result is due to erroneous calculation in textbook.
+p=round(p/1e5)*1e5;
+mprintf("\nthe new fault current at 6.4kV is = %fA \n the newfault power at service voltage is =%fMVA",Ifault,p/1e6);
+disp("the difference in result is due to erroneous calculation in textbook.");
diff --git a/1067/CH20/EX20.10/20_10.sce b/1067/CH20/EX20.10/20_10.sce
new file mode 100755
index 000000000..d41be83d2
--- /dev/null
+++ b/1067/CH20/EX20.10/20_10.sce
@@ -0,0 +1,7 @@
+clear;
+clc;
+r=500e3;
+x=4.75/100;
+fault=r/x;
+fault=fix(fault/1e5)*1e5;
+mprintf("the fault level on LT side=%dkVA",fault/1e3);
diff --git a/1067/CH20/EX20.11/20_11.sce b/1067/CH20/EX20.11/20_11.sce
new file mode 100755
index 000000000..f51eefbe0
--- /dev/null
+++ b/1067/CH20/EX20.11/20_11.sce
@@ -0,0 +1,14 @@
+clc;
+clear;
+r1=75e6;
+r2=150e6;
+rb=r1+r2;
+rf=rb;
+x=.05;
+xn=x*rb/1e6;
+xeq=rb/rf;
+X=xn+xeq;
+fault=rb/X;
+f=rb/xn;
+fault=round(fault/1e4)*1e4
+mprintf("fault level on LT sid eof transformer=%fMVA \n fault level when source of reactance is neglected=%fMVA",fault/1e6,f/1e6);
diff --git a/1067/CH20/EX20.12/20_12.sce b/1067/CH20/EX20.12/20_12.sce
new file mode 100755
index 000000000..7401eabb9
--- /dev/null
+++ b/1067/CH20/EX20.12/20_12.sce
@@ -0,0 +1,10 @@
+clear;
+clc;
+rb=100e6;
+r1=50e6;
+r2=rb;
+x1=rb/r1;
+x2=rb/r2;
+xeq=inv(inv(x1)+inv(x2));
+f=rb/xeq;
+mprintf("the fault level on the line =%dMVA",f/1e6);
diff --git a/1067/CH20/EX20.13/20_13.sce b/1067/CH20/EX20.13/20_13.sce
new file mode 100755
index 000000000..7b5bc6638
--- /dev/null
+++ b/1067/CH20/EX20.13/20_13.sce
@@ -0,0 +1,15 @@
+clear;
+clc;
+x=.23;
+r=3750e3;
+v=6600;
+res=.866;
+x1=x*(v^2)/r;
+z=sqrt((res^2)+(x1^2));
+i=1.1*v/(sqrt(3)*z);
+f=res/x1;
+x=1.38;
+i=round(i/100)*100
+is=sqrt(2)*x*i;
+is=round(is/10)*10;
+mprintf("initial short circuit current=%dA \n peak short circuit current=%dA",i,is);
diff --git a/1067/CH20/EX20.14/20_14.sce b/1067/CH20/EX20.14/20_14.sce
new file mode 100755
index 000000000..360be08a2
--- /dev/null
+++ b/1067/CH20/EX20.14/20_14.sce
@@ -0,0 +1,26 @@
+clear;
+clc;
+rb=75000e3;
+ro=50e6;
+v1=11e3;
+v2=66e3;
+xa=.25*rb/ro;
+xb=.75;
+xt=.1;
+v=1;
+xeq=inv(inv(xa)+inv(xb))+xt;
+i=v/xeq;
+i=round(i*100)/100;
+ia=i*xb/(xa+xb);
+ib=i*xa/(xa+xb);
+ia=round(ia*100)/100;
+ilt=rb/(sqrt(3)*v1);
+iht=rb/(sqrt(3)*v2);
+i=i*iht;
+i=fix(i)
+ia=ia*ilt;
+ilt=rb/(1.73*v1);
+ib=ib*ilt;
+ia=round(ia);
+ib=round(ib/10)*10;
+mprintf("sub transient current generator A=%dA \n generator B=%dA \n HT side=%dA",ia,ib,i);
diff --git a/1067/CH20/EX20.15/20_15.sce b/1067/CH20/EX20.15/20_15.sce
new file mode 100755
index 000000000..78a8293c9
--- /dev/null
+++ b/1067/CH20/EX20.15/20_15.sce
@@ -0,0 +1,25 @@
+clear;
+clc;
+x=1;
+e=1;
+i=e/x;
+r=7.5e6;
+v=6.6e3;
+i=r/(sqrt(3)*v);
+i=fix(i);
+x2=.09;
+i2=e/x2;
+I2=i2*i;
+I2=fix(I2/10)*10
+idc=sqrt(2)*I2;
+mc=idc*2;
+x3=.15;
+i3=e/x3;
+I3=i3*i;
+ib=I3*1.4;
+Mva=sqrt(3)*v*ib;
+idc=round(idc/1e2)*1e2;
+mc=round(mc/1e2)*1e2;
+I3=round(I3/10)*10;
+Mva=fix(Mva/1e4)*1e4
+mprintf("sustained short circuit current=%dA\ninitial symmetric SC current=%fkA\nmaximum dc component=%fkA\nmaking capacity required=%fkA\ntransient short circuit current=%fkA\n interrupting capacity required=%fMVA,Asymmetric",i,I2/1e3,idc/1e3,mc/1e3,I3/1e3,Mva/1e6);
diff --git a/1067/CH20/EX20.16.a/20_16_a.sce b/1067/CH20/EX20.16.a/20_16_a.sce
new file mode 100755
index 000000000..8b832bf81
--- /dev/null
+++ b/1067/CH20/EX20.16.a/20_16_a.sce
@@ -0,0 +1,23 @@
+clear;
+clc;
+rb=2e6;
+r=1.2e6;
+x=7*rb/r;
+v=6.6e3;
+i=rb/v;
+zb=v/i;
+r=1200e3;
+rb=2000e3;
+v=6.6e3;
+i=rb/v;
+x=.1;
+z0=v*x/i;
+x1=7*rb/r;
+z1=v*x1/(100*i);
+z2=2;
+z=z0+z1+z2;
+ish=v/z;
+zb=round(zb*10)/10;
+ish=round(ish/10)*10;
+mprintf("the shortcircuit current by direct ohmic method=%fA\n",ish);
+mprintf("the base impedence=%fohm",zb);
diff --git a/1067/CH20/EX20.16.b/20_16_b.sce b/1067/CH20/EX20.16.b/20_16_b.sce
new file mode 100755
index 000000000..50bbc50f7
--- /dev/null
+++ b/1067/CH20/EX20.16.b/20_16_b.sce
@@ -0,0 +1,19 @@
+clear;
+clc;
+rb=2e6;
+r=1.2e6;
+x=7*rb/r;
+x1=10;
+x2=11.7;
+v=6.6e3;
+i=rb/v;
+zb=v/i;
+r=1200e3;
+rb=2000e3;
+v=6.6e3;
+xt=.117;
+xf=2/zb*100;
+xtot=xf+x1+x2;
+ish=i*100/xtot;
+ish=round(ish/10)*10;
+mprintf("the short circuit current by percentage reactance method=%fA",ish);
diff --git a/1067/CH20/EX20.16.c/20_16_c.sce b/1067/CH20/EX20.16.c/20_16_c.sce
new file mode 100755
index 000000000..bf393b462
--- /dev/null
+++ b/1067/CH20/EX20.16.c/20_16_c.sce
@@ -0,0 +1,10 @@
+clear;
+clc;
+x1=5;
+x2=10;
+x3=11.7;
+x4=9.1;
+i=303;
+xt=x1+x2+x3+x4;
+ish=303*100/xt;
+mprintf("the SHORT CIRCUIT CURRENT=%dA",ish)
diff --git a/1067/CH20/EX20.17.a/20_17_a.sce b/1067/CH20/EX20.17.a/20_17_a.sce
new file mode 100755
index 000000000..6d0f19865
--- /dev/null
+++ b/1067/CH20/EX20.17.a/20_17_a.sce
@@ -0,0 +1,15 @@
+clear;
+clc;
+v=3.3e3;
+rb=3e6;
+r1=1e6;
+r2=1.5e6;
+x1=10;
+x2=20;
+X1=x1*rb/r1;
+X2=x2*rb/r2;
+x=inv(inv(X1)+inv(X2));
+kva=rb*100/x;
+ish=kva/(1.7388*v);
+ish=round(ish);
+printf("the value of short circuit current=%dA",ish);
diff --git a/1067/CH20/EX20.17.b/20_17_b.sce b/1067/CH20/EX20.17.b/20_17_b.sce
new file mode 100755
index 000000000..426481b0e
--- /dev/null
+++ b/1067/CH20/EX20.17.b/20_17_b.sce
@@ -0,0 +1,17 @@
+clear;
+clc;
+v=3.3e3;
+rb=3e6;
+r1=1e6;
+r2=1.5e6;
+x1=10;
+x2=20;
+X1=x1*rb/r1;
+X2=x2*rb/r2;
+x=inv(inv(X1)+inv(X2));
+kva=rb*100/x;
+ish=kva/(sqrt(3)*v);
+rx=10e6;
+x2=rb*100/rx;
+r=inv(inv(X1)-inv(X2))-30;
+printf("the reactance of generator to be converted=%dpercent",r);
diff --git a/1067/CH20/EX20.18.a/20_18a.sce b/1067/CH20/EX20.18.a/20_18a.sce
new file mode 100755
index 000000000..97d369ca4
--- /dev/null
+++ b/1067/CH20/EX20.18.a/20_18a.sce
@@ -0,0 +1,11 @@
+clear;
+clc;
+r1=3e6;
+x=10;
+r=150e6;
+rb=9e6;
+x1=x*rb/r1;
+xc=inv(2*inv(x1));
+xt=rb*100/r;
+x=(inv(inv(xt)-inv(xc)))-5;
+printf("the reactance that should be added= %d percent",x);
diff --git a/1067/CH20/EX20.18.b/20_18b.sce b/1067/CH20/EX20.18.b/20_18b.sce
new file mode 100755
index 000000000..18f1a908e
--- /dev/null
+++ b/1067/CH20/EX20.18.b/20_18b.sce
@@ -0,0 +1,13 @@
+clear;
+clc;
+z=4000;
+zb=9;
+x1=zb/z*100;
+x2=5;
+x3=30;
+x4=30;
+x=inv(inv(x1+x2)+inv(x3)+inv(x4));
+x=round(x*100)/100;
+fault=zb*1e3/x*100;
+fault=fix(fault/1e3)*1e3;
+mprintf("the new fault level of generator bus=%dMVA",fault/1e3);
diff --git a/1067/CH20/EX20.19/20_19.sce b/1067/CH20/EX20.19/20_19.sce
new file mode 100755
index 000000000..5552054e1
--- /dev/null
+++ b/1067/CH20/EX20.19/20_19.sce
@@ -0,0 +1,23 @@
+clear;
+clc;
+rb=20e6;
+r=10e6;
+v1=11e3;
+v2=66e3;
+x1=5;
+X1=x1*rb/r;
+xa=20;
+xb=20;
+xc=20;
+xd=20;
+xbus=25;
+xtr=X1;
+xcd=inv(inv(xc)+inv(xd));
+xab=inv(inv(xa)+inv(xb));
+xcdbus=xcd+xbus;
+xn=inv(inv(xab)+inv(xcdbus));
+xth=xtr+xn;
+mva=rb/xth*100;
+i=mva/(1.745*v2);
+i=round(i);
+printf("the SC MVA=%fMVA \n the SC current=%dA",mva/1e6,i);
diff --git a/1067/CH20/EX20.2/20_02.sce b/1067/CH20/EX20.2/20_02.sce
new file mode 100755
index 000000000..da746575a
--- /dev/null
+++ b/1067/CH20/EX20.2/20_02.sce
@@ -0,0 +1,20 @@
+clear;
+clc;
+V=3000e3;
+r1=30;
+r=5000e3;
+vb2=11e3;
+vb3=33e3;
+x=.2;
+Xt=.05*r/V;
+Xl=r1*r/(vb3^2);
+xtotal=(x+Xt+Xl)*%i;
+MVA=r*%i*1e-6/xtotal;
+Ifault=MVA*1e6/(sqrt(3)*vb3*%i);
+Ir=real(Ifault);
+Ii=imag(Ifault);
+Imod=sqrt((Ir^2)+(Ii^2));
+Iangle=atand(Ir/Ii)-90;
+Imod=round(Imod);
+MVA=round(MVA*10)/10;
+mprintf("the value of falut current = %d/_%d Amp \n fault MVA =%f MVA",Imod,Iangle,MVA);
diff --git a/1067/CH20/EX20.20.b/20_20_b.sce b/1067/CH20/EX20.20.b/20_20_b.sce
new file mode 100755
index 000000000..5aeb2f57c
--- /dev/null
+++ b/1067/CH20/EX20.20.b/20_20_b.sce
@@ -0,0 +1,12 @@
+clear;
+clc;
+g=20;
+v=11e3;
+r=20e6;
+n=4;
+x=.4;
+x1=g/(n-1);
+z=((x1/x)-(x1))/1.33;
+R=(z/100)*(v^2)/r;
+R=round(R*1000)/1000;
+printf("the value of reactance=%fohms",R);
diff --git a/1067/CH20/EX20.21/20_21.sce b/1067/CH20/EX20.21/20_21.sce
new file mode 100755
index 000000000..ee76fef74
--- /dev/null
+++ b/1067/CH20/EX20.21/20_21.sce
@@ -0,0 +1,37 @@
+clear;
+clc;
+xst=20;
+xtr=28;
+xs=250;
+xt=15;
+v1=25e3;
+r1=500e6/.8;
+v2=220e3;
+rb=600e6;
+vb=25e3;
+xf=rb/r1;
+xst=xst*xf/100;
+xtr=xtr*xf/100;
+xs=xs*xf/100;
+xt=xt/100;
+xeqs=inv(inv(xst)+inv(xt));
+xeqt=inv(inv(xtr)+inv(xt));
+xeg=inv(inv(xs)+inv(xt));
+e=1;
+xeqs=round(xeqs*1000)/1e3;
+is=e/xeqs;
+is=round(is);
+it=e/xeqt;
+ig=e/xeg;
+i1=is*xt/(xt+xst);
+i2=is*xst/(xst+xt);
+ib=rb/(1.726*22.2*1e3);
+Is=is*ib;
+i1=round(i1*10)/10;
+Is=round(Is/1e3)*1e3;
+i2=fix(i2*100)/0100;
+I1=i1*ib;
+I2=i2*ib;
+I1=fix(I1/1e2)*1e2;
+I2=fix(I2/1e2)*1e2;
+mprintf("total subtransient current T-off=%fkA\nsubtransient current on generator side=%fkA\n subtransient current on transformer side=%fkA",Is/1e3,I1/1e3,I2/1e3);
diff --git a/1067/CH20/EX20.22/20_22.sce b/1067/CH20/EX20.22/20_22.sce
new file mode 100755
index 000000000..71bb1a396
--- /dev/null
+++ b/1067/CH20/EX20.22/20_22.sce
@@ -0,0 +1,11 @@
+clc;
+clear;
+mvan=6800e6;
+v=132e3;
+mvac=200e6;
+mvae=mvan-mvac;
+n=mvan/(sqrt(3)*v);
+e=mvae/(1.681*v);
+e=fix(e/10)*10;
+n=fix(n/10)*10;
+printf("normal fault current=%f/_-90 kA\nEffective fault current=%f/_-90 kA",n/1e3,e/1e3);
diff --git a/1067/CH20/EX20.23/20_23.sce b/1067/CH20/EX20.23/20_23.sce
new file mode 100755
index 000000000..49d221a84
--- /dev/null
+++ b/1067/CH20/EX20.23/20_23.sce
@@ -0,0 +1,11 @@
+clear;
+clc;
+v=400e3;
+mvan=30000e6;
+mw=1500e6;
+mvac=600e6;
+n=mvan/mw;
+mvae=mvan-mvac;////the difference in result is due to erroneous calculation in textbook.
+e=mvae/mw;
+mprintf("the SC raio=%d\neffective fault level=%fMVA\neffective circuit level of HVDC system(ESCR)=%f",n,mvae/1e6,e);
+disp('the difference in result is due to erroneous calculation in textbook.');
diff --git a/1067/CH20/EX20.24/20_24.sce b/1067/CH20/EX20.24/20_24.sce
new file mode 100755
index 000000000..37112e7e7
--- /dev/null
+++ b/1067/CH20/EX20.24/20_24.sce
@@ -0,0 +1,7 @@
+clear;
+clc;
+s=1;
+xt=5;
+m=s/xt*100;
+n=2*s/xt*100;
+mprintf("fault level on lt side=%dMVA\n fault level on HT side=%dMVA",m,n);