कम्पास लैग (दर निर्भर हिस्टैरिसीस) से निपटने के लिए क्या तरीके हैं?


12

मुझे एक चलने वाला रोबोट मिला है, जिसमें ट्रैकिंग दूरी के लिए कम परिशुद्धता पहिया एनकोडर और हेडिंग के निर्धारण के लिए एक इलेक्ट्रॉनिक कम्पास है। कम्पास में महत्वपूर्ण (> 1 सेकंड) अंतराल है जब रोबोट जल्दी से बदल जाता है, उदाहरण के लिए एक तरह से पहुंचने के बाद - अपनी नई हेडिंग को इंगित करने के लिए जगह में धुरी।

अंतराल से निपटने के तरीके क्या हैं? मुझे लगता है कि कोई बहुत अधिक माप ले सकता है और कम्पास प्रतिक्रिया को मॉडल कर सकता है। हालाँकि, यह समस्याग्रस्त लगता है क्योंकि यह दर-निर्भर है और मुझे तात्कालिक दर नहीं पता है।

एक सरल-लेकिन-धीमी गति के रूप में, मेरे पास रोबोट की बारी है जब तक कि यह सही दिशा में बहुत मोटे तौर पर इंगित नहीं किया जाता है, तब संक्षिप्त माप के साथ बहुत छोटे वृद्धिशील मोड़ बनाते हैं जब तक कि इसे सही तरीके से इंगित नहीं किया जाता है। क्या इससे निपटने के अन्य तरीके हैं?

जवाबों:


12

कम्पास में अंतराल उच्च आवृत्ति शोर को दबाने के लिए एक कम-पास फिल्टर के कारण है।

  • अधिक महंगे मैग्नेटोमीटर मौजूद हैं जिनमें कम शोर है, और इसलिए, कम अंतराल है।
  • सटीकता में सुधार करने के लिए जाइरोस्कोप का उपयोग करना भी संभव है। वास्तव में, यह Inertial मापन इकाइयाँ (IMU) है। यह एक कलमन फ़िल्टर का उपयोग करके पूरा किया जा सकता है। सटीकता में सुधार करने से लैग को कम करने में मदद मिलती है, क्योंकि बढ़ी हुई सटीकता शोर को दबाने के लिए एक कम पास फिल्टर पर निर्भरता को कम करती है। कलमन फ़िल्टर मैग्नेटोमीटर से डेटा को फ़्यूज़ करता है, और जाइरोस्कोप (जो हेडिंग में परिवर्तन की दर को मापता है)।

यदि आप अपने वर्तमान कम्पास के साथ चिपकते हैं, तो दो संभावित समाधान हैं (चेतावनी, यह तेजी से उन्नत हो जाता है, लेकिन विकल्प 1 को बहुत अधिक काम के बिना ज्यादातर लोगों के लिए सुलभ होना चाहिए)।

  1. आप फ़िल्टर को रद्द करने का प्रयास कर सकते हैं। यह अंतराल को दूर कर सकता है, लेकिन उच्च आवृत्ति शोर भी बढ़ाता है। ऐसा करने के बाद, आप शीर्षक के नए अनुमान के आधार पर रोबोट को नियंत्रित करने का प्रयास कर सकते हैं। ऐसा करने के लिए, आपको कम पास फिल्टर मापदंडों को काम करने के लिए प्रयोग करना होगा। उदाहरण के लिए, असतत समय में, आप पा सकते हैं:

    θ (टी)टीθटी

    θ^(t)=a0θ(t)+a1θ(t1)++akθ(tk)
    जहां अनुमानित हेडिंग (कम्पास आउटपुट) है समय , समय पर वास्तविक शीर्षक (जमीनी सच्चाई) ।θ^(t)tθt

    आप एक प्रयोग करके पैरामीटर पा सकते हैं जहां आप कुछ अन्य बाहरी साधनों का उपयोग करके जमीनी सच्चाई को मापते हैं। दिए गए नमूने, आपके पास यह समीकरण है: n + कश्मीर + 1 [ θ ( कश्मीर ) θ ( कश्मीर + n ) ] = [ θ ( कश्मीर ) θ ( कश्मीर - 1 ) θ ( 0 ) ain+k+1

    [θ^(k)θ^(k+n)]=[θ(k)θ(k1)θ(0)θ(k+n)θ(k+n1)θ(n)][a0a1ak]

    और आप यह पता लगाकर हल कर सकते हैं: जहां का छद्म उलटा मैट्रिक्स है । करने का कोई निश्चित तरीका नहीं है , इसलिए आप शायद अनुमान लगा लेंगे। बोनस अंक के लिए, यह मानता है कि शोर श्वेत और स्वतंत्र है, लेकिन आप इसे पूर्वाग्रह हटाने के लिए पहले सफेद कर सकते हैं, और इसलिए मापदंडों के अपने अनुमान में सुधार कर सकते हैं।

    [a0a1ak]=[θ(k)θ(k1)θ(0)θ(k+n)θ(k+n1)θ(n)]+[θ^(k)θ^(k+n)]
    M+Mk

    आप इसे एक ट्रांसफर फ़ंक्शन में बदल सकते हैं (इसे असतत समय डोमेन में जेड-ट्रांसफॉर्म के रूप में भी जाना जाता है):

    Θ^(z)Θ(z)=a0+a1z1+...+akzk

    इसे रद्द करने के लिए, हम उलटा ले सकते हैं (जहां हमारे शीर्षक का नया अनुमान है):θ¯(t)

    Θ¯(z)Θ^(z)=1a0+a1z1++akzk

    समय डोमेन पर वापस लौटना:

    a0θ¯(t)+a1θ¯(t1)++akθ¯(tk)=θ^(t)

    θ¯(t)=θ^(t)a1θ¯(t1)akθ¯(tk)a0

    फिर हम रोबोट को नियंत्रित करने के लिए का उपयोग कर सकते हैं ।θ¯

    यह बहुत शोर होगा, इसलिए आप अभी भी उपयोग से पहले कम-पास फिल्टर के माध्यम से डाल सकते हैं (हालांकि शायद कम अंतराल के साथ)।θ¯

  2. उपरोक्त समाधान अभी भी सबसे अच्छा तरीका नहीं है। शोर का अनुमान बहुत उपयोगी नहीं हो सकता है। यदि हम इसे एक राज्य अंतरिक्ष समीकरण में डालते हैं, तो हम एक Kalman फ़िल्टर और LQR (रैखिक द्विघात नियामक) का उपयोग करके एक पूर्ण-राज्य प्रतिक्रिया नियंत्रक डिज़ाइन कर सकते हैं। एक Kalman फ़िल्टर और LQR नियंत्रक के संयोजन को एक LQG नियंत्रक (रैखिक द्विघात गाऊसी) के रूप में भी जाना जाता है, और एक अच्छा नियंत्रक पाने के लिए लूप-ट्रांसफर रिकवरी का उपयोग करें।

    ऐसा करने के लिए, (असतत समय) राज्य-अंतरिक्ष समीकरणों के साथ आएं:

    x(t)=Ax(t1)+Bu(t1) ,y(t)=Cx(t)

    या:

    x(t)=[θ(t)θ(t1)θ(tk)]=[A1A200010000010000010000010]x(t1)+[B0B1000]u(t1)

    y(t)=[θ^(t)]=[a0a1ak]x(t)

    जहां रोबोट को चालू करने के लिए मोटर्स में शक्ति का प्रतिनिधित्व करता है, और , , , स्थिति और गति के आधार पर हेडिंग को कितना प्रभावित करता है (आप गैर-शून्य मान चुन सकते हैं) मैट्रिक्स के अन्य तत्वों के लिए , और मैट्रिक्स की पहली पंक्ति भी)।u(t1)A0A1B0B1BA

    फिर, आप अपने पर्यवेक्षक ( फ़िल्टर) का निर्माण कर सकते हैं, प्रक्रिया के शोर और माप शोर के लिए और अनुमान । फिर कलमन फ़िल्टर ने शोर के बारे में उन धारणाओं को देखते हुए, शीर्षक का इष्टतम अनुमान प्राप्त कर सकते हैं। शोर अनुमानों को चुनने के बाद, कार्यान्वयन सिर्फ कलमन फ़िल्टर के लिए कोड लागू करने पर निर्भर करता है (समीकरण विकिपीडिया पर पाए जा सकते हैं, इसलिए मैं इसे यहाँ नहीं जाऊँगा)।QoRo

    उसके बाद, आप एक LQR कंट्रोलर डिज़ाइन कर सकते हैं, इस बार, और , हेडिंग को विनियमित करने के लिए दिए गए भार का प्रतिनिधित्व करता है, और एक्ट्यूएटर्स के उपयोग को सीमित करने की कोशिश करता है। इस स्थिति में, आप और का । ऐसा इसलिए किया जाता है क्योंकि LQR एक लागत फ़ंक्शन को कम करने के लिए इष्टतम नियंत्रक पाता है:QcRcQc=[100000000000]Rc=[1]J=(xTQx+uTRu)

    फिर, आपने इसे असतत समय बीजीय ऋक्ति समीकरण के माध्यम से रखा:

    P=Q+AT(PPB(R+BTPB)1BTP)A

    और एक सकारात्मक निश्चित मैट्रिक्स लिए हल ।P

    इस प्रकार, आपके नियंत्रण कानून द्वारा दिया जा सकता है:

    u(t)=K(x(t)xref(t))

    जहाँK=(R+BTPB)1(BTPA)

    अंत में, बस ऐसा करने से काम नहीं चलेगा, और शोर के कारण अस्थिर होने की संभावना है। वास्तव में, इसका मतलब यह है कि विकल्प 1 शायद तब तक काम नहीं करेगा जब तक कि आप पहली एक कम-पास फिल्टर के माध्यम से नहीं डालते (यद्यपि इतने लंबे प्रभावी अंतराल समय के साथ जरूरी नहीं)। ऐसा इसलिए है क्योंकि LQR की गारंटी स्थिर है, जैसे ही आप एक कलमन फ़िल्टर का उपयोग करते हैं, गारंटी खो जाती है।θ¯

    इसे ठीक करने के लिए, हम लूप ट्रांसफर रिकवरी तकनीक का उपयोग करते हैं, जहाँ आप फ़िल्टर को समायोजित करते हैं, और इसके बजाय एक नया , जहाँ आपकी मूल मैट्रिक्स है, जिसे ट्यून किया जाता है ताकि Kalman फ़िल्टर इष्टतम हो । कोई भी सकारात्मक निश्चित सममित मैट्रिक्स है, जिसे आप पहचान मैट्रिक्स ( ) के रूप में चुन सकते हैं । फिर, बस एक स्केलर । परिणामस्वरूप नियंत्रक रूप में (अधिक) स्थिर हो जाना चाहिए , हालांकि मैट्रिक्स डी-ट्यून हो जाता है, जिसका अर्थ है कि यह कम इष्टतम हो जाता है।क्यू 0 क्यू वी वी = मैं क्ष क्ष क्यू Qo=Q0+q2BVBTQ0QVV=IqqQo

    इसलिए, आप केवल बढ़ाते हैं जब तक कि यह स्थिर न हो। दूसरा तरीका जिसे आप इसे स्थिर बनाने का प्रयास कर सकते हैं, वह है LQR कंट्रोलर को धीमा करने के लिए (या ) ।आर सी क्यू सीqRcQc

इस पोस्ट में अवधारणाएं काफी उन्नत हैं, लेकिन यदि आपको रिकैती समीकरण जैसी चीजों को हल करने की आवश्यकता है, तो आप ऐसा करने के लिए MATLAB या अन्य सॉफ़्टवेयर का उपयोग कर सकते हैं। पहले से ही कलमन फ़िल्टर को लागू करने वाले पुस्तकालय भी हो सकते हैं (फिर से, मुझे विश्वास है कि MATLAB भी ऐसा करता है)।

एक एम्बेडेड अनुप्रयोग के लिए, आपको स्वयं कलमन फ़िल्टर को लागू करने की आवश्यकता हो सकती है, हालांकि संभवतः सी कार्यान्वयन है।


आपके लिए उत्कृष्ट और गहन उत्तर के लिए धन्यवाद। मैं आपके पहले समाधान के सार का पालन करता हूं और मुझे यकीन है कि मैं इसके माध्यम से काम कर सकता हूं। दूसरा, जैसा कि आप कहते हैं, अधिक चुनौतीपूर्ण है और मुझे यह देखने के लिए काम करना होगा कि क्या मैं इसका पालन कर सकता हूं।
वियनामाइक

4

एक gyro सरल उत्तर है। मैंने हमेशा सुना है, छोटे माप के लिए जाइरो, लंबे समय तक कम्पास। और वास्तविक रूप से दोनों समय के बीच कल्मन फिल्टर का एक कप। एक 6DOF गायरो / एसीसी बोर्ड की कीमत इन दिनों $ 20 से कम है, एक का उपयोग नहीं करने के लिए बहुत सस्ता है।

एक समय, मैंने किसी और के कल्मन फ़िल्टर के माध्यम से काम किया । और यह काम कर गया। एक कल्मन फ़िल्टर वास्तव में एक दृष्टिकोण का अधिक है, एक सटीक कार्यान्वयन नहीं है, और गायरो मामले में, अंतिम परिणाम मैट्रिक्स गणित का उपयोग करने की आवश्यकता नहीं है। यह बहुत सरल कोड के लिए बनाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.