Indirect Kalman Fitler for Inertial Navigation System -


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

जैसा कि पृष्ठ 47 पर बताया गया है, जड़त्वीय सेंसर से मापा गया मान सही मानों के बराबर और साथ ही एक श्रृंखला अन्य शर्तें (पूर्वाग्रह, पैमाने कारक, ...) मेरे प्रश्न के लिए, चलो केवल पूर्वाग्रह पर विचार करें।

ऐसा:

  Wmeas = Wtrue + BiasW (ग्योरो मिस) Ameas = Atrue + BiasA (एक्सीलरोमीटर मीस)   

इसलिए,

जब मैं मैकेनाइजेशन समीकरण का प्रचार करता हूँ (समीकरण 3-29, 3-37 और 3-41) मुझे "सत्य" का उपयोग करना चाहिए "मूल्य, या बेहतर: <पूर्व> Wmeas - BiasW Ameas - BiasA

जहां पूर्वाग्रह और BiasA पूर्वाग्रह के अंतिम उपलब्ध अनुमान हैं सही?

ईकेएफ के अद्यतन चरण के संबंध में, यदि माप समीकरण

  dzV = VelGPS_est - VelGPS_meas   

एच मैट्रिक्स के पास वेग त्रुटि राज्य वैरिएबल डीएक्स (वीईएल) और 0 और अन्यत्र की पहचान के लिए मैट्रिक्स होना चाहिए। ठीक है?

ने कहा कि मुझे यकीन नहीं है कि अपडेट चरण के बाद मुझे राज्य चर का प्रचार कैसे करना है I राज्य चर का प्रचार होना चाहिए (मेरी राय में):

  POSK | k = POSK | k-1 + dx (पीओएस); VELk | k = VELk | के-1 + डीएक्स (वीईएल); ...   

लेकिन यह काम नहीं कर रहा था। इसलिए मैंने कोशिश की है:

  पॉस | k = posc | k-1 - dx (पीओएस); VELk | k = VELk | के-1 - डीएक्स (वीईएल);   

वह भी काम नहीं कर रहा था ... मैंने दोनों समाधानों की कोशिश की, भले ही मेरी राय में "+" का इस्तेमाल किया जाना चाहिए। लेकिन जब से दोनों काम नहीं करते हैं (मुझे कोई और गलती है) मैं आपको पूछता हूं कि आपके पास कोई सुझाव है।

आप निम्न लिंक पर कोड का स्निपेट देख सकते हैं।: < पी> धन्यवाद।

आप जिस कठिनाई में दौड़ रहे हैं वह सिद्धांत और व्यवहार के बीच अंतर है। प्रश्न में प्रतीकात्मक संस्करण के बजाय स्निपेट से अपना कोड लेना:

 % सुधारों को लागू करें Pinned = Pned + dx (1: 3); Vned = vned + dx (4: 6);  सिद्धांत  में जब आप अप्रत्यक्ष रूप का उपयोग करते हैं तो आप आईएमयू (स्वतंत्र रूप से एकीकृत कर रहे हैं, उस प्रक्रिया को उस पत्र में मशीनीकरण कहा जाता है) और कभी-कभी IKF को इसकी अद्यतन करने के लिए चल रहा है भूल सुधार।  सिद्धांत  में एक्सीलरोमीटर के अनचेक किए गए डबल एकीकरण में  Pned  और  Vned में बड़े पैमाने पर (या सस्ता MEMS IMUs,  विशाल ) त्रुटि मान पैदा करता है । इसके बदले, आईकेएफ को  dx (1: 6)  के तदनुसार बड़े मूल्यों का उत्पादन करने का कारण बनता है क्योंकि समय विकसित होता है और अनियंत्रित आईएमयू एकीकरण सच्चाई से दूर और आगे दूर चलाता है।  सिद्धांत  में आप किसी भी समय  Pinned +/- dx (1: 3)  के रूप में अपनी स्थिति का नमूना कर सकते हैं (संकेत महत्वपूर्ण नहीं है - आप या तो सेट कर सकते हैं मार्ग)। यहां महत्वपूर्ण हिस्सा यह है कि आप IKF से  Pinned  को संशोधित नहीं कर रहे हैं क्योंकि दोनों एक-दूसरे से स्वतंत्र हैं और जब आप जवाब की आवश्यकता रखते हैं तो आप उन्हें एक साथ जोड़ते हैं।  

अभ्यास करें आप दो उत्साही डबल मानों के बीच अंतर नहीं लेना चाहते हैं, क्योंकि आप सटीकता खो देंगे (क्योंकि महत्त्व के बिट्स के बहुत सारे को इसके बजाय विशाल भाग का प्रतिनिधित्व करने के लिए आवश्यक थे सटीक आप चाहते हैं)। आपने समझा है कि अभ्यास में आप प्रत्येक अद्यतन पर recursively Pned को अपडेट करना चाहते हैं हालांकि, जब आप इस सिद्धांत से अलग हो जाते हैं, तो आपको IKF राज्य वेक्टर से अपने सुधार मूल्य को शून्य कर देने के संबंधित (और कुछ हद तक अबाधित) चरण लेना होगा दूसरे शब्दों में, आपके द्वारा Pned = Pned + dx (1: 3) करने के बाद, आपने "सुधार" का उपयोग किया है, और आपको dx (1: 3) = के साथ समीकरण को संतुलित करना होगा। डीएक्स (1: 3) - डीएक्स (1: 3) (सरलीकृत: डीएक्स (1: 3) = 0 ) ताकि आप अनजाने में समय के साथ सुधार को एकीकृत नहीं कर सकें। / P>

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

Comments

Popular posts from this blog

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -

Matlab transpose a table vector -

c# - Textbox not clickable but editable -