16
3.3.1. Perangkat Lunak Microcontroller
Pada bagian ini akan dijelaskan mengenai perancangan perangkat lunak microcontroller yang meliputi bagian controller, bagian pengiriman data ke user
interface, dan bagian penerimaan data updaterdari user interface. Gambar 3.4 menunjukkan diagram alir progam yang diimplementasikan pada
microcontroller.
Start
Inisialisasi Sistem
Ambil data dari HC-SR04
Cek apakah ada metode kendali yg digunakan dari user interface?
Tidak
Prosess Kontroll dengan on-off PID Fuzzy
YA
Kirim data Actual ke userinterface
dengan serial
Gambar 3.4. Diagram alir Sistem pada Microcontroller
Program controller melakukan pengambilan data sensor HC-SR04, konversi data ke jarak dalam satuan cm, melakukan proses kontrol dengan metode on-off PID
Fuzzy. Berikut adalah penjelasan diagram alir tersebut:
17
Inisialisasi sistem yang meliputi parameter PID yang digunakan Kp, Ki, Kd, dan setpoint yang diambil dari EEPROM, serta inisialisasi Timer yang
digunakan untuk pewaktuan time sampling PID dilakukan. Diambil data dari sensor HC-SR04 yang berupa waktu dalam mikrodetik
yang kemudian akan di konversi ke satuan cm Sistem akan melakukan cek metode kendali yang digunakan, sistem akan
menerima data dari user interface dan kemudian akan melakukan perhitungan bedasarkan metode tersebut.Pada bagian penerimaan data ini
terdapat 5 data yang dikirimkan dari user interface yaitu setpoint, Kp, Ki, Kd, dan mode kendali yang digunakan.
Jika metode on – off yang dipilih maka hanya akan terjadi 2 kondisi yaitu
on saat nilai aktual setpoint dan off saat nilai aktual setpoint Jika metode PID yang dipilih maka akan dilakukan kalkulasi PID dan
dilakukan penghitungan error, yaitu error = set point - aktual. Kemudian error yang didapatkan digunakan untuk menghitung ut, sehingga
didapatkan ut = Kp error + Ki sum of error + Kd error – last error.
Jika metode Fuzzy yang dipilih maka akan dibuat himpunan – himpunan
fuzzy seperti pada Gambar 3.11 di bawah. Himpunan input adalah himpunan error yang dibagi menjadi 4 himpunan yaitu untuk error kecil
sekali, error kecil, error besar, dan error besar sekali. Proses perhitungan fuzzy dilakukan berdasarkan metode fuzzy yang diterapkan oleh Sugeno.
Dipilih metode Sugeno karena metode ini karena perhitungan lebih efisienoutput sistem berupa himpunan tegas bukan himpunan fuzzy.
µerror Kecil Sekali
Kecil Besar Besar Sekali
-0. 3 1 2 3 4 5
Input Variabel error
18
Kemudian akan dilakukan perhitungan derajat keanggotaan masing –
masing himpunan tersebut.Perhitungan dilakukan seperti di bawah: 1. Himpunan error kecil sekali
� error = { − error .
jika �� � − . jika − .
�� � jika �� �
2. Himpunan error kecil
� �� � = {
jika �� � �� � + . . jika
�� � jika
�� � − �� � jika
�� � jika �� �
3. Himpunan error besar
� �� � = {
jika �� � �� � − jika
�� � jika
error − �� � jika
� �� jika �� �
4. Himpunan error besar sekali � error = { error −
jika �� � jika
�� � jika �� �
Dari Himpunan – himpunan tersebut ditetapkan nilai yang akan
mengatur kecepatan pompa air, nilai tersebut adalah nilai PWM sebagai berikut:
Kecil sekali = nilai PWM 70 Kecil = nilai PWM 180
Besar = nilai PWM 200 Besar Sekali = nilai PWM 255
Kemudian dilakukan proses defuzzyfikasi dengan menggunakan rumus rata-rata berbobot yaitu
=
∑
�. �
�=
∑
�
�=
dimana: n=jumlah data
Xi=data ke i Wi=derjat keanggotaan data ke i
19
Berdasarkan perancangan fuzzy diatas maka jika seandainya error adalah 0.9 maka ia akan berada diantara 2 himpunan yaitu kecil sekali dan kecil
maka akan dilakukan perhitungan derajat keanggotaan untuk himpunan kecil sekali dan kecil .
Untuk himpunan kecil sekali maka nilai derajat keanggotaannya adalah 1- 0.91.3 dan di dapat nilai 0.076.
Untuk himpunan kecil maka nilai derajat keanggotaannya adalah 0.9+0.31.3 dan di dapat nilai 0.924.
Maka akan dilakukan proses defuzzifikasi untuk menentukan nilai PWM seperti dibawah:
� =
. ×
+ . ×
+ × + ×
. + .
+ + =
.
Maka nilai PWM saat error 0.9 adalah 171.64 Terdapat 7 data yang dikirimkan ke user interface yaitu nilai setpoint,
sensor, output pwm, Kp, Kd ,Ki, dan error, data tersebut dikirim dalam bentuk string yang diakhiri dengan pergantian baris untuk memudahkan
dibaca di program user interface
3.3.2. Perangkat Lunak User interface