Kontrol Closed Loop Posisi & Kecepatan
Pada Tahap 4 ini, teman-teman akan dapat membuat hal-hal berikut ini:
- Rangkaian Proteus.
- Rangkaian Proteus di sini sama seperti Tahap 1.
- Program Arduino.
- Program Arduino di sini sama seperti Tahap 2.
- Program LabVIEW.
- Program LabVIEW Kontrol Closed Loop untuk Posisi Motor DC.
- Program LabVIEW Kontrol Closed Loop untuk Kecepatan Motor DC.
Untuk membuat hal-hal di atas, berikut ini langkah-langkahnya:
1. Siapkan rangkaian Proteus seperti rangkaian di Tahap 1. Teman-teman bisa mengunduh file rangkaian Proteus tersebut di sini: file_Proteus
2. Siapkan program Arduino seperti program di Tahap 2. Teman-teman bisa mengunduh file program Arduino tersebut di sini: file_Arduino_2
3. Berikutnya, untuk program LabVIEW, untuk mempercepat pembuatan, kita akan mulai dari program LabVIEW pada Tahap 3. Ada 2 program LabVIEW di Tahap 3, yaitu program Monitor Posisi dan Monitor Kecepatan. Teman-teman dapat mengunduh file program Monitor Posisi dan Monitor Kecepatan, berturut-turut di link ini:
4. Save As program LabVIEW Tahap 3 tersebut dengan nama Kontrol Posisi dan Kontrol Kecepatan, sesuai dengan program LabVIEW yang akan dibuat. Program Kontrol Posisi akan mengontrol posisi poros motor DC, dan program Kontrol Kecepatan akan mengontrol kecepatan motor DC. Berikut ini uraian langkah pembuatan masing-masing program.
Program LabVIEW untuk mengontrol Posisi poros motor DC
1. Buka program Kontrol Posisi.
2. Sebelum menambahkan program Kontrol Closed Loop, kita perlu mengetahui dulu apa itu Open Loop dan Closed Loop. Gambar berikut ini menunjukkan diagram Kontrol Open Loop dan Closed Loop.
Kontrol Open Loop
Kontrol Closed Loop
3. Diagram Kontrol Open Loop menunjukkan bahwa antara Input dan Output tidak ada pembandingan atau umpan balik, sehingga tidak diketahui apakah nilai Output sudah sesuai dengan Setpoint Input. Aksi Kontrol Open Loop dengan demikian tidak tergantung pada nilai Output. Sebaliknya Kontrol Closed Loop memperlihatkan adanya pembandingan atau umpan balik, apakah ada selisih atau error yang muncul, sehingga aksi Kontrol didasarkan pada nilai Output, semakin besar selisih atau error antara Output dengan Input, membuat aksi Kontrol juga semakin besar.
4. Implementasi Kontrol Closed Loop pada program Kontrol Posisi dapat dilakukan dengan membandingkan (= mengurangi) Setpoint Input dengan nilai Output Posisinya. Apabila selisihnya besar, maka nilai Kontrol PWM juga semakin besar, namun apabila selisihnya kecil, maka nilai Kontrol PWM juga semakin kecil. Untuk itu, langkah pertama, tambahkan Setpoint Input, dengan menduplikasi Dial seperti gambar berikut:
5. Buat objek Dial yang kiri sebagai Setpoint Input, sehingga harus diatur sebagai Control. Untuk itu klik kanan objek Dial, pilih Change to Control.
6. Berikutnya, buat objek Dial yang kanan menjadi penampil Setpoint Input dan juga nilai Output. Untuk itu, tambahkan strip atau needle dengan meng-klik kanan objek Dial, pilih Add Needle.
7. Klik kanan objek Dial yang kanan, pilih Properties, pilih Appearance. Pada kotak Needle, atur ke Needle2, dan ubah warna Needle color dari biru menjadi merah.
8. Agar nilai yang ditampilkan terlihat jelas, tambahkan Digital Display, baik untuk Dial yang di kiri maupun yang di kanan, yang dilakukan dengan cara meng-klik kanan objek, pilih Visible Items, pilih Digital Display, maka di Dial yang kiri akan muncul sebuah Digital Display, sedangkan Dial yang kanan akan muncul 2 buah Digital Display, karena ada 2 Needle.
9. Berikutnya, karena input kontrol tidak lagi dari Slide PWM, tetapi dari Setpoint Input Dial yang di kiri, maka buat objek Slide menjadi Indicator, yang dilakukan dengan cara meng-klik kanan objek Slide, pilih Change to Indicator.
10. Di Block Diagram, putus garis data dari output Decimal String to Number ke input 1 Bundle, dan gantikan dengan garis data dari output Dial yang kiri, dan kemudian hubungkan input Dial yang kanan (Dial2) dengan output Bundle.
11. Tambahkan icon Subtract untuk mengurangi output Dial (Setpoint) dengan output dari Decimal String to Number (nilai Encoder). Kemudian hubungkan output icon Subtract ini dengan icon In Range and Coerce. Icon In Range and Coerce ini untuk membatasi selisih error tidak lebih dari nilai PWM Arduino, yang hanya berkisar dari 0 s/d 255 untuk PWM pertama, dan -255 s/d 0 untuk PWM kedua (nilai PWM negatif tersebut dibuat positif dengan fungsi abs). Output dari Icon In Range and Coerce terhubung dengan Indicator Slide, Grafik PWM dan juga nilai kedua PWM yang akan dikirimkan melalui VISA Write.
12. Untuk memperjelas tampilan, ganti nama Dial menjadi SETPOINT, dan nama Dial2 menjadi SETPOINT & POSISI POROS. Ubah juga nama Slide dengan PWM.
13. Jalankan simulasi Proteus, dan kemudian jalankan program LabVIEW (jangan lupa untuk memilih Port COM dulu, baru menjalankan program LabVIEW). Lakukan pengaturan di Dial Setpoint, ubah nilainya dan perhatikan bahwa Posisi dari Motor Encoder di Proteus, dan juga strip di Dial yang di kanan, selalu mengikuti posisi Dial Setpoint. Perhatikan juga tampilan grafiknya, di mana grafik warna merah merupakan nilai output posisi yang dihasilkan, yang selalu mengikuti nilai grafik warna hijau yang merupakan nilai Setpoint. Hanya saja, masih terlihat adanya osilasi yang cukup besar. Penggunaan kontrol PID akan dapat meminimalkan osilasi ini.
14. Agar warna Needle pada Dial sama dengan warna grafik, maka sebaiknya warna biru pada Needle diganti dengan warna hijau. Untuk mengubahnya, klik kanan objek Dial, pilih Properties, pilih Tab Appearance, dan di bawah kotak Needle, ada kotak warna, ubah warna biru menjadi hijau. Teman-teman dapat mengunduh program LabVIEW Kontrol Posisi ini di link ini: file_LabVIEW_4a
15. Sampai di sini pembuatan program LabVIEW untuk Kontrol Closed Loop Posisi Poros Motor DC selesai.
Program LabVIEW untuk mengontrol Kecepatan motor DC
1. Buka program Kontrol Kecepatan.
2. Sama seperti pada Kontrol Closed Loop Posisi di atas, untuk implementasi Kontrol Closed Loop Kecepatan pada program LabVIEW dapat dilakukan dengan membandingkan (= mengurangi) Setpoint Input dengan nilai Output Kecepatannya. Apabila selisihnya besar, maka nilai Kontrol PWM juga semakin besar, namun apabila selisihnya kecil, maka nilai Kontrol PWM juga semakin kecil. Untuk itu, langkah pertama, tambahkan Setpoint Input, dengan menduplikasi Meter seperti gambar berikut:
3. Buat objek Meter yang kiri sebagai Setpoint Input, sehingga harus diatur sebagai Control. Untuk itu klik kanan objek Meter, pilih Change to Control.
4. Berikutnya, buat objek Meter yang kanan menjadi penampil Setpoint Input dan juga nilai Output. Untuk itu, tambahkan needle dengan meng-klik kanan objek Meter, pilih Add Needle.
6. Pastikan Digital Display muncul di Meter yang kiri maupun Meter yang kanan. Karena ada 2 Needle di Meter yang kanan, maka harusnya Digital Display di Meter yang kanan juga ada 2.
7. Berikutnya, karena input kontrol tidak lagi dari Slide PWM, tetapi dari Setpoint Input Meter yang di kiri, maka buat objek Slide menjadi Indicator, yang dilakukan dengan cara meng-klik kanan objek Slide, pilih Change to Indicator.
8. Untuk memperjelas objek yang dimaksud, ganti nama Meter yang di kiri (Meter 2) dengan nama Setpoint dan Meter yang di kanan dengan nama Setpoint&Output.
9. Di Block Diagram, pindahkan icon Setpoint&Output dari output icon Multiply (perkalian), ke output Bundle, (terhubung bersama dengan icon Grafik Encoder). Kemudian putus garis data dari output Decimal String to Number ke input 1 Bundle, dan gantikan dengan garis data dari output icon Setpoint.
10. Tambahkan icon Subtract untuk mengurangi output Setpoint dengan output dari icon Multiply. Kemudian hubungkan output icon Subtract ini dengan icon In Range and Coerce. Icon In Range and Coerce ini untuk membatasi selisih error tidak lebih dari nilai PWM Arduino, yang hanya berkisar dari 0 s/d 255 untuk PWM pertama, dan -255 s/d 0 untuk PWM kedua (nilai PWM negatif tersebut dibuat positif dengan fungsi abs). Output dari Icon In Range and Coerce terhubung dengan Indicator Slide, Grafik PWM dan juga nilai kedua PWM yang akan dikirimkan melalui VISA Write.
11. Terakhir, sebelum program LabVIEW dijalankan, karena nilai kecepatan pada Motor-Encoder Proteus sudah diketahui, yaitu 165 rpm, baik arah cw (searah jarum jam) maupun ccw (berlawanan jarum jam), maka di sumbu Y, hilangkan centang pada Autoscale Y, dan buat nilai minimum sumbu Y menjadi -165, dan nilai maksimum sumbu Y menjadi 165.
12. Jalankan simulasi Proteus, dan kemudian jalankan program LabVIEW (jangan lupa untuk memilih Port COM dulu, baru menjalankan program LabVIEW). Lakukan pengaturan nilai kecepatan di Setpoint, ubah nilainya dan perhatikan bahwa angka kecepatan yang berada di bawah Motor Encoder di Proteus, dan juga jarum di Setpoint&Output (objek Meter yang di kanan), selalu mengikuti posisi jarum di Setpoint. Perhatikan juga tampilan grafiknya, di mana grafik warna merah merupakan nilai output posisi yang dihasilkan, yang selalu mengikuti nilai grafik warna hijau yang merupakan nilai Setpoint. Hanya saja, gap atau rentang antara nilai Setpoint dengan Outputnya masih cukup besar. Penggunaan kontrol PID akan dapat meminimalkan rentang ini.
13. Teman-teman dapat mengunduh program LabVIEW Kontrol Kecepatan ini di link ini: file_LabVIEW_4b
14. Untuk lebih jelas mengenai pembuatan Tahap 4 ini dan hasilnya, teman-teman dapat melihat video youtube berikut ini:
15. Sampai di sini pembuatan program LabVIEW untuk Kontrol Closed Loop Kecepatan Motor DC selesai.
16. File-file program yang telah dihasilkan di Tahap 4 ini dapat diunduh di link berikut ini:
Tidak ada komentar:
Posting Komentar