Tahap 3

Kontrol Open Loop + Monitor Posisi & Kecepatan

Pada Tahap 3 ini, teman-teman akan dapat membuat hal-hal berikut ini:
  1. Rangkaian Proteus.
    • Rangkaian Proteus di sini sama seperti Tahap 1.
  2. Program Arduino.
    • Program Arduino di sini sama seperti Tahap 2.
  3. Program LabVIEW.
    • Program LabVIEW untuk memonitor Posisi Motor DC, yang ditampilkan dalam bentuk grafik dan objek Dial.
    • Program LabVIEW untuk memonitor Kecepatan Motor DC, yang ditampilkan dalam bentuk grafik dan objek Meter.
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 2. Teman-teman dapat mengunduh file program LabVIEW tersebut di link ini: file_LabVIEW_2

4. Save As program LabVIEW Tahap 2 tersebut sebanyak 2 kali, dengan nama berturut-turut Monitor Posisi dan kemudian Monitor Kecepatan, sesuai dengan program LabVIEW yang akan dibuat. Program Monitor Posisi akan memonitor posisi poros motor DC, dan program Monitor Kecepatan akan memonitor kecepatan motor DC. Berikut ini uraian langkah pembuatan masing-masing program.

Program LabVIEW untuk memonitor Posisi poros motor DC

1. Buka program Monitor Posisi.

2. Posisi poros motor DC dapat diketahui dari banyaknya pulsa Encoder. Tergantung pada jenis Encoder yang digunakan, beberapa tipe Encoder dengan resolusi tinggi bisa menghasilkan jumlah pulsa hingga ribuan untuk satu kali putaran. Khusus di komponen Motor-Encoder di Proteus, kita dapat mengatur jumlah pulsa yang diperlukan untuk 1 kali putaran, yaitu di kolom Pulses per Revolution.


2. Secara default, nilai Pulses per Revolution pada Motor Encoder di Proteus adalah 24. Nilai ini ternyata harus dikalikan 4 agar bisa mendapatkan jumlah pulsa dalam 1 putaran penuh. Untuk memudahkan perhitungan, di sini dibuat jumlah pulsa yang diperlukan untuk 1 putaran adalah 360, agar sama dengan nilai sudut. Maka, supaya bisa 360, nilai pada kolom Puses per Revolution diisi dengan angka 90. Jadi dengan nilai 90 ini, 1 pulsa sama dengan 1 derajat.

3. Berikutnya, untuk menampilkan posisi poros motor DC di LabVIEW, tempatkan sebuah objek Dial di Front Panel, yang diambil dari kategori Numeric. Perkecil Grafik Encoder dan Grafik PWM, agar objek Dial bisa ditempatkan di bagian bawah. Buat nilai Maksimum dari Dial ini sebesar 360, dengan cara mengubah angka 10 menjadi 360.


4.  Agar angka 360 berada tepat tegak lurus di atas dan berimpit dengan angka 0, tempatkan pointer pada garis strip di angka 360, hingga bentuk pointer menjadi garis melingkar dengan panah di kedua ujungnya. Kemudian klik kiri mouse, dan geser pointer berputar searah jarum jam secara perlahan, sehingga angka 360 berada di atas, setelah itu lepaskan mouse. Seharusnya tampilan Dial akan menjadi seperti gambar berikut:


5. Secara default, tipe data Dial adalah Double, dengan icon berwarna oranye. Untuk meringankan pengolahan data, ubah tipe data Dial dari tipe Double menjadi Integer 16 bit, dengan cara meng-klik kanan Dial, pilih Representation, pilih I16.


6. Berikutnya, agar sudut pada Dial terlihat lebih jelas, klik kanan Dial, pilih Scale, pilih Style, dan klik pada garis strip yang lebih detil seperti gambar berikut.


7. Di Block Diagram, secara default, icon Dial adalah icon Control. Agar bisa menjadi Indicator, klik kanan pada icon Dial, kemudian pilih Change to Indicator. Kemudian hubungkan input icon Dial ini dengan garis data ke input Grafik Encoder.


8. Program untuk nilai Dial di atas akan menjadi salah ketika poros diputar melewati titik 0 atau titik 360 derajat. Apabila nilai Dial lebih dari 360 derajat, harusnya nilai Dial menjadi sebesar nilai Dial dikurangi 360, sebaliknya ketika nilai Dial kurang dari 0 derajat, harusnya nilai Dial menjadi sebesar nilai Dial ditambah 360. Persamaan untuk hal ini dapat ditulis seperti berikut:
  • jika nilai encoder>360, maka nilai encoder=encoder-360 
  • jika nilai encoder<0, maka nilai encoder=encoder+360
Untuk nilai encoder lebih kecil dari 720, atau lebih besar dari -360, persamaan di atas benar. Namun ketika nilai encoder lebih besar dari 720, atau lebih kecil dari -360, maka persamaan di atas menjadi salah. Agar persamaan menjadi benar, harus memperhitungkan kelipatan, sehingga persamaan di atas harusnya menjadi seperti ini:
  • jika encoder>=0, maka output=encoder-360*(floor(encoder/360)) 
  • jika encoder<0, maka output=encoder+360*abs((floor(encoder/360)))
di mana abs = absolute atau mutlak positif, dan floor = pembulatan ke bawah.
Implementasi program Block Diagram-nya seperti terlihat pada gambar berikut ini:


Agar lebih mudah, teman-teman bisa menggunakan Formula Node, yang diambil dari Structures, di Programming. Buat kotak Formula Nodes, kemudian klik kanan tepi kiri kotak tersebut, pilih Add Input untuk menempatkan variabel nilai Encoder, dalam contoh di sini menggunakan variabel x. Berikutnya klik kanan tepi kanan kotak, dan pilih Add Output untuk menempatkan variabel y sebagai nilai hasil formula. Implementasi program Block Diagram-nya seperti terlihat pada gambar berikut, dengan persamaan atau formula seperti di bawah ini:
  • if(x >= 0) y = x - floor(x/360) * 360;
  • else y = x + abs(floor(x/360) * 360);

9. Berikutnya, agar nilai Dial ini juga dapat ditampilkan di Grafik Encoder, tambahkan icon Bundle yang diambil dari kategori Cluster, di Programming. Hubungkan nilai Encoder dan nilai Dial ke icon Bundle.


10. Berikutnya, klik kanan pada icon Grafik Encoder, dan pilih Properties. Pada jendela Properties, di Tab Appearance, ubah angka 1 di Plots Shown menjadi 2.


11. Jalankan rangkaian Proteus, kemudian jalankan program LabVIEW Monitor Posisi ini (jangan lupa untuk memilih Port COM dulu, baru menjalankan program LabVIEW). Geser naik turun Slide PWM, dan perhatikan bahwa posisi Dial sama seperti posisi poros Motor Encoder di Proteus. Di samping itu, terlihat dari Grafik Encoder; sekalipun nilai Encoder (warna hijau) dibuat bernilai antara -1500 hingga 2000, nilai Dial (warna merah) selalu berada di antara nilai 0 - 360.


12. Teman-teman dapat mengunduh program LabVIEW Monitor Posisi ini di link ini: file_LabVIEW_3a

13. Sampai di sini pembuatan program LabVIEW untuk memonitor posisi poros motor DC selesai. 

Program LabVIEW untuk memonitor Kecepatan motor DC

1. Buka program Monitor Kecepatan.

2. Untuk menampilkan kecepatan motor DC di LabVIEW, tempatkan sebuah objek Meter di Front Panel, yang diambil dari kategori Numeric. Perkecil Grafik Encoder dan Grafik PWM, agar objek Meter bisa ditempatkan di bagian bawah. Buat nilai Minimum = -165 dan nilai Maksimum = 165, dengan cara mengubah angka 0 menjadi -165 dan angka 10 menjadi 165.


3. Secara default, tipe data Meter adalah Double, dengan icon berwarna oranye. Untuk meringankan pengolahan data, ubah tipe data Meter dari tipe Double menjadi Integer 16 bit, dengan cara meng-klik kanan Meter, pilih Representation, pilih I16.


4. Nilai kecepatan motor DC biasanya menggunakan satuan rpm (revolutions per minute), yang dihitung dari banyaknya putaran setiap menitnya. Berikut ini rumus untuk menghitung nilai kecepatan motor DC berdasarkan pembacaan nilai Encoder yang menghasilkan 360 pulsa untuk 1 putaran penuh, dengan interval pembacaan Encoder setiap 50 milidetik:

rpm = ((enc1 - enc2)*60*1000 )/ppr/interval

dimana: 

  • rpm = kecepatan motor (banyaknya putaran per menit)
  • enc1 = pembacaan Encoder yang terbaru
  • enc2 = pembacaan Encoder sebelum interval
  • ppr = jumlah pulsa untuk 1 putaran = 360
  • interval pembacaan = 50 milidetik

dengan memasukkan data yang diketahui, maka kecepatan motor dapat dihitung:

rpm = ((enc1 - enc2)*60000 )/360/50 = (enc1 - enc2)*10/3

Implementasi rumus di atas pada Block Diagram LabVIEW dapat dibuat seperti berikut:


5. Untuk bisa mendapatkan nilai selisih Encoder yang baru dengan yang sebelumnya, per 50 milidetik, dapat dibuat dengan bantuan Shift Register dan Subtract. Untuk memunculkan Shift Register, klik kanan pada dinding While Loop, pilih Add Shift Register, maka akan muncul terminal Shift Register di dinding kiri dan dinding kanan While Loop. Dengan Shift Register ini, data pada perulangan sebelumnya dapat diperoleh, yaitu dengan cara memasukkan data ke terminal Shift Register kanan, dan datanya diambil di terminal Shift Register kiri. Untuk mendapatkan data dari perulangan yang sebelum-sebelumnya, tarik ke bawah terminal Shift Register kiri, sehingga muncul 2 kotak seperti gambar di atas. Kedua terminal Shift Register kiri ini perlu mendapat nilai awal, untuk itu ambil Numeric Constant (angka 0) dari Palet Functions, di kategori Programming, di Numeric, dan hubungkan ke kedua input terminal Shift Register kiri. Tambahkan icon Subtract, hubungkan output dari kedua terminal Shift Register kiri ke icon Subtract. Dari output Subtract, hubungkan ke input icon Multiply. Tambahkan icon Divide, yang membagi angka 10 dengan 3, sesuai dengan persamaan di atas. Output dari pembagian ini diteruskan ke input icon Multiply. Output icon Multiply diteruskan ke icon Meter.

6. Berikutnya, di samping menggunakan objek Meter, diinginkan nilai kecepatan juga dapat ditampilkan dalam grafik. Untuk itu, tambahkan icon Bundle, yang diambil dari Palet Functions, di kategori Programming, di Cluster. Sisipkan ke input Grafik Encoder, sehingga Grafik Encoder akan menampilkan nilai Encoder dan nilai kecepatan. 


7. Klik kanan pada Grafik Encoder, pilih Properties. Pada jendela Properties, pilih Appearance, ubah angka di Plots Shown, dari 1 menjadi 2.


8. Di Front Panel, klik kotak Plot 1 (berada di atas Grafik Encoder) hingga muncul menu pengaturan, pilih Line Width, pilih ketebalan garis di urutan ketiga. 


9. Berikutnya, jalankan rangkaian Proteus, kemudian jalankan program LabVIEW Monitor Kecepatan ini (jangan lupa untuk memilih Port COM dulu, baru menjalankan program LabVIEW). Geser naik turun Slide PWM, dan perhatikan bahwa kecepatan pada Meter sama seperti atau mendekati kecepatan Motor-Encoder di Proteus. Di samping itu, nilai kecepatan motor ini juga ditampilkan di Grafik Encoder.


10. Teman-teman dapat mengunduh program Monitor Kecepatan ini di link ini: file_LabVIEW_3b

11. Untuk lebih jelas mengenai pembuatan Tahap 3 ini dan hasilnya, teman-teman dapat melihat video youtube berikut ini: 


12. Sampai di sini pembuatan program LabVIEW untuk memonitor Kecepatan Motor DC selesai. 

13. File-file program yang telah dihasilkan di Tahap 3 ini dapat diunduh di link berikut ini:

Tidak ada komentar:

Posting Komentar