Professional Documents
Culture Documents
berbasis
METODA GAUSS-SEIDEL
1. Persamaan Jaringan
Vi *
=
Vi ∑
j= 0
yij ∑
−
j= 1
yij V j j≠
i 3
karena penyelesaian matematika studi aliran daya merupakan persamaan aljabar nonlinier
maka penyelesaiannya menggunakan metode iterasi
Dimana yij yang diperlihatkan dalam huruf lowercase (bagian bawah) merupakan
sebuah admitansi per unit. Pisch dan Qisch merupakan daya aktif dan daya reaktif yang
dijelaskan per unit. Dalam menulis garis KCL, arus memasuki bus i diasumsikan
positif. Demikian pula, untuk bus dimana daya ril dan daya reaktif diinjeksikan ke
dalam bus, seperti bus generator, Pisch dan Qisch mempunyai nilai-nilai positif. Untuk
memuat bus dimana daya reaktif dan daya ril mengalir jauh dari bus, Pisch dan Qisch
mempunyai nilai negatif. Jika (2.3) dipecahkan untuk Pisch dan Qisch, kita mempunyai.
n n
Pi ( k +1) = ℜ Vi*( k ) [i( k ) ∑ yij − ∑ yijV j( k ) ] j≠i (5)
j= 0 j= 0
n n
Qi( k +1) = −ℑ Vi*( k ) [i( k ) ∑ yij − ∑ yijV j( k ) ] j≠i (6)
j= 0 j=0
Persamaan aliran daya biasanya dijelaskan dalam istilah unsur-unsur matriks
admittance/entri bus. Karena unsur-unsur off-diagonal admitansi matriks bus Ybus,
2
diperlihatkan dengan huruf-huruf uppercase, yakni Yij = - Yij, dan unsur-unsur diagonal
adalah Yij = ∑ Yij, (2.4) menjadi
Pi 6 ch − jQisch
+∑ j ≠i yijV j( k )
Vi *( k ) (7)
Vi ( k +1) =
Yii
dan
n
Pi(k + 1) = ℜ Vi*(k )[Vi(k )Yi i∑ yi Vj j(k ) j≠ i (8)
j= 0
j≠ i
n
Qi(k + 1) = − ℑ Vi*( k ) [Vi( k )Yi i ∑ yijV j(k ) j≠ i (9)
j= 0
j≠ i
Yij meliputi admitansi ke tanah charging susceptance dan admitansi yang lain.
Yang cocok terhadap tanah. Sebuah model yang dipresentasikan untuk
mentransformasikan kandungan rasio nominal-off, yang meliputi efek tap setting
transformator.
Karena kedua komponen tegangan ditetapkan untuk slack bus, ada persamaan
2(n-1) yang harus dipecahkan oleh metode iterasi. Di bawah kondisi operasi normal,
besarnya tegangan bus yang berada di sekitar 1.0 per unit atau dekat dengan besarnya
tegangan slack bus. Besarnya tegangan beban bus agaknya lebih rendah daripada nilai
slack bus, tergantung pada keperluan daya reaktif, dimana tegangan yang dijadwalkan
pada generator bus agak tinggi. serta, sudut fasa bus beban berada di bawah referensi
sudut sesuai dengan permintaan daya ril, sedangkan sudut fasa generator bus mungkin
berada diatas nilai referensi tergantung pada jumlah daya ril yang mengalir ke dalam
bus. Demikianlah untuk metode Gaus-Seidel, estimasi awal tegangan dari 1,0 + j0,0
untuk tegangan yang tidak diketahui memuaskan, dan solusi yang konvergensikan
berkorelasi dengan catatan operasi aktual.
Untuk bus P-Q, daya real dan reaktif Pisch dan Qisch diketahui. Diawali dengan
sebuah estimasi awal, (7) dipecahkan untuk komponen tegangan yang ril dan imajiner.
Untuk tegangan-berkontrol bus (P-V buses) dimana Pisch dan [VI] ditetapkan, pertama (9)
dipecahkan untuk Q(k+1), dan kemudian digunakan dalam (7) untuk memecahkan Vi(k+1),
3
namun demikian karena [VI] ditetapkan, hanya bagian imajiner dari Vi(k+1) ditahan, dan
bagian ril dipilih agar memuaskan.
2
( i( k +1) ) 2 + (f i( k +1) ) 2 = Vi (10)
atau
e i( k +1) = Vi
2
−(f i( k +1) ) 2 (11)
( k +1) ( k +1)
di mana i dan f i merupakan komponen ril dan imajiner tegangan VI(k+1)
Vi( k +1) = V1
2
(f i( k +1) ) 2 (12)
Dimana α adalah faktor kecepatan. Nilainya tergantung pada sistem. Tingkat 1,3
hingga 1,7 ditemukan memuaskan untuk sistem-sistem khusus.
Tegangan yang diperbaharui langsung menggantikan nilai sebelumnya dalam solusi
persamaan berikutnya. Proses dilanjutkan sampai perubahan-perubahan dalam
komponen ril dan imajiner tegangan bus itearsi berturut-turut berada dalam akurasi
yang ditetapkan, misalnya.,
e (ik+ 1) − e (ik ) ≤ e
(13)
f i(k+ 1) − f i(k ) ≤ e
Untuk daya yang tidak sebanding yang selayaknya kecil dan dapat diterima,
sangat sedikit toleransi yang harus ditetapkan pada kedua komponen tegangan. Sebuah
tegangan yang secara akurat berada pada tingkat 0,00001 hingga 0,00005 pu
memuaskan. Praktisnya, metode untuk menentukan penyelesaian sebuah solusi
berdasarkan indeks akurasi yang dipasang pada daya yang tak sebanding. Iterasi
4
berlanjut sampai besarnya elemen yang paling luas dalam kolom ∆ P dan ∆ Q kurang
dari nilai yang ditetapkan. Sebuah akurasi daya yang tidak sebanding adalah 0,001 pu.
Sekali solusi dikonvergensikan, jaringan daya ril dan reaktif pada slack bus
dihitung dari (8) dan (9).
Setelah selesai menyelesaiakan iterasi untuk tegangan tiap-tiap bus, maka langkah
selanjutnya adalah menghitung aliran daya dan rugi-rugi pada jaringan. Jika kita anggap
sebuah jaringan yang menghubungkan dua bus i dan j. Maka arus yang mengalir Iij, arus
yang terukur pada bus i bernilai positif jika ia mengalir ke arah bus j.
i ⇒ j diperoleh dari
Iij = Il + Ii0 = yij(Vi-Vj)+yi0VI (14)
Begitu pula jika sebaliknya j ⇒ i diperoleh dari
Iji = -Il + Ij0 = yji(Vj-Vi)+yj0Vj (15)
Daya compleks Sij dari bus I ke bus j dan Sji dari bus j ke bus I adalah :
Sij = ViI*ij (16)
Sji = VjI*ij (17)
Dari persamaan diatas diperoleh
SLij = Sij + Sji (18)
5
5. Flowchart
START
Basemva = 100
Accuracy = 0,001
Accel = 1,8
Maxiter = 100
Baca busdata
Baca linedata
Mulai Counter
Untuk iterasi
B A
6
B A
Tidak
Menguji
konvergensi
Ya
Cetak Voltage magnitude dan
sudutnya, daya aktif dan daya
reaktif dari generator dan beban,
shunt capasitor, total daya
generator dan total beban dan
total shunt capasitor
STOP
7
Contoh Aplikasi 1
Pada gambar menunjukkan diagram segaris dalam sistim tenaga 3 (tiga) bus dengan
pembangkitan pada bus 1. Harga tegangan pada bus 1 diatur sampai 1,05 pu. Beban pada
bus 2 dan 3. Impedansi-impedansi saluran dalam per unit pada dasar 100 MVA, dan
untuk suseptansi muatan pada saluran diabaikan. Tentukan aliran daya dan rugi-rugi
0.02 + j0.04
1 2
256.6 MW
G 110.2 Mvar
0.0125 + j0.025
0.01 + j0.03
Data admitansi pada saluran adalah y12 = 1/z12 = 10-j20, y13 = 1/z13 = 10-j30, dan
y23=1/z23 = 16-j32
Bus 1 adalah slack bus dengan tegangan V1 = 1,05 + j0,0. Estimasi tegangan awal untuk,
V2(0) = 1,0+j0,0 dan V3(0) = 1,0 + j0,0. V2 dan V3 selanjutnya secara iterasi dihitung
dengan persamaan 7, untuk aliran arus dihitung dengan persamaan 14 dan 15, untuk daya
kompleks anatara bus dihitung dengan persamaan 16 dan 17, dan untuk rugi-rugi daya
8
dalam saluran dihitung dengan persamaan 6-18. Iterasi dari kondisi ini berhenti bila |
Vn+1 – Vn|<ε, dengan ε adalah tetapan yang harganya ditentukan, sehingga susunan
disp(' ');
disp('__________________________');
disp(' ')
disp(' Studi Aliran Daya pada sistem 3 bus ');
disp(' dengan penyelesaian metode Gauss-Seidel ');
disp('___________________________');
disp(' ');
% DAsar 100 MVA
epsilon = 0.00001;
x = 1;
% Data impedansi pada saluran :
z12 = 0.02 + j*0.04;
z13 = 0.01 + j*0.03;
z23 = 0.0125 + j*0.025;
% Admitansi pada saluran :
y12 = 1/z12;
y13 = 1/z13;
y23 = 1/z23;
% Beban dalam per unit :
s2 = -(256.6 + j*110.2)/100;
s3 = -(138.6 + j*45.2)/100;
% Bus 1 sebagai slack bus dengan :
v1 = 1.05 + j*0.0;
vk1 = conj(v1);
%estimasi tegangan awal untuk :
v2 = 1.0 + j*0.0;
e3 = 1.0 + j*0.0;
iter = 0;
disp('_________________________');
disp('! ! ! ');
disp('! ! daya pada ! aliran daya pada saluran !');
disp('! iterasi ! slack bus ! !');
disp('! ke : ! (bus 1) ! !');
disp('! !-----------------------------------------!');
disp('! ! S1 ! s12 ! 21 !');
disp('_____________________________________________________');
disp(' ');
format short g
while x>= epsilon
iter = iter + 1;
vk2 = conj(v2);
ek3 = conj(e3);
v2 = 1/(y12+y23)*((conj(s2)/vk2)+(y12*v1+y23*e3)); %=V=(1/y)*
v3 = 1/(y13+y23)*((conj(s3)/ek3)+(y13*v1+y23*v2));
% arus pada saluran
i12 = y12*(v1-v2);
i21 = -i12;
% konjugat dari arus pada aluran :
ik12 = conj(i12);
9
ik21 = conj(i21);
% Daya dalam bentuk bilangan kompleks pada bus 1 :
s1 = (vk1*(v1*(y12+y13)-(y12*v2+y13*v3)))*100;
% aliran daya dalam bentuk bilangan kompleks pada saluran :
s12 = v1*ik12*100;
s21 = v2*ik21*100;
x = abs(v3-e3);
e3 = v3;
fprintf('%i', iter), disp([s1, s12, s21]);
end
disp('___________________________________');
disp(' ');
disp('===============');
disp('! lanjutan 1 !');
disp('===============');
% DAsar 100 MVA
epsilon = 0.00001;
x = 1;
% Data impedansi pada saluran :
z12 = 0.02 + j*0.04;
z13 = 0.01 + j*0.03;
z23 = 0.0125 + j*0.025;
% Admitansi pada saluran :
y12 = 1/z12;
y13 = 1/z13;
y23 = 1/z23;
% Beban dalam per unit :
s2 = -(256.6 + j*110.2)/100;
s3 = -(138.6 + j*45.2)/100;
% Bus 1 sebagai slack bus dengan :
v1 = 1.05 + j*0.0;
vk1 = conj(v1);
%estimasi tegangan awal untuk :
v2 = 1.0 + j*0.0;
e3 = 1.0 + j*0.0;
iter = 0;
disp('_________________________');
disp('! ! ! ');
disp('! ! daya pada ! aliran daya pada saluran !');
disp('! iterasi ! slack bus ! !');
disp('! ke : ! (bus 1) ! !');
disp('! !-----------------------------------------!');
disp('! ! S13 ! s31 ! s23 !');
disp('_____________________________________________________');
disp(' ');
format short g
while x>= epsilon
iter = iter + 1;
vk2 = conj(v2);
ek3 = conj(e3);
v2 = 1/(y12+y23)*((conj(s2)/vk2)+(y12*v1+y23*e3));
v3 = 1/(y13+y23)*((conj(s3)/ek3)+(y13*v1+y23*v2));
% arus pada saluran
i13 = y13*(v1-v3);
i31 = -i13;
i23 = y23*(v2-v3);
10
% konjugat dari arus pada aluran :
ik13 = conj(i13);
ik31 = conj(i31);
ik23 = conj(i23);
% aliran daya dalam bentuk bilangan kompleks pada saluran :
s13 = v1*ik13*100;
s31 = v3*ik31*100;
s23 = v2*ik23*100;
x = abs(v3-e3);
e3 = v3;
fprintf('%i', iter), disp([s13, s31, s23]);
end
disp('___________________________________');
disp(' ');
disp('===============');
disp('! lanjutan 2 !');
disp('===============');
% DAsar 100 MVA
epsilon = 0.00001;
x = 1;
% Data impedansi pada saluran :
z12 = 0.02 + j*0.04;
z13 = 0.01 + j*0.03;
z23 = 0.0125 + j*0.025;
% Admitansi pada saluran :
y12 = 1/z12;
y13 = 1/z13;
y23 = 1/z23;
% Beban dalam per unit :
s2 = -(256.6 + j*110.2)/100;
s3 = -(138.6 + j*45.2)/100;
% Bus 1 sebagai slack bus dengan :
v1 = 1.05 + j*0.0;
vk1 = conj(v1);
%estimasi tegangan awal untuk :
v2 = 1.0 + j*0.0;
e3 = 1.0 + j*0.0;
iter = 0;
disp('_________________________');
disp('! ! ! ');
disp('! ! aliran day daya pada ! aliran daya pada saluran !');
disp('! iterasi ! slack bus ! !');
disp('! ke : ! (bus 1) ! !');
disp('! !-----------------------------------------!');
disp('! ! S32 ! sL12 ! sl13 !');
disp('_____________________________________________________');
disp(' ');
format short g
while x>= epsilon
iter = iter + 1;
vk2 = conj(v2);
ek3 = conj(e3);
v2 = 1/(y12+y23)*((conj(s2)/vk2)+(y12*v1+y23*e3));
v3 = 1/(y13+y23)*((conj(s3)/ek3)+(y13*v1+y23*v2));
% arus pada saluran
i12 = y12*(v1-v2);
11
I21 = -i12;
i13 = y13*(v1-v3);
i31 = -i13;
i23 = y23*(v2-v3);
i32 = -i23;
% konjugat dari arus pada aluran :
ik12 = conj(i12);
ik21 = conj(i21);
ik13 = conj(i13);
ik31 = conj(i31);
ik32 = conj(i32);
% aliran daya dalam bentuk bilangan kompleks pada saluran :
s12 = v1*ik12*100;
s21 = v2*ik21*100;
s13 = v1*ik13*100;
s31 = v3*ik31*100;
s32 = v3*ik32*100;
% rugi-rugi daya dalam bentuk bilangan kompleks pada saluran :
sl12 = s12+s21;
sl13 = s13+s31;
x = abs(v3-e3);
e3 = v3;
fprintf('%i', iter), disp([s32, sl12, sl13]);
end
disp('___________________________________');
disp(' ');
disp('===============');
disp('! lanjutan 3 !');
disp('===============');
% DAsar 100 MVA
epsilon = 0.00001;
x = 1;
% Data impedansi pada saluran :
z12 = 0.02 + j*0.04;
z13 = 0.01 + j*0.03;
z23 = 0.0125 + j*0.025;
% Admitansi pada saluran :
y12 = 1/z12;
y13 = 1/z13;
y23 = 1/z23;
% Beban dalam per unit :
s2 = -(256.6 + j*110.2)/100;
s3 = -(138.6 + j*45.2)/100;
% Bus 1 sebagai slack bus dengan :
v1 = 1.05 + j*0.0;
vk1 = conj(v1);
%estimasi tegangan awal untuk :
v2 = 1.0 + j*0.0;
e3 = 1.0 + j*0.0;
iter = 0;
disp('_________________________');
disp('! ! ! ');
disp('! ! !');
disp('! iterasi ! !');
disp('! ke : ! !');
disp('! !-------------------!');
12
disp('! ! sl23 !');
disp('_____________________________________________________');
disp(' ');
format short g
while x>= epsilon
iter = iter + 1;
vk2 = conj(v2);
ek3 = conj(e3);
v2 = 1/(y12+y23)*((conj(s2)/vk2)+(y12*v1+y23*e3));
v3 = 1/(y13+y23)*((conj(s3)/ek3)+(y13*v1+y23*v2));
% arus pada saluran
i23 = y23*(v2-v3);
i32 = -i23;
% konjugat dari arus pada aluran :
ik23 = conj(i23);
ik32 = conj(i32);
% aliran daya dalam bentuk bilangan kompleks pada saluran :
s23 = v2*ik23*100;
s32 = v3*ik32*100;
% rugi-rugi daya dalam bentuk bilangan kompleks pada saluran :
sl12 = s12+s21;
sl13 = s13+s31;
x = abs(v3-e3);
e3 = v3;
fprintf('%i', iter), disp([s32, sl12, sl13]);
end
Contoh Aplikasi 2
13
Single Line diagram dari sistem yang akan di hitung adalah sebagai berikut :
Slack
G G
1
2 3
G
26 8
G
5 G 13
18 6 7 4
9 12 14 16
19 10
11 25
23 24 15
22 20
21
17
14
Data yang diperlukan untuk melakukan perhitungan dalam makalah ini adalah
berupa data : beban untuk tiap-tiap bus, data dari generator, data kapasitor shunt, data
tapping transformator, dan data resistansi, reaktansi serta kapasitansi dari line transmisi
dan transformator.
Untuk input yang dibutuhkan oleh program untuk melakukan perhitungan data
a. Busdata
15
b. Linedata
16
7. Program Matlab
Program matlab yang digunakan untuk studi aliran daya metode gauss seidel ini dibagi
program ini adalah input data bagi program yang lainnya, data dalam program ini
untuk line transmisi dan transformator serta tapping setting dari transformator.
program dalam file berguna untuk merubah impedansi menjadi admitansi dan
membentuk matrix admitansi bus. Program ini membutuhkan input data yang berada
dalam file linedata. Adapun listing dari program ini sebagai berikut :
j=sqrt(-1);
i = sqrt(-1);
nl = linedata(:,1);
nr = linedata(:,2);
R = linedata(:,3);
X = linedata(:,4);
Bc = j*linedata(:,5);
a = linedata(:, 6);
nbr=length(linedata(:,1));
nbus = max(max(nl), max(nr));
Z = R + j*X; y= ones(nbr,1)./Z; %branch admittance
for n = 1:nbr
if a(n) <= 0 a(n) = 1;
else end
Ybus=zeros(nbus,nbus); % initialize Ybus to zero
% formation of the off diagonal elements
for k=1:nbr;
Ybus(nl(k),nr(k))=Ybus(nl(k),nr(k))-y(k)/a(k)
Ybus(nr(k),nl(k))=Ybus(nl(k),nr(k))
end
end
% formation of the diagonal elements
for n=1:nbus
for k=1:nbr
if nl(k)==n
17
Ybus(n,n) = Ybus(n,n)+y(k)/(a(k)^2) + Bc(k)
elseif nr(k)==n
Ybus(n,n) = Ybus(n,n)+y(k) +Bc(k)
else, end
end
end
clear Pgg
Program ini untuk perhitungan studi aliran daya metode gauss seidel dan
membutuhkan input data dari file busdata dan linedata. Program ini di desain untuk
digunakan langsung dengan data beban dan generator dalam MW dan Mvar
sedangkan tegangan ditiap bus dalam satuan per unit. Data beban dan data generator
yang dalam MW dan Mvar dirubah oleh program ini dalam satuan per unit
berdasarkan dasar (MVA) daya yang dipilih. Adapun listing dari program ini adalah
sebagai berikut :
Vm=0;
delta=0;
yload=0;
deltad =0;
nbus = length(busdata(:,1));
for k=1:nbus
n=busdata(k,1);
kb(n)=busdata(k,2);
Vm(n)=busdata(k,3);
delta(n)=busdata(k, 4);
Pd(n)=busdata(k,5);
Qd(n)=busdata(k,6);
Pg(n)=busdata(k,7);
Qg(n) = busdata(k,8);
Qmin(n)=busdata(k, 9);
Qmax(n)=busdata(k, 10);
Qsh(n)=busdata(k, 11);
if Vm(n) <= 0
Vm(n) = 1.0;
V(n) = 1 + j*0;
else
delta(n) = pi/180*delta(n);
V(n) = Vm(n)*(cos(delta(n)) + j*sin(delta(n)));
P(n)=(Pg(n)-Pd(n))/basemva;
Q(n)=(Qg(n)-Qd(n)+ Qsh(n))/basemva;
S(n) = P(n) + j*Q(n);
18
end
DV(n)=0;
end
num = 0;
AcurBus = 0;
converge = 1;
Vc = zeros(nbus,1)+j*zeros(nbus,1);
Sc = zeros(nbus,1)+j*zeros(nbus,1);
while exist('accel')~=1
accel = 1.3;
end
while exist('accuracy')~=1
accuracy = 0.001;
end
while exist('basemva')~=1
basemva= 100;
end
while exist('maxiter')~=1
maxiter = 100;
end
iter=0;
maxerror=10;
while maxerror >= accuracy & iter <= maxiter
iter=iter+1;
for n = 1:nbus;
YV = 0+j*0;
for L = 1:nbr;
if nl(L) == n, k=nr(L);
YV = YV + Ybus(n,k)*V(k);
elseif nr(L) == n, k=nl(L);
YV = YV + Ybus(n,k)*V(k);
end
end
Sc = conj(V(n))*(Ybus(n,n)*V(n) + YV) ;
Sc = conj(Sc);
DP(n) = P(n) - real(Sc);
DQ(n) = Q(n) - imag(Sc);
if kb(n) == 1
S(n) =Sc;
P(n) = real(Sc);
Q(n) = imag(Sc);
DP(n) =0;
DQ(n)=0;
Vc(n) = V(n);
elseif kb(n) == 2
Q(n) = imag(Sc);
S(n) = P(n) + j*Q(n);
if Qmax(n) ~= 0
Qgc = Q(n)*basemva + Qd(n) - Qsh(n);
if abs(DQ(n)) <= .005 & iter >= 10 % After 10 iterations
if DV(n) <= 0.045 % the Mvar of generator buses are
if Qgc < Qmin(n), % tested. If not within limits Vm(n)
Vm(n) = Vm(n) + 0.005; % is changed in steps of 0.005 pu
DV(n) = DV(n)+.005; % up to .05 pu in order to bring
elseif Qgc > Qmax(n), % the generator Mvar within the
Vm(n) = Vm(n) - 0.005; % specified limits.
DV(n)=DV(n)+.005; end
else, end
else,end
else,end
end
if kb(n) ~= 1
19
Vc(n) = (conj(S(n))/conj(V(n)) - YV )/ Ybus(n,n);
else, end
if kb(n) == 0
V(n) = V(n) + accel*(Vc(n)-V(n));
elseif kb(n) == 2
VcI = imag(Vc(n));
VcR = sqrt(Vm(n)^2 - VcI^2);
Vc(n) = VcR + j*VcI;
V(n) = V(n) + accel*(Vc(n) -V(n));
end
end
maxerror=max( max(abs(real(DP))), max(abs(imag(DQ))) );
if iter == maxiter & maxerror > accuracy
fprintf('\nWARNING: Iterative solution did not converged after ')
fprintf('%g', iter), fprintf(' iterations.\n\n')
fprintf('Press Enter to terminate the iterations and print the results \n')
converge = 0; pause, else, end
end
if converge ~= 1
tech= (' ITERATIVE SOLUTION DID NOT CONVERGE'); else,
tech=(' Power Flow Solution by Gauss-Seidel Method');
end
k=0;
for n = 1:nbus
Vm(n) = abs(V(n)); deltad(n) = angle(V(n))*180/pi;
if kb(n) == 1
S(n)=P(n)+j*Q(n);
Pg(n) = P(n)*basemva + Pd(n);
Qg(n) = Q(n)*basemva + Qd(n) - Qsh(n);
k=k+1;
Pgg(k)=Pg(n);
elseif kb(n) ==2
k=k+1;
Pgg(k)=Pg(n);
S(n)=P(n)+j*Q(n);
Qg(n) = Q(n)*basemva + Qd(n) - Qsh(n);
end
yload(n) = (Pd(n)- j*Qd(n)+j*Qsh(n))/(basemva*Vm(n)^2);
end
Pgt = sum(Pg); Qgt = sum(Qg); Pdt = sum(Pd); Qdt = sum(Qd); Qsht = sum(Qsh);
busdata(:,3)=Vm'; busdata(:,4)=deltad';
clear AcurBus DP DQ DV L Sc Vc VcI VcR YV converge delta
Program ini menghasilkan output dalam bentuk tabel. Output yang dihasilkan
adalah besar tegangan dan sudutnya, daya aktif dan daya reaktif untuk beban dan
generator, dan capasitor shunt yang terpasang. Program ini juga menampilkan total
daya dari generator dan total beban. Adapun listing dari program ini adalah :
20
%clc
disp(tech)
fprintf(' Maximum Power Mismatch = %g \n', maxerror)
fprintf(' No. of Iterations = %g \n\n', iter)
head =[' Bus Voltage Angle ------Load------ ---Generation--- Injected'
' No. Mag. Degree MW Mvar MW Mvar Mvar '
' '];
disp(head)
for n=1:nbus
fprintf(' %5g', n), fprintf(' %7.3f', Vm(n)),
fprintf(' %8.3f', deltad(n)), fprintf(' %9.3f', Pd(n)),
fprintf(' %9.3f', Qd(n)), fprintf(' %9.3f', Pg(n)),
fprintf(' %9.3f ', Qg(n)), fprintf(' %8.3f\n', Qsh(n))
end
fprintf(' \n'), fprintf(' Total ')
fprintf(' %9.3f', Pdt), fprintf(' %9.3f', Qdt),
fprintf(' %9.3f', Pgt), fprintf(' %9.3f', Qgt), fprintf(' %9.3f\n\n', Qsht)
Program ini mempersiapkan line output data. Program ini di desain untuk
menampilkan daya aktif dan daya reaktif yang mengalir masuk pada tiap-tiap bus,
juga menampilkan rugi daya pada jaringan transmisi antar bus. Program ini juga
menampilkan total daya aktif dan daya reaktif serta total rugi daya dari sistem.
SLT = 0;
fprintf('\n')
fprintf(' Line Flow and Losses \n\n')
fprintf(' --Line-- Power at bus & line flow --Line loss--
Transformer\n')
fprintf(' from to MW Mvar MVA MW Mvar tap\n')
for n = 1:nbus
busprt = 0;
for L = 1:nbr;
if busprt == 0
fprintf(' \n'), fprintf('%6g', n), fprintf(' %9.3f', P(n)*basemva)
fprintf('%9.3f', Q(n)*basemva), fprintf('%9.3f\n', abs(S(n)*basemva))
busprt = 1;
else, end
if nl(L)==n k = nr(L);
In = (V(n) - a(L)*V(k))*y(L)/a(L)^2 + Bc(L)/a(L)^2*V(n);
Ik = (V(k) - V(n)/a(L))*y(L) + Bc(L)*V(k);
Snk = V(n)*conj(In)*basemva;
Skn = V(k)*conj(Ik)*basemva;
SL = Snk + Skn;
SLT = SLT + SL;
elseif nr(L)==n k = nl(L);
21
In = (V(n) - V(k)/a(L))*y(L) + Bc(L)*V(n);
Ik = (V(k) - a(L)*V(n))*y(L)/a(L)^2 + Bc(L)/a(L)^2*V(k);
Snk = V(n)*conj(In)*basemva;
Skn = V(k)*conj(Ik)*basemva;
SL = Snk + Skn;
SLT = SLT + SL;
else, end
if nl(L)==n | nr(L)==n
fprintf('%12g', k),
fprintf('%9.3f', real(Snk)), fprintf('%9.3f', imag(Snk))
fprintf('%9.3f', abs(Snk)),
fprintf('%9.3f', real(SL)),
if nl(L) ==n & a(L) ~= 1
fprintf('%9.3f', imag(SL)), fprintf('%9.3f\n', a(L))
else, fprintf('%9.3f\n', imag(SL))
end
else, end
end
end
SLT = SLT/2;
fprintf(' \n'), fprintf(' Total loss ')
fprintf('%9.3f', real(SLT)), fprintf('%9.3f\n', imag(SLT))
clear Ik In SL SLT Skn Snk
22
8. Hasil Program
Dari data yang diinput pada program menghasilkan keluaran sebagai berikut :
No. of Iterations = 70
23
Bus Voltage Angle ------Load------ ---Generation--- Injected
No. Mag. Degree MW Mvar MW Mvar Mvar
24
--Line-- Power at bus & line flow --Line loss-- Transformer
25
10 0.000 0.000 0.000
26
from to MW Mvar MVA MW Mvar tap
27
20 -48.000 -27.000 55.073
28
26 20.000 12.987 23.846
yang ke tujuh puluh. Sedangkan total beban dari sistem yang berupa daya aktif adalah
1212 MW dan total beban yang berupa daya reaktif adalah 596 Mvar. Total daya aktif
yang di suplay generator adalah 1227,364 MW dan total daya reaktif yang di suplay
generator adalah 589,293 Mvar, sedangkan total injeksi dari kapasitor shunt adalah 14
Mvar.
Output dari program ini juga memperlihatkan daya yang mengalir ditiap-tiap
bus, serta rugi-rugi jaringan antar bus. Rugi-rugi karena jaringan yang terbesar terjadi
antara bus 5 dan bus 6 sebesar 4,371 MW dan 0,113 Mvar. Sedangkan total rugi-rugi dari
ikhlaskitta@yahoo.com
29