Respon motor berbeda dengan PWM frekuensi tinggi

8

Kami membuat robot sepak bola junior dan kami baru saja mendapatkan motor brilian dari Maxon. Mengatur timer PWM ke frekuensi rendah (sekitar 39kHz atau 156 kHz) robot bekerja seperti yang diharapkan. Tetapi ini menghasilkan beberapa masalah.

  1. Ini menempatkan arus yang besar pada baterai (sekitar 1,5A untuk 3 motor yang terlalu tinggi).
  2. Arus tinggi menyebabkan driver motor kami (L6203) memanas dengan sangat cepat dan bahkan heat-sink tidak akan membantu mereka.
  3. Motor mengeluarkan suara yang sangat buruk saat mereka berteriak dan ini tidak normal.

Sebaliknya ketika saya mengkonfigurasi timer pada frekuensi tinggi (seperti 1250 kHz atau 10000 kHz) arus turun ke 0,2A yang ideal dan suara berhenti. Tapi ini menyebabkan masalah bahwa 3 motor kita ketika diatur untuk berjalan pada kecepatan tertinggi (PWM diatur ke 255) tidak berjalan dengan rpm yang sama. seperti salah satu dari mereka berjalan lebih lambat dari yang lain membuat robot berbelok ke sisi tertentu dan fungsi penanganan kami gagal berfungsi dengan benar.

Menanyakan kepada seseorang, dia mengatakan kepada saya bahwa driver tidak merespons hal yang sama terhadap frekuensi sehingga menghasilkan kecepatan yang berbeda dan karena pada frekuensi rendah perbedaannya sangat kecil saya tidak akan melihatnya tetapi pada frekuensi yang lebih tinggi perbedaannya menjadi lebih besar dan terlihat.

Jadi, apakah ada solusi untuk masalah ini? atau saya harus terus menggunakan frekuensi rendah?

PS: Saya menggunakan ATMEGA16 sebagai pengontrol utama dengan kristal eksternal 10 mHz.

Miro Markaravanes
sumber
Supaya kami jelas, apakah semua driver identik?
Joe Baker
Ya driver semuanya identik ..
Miro Markaravanes
Apakah ada frekuensi cutoff tertentu yang bermasalah? Juga, apakah Anda memiliki akses ke penganalisa logika secara kebetulan?
Joe Baker
Saya tidak tahu apakah ada frekuensi cutoff atau tidak ... Namun dugaan saya adalah bahwa kristal 10mHz tidak dapat menghasilkan jam yang diperlukan untuk 3 motor. Apakah itu mungkin? apa yang anda maksud dengan analisa logika? namun saya memiliki osiloskop.
Miro Markaravanes
Sangat meragukan itu adalah kristal. Penganalisis logika adalah jenis lingkup khusus (atau kadang-kadang modul addon untuk lingkup yang ada). Saya pernah berurusan dengan masalah jitter pada sinyal PWM yang menyebabkan servos bergetar. Kami menggunakan Salae ( saleae.com/logic ) untuk mengambil sampel pulsa besar (~ 10k) pada lebar tertentu dan mengukur jitter dengan menghitung standar deviasi lebar set sampel. Mungkin saja Anda bisa menggunakan ruang lingkup Anda untuk mencari masalah yang sama, tetapi kemungkinan Anda tidak bisa mendapatkan sampel yang cukup besar sekaligus untuk perhitungan stdev.
Joe Baker

Jawaban:

3

Sementara saya tidak tahu bagaimana cara memperbaiki akar penyebab masalah, pekerjaan di sekitar adalah dengan menggunakan umpan balik loop tertutup. Jika Anda dapat mengukur kecepatan setiap roda (misalnya, dengan enkoder), Anda dapat menggunakan algoritma seperti PID untuk menyesuaikan kecepatan roda Anda sehingga robot berjalan lurus.

Kompas atau giroskop juga cocok untuk tugas ini.

apnorton
sumber
Saya sudah menggunakan kompas dan PID untuk fungsi putaran saya untuk mendapatkan robot ke arah yang benar ke gawang lawan. Namun jawaban Anda akan berhasil tetapi saya perlu menyelesaikan masalah daripada hanya mengurangi kecepatan sampai robot berjalan lurus. Thx
Miro Markaravanes
@MiroMarkarian - Intinya adalah bahwa jika Anda memiliki satu loop PID per motor, tidak masalah bahwa mereka merespons secara berbeda karena loop PID akan menyesuaikan output PWM untuk setiap motor sehingga encoder pada roda melacak kecepatan & posisi yang diinginkan .
Mark Booth
0

Dua masalah pada perangkat keras,

a) Chip membutuhkan waktu untuk menghidupkan dan mematikan. Memanas lebih banyak saat di antara dan di antara. Jadi, tidak ada gunanya menggunakan frekuensi terlalu tinggi. Umumnya, 10, 15 atau 20KHz maks, di luar jangkauan telinga manusia sudah cukup.

Lihat detail (jelaskan efek frekuensi dengan contoh 20 chip dari banyak perusahaan) (terutama item tersebut menyatakan frekuensi ultrasonik 20KHz) di
http://www.pololu.com/category/11/brushed-dc-motor-drivers

b) Motor coil memiliki induktansi. Frekuensi terlalu tinggi mengurangi aliran arus, torsi rendah, RPM rendah.

Rupanya, 0,5A per motor tampaknya dalam kisaran normal. Kemungkinan, pada 6, 7.2 atau 12 volt, beberapa watt hingga 10 watt per motor untuk gerakan robot yang cepat.

EEd
sumber