Algoritma Genetika secara umum dipakai untuk mendapatkan optimasi dari suatu permasalahan. Optimasi yang dimaksud dapat berapa maksimasi ataupun minimasi suatu fungsi yang didefinisikan untuk suatu permasalahan, seperti yang diberikan pada Sub Bab 2.8. Pada pembahasan Tugas Akhir ini Algoritma Genetika akan dipakai sebagai alternatif lain untuk menghitung parameter-parameter yang timbul pada pcrmasalahan studi aliran daya. Parameter- parameter tersebut antara lain tegangan pada tiap Bus, daya aktif dan daya reaktif pada masing-masing Bus, serta besarnya aliran daya pada saluran. Penggunaan metode Algoritma Genetika dimaksudkan untuk menangani perhitungan aliran daya dengan memperhitungkan aspek optimasi. Proses optimasi terjadi pada tahap-tahap seleksi, crossover, dan mutasi dari kromosom-kromosom yang membentuk populasi. Hal ini akan dijelaskan lebih lanjut pada Sub Bab 4.3.
Dalam Tugas Akhir ini juga digunakan program yang telah jadi, yang menggunakan metode Newton-Raphson untuk menyelesaikan masalah aliran daya. Program tersebut adalah PSA&D Sojiwarc 2'"1 lul. Preliminary Version, chapler 7.
Penggunaan metode Newlon-Raphson seperti yang telah dijelaskan pada Sub Bab 2.7. dapat dirangkum menjadi sebuah flowcharl atau blok diagram.
Flowchart atau blok diagram penggunaan metode Newton-Raphson secara umum dan sederhana diberikan pada Gambar 4.1. berikut ini.
START
Baca data Bus dan data saluran
Gambar 4.1. Blok Diagram Metode Newlon-Raphson 49
Baca harua
r
te^an^an
ir
Iterasi = r
0
Bus awal
Hitung daya nyata dan daya semu
P,,u<i= I'',. I ! V,,I {Gnco.s 6m i Bpgshi 0,ni)
AOp,„l~ Opipn; Op,nl p = l , 2 , 3, ...n
Hitung elemen-elemen Jacobian
Koreksi tegangan A/'l [H N^A0
6Q
Hilung tegangan Bus baai
Gambar 4.1. Blok Diagram Metode Newton-Rapkson (sambungan)
Gambar 4.1. Blok Diagram Metode Newton-Raphson (sambungan)
4.1. Penggunaan Metode Newton-Raphson
Daiam PSA&D Software 2"d Ed. Preliminary Version kita dapat menyelesaikan permasalahan aliran daya dengan menginputkan data-data yang diminta meliputi data Bus, data saluran, dan data transformator. Program ini mempunyai urutan kerja yang sama namun lebih kompleks dibandingkan dengan penggunaan metode Newton-Raphson secara umum dan sederhana. Hal ini disebabkan oleh pemakaian program dalam aplikasi secara langsung yang menuntut tingkat keakuratan yang lcbih tinggi dalam analisa dan perhitungan.
Data yang juga dibutuhkan pada program ini adalah:
Transformer's Tapping : untuk mengevaluasi nilai tegangan yang melalui transformer akibat dari panjangnya saluran yang dapat mengakibatkan timbulnya voliage drop.
- Qmm dan Qmax dari /JFBus: menyatakan batas Q maksimum dan Q minimum pada PV Bus. Bila pada perhitungan atau iterasi batas-batas ini dilampaui maka PV Bus akan berubah menjadi PQ Bus yang mempunyai nilai Q sama dengan Q minimum bila Qct,i < Qmt„ atau Q maksimum bila Qcl,i >
Line's Maximum Power Raling: untuk mengetahui besarnya daya maksimum yang dapat dialirkan melalui saluran dalam jangka waktu tertentu serta memberikan informasi bila daya yang melalui saluran telah melebihi rating maksimumnya.
maksimumnya.
Penggunaan metode Newton-Raphson pada Program PSA&D Soffware
•>ml
2 Ed. PreJiminary Version, chapter 7 dapat dirangkum menjadi sebuah flowchart atau blok diagram seperti yang diberikan pada Gambar 4.2. berikut ini.
1. Data Bus 2. Data line 3.Data trafo
4.Selesai->KEMBAU
PILIHAN 1. Inisialisasi file 2. Menambah atau
mengganti Bus saluran atau trafo 3.Menghilangkan Bus
atau saluran atau trafo
4. Tampilkan sebuah Bus atau saluran atau trafo 5. Tampilkan semua
Bus atau saluran atau trafo 6. Selesai
PILIHAN 1. Perbarui data input 2. Jalankan program 3. Tampilkan data output 4. Ston
Buka file data input Bus, line, trafo dan baca data input.
Selting Tapping trafo
Setting kriteria konvergensi:
1. Jumlah iterasi 2. Toleransi kesalahan
KEMBALl
Setting tegangan awal Bus dan sudutnya, setiing Tapping awal trafo, mulai perhitungan baru atau melanjutkan yang sudah ada.
Selting index iterasi i =1
Tampilkan file- file data output
Gambar 4.2. Blok Diagram Program Dengan Metode Newton-Raphson
Hitung Matrik Y Bus
Hitung vektor Ay
Hitung Matrik Jacobian
Cek untuk menghapus baris dan kolom pada matrik Jacobian untuk setiap PV Bus
J.Ax - Ay
Y
Hitung PG dan QG untuk Slack Bus
D
Perbarui tegangan Bus dan
Kriteria konvergensi tercapai?
Cek limit Q untuk PVBus
Gambar 4.2. Blok Diagram Program Dengan Metode Newton-Raphson (sambungan)
Hitung aliran daya pada Saluran dan Trafo
Buka file-file data output dan masukkan data output ke file data
1
KF.MRAl.l
Ganti73f'Bus menjadi Load Bus
Cek tegangan PV Bus yang mempunyai Tapping trafo
-0.4%<PVBus<0.4%
Y ^ )
LFbah
r
tapping trafo
Gambar 4.2. Blok Diagram Program Dcngan Metode Newfon-Raphson (sambungan)
4.2. Penggunaan Metode Algoritma Genetika
Penyelesaikan perhitungan aiiran daya dengan menggunakan metode Algoritma Genetika memerlukan urutan langkah-langkah kerja secara umum seperti yang telah diberikan pada Sub Bab 2.8. Gambar 2.12.
4.2.1. Blok Diagram Keseluruhan
Adanya blok diagram ini adalah untuk menjelaskan urut-urutan dari program keseluruhan yang dibuat. Karena program dibuat dalam M-files maka disini setiap blok dengan huruf tebal akan mewakili M-files yang ada. Seluruh blok diagram tergabung dalam///e ProgramUtama.m.
( START j
r
InputDataBus f InputDataLine
InnutTrafo
1
NoGenerasi = I r
/
{
Se/ting MaxTolerance
r
Setting MaxGenerasi
r Settinz Pm dan Pc
r Nilai awal
r Evaluate pop
Gambar 4.3. Blok Diagram Program Dengan Metode Algoritma Genetika
For NoGenerasi = 2 MaxGenerasi
r
Select
i
Kawin Silanj»
f Mutation
r
Evaluate ofs r NewGen
r
Evaluate oon
D
MaxTolerance Terpenuhi ?
Gambar 4.3. Blok Diagram Program Dengan Metode Algoritma Genetika (sambungan)
Batas PV
Y
( STOP J
T
Gambar 4.3. Blok Diagram Program Dcngan Metode Algoritma Genctika (sambungan)
dengan cuplikan listing programnya, secara lengkap terdapat pada Lampiran 2.
4.3.1. Inisialisasi Populasi
Populasi merupakan sekumpulan individu. Dalam metode Algoritma Genetika, individu-individu dikenal dengan istilah chromosome. Populasi mula- mula dibangkitkan secara acak sehingga menghasilkan variasi chromosome yang berbeda nilainya. Chromosome yang berbeda nilainya menggambarkan kemungkinan solusi yang berbeda pula pada setiap percobaan perhitungan bergantung pada kriteria berhenti yang dipakai setelah semua proses algoritma dikerjakan. Untuk simulasi perhitungan aliran daya ini populasi yang dibangkitkan dapat diatur jumlahnya dengan mengubah nilai variabel MaxKromosom pada ProgramUtama.m.
Setiap chromosome dalam sekumpulan populasi terdiri dari gen-gen yang menyusun chromosome tersebut. Jumlah gen sesuai dengan jumlah Bus yang ada pada sistem Bus yang akan dianaiisa. Gen-gen penyusun chromosome merupakan bilangan komplek yang dibangkitkan secara acak, yang menggambarkan besarnya tegangan kompleks setiap Bus (Vn= an ± bin, n=1, 2, 3,..., n), akan berbeda untuk setiap percobaan. Sebagai contoh untuk sistem tiga Bus, chromosome yang terbentuk dari parameter jumlah_bus seperti pada gambar dibawah ini.
osome
ai + bii
tL
a2±bi2 t
a,±
t
bi3
Tegangan Bus 1 Tegangan Bus 2 Tegangan Bus 3
(Gen\) (Gen2) (Gen3)
Gambar 4.4. Definisi Chromosome
Cuplikan program, untuk membangkitkan populasi awal yang terdapat pada///e Nilaiawal.m adalah sebagai berikut:
a=rand(MaxKromosom,jumlah_bus);
b=rand(MaxKromosomjumlah_bus);
InitPop=complex(Real_complex,Imag_complex);
Pop( 1 :MaxKromosom, 1 :jumlah_bus) = InitPop( 1 :MaxKromosom; 1 :jumlah_bus);
4.3.2. Evaluasi Populasi Awal
Populasi awal yang telah terbentuk dievaluasi nilainya dengan menggunakan fungsi fitness. Fungsi fitness adalah hasil indeks dari Algoritma Genetika untuk menentukan kelangsungan hidup setiap chromosome.
Pendefinisian fungsi itu menurut hasil yang diperlukan dari suatu permasaJahan.
Dalam permasalahan perhitungan aliran daya ini ada beberapa tahap yang harus dikerjakan untuk menentukan nilai fitness dari setiap chromosome. Tahap-tahap tersebut adalah:
Menghitung nilai Pca/dan Ocat-
- Menghitung Nilai AP dan AQ yaitu Pvec-PCai, dan Qspec-Qcai.
- Menghitung nilai fitness.
Rumus yang digunakan untuk menghitung nilai fitness merupakan ekspresi matematika untuk meminimumkan variabel-variabel yang akan dicari nilainya.
Hal ini berkaitan dengan minimasi galat yang didapat dari nilai yang sudah diketahui (specified) dan nilai yang akan dihitung (calculated) pada permasalahan perhitungan aliran daya. Dengan demikian fungsi fitness dapat didefinisikan sebagai berikut.
fitness = J(EA/>J+(IA0J (4.1)
dengan n: 1, 2 , 3 , . . . , jumlahbus
Nilai fitness menggambarkan besarnya galat. Semakin kecil nilai fitness yang diperoleh maka akan semakin baik nilai daya aktif dan reaktif hasil perhitungan yang dihasilkan pada setiap Bus, sedangkan nilai tegangan yang dihasilkan akan bervariasi pada setiap percobaan karena nilai populasi awal yang dibangkitkan acak. Setelah menentukan fungsi fitness dan menghitung nilai fitness, kita menghitung nilai fitness akumulatif, probabilitas, dan probabilitas akumulatif dari chromosome pertama sampai chromosome terakhir dalam satu populasi. Urutan
Persamaan 4.1.
- Menghitung nilai fltness akumulatif
- Membangkitkan bilangan random dari 0 sampai 1 untuk setiap chromosome
Menentukan nil&i fi/ness terkecil dan ni\ai fitness terbesar.
- Menentukan nilai filness' untuk setiap chromosome sedemikian sehingga dihasilkan nilai fttness baru yang akan digunakan untuk menentukan nilai fitness akumulatif berdasarkan rumus berikut ini.
Fi(ness'=fitnessmm + filnessmax -fifness (4.2) Cuplikan program yang terdapat pada file Evaiuatepop.m adalah sebagai berikut:
for w=l :MaxKromosom for i=l:jumlah_bus
if spec_value(i,2) ~= 0
Delta_P(w,i)=P_cal(w,i) - spec_value(i,2);
end
if spec_value(i,3) ~= 0
Delta_Q(w,i)=Q_cal(w,i) - spec_value(i,3);
end end
Fitness(w, 1 ^^s^rt^sum^DeltaP^w, 1 :jumlah_bus).A2)+
sum(Delta_Q(w, 1 :jum1ah_bus).A2));
end
a=sortrows(Fitness( 1 :MaxKromosom, 1));
for \v= 1 :MaxKromosom
Fitness(w,3)=a(l,l) + a(MaxKromosom,l) - Fitness(w,l);
end F a k = 0;
for w=l :MaxKromosom
F_ak = F ak + Fitness(w,3);
Fitness(w,2)=F_ak;
end
probabilitas=zeros(MaxKromosom,2);
probak=0;
for cnt=l:MaxKromosom
probabilitas(cnt,l)=Fitness(cnt,3)/Fitness(MaxKromosom,2);
prob_ak=prob_ak+probabilitas( cnt, 1);
probabilitas( cnt,2)=prob_ak;
end
Pop( 1 :MaxKromosom j umlah_bus+1 :j umlah_bus+2)=
Fitness( 1 :MaxKromosom, 1:2);
Pop( 1 :MaxKromosom.jumlah bus+3 :jumlah_bus+4)=
probabilitas( 1 :MaxKromosom, 1:2);
4.3.3. Seleksi
Proses seleksi adalah proses pemilihan chromosome (disebut parent) dari generasi ke-n untuk masuk ke proses crossover. Proses seleksi menggunakan metode Roullete Wheel seperti yang telah dijelaskan pada Sub Bab 2.9.1.3. Pada metode Roullete Wheel, chromosome yang memiliki nilai fitness besar memiliki probabilitas akumulatif besar pula sehingga mempunyai peluang yang besar untuk terpilih. Pada permasalahan perhitungan aliran daya, chromosome terpilih haruslah chromosome-chromosome yang mempunyai nilai fitness kecil karena permasalahan perhitungan aliran daya berkaitan dengan proses minimasi. Agar chromosome-chromosome yang mempunyai nilai fitness kecil tersebut dapat terpilih, kita membalik nilai fitness mula-mula menggunakan Persamaan 4.2. Nilai probabilitas dan probabilitas akumulatif kemudian dihitung dari fitness'. Dalam prosedur Roullete Wheel selanjutnya akan dipilih chrornosome-chromosome pertama yang mempunyai nilai probabilitas lebih besar dibandingkan dengan nilai bilangan random yang dibangkitkan pada proses seleksi ini. Cuplikan program dalam file Select.m untuk mendapatkan populasi terseleksi adalah sebagai berikut:
for cnt=l :MaxKromosom
end
Pop_terseleksi(cnt,l:jumlah_bus)=Pop(cntl,l:jumlah_bus);
Pop_terseleksi(cnt jumlah_bus+1 )=Bil_random(cnt, 1);
end
4.3,4. Crossover
Proscs crossover menggunakan arilhmalic crossover dcngan langkah- langkah seperti yang telah dijelaskan pada Sub Bab 2.9.2.1. Pasangan chromosome berasal dari chromosome-chromosome terpilih yang dihasilkan pada proses seleksi. Hasil crossover adalah chromosome-chromosome yang mempunyai bilangan random kurang dari atau sama dengan Pc (Probabilitas crossover). Nilai Pc yang semakin besar memperbesar peluang bagi setiap pasang chromosome untuk dicrossover. Rumus yang digunakan diberikan pada Sub Bab 2.9.2.1. Offspringl dan OJfspring2 (menandakan urutan chromosome dari chromosome ke-1 sampai dengan chromosome ke-n) pada implementasi program menggunakan variabel Hasilcross, sedangkan parent menggunakan variabel Popjterseleksi. Cuplikan program untuk proses crossover pada file KawinSilang.m adalah sebagai berikut:
forcntl = l:jumlah_bus r = rand;
Hasil_cross(No_ofs,cntl)=Pop_terseleksi(2*cnt-l,cntl)*r+
Pop_terseleksi(2*cnt,cntl )*( 1 -r);
Hasil_cross(No_ofs+l,cntl)=Pop_tcrsclcksi(2*cnt-l,cntl)*(l-r)+
Pop_terseleksi(2*cnt,cntl )*r;
end
4.3.5. Mutasi
Proses mutasi menggunakan prosedur mutasi dengan arah bebas (to mutate chromosome in a free diredion) seperti yang telah dijelaskan pada Sub
Bab 2.9.3.3. Proses mutasi akan dilakukan apabila bilangan random dari suatu chromosome (hasil crossover) lebih kecil atau sama dengan Pm (probabilitas mutasi). Probabilitas mutasi adalah suatu nilai yang ditentukan dari 0 sampai 1 yang menentukan apakah suatu chromosome dimuatasi atau tidak. Semakin besar nilai Pm, semakin besar pula peluang suatu chromosome dimutasi, demikian juga sebaliknya. Cara menentukan arah mutasi adalah dengan membangkitkan sebuah bilangan random lagi dari 0 sampai 1. Jika nilai bilangan random lebih besar dari 0.5, mutasi dilakukan dengan cara mcnambahkan scbuah bilangan random lainnya yaitu M tcrhadap chromosome terscbut. Jika nilai bilangan random kurang dari 0.5, chromosome terscbut dikurangi dcngan nilai M Hasil proses mutasi disimpan dalam variabel Ofs, yang menyimpan chromosome-chromosome yang dimutasi dan chromosome-chromosome yang tidak dimutasi. Cuplikan program untuk proses mutasi pada///e Mutation.m adalah sebagai berikut:
for cnt = 1 :No_ofs-l forcntl = l:jumlah_bus
ifc(cnt,cntl)<= Pm d = rand;
M = rand;
i f d > 0 . 5
Ofs(cnt,cntl)=Hasil_cross(cnt,cntl)+M;
else
Ofs(cnt,cntl )=Hasil_cross(cnt,cnt end
else
Ofs(cnt,cntl)=Hasil_cross(cnt,cntl);
end end end
4.3.6. Evaluasi Hasil Mutasi
Populasi yang dihasilkan dari mutasi dievaluasi dengan langkah-langkah yang sama seperti tahap evaluasi awal, yaitu:
for vv = 1 :MaxKromosom for i = l:jumlah_bus
for k=l :jumlah_bus
P_cal(w,i)=P_cal(w,i) + a(i,k)*((real(Y_BUS(i,k))*cos(angle(Ofs(w,i)>
angle(Ofs(w,k)))+imag(Y_BUS(i,k))*sin(angle(Ofs(w,i))- anglc(Ofs(w,k))))*abs(Ofs(w,i))*abs(Ofs(w,k)));
Q_cal(w,i)=Q_cal(w,i) + a(i,k)*((real(Y_BUS(i,k))*sin(anglc(Ofs(w,i))- angle(Ofs(w,k)))-imag(Y_BUS(i,k))*cos(angle(Ofs(w,i))- angle(Ofs(w,k))))*abs(Ofs(w,i))*abs(Ofs(w,k)));
end end end
for w=l :MaxKromosom for i=l:jumlah_bus
if spec_value(i,2) ~= 0
Delta_P(w,i)=P_cal(w,i) - spec_value(i,2);
end
if spec_value(i,3) ~= 0
Delta_Q(w,i)=Q_cal(w,i) - spec_value(i,3);
end end
Fitness(w, 1 )=sqrt(sum(Delta_P(w, 1 :jumlah_bus).A2)+
sum(Delta_Q(w, 1 :jumlah_bus).A2));
end
Ofs( 1 :MaxKromosom,jumlah_bus+1) = Fitness( 1 :MaxKromosom, 1);
4.3.7. Pembentukan Generasi Baru
Pembentukaan generasi baru dilakukan secara Steady State yaitu populasi dibentuk sebanyak variabel MaxK.romosom. Populasi dari evaluasi hasil mutasi digabungkan dengan populasi dari generasi sebelumnya. Generasi baru terbentuk dari sejumlah chromosome baik yang berasal dari variabel Ofs maupun yang berasal dari generasi sebelumnya, yang memiliki nilai fitness terkecil sampai dengan batas MaxKromosom. Keuntungan dari cara Steady Slate ini adalah kita tidak akan kehilangan chromosome-chromosome dengan nilai fitness yang lebih kecil. Jika pada langkah evaluasi hasil mutasi didapatkan sejumlah chromosome dengan nilai fitness yang lebih besar, chromosome terscbut akan dibuang, digantikan dengan chromosome dcngan nilai fitness lebih kecil dari generasi sebelumnya. Setelah generasi baru terbentuk, langkah selanjutnya adalah melakukan evaluasi terhadap generasi yang baru seperti pada Sub Bab 4.2.2.
Demikian proses ini diulangi terus sampai tercapai krileria berhenti yang diinginkan. Dalam Tugas Akhir ini kriteria berhenti yang dipilih adalah generasi maksimum yang diinginkan, yang tersimpan dalam variabel MaxGenerasi.
Program untuk mendapatkan generasi baru diberikan pada//7e NewGen.m berikut ini.
a = [Ofs(1:No_ofs-l,l:jumlah_bus+l); Pop(l:MaxKromosom,l:jumlah_bus+l)];
a = sortrows(a,jumlah_bus+1);
Pop(l:MaxKromosom, l:jumlah_bus+l) = a(l:MaxKromosom, l:jumlah_bus+l);
4.3.8. Pemilihan Tegangan Bus
Pemilihan tegangan Bus hasil dari percobaan didasarkan pada urutan langkah-langkah berikut ini:
Nilai fiiness (pada kolom jumlah bus+1) pada kritcria berhenti (MaxGenerasi) lebih kecil daripada nilai yang diinputkan pada variabel MaxTolerance
- Menyimpan chromosome-chromosome pada variabel Tempresult yang dihasilkan pada setiap generasi yang memiliki nilai fitness lebih kecil daripada nilai yang diinputkan pada variabel MaxTolerance
dalam variabel Temp_result dan program untuk memilih tegangan Bus adalah sebagai berikut:
for w = 1 :MaxKromosom
if g(wjumlah_bus+l) < MaxTolerance cnt_result = cnt_result+1;
Temp_result(cnt_result, 1 :jumlah_bus+1 )=g(w, 1 :jumlah_bus+1);
Temp_result(cnt_resultjumlah_bus+2)=No_gcnerasi;
end end
a = sort(Temp_result(1 :end,l :jumlah_bus));
Tegangan = a(end,l :jumlah_bus)
4.3.9. Perhitungan Daya Bus
Rumus yang digunakan pada prosedur perhitungan daya Bus terdapat pada Sub Bab 2.6. Persamaan 2.32. Nilai tegangan pada setiap Bus merupakan besaran kompleks yang diambil dari hasil prosedur pemilihan tegangan Bus.
Besarnya daya Bus tersimpan dalam variabei DayaBus. Cupiikan program yang tersimpan dalam //7e DayaBUS.m adalah sebagai berikut:
for i = l:jumlah_bus for k =1 :jumlah_bus
Tegangan( 1 ,k) * Y_BUS(i,k));
end end
for i = Ijumlahbus
Daya(l,i) = conj(Tegangan(l,i)) * end
for i = l:jumlah_bus
Daya_Bus(i, 1 )=data_bus(i, 1);
Daya_Bus(i,2)=real(conj(Daya( 1 ,
4.3.10. Perhitungan Aliran Daya Saluran
Rumus yang digunakan pada prosedur perhitungan aliran daya pada saluran terdapat pada Sub Bab 2.6. Persamaan 2.34. (contoh untuk aliran daya pada saluran antara Bus ke-2 dan Bus ke-3). Nilai daya pada saluran dihitung dalam dua arah diantara dua buah Bus, merupakan besaran komplek dimana nilai tegangannya juga diambil dari hasil prosedur pemilihan tegangan Bus. Akan tampak bahwa besarnya daya pada saluran akan berbeda-bcda untuk setiap percobaan yang dilakukan karcna adanya variasi tegangan yang dihasilkan melalui proses Algoritma Genetika. Besarnya aliran daya pada saluran tersimpan dalam variabel Up dan Down, masing-masing untuk perhitungan dua arah antara dua buah Bus. Cuplikan program yang tersimpan dalam file DayaLine.m adalah sebagai berikut:
forcntl = l:jumlah_line Up(cntl,l)=cntl;
Up(cntl,2)=data_line(cnt1,2);
Up(cnt1,3)=datajinc(cntl,3);
Up(cnt 1,4 )=Tegangan( 1 ,data_l ine(cnt 1,2))*
conj((Tegangan( 1 ,data_line(cntl ,2))- Tegangan(l,datajine(cntl,3)))/
(l/Y_BUS(data_line(cntl,2),dataJine(cntl,3)))), end
forcntl = ljumlahjine Down(cnt 1,1 )=cnt 1;
Down(cnt 1,2)=data_l ine(cnt 1,3);
Down(cntl ,3)=data_line(cntl ,2);
Down(cntl,4)=Tegangan(l,dataJine(cnt1,3))*
conj((Tegangan(l ,data_line(cntl ,3))- Tegangan( 1 ,data_line(cntl ,2)))/
(l/Y_BUS(dataJine(cntl,2),data_line(cntl,3))));
Perhitungan aliran daya pada transformator menggunakan rumus yang sama seperti pada perhitungan aliran daya pada saluran. Nilai daya pada transformator juga dihitung dalam dua arah pada dua Bus yang menggarabarkan sisi primer dan sisi sekunder dari transformator tersebut. Besarnya aliran daya pada transformator tersimpan dalam variabel up dan down, masing-masing untuk perhitungan dua arah antara dua Bus. Cuplikan program yang terdapat dalam file DayaTrafo.m adalah sebagai bcrikut:
forcnti = 1:jumlah_trafo up(cntl,l)=cntl;
up(cntl ,2)=trafo(cntl ,2);
up(cntl ,3)=trafo(cntl ,3);
up(cnt 1,4)=Tegangan( 1 ,trafo(cnt 1,2 ))*
conj((Tegangan( 1 ,trafo(cnt 1,2))-Tegangan( 1 ,trafo(cnt 1,3)))/
(l/Y_BUS(trafo(cntl,2),trafo(cntl,3))));
end
forcntl = ljumlahtrafo down(cntl,l)^cntl,
down(cntl ,2)=trafo(cnt1,3);
down(cntl,3)=trafo(cntl ,2);
down(cnt 1,4)=Tegangan( 1 ,trafo(cnt 1,3))*
conj((Tegangan( 1 ,trafo(cntl ,3))-Tegangan( 1 ,trafo(cntl ,2)))/
(l/Y_BUS(trafo(cntl,2),trafo(cntl,3))));
end