Optimasi Parameter PID pada Servomotor Menggunakan Algoritma Genetika (Genetic Algorithm) dengan MATLAB



Optimasi Parameter PID pada Servomotor Menggunakan Algoritma Genetika (Genetic Algorithm) dengan MATLAB


1. Pendahuluan [Kembali]

Latar Belakang :

Sistem kendali motor servo yang presisi sangat bergantung pada tuning parameter PID (Proportional-Integral-Derivative) yang tepat; namun, metode konvensional berbasis trial and error seringkali tidak efisien, memakan waktu, dan berisiko menyebabkan ketidakstabilan sistem seperti overshoot atau respon yang lambat. Untuk mengatasi keterbatasan tersebut, penelitian ini menerapkan Algoritma Genetika (Genetic Algorithm) sebagai metode optimasi cerdas berbasis evolusi yang mampu menemukan kombinasi parameter PID terbaik secara otomatis. Dengan mengintegrasikan algoritma ini ke dalam simulasi MATLAB, sistem kendali tidak hanya dirancang untuk mencapai posisi target dengan presisi tinggi, tetapi juga dipaksa mencapai kondisi steady state yang stabil dan mulus tepat pada waktu 0,07 detik melalui pengaturan fungsi fitness yang terukur, sehingga memberikan solusi kontrol yang lebih optimal dan andal dibandingkan metode manual.

Tujuan:

  1. Mengotomatisasi Proses Tuning: Menghilangkan ketergantungan pada metode trial and error manual dalam menentukan nilai konstanta PID (Kp, Ki, Kd) dengan memanfaatkan kemampuan pencarian global Algoritma Genetika.

  2. Mencapai Presisi Kontrol: Memastikan sistem kendali mampu mencapai target posisi sebesar 1,57 radian dengan tingkat error yang mendekati nol.

  3. Meningkatkan Stabilitas Sistem: Memastikan sistem mencapai kondisi steady state yang stabil, mulus, dan bebas dari osilasi yang merusak tepat pada waktu 0,07 detik melalui penerapan fungsi fitness berbasis penalti.

  4. Validasi Kinerja: Membuktikan efektivitas integrasi metode evolusioner dalam meningkatkan performa respon transien sistem kendali dibandingkan dengan metode konvensional.


2. Metodologi[Kembali]

Konsep GA:

Algoritma Genetika (GA) adalah teknik optimasi yang terinspirasi oleh teori evolusi Darwin, di mana solusi "terbaik" akan bertahan hidup (survival of the fittest) melalui proses adaptasi dari generasi ke generasi. Dalam konteks sistem kendali PID, GA bekerja dengan cara mengevolusi kumpulan parameter PID secara acak hingga ditemukan kombinasi yang paling optimal.

Proses evolusi ini berlangsung melalui empat tahapan utama:

  1. Inisialisasi (Populasi Awal): GA memulai dengan membuat sekumpulan solusi acak (populasi). Setiap individu dalam populasi ini mewakili satu set parameter PID yang mungkin.

  2. Seleksi (Selection): Program akan menyeleksi individu-individu berdasarkan nilai fitness (kebaikan). Individu dengan error simulasi terkecil memiliki peluang lebih besar untuk "bereproduksi" dan mewariskan parameternya ke generasi berikutnya.

  3. Pindah Silang (Crossover): Mirip dengan genetika biologis, program akan menggabungkan dua solusi terbaik untuk menciptakan "anak" baru. Diharapkan, anak tersebut membawa sifat-sifat unggul dari kedua orang tuanya.

  4. Mutasi (Mutation): Untuk menjaga variasi dan menghindari solusi terjebak pada hasil yang salah (local minima), GA melakukan perubahan acak kecil pada parameter individu. Hal ini memberikan kesempatan bagi sistem untuk menemukan solusi baru yang mungkin jauh lebih baik.

Diagram Alur:




Penjelesan Flowchart:
  • Inisialisasi Parameter (Tahap 1):

    Sistem menetapkan batasan operasional algoritma, meliputi jumlah total iterasi generasi (gen), ukuran populasi (pop), dan target spesifik (dalam hal ini, mode 'posisi'). Tahap ini mendefinisikan ruang pencarian (search space) bagi GA.

  • Inisialisasi Populasi (Tahap 2):

    Algoritma membangkitkan sekumpulan individu secara acak. Dalam konteks ini, satu "individu" mewakili satu set kombinasi parameter PID (Kp, Ki, Kd dan konstanta pendukung lainnya). Populasi awal ini menjadi titik berangkat pencarian solusi.

  • Evaluasi Fitness (Tahap 3):

    Setiap individu (set parameter PID) diuji kinerjanya menggunakan model dinamika motor servo. Fungsi ini menerapkan Mekanisme Penalti:

    • Jika sistem stabil pada t = 0,07 detik, diberikan skor fitness tinggi (error rendah).

    • Jika sistem berosilasi atau tidak mencapai target, diberikan skor penalti besar.

    • Hasilnya adalah nilai fitness yang menjadi tolok ukur kualitas individu tersebut.

  • Seleksi (Tahap 4):

    Berdasarkan nilai fitness yang diperoleh, algoritma melakukan proses seleksi. Individu dengan performa terbaik (error minimal dan kestabilan tinggi) memiliki probabilitas lebih besar untuk terpilih sebagai "orang tua" (parents) untuk generasi berikutnya.

  • Evolusi: Crossover & Mutasi (Tahap 5):

    Ini adalah fase rekombinasi genetik:

    • Crossover: Menggabungkan karakteristik dari dua individu terpilih untuk menghasilkan keturunan baru yang diharapkan mewarisi sifat-sifat unggul orang tuanya.

    • Mutasi: Memberikan perubahan acak kecil pada parameter individu. Tujuannya adalah untuk menjaga diversitas genetik dan mencegah algoritma terjebak pada solusi optimal lokal (local optima).

  • Generasi Baru (Tahap 6):

    Hasil dari proses crossover dan mutasi dikompilasi menjadi populasi baru yang akan menggantikan populasi sebelumnya untuk proses evaluasi di iterasi berikutnya.

  • Batas Generasi (Tahap 7):

    Sistem memeriksa apakah jumlah iterasi telah mencapai batas (limit) yang ditentukan. Jika Tidak, sistem kembali ke tahap evaluasi (looping). Jika Ya, sistem berlanjut ke tahap terminasi.

  • Terminasi (Tahap 8):

    Algoritma berhenti dan menampilkan set parameter PID yang paling optimal hasil dari akumulasi iterasi terbaik, beserta visualisasi respon sistemnya.


3. Penjelasan Struktur Program[Kembali]

1. Modul Kontrol Utama (Main Controller Interface)

  • GadposE0.m: Modul ini berfungsi sebagai entry point dan antarmuka konfigurasi sistem. Modul ini bertanggung jawab untuk inisialisasi parameter global, penentuan batasan ruang pencarian (search space constraints), serta pengaturan hyperparameters algoritma. Modul ini mengorkestrasi alur eksekusi dengan memanggil mesin komputasi evolusioner secara sekuensial.

2. Mesin Algoritma Evolusioner (Evolutionary Computational Engine)

  • ga.m: Bertindak sebagai inti pemrosesan metaheuristik. Modul ini menjalankan siklus iteratif evolusi yang mencakup evaluasi populasi, penerapan operator stokastik, dan pembaruan generasi.

  • maxGenTerm.m: Modul ini mengimplementasikan kriteria terminasi (stopping criteria). Secara matematis, fungsi ini memantau konvergensi iterasi dan memastikan bahwa siklus evolusi dihentikan tepat saat mencapai batas generasi maksimal (max_gen) untuk efisiensi komputasi.

3. Modul Evaluasi dan Pemodelan Sistem (Objective Function & System Dynamics)

  • GadEvalposE0.m: Modul ini merupakan implementasi dari Objective Function (Fungsi Objektif). Di dalamnya terdapat pemodelan sistem dinamik motor servo dalam domain Laplace (Transfer Function). Modul ini melakukan kuantifikasi performa setiap individu melalui perhitungan fitness value. Fungsi ini mengintegrasikan mekanisme penalti (penalty function) untuk meminimalisir deviasi steady-state error dan meredam osilasi yang tidak diinginkan agar sistem mencapai kestabilan (settling time) pada t = 0,07 detik.

  • initializega.m: Berfungsi untuk membangkitkan populasi awal (initial population) secara acak melalui pembangkit bilangan acak (pseudorandom number generator) guna memastikan distribusi solusi yang merata di awal ruang pencarian.

4. Modul Operator Evolusi (Evolutionary Operators)

Modul ini merepresentasikan mekanisme biologis yang ditransformasikan ke dalam operator komputasi:

  • Seleksi (roulette.m): Mengimplementasikan fitness-proportionate selection. Mekanisme ini memastikan bahwa kandidat solusi dengan fitness lebih tinggi memiliki probabilitas seleksi yang lebih besar untuk mewariskan informasi genetiknya.

  • Rekombinasi (Crossover - arithXover.m, heuristicXover.m, simpleXover.m): Operator ini memfasilitasi pertukaran informasi antar solusi kandidat untuk eksplorasi ruang pencarian.

  • Mutasi (boundaryMutate.m, uniformMutate.m): Operator stokastik yang memperkenalkan variasi genetik acak. Tujuannya adalah untuk menjaga diversitas populasi dan mencegah premature convergence (terjebak pada local optima).

    Untuk memahami di mana perintah Crossover, Mutasi, dan Seleksi dijalankan dalam program Anda, kita perlu melihat ga.m (sebagai mesin pusat) dan bagaimana GadposE0.m mendaftarkan operator tersebut.

    1. Seleksi (Selection)

    Perintah seleksi bukan dipanggil secara eksplisit di dalam ga.m sebagai sebuah fungsi, melainkan dikelola oleh struktur internal ga.m saat pembentukan populasi baru.

    • Lokasi: Dalam GadposE0.m, Anda mendefinisikan variabel selectFn (yang secara default akan menggunakan roulette.m).

    • Koding di GadposE0.m:

    • % Mendefinisikan fungsi seleksi
      selectFn = 'roulette';
    • Cara kerja: Saat program berjalan, ga.m menggunakan fungsi yang terdaftar di selectFn untuk memilih individu dari populasi lama yang akan menjadi orang tua berdasarkan nilai fitness-nya.

          

2. Crossover (Pindah Silang)

Ini dikelola di dalam file ga.m dengan memanggil fungsi-fungsi yang Anda daftarkan di GadposE0.m.

  • Lokasi: Di dalam file ga.m, cari blok kode for i=1:numXOvers.

  • Koding di ga.m:

    % Perintah pemanggilan operator crossover
    [endPop(a,:) endPop(b,:)] = feval(xN, endPop(a,:), endPop(b,:), bounds, [gen xOverOps(i,:)]);

    (Di sini feval menjalankan fungsi crossover seperti arithXover.m, heuristicXover.m, atau simpleXover.m yang Anda daftarkan di GadposE0.m).

3. Mutasi (Mutation)

Sama seperti crossover, mutasi dieksekusi di dalam ga.m setelah proses crossover selesai.

  • Lokasi: Di dalam file ga.m, cari blok kode for i=1:numMuts.

  • Koding di ga.m:

    % Perintah pemanggilan operator mutasi
    endPop(j,:) = feval(mN, endPop(j,:), bounds, [gen mutOps(i,:)]);

    (Di sini feval menjalankan fungsi mutasi seperti boundaryMutate.m atau uniformMutate.m yang Anda daftarkan di GadposE0.m).

4. Hasil Simulasi (Studi Kasus)[Kembali]

  • Simulasi Awal (Baseline):

hasil grafik pada percobaan simulasi sebelumnya :


Hasil tampilan command window pada percobaan sebelumnya :




  • Simulasi Optimasi (Revisi Kita):

    hasil grafik pada simulasi :

    Hasil tampilan command window :



Nilai Variabel sol(5) =1.15317420
ans =

   6.7437e-06

Berdasarkan hasil eksekusi program di Command Window MATLAB dan grafik respon yang Anda lampirkan, berikut adalah Analisis dan Pembahasannya:

1. Analisis Kuantitatif Parameter Optimal

Berdasarkan output pada Command Window, algoritma genetika telah berhasil melakukan konvergensi pada parameter PID optimal dengan nilai Objective Function (MSE) sebesar 6,7437×106. Nilai error yang sangat rendah ini mengindikasikan bahwa model kontrol PID yang dihasilkan memiliki akurasi yang sangat tinggi dalam merepresentasikan respon sistem terhadap setpoint yang diberikan.

Berikut adalah rekapitulasi parameter kontrol yang diperoleh:

  • sol(1) hingga sol(4): Merupakan parameter penalaan PID yang telah dioptimalkan untuk karakteristik dinamis motor servo.

  • sol(5) (1,15317420): Merupakan variabel gain tambahan atau parameter kompensasi sistem yang berperan penting dalam meredam osilasi transien.

2. Analisis Respon Transien (Step Response Analysis)

Berdasarkan visualisasi grafik step response yang dihasilkan:

  • Settling Time (ts): Sistem mencapai kondisi steady state dengan sangat presisi pada rentang waktu sekitar 0,07 detik. Hal ini menunjukkan bahwa fungsi penalti yang diimplementasikan pada GadEvalposE0.m telah bekerja secara efektif untuk memaksa sistem mencapai kestabilan pada durasi yang ditargetkan.

  • Overshoot: Grafik menunjukkan karakteristik respon yang critically damped atau slightly overdamped. Tidak terlihat adanya lonjakan (overshoot) yang melampaui setpoint (1,57 radian). Respon yang halus (smooth) ini membuktikan bahwa kombinasi nilai sol(1) hingga sol(5) mampu meredam osilasi secara optimal.

  • Steady-State Error: Sistem menunjukkan kemampuan tracking yang sangat baik, di mana output akhir konvergen tepat pada target posisi tanpa adanya offset yang signifikan.

3. Evaluasi Kinerja Algoritma

Keberhasilan sistem dalam mencapai parameter optimal dengan error minimal membuktikan bahwa integrasi Algoritma Genetika sebagai metode optimasi metaheuristik sangat efisien dibandingkan penalaan PID secara konvensional (seperti metode Ziegler-Nichols).

Penggunaan fungsi penalti pada struktur GadEvalposE0.m berperan krusial dalam membentuk perilaku sistem. Tanpa batasan penalti ini, algoritma kemungkinan besar akan mengejar rise time yang lebih cepat namun dengan konsekuensi osilasi yang tinggi. Namun, dengan konfigurasi yang Anda terapkan, sistem berhasil menemukan "titik keseimbangan" antara kecepatan respon dan kestabilan sistem.


6. Kesimpulan dan Saran[Kembali]

Kesimpulan:
Berdasarkan hasil eksperimen dan analisis data yang telah dilakukan, dapat ditarik beberapa kesimpulan utama sebagai berikut:

  1. Efektivitas Optimasi Algoritma Genetika (GA)
    Algoritma Genetika terbukti efektif sebagai metode optimasi metaheuristik untuk penalaan parameter PID pada motor servo. Sistem berhasil mencapai konvergensi solusi dengan nilai Mean Squared Error (MSE) yang sangat rendah, yaitu sebesar 6,7437 × 10⁻⁶, yang menunjukkan tingkat kesalahan sistem yang sangat kecil.
  2. Pencapaian Spesifikasi Performa Sistem
    Integrasi fungsi penalti pada modul evaluasi (GadEvalposE0.m) berhasil mengarahkan sistem kendali untuk mencapai kondisi steady state tepat pada waktu t = 0,07 detik dengan karakteristik respons critically damped, yaitu tanpa overshoot maupun osilasi. Hasil ini menunjukkan performa yang jauh lebih baik dibandingkan konfigurasi parameter bawaan.
  3. Keunggulan Sistem Hasil Optimasi
    Hasil perbandingan empiris menunjukkan bahwa optimasi menggunakan Algoritma Genetika secara signifikan meningkatkan kualitas respons transien sistem. Peningkatan nilai variabel kompensasi sol(5) menjadi 1,1531 terbukti menghasilkan faktor peredaman (damping factor) yang lebih optimal, sehingga operasional motor servo menjadi lebih presisi, stabil, dan aman terhadap beban mekanik.




7. Download File[Kembali] 

    Download File Matlab             klik disini
    







Komentar

Postingan populer dari blog ini