Saya ingin melacak posisi sudut lengan putar bermotor yang cukup lambat (direct-drive; lihat ilustrasi di bawah) - tetapi memerlukan akurasi sudut di bawah 0,05 °, dan resolusi yang sama.
Seperti @gbulmer catat dalam komentar, yaitu setara dengan melacak ujung lengan secara posisional di sepanjang keliling, dengan akurasi (2 × π × 10cm) / (360˚ / 0,05) = 0,08 mm.
Apakah ada sensor atau metode elektronik yang saat ini dapat diwujudkan yang dapat mencapai tingkat akurasi ini dalam penginderaan rotasi tanpa menghabiskan banyak uang?
Inilah yang saya coba sejauh ini, dari yang paling sederhana sampai yang rumit:
Kompas digital / magnetometer: Saya mulai dengan ini; tapi jelas jauh dari kinerja yang saya cari.
Pengkodean putar: Pengodean berbasis sensor-potensi / berbasis Hall-Effect-sensor: Tidak dapat memperoleh resolusi yang memadai dan terdapat kesalahan linearitas yang signifikan.
Visi mesin: Mencoba menempatkan penanda optik di ujung lengan (karena ujungnya melacak busur terpanjang) dan menggunakan kamera (OpenCV) untuk melacak posisi marker: tidak dapat menyelesaikan rotasi yang sangat kecil dengan baik, mengingat rentang rotasi lengan area 10x10 cm.
Magnetic encoder: Saat ini saya sedang menyelidiki penggunaan AS5048, sebuah rotary encoder magnetik dari AMS, diposisikan dengan pusat sensor di posisi poros motor. Sesuatu seperti ini:
Jawaban:
Apa yang Anda lakukan itu mungkin, tetapi saya tidak melihat bagaimana Anda akan melakukannya dengan murah.
0,05 derajat (3 menit busur) menyiratkan resolusi 7200 jumlah / putaran, atau setara dengan 13 bit (8192). Lebih buruk lagi, karena Anda mencoba membuat perulangan posisi, Anda membutuhkan setidaknya satu bit tambahan resolusi, atau sistem 14-bit. Masalahnya terletak pada kenyataan bahwa loop posisi Anda tidak dapat mendeteksi kesalahan kurang dari satu bit, jadi jika lengan mulai melayang, sensor sudut tidak akan mendeteksinya sampai outputnya sedikit mati. Lingkaran posisi akan mendorong lengan ke belakang dengan cara lain, dan akan berhenti menggerakkannya ketika kesalahan turun ke nol. Tapi ini akan membiarkan lengan berayun ke arah lain sampai mendapat hitungan di arah yang berlawanan, dll. Jadi, misalnya, jika Anda ingin lengan mempertahankan jumlah sensor 100, sistem mungkin menghasilkan 100, 101, 100 , 99, 100, dll.
Saya menyarankan bahwa enkoder optik adalah taruhan terbaik Anda, tetapi enkoder 14-bit (16.384 ppr) tidak akan murah. Kemungkinan lain adalah resolver atau sinkronisasi, dengan RDC atau SDC (resolver / konverter digital atau sinkronisasi / konverter digital) sebagai kemungkinan kedua, tetapi ini akan lebih mahal. Sinkronisasi / penyelesai memiliki 2 kelemahan. Pertama, mereka umumnya telah digantikan oleh encoders optik sehingga apa yang akan Anda temukan di pasar sebagian besar adalah unit surplus. Kedua, akurasi biasanya tidak memadai. Resolver ukuran 23 biasanya diberi peringkat sekitar 5-10 menit busur, jadi Anda akan membutuhkan unit presisi tinggi, dan semoga berhasil menemukannya.
Inductosyns akan memberi Anda resolusi dan keakuratan yang luar biasa, tetapi biayanya bahkan lebih mahal daripada encoder optik. Pada dasarnya, Anda memerlukan RDC berkecepatan tinggi untuk membaca output.
Kekhawatiran Anda tentang akurasi encoder optik didasarkan pada kertas pabrikan tertentu, tetapi pada dasarnya itu adalah bagian yang menakutkan. Kemungkinan untuk kesalahan adalah sama untuk setiap pabrikan, dan pabrikan yang ditautkan tidak lebih baik dari pabrikan lain. Secara umum, untuk encoder presisi, akurasi sama dengan resolusi.
Meskipun dimungkinkan untuk mendapatkan enkoder optik dengan output paralel, Anda mungkin lebih baik menggunakan enkoder tambahan dan menggulung konter atas / bawah Anda sendiri. Jika Anda memilih rute ini, Anda akan menggunakan sinyal "home" untuk mengatur ulang penghitung posisi setiap kali Anda menyalakan sistem.
sumber
Saya pikir apa yang disarankan OP bukanlah ide yang buruk sama sekali. Apa yang ingin ia gunakan adalah cincin siap pakai: http://ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128 , ia memiliki 128 tiang = 64 pasangan tiang. Resolusi adalah 16 bit = 65536, maks 305 rpm.
Jika Anda membongkar encoder optik resolusi tinggi Anda akan menemukan bahwa hampir tidak mungkin untuk menyelaraskan detektor tanpa alat khusus, memang dengan menggunakan metode baru ini membuatnya sangat sederhana.
Anda akan membutuhkan mesin pemutar untuk membuat cincin yang pas dan kemudian menempatkan sensor pada jarak dekat, tidak diperlukan pelurusan khusus. Sensor itu sendiri datang dalam versi kit yang sudah disolder pada papan breakout, yang Anda perlukan adalah sensor referensi tambahan - celah dengan photodetector, maka Anda dapat mereferensikan pembuat kode dalam satu pasangan kutub dengan kombinasi output indeks + sensor ext ref.
sumber
Karena ini adalah pertanyaan curah pendapat, dan WhatRoughBeast telah menyebutkan semua yang akan saya pertimbangkan, mengapa tidak menambahkan drive harmonis ke daftar? Secara teori (saya belum memeriksa dengan estimasi empiris, atau perhitungan pertama), ini memungkinkan Anda untuk mendapatkan rasio gearing 20: 1 dengan mudah tanpa reaksi balik (100: 1 adalah umum), membawa jumlah langkah yang diperlukan ke 720 / rev . Mungkin ada sesuatu yang layak untuk dilihat. Drive harmonik tidak murah, tetapi umumnya lebih murah daripada sensor resolusi tinggi terutama untuk rasio gearing ini.
sumber
Jika Anda memerlukan resolusi pada poros keluaran yang sesuai dengan 13-bit, Anda memerlukan lebih banyak bit, paling tidak 1-bit untuk kontrol loop tertutup adalah keharusan. Masalah selanjutnya adalah bahwa produsen mengiklankan resolusi tetapi tidak mengiklankan akurasi . Anda perlu menanyakan akurasi secara terus-menerus. Jika kesalahan berulang Anda dapat meningkatkan menggunakan koreksi perangkat lunak.
Masalah lain jika Anda membutuhkan solusi luar ruang tugas berat. Jika ya maka magnetic encoder adalah sebuah pilihan. Tetapi magnetic encoder mungkin memiliki kesalahan periodik berulang yang signifikan, yang perlu Anda hilangkan dalam proses kalibrasi menggunakan encoder luas optik lain. Tetapi Anda membutuhkan jig yang dibuat dengan presisi lebih tinggi.
Interpolasi sin / cos (dari optik atau magnetik) meningkatkan resolusi tetapi juga menambahkan beberapa kesalahan acak.
Anda harus dapat memproduksi dengan akurasi yang diinginkan, konsentrisitas khusus. Juga Anda perlu mempertimbangkan bandwidth karena ketika Anda meningkatkan resolusi maka gerakan yang lebih cepat dapat melebihi bandwidth yang diizinkan (misalnya frekuensi output quadrature). Sebaliknya kontrol gerakan sangat lambat adalah disiplin lain di mana orang dapat menemukan masalah menarik yang tidak dipublikasikan.
Jika Anda memerlukan kontrol putaran lengan (tidak hanya posisi track) maka resolusi drive langsung dan torsi menjadi masalah. Dual loop membantu dengan kontrol tetapi membutuhkan motor (encoder jika kotak roda gigi atau langkah-langkah penghitungan jika stepper) dan sensor posisi poros.
Encoder inkremental vs absolut juga merupakan keputusan mendasar.
Saran umum adalah: jika Anda ingin menyelesaikan proyek maka gunakan komponen profesional yang mahal (mis. Renishaw ATOM optical encoders). Jika Anda bermain untuk kesenangan dan waktu tidak penting maka Anda dapat menikmati menciptakan kembali masalah (cul-de-sac), menemukan masalah yang tidak dapat di Google-google dll. Periksa ulang apakah Anda dapat membuat peralatan dengan presisi yang diperlukan.
sumber
Tampaknya sangat cocok untuk caliper digital, biasanya digunakan untuk mengukur jarak yang tepat, lihat:
Bagaimana cara kerja caliper elektronik?
Mereka mirip dengan encoders kapasitif (yang sudah Anda lihat di http://www.digikey.com/en/articles/techzone/2012/apr/a-designers-guide-to-encoders ).
Bagian elektronik dari caliper digital linier mungkin dapat digunakan kembali, jadi Anda hanya perlu membuat seperempat disk dengan pola yang benar.
PS: Presisi bahkan akan memungkinkan Anda untuk bekerja dengan linear linear.
sumber
Inilah ide baru saya, namun, kisah motor langkah lain :-)
Klik pada gambar animasi untuk melihat resolusi penuh tanpa dijatuhkan. Di sini Anda menggunakan motor langkah sebagai penguasa perjalanan. Ada magnet di ujung tangan utama. Garis merah menunjukkan arah yang diharapkan dari fluks magnet. Dengan asumsi motor langkah seperti yang ada di wikipedia. Ini memiliki 3,6 derajat satu langkah penuh. Untuk bagian lapangan yang diasumsikan linier, Anda perlu 3,6 / 0,05 = 72 kombinasi 7 bit. Itu berarti 10-bit ADC dari MCU biasa akan melakukan pekerjaan untuk rentang nonlinier yang lebih besar dengan sangat baik. Setelah Anda melakukan mekanisme, menganalisis pola persetujuan dan memilih bagian paling linier, dengan beberapa garis pemetaan perangkat lunak menguraikannya dan memilih batas penggaris untuk pengaturan tertentu.
Motor langkahnya tidak sempurna. Menurut wikipedia mereka mungkin memiliki varian hingga 5% antar gigi. Untuk mengukur kesalahan, Anda dapat memperluas batas utama penguasa dengan batas sekunder, yang hanya perlu mengikuti pola gradien dari analisis sebelumnya dari perbatasan tetangganya.
Juga, Anda harus lebih baik mengendarai motor step dengan microstepping untuk menghindari +/- akselerasi yang dapat memengaruhi skala pengaturan, saya pikir setidaknya Anda harus melakukan setengah loncatan.
sumber
Berurusan dengan mekanik, mulailah dengan mekanik terlebih dahulu.
Memutar gigi besar (R2) untuk sudut, gigi kecil (R1) berputar untuk sudut R2 / R1 kali lebih besar.
Karena itu jika Anda berurusan dengan akurasi sudut yang sangat ekstrem pada radius yang diberikan (R), Anda bisa berurusan dengan akurasi sudut kasar n-kali pada radius n-kali lebih kecil (yaitu R / n).
Dalam kasus Anda, Anda dapat memasang roda gigi besar pada poros lengan dan memasang roda gigi yang lebih kecil lalu menghubungkan sensor kasar ke yang kecil.
Banyak metode gearing lain yang dikenal dan bermanfaat, mulai dari wiki .
sumber
Anda harus membuat mekanisme kedua di tepi tangan, untuk membagi langkah-langkah pusat dengan mekanisme linear seperti yang ditemukan dalam sistem optik driver cd-rom. Dengan cara ini, mungkin lebih mudah dan memadai untuk menerapkan seluruh sistem sebagai loop terbuka dengan juga menggunakan motor langkah di tengah dan mengendarainya dengan langkah mikro untuk menghindari besaran akselerasi yang sangat tinggi.
sumber
Keterbatasan fisik dalam ruang di sekitar lengan yang bergerak mungkin mengecualikan solusi ini, tetapi di sini Anda - pendekatan visi mesin murah lainnya. Akurasi dapat disesuaikan dengan mengubah perbesaran lensa.
sumber
Saya tidak tahu apa yang Anda anggap sebagai kekayaan, tetapi Anda mungkin ingin mempertimbangkan http://www.inductosyn.com/
sumber
Pilihan lain yang sangat menarik, jika lengan Anda secara teratur masuk ke posisi awal (istirahat), adalah dengan menggunakan mouse optik (permainan), atau, lebih khusus lagi, sistem pengindraannya.
Pasang sensornya di ujung lengan Anda dan berikan latar belakang yang bagus (butiran halus, non-reflektif) untuk meluncur. Bacalah data melalui antarmuka mouse usb standar.
Anda akan memerlukan sensor sederhana untuk mengkalibrasi posisi awal. Anda harus bereksperimen untuk melihat apakah ini cukup berhasil. Sebagian besar harus bekerja terlepas dari debu dan mudah dirawat.
sumber
Mungkin Anda dapat mempertimbangkan menggunakan enkoder optik linier di ujung lengan pivot Anda, dan menggunakan codestrip fleksibel seperti ini , yang memiliki hingga 2000 garis per inci. Jika Anda ingin menjadi super murah, Anda bisa menggunakan linear encoder seperti ini , tetapi hanya berjalan hingga 150 baris per inci, jadi resolusi 40 mikron (karena itu adalah encoder quadrature). Jika Anda tidak sensitif terhadap jitter dalam sistem drive, maka Anda dapat menggunakan ini secara lurus. Jika tidak, Anda dapat memperpanjang lengan di bawah aplikasi Anda, dan menempatkan kode srip lebih jauh. Anda bahkan dapat mencetak codestrip sendiri jika Anda memiliki printer dengan DPI 1000 atau lebih.
Semoga berhasil!
sumber