Cara menulis program pengindeksan sewenang-wenang untuk melangkah motor
Ramai orang berfikir bahawa motor stepper tidak boleh diindeks dengan tepat, dan kaedah memandu motor servo terlalu deified. Setakat yang saya bimbang dengan pengalaman menggunakan motor melangkah sebagai plat pengindeksan, sebenarnya, anda hanya perlu tahu cara menggunakan motor melangkah dan tahu bagaimana untuk menulis program. Ketepatan pengindeksan di bawah keadaan normal masih boleh dijamin.
Tidak kira di mana motor stepper digunakan, seseorang mesti memastikan bahawa terdapat tork yang mencukupi. Motor stepper adalah kereta besar yang ditarik kuda.
Masa permulaan di bawah keadaan normal hendaklah selalunya boleh selagi mungkin. Kelajuan bermula tidak boleh terlalu cepat. Permulaan dan berhenti yang berlebihan boleh menyebabkan penyingkiran. Dalam proses penggunaan, jika pengindeksan tidak lengkap, iaitu, adalah normal untuk mengambil bulatan, tetapi mengetahui bagaimana membuat sedikit lebih buruk, iaitu, terdapat jahitan, keadaan ini adalah langkah keluar yang legenda . Penyelesaian kehilangan penyegerakan tidak lebih daripada yang berikut:
Meningkatkan tork motor dan meningkatkan arus memandu;
Kurangkan kelajuan maksimum operasi;
Masa permulaan yang dilanjutkan;
Kurangkan kelajuan permulaan.
Jika tidak ada masalah dengan perkara di atas, maka mungkin terdapat ralat kumulatif dalam program dengan nadi sisa yang tidak dapat dibahagikan.
Seperti yang kita semua tahu, nadi dihitung sebagai integer, dan tidak ada perkara seperti separuh nadi. Tetapi selalunya separuh denyutan ini mempunyai masalah. Sekiranya bulatan dibahagikan kepada 10 bahagian yang sama, setiap separuh denyut nadi tidak menjadi masalah. 20 aliquot, separuh denyut per aliquot mungkin tidak ketara. Walau bagaimanapun, apabila dibahagikan kepada 50, 100, 500, nnn aliquots, denyutan nadi seperti ini mungkin tidak sedikit. Lebih banyak aliquot, walaupun setiap aliquot adalah 0.1 denyut, adalah nombor astronomi. Inilah sebabnya mengapa ramai orang berfikir bahawa motor stepper tidak dapat membuat cakera pengindeksan tepat. Ini bukan hanya motor progresif, malah motor servo, masalah ini juga wujud - selebihnya.
Seperti berikut: bilangan subdivisi pemandu stepper ialah 64. Kemudian bilangan denyutan setiap motor adalah 62x200 = 12800.
Sekarang tetapkan motor ke 128 bahagian yang sama, kemudian kirakan 12800/128 = 100 dengan baik. Bilangan denyutan setiap aliquot adalah 100 denyutan.
Tetapi jika sekarang saya minta untuk membahagikan kepada 129 bahagian yang sama, formulanya adalah: 12800/129 = 99.2248062, iaitu setiap aliquot memerlukan 99.2248062 denyutan untuk dibahagikan secara sama rata, maka penghitungan dikeluarkan dari sisa titik perpuluhan, maka kesilapan total daripada 129 eq ialah 129X0 .2248062 = 28.9999999 denyut. Setara dengan lingkaran ini adalah ralat 1/4 dari aliquot.
Oleh kerana tahap budaya saya yang terhad, saya telah menghabiskan banyak masa memikirkannya dan akhirnya menyelesaikan kaedah pemprosesan nombor nadi sisa ini.
Mengambil contoh permukaan sebagai rujukan, bilangan pulsa motor adalah 12,800, yang dibahagikan kepada 129 bahagian yang sama. Kesalahan maksimum yang diperlukan untuk melengkapkan pusingan tidak melebihi 1 nadi.
Kaedah pengaturcaraan adalah seperti berikut:
Tetapkan bilangan pulsa motor, ini mati, anda tidak boleh menulis. 12800 atau nilai-nilai lain.
Tetapkan bilangan bahagian yang sama untuk dibahagikan: 129 ke dalam daftar data D atau V
Kirakan bilangan denyutan integer yang diperlukan untuk setiap aliquot: 12800/129 = 99
Kiraan dengan tepat bilangan pulangan yang diperlukan untuk setiap aliquot. Hasil operasi terapung adalah: 12800/129 = 99.2248062
Beralih 99 ke nombor terapung dan dapatkan data sebagai 99.0
Kemudian, dengan menggunakan formula pengiraan 99.2248062-99.0 = 0.2248062, bilangan pulsa per aliquot diperolehi.
Kalikan jumlah bilangan denyutan dengan baki bilangan pulangan: 0.2248062x129 = 28.99999998. Keluarkan titik perpuluhan untuk mendapatkan integer 28.
Tolak 28 dari aliquot untuk mendapatkan: 129-28 = 101. Data ini adalah bilangan aliquot dalam proses tersebut.
Program ini berjalan ke: Alikot yang telah ditambah adalah lebih besar daripada 101, iaitu, dari 102 bahagian yang sama kepada 129 aliquot, dalam setiap 28 bahagian yang sama, satu nadi ditambah untuk setiap aliquot. Iaitu, bilangan denyutan bermula dari 102 bahagian yang sama adalah 99 + 1 = 100.
Seperti yang dikira di atas, dalam 28 aliquot lepas, setiap aliquot menambah nadi, iaitu peningkatan 1/100 setiap aliquot.
Ringkasan: Daripada pengiraan di atas, jika pemprosesan tidak tepat, produk yang diproses oleh program ini adalah memuaskan.






