Pelacakan rotasi dengan akurasi sangat tinggi

14

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.

gambar

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:

masukkan deskripsi gambar di sini

sasha
sumber
1
Mengapa tidak mempertimbangkan encoder poros (bisa juga magnetik)? Encoder quadrature mungkin memiliki presisi yang cukup tinggi. Ambil satu dengan 2000 baris. Pasca-kuadratur akan menjadi 8000 pulsa per revolusi. 360/8000 = resolusi 0,045 derajat
Eugene Sh.
BTW, apakah sistem diarahkan?
Eugene Sh.
@EugeneSh: Sistem tidak diarahkan. Penggerak langsung. Juga, perhatian dengan encoders posisi putar sejauh yang saya lihat adalah bahwa walaupun resolusinya tinggi, akurasinya kurang. Kesalahan untuk magnetic rotary encoder misalnya bisa setinggi 1 derajat, berdasarkan lembar data. Apakah penyandi optik yang Anda lihat jauh lebih baik dalam hal ini?
sasha
Hanya untuk memeriksa saya mengerti, saya menghitung bahwa Anda ingin mengetahui posisi ujung lengan untuk resolusi, dan akurasi yaitu 0,008 cm, atau 80μm. Apakah itu benar? Apakah motor mampu akurasi seperti itu? (2×π×10cm)/(360˚/0,05)
gbulmer
3
Peduli untuk berbagi masalah nyata di sini? Mungkin solusinya jauh lebih sederhana dan berbaring di pesawat yang berbeda.
Eugene Sh.

Jawaban:

12

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.

WhatRoughBeast
sumber
Terima kasih atas jawaban yang seimbang dan realistis. Sepertinya saya harus memberikan suntikan optik / inkremental dan jika berfungsi, kami baik. Saya juga ingin tahu apa pendapat Anda tentang pendekatan yang saya uraikan dalam paragraf terakhir saya dengan menggunakan encoder magnetik linier bersama dengan cincin magnetik multi-jenis yang direkomendasikan dalam lembar data pembuat enkode.
sasha
@ Sasha - Saya pikir Anda perlu melihat sangat keras pada proses yang diperlukan untuk menghasilkan cincin magnet Saya sangat meragukan bahwa Anda akan dapat melakukannya sendiri. Sementara lembar data menunjukkan toleransi yang agak santai dapat digunakan, saya akan sangat curiga dengan "sesuatu untuk apa-apa". Selain itu, kecuali Anda memiliki fasilitas untuk memverifikasi akurasi hingga 3 menit / 80 mikron, saya pikir Anda lebih baik membiarkan pro menangani kemungkinan ketidakakuratan. Ingatlah kertas yang tertaut.
WhatRoughBeast
Dicatat! Yang mengatakan, saya harus menjelaskan: Saya berniat untuk menggunakan cincin magnetik (multipole) yang dirancang kompatibel yang ditentukan oleh AMS sendiri dalam lembar data AS5311; inilah cincinnya: ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128
sasha
@ Sasha - Tidak apa-apa, tapi masalah yang saya miliki adalah bagaimana Anda memasang cincin tepat konsentris dengan poros poros. Eksentrisitas apa pun akan muncul di sudut pulih.
WhatRoughBeast
4

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.

Marko Buršič
sumber
"Sensor referensi tambahan" hanya untuk posisi absolut, benar? (Mirip dengan limit switch dalam kasus gerakan stepper CNC). Juga bisakah Anda menjelaskan saran Anda untuk penggunaan "mesin pemutar agar pas"? Maksud Anda, seperti alur agar cincin itu bisa diduduki? Jika demikian, bagaimana Anda dapat memastikan bahwa alur berada di posisi yang sempurna, ketika potongan CNC itu sendiri mungkin tidak begitu akurat?
sasha
@ sasha Mesin pemutar untuk memasang cincin magnet, ekst. sensor untuk mendeteksi referensi. Sensor ext + nol pulsa dari encoder akan memastikan Anda akan selalu memiliki referensi absolut yang sama, yang dalam kasus Anda mungkin tidak diperlukan. Saya melakukan pemasangan LIDAR dengan menggunakan stepper microstep dan planetary gearhead, tanpa umpan balik - satu-satunya posisi absolut adalah sakelar batas untuk mencegah memutar dan merobek kabel. Misalkan Anda harus merujuk ke objek tertentu kemudian melakukan gerakan relatif, dengan cara ini LIDAR bekerja, jika demikian Anda tidak perlu referensi posisi nol.
Marko Buršič
4

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.

Tuan Mystère
sumber
3

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.

TMa
sumber
3

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.

pengguna103185
sumber
2

Inilah ide baru saya, namun, kisah motor langkah lain :-)

masukkan deskripsi gambar di sini

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.

Ayhan
sumber
Langkah motor tidak mungkin lebih baik daripada encoders - dan microstepping terkenal non-linear.
Chris Stratton
Microstepping bukan untuk referensi apa pun, tidak ada langkah lanjutan statis yang diperlukan. Itu hanya untuk menghindari akselerasi. @ChrisStratton
Ayhan
1

Berurusan dengan mekanik, mulailah dengan mekanik terlebih dahulu.

masukkan deskripsi gambar di sini

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 .

asndre
sumber
Ini memperkenalkan serangan balik dan manufaktur yang tepat adalah masalah. Dengan kata lain itu pasti meningkatkan akurasi tetapi yang penting adalah akurasi.
TMa
1

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.

Ayhan
sumber
1

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. pendekatan visi komputer lainnya

szulat
sumber
0

Saya tidak tahu apa yang Anda anggap sebagai kekayaan, tetapi Anda mungkin ingin mempertimbangkan http://www.inductosyn.com/

Bidang EM
sumber
+ Saya akan memposting untuk mempertimbangkan resolver atau RVDT
JonRB
3
Ini adalah jawaban yang sangat lemah, pada dasarnya hanya berupa tautan. Terbaik jika Anda bisa menjelaskan sedikit tentang apa yang Anda tautkan.
tcrosley
@tcrosley: Dalam contoh ini, alih-alih memberikan desain yang sepenuhnya tidak lengkap dan deskripsi rangkaian lengkap, (seperti biasanya saya tidak akan) saya memilih untuk memberikan tautan karena menyinggung perangkat / sistem yang mampu menyelesaikan 360 derajat menjadi 7200 bagian per derajat sudut, dan meninggalkan sebagian besar kerja keras dan upaya desain ke OP. Mengapa itu membuat saya menjadi orang jahat?
EM Fields
2
@EMFields Masalah saya bukan karena Anda tidak menyediakan desain sendiri, melainkan bukan ide yang baik untuk hanya mengirim tautan di sini sebagai jawaban karena mungkin akan buruk di beberapa titik - seseorang harus memposting tautan dan semacam teks yang menyertai sehingga pembaca dapat mencari item atau teknologi serupa bahkan jika tautannya tidak lagi valid. Dalam kasus Anda, Anda memposting tautan ke beranda perusahaan, yang cenderung buruk. Lihat "Berikan konteks untuk tautan" di halaman ini .
tcrosley
1
@tcrosley: Saya menghargai poin Anda, tetapi hanya nama merek "Inductosyn" (yang mungkin dekat dengan istilah generik, sekarang) harus meletakkan pertanyaan yang tulus di jalan menuju pencerahan, apakah target tautan itu hidup atau mati. Google "Inductosyn" dan Anda akan melihat bahwa ada lebih banyak informasi di luar sana daripada saya ingin menghabiskan malam nuri.
EM Fields
0

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.

pengguna103185
sumber
0

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!

Madcowswe
sumber