Optimasi Parameter PID pada Servomotor Menggunakan Algoritma Genetika (Genetic Algorithm) dengan MATLAB
1. Pendahuluan [Kembali]
Latar Belakang :
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.
Mencapai Presisi Kontrol: Memastikan sistem kendali mampu mencapai target posisi sebesar 1,57 radian dengan tingkat error yang mendekati nol.
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.
Validasi Kinerja: Membuktikan efektivitas integrasi metode evolusioner dalam meningkatkan performa respon transien sistem kendali dibandingkan dengan metode konvensional.
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:
Inisialisasi (Populasi Awal): GA memulai dengan membuat sekumpulan solusi acak (populasi). Setiap individu dalam populasi ini mewakili satu set parameter PID yang mungkin.
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.
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.
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 melihatga.m(sebagai mesin pusat) dan bagaimanaGadposE0.mmendaftarkan operator tersebut.1. Seleksi (Selection)
Perintah seleksi bukan dipanggil secara eksplisit di dalam
ga.msebagai sebuah fungsi, melainkan dikelola oleh struktur internalga.msaat pembentukan populasi baru. Lokasi: Dalam
GadposE0.m, Anda mendefinisikan variabelselectFn(yang secara default akan menggunakanroulette.m).Koding di
GadposE0.m:- % Mendefinisikan fungsi seleksiselectFn = 'roulette';
Cara kerja: Saat program berjalan,
ga.mmenggunakan fungsi yang terdaftar diselectFnuntuk 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 kodefor 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
fevalmenjalankan fungsi crossover sepertiarithXover.m,heuristicXover.m, atausimpleXover.myang Anda daftarkan diGadposE0.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 kodefor i=1:numMuts.Koding di
ga.m:% Perintah pemanggilan operator mutasiendPop(j,:) = feval(mN, endPop(j,:), bounds, [gen mutOps(i,:)]);(Di sini
fevalmenjalankan fungsi mutasi sepertiboundaryMutate.matauuniformMutate.myang Anda daftarkan diGadposE0.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 :
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×10−6. 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)hinggasol(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.mtelah 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)hinggasol(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]
Komentar
Posting Komentar