Kecepatan stepper kehidupan nyata

9

Saya bertanya-tanya tentang kecepatan yang harus dicapai oleh stepper saya dalam operasi reguler dan apa faktor penentunya, mulai dari fakta / batasan perangkat keras teoritis hingga batasan perangkat lunak yang dapat memengaruhi kinerja.

Saya tahu tentang sifat dasar dari motor stepper seperti hubungan torsi dengan kecepatan, yang saya baca beberapa waktu yang lalu dari sumber ini (untuk anyont tersandung ke pertanyaan ini nanti): https://www.geckodrive.com/gecko/images /cms_files/Step%20Motor%20Basics%20Guide.pdf

Sejauh ini Wikipedia ( https://en.wikipedia.org/wiki/Stepper_motor ) dengan mudah membuat pernyataan berikut sehubungan dengan pertanyaan saya:

Jadi ketika dikontrol oleh drive L / R, kecepatan maksimum motor stepper dibatasi oleh induktansinya karena pada beberapa kecepatan, tegangan U akan berubah lebih cepat daripada arus yang dapat saya pertahankan.

dan untuk driver chopper:

Ini membutuhkan elektronik tambahan untuk merasakan arus berliku, dan mengontrol switching, tetapi memungkinkan motor stepper digerakkan dengan torsi yang lebih tinggi pada kecepatan yang lebih tinggi daripada drive L / R

Tentunya jumlah langkah / wahyu akan mengubah kecepatan juga

Namun, semua ini tidak membantu saya untuk menentukan kecepatan kehidupan sesungguhnya dari stepper saya. Parameter firmware tambahan mengacaukan otak (pemula) saya lebih banyak lagi (dan saya belum terlalu menyelami itu). Secara umum saya mengerti bahwa frekuensi yang kita gunakan untuk mengirim langkah ke stepper adalah faktor penentu utama, juga 'dikurangi' oleh microstepping, jika diterapkan. Kami tidak dapat menjaga arus naik sebanyak yang diperlukan karena pengaturan waktu / sifat induktif / elektronik motor, jadi kami kehilangan torsi atau akhirnya langkah. Tegangan yang lebih tinggi membantu menaikkan arus lebih cepat, sehingga kecuraman kenaikan arus juga dapat membatasi frekuensi maksimum yang berlaku. Frekuensi itu sendiri diberikan dari papan pengontrol ke driver motor, karenanya diatur dalam firmware.

Semua dalam semua, terlepas dari apa yang masuk akal untuk digunakan dalam pengaturan printer 3D, apa faktor penentu kecepatan stepper yang dapat direalisasikan dan bagaimana mereka mengubahnya menjadi nilai kehidupan nyata untuk printer kita? Saya juga akan tertarik pada bagaimana faktor-faktor penentu mempengaruhi keandalan dan kualitas cetak terlepas dari kesulitan mekanis yang muncul dengan kecepatan cetak.

/ edit:
Saya menemukan ini ada di electroncs SE:
/electronics/71270/maximum-speed-of-stepper-motor
/electronics/129064/slow -down-stepper-motor-speed-using-stepper-driver-drv-8825

Namun, saya pikir pertanyaan di sini relevan dan cukup spesifik untuk pencetakan 3D ada di sini bersama.

kamuro
sumber

Jawaban:

11

Empat batas kecepatan motor utama dalam printer 3d adalah:

  • Batas frekuensi pembangkitan langkah firmware
  • Efek perencana gerak firmware
  • Kehilangan torsi dan presisi karena induktansi kumparan motor dan efek back-EMF
  • Resonansi mid-band

Batas tingkat pembuatan langkah akan tergantung pada firmware dan papan pengontrol yang digunakan. Ada kisaran yang signifikan, terutama ketika firmware 32-bit dan platform berbasis RTOS seperti MachineKit dibandingkan dengan firmware 8-bit yang berjalan pada Atmega AVR. Beberapa contoh:

  • Marlin pada Atmega 16 MHz 8bit hanya dapat menjalankan stepper interupsi pada 10.000 hz tanpa mengganggu prosesor dan memblokir algoritma penting lainnya (seperti perencanaan gerak). Ia dapat menjalankan laju langkah hingga 40.000 hz dengan menggulirkan garis langkah dua atau empat kali per interupsi, yang secara efektif menurunkan tingkat langkah mikro dalam perangkat lunak dan menjalankan motor lebih kasar / lebih keras.
  • Pengulang pada Atmega yang sama dapat menjalankan interper stepper pada 12.000 hz, karena dioptimalkan lebih untuk kecepatan eksekusi daripada Marlin.
  • Pengulang pada ARM Cortex-M3 84 MHz 32bit dapat menjalankan interper stepper pada 80.000 Hz.

Batasan ini biasanya hanya memengaruhi kecepatan stepper yang sebenarnya ketika microstepping yang relatif halus digunakan.Pertimbangkan contoh berdasarkan konfigurasi printer Marlin yang sangat khas. Microstepping setidaknya 1/4 sangat disarankan untuk menghindari masalah resonansi, jadi mari kita mulai dengan 1/16 langkah. Ini memungkinkan quad-stepping untuk secara efektif menghasilkan 1/4-langkah. Memulai dengan microstepping yang lebih halus akan menurunkan kecepatan tertinggi kami, dan microstepping yang lebih kasar akan lebih keras dan mungkin mengalami resonansi, jadi ini adalah titik awal yang baik. Kemudian anggaplah katrol 32mm per putaran khas pada motor stepper 1,8 derajat (200 langkah / putaran). Sistem ini memiliki resolusi 200 * 16/32 = 100 langkah / mm. Pada tingkat stepping total 40.000 Hz (quad-stepping pada 10.000 Hz) kita secara teoritis dapat melakukan perjalanan pada 400 mm / s sebelum mencapai hard cap Marlin. Itu mungkin akan menjadi RPM lebih tinggi daripada yang kita ingin menjalankan motornya, jadi itu bukan batas yang sangat berdampak.

Sebagai perbandingan, jika kita mulai pada 1/128 stepping (seperti dengan chip driver THB6128) kecepatan tertinggi kita dengan Marlin 8bit adalah 50 mm / s. Itu cukup lambat.

Perencana gerak firmware lebih lanjut dapat membatasi kecepatan motor dengan membungkuk ke atas dan ke bawah untuk melintasi belokan dan sudut. Jika geometri model memiliki banyak belokan tajam, kecepatan target yang diperintahkan oleh gcode kemungkinan tidak akan pernah tercapai. Hanya jalur garis panjang dan lurus yang akan memiliki waktu langsing yang cukup untuk mencapai target kecepatan. Anda dapat melihatnya sendiri dengan mencetak model yang sangat kecil di berbagai laju gerak makan dan mengatur waktu durasi cetak aktual: pada titik tertentu, peningkatan kecepatan yang diperintahkan tidak akan membuat perbedaan pada waktu cetak yang sebenarnya.

Kendala lain yang ditegakkan beberapa firma adalah membutuhkan kemampuan untuk melambat dengan aman hingga berhenti dalam semua perintah gerak dalam antrian perencana. Hal ini memungkinkan printer menangani kehilangan input secara tiba-tiba, seperti jika komputer host berhenti mengirim perintah USB, atau jika kartu SD mengalami serangkaian kesalahan baca. Jika printer tiba-tiba berhenti dari kecepatan penuh ketika kehabisan perintah, kemungkinan kehilangan posisi dan merusak cetakan. Sedangkan jika itu dapat melambat ke kecepatan berhenti yang aman, itu mungkin dapat melanjutkan setelah aliran perintah dilanjutkan.

Dalam hal perilaku motorik aktual, induktansi dan EMF-belakang memperkenalkan batas signifikan karena mereka menurunkan torsi motor pada RPM yang lebih tinggi. Ini menghasilkan kurva torsi / RPM yang turun pada kecepatan yang lebih tinggi:

masukkan deskripsi gambar di sini http://www.geckodrive.com/support/step-motor-basics.html

Perhatikan dalam gambar bahwa ada daerah "arus konstan" yang rata di sisi kiri dengan kecepatan rendah. Ini adalah kisaran di mana driver memotong membatasi arus koil. Di sisi kanan kurva, arus tidak dapat mencapai target sebelum harus dimatikan kembali untuk langkah berikutnya. Itu mengurangi kekuatan medan dan dengan demikian torsi.

Ada dua efek terpisah yang perlu dipertimbangkan di sini:

  • Kumparan motor adalah induktor, yang berarti ada jeda urutan pertama antara tegangan yang diterapkan dan arus kumparan. Motor stepper bipolar standar dengan driver microstepping harus menaikkan arus koil dari nol ke maks atau dari maks ke nol setiap langkah penuh (mis. Setiap langkah mikro 16/16). Pada laju langkah tinggi, tidak ada cukup waktu untuk mengisi penuh koil ke arus maksimum sebelum langkah berikutnya mengharuskan menjatuhkan arus kembali ke bawah. Tanpa mengembangkan arus kumparan penuh pada setiap langkah, torsi hilang.
  • Setiap motor juga generator, dan memutar rotor menghasilkan tegangan EMF-kembali di dalam gulungan motor. Bentuk gelombang tegangan itu akan ditumpuk di atas bentuk gelombang tegangan drive dengan pergeseran fasa tergantung pada posisi rotor relatif terhadap posisi energi kumparan. Secara sederhana, tegangan ini mencoba untuk mengerem motor: selalu melakukan apa pun yang akan memperlambat motor. Ini berarti ia menentang voltase penggerak yang diterapkan ketika motor menerapkan torsi ke depan, atau membantu voltase penggerak yang diterapkan ketika motor menerapkan torsi rem.

Untuk diskusi praktis tentang batas kecepatan, kita dapat menyederhanakan situasi dengan mengasumsikan tegangan EMF-belakang berlawanan dengan tegangan penggerak yang diterapkan pada koil. Ini berarti ada peningkatan tegangan / penurunan arus koil yang kurang efektif, dan dibutuhkan waktu lebih lama untuk arus berubah, dan lebih sedikit arus koil yang dikembangkan daripada yang akan terjadi tanpa back-emf. Ini lebih lanjut menekan kurva torsi / RPM motor. Dan ketika tegangan back-EMF adalah sekitar besarnya sama dengan tegangan drive, ketidakstabilan motor yang signifikan dapat terjadi karena efek umpan balik yang kompleks antara posisi rotor dan tegangan koil efektif.

Anda dapat bermain dengan efek-efek ini menggunakan konfigurasi dan kecepatan motor yang berbeda untuk beberapa driver stepper printer 3D populer menggunakan simulator driver stepper saya: https://github.com/rcarlyle/StepperSim

Dalam aplikasi loop tertutup dengan umpan balik posisi dan driver kelas atas yang dapat meredam berbagai mode ketidakstabilan, mungkin tidak apa-apa untuk menjalankan stepper sampai ke kurva torsi pada RPM yang sangat tinggi. Dalam aplikasi printer 3D loop terbuka yang lebih umum, umumnya yang terbaik adalah tetap menggunakan bagian RPM rendah dari kurva torsi sebelum induktansi dan EMF belakang benar-benar mengambil alih perilaku motorik. Kehilangan terlalu banyak torsi dapat dengan mudah berarti melompati langkah dan kehilangan posisi, merusak cetakan.

Efek penting lainnya untuk stepper adalah resonansi mid-band . Ini bukan resonansi mekanik normal, tetapi sebenarnya efek resonansi elektromekanis. Ini cukup rumit, tetapi penjelasan singkatnya adalah bahwa stepper memiliki pergeseran fase 90 derajat intrinsik antara posisi dan torsi, dan ketika kecepatan naik ke titik di mana induktansi koil memperkenalkan pergeseran fase 90 derajat tambahan antara arus koil dan tegangan yang diberikan, sistem elektromekanis memiliki fase fase 180 derajat yang sangat tidak stabil dan dengan demikian menciptakan umpan balik negatif. Ini dapat dengan cepat menjatuhkan torsi motor hingga motor kehilangan sinkronisitas dengan voltase dan stall yang disediakan pengemudi.

Resonansi mid-band hanya terjadi ketika arus kumparan dibatasi oleh induktansi. Ini tidak dapat terjadi dalam kisaran drive arus konstan karena tidak ada fase yang cukup antara tegangan yang diberikan dan arus koil.

masukkan deskripsi gambar di sini http://www.geckodrive.com/support/step-motor-basics.html

Sayangnya, kurva torsi terukur yang tersedia dari produsen hampir tidak pernah menunjukkan zona resonansi, karena kurva tersebut diproduksi oleh motor pemuatan dengan gesekan-rem yang meredam segala jenis efek resonansi dari bangunan. Sedangkan beban drivetrain printer 3D hampir seluruhnya inersia (mempercepat massa) yang jauh lebih rentan terhadap resonansi.

Driver kelas atas dapat secara otomatis mendeteksi dan mengurangi resonansi mid-band, tetapi driver printer 3D berbiaya rendah tidak memiliki kemampuan ini.

Pada umumnya bijaksana untuk menghindari memasuki rentang RPM di mana resonansi mid-band dapat terjadi. Ini mudah dilakukan dengan menempel ke sisi kiri kurva torsi, di wilayah operasi arus konstan. Ini memastikan torsi tinggi dan stabilitas yang baik.

Untuk contoh nyata, pertimbangkan stepper Kysan 1124090 yang populer dengan catu daya 24v.

masukkan deskripsi gambar di sini https://ultimachine.com/content/kysan-1124090-nema-17-stepper-motor

Untuk mempertahankan torsi tinggi dan menghindari resonansi mid-band, kami ingin menjaga RPM sekitar 400 atau kurang. Untuk katrol 32mm-per-rev yang sama yang disebutkan di atas, itu akan membatasi kecepatan hingga sekitar 200-240 mm / s. Kecepatan yang lebih tinggi dimungkinkan, tetapi mungkin menghadapi masalah keandalan.

Kecepatan ini, tentu saja, mengasumsikan PSU 24v digunakan, untuk mencocokkan kurva torsi yang diukur: PSU 12v akan memiliki kecepatan puncak yang jauh lebih rendah sebelum induktansi mulai membatasi arus kumparan, sekitar setengah lebih cepat. Tegangan pasokan yang lebih tinggi sangat meningkatkan kecepatan efektif teratas untuk motor.

Sekali lagi, Anda dapat dengan mudah mensimulasikan efek ini (menggunakan https://github.com/rcarlyle/StepperSim ). Grafik output simulator ini menunjukkan bagaimana induktansi dan back-EMF menjaga arus koil dari mencapai target:

masukkan deskripsi gambar di sini

Untuk desain drivetrain yang praktis, simulator motor / driver benar-benar merupakan alat terbaik dalam kotak peralatan untuk menemukan titik di mana kinerja akan mulai menurun karena ketidakmampuan untuk mencapai target saat ini. Terlalu rumit untuk menerapkan persamaan sederhana atau aturan praktis dengan akurasi apa pun. Efek listrik ini dan batas pembuatan langkah firmware cenderung menjadi dua batasan utama pada kecepatan motor untuk sebagian besar printer.

Tentu saja, seberapa cepat Anda dapat melelehkan plastik akan cenderung membatasi kecepatan pencetakan secara signifikan di bawah batas kecepatan motor yang sebenarnya, tetapi itu adalah diskusi yang berbeda. Untuk saat ini, kita dapat dengan mudah mengatakan bahwa kecepatan motor atas cenderung tidak penting untuk gerakan cetak pada printer Cartesian biasa. Namun, ada beberapa contoh di mana mereka cenderung mendorong kinerja printer:

  • Delear Linier, tempat gerbong mungkin perlu berjalan beberapa kali lebih cepat daripada efektor untuk arah gerakan tertentu
  • Extruders yang diarahkan dengan rasio reduksi tinggi (mis. Lebih dari 5: 1) untuk kecepatan retraksi yang tinggi
  • Sekrup lead pitch pendek (atau semua ulir) yang membutuhkan kecepatan rotasi tinggi untuk mencapai kecepatan linier moderat
Ryan Carlyle
sumber
++ Terima kasih, ini membantu saya memahami apa yang terjadi jauh lebih baik daripada yang saya lakukan sebelumnya!
TextGeek
Jawaban ini epik. Tautan ke kalkulator XLSX juga! Saya akan mengajukan pertanyaan tentang repurpos stepper lama saya, setelah meletakkan nilai-nilai di XLSX saya sudah mendapatkan jawaban saya.
FarO