UAS ALGORITMA GENETIKA



1. Soal Nomor 1[Kembali]

"Jelaskan secara singkat Proses Perhitungan Algoritma Genetik seperti gambar berikut."


Berdasarkan flowchart di soal, proses GA berjalan sebagai berikut:

1. Mulai

     Bangkitkan populasi awal: GA membuat sejumlah kromosom (individu) secara acak. Setiap kromosom merepresentasikan satu kandidat solusi (encoding variabel keputusan, misal Kp, Ki, Kd dalam bentuk biner atau real number).

2. Evaluasi fungsi objektif 

    Setiap individu dalam populasi dihitung nilai fitness-nya — seberapa "baik" solusi tersebut terhadap tujuan optimasi (misal error terkecil, performa terbaik). Apakah kriteria optimasi sudah ditemukan? Sistem mengecek kondisi berhenti (stopping criteria) — bisa berupa jumlah generasi maksimum tercapai, nilai fitness sudah konvergen, atau target performa tercapai.

- Ya → individu dengan fitness terbaik dikeluarkan sebagai hasil akhir.

- Tidak → proses lanjut ke tahap evolusi (seleksi–rekombinasi–mutasi).

3. Seleksi

    Individu dipilih sebagai "induk" berdasarkan fitness-nya — semakin baik fitness, semakin besar peluang terpilih (contoh metode: roulette wheel, tournament selection, rank selection).

4. Rekombinasi (crossover)

    Dua induk yang terpilih dikombinasikan gen-nya untuk menghasilkan individu baru (anak/offspring) yang mewarisi sifat dari kedua induk.

5. Mutasi

    Sebagian kecil gen pada individu baru diubah secara acak. Tujuannya menjaga keragaman populasi dan menghindari konvergensi prematur ke optimum lokal.

6. Bangkitkan populasi baru

    Individu hasil seleksi-rekombinasi-mutasi membentuk populasi generasi berikutnya, lalu proses kembali ke langkah evaluasi fungsi objektif (loop berulang) sampai kriteria optimasi terpenuhi.


2. Soal Nomor 2[Kembali]
"Rancanglah suatu Aplikasi GA sederhana dengan memakai toolbox di Matlab"



Konvergensi GA:
    Pada grafik Fitness value, terlihat Mean fitness (titik oranye) turun drastis dari ±33 di generasi awal menuju mendekati 0 hanya dalam ±10 generasi, sementara Best fitness (titik biru) sudah sangat dekat ke 0 sejak generasi pertama. Ini menunjukkan populasi GA cepat menemukan area optimum dari fungsi f(x)=x²-4x+4 yang memang berbentuk parabola sederhana (konveks, hanya punya satu titik minimum global), sehingga GA tidak kesulitan/tidak terjebak di optimum lokal.

Akurasi hasil:

  • Nilai akhir: Best = 2.06802e-09 ≈ 0, sangat dekat ke nilai analitik f(x)=0.
  • x optimal hasil GA = 2.000021, dibanding nilai eksak x=2 → selisihnya hanya ≈ 2,1×10⁻⁵. Ini membuktikan GA berhasil menemukan solusi optimal dengan akurasi tinggi.

Kriteria berhenti (Stopping Criteria):
    GA berhenti di generasi ke-57 (bukan di 100 generasi maksimum), dengan pesan "ga stopped because the average change in the fitness value is less than options.FunctionTolerance." Ini tercermin di grafik bawah: bar Stall (G) mencapai progress lebih tinggi (≈78%) dibanding bar Generation (≈62%) — artinya kriteria yang lebih dulu "penuh"/terpenuhi adalah stall generation (jumlah generasi berturut-turut tanpa perbaikan fitness signifikan), bukan limit jumlah generasi. Ini wajar dan justru bagus: GA berhenti otomatis begitu populasi sudah konvergen (tidak ada lagi perbaikan berarti), tidak perlu menghabiskan generasi sampai maksimum.

Kesimpulan: 

    penerapan GA menggunakan Optimization Toolbox MATLAB pada soal 2 berhasil menemukan solusi optimal yang sangat akurat dan konvergen secara efisien sebelum mencapai batas generasi maksimum.


3. Soal Nomor 3[Kembali]

"Buatlah aplikasi simulasi kontrol posisi servomotor DC dengan kontroler PID secara simultan untuk waktu respon yang berbeda(Simulasi Perlakuan Servomotor DC sebagai Pengendali Posisi dengan Menerapkan Algoritma Genetik). Pembuatan program simulasi dengan bantuan GAOT (genetic algorithm optimization toolbox) pada program matlab"


Jawab:

Pada aplikasi ini, kita merancang sebuah sistem kendali posisi sudut (angular position control) dari sebuah motor DC servomotor dengan menggunakan kontroler PID yang parameter-nya (Kp, Ki, Kd) dioptimalkan secara otomatis oleh Algoritma Genetika (GA). Selain ketiga parameter PID, kita juga mengoptimasi penguatan total (gain) dan konstanta umpan balik tachometer (tachogenerator) agar sistem mencapai target posisi dengan error sekecil mungkin dan waktu respon yang cepat.

Keunggulan utama menggunakan GA di sini adalah:

  • Tidak perlu melakukan trial-and-error manual yang memakan waktu.
  • Mampu mencari solusi global di ruang pencarian yang luas (5 variabel dengan rentang 0–250).
  • Dapat mengakomodasi kriteria performansi yang kompleks (misalnya gabungan error saat transient dan steady-state).
1. Pemodelan Matematis Sistem Servomotor DC

A. Parameter Fisik Motor
    Dalam kode "GadEvalposE0.m", parameter motor DC (dalam satuan SI) didefinisikan sebagai berikut:


Dengan menggabungkan persamaan listrik motor, persamaan mekanik, kontroler PID, dan umpan balik tachometer, diperoleh fungsi alih orde 4 (pembilang orde 2) sebagai berikut:
 
di mana koefisien-koefisien tersebut dihitung secara dinamis dari 5 variabel solusi GA (sol(1) sampai sol(5)):

sol(1) → berperan sebagai Kp (Proporsional)

sol(2) → berperan sebagai Ki (Integral)

sol(3) → berperan sebagai Kd (Diferensial)

sol(4) → Penguatan total (gain)

sol(5) → Konstanta tachometer (umpan balik kecepatan)

Koefisien Pembilang:
c1 = jarak * sol(4) * Torsi * sol(3);   % terkait Kd (diferensial)
c2 = jarak * sol(4) * Torsi * sol(1);   % terkait Kp (proporsional)
c3 = jarak * sol(4) * Torsi * sol(2);   % terkait Ki (integral)

Koefisien Penyebut:
u1 = ilitan * J                                     % L * J
u2 = ilitan * B + Resistan * J;                     % L*B + R*J
u3 = Resistan*B + sol(4)*Torsi*sol(5) + Ebalik*Torsi + sol(4)*Torsi*sol(3);
    
% R*B + (Gain*Torsi*Tach) + (Ebalik*Torsi) + (Gain*Torsi*Kd)

u4 = sol(4) * Torsi * sol(1);                        % Gain * Torsi * Kp
u5 = sol(4) * Torsi * sol(2);                        % Gain * Torsi * Ki

2. Sinyal Referensi dan Fungsi Tujuan (Fitness)
    A. Sinyal Referensi Posisi G(t)
Agar sistem tidak menerima step mendadak (yang dapat menyebabkan overshoot besar), sinyal referensi dibuat sebagai ramp terbatas (smooth step):

for t = 0:0.001:0.1
    if t > 0.015
        G(k) = jarak;              % konstan di 1.57 rad setelah 0.015 detik
    else
        G(k) = jarak * (t / 0.015); % naik linier dari 0 ke jarak
    end
end

    B. Perhitungan Error dan Fitness
Setelah sistem loop tertutup h = tf(num, den) dibentuk, kita hitung respons langkahnya F = step(h, T). Kemudian:

Er1 = HH - G;     % error antara respons aktual dan referensi (saat naik)
Er2 = GG - HH;    % error antara referensi ideal dan respons (saat steady)
Err1 = Er1.^2;    % kuadrat error
Err2 = Er2.^2;
Error1 = sum(Err1);
Error2 = sum(Err2);
val = 10 / (Error1 + Error2);

val adalah nilai fitness yang akan dimaksimalkan oleh GA. Semakin kecil total error kuadrat, semakin besar nilai val. Konstanta 10 hanya sebagai penskalaan agar nilai fitness tidak terlalu kecil. Dengan formulasi ini, GA akan mencari 5 parameter yang membuat respons posisi mengikuti referensi dengan sangat presisi, baik saat transient maupun steady-state.

3. Penerapan Algoritma Genetika (GAOT)
    A. Representasi Kromosom dan Ruang Pencarian
Setiap individu (kromosom) terdiri dari 5 gen (variabel) dengan batas-batas (bounds) sebagai berikut:

bt1 = [0 250];   % untuk sol(1) = Kp
bt2 = [0 250];   % untuk sol(2) = Ki
bt3 = [0 250];   % untuk sol(3) = Kd
bt4 = [0 250];   % untuk sol(4) = Gain
bt5 = [0.001 1]; % untuk sol(5) = Tachometer constant

Rentang yang lebar (0–250) memberikan kebebasan bagi GA untuk mengeksplorasi berbagai kombinasi parameter.

    B. Parameter Operasi GA
Pada fungsi GadposE0.m, konfigurasi GA diatur sebagai berikut:


    C. Mekanisme Elitisme
Pada setiap generasi, fungsi ga.m menyimpan individu dengan fitness terbaik (best), lalu setelah populasi baru terbentuk, individu terbaik tersebut menggantikan individu terburuk di populasi baru. Ini memastikan bahwa solusi terbaik tidak pernah hilang selama proses evolusi.

4. Simulasi untuk Waktu Respon yang Berbeda (Sesuai Perintah Soal)
    Untuk mengamati waktu respon yang berbeda, kita perlu mengubah nilai target posisi (jarak) atau durasi waktu simulasi. Berikut cara melakukannya:

    A. Mengubah Target Posisi (jarak)
Buka file GadEvalposE0.m, cari baris:
    "jarak = 1.57;"

Ubah nilainya menjadi, misalnya:

jarak = 0.5 → target 0.5 rad (respon lebih cepat karena lintasan lebih pendek)

jarak = 2.5 → target 2.5 rad (respon lebih lambat karena lintasan lebih jauh)

jarak = 3.14 → target 180° (respon dengan settling time lebih panjang)

Setelah diubah, simpan file dan jalankan ulang GadposE0(1000,100,'posisi').

    B. Mengubah Durasi Simulasi
Untuk melihat perilaku sistem hingga steady-state yang lebih panjang, ubah rentang waktu di GadEvalposE0.m:

for t = 0:0.001:0.1   % ubah 0.1 menjadi 0.2 atau 0.5

dan sesuaikan juga di bagian plot:

[Y,T] = step(h, 0.1); % ubah 0.1 menjadi 0.2 atau 0.5

Dengan durasi lebih panjang, kita bisa mengamati apakah sistem tetap stabil atau muncul osilasi pada waktu yang lebih lama.

    C. Pengaruh Perubahan Target terhadap Performansi
  • Target kecil (0.5 rad): GA cenderung menghasilkan parameter dengan gain lebih rendah agar tidak terjadi overshoot, sehingga settling time bisa lebih cepat.
  • Target besar (2.5 rad): GA akan mencari parameter dengan gain lebih tinggi agar motor bisa mengejar posisi jauh, tetapi berisiko menimbulkan overshoot jika tidak dituning dengan baik.
  • Fungsi fitness secara otomatis akan menyesuaikan karena error kuadrat dihitung terhadap nilai jarak yang baru. Dengan demikian, GA akan selalu mencari parameter terbaik untuk setiap target yang diberikan.
5. Interpretasi Hasil Simulasi (Berdasarkan Dokumentasi)
Dari hasil eksekusi GadposE0(1000, 100, 'posisi') yang terekam dalam Run toolbox GA.docx:
  • Nilai fitness terbaik = 64.89
Error total = 6.7 × 10⁻⁶ (sangat kecil, menunjukkan presisi tinggi)

  • Solusi optimum (5 variabel) ditemukan di dalam rentang yang ditentukan.
Grafik respons posisi menunjukkan bahwa sistem mencapai target 1.57 rad dalam waktu sekitar 0.03 detik dan stabil tanpa overshoot yang berarti.
  • Analisis grafik:
Sumbu X = waktu (detik), sumbu Y = posisi sudut (rad). Kurva berwarna biru menunjukkan respons sistem. Terlihat kurva naik dengan kemiringan yang halus (sesuai referensi ramp), lalu mencapai nilai konstan 1.57 rad dan tidak berosilasi. Ini menandakan bahwa parameter PID dan tachometer yang ditemukan GA berhasil meredam osilasi dan meminimalkan steady-state error.

6. Kesimpulan Aplikasi Nomor 3
    Aplikasi ini berhasil menggabungkan pemodelan matematis motor DC, kontroler PID, dan Algoritma Genetika dalam satu kerangka MATLAB.

  • GA mampu mencari 5 parameter secara simultan (Kp, Ki, Kd, Gain, Tachometer) tanpa memerlukan inisialisasi awal yang rumit.
  • Fungsi fitness berbasis error kuadrat memberikan penalti yang jelas terhadap penyimpangan respons, sehingga GA termotivasi untuk mencari solusi dengan presisi tinggi.
  • Fleksibilitas waktu respon dapat diuji dengan mudah hanya dengan mengubah nilai jarak (target posisi) atau durasi simulasi, sehingga aplikasi ini dapat digunakan untuk berbagai skenario kendali posisi.
  • Hasil simulasi menunjukkan performa sangat baik (error 6.7e-6, settling time 0.03 detik), membuktikan bahwa GAOT efektif untuk tuning parameter kontroler pada sistem elektromekanis.

4. Soal Nomor 4 [Kembali]

"Buatlah aplikasi GA dan simulasikan yang berhubungan dengan bidang teknik Elektro khususnya kontrol di Matlab."

Jawab:

Pada soal nomor 4, dirancang dua aplikasi kendali berbasis Algoritma Genetika (GA) di bidang Teknik Elektro, khususnya sistem kendali:

  • Kontrol Kecepatan Motor DC (Representasi sistem aktuator/elektromekanis).
  • Kontrol Tegangan Otomatis (AVR) pada Generator Sinkron (Representasi sistem tenaga listrik).

Keduanya menggunakan toolbox GAOT yang sama untuk mencari parameter PID (Kp, Ki, Kd) secara otomatis. Tujuannya adalah meminimalkan error respon terhadap referensi (step) dengan mempertimbangkan batasan overshoot dan waktu penetapan (settling time).







1. Analisis Hasil Kasus 1: Kontrol Kecepatan Motor DC

Model Sistem:

Fungsi alih plant motor DC yang digunakan adalah:

Kriteria Performansi:

Menggunakan ITAE (Integral Time Absolute Error) sebagai indikator utama, ditambah penalti jika overshoot melebihi 5%.

Interpretasi Grafik dan Output:

  • Grafik Respons Step: Menunjukkan kurva kecepatan (rad/s) terhadap waktu. Kurva naik secara eksponensial menuju nilai 1 rad/s (referensi). Terlihat tidak ada overshoot yang signifikan (karena penalti bekerja dengan baik), dan sistem mencapai kondisi tunak (steady-state) dalam waktu kurang dari 2 detik. Ini menandakan bahwa GA berhasil menemukan kombinasi Kp, Ki, Kd yang membuat sistem stabil dan responsif.
  • Grafik Konvergensi (Fitness vs Generasi): Menunjukkan kurva fitness yang meningkat tajam pada generasi awal, kemudian mendatar (konvergen) mendekati nilai maksimum. Pola ini mengindikasikan bahwa GA berhasil mengeksplorasi ruang pencarian secara efektif di awal, lalu mengeksploitasi solusi terbaik di generasi akhir.

Kesimpulan Kasus 1:

GA berhasil men-tuning PID untuk motor DC dengan performa yang baik, membuktikan efektivitasnya dalam mengoptimalkan sistem orde-2 yang stabil.

2. Analisis Hasil Kasus 2: Kontrol Tegangan AVR (Automatic Voltage Regulator)

Model Sistem:

Fungsi alih plant AVR yang digunakan adalah representasi eksitasi generator:


Kriteria Performansi:

Menggunakan ISE (Integral Square Error) untuk menekan error besar, serta penalti jika settling time > 1 detik atau tegangan akhir menyimpang jauh dari 1 pu.

Interpretasi Output Numerik (Kritis):

Dari hasil Command Window Anda, tertampil:

Kp = 20.0000

Ki = 20.0000

Kd = 10.0000

Fitness Terbaik = 0.0476

Apa arti angka-angka ini?

  1. Parameter PID mencapai batas atas:

  • Batas variabel yang ditentukan adalah Kp [0-20], Ki [0-20], dan Kd [0-10].
  • Hasil menunjukkan ketiga nilai PID menempel di batas maksimum (20, 20, 10).
  • Ini mengindikasikan bahwa ruang pencarian (bounds) yang kita berikan terlalu sempit untuk sistem AVR ini. Sistem AVR dengan konstanta waktu yang relatif besar (0.04 dan 0.5) membutuhkan gain yang sangat tinggi untuk mempercepat respon.

      2. Nilai Fitness yang Rendah (0.0476):

  • Nilai fitness = 0.0476 berarti total error + penalti bernilai sekitar 1 / 0.0476 ≈ 21.
  • Ini berarti meskipun GA sudah memaksimalkan parameter hingga batas atas, sistem masih memiliki steady-state error atau settling time yang cukup besar, sehingga fitness tidak bisa naik lebih tinggi.

      3. Grafik Konvergensi AVR:

  • Berdasarkan data deret angka yang Anda berikan (0.047618 s/d 0.047624), terlihat bahwa fitness hampir tidak berubah (hanya naik sekitar 0.000006) selama 150 generasi.
  • Hal ini menegaskan bahwa GA sudah berada di titik jenuh (saturation) karena batas variabel membatasi kemampuannya untuk mencari solusi yang lebih baik.

Apa yang Seharusnya Dilakukan?

Untuk mendapatkan performa AVR yang lebih baik (fitness lebih tinggi, misalnya > 0.9), pengguna harus:

  • Memperlebar bounds menjadi, misalnya: Kp [0-100], Ki [0-100], Kd [0-50].
  • Atau menambahkan struktur kontroler yang lebih kompleks (misalnya PID + Lead-Lag).

Kesimpulan Kasus 2:

Meskipun GA berhasil menemukan solusi "terbaik" dalam batas yang diberikan, hasil ini justru membuka pelajaran penting dalam optimasi: Pemilihan batas variabel (bounds) sangat krusial. Jika batas terlalu sempit, GA akan terjebak pada solusi di tepi batas (boundary solution) yang belum tentu optimal secara fisik.

3. Perbandingan Kedua Aplikasi (Motor vs AVR)


4. Kontribusi Aplikasi ini terhadap Bidang Teknik Elektro
Kedua aplikasi ini merepresentasikan permasalahan nyata di lapangan:
  • Motor DC → Digunakan pada robotika, konveyor, dan aktuator presisi. GA membantu menemukan parameter PID tanpa harus melakukan trial-and-error di lapangan yang berisiko merusak motor.
  • AVR → Digunakan pada pembangkit listrik untuk menjaga tegangan tetap stabil meskipun terjadi perubahan beban. Tuning AVR yang buruk dapat menyebabkan voltage collapse atau kerusakan peralatan. GA menawarkan solusi otomatis yang aman dan cepat.
Dengan menggunakan GAOT, kita dapat dengan mudah mengganti model plant (cukup ubah fungsi alih di evalMotorSpeed.m atau evalAVR.m) dan kriteria performansi (ITAE, ISE, IAE, dll.) tanpa harus mengubah keseluruhan struktur kode. Ini menunjukkan fleksibilitas dan keunggulan Algoritma Genetika sebagai alat optimasi universal di bidang rekayasa elektro.

5. Saran Perbaikan untuk Mendapatkan Hasil Lebih Baik 
Jika Anda ingin melihat hasil yang lebih impresif untuk AVR (Kasus 2), ubah batas variabel di skrip Run_Electrical_Control_GA.m pada bagian:
% Ubah dari:
bounds_PID = [0  20; 0  20; 0  10];  

% Menjadi (misalnya):
bounds_PID = [0  100; 0  100; 0  50]; 

Lalu jalankan ulang. Anda akan melihat nilai Kp, Ki, Kd tidak lagi menempel di batas atas, dan nilai fitness akan meningkat drastis (mendekati 0.9 - 1.0), serta grafik respon AVR akan menjadi lebih cepat dan stabil.

6. Kesimpulan 
Aplikasi GA yang dirancang pada soal nomor 4 berhasil dijalankan dan memberikan wawasan berharga:
  • GA mampu mencari parameter kontroler PID secara otomatis untuk dua sistem kelistrikan yang berbeda.
  • Hasil simulasi menunjukkan bahwa pemilihan batas variabel (bounds) sangat mempengaruhi kualitas solusi. Jika batas terlalu sempit, GA akan memberikan solusi di tepi batas yang sub-optimal.
  • Metode ini sangat relevan untuk diterapkan di dunia industri karena menghemat waktu, biaya, dan risiko dibandingkan metode tuning manual.
  • Secara keseluruhan, penggunaan GAOT MATLAB terbukti menjadi alat yang handal untuk menyelesaikan permasalahan optimasi di bidang Sistem Kendali Tenaga Listrik dan Mekatronika.

5. Download File [Kembali]

Komentar

Postingan populer dari blog ini