all about electricity (indonesia)

Melanjutkan tulisan terdahulu, kita sudah mempelajari bagaimana menyelesaikan aliran daya di 3 bus secara analitis, baik dengan metode Newton-Raphson maupun dengan DLF dan Fast Decoupled Load Flow. Kita juga sudah belajar mengenal software PowerWorld yang membantu kita menganalisis STL. Sekarang kita akan mengkonfirmasi hasil-hasil perhitungan kita dengan software PowerWorld ini.

Yang pertama kita simulasikan dengan metode NR, hasilnya sbb:

3-bus-nr1

Bus Records from Powerworld’s Full Newton Load Flow Solution

Name

PU Volt

Angle (Deg)

Load MW

Load Mvar

Gen MW

Gen Mvar

1

1

0

99.96

25.77

2

1.03

1.32

400

418.55

3

0.93437

-5.38

500

350

Yang kedua kita simulasikan dengan memilih algoritma FDLF, yang hasilnya sbb:

3-bus-fdlf

Bus Records from Powerworld’s Fast Decoupled Load Flow Solution

Name

PU Volt

Angle (Deg)

Load MW

Load Mvar

Gen MW

Gen Mvar

1

1

0

99.99

24.41

2

1.03

1.31

400

417.13

3

0.93485

-5.35

500

350

Ternyata perbandingan hasil kalkulasi tangan/manual dengan hasil perhitungan software sangat dekat, sehingga kita dapat memastikan bahwa kita menggunakan metode NR, DLF dan FDLF dengan benar.

Selain PowerWorld, sebenarnya ada banyak software yang dapat membantu kita menyelesaikan aliran daya STL, termasuk PSS®E dari Siemens yang merupakan software “wajib” yang banyak dipakai oleh designer ataupun operator STL di seluruh dunia.

pss-e

Untuk para akademisi/pelajar, biasanya juga banyak memakai Matlab untuk menyelesaikannya. Di Matlab kita harus teliti, namun selama kita memahami algoritmanya, hasilnya juga akan sama dengan software2 lain.

matlab

Source code Matlab dengan metode NR untuk permasalahan ini :

% % Question #5A Newton-Raphson method

% Modified from Saadat’s Power System Analysis Example 6.10

clear; clc;

V = [1.0; 1.03; 1.0];

d = [0; 0; 0];

Ps=[4 ; -5];

Qs= -3.5;

YB = [ -j*75 j*50 j*25

j*50 -j*75 j*25

j*25 j*25 -j*50];

Y= abs(YB); t = angle(YB);

iter=0;

while iter < 2

iter = iter +1

P=[V(2)*V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+V(2)^2*Y(2,2)*cos(t(2,2))+

V(2)*V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3));

V(3)*V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1))+V(3)^2*Y(3,3)*cos(t(3,3))+

V(3)*V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2))];

Q= -V(3)*V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1))-V(3)^2*Y(3,3)*sin(t(3,3))-

V(2)*V(3)*Y(3,2)*sin(t(3,2)-d(3)+d(2));

J(1,1)=V(2)*V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1))+

V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3));

J(1,2)=-V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3));

J(1,3)=V(2)*Y(2,3)*cos(t(2,3)-d(2)+d(3));

J(2,1)=-V(3)*V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2));

J(2,2)=V(3)*V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1))+

V(3)*V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2));

J(2,3)=V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1))+

V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2));

J(3,1)=-V(3)*V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2));

J(3,2)=V(2)*V(3)*Y(3,2)*cos(t(3,2)-d(3)+d(2))+

V(1)*V(3)*Y(3,1)*cos(t(3,1)-d(3)+d(1));

J(3,3)=-V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1))-2*V(3)*Y(3,3)*sin(t(3,3))-

V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2));

DP = Ps – P;

DQ = Qs – Q;

DC = [DP; DQ]

J

DX = J\DC

d(2) =d(2)+DX(1);

d(3)=d(3) +DX(2);

V(3)= V(3)+DX(3);

V, d, delta =180/pi*d;

end

P1= V(1)^2*Y(1,1)*cos(t(1,1))+V(1)*V(2)*Y(1,2)*cos(t(1,2)-d(1)+d(2))+

V(1)*V(3)*Y(1,3)*cos(t(1,3)-d(1)+d(3))

Q1=-V(1)^2*Y(1,1)*sin(t(1,1))-V(1)*V(2)*Y(1,2)*sin(t(1,2)-d(1)+d(2))-

V(1)*V(3)*Y(1,3)*sin(t(1,3)-d(1)+d(3))

Q2=-V(2)*V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1))-V(3)*V(2)*Y(2,3)*

sin(t(2,3)-d(2)+d(3))-V(2)^2*Y(2,2)*sin(t(2,2))

P_loss = P1+4-5

Q_loss = Q1+Q2-3.5

Kode Matlab dengan FDLF :

% Question #5C Fast decoupled method

% Modified from Saadat’s Power System Analysis Example 6.12

clear; clc;

V1= 1.0; V2 = 1.03; V3 = 1.0;

d1 = 0; d2 = 0; d3=0;

Ps2=4; Ps3 =-5;

Qs3= -3.5;

YB = [ -j*75 j*50 j*25

j*50 -j*75 j*25

j*25 j*25 -j*50];

Y= abs(YB); t = angle(YB);

B1 =[-75 25; 25 -50]

Binv = inv(B1)

iter=0;

while iter < 2

iter = iter +1;

P2= V2*V1*Y(2,1)*cos(t(2,1)-d2+d1)+V2^2*Y(2,2)*cos(t(2,2))+

V2*V3*Y(2,3)*cos(t(2,3)-d2+d3);

P3= V3*V1*Y(3,1)*cos(t(3,1)-d3+d1)+V3^2*Y(3,3)*cos(t(3,3))+

V3*V2*Y(3,2)*cos(t(3,2)-d3+d2);

Q3=-V3*V1*Y(3,1)*sin(t(3,1)-d3+d1)-V3^2*Y(3,3)*sin(t(3,3))-

V2*V3*Y(3,2)*sin(t(3,2)-d3+d2);

DP2 = Ps2 – P2; DP2V = DP2/V2;

DP3 = Ps3 – P3; DP3V = DP3/V3;

DQ3 = Qs3 – Q3; DQ3V = DQ3/V3;

DC =[DP2; DP3; DQ3];

Dd = -Binv*[DP2V;DP3V];

DV = -1/B1(2,2)*DQ3V

d2 =d2+Dd(1);

d3 =d3+Dd(2);

V3= V3+DV;

angle2 =180/pi*d2;

angle3 =180/pi*d3;

disp(‘ iter d2 d3 V3 DP2 DP3 DQ3’);

R = [iter d2 d3 V3 DP2 DP3 DQ3]

end

Q2=-V2*V1*Y(2,1)*sin(t(2,1)-d2+d1)-V2^2*Y(2,2)*sin(t(2,2))-

V2*V3*Y(2,3)*sin(t(2,3)-d2+d3);

P1= V1^2*Y(1,1)*cos(t(1,1))+V1*V2*Y(1,2)*cos(t(1,2)-d1+d2)+

V1*V3*Y(1,3)*cos(t(1,3)-d1+d3);

Q1=-V1^2*Y(1,1)*sin(t(1,1))-V1*V2*Y(1,2)*sin(t(1,2)-d1+d2)-

V1*V3*Y(1,3)*sin(t(1,3)-d1+d3);

S1=P1+j*Q1

Q2

P_loss = P1+4-5

Q_loss = Q1+Q2-3.5

Comments on: "Lanjutan Contoh Penyelesaian Aliran Daya Listrik dengan Metode Newton-Raphson, Decoupled dan Fast Decoupled Load Flow (2)" (21)

  1. Mas Imaduddin, salam kenal…

    Mas, aku minta source code matlab fast decoupled method donk…
    Penting, buat ngerjain skripsi tentang rekonfigurasi jaringan distribusi….

    Thank’s ya…

  2. Salam kenal juga untuk pak Nurwahyu,

    Saya salin kan dari source code CD nya pak Saadat, mudah2an tidak ada komplain dari beliau untuk hak ciptanya. Jika ada komplain, source code ini akan saya hapus.

    % Fast Decoupled Power Flow Solution
    % Copyright (c)1998 by Hadi Saadat.
    % Revision 1 (Aug. 99 ) Modified to include two or more parallel lines
    ns=0; Vm=0; delta=0; yload=0; deltad=0;
    nbus = length(busdata(:,1));
    kb=[];Vm=[]; delta=[]; Pd=[]; Qd=[]; Pg=[]; Qg=[]; Qmin=[]; Qmax=[]; % Added (6-8-00)
    Pk=[]; P=[]; Qk=[]; Q=[]; S=[]; V=[]; % Added (6-8-00)
    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) = accuracy & iter <= maxiter % Test for max. power mismatch
    iter = iter+1;
    id=0; iv=0;
    for n=1:nbus
    nn=n-nss(n);
    J11=0; J33=0;
    for ii=1:nbr
    if mline(ii)==1 % Added to include parallel lines (Aug. 99)
    if nl(ii) == n | nr(ii) == n
    if nl(ii) == n, l = nr(ii); end
    if nr(ii) == n, l = nl(ii); end
    J11=J11+ Vm(n)*Vm(l)*Ym(n,l)*sin(t(n,l)- delta(n) + delta(l));
    J33=J33+ Vm(n)*Vm(l)*Ym(n,l)*cos(t(n,l)- delta(n) + delta(l));
    else , end
    else, end
    end
    Pk = Vm(n)^2*Ym(n,n)*cos(t(n,n))+J33;
    Qk = -Vm(n)^2*Ym(n,n)*sin(t(n,n))-J11;
    if kb(n) == 1 P(n)=Pk; Q(n) = Qk; end % Swing bus P
    if kb(n) == 2 Q(n)=Qk;
    Qgc = Q(n)*basemva + Qd(n) – Qsh(n);
    if Qmax(n) ~= 0
    if iter = 10 % the Mvar of generator buses are
    if Qgc Qmax(n), % bring the generator Mvar within
    Vm(n) = Vm(n) – 0.005;end % the specified limits.
    else, end
    else,end
    else,end
    end
    if kb(n) ~= 1
    id = id+1;
    DP(id) = P(n)-Pk;
    DPV(id) = (P(n)-Pk)/Vm(n);
    end
    if kb(n) == 0
    iv=iv+1;
    DQ(iv) = Q(n)-Qk;
    DQV(iv) = (Q(n)-Qk)/Vm(n);
    end
    end
    Dd=-B1\DPV’;
    DV=-B2\DQV’;
    id=0;iv=0;
    for n=1:nbus
    if kb(n) ~= 1
    id = id+1;
    delta(n) = delta(n)+Dd(id); end
    if kb(n) == 0
    iv = iv+1;
    Vm(n)=Vm(n)+DV(iv); end
    end
    maxerror=max(max(abs(DP)),max(abs(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 Fast Decoupled Method’);
    end
    k=0;
    V = Vm.*cos(delta)+j*Vm.*sin(delta);
    deltad=180/pi*delta;
    clear A; clear DC; clear DX
    i=sqrt(-1);
    for n = 1:nbus
    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
    S(n)=P(n)+j*Q(n);
    Qg(n) = Q(n)*basemva + Qd(n) – Qsh(n);
    k=k+1;
    Pgg(k)=Pg(n);
    end
    yload(n) = (Pd(n)- j*Qd(n)+j*Qsh(n))/(basemva*Vm(n)^2);
    end
    busdata(:,3)=Vm’; busdata(:,4)=deltad’;
    Pgt = sum(Pg); Qgt = sum(Qg); Pdt = sum(Pd); Qdt = sum(Qd); Qsht = sum(Qsh);
    clear Pk Qk DP DQ J11 J33 B1 B1inv B2 B2inv DPV DQV Dd delta ib id ii iv jb jj

  3. Assalam..
    mas,,,source code yg NR nya g lgkp y??
    soalnya error :”??? Error: File: NR.m Line: 30 Column: 1
    Incomplete or misformed expression or statement.”
    bingung ne??
    makasih y mas..

    • Saya cek lagi, programnya jalan, coba pak radian copy baris/line 30 yang dibilang error tadi. Mungkin saya bisa lihat dimana letak errornya.

      Baris 30 harusnya:

      J(2,3)=V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1))+…

      Di Matlab, kadang kurang titik (.) atau kurang (,) atau kadang beda versi bisa bikin source code ngga jalan.

  4. ??? Error: File: NR.m Line: 30 Column: 1
    Incomplete or misformed expression or statement.
    itu katanya mas..
    ohy.. boleh minta emailnymas??
    saya punya jurnal tentang optimasi daya reaktif,, tapi susah banget ngertiny??
    trims..
    wassalamualaikum…

  5. ??? Error: File: NR.m Line: 30 Column: 1
    Incomplete or misformed expression or statement.
    itu katanya mas..
    oh.. boleh minta emailnymas??
    saya punya jurnal tentang optimasi daya reaktif,, tapi susah banget ngertiny??
    trims..
    wassalamualaikum…

  6. ohy..ada yg lupa
    P=[V(2)*V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+V(2)^2*Y(2,2)*cos(t(2,2))+ …
    %kursor nya nunjuk dibawah code ini mas errorny..

    • Saya sudah cek lagi. Tidak ada yang salah di source code ini.

      Coba dicek:
      1. Pastikan m file untuk NR tidak dicampur dengan FDLF.
      2. Teliti lagi statement P=[P1; P2]; Pada dasarnya tanda titik tiga kali yang artinya lanjutan statement ini ada di baris berikutnya, menunjukkan sebenarnya statement ini aslinya ditulis 1 baris. Ada kemungkinan versi Matlab sebelum tahun 2006 tidak mengenal syntax ini. Coba gabungkan statement ini menjadi 1 baris (dengan menghilangkan “…”)menjadi:
      P=[V(2)*V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+V(2)^2*Y(2,2)*cos(t(2,2))+V(2)*V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3)); V(3)*V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1))+V(3)^2*Y(3,3)*cos(t(3,3))+V(3)*V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2))];

  7. haha…alhamdulillah mas…udah jalan.,..trims y..
    mw nanya lagi mas??
    referensi yang cocok ttg kestabilan tegangan yg berhubungan sama optimasi daya reaktif ada g??
    trima kasih bantuanny…

    • Ada artikel yang masih belum saya terbitkan yang berhubungan dengan kestabilan tegangan dan optimasi daya reaktif, namun demikian radian coba dulu baca sumber2 yang saya pakai sbb:

      [1] R. D. Zimmerman and C. E. Murillo-Sánchez, Matpower Version 3.2 User’s Manual. Ithaca, NY: Power Systems Engineering Research Center (PSERC) School of Electrical Engineering, Cornell University, 2007.
      [2] H. Saadat, Power System Analysis: McGraw-Hill Primis Custom Publishing, 2002.
      [3] B. Gao, G. K. Morison, and P. Kundur, “Voltage Stability Evaluation Using Modal Analysis,” Transactions on Power Systems, vol. 7, pp. 1529 – 1543, 1992.
      [4] J. Chow, Power System Toolbox Version 2.0 Load Flow Tutorial and Functions: Cherry Tree Scientific Software, 2002.
      [5] C. W. Taylor, Power System Voltage Stability. New York: McGraw-Hill, Inc., 1994.
      [6] D. Chattopadhyay and B. B. Chakrabarti, “Reactive power planning incorporating voltage stability,” Electrical Power and Energy Systems, vol. 24, pp. 185-200, 2002.
      [7] W. Zhang and L. M. Tolbert, “Survey of Reactive Power Planning Methods,” IEEE Power Engineering Society General Meeting, vol. 2, pp. 1430 – 1440, 2005.

      + bukunya Prabha Kundur : Power System Stability and Control bab 11, 12, 14.

  8. mas…kalo kita mau analisis kestabilan kan harus analisa matrik reduksi dari Jacobian bt menentukan batas kestabilannya??
    trus gmana kita ngeliat matrik jacobiannya dari hasil load flow (saya pake contoh load flow NR yang mas kasih)??

    terima kasih sebelumnya..

  9. nanya lagi ne mas…hehe…maaf ngerepotin…kalo kita mau menentukan voltage stability margin dari sistem menggunakan singular value decomposition dari matrik Jacobian gimana caranya?? ohy…saya masih menggunakan Matlab buat perhitungannya.,..

  10. Mas…sy ada ngerjain aliran daya 3 fasa pada sistem distribusi dengan metode fast de coupled. sy mentok saat membuat programnya dengan matlab. bisa dibantu???

  11. Maaf mas saya mau tanya, bagaimana cara membentuk matriks B2 pada metode fast decoupled dalam bahasa pemrograman MATLAB??

    Terimakasih….

  12. mas, ada contoh perhitungan manual dari data sebenarnya yng dilapangan???

    misal aliran daya jaringan transmisi sampai ke distribusi yg kecil aja dlu mas…

  13. assalamualaikum mas Imaduddin,,
    ada referensi tentang perhitungan algoritma gauss seidel paralel?

  14. aq ada mas izzadt, kirim email kamu aja kesini ntr aq kirim….

  15. Mas Imaduddin, salam kenal…

    Mas, saya mau minta source code matlab penyelesaian aliran daya sistem distribusi radial…
    yang pakai matrik BIAC (Bus Injeksi ke Arus Cabang) dan matrik ACTB (Arus Cabang ke Tegangan Bus) yang ada cari arus injeksinya
    Penting mas, buat ngerjain skripsi sy….

    Thank’s ya…

  16. Assalamualaikum Mas Imaluddin…

    Mas apakah punya source code matlab penyelesaian aliran daya sistem distribusi radial?
    yang pakai matrik BIAC (Bus Injeksi ke Arus Cabang) dan matrik ACTB (Arus Cabang ke Tegangan Bus) yang ada cari arus injeksinya.

    Terima kasih sebelumnya…

Tinggalkan Balasan ke Muhammad Imaduddin Batalkan balasan

Nulis Apaan Aja Deh

all about electricity (indonesia)