विषयसूची:

सेल्फ बैलेंसिंग रोबोट - पीआईडी कंट्रोल एल्गोरिथम: 3 कदम
सेल्फ बैलेंसिंग रोबोट - पीआईडी कंट्रोल एल्गोरिथम: 3 कदम

वीडियो: सेल्फ बैलेंसिंग रोबोट - पीआईडी कंट्रोल एल्गोरिथम: 3 कदम

वीडियो: सेल्फ बैलेंसिंग रोबोट - पीआईडी कंट्रोल एल्गोरिथम: 3 कदम
वीडियो: Balancing Robot with PID - Mini Robot PCB 2024, नवंबर
Anonim
सेल्फ बैलेंसिंग रोबोट - पीआईडी कंट्रोल एल्गोरिथम
सेल्फ बैलेंसिंग रोबोट - पीआईडी कंट्रोल एल्गोरिथम

इस परियोजना की कल्पना की गई थी क्योंकि मुझे नियंत्रण एल्गोरिदम और कार्यात्मक पीआईडी लूप को प्रभावी ढंग से कार्यान्वित करने के तरीके के बारे में अधिक जानने में दिलचस्पी थी। यह परियोजना अभी भी विकास के चरण में है क्योंकि एक ब्लूटूथ मॉड्यूल को जोड़ा जाना बाकी है जो ब्लूटूथ सक्षम स्मार्टफोन से रोबोट पर नियंत्रण की अनुमति देगा।

इस्तेमाल किए गए N20 DC मोटर्स अपेक्षाकृत सस्ते थे, और इसलिए उनमें काफी मात्रा में खेल होता है। यह थोड़ी मात्रा में झटके की ओर जाता है क्योंकि मोटर्स 'स्लैक' से उबर जाती हैं क्योंकि यह पहियों पर टॉर्क लागू करती है। इसलिए, पूरी तरह से सुचारू गति को प्राप्त करना लगभग असंभव है। मैंने जो कोड लिखा है वह काफी सरल है लेकिन प्रभावी रूप से पीआईडी एल्गोरिथम की क्षमताओं को प्रदर्शित करता है।

परियोजना सारांश:

रोबोट का चेसिस एंडर 3 प्रिंटर का उपयोग करके 3डी प्रिंटेड है और इसे एक साथ प्रेस-फिट करने के लिए डिज़ाइन किया गया है।

रोबोट को एक Arduino Uno द्वारा नियंत्रित किया जाता है जो MPU6050 से सेंसर डेटा लेता है और बाहरी मोटर चालक के माध्यम से DC मोटर्स को नियंत्रित करता है। यह 7.4V, 1500mAh की बैटरी से चलता है। मोटर चालक Arduino को पावर देने के लिए इसे 5V पर नियंत्रित करता है और मोटर्स को 7.4V की आपूर्ति करता है।

सॉफ्टवेयर को gitHub के 'Arduino-KalmanFilter-master' और 'Arduino-MPU6050-master' लाइब्रेरी की सहायता से खरोंच से लिखा गया था।

आपूर्ति:

  • 3डी प्रिंटेड पार्ट्स
  • अरुडिनो यूएनओ
  • MPU6050 6-एक्सिस सेंसर
  • डीसी मोटर चालक
  • N20 डीसी मोटर्स (x2)
  • 9वी बैटरी

चरण 1: रोबोट बिल्ड

रोबोट बिल्ड
रोबोट बिल्ड
रोबोट बिल्ड
रोबोट बिल्ड
रोबोट बिल्ड
रोबोट बिल्ड

प्रिंट और असेंबली

संपूर्ण बिल्ड प्रेस-फिट होना चाहिए, लेकिन मैंने घटकों को सुरक्षित करने के लिए सुपरग्लू का उपयोग किया है ताकि यह सुनिश्चित हो सके कि संतुलन करते समय रोबोट पूरी तरह से कठोर हो।

मैंने फ़्यूज़न 360 में भागों को डिज़ाइन किया है और सख्त सहनशीलता और एक क्लीनर सतह खत्म करने की अनुमति देने के लिए प्रत्येक भाग को बिना समर्थन के प्रिंट करने के लिए अनुकूलित किया है।

एंडर 3 प्रिंटर पर उपयोग की जाने वाली सेटिंग्स थीं: 0.16 मिमी लेयर हाइट्स @ 40% इन्फिल सभी भागों के लिए।

चरण 2: 3डी प्रिंट रोबोट

3डी प्रिंट रोबोट
3डी प्रिंट रोबोट

चेसिस (x1)

बायां पहिया (x2)

वाम मोटर आवास (x2)

Arduino केस (X1)

चरण 3: पीआईडी नियंत्रण एल्गोरिथम

पीआईडी नियंत्रण एल्गोरिदम
पीआईडी नियंत्रण एल्गोरिदम

मैंने gitHub से 'Arduino-KalmanFilter-master' और 'Arduino-MPU6050-master' लाइब्रेरी का उपयोग करके स्क्रैच से एक PID कंट्रोल एल्गोरिथम लिखा है।

एल्गोरिथम का आधार इस प्रकार है:

  • MPU6050. से कच्चा डेटा पढ़ें
  • सेंसर के त्वरण के कारण जाइरोस्कोप रीडिंग में अशुद्धियों को रद्द करने के लिए गायरोस्कोप और एक्सेलेरोमीटर दोनों से डेटा का विश्लेषण करने के लिए कलमन फ़िल्टर का उपयोग करें। यह दो दशमलव स्थानों तक डिग्री में सेंसर की पिच के लिए अपेक्षाकृत सुचारू मान देता है।
  • कोण में E ror की गणना करें, अर्थात: सेंसर और सेटपॉइंट के बीच का कोण।
  • आनुपातिक त्रुटि की गणना (अनुपात की निरंतरता x त्रुटि) के रूप में करें।
  • (एकीकरण की निरंतरता x त्रुटि) के रनिंग योग के रूप में इंटीग्रल एरर की गणना करें।
  • व्युत्पन्न त्रुटि को स्थिरांक के रूप में परिकलित करें [(अंतर स्थिरांक) x (त्रुटि में परिवर्तन / समय में परिवर्तन)]
  • मोटर्स को भेजे जाने वाले स्पीड आउटपुट को देने के लिए सभी त्रुटियों का योग करें।
  • गणना करें कि त्रुटि कोण के संकेत के आधार पर मोटर्स को किस दिशा में मोड़ना है।
  • लूप अनिश्चित काल तक चलेगा और आउटपुट पर निर्माण होगा क्योंकि इनपुट बदलता रहता है। यह एक फीडबैक लूप है, जो अगले पुनरावृत्ति के लिए नए इनपुट मानों के रूप में आउटपुट मानों का उपयोग करता है।

अंतिम चरण पीआईडी लूप केपी, की और केडी मापदंडों को ट्यून करना है।

  1. एक अच्छा प्रारंभिक बिंदु धीरे-धीरे Kp को बढ़ाना है जब तक कि रोबोट संतुलन बिंदु के आसपास दोलन न कर ले और गिर न जाए।
  2. इसके बाद, केडी को केपी के लगभग 1% मूल्य पर शुरू करें और धीरे-धीरे तब तक बढ़ाएं जब तक कि दोलन गायब न हो जाएं और धक्का देने पर रोबोट आसानी से ग्लाइड हो जाए।
  3. अंत में, Kp के लगभग 20% K के साथ शुरू करें और तब तक बदलते रहें जब तक कि रोबोट सक्रिय रूप से गिरावट को पकड़ने और ऊर्ध्वाधर पर लौटने के लिए सेटपॉइंट को "ओवरशूट" न कर दे।

सिफारिश की: