فیلتر کالمن: الگوریتمی برای ایجاد بینش حسگر ذوب شده

ساخت وبلاگ

شما ماشین خود را از طریق تونل رانندگی می کنید. سیگنال GPS از بین رفته است. با این وجود ، ممکن است بخواهید مطلع شوید که باید خروجی را در تونل بگیرید. چگونه باید روی یک ماشین داخل یک تونل حرکت کنیم ، که باید بداند که اکنون فقط آخرین موقعیت را به کجا داده می شود؟

یک یادداشت کوتاه در مورد سنسورها

گیرنده های سیستم موقعیت یابی جهانی با تجزیه و تحلیل سیگنالهایی که از ماهواره ها دریافت می کنند ، مکان های خود را محاسبه می کنند. این سیگنال ها از اشیاء جامد عبور نمی کنند. یک GPS در یک وسیله نقلیه ممکن است آنتن خارجی داشته باشد ، یا ممکن است به اندازه کافی سیگنال پر شده را از هوا خارج کند تا کار کند. اگر سیگنال های موجود در یک تونل بسیار ضعیف باشند ، بسته به کیفیت و ویژگی های آن ممکن است GPS هنوز هم کار کند.

رویکردی که سنسورهای وسیله نقلیه را ادغام می کند ، می تواند موقعیت را محاسبه کند.

اندازه گیری از سنسورها

فرض کنید که ما در ورودی تونل قرار داشتیم و با سرعت 50 کیلومتر در ساعت رانندگی می کردیم ، پس از آن می توان ناوبری را دقیقاً در جایی که (x = موقعیت) محاسبه می کنیم ، بعداً 1 دقیقه (t = زمان) محاسبه کنیم.

هر دو سنسور دارای خطاهای تصادفی هستند ، مسیر انتقال دارای تداخل است و وضوح CAN Bus یا مبدل های آنالوگ به دیجیتال می تواند باعث عدم دقت بسیاری در بیانیه "سرعت" شود.

به عنوان مثال ، یک سیگنال سرعت به این شکل است:

به طور متوسط ، سرعت اندازه گیری شده برخی از "سر و صدای" به آن اضافه شده است که آنها را از حقیقت زمین متمایز می کند. اگر کسی یک هیستوگرام از سرعت تعیین شده را محاسبه کند ، می بیند که مقادیر تعیین شده تقریباً در معرض توزیع عادی قرار دارند.

این نمایش هیستوگرام از اندازه گیری های سرعت است.(منبع تصویر)

بنابراین یک ، و واقعاً فقط یک ، حداکثر مقدار (غیرمعمول) و گسترش (واریانس) وجود دارد. اگر اینگونه باشد ، ما می توانیم با یک ترفند ، محاسبه را خیلی خوب انجام دهیم.

ایده فیلتر کالمن در یک بعد واحد

من می خواهم ابتدا ایده فیلتر کالمن (طبق گفته رودولف امیل کالمن) را با تنها یک بعد توضیح دهم. توضیحات زیر از دوره Udacity CS373 توسط پروفسور سباستین Thrun وام گرفته شده است.

سر و صدای محاسبه شده کمک می کند

به منظور انجام محاسبه بهینه با وجود نویز اندازه گیری ، باید پارامتر "چقدر قوی" شناخته شود. این "چقدر قوی" با واریانس توزیع عادی بیان می شود. این یک بار برای یک سنسور که مورد استفاده قرار می گیرد تعیین می شود و سپس فقط از این "عدم اطمینان" برای محاسبه استفاده می کند.

در ادامه ، دیگر با مقادیر مطلق بلکه با میانگین مقادیر (μ) و واریانس σ ² توزیع عادی محاسبه نمی شود. میانگین توزیع عادی مقداری است که می خواهیم محاسبه کنیم. واریانس نشان می دهد که سطح اطمینان چگونه است. باریک تر توزیع عادی (واریانس کم) ، با اطمینان از سنسورها با اندازه گیری ها استفاده می شود.

یک سنسور که 100 ٪ دقیقاً اندازه گیری می کند ، دارای واریانس σ ² = 0 (وجود ندارد).

بیایید فرض کنیم که سیگنال GPS به تازگی از بین رفته است و سیستم ناوبری کاملاً مشخص نیست که شما در کجا هستید. واریانس زیاد است ، منحنی مربوطه واقعاً مسطح است. عدم اطمینان وجود دارد.

توزیع عادی با واریانس = 20 و میانگین = 0

اکنون اندازه گیری سرعت از سنسور می آید که با واریانس مناسب "نادرست" است. این دو عدم قطعیت اکنون باید با هم در ارتباط باشند. با کمک قانون بیز ، افزودن دو عملکرد گاوسی انجام می شود. پروفسور Thrun این موضوع را به وضوح در دوره Udacity CS373 توضیح می دهد.

دو قطعه اطلاعات (یکی برای موقعیت فعلی و دیگری برای عدم اطمینان اندازه گیری سنسور) در واقع نتیجه بهتری می دهد!. بیشتر توزیع عادی ، نتیجه اطمینان حاصل می شود. حرکت تخمین را بدتر می کند.

البته این وسیله نقلیه نیز حرکت می کند ، که بر صحت تعیین موقعیت تأثیر منفی می گذارد. به عنوان مثال ، یک سنسور می تواند چرخش چرخ را تعیین کرده و فرض شعاع چرخ را انجام دهد و می تواند نتیجه گیری در مسافت طی شده داشته باشد ، اما این همیشه تا حدودی نادرست باقی خواهد ماند. این عدم دقت حرکت نیز با توزیع عادی شرح داده شده است. محاسبات با برآورد فعلی این بار کمی متفاوت است ، زیرا "حرکت" را می توان "پیش بینی" نیز نامید. می توانید پس از محاسبه تخمین بزنید ، جایی که زمان بعدی (اندازه گیری) خواهید بود.

در مثال ما ، μ به سادگی V * dt است ، که مسافتی است که در زمان محاسبه طی کرده بودیم.

اجرای ساده این:

اندازه گیری و به روزرسانی: فیلتر کالمن

فیلتر Kalman به سادگی این دو عملکرد را بارها و بارها محاسبه می کند.

فیلتر به صورت چرخه ای بر میانگین و واریانس نتیجه غلبه می کند. فیلتر همیشه در مورد جایی که هست اطمینان خواهد داشت ، تا زمانی که خوانش ها بیش از حد از مقدار پیش بینی شده منحرف نشوند.

اندازه گیری جدید تخمین را بهبود می بخشد

از آنجا که مقادیر اندازه گیری شده (در بروزرسانی) نسبتاً خوب با موارد پیش بینی شده (با پیش بینی) متناسب است ، فیلتر گام به گام بهبود می یابد تا اطمینان حاصل شود که صحیح است (توزیع های عادی باریک تر و بالاتر می شوند) ، حتی اگر مقادیر باشندپر سر و صدا

بدون ماتریس ، شما فقط می توانید در یک بعد حساب کنید ، که برای…

فیلتر کالمن چند بعدی

من می خواهم با استفاده از مثال وسیله نقلیه با دستگاه ناوبری ، که وارد یک تونل می شود ، دوباره روش را توضیح دهم. آخرین موقعیت شناخته شده قبل از از دست دادن سیگنال GPS است. پس از آن فقط اطلاعات سرعت وسیله نقلیه (سرعت چرخ و سرعت خمیازه) به عنوان یک متغیر اندازه گیری شده با پر سر و صدا توزیع شده در دسترس است. از اینجا سرعت محاسبه می شود.

اکنون به قسمت پیچیده تری روی می آوریم. روش ذکر شده با ضرب یا اضافه کردن میانگین مقادیر و واریانس ، بنابراین فقط در یک مورد یک بعدی کار می کند. در مشکل چند بعدی ، ما میانگین و واریانس داخل یک ماتریس را که تمام عملیات در آن انجام می شود ، خواهیم داشت. این بدان معناست که وقتی وضعیتی که می خواهید اندازه گیری کنید می تواند کاملاً با یک متغیر توصیف شود. مثال ، که در ابتدا ذکر شد ، برای تعیین موقعیت وسیله نقلیه در تونل ، دیگر نمی توان با یک متغیر کاملاً توصیف کرد. اگرچه فقط به موقعیت علاقه مند است ، اما این در حال حاضر یک مشکل دو بعدی در هواپیما است. علاوه بر این ، فقط سرعت قابل اندازه گیری است ، نه موقعیت مستقیم. این منجر به فیلتر کالمن با متغیرهای حالت زیر می شود.

شرایط اولیه / اولیه سازی

حالت سیستم x

در ابتدا باید با یک حالت اولیه اولیه کنیم. در مورد یک بعدی دولت یک بردار بود.

اگر هیچ چیز مشخص نیست ، می توانید به سادگی صفر را در اینجا وارد کنید. اگر برخی از شرایط مرزی از قبل شناخته شده باشد ، می توان آنها را به فیلتر ابلاغ کرد. انتخاب ماتریس کواریانس زیر چگونه فیلتر را به مقادیر صحیح (اندازه گیری شده) همگرا می کند

ماتریس همکار P

عدم اطمینان باید برای حالت اولیه ارائه شود. در مورد یک بعدی ، واریانس یک بردار بود ، اما اکنون ماتریس عدم اطمینان برای همه ایالت ها است. در اینجا مثالی برای هر چهار ایالت آورده شده است.

ماتریس کواریانس از عدم اطمینان در موقعیت و سرعت در مختصات X و Y تشکیل شده است.

این ماتریس به احتمال زیاد در هنگام عبور فیلتر تغییر می کند. در هر دو مرحله پیش بینی و درست تغییر می کند. ماتریس ها را می توان بر اساس دقت سنسور مقداردهی اولیه کرد. اگر سنسور بسیار دقیق است، مقادیر کوچک باید در اینجا استفاده شود. اگر سنسور نسبتاً نادرست است، باید مقادیر زیادی در اینجا استفاده شود تا فیلتر به سرعت همگرا شود. اگر سنسور بسیار دقیق است، مقادیر کوچک باید در اینجا استفاده شود.

ماتریس دینامیک A

با این حال، هسته اصلی فیلتر تعریف زیر است که باید با درک کامل از زمینه فیزیکی آن را تنظیم کنیم. این برای بسیاری از مشکلات واقعی آسان نیست. برای مثال ساده ما (حرکت درون صفحه)، فیزیک پشت آن از حرکت صاف ناشی می شود. برای ماتریس حالت نشان داده شده در بالا، دینامیک در نمادگذاری ماتریس به شرح زیر است:

این بیان می کند که "کجا" بردار حالت از یک مرحله محاسبه به مرحله بعدی در داخل حرکت می کند. این مدل پویا در مورد ما مدل «سرعت ثابت» است زیرا فرض می کند که سرعت در مرحله محاسبه فیلتر (dt) ثابت می ماند.

این به سادگی روابط فیزیکی را برای حرکت یکنواخت منعکس می کند. یک شکل بالاتر، مدل شتاب ثابت است که یک فیلتر 6 بعدی است و همچنان شتاب های موجود در بردار حالت را شامل می شود. در اصل، دینامیک های دیگر را می توان در اینجا مشخص کرد.

ماتریس کوواریانس نویز فرآیند Q

از آنجایی که حرکت وسیله نقلیه (به مفهوم نویز معمولی توزیع شده) نیز ممکن است مختل شود، اینجاست که ماتریس کوواریانس نویز فرآیند معرفی می شود. این ماتریس در مورد فیلتر به ما می گوید، و اینکه چگونه حالت سیستم می تواند از یک مرحله به مرحله دیگر "پرش" کند. وسیله نقلیه ای را تصور کنید که به طور مستقل رانندگی می کند. می تواند توسط وزش باد یا دست اندازهای جاده که اثر نیرو دارد، مختل شود. تغییر سرعت توسط راننده نیز شتابی است که روی وسیله نقلیه تاثیر می گذارد. اگر اکنون یک شتاب بر وضعیت سیستم تأثیر بگذارد، وابستگی فیزیکی آن Q است. ماتریس یک ماتریس کوواریانس است که شامل عناصر زیر است:

محاسبه آن با قرار دادن بردار و سپس ضرب آن در انحراف استاندارد فرض شده برای شتاب آسان است.

کنترل ماتریس B و کنترل ورودی u

یک متغیر کنترل خارجی (به عنوان مثال: فرمان، ترمز، شتاب و غیره) از طریق ماتریس کنترل امکان پذیر است. ماتریس u حاوی ورودی رباتیک سیستم است که می تواند شتاب لحظه ای یا مسافت طی شده توسط سیستم از یک IMU یا یک سنسور کیلومتر شمار باشد.

ماتریس اندازه گیری H

همچنین باید به فیلتر گفته شود که چه چیزی اندازه گیری می شود و چگونه با بردار حالت ارتباط دارد. در مثال وسیله نقلیه، ماشین وارد تونلی می شود که فقط موقعیت آن در نقطه اول اندازه گیری شده است، فقط سرعت اندازه گیری می شود! مقادیر را می توان مستقیماً با ضریب 1. 0 اندازه گیری کرد (یعنی سرعت مستقیماً در واحد صحیح اندازه گیری می شود) به همین دلیل است که فقط در 1. 0 روی موقعیت مناسب تنظیم می شود.

اگر سنسورها در یک واحد متفاوت یا اندازه را با انحراف اندازه گیری می کنند، روابط در ماتریس اندازه گیری باید در یک فرمول ترسیم شود.

ماتریس کوواریانس نویز اندازه گیری R

همانطور که در مورد تک بعدی واریانس، عدم قطعیت اندازه گیری نیز باید در اینجا بیان شود.

این عدم قطعیت اندازه گیری نشان می دهد که چقدر به مقادیر اندازه گیری شده حسگرها اعتماد دارید. از آنجایی که ما موقعیت و سرعت را اندازه گیری می کنیم، این یک ماتریس 2×2 است. اگر سنسور بسیار دقیق است، مقادیر کوچک باید در اینجا استفاده شود. اگر سنسور نسبتاً نادرست است، مقادیر بزرگ باید در اینجا استفاده شود.

ماتریس واحد I

آخرین اما نه کم اهمیت، یک ماتریس واحد ضروری است که برای ساده کردن معادلات کالمن استفاده می شود.

مرحله فیلتر پیش بینی / پیش بینی

این قسمت از فیلتر کالمن اکنون جرأت می کند وضعیت سیستم را در آینده پیش بینی کند. علاوه بر این در شرایط خاصی می توان با آن حالتی را محاسبه کرد که قابل اندازه گیری نیست! این شگفت انگیز است، اما در مورد ما دقیقاً همان چیزی است که ما نیاز داریم. ما نمی توانیم موقعیت وسیله نقلیه را اندازه گیری کنیم زیرا GPS دستگاه ناوبری در تونل دریافتی ندارد. با مقداردهی اولیه بردار حالت با یک موقعیت و اندازه گیری سرعت، دینامیک همچنان برای پیش بینی بهینه موقعیت استفاده می شود.

کوواریانس نیز باید دوباره محاسبه شود. همانطور که در مورد یک بعدی دیدیم، عدم اطمینان در مورد وضعیت سیستم در مرحله پیش بینی افزایش می یابد. در حالت چند بعدی، عدم قطعیت اندازه گیری اضافه می شود، بنابراین عدم قطعیت بزرگتر و بزرگتر می شود.

خودشه. فیلتر کالمن یک بیانیه پیش بینی در مورد وضعیت سیستم مورد انتظار در آینده یا در مرحله زمانی آینده ارائه کرده است. اکنون فیلتر اندازه گیری / تصحیح و بررسی می کند که آیا پیش بینی وضعیت سیستم به خوبی با اندازه گیری های جدید مطابقت دارد یا خیر.

کوواریانس انتخاب شده به عنوان کوچکتر توسط فیلتر، قطعیت را نشان می دهد، اگر نه، پس مشکلی وجود دارد، که فیلتر را نامطمئن تر می کند.

مرحله فیلتر اندازه گیری / تصحیح

توجه: محاسبات ریاضی زیر نیازی به استخراج ندارند.

از سنسورها مقادیر اندازه گیری شده جریان می آیند ، که با استفاده از اندازه گیری ها ، یک عامل نوآوری (y) به دست می آید ، بردار حالت با ماتریس اندازه گیری.

سپس نگاه می کند که با کدام واریانس می توان بیشتر محاسبه کرد. برای این کار ، عدم اطمینان و ماتریس اندازه گیری و عدم اطمینان اندازه گیری مورد نیاز است.

این امر به اصطلاح سود کالمن را تعیین می کند. این بیان می کند که آیا خوانش ها یا پویایی سیستم باید بیشتر آشنا باشد.

در صورت مطابقت با خوانش (اندازه گیری) با وضعیت سیستم پیش بینی شده ، افزایش کالمن کاهش می یابد. اگر مقادیر اندازه گیری شده در غیر این صورت بگویند ، عناصر ماتریس k بزرگتر می شوند.

این اطلاعات اکنون برای به روزرسانی حالت سیستم استفاده می شود.

و همچنین یک همکار جدید را برای مرحله پیش بینی آینده تعیین کرد.

اکنون به پیش بینی مرحله برگشته است. از نظر گرافیکی به نظر می رسد:

این فیلتر تا زمانی که مقادیر اندازه گیری شده وارد شوند ، به طور دائم اجرا می شود. همچنین می تواند حلقه باز باشد ، بنابراین در صورت عدم وجود اندازه گیری ، فقط مرحله پیش بینی اجرا می شود. سپس عدم اطمینان بزرگتر و بزرگتر می شود.

فیلتر در محل کار

هنگامی که ما به یک تونل رانندگی می کنیم ، آخرین موقعیت شناخته شده ثبت می شود که از GPS دریافت می شود. فیلتر کالمن هنوز هم می تواند موقعیت وسیله نقلیه را پیش بینی کند ، اگرچه در همه زمان ها اندازه گیری نمی شود.

اکنون با فرض اینکه سرعت خودرو در حدود هر 20 متر بر ثانیه از طریق اتوبوس CAN در دسترس است ، 6 تکرار فقط 0. 1 ثانیه است. بسته به انتخاب شرایط اولیه ، فیلتر نسبتاً سریع همگرا می شود. به عنوان مثال ، پس از 100 تکرار (معادل 2 ثانیه در وسیله نقلیه) ، واریانس در حال حاضر بسیار کم است ، بنابراین فیلتر در حالت های تخمین زده شده و به روزرسانی خود اطمینان دارد. اجرای من از فیلتر خطی کالمن را می توان در اینجا یافت. نتایج عبارتند از:

تصویر اول مقدار تخمین زده شده هر مقدار تخمین زده شده از سرعت را در هماهنگ های X و Y نشان می دهد. تصویر دوم سود کالمن را برای هر یک از پارامتر موجود در ماتریس حالت نشان می دهد. ماتریس عدم قطعیت حاوی واریانس در هر پارامتر ماتریس حالت.(https://github.com/sharathsrini/self-driving-car/blob/master/kalman_filter. ipynb)

تصویر اول موقعیت وسیله نقلیه را در هماهنگی x و y قرار می دهد. تصویر دوم و سوم رابطه بین تخمین زده شده و سرعت واقعی در هماهنگی های X و Y را به ما می گوید.(https://github.com/sharathsrini/self-driving-car/blob/master/kalman_filter. ipynb)

اجرای پایتون فیلتر کالمن

طراحی فیلتر: چگونه Q و R را انتخاب می کنم؟

به طور کلی ، مهم نیست که ارزش های عددی چقدر بزرگ باشد ، بلکه به نسبت آنها به چه نسبت هستند. اگر مقادیر انتخاب شده ده برابر بزرگتر باشد ، این به سختی بر فیلتر تأثیر می گذارد. نسبت مقادیر بسیار مهم است. انتخاب صحیح مستقیماً مسئول عملکرد فیلتر خواهد بود و سوال اصلی طراحی فیلتر را تشکیل می دهد.

این یا سؤال فقط می تواند به صورت خاص برنامه تصمیم گیری شود. در بعضی موارد:

  1. ما فقط می خواهیم سنسورهای اندازه گیری ضعیف را برای یک فرآیند نسبتاً ثابت فیلتر کنیم. به عنوان مثال ، ما می توانیم فیلتر کالمن را برای بهینه سازی کنترل کننده دما در یک کوره در موشک یا کوره شیمیایی پیاده سازی کنیم.
  2. ما همچنین می خواهیم چندین سنسور را ادغام کنیم و پویایی باید حفظ شود. بر این اساس ، ماتریس ها باید انتخاب شوند. از طرف دیگر ، البته ، فیلتر می تواند برای تطبیق خودکار در حین کار طراحی شود.

چگونه یک فیلتر کالمن با حداقل مربعات بازگشتی متفاوت است؟

فیلتر Kalman بر روی مدل اصلاح پیش بینی استفاده شده برای سیستم های خطی و متغیر یا متغیر زمان استفاده می شود. مدل پیش بینی شامل سیستم واقعی و نویز فرآیند است. مدل بروزرسانی شامل به روزرسانی مقدار پیش بینی شده یا تخمین زده شده با نویز مشاهده است. سود کالمن بر اساس الگوریتم RLS محاسبه می شود تا در مدت زمان کمتری به مقدار بهینه برسد.

حداقل مربعات بازگشتی مبتنی بر حداقل مربعات وزنی است که در آن مقادیر قبلی برای تعیین مقدار آینده در نظر گرفته می شود. هر وزن به صورت نمایی به هر مقدار قبلی سیستم واقعی اختصاص می یابد. وزن ها به صورت بازگشتی بر اساس حافظه به روز می شوند.

تفاوتهای قابل توجه:

  1. RLS سریعتر از فیلتر کالمن است.
  2. دقت فیلتر کالمن زیاد است.
  3. فیلتر Kalman بر اساس مدل فضای حالت است که در آن برای دستیابی به ارزش بهینه باید مدل کل سیستم را مدل کنیم.

فیلتر کالمن و رگرسیون چند جمله ای

نمونه هایی از رگرسیون چند جمله ای (1) (2)

رگرسیون چند جمله ای روشی برای تقریب عملکرد است. ما یک مجموعه داده داریم و باید رابطه عملکردی را تعیین کنیم ، که اغلب با برآورد چگالی احتمال P (Z | X) بیان می شود. با این فرض که این احتمال یک گاوسی است ، ما کمترین راه حل مربع را به عنوان یک برآوردگر حداکثر احتمال دریافت می کنیم.

از آنجا که سیستم های پویا خطی مدل های فضایی حالت هستند ، فرض می کنیم داده هایی که مشاهده می کنیم با استفاده از یک تبدیل خطی تولید می شود. مدلی که ما با آن آمده ایم احتمال یک سری زمانی است. سپس این روند مقدار بعدی یک سری زمانی را پیش بینی می کند.

رگرسیون چند جمله ای تقریب تابع را انجام می دهد، فیلتر کالمن پیش بینی سری های زمانی را انجام می دهد.

پیش بینی سری زمانی یک مورد خاص از تقریب تابع است. هر دو مدل از مفروضات مختلف بر روی داده هایی که مشاهده می کنند مدل شده اند.

نتیجه

اجرای فیلتر کالمن نسبتاً سریع و آسان است و تخمین بهینه ای از شرایط را برای مقادیر معمولی سنسور نویز توزیع شده در شرایط خاص ارائه می دهد. آقای کالمن آنقدر به الگوریتم خود متقاعد شده بود که توانست الهام بخش یک مهندس دوست در ناسا باشد. و بنابراین این فیلتر برای اولین بار در رایانه هدایت آپولو در فرود ماه کمک کرد.

بازار رمزارزها...
ما را در سایت بازار رمزارزها دنبال می کنید

برچسب : نویسنده : محمود کیانوش بازدید : <-PostHit-> تاريخ : شنبه 26 فروردين 1402 ساعت: 13:21