Bahagian tapak
Pilihan Editor:
- Enam contoh pendekatan yang cekap untuk penurunan angka
- Petikan Puisi Wajah Musim Sejuk untuk Kanak-kanak
- Pelajaran bahasa Rusia "tanda lembut selepas kata nama mendesis"
- Pohon Pemurah (perumpamaan) Bagaimana untuk menghasilkan pengakhiran yang menggembirakan kepada kisah dongeng Pohon Pemurah
- Rancangan pengajaran tentang dunia di sekeliling kita mengenai topik "Bilakah musim panas akan tiba?
- Asia Timur: negara, penduduk, bahasa, agama, sejarah Menjadi penentang teori pseudoscientific membahagikan umat manusia kepada yang lebih rendah dan lebih tinggi, beliau membuktikan kebenaran
- Klasifikasi kategori kesesuaian untuk perkhidmatan tentera
- Maloklusi dan tentera Maloklusi tidak diterima ke dalam tentera
- Mengapa anda mengimpikan ibu yang mati hidup: tafsiran buku impian
- Apakah tanda zodiak orang yang dilahirkan di bawah bulan April?
Mengiklankan
Robotik adalah hala tuju baru yang menarik, yang, nampaknya, akan terus berkembang dalam rangka kerja kursus sekolah sains komputer dan teknologi. Ledakan dalam robotik sebahagian besarnya disebabkan oleh fakta bahawa ia membolehkan kita menjawab soalan: "Mengapa kita sebenarnya belajar pengaturcaraan?" Di samping itu, dalam kursus robotik anda boleh berkenalan dengan konsep asas teori kawalan automatik. Halaman ini membentangkan simulator pengaturcaraan dan papan Arduino yang dibangunkan oleh pengarang. Mereka boleh membantu dalam kes di mana atas sebab tertentu tidak mungkin untuk menggunakan perkakasan sebenar. Simulator menggunakan keupayaan HTML5, jadi ia hanya akan berfungsi pelayar moden(sebaiknya digunakan Google Chrome atau Mozilla Firefox). Berita kini juga di saluran Telegram27 November 2015 13 Oktober 2015 Bahasa kawalan robotUntuk mengawal robot dalam simulator, bahasa pengaturcaraan mudah digunakan, yang menerima nama kerja SiRoP (Pengaturcaraan Robot Mudah). Kawalan robot dengan sensor cahayaPenderia cahaya membolehkan robot menavigasi pada permukaan meja, sebagai contoh, bergerak di sepanjang sempadan antara kawasan putih dan hitam (di sepanjang tepi garis hitam). Sebuah fotodiod menerangi permukaan, sebuah photodetector "menangkap" sinaran yang dipantulkan dan mengukur keamatannya. Tugas paling popular jenis ini ialah bergerak sepanjang satu baris. Menggunakan simulator, anda boleh mengkaji pelbagai undang-undang kawalan - geganti, berkadar, dan juga kawalan PID (berkadar-integral-derivatif). Contoh program untuk robot dengan sensor cahaya Manakala 1 (jika sensor > 128 (motor = 100 motor = 0) sebaliknya (motor = 0 motor = 100) tunggu(10)) KP = 0.2 manakala 1 ( u = kP*(sensor-128) motor = 50 + u motor = 50 - u tunggu(20) ) Utama ( manakala 1 ( manakala sensor > 128 ( motor = 100 motor = 100 tunggu(10) ) belakang() pusing() ) belakang ( motor = -100 motor = -100 tunggu(260) ) pusing ( motor = -50 motor = 50 tunggu(50) ) Kawalan robot dengan dua sensor cahayaDua penderia cahaya membolehkan robot menavigasi dan memandu dengan lebih baik di sepanjang garisan nipis. Mereka dibawa ke hadapan sedikit dan tersebar ke tepi. Seperti masalah penderia tunggal, simulator ini boleh digunakan untuk mengkaji pelbagai undang-undang kawalan. Contoh program untuk robot dengan tiga sensor cahaya Kawalan robot dengan empat sensor cahayaEmpat sensor cahaya membolehkan robot mengesan selekoh tajam dengan lebih baik. Penderia dalaman digunakan untuk pelarasan halus; dua sensor luaran dibawa sedikit ke hadapan dan merebak ke tepi. Ia digunakan apabila terdapat selekoh tajam. Keuntungan untuk kawalan berdasarkan bacaan penderia pasangan luaran dipilih lebih besar daripada pasangan dalaman (lihat. L.Yu. Ovsyanitskaya et al., Algoritma dan program untuk pergerakan robot Lego Mindstorms EV3 di sepanjang baris, M.: “Pero”, 2015). Contoh program untuk robot dengan empat sensor cahaya Manakala 1 ( d0 = sensor > 128 d1 = sensor > 128 d2 = sensor > 128 d3 = sensor > 128 jika d1 & !d2 ( motor = 100 motor = 0 ) jika! d1 & d2 ( motor = 0 motor = 100 ) jika d1 == d2 ( motor = 100 motor = 100 ) jika d0 & !d3 ( motor = 30 motor = 0 ) jika!d0 & d3 ( motor = 0 motor = 30 ) tunggu(10) ) K1 = 0.2 k2 = 0.4 manakala 1 ( u1 = sensor - sensor u2 = sensor - motor sensor = 50+k1*u1+k2*u2 motor = 50-k1*u1-k2*u2 tunggu(10) ) Mengawal robot dengan sensor jarak (sonar)Sensor jarak (sonar) membolehkan anda menentukan jarak ke halangan terdekat semasa robot bergerak. Ia mengeluarkan isyarat ultrasonik dan menerima isyarat yang dipantulkan. Semakin lama masa antara isyarat yang dipancarkan dan diterima, semakin jauh jaraknya. Menggunakan penderia jarak, robot boleh diprogramkan untuk menavigasi secara automatik labirin bentuk yang diketahui tetapi saiz yang tidak diketahui. Masalah ini klasik, mudah dari segi ideologi, ia boleh diselesaikan berkali-kali, dan setiap kali anda akan menemui sesuatu yang baharu. Terdapat banyak pendekatan untuk menyelesaikan masalah baris berikut. Pilihan salah satu daripada mereka bergantung pada reka bentuk khusus robot, pada bilangan sensor, lokasi mereka berbanding dengan roda dan satu sama lain. Dalam contoh kami, tiga contoh robot akan dianalisis berdasarkan model pendidikan utama Robot Educator. Sebagai permulaan, kami memasang model asas robot pendidikan Robot Educator, untuk ini anda boleh menggunakan arahan dalam perisian MINDSTORMS EV3. Selain itu, sebagai contoh, kami memerlukan penderia warna terang EV3. Penderia cahaya ini, tidak seperti yang lain, paling sesuai untuk tugas kita apabila bekerja dengannya, kita tidak perlu risau tentang keamatan cahaya sekeliling. Untuk penderia ini, dalam program kami akan menggunakan mod cahaya pantulan, di mana jumlah cahaya pantulan dari lampu latar merah penderia dianggarkan. Had bacaan sensor ialah 0 - 100 unit, masing-masing untuk "tiada pantulan" dan "total pantulan". Sebagai contoh, kami akan menganalisis 3 contoh program untuk bergerak sepanjang trajektori hitam yang digambarkan pada latar belakang rata dan terang: · Satu sensor, dengan pengawal selia P. · Satu sensor, dengan pengawal selia PC. · Dua sensor. Contoh 1. Satu sensor, dengan pengawal selia P.Reka bentukSensor cahaya dipasang pada rasuk yang terletak dengan mudah pada model. AlgoritmaOperasi algoritma adalah berdasarkan fakta bahawa, bergantung pada tahap pertindihan pancaran pencahayaan sensor dengan garis hitam, bacaan yang dikembalikan oleh sensor berbeza-beza secara beransur-ansur. Robot mengekalkan kedudukan sensor cahaya pada sempadan garis hitam. Dengan menukar data input daripada sensor cahaya, sistem kawalan menjana nilai untuk kelajuan pusingan robot. Oleh kerana pada trajektori sebenar, sensor menjana nilai di seluruh julat operasinya (0-100), 50 dipilih sebagai nilai yang diusahakan oleh robot Dalam kes ini, nilai yang dihantar ke fungsi putaran dijana julat -50 - 50, tetapi nilai ini tidak mencukupi untuk membelok trajektori yang curam. Oleh itu, julat perlu dikembangkan satu setengah kali ganda kepada -75 - 75. Akibatnya, dalam program ini, fungsi kalkulator adalah pengawal berkadar mudah. Fungsi yang ( (a-50)*1.5 ) dalam julat operasi sensor cahaya menjana nilai putaran mengikut graf: Contoh bagaimana algoritma berfungsi
Contoh 2. Satu sensor, dengan pengawal selia PK.Contoh ini adalah berdasarkan pembinaan yang sama. Anda mungkin perasan bahawa dalam contoh sebelumnya robot itu bergoyang secara berlebihan, yang tidak membenarkannya memecut dengan cukup. Sekarang kita akan cuba memperbaiki keadaan ini sedikit. Pada pengawal berkadar kami, kami juga menambah pengawal kiub ringkas, yang akan menambah sedikit lenturan pada fungsi pengawal. Ini akan mengurangkan hayunan robot berhampiran sempadan trajektori yang dikehendaki, serta membuat hentakan yang lebih kuat apabila jauh daripadanya. Pengawal berkadar ialah peranti yang melakukan tindakan kawalan u(t) pada objek berkadaran dengan sisihan linearnya e(t) daripada keadaan tertentu x0(t); e(t)=x0(t)-x(t), dengan x(t) ialah keadaan pada masa tertentu; u(t)=ke(t), dengan k ialah faktor penguatan. Pergerakan garisan dengan satu sensor cahaya menggunakan pengawal P Pergerakan di sepanjang sempadan hitam dan putih juga boleh dibina pada P-regulator. Walaupun secara luaran masalah itu nampaknya hanya boleh diselesaikan dengan bantuan pengawal geganti, kerana sistem ini hanya mempunyai dua keadaan yang boleh dilihat oleh mata manusia: hitam dan putih. Tetapi robot melihat segala-galanya secara berbeza; untuk itu tiada sempadan yang tajam antara warna-warna ini. Kita boleh mengatakan bahawa dia rabun jauh dan melihat peralihan kecerunan warna kelabu. Pekali k (sama dengan dalam contoh ini 2) hendaklah cukup kecil (dari 1 hingga 3). Pengawal selia sedemikian hanya berfungsi dengan berkesan untuk sudut pesongan kecil, jadi robot mesti diletakkan ke arah pergerakan supaya sensor berada di sebelah kiri garis hitam. Adalah mudah untuk melihat bahawa pergerakan di sepanjang garisan pada P-regulator adalah lancar. dan dalam beberapa bidang kerja ia bergerak hampir secara linear atau tepat mengikut selekoh garisan. Penentukuran sensor Mari kita lihat nombor 48 yang digunakan dalam formula. Ini ialah purata aritmetik bacaan sensor cahaya pada hitam dan putih, contohnya (40+56)/2=48. Walau bagaimanapun, bacaan sensor sering berubah disebabkan oleh pelbagai alasan: permukaan yang berbeza, perubahan dalam pencahayaan keseluruhan di dalam bilik, sedikit pengubahsuaian reka bentuk, dsb. Oleh itu, kami akan menentukur robot secara manual dengan menentukan bacaan sensor cahaya pada putih dan hitam. Pergerakan garisan dengan dua penderia cahaya menggunakan pengawal P
Pekali k boleh berubah dalam julat yang agak luas (dari 1 hingga 20 atau lebih) bergantung pada kelengkungan garisan, kebolehgerakan robot dan perbezaan antara hitam dan putih di atas padang. Dan satu lagi nota. Terdapat sensor yang bacaannya berbeza sebanyak 10-20%. Adalah dinasihatkan untuk tidak memasangkannya dengan pengawal selia dengan pekali yang besar, kerana dengan perubahan mendadak dalam pencahayaan keseluruhan, walaupun pada medan putih seragam, penyimpangan mungkin berbeza, yang akan membawa kepada akibat yang tidak dijangka. Butiran Pengarang: Konovalov Igor Pengawal berkadar adalah penambahbaikan. Kelemahan utama relay ialah ia tidak peduli bagaimana nilai semasa berbeza daripada nilai normal sensor. Ia hanya mempunyai dua keadaan - sama ada cuba meningkatkan nilai sensor dengan nombor tetap tertentu jika ia kurang daripada nilai normal, atau meningkatkannya. Oleh kerana itu, ayunan berlaku dengan amplitud malar, yang sangat tidak cekap. Adalah lebih logik untuk menentukan sejauh mana "jauh" bacaan semasa daripada normal, dan menukar amplitud bergantung pada ini. Untuk menjadikannya lebih jelas, mari kita lihat contoh. Contoh, seperti dalam artikel sebelumnya, adalah sama: robot dari Lego Mindstorms EV3 memandu sepanjang garis hitam menggunakan satu sensor warna dalam mod cahaya. Robot cuba memandu di sepanjang sempadan antara putih dan hitam, dan di sana sensor menunjukkan kira-kira 50% daripada pencahayaan. Dan semakin jauh dari kedudukan biasa, semakin banyak usaha yang dilakukan oleh robot untuk kembali ke 50%.
Pengawal berkadar Penerangan Dalam kawalan automatik, tindakan kawalan u(t) biasanya merupakan fungsi ralat dinamik - sisihan e(t) pembolehubah terkawal x(t) daripada nilai setnya x0(t): e(t) = x0(t) – x(t). Ini ialah prinsip pengawalseliaan Polzunov-Watt melalui sisihan, atau prinsip maklum balas. Ungkapan matematik kebergantungan fungsi tindakan kawalan yang dikehendaki u0(t) pada kuantiti yang diukur oleh pengawal dipanggil undang-undang atau algoritma kawalan yang dibincangkan di atas. Pengawal berkadar ialah peranti yang memberikan kesan kawalan pada objek mengikut kadar sisihan daripada keadaan tertentu: Di sini k ialah keuntungan pengawal. Keadaan yang diberikan x0 biasanya dipanggil titik set, dan sisihan daripadanya e dipanggil baki. Di bawah, untuk kepastian, kami akan menandakan baki dengan singkatan err (daripada perkataan Inggeris"ralat" - ralat). Kawalan motor Pahlawan yang berpengalaman tidak akan menghayunkan pedang seperti robot pada pengawal relay. Kita perlu menghasilkan algoritma yang akan memegang motor yang memegang pedang dalam kedudukan tetap (Gamb. 7.1). Pengawal selia P akan membantu dengan ini. Biarkan e 1 - bacaan sensor kelajuan 1 pada motor A - menjadi pembolehubah boleh laras. Tetapan x0 = 45, dan baki e = 45 – e 1. Kemudian tindakan kawalan pada motor diberikan oleh formula u = k ∙ (45 – e 1). Di sini k ialah faktor keuntungan, contohnya 5, yang akan meningkatkan tindak balas motor walaupun dengan sisihan kecil dari titik set. 1 Jangan mengelirukan penetapan matematik baki e (daripada ralat) dengan bacaan pengekod e 1 (dari pengekod), pembolehubah persekitaran Robolab yang dipratentukan. Sekiranya terdapat penyelewengan dalam sisi positif input kawalan negatif akan digunakan pada motor, dan sebaliknya. Kawalan ini boleh digunakan pada motor dalam kitaran dengan kelewatan singkat 1-10 ms untuk melegakan pengawal (Rajah 7.8). nasi. 7.8. Algoritma kawalan motor menggunakan pengawal berkadar. Jika faktor keuntungan dinaikkan daripada 5 kepada 100, pengawal berkadar kami akan mula bertindak seperti geganti, menyebabkan turun naik yang kuat disebabkan oleh kesan overshoot. Bahasa RobotC tidak mempunyai notasi yang begitu mudah untuk bacaan pengekod seperti dalam Robolab, jadi program kelihatan lebih lama sedikit: int k=5, u; nMotorEncoder=0; sementara (benar) u=k*(45-nMotorEncoder); motor=u; Selanjutnya, untuk menyampaikan "serangan pedang", cukup untuk mempunyai pembolehubah dan bukannya nombor 45 dan menukar nilainya dari luar, sebagai contoh, dari tugas selari. Ini diliputi dalam bahagian tentang pemain drum robot dalam Bab 8. Sekarang mari kita bina pengawal selia yang mengawal bukan sahaja kedudukan statik motor, tetapi juga kelajuan pergerakannya. Mengikut logik algoritma, setpoint, yang sehingga kini adalah tetap dan tidak berubah, harus mula bergerak ke arah peningkatan atau penurunan. Mematuhi pengawal selia, motor pasti akan mengikutinya. Alat paling mudah untuk menambah nilai titik tetap secara berterusan ialah pemasa. Pengawal NXT mempunyai empat pemasa terbina dalam, setiap satunya boleh mengukur masa dalam persepuluh, perseratus dan perseribu saat. Mari kita kuasai pemasa pertama, yang melaksanakan 10 "petua" sesaat. kov". Dalam Robolab ia ditetapkan T1 atau Pemasa100ms1, dan dalam RobotC ia adalah pemasa100. Mari kita buat sudut pesongan motor alfa, yang dinyatakan dalam contoh sebelumnya pada 45, bergantung pada bacaan pemasa dengan pekali pecutan k 2: alfa = k2 ∙ T1. Tindakan kawalan akan kekal sama dengan faktor amplifikasi k 1: u = k 1 ∙ (alfa – e 1). Secara ringkas, dalam program dalam bahasa Robolab, kami akan menggunakan tindakan kawalan terus ke motor, setelah memulakan pemasa sebelum ini nasi. 7.9. Kawalan kelajuan motor adalah satu pusingan sesaat. Pekali k 2 = 36 menentukan bahawa dalam sesaat nilai alfa meningkat kepada 360, yang sepadan dengan satu revolusi penuh enjin: int k1=2, k2=36, u, alfa; nMotorEncoder=0; ClearTimer(T1); sementara (benar) alpha=pemasa100*k2; u=k1*(alpha-nMotorEncoder); motor=u; Menggunakan pembahagian integer, seperti yang diterima pakai dalam bahasa C (dan dalam Robolab) untuk pembolehubah jenis integer, adalah mungkin untuk mencapai perubahan diskret dalam sudut, i.e. menambahnya sekali sesaat: alfa = T 1 / 10 ∙ k 2. Dengan pekali k 2 = 60, pergerakan rasuk akan sepadan dengan pergerakan tangan kedua pada dail jam tangan. Tetapi itu tidak mencukupi ketara. Untuk kejelasan, anda boleh menetapkan k2 = 30, maka anak panah akan membuat revolusi penuh dalam 12 "kutu" 30 darjah setiap satu. Berhati-hati dengan urutan pembahagian integer dan operasi pendaraban; mengubah susunan atau "mengurangkan" pasti akan mengubah keputusan (Rajah 7.10). nasi. 7.10. Tiruan dipercepatkan pergerakan jarum jam. Dan akhirnya, contoh pemain drum matematik. Daripada sentiasa bergerak ke hadapan, jarum akan berayun ke depan dan ke belakang di bawah kawalan pengawal selia P. Operasi pembahagian dengan baki, yang dalam C dilambangkan dengan tanda %, akan membantu dengan ini. Baki integer bukan negatif dibahagikan dengan 2 akan sentiasa menjadi 0 atau 1: alfa = T 1% 2 ∙ k 2. Meningkatkan sisihan sebanyak k 2 = 15 kali, kita memperoleh titik set berayun alfa, yang akan memaksa pengawal untuk menggerakkan motor 5 kali sesaat, sama ada 0º atau 15 darjah. Perubahan dalam program adalah kecil. Mari lihat contoh dalam RobotC: int k1=3, k2=15, u, alfa; nMotorEncoder=0; ClearTimer(T1); sementara (benar) alpha=pemasa100%2*k2; u=k1*(alpha-nMotorEncoder); motor=u; Pemain dram prototaip ini memukul meja pada selang masa yang tetap. Perkara utama ialah bermula pada kedudukan yang betul. Menggunakan matematik integer, anda boleh menetapkan corak irama yang lebih kompleks, contohnya (Jadual 7.1): alfa = T 1% 5% 2 ∙ k 2. pusat = S3. Pekali ditentukan dalam kitaran: k 1 = c + (S 3 - tengah) / k 2. nasi. 7.36. Pergerakan sepanjang garisan pada pengawal berkadar dengan pekali terapung. Undang-undang kawalan keuntungan yang terhasil boleh digunakan bukan sahaja kepada komponen berkadar, tetapi juga kepada mana-mana komponen lain, serta kepada tindakan kawalan secara keseluruhan (Rajah 7.36). Pengawal PID Pengawal proportional-integral-derivative (PID) adalah salah satu yang paling popular dan digunakan dalam sebilangan besar peranti yang paling banyak jenis yang berbeza, yang memerlukan tindak balas pantas dan ketepatan kedudukan sistem. Seperti namanya, pengawal selia ini terdiri daripada jumlah tiga komponen dan digambarkan secara grafik dalam Rajah. 7.37. nasi. 7.37. litar pengawal PID. Ini adalah gambar rajah yang dipermudahkan. Nilai ralat dinamik e (t) dibekalkan kepada input pengawal, dan tindakan kawalan u (t) dijana pada output:
Komponen berkadar, ditunjukkan dalam rajah sebagai segi tiga, bertanggungjawab untuk meletakkan sistem dalam keadaan tertentu. Dalam sesetengah kes, ia boleh menyebabkan overshoot dengan ayunan diri yang seterusnya. Iaitu, P-regulator mungkin "berlebihan" dan robot akan mula hanyut dari sisi ke sisi. Komponen integral mengumpul pengalaman negatif (menjumlahkan kesilapan) dan menghasilkan kesan pampasan. Dengan sisihan minimum, komponen berkadar "melemah" dan komponen kamiran, disebabkan peningkatan pesatnya melalui penjumlahan, membantu "mencapai" nilai terkawal ke titik set. Komponen pembezaan (komponen D) memantau kadar perubahan dalam keadaan sistem dan menghalang kemungkinan overshoot. Dalam sesetengah kes, komponen D adalah bertentangan dalam tanda dengan yang berkadar, dan dalam yang lain ia bertepatan. Kita sudah biasa dengan komponen berkadar, yang berbeza diterangkan dalam bab 6 sebelumnya. Mari kita ambil bahagian integral. Komponen ini ditentukan secara dinamik, dijumlahkan dengan nilai sebelumnya: i = i + ki × e(t) × dt. Maksud fizikal kuantiti e(t) × dt ialah ia adalah berkadar dengan tempoh sistem berada dalam keadaan ralat. Oleh kerana pekali k i dikeluarkan daripada kurungan, kita boleh bercakap tentang nilai i sebagai jumlah tempoh ralat. Oleh itu, kita mencari kamiran dengan penjumlahan. Mari kita pertimbangkan penggunaan pengawal PID menggunakan contoh pengimbangan robot pada dua roda. Masalah klasik ini boleh diselesaikan menggunakan penderia yang berbeza dalam pelbagai cara. Dalam contoh yang dicadangkan, sensor cahaya digunakan dan bentuk paling ringkas Pengawal PID. Walau bagaimanapun, untuk mencapai penstabilan robot memerlukan penggunaan bacaan sensor yang lebih tepat. Format RAW Data sensor memasuki pengawal NXT dalam bentuk mentah yang belum diproses. Semua sensor menghantar sistem operasi nilai digital dari 0 hingga 1023, yang kemudiannya diproses oleh pemacu yang sepadan dan dikurangkan kepada bentuk yang lebih mudah difahami (jarak 0...255, pencahayaan 0...100, sentuh 0 atau 1, dsb.). Tetapi data boleh diterima secara langsung, memintas pemandu. Format mentah ini biasanya dipanggil RAW (dari bahasa Inggeris "raw"). Dalam sesetengah kes, ia boleh digunakan untuk mencapai ketepatan yang lebih tinggi. Sebagai contoh, julat nilai sensor cahaya boleh meningkat lebih kurang 10 kali ganda. Peluang inilah yang digunakan lebih jauh. Anda boleh menerima data dalam format RAW dalam kedua-dua Robolab dan RobotC. Untuk melakukan ini, sensor dimulakan dengan sewajarnya, dan data dibaca daripadanya menggunakan pembolehubah khas yang dipratentukan. Robot pengimbang Reka bentuk robot Segway ditunjukkan dalam Rajah. 7.38: pengawal kedudukan menegak, roda diletakkan rapat dan penderia cahaya menghadap ke bawah. Algoritma akan menjadi lebih rumit. Prinsip menstabilkan Segway dalam kedudukan seimbang adalah seperti berikut. Jika robot condong ke hadapan, bacaan pada sensor cahaya meningkat disebabkan oleh cahaya yang dipantulkan. Sebagai tindak balas kepada ini, tindakan kawalan dijana, memaksa robot untuk bergerak ke hadapan dan dengan itu sekali lagi mengambil kedudukan menegak. Apabila bergerak ke belakang, bacaan sensor berkurangan dan robot mula bergerak ke belakang. Komponen berkadar bertanggungjawab untuk semua ini. Peranan komponen integral dan pembezaan dimainkan oleh insurans terhadap overshoot. nasi. 7.38. Mengimbangi robot Segway. Dalam Rajah. 7.39 menunjukkan algoritma dalam Robolab. Kebanyakannya diduduki oleh permulaan pembolehubah. Untuk meningkatkan ketepatan, bukan sahaja data sensor dibaca dalam format RAW, tetapi kebanyakan pembolehubah diisytiharkan dalam format apungan sebenar. Algoritma PID itu sendiri berada dalam gelung. nasi. 7.39. Algoritma pengimbang adalah berdasarkan pengawal PID. Mengikuti tradisi bergerak sepanjang garisan, kami menggunakan pembolehubah kelabu sebagai titik tetap - bacaan purata sensor cahaya dalam kedudukan keseimbangan. Parameter skala baharu menentukan penskalaan tindakan kawalan. Ini pada asasnya merupakan faktor pengecilan kerana nilai yang dihasilkan oleh pengawal selia terlalu tinggi untuk motor NXT. Ia mungkin untuk menambahnya di dalam pekali sedia ada, tetapi untuk RobotC parameter ini akan berbeza, tetapi pekali akan sama. Dengan pekali yang diberikan, robot itu stabil dengan baik pada linoleum atau meja kosong berwarna terang. Maksudnya, dia tidak perlu warna putih permukaan. Untuk melancarkan, anda perlu menetapkan Segway dengan tepat kepada kedudukan keseimbangan. Jika robot bermula dengan sedikit condong ke hadapan atau ke belakang, ia akan serta-merta mula bergerak ke arah condong. Contoh yang sama dalam RobotC sedikit berbeza atas beberapa sebab. Pertama, prestasi NXT dengan perisian tegar persekitaran ini adalah kira-kira 1.4 kali lebih tinggi daripada Robolab, jadi faktor skala perlu ditingkatkan. Kedua, nilai RAW dipindahkan ke mengikut susunan yang betul dan anda perlu menetapkan motor untuk terbalik atau hanya menggunakan tindakan kawalan negatif: int grey=SensorRaw; int err, errold=0; apungan kp=25, ki=350, kd=0.3; skala apungan=14; apungan dt=0.001; apungkan p, i=0, d, u; manakala (benar) err= grey-SensorRaw; //Sisihan dengan tanda bertentangan p=kp*err; i=i+ki*err*dt; d=kd*(err-errold)/dt; err=err; u=(p+i+d)/skala; motor=u; motor=u; tunggu1Msec(1); Elemen teori kawalan automatik di sekolah1 Tugas metodologi yang penting dan menarik ialah "membuang jambatan" antara bidang pengetahuan pakar dan pelajar, membantu pelajar sekolah melihat prospek kepakaran masa depan, i.e. menjalankan bimbingan kerjaya, dan pelajar melihat kebolehgunaan praktikal mereka pengetahuan profesional. Untuk mencapai kesan yang sama, kaedah untuk mengira pengawal selia telah dibangunkan menggunakan alat matematik yang tidak melampaui program sekolah dalam matematik dan fizik. Khususnya, bukannya persamaan pembezaan perbezaan telah digunakan, yang sesuai dengan sifat diskret interaksi antara objek dan pengawal dalam kawalan komputer. Mari kita pertimbangkan, sebagai contoh, masalah membina pengawal berkadar (P) dan terbitan berkadar (PD) dalam masalah mengawal pergerakan robot mudah alih di sepanjang dinding. Mari kita nyatakan dengan x t jarak antara robot dan dinding, dengan θt - sudut tajuk robot, dan dengan u t - tindakan kawalan pada masa ini dengan nombor siri t, masing-masing, di mana t = 0, 1, 2, ... - bilangan detik perubahan renium. Adalah dipercayai bahawa tinjauan penderia dan perubahan dalam magnitud tindakan kawalan dijalankan pada selang masa yang sama h. Untuk tugas kawalan robot Lego NXT, adalah wajar untuk menganggap bahawa tindakan kawalan adalah perbezaannya halaju sudut putaran roda, berkadar dengan kadar perubahan sudut tajuk: Dengan mengandaikan bahawa sisihan kursus daripada nominal θt =0 adalah kecil, dan kelajuan purata robot adalah malar: vt=v , dinamik perubahan dalam pembolehubah keadaan robot boleh diterangkan kepada anggaran pertama. persamaan linear menyatakan: di mana g = h2vr / b. Mari kita tetapkan jarak yang diingini ke dinding x*> 0 dan tentukan matlamat kawalan (CT) dengan hubungan
Sekarang marilah kita secara semula jadi memperkenalkan pada tahap substantif konsep kestabilan asimptotik sebagai sifat penyelesaian kepada sistem (4), memastikan pencapaian nilai sasaran (5) di bawah sebarang keadaan awal yang berbeza sedikit daripada sasaran. Adalah mudah untuk melihat bahawa untuk u t = 0, penyelesaian kepada persamaan (4) ialah sebarang nilai malar x t = x*. Tetapi kerana persamaan (4), sepadan dengan model penyepadu berganda (penambah berganda), tidak mempunyai sifat kestabilan asimptotik, pusat kawalan (5) di pengurusan berterusan tidak tercapai. Ini mudah ditunjukkan secara analitik dengan merumuskan beberapa |
Baca: |
---|
Popular:
Baru
- Petikan Puisi Wajah Musim Sejuk untuk Kanak-kanak
- Pelajaran bahasa Rusia "tanda lembut selepas kata nama mendesis"
- Pohon Pemurah (perumpamaan) Bagaimana untuk menghasilkan pengakhiran yang menggembirakan kepada kisah dongeng Pohon Pemurah
- Rancangan pengajaran tentang dunia di sekeliling kita mengenai topik "Bilakah musim panas akan tiba?
- Asia Timur: negara, penduduk, bahasa, agama, sejarah Menjadi penentang teori pseudoscientific membahagikan umat manusia kepada yang lebih rendah dan lebih tinggi, beliau membuktikan kebenaran
- Klasifikasi kategori kesesuaian untuk perkhidmatan tentera
- Maloklusi dan tentera Maloklusi tidak diterima ke dalam tentera
- Mengapa anda mengimpikan ibu yang mati hidup: tafsiran buku impian
- Apakah tanda zodiak orang yang dilahirkan di bawah bulan April?
- Mengapa anda bermimpi ribut di ombak laut?