فیلتر کالمان
فیلتر کالمَن (به انگلیسی: Kalman filter) که به عنوان تخمین خطی مرتبه دوم نیز از آن یاد میشود، الگوریتمی است که حالت یک سیستم پویا را با استفاده از مجموعهای از اندازهگیریهای شامل خطا در طول زمان برآورد میکند. این فیلتر معمولاً تخمین دقیقتری را نسبت به تخمین بر مبنای یک اندازهگیری واحد را بر مبنای استنباط بیزی و تخمین توزیع احتمال مشترکی از یک متغیر تصادفی در یک مقطع زمانی ارائه میکند. این فیلتر از نام رودولف ای کالمن، یکی از پایهگذاران این تئوری گرفته شدهاست.
فیلتر کالمن کاربردهای بسیاری در علم و فناوری مانند مسیریابی و پایش وسایل نقلیه، به خصوص هواپیما و فضاپیماها، دارد. فیلتر کالمن مفاهیم گستردهای را در زمینه سریهای زمانی، پردازش سیگنال و اقتصادسنجی مطرح میکند. این فیلتر از مفاهیم پایه در زمینه برنامهریزی و پایش رباتها و همچنین مدلسازی سیستم عصبی محسوب میشود. بر اساس تأخیر زمانی میان ارسال فرامین و دریافت پاسخ آنها، استفاده از فیلتر کالمن در تخمین حالات مختلف سیستم را ممکن میسازد.[1]
این الگوریتم در دو گام اجرا میشود. در گام پیشبینی، فیلتر کالمن تخمینی از وضعیت فعلی متغیرها را در شرایط عدم قطعیت ارائه میکند. زمانی که نتیجه اندازهگیری بعدی بدست آید، تخمین قبلی با میانگین وزندار آپدیت میشود. به این ترتیب که وزن اطلاعاتی که دارای قطعیت بیشتری هستند، بیشتر خواهد بود. الگوریتم بازگشتی میباشد و با استفاده از ورودیهای جدید و حالات محاسبه شدهٔ قبلی بهصورت بیدرنگ اجرا میشود.
درمورد ورودیهای فیلتر کالمن نمیتوان بیان کرد که تمام خطاها گوسی هستند. اما در عمل فیلتر برآوردهای احتمالاتی را با فرض توزیع طبیعی داشتن انجام میدهد.[2]
مثال کاربردی
تهیه اطلاعات پیوسته و گسسته به روز و دقیق در مورد مکان و سرعت یک شی معین فقط به کمک توالی مشاهدات در مورد موقعیت آن شی، که هر کدام شامل مقداری خطاست امکانپذیر است. این فیلتر در طیف گستردهای از کاربریهای مهندسی از رادار گرفته تا بینایی رایانهای کاربرد دارد. روش فیلتر کالمن یکی از عناوین مهم در تئوری کنترل و مهندسی سیستمهای کنترلی میباشد.
به عنوان مثال، برای کاربری آن در رادار، آنجا که علاقهمند به ردیابی هدف هستید، اطلاعات در مورد موقعیت، سرعت و شتاب هدف با حجم عظیمی از انحراف به لطف پارازیت در هر لحظه اندازهگیری میشود. فیلتر کالمن از پویایی هدف بهره میگیرد به این صورت که سیر تکاملی آن را کنترل میکند، تا تأثیرات پارازیت را از بین ببرد و یک برآورد خوب از موقعیت هدف در زمان حال (تصفیه کردن) و در آینده (پیشبینی) یا در گذشته (الحاق یا هموار سازی) ارائه میدهد. یک نسخه ساده شده فیلتر کالمن، فیلتر آلفا بتا (alpha beta filter)، که همچنان عموماً استفاده میشود از ثابتهای static weighting به جای ماتریسهای کواریانس استفاده میکند.
نامگذاری و تاریخچه توسعه
اگر چه Thorvald Nicolai Thiele و Peter Swerling قبلاً الگوریتم مشابهی ارائه داده بودند، این فیلتر به افتخار Rudolf E. Kalman، فیلتر کالمن نامگذاری شد و Stanley F. Schmidt عموماً به خاطر توسعه اولین پیادهسازی فیلتر کالمن شهرت یافت. این رخداد هنگام ملاقات با کالمن در مرکز تحقیقاتی ناسا (NASA Ames Research Center) روی داد و وی شاهد کارایی ایده کالمن در برآورد مسیر پرتاب پروژه آپولو بود، که منجر به الحاق آن به رایانه ناوبری آپولو شد. این فیلتر بر روی کاغذ در ۱۹۵۸ توسط Swerling، در ۱۹۶۰ توسط Kalman و در ۱۹۶۱ توسط Kalman and Bucy ایجاد و بسط داده شد.
این فیلتر بعضی مواقع فیلتر Stratonovich-Kalman-Bucy نامیده میشود، چرا که یک نمونه خاص از فیلتر بسیار معمولی و غیر خطی ای است که قبلاً توسط Ruslan L. Stratonovich ایجاد شده، در حقیقت معادله این نمونه خاص، فیلتر خطی در اسنادی که از Stratonovich قبل از تابستان ۱۹۶۰، یعنی زمانی که کالمن ،Stratonovich را در کنفرانسی در مسکو ملاقات کرد به چاپ رسید بود.
در تئوری کنترل، فیلتر کالمن بیشتر به برآورد مرتبه دوم (LQE) اشاره دارد. امروزه تنوع گستردهای از فیلتر کالمن به وجود آمده، از فرمول اصلی کالمن در حال حاضر فیلترهای: کالمن ساده، توسعه یافته اشمیت، اطلاعاتی و فیلترهای گوناگون جذر بیرمن، تورنتون و بسیاری دیگر به وجود آمدهاند. گویا مرسومترین نوع فیلتر کالمن فاز حلقهٔ بسته (phase-locked loop) میباشد که امروزه در رادیوها، رایانهها و تقریباً تمامی انواع ابزارهای تصویری و ارتباطی کاربرد دارد.
اساس مدل سیستم پویا
فیلترهای کالمن بر اساس سیستمهای خطی پویا (linear dynamical systems) گسسته در بازه زمانی هستند. آنها بر اساس زنجیره مارکوف (Markov chain) به کمک عملگرهای خطی ساخته شدهاند و توسط نوفه گاوسی (Gaussian noise) تحریک میشوند. حالت سیستم توسط برداری از اعداد حقیقی بیان میشود. در هر افزایش زمانی که در بازههای گسسته صورت میگیرد، یک عملگر خطی روی حالت فعلی اعمال میشود تا حالت بعدی را با کمی پارازیت ایجاد کند و اختیاراً در صورت شناخت روی کنترلکنندههای سیستم برخی اطلاعات مرتبط را استخراج میکند. سپس عملگر خطی دیگر به همراه مقدار دیگری پارازیت خروجی قابل مشاهدهای از این حالت نامشخص تولید میکند. فیلتر کالمن قادر است مشابه مدل نامشخص مارکوف برخورد کند. با این تفاوت کلیدی که متغیرهای حالت نامشخص در یک فضای پیوسته مقدار میگیرند (نقطهٔ مقابل فضای حالت گسسته در مدل مارکوف). بعلاوه، مدل نامشخص مارکوف میتواند یک توزیع دلخواه برای مقادیر بعدی متغیرهای حالت ارائه کند، که در تناقض با مدل پارازیت گاوسیای است که در فیلتر کالمن استفاده میشود. در اینجا یک دوگانگی بزرگ بین معادلات فیلتر کالمن و آن مدل مارکوف وجود دارد. مقالهای در رابطه با این مدل و دیگر مدلها در Roweis and Ghahramani[3] و فصل ۱۳ Hamilton[4] ارائه شدهاست.
برای تخمین حالت درونی یک فرایند که توسط مجموعهای مشاهدات دارای پارازیت ارائه شدهاست باید آن را منطبق بر چارچوب فیلتر کالمن کنیم. به این منظور ماتریسهای زیر را ارائه میکنیم:
Fk: مدل انتقال حالات،
Hk: مدل مشاهده شده،
Qk: کوواریانس پارازیت فرایند،
Rk: کوواریانس پارازیت مشاهده شده،
Bk: مدل ورودی-کنترل
فیلتر کالمن بیان میکند که میتوان حالت k را با استفاده از حالت (k - 1) با استفاده از رابطه زیر محاسبه کرد:
بهطوریکه:
Fk: حالت انتقالی اعمال شده به xk−۱،
Bk: مدل ورودی-کنترل اعمال شده به بردار کنترلی uk,
wk: فرایند نویزی با توزیع نرمال، میانگین صفر و واریانس Qk
در زمان k،مشاهده zk با توجه به حالت xk به صورت زیر بدست میآید:
بهطوریکه Hk مدل مشاهده شده که به فضای مشاهده شده نگاشت میشود و همچنین vk نویز مشاهده شده با توزیع گاوسی، میانگین صفر و کوواریانس Rk است.
لازم است ذکر شود که حالت اولیه و بردار نویزی در هر محله از هم مستقل هستند.
بسیاری از سیستمهای پویای واقعی از این مدل تبعیت نمیکنند. برخی سیستمهای پویا حتی در زمانی که منبع ورودی ناشناختهای را بررسی میکنیم، میتوانند موجب کاهش تأثیر این فیلتر شوند. زیرا اثر این سیستمها بر سیگنال ورودی تأثیرگذار است و به این ترتیب میتواند موجب ناپایداری تخمین فیلتر شود. به علاوه نویزهای سفید مستقل باعث منشعب شدن فیلتر نمیشوند. مسئله تفکیک نویز سفید و سیستمهای پویا در شاخهٔ نظریه کنترل و در چارچوب کنترل مقاوم بررسی میشود.[5][6]
شرح بیشتر
فیلتر کالمن یک تخمینگر بازگشتی است، یعنی تنها تخمین حالت قبل و مشاهده فعلی برای محاسبه تخمین حالت فعلی لازم است. برعکس بسیاری از تخمینگرها نیازی به نگهداری اطلاعات تخمینها و مشاهدات تمام حالات قبل نیست. در اینجا بیانگر تخمینی از در زمان n به شرط از مشاهدات پیش از این زمان است.
حالت فعلی فیلتر توسط دو متغیر تشریح میشود:
- تخمین حالت پسینی در زمان k به شرط مشاهدات پیش از k.
- ماتریس کوواریانس خطای پسین.
فیلتر کالمن توسط یک معادله بیان میشود اما معمولاً آن را به دو بخش پیشبینی و آپدیت تفکیک میکنند. در گام پیشبینی با استفاده از تخمینهای حالات در بازههای زمانی پیشین، تخمینی برای حالت فعلی بدست میآید. این تخمین پیشبینی شده همان دانش پیشینی است زیرا تنها به تخمینهای قبلی وابسته است و هیچ مشاهدهای در حالت فعلی سیستم را در برنمیگیرد. در گام آپدیت تخمین پیشین با مشاهدات فعلی ترکیب میشود تا تخمینی از حالت فعلی سیستم ارائه کند.
معمولاً این دو گام متناوباً تکرار میشوند، به این معنی که پیشبینی تا مشاهده بعدی انجام میشود و سپس با استفاده از مشاهدات فعلی آپدیت انجام میشود. اگر در بازه زمانی مشاهدهای انجام نشود، پیشبینیها تا مشاهده بعدی انجام میشوند و آپدیت بر مبنای چند مرحله پیشبینی انجام میشود. بهطور مشابه اگر در بازه زمانی چندین مشاهده مستقل انجام شود، بر مبنای هریک از آنها چند آپدیت با ماتریسهای Hk متفاوت بدست میآید.[7][8]
پیشبینی
تخمین حالت پیشبینی شده (پیشین) | |
تخمین کوواریانس پیشبینی شده (پیشین) |
آپدیت
مشاهده جدید وابسته | |
کوواریانس جدید وابسته | |
نتیجه بهینه کالمن | |
تخمین حالت آپدیت شده (پسین) | |
تخمین کوواریانس آپدیت شده (پسین) |
فرمول کوواریانس آپدیت شده تنها در حالت بهینه بودن فیلتر کالمن کاربرد دارد و در باقی حالات فرمولهای پیچیدهتری موردنیاز است که در بخش مشتقات موجود است.
ثابتها
اگر مدلسازی دقیق باشد و و بیانگر توزیع حالات ابتدایی سیستم باشند، مقادیر ثابت زیر بدست میآیند:
بهطوریکه امید ریاضی متغیر تصادفی است. در بالا تمامی تخمینها دارای امید ریاضی صفر هستند.
همچنین:
به این ترتیب ماتریسهای کوواریانس نشاندهنده مقادیر تخمینی کوواریانسها هستند.
تخمین کوواریانسهای نویز Qk و Rk
پیادهسازی عملی فیلتر کالمن با توجه به سختی بدست آوردن تخمین ماتریس کوواریانس Qk و Rk بهینه دشوار است. مطالعات بسیاری جهت بدست آوردن تخمینهای کوواریانس با توجه به دادههای موجود انجام شدهاست. یکی از بهترین روشها، تکنیک حداقل مربعات اتوکوواریانس(ALS) است که از اتوکوواریانس دادهها با ایجاد تأخیر زمانی برای تخمین استفاده میکند.[9][10] از گنو آکتیو و متلب جهت محاسبه ماتریسهای کوواریانس نویز با استفاده از تکنیک حداقل مربعات اتوکوواریانس استفاده میشود. این کار به صورت آنلاین توسط پروانه عمومی همگانی گنو امکانپذیر است.[11]
بهینگی و کارایی
فیلتر کالمن یک فیلتر خطی بهینه است زیرا الف) مدلسازی آن با دقت بالایی بر سیستم اصلی منطبق است. ب) نویز ورودی، نویز سفید ناهمبسته است. ج) مقدار کوواریانس نویز قابل محاسبه است. روشهای بسیاری از جمله روش حداقل مربعات اتوکوواریانس که در بالا به آن اشاره شد برای تخمین کوواریانس نویز ارائه شدهاند. پس از تخمین کوواریانس لازم است کارایی سیستم ارتقا یابد. این بدین معنی است که تخمین حالات سیستم دقیقتر شوند. اگر فیلتر کالمن بهینه باشد، نویز ورودی نویز سفید است که محاسبه کارایی سیستم را ممکن میسازد. روشهای زیادی جهت محاسبه کارایی موجود است.[12] اگر توزیع نویز گاوسی نباشد، روشهایی جهت تخمین کارایی با استفاده از نامساویهای احتمالاتی در[13] و[14] ارائه شدهاست.
مثال کاربرد عملی
کامیونی دارای اصطکاک در مسیری مستقیم را در نظر بگیرید. کامیون در مکان صفر ثابت است و سپس در مسیری تحت تأثیر نیروهای تصادفی به حرکت در میآید. موقعیت کامیون را در هر Δt ثانیه اندازهگیری میکنیم. اما این اندازهگیری مبهم است چرا ما تنها مدلی از مکان و سرعت کامیون را در نظر میگیریم. در اینجا فیلتر کالمن را برای این مدل بیان میکنیم.
چون ثابت هستند، شاخصهای زمانی آنها حذف میشوند.
موقعیت و سرعت کامیون در فضای خطی موقعیت آن توصیف میشود:
سرعت، یعنی مشتق مکان نسبت به زمان است.
فرض کنیم در بازه زمانی میان (k − ۱) و k شتاب ak که دارای توزیع طبیعی با میانگین صفر و واریانسσa است به آن اعمال شود. طبق قوانین حرکت نیوتن داریم:
نتیجه شتابak را به سیستم اعمال میکند و همچنین داریم
و
به این ترتیب
بهطوریکه و
توزیع کاملاً پیوسته نیست و بنابراین هیچ تابع توزیع احتمالی ندارد. روش دیگر بیان این توزیع به صورت زیر است:
در هر بازه زمانی، موقعیت کامیون که با نویزی آمیختهاست در دست است. فرض کنیم این نویز vk دارای توزیع طبیعی با میانگین صفر و واریانس σz باشد،
بهطوریکه
و
میدانیم موقعیت اولیه کامیون مشخص است و به صورت زیر در نظر گرفته میشود
برای اینکه در فیلتر آگاهیمان نسبت به این موضوع را مشخص کنیم، یک ماتریس کوواریانس صفر تعریف میکنیم:
اگر حالت ابتدایی و سرعت به درستی و دقت در دست نباشند، ماتریس کوواریانس باید با توجه به واریانسهای داده شده و به صورت قطری تعریف شود:
به این ترتیب فیلتر قادر به محاسبه اطلاعات مدل بر اساس مقادیر اولیه میشود.
مشتقات
مشتقگیری از ماتریس تخمینی کوواریانس پسین
با توجه به مقدار ثابت کوواریانس خطا Pk | k در بالا
با جایگذاری از روابط اثبات شده خواهیم داشت
حال مقدار را جایگزین میکنیم
همچنین را نیز در رابطه جایگذاری میکنیم
با توجه به بردار خطا
چون خطای اندازهگیری شدهvk نسبت به سایر متغیرها ناهمبسته است، میتوان گفت
با توجه به ویژگیهای ماتریس کوواریانس
با توجه به ثابت بودن Pk | k−1 و تعریف Rk نتیجه میشود
این فرمول برای هر مقدار Kk معتبر است. فرمول بالا بیان میکند اگر Kk نتیجه بهینه کالمن باشد، رابطه به شکل زیر ساده خواهد شد.
مشتق نتیجه کالمن
فیلتر کالمن یک تخمینگر کمینه مربع میانگین خطا (MMSE) است. خطا در تخمین حالت پسین برابر است با
هدف ما کمینه کردن میانگین مربع این بردار خطا یعنی است. این معادل کمینه کردن اثر تخمین پسین ماتریس کوواریانس است. با بسط رابطه بالا نتیجه میشود:
اثر ماتریس زمانی کمینه میشود که حساب ماتریس صفر شود. با استفاده از خواص ماتریس گرادیان و تقارن ماتریسها داریم:
اگر این معادله را برای Kk حل کنیم، نتیجه کالمن بدست میآید
این عبارت همان نتیجه بهینه کالمن است.
ساده کردن فرمول کوواریانس خطای پسین
با استفاده از نتیجه بهینه کالمن که در بالا بدست آمد میتوان فرمول کوواریانس خطای پسین را سادهتر کرد. اگر طرفیت رابطه نتیجه بهینه کالمن را در SkKkT ضرب کنیم، داریم:
با استفاده از فرمول بسط داده شده کوواریانس خطای پسین
با سادهسازی دو جملهٔ آخر نتیجه میشود
این فرمول در محاسبه بسیار راحتتر است اما تنها برای نتیجه بهینه کاربرد دارد و زمانی که نتیجه کالمن بهینه نباشد باید از همان فرمول قبلی استفاده کرد.
تحلیل درستی
معادلات فیلتر کردن کالمن تخمینی بازگشتی برای حالت و کوواریانس خطای ارائه میکند. دقت تخمین به پارامترهای سیستم و نویز ورودی تخمینگر بستگی دارد.[15] در غیاب مقادیر ماتریسهای کوواریانس و عبارت
مقدار درست کوواریانس خطا را ارائه نمیکند. به عبارت دیگر، . در بسیاری از کاربردهای بیدرنگ، ماتریسهای کوواریانس مورد استفاده در طراحی فیلتر کالمن با مقادیر واقعی ماتریسهای کوواریانس تفاوت دارند. این تحلیل بیان میدارد که تخمین کوواریانس خطا زمانی که ماتریسهای ورودی سیستم و باشند، نادرست است.
این بحث به حالتی که عدم قطعیت در مورد خطا داریم محدود میشود. حال مقادیر واقعی کوواریانس نویز را و تعریف میکنیم بهطوریکه مقادیر آنها به ترتیب در روابط جایگزین و شوند. مقدار واقعی کوواریانس خطا را و با فیلتر کالمن محاسبه میشوند. اگر و ، خواهد بود. با محاسبه مقدار واقعی کوواریانس خطا و جایگذاری و در نظر داشتن اینکه and معادلات بازگشتی برای بدست میآید:
و
محاسبه با فرض و انجام میشود. روابط بازگشتی برای و جز زمانی که و را به ترتیب به جای و در نظر بگیریم، یکتا هستند.
ریشه مربع
یکی از مشکلات فیلتر کالمن ثبات عددی است. اگر کوواریانس نویزQk کوچک باشد، مقدار ویژه آن منفی میشود. به این ترتیب ماتریس کوواریانس حالاتP نامعین میشود در حالیکه باید مثبت معین باشد.
یک ویژگی ماتریسهای مثبت معین این است که ریشه مربعی ماتریس مثلثی P = S·ST دارند. این ریشه میتواند به کمک روش تفکیک چولسکی (Cholesky decomposition) محاسبه شود. اگر کوواریانس به این فرم نوشته شود، هیچگاه قطری یا متقارن نخواهد بود. یک فرم معادل این ماتریس که با استفاده از تفکیک U-D بدست میآید، P = U·D·UT
است کهU یک ماتریس مثلثی واحد و D یک ماتریس قطری است. در میان این دو فرم، فرم U-D رایجتر است و نیاز به محاسبات کمتری دارد.
الگوریتمهای کارای پیشبینی و آپدیت کالمن در فرم ریشه مربعی، توسط بیرمن و تورتون ارائه شدند.[16][17]
'تفکیک'L·D·LT ماتریس کوواریانسSk مبنای دیگر فیلترهای عددی و ریشه مربعی است.[18] الگوریتم با تفکیک LU آغاز میشود و نتایج آن در ساختارL·D·LT وارد میشود تا به روش Golub و Van Loan (الگوریتم ۴٫۱٫۲) در ماتریس قطری غیر واحد انجام شود.[19]
ارتباط با تخمین بازگشتی بیز
فیلتر کالمن یکی از سادهترین شبکههای پویای بیزی است. فیلتر کالمن حالات فعلی سیستم را در طول زمان به صورت بازگشتی، با استفاده از اندازهگیریهای ورودی در مدل فرایندی ریاضی تخمین میزند. بهطور مشابه تخمین بازگشتی بیز، توابع توزیع احتمال ناشناخته را به صورت بازگشتی، با استفاده از اندازهگیریهای ورودی در مدل فرایندی ریاضی در طول زمان تخمین میزند.[20]
در تخمین بازگشتی بیز، حالت فعلی یک فرایند مارکوف مشاهده نشده در نظر گرفته میشود و اندازهگیریهای مشاهده شده مدل پنهان مارکف (HMM) هستند.
با فرض مارکوف، حالت فعلی سیستم مستقل از تمام حالات پیش از حالت قبلی آن است.
بهطور مشابه اندازهگیری در بازه زمانی kام تنها به حالت قبلی وابسته است و مستقل از تمام حالات پیش از حالت قبلی آن است.
با این مفروضات، توزیع احتمال تمام حالات مدل پنهان مارکوف به صورت زیر بیان میشود:
هدف فیلتر کالمن تخمین حالت فعلی سیستم است. این تخمین با استفاده از حاشیهسازی تابع توزیع مشترک بر اساس حالت قبلی سیستم قابل محاسبه است. کافی است حاشیهسازی نسبت به تمام حالات قبل انجام شده و بر احتمال مجموعه اندازهگیریها تقسیم شود.
به این ترتیب گامهای پیشبینی و آپدیت فیلتر کالمن به صورت احتمالاتی بدست میآیند. توزیع احتمال حالت پیشبینی شده حاصل انتگرال حاصلضرب توابع توزیع احتمال انتقال از حالت (k-1)ام به حالت kام است و حالت قبلی روی تمام های ممکن است.
اندازهگیریها تا بازه زمانی kام عبارتند از:
توزیع احتمال آپدیت از حاصلضرب پیشبینی و احتمال بخت (likelihood) بدست میآید.
بهطوریکه
ضریب نرمالسازی است.
توابع توزیع احتمال باقیمانده عبارتند از:
توجه کنید که تابع چگالی احتمال حالت قبل، یک تخمین است. فیلتر کالمن فیلتری بهینه است و به این ترتیب توزیع احتمال به شرط اندازهگیری یک تخمین بهینه توسط فیلتر کالمن است.
بخت حاشیهای
همانند تخمین بازگشتی بیز که پیشتر بیان شد، فیلتر کالمن را میتوان به عنوان یک مدل مولد دید. یعنی فرایندی برای تولید دنبالهای از مشاهدات تصادفی (... ,z = (z0, z1, z2. این فرایند به صورت زیر تعریف میشود:
- حالت پنهان را از توزیع گاوسی پیشین نمونهگیری کنید.
- حالت پنهان را از مدل مشاهده شده نمونهگیری کنید.
- برای
- حالت پنهان را از مدل انتقالی محاسبه کنید.
- مشاهده را از مدل مشاهده شده محاسبه کنید.
این فرایند ساختاری مشابه مدل پنهان مارکوف دارد که حالات گسسته در آن به متغیرهای تصادفی پیوسته با توزیع گاوسی تبدیل شدهاست.
محاسبه بخت حاشیهای به عنوان نتیجهای از فیلتر کردن بازگشتی بسیار آسان است. به کمک قانون زنجیرهای احتمال، بخت از حاصلضرب احتمال هر مشاهده به شرط مشاهدات قبلی بدست میآید،
به علاوه چون فیلتر کالمن معرف یک فرایند مارکوف است، تمام دانش بدست آمده از مشاهدات قبلی به تخمین محدود میشود. به این ترتیب بخت حاشیهای به صورت زیر محاسبه میشود:
رابطه بالا حاصلضرب چند توزیع احتمال گاوسی است که هر یک نمایانگر یک مشاهدهzk تحت فیلتر است؛ که از آپدیتهای بازگشتی محاسبه میشود. برای راحتی محاسبه بهتر است ازlog بخت حاشیهای یعنی استفاده شود. با فرض محاسبه به صورت بازگشتی انجام میشود.
بهطوریکه بعد بردار اندازهگیریها میباشد.[21]
فیلتر اطلاعاتی
در فیلتر اطلاعاتی یا فیلتر کوواریانس معکوس، تخمین کوواریانس و تخمین حالت به ترتیب با ماتریس اطلاعات و تابع اطلاعات جایگزین میشوند.
- به طریق مشابه کوواریانس و بردار مشاهدات هم با عبارات همارز اطلاعاتی جایگزین میشوند.
- با داشتن ماتریس و بردار مشاهدات که به صورت زیر تعریف شدهاند
- اطلاعات آپدیت شده به صورت زیر نوشته میشوند.[22]
مزیت اصلی فیلتر اطلاعاتی این است که N مشاهده میتوانند در هر بازه زمانی با جمع زدن ماتریسها و بردارهای اطلاعاتی فیلتر شوند.
جهت پیشبینی فیلتر اطلاعات ماتریس و بردار اطلاعات به عبارات همارزشان در فضای حالات سیستم تبدیل میشوند. البته پیشبینی فضای اطلاعاتی هم قابل انجام است.[22]
این مقادیر به شرطی قابل محاسبهاند کهF و Q در زمان ثابت باشند. همچنینF و Q باید معکوسپذیر باشند.
تصفیهکننده تأخیر زمانی
تصفیهکننده بهینه تخمینی بهینه از برای تأخیر ثابت با استفاده از مشاهدات تا ارائه میکند.[23] این تخمین به کمک روابط قبلی و برای یک حالت تکمیل شده به صورت زیر بدست میآید:
بهطوریکه:
- و با یک فیلتر استاندارد کالمن تخمین زده شدهاست.
- و متغیرهای جدیدی هستند که در فیلتر کالمن وجود نداشتند.
- نتایج کالمن از رابطه زیر بدست میآیند:
بهطوریکه و کوواریانس خطاهای پیشبینی شده و نتایج فیلتر استاندارد کالمن هستند. ()
اگر تخمین کوواریانس خطا را به صورت زیر تعریف کنیم:
تخمین بهتری از از رابطه زیر حاصل میشود.
تصفیهکننده بازه
تصفیهکننده بهینه تخمینی بهینه از () با استفاده از مشاهداتی در بازه تا ارائه میکند. به این مبحث «تصفیهکننده کالمن» هم گفته میشود. الگوریتمهای مختلفی با این منظور موجودند.
Rauch–Tung–Striebel
الگوریتمی دو مرحلهای و کارا برای تصفیه کردن بازه است.[24] گام رو به جلو مشابه فیلتر عادی کالمن است. تخمینهای فیلتر شده پیشین و پسین، و ، در گام رو به عقب کاربرد دارند.
در گام رو به عقب تخمین تصفیهشده و را محاسبه میکنیم. بدین طریق که از آخرین بازه زمانی شروع کرده و به صورت عقبگرد معادلات بازگشتی زیر را مییابیم:
- بهطوریکه
- تخمین حالت پسین زمان و تخمین حالت پیشین زمان است. درمورد کوواریانس نیز همین نوشتار به کار میرود.
تصفیهکننده Bryson–Frazier
این روش جایگزینی برای الگوریتم RTS است که توسط بیرمن ارائه شدهاست.[17] این روش همچنین در گام رو به عقب دادههای بدست آمده در گام رو به جلوی فیلتر کالمن استفاده میکند. معادلات رو به عقب شامل محاسبات بازگشتی که پس از هر مشاهده جهت تصفیه حالت و کوواریانس به کار برده میشود.
معادلات بازگشتی عبارتند از:
بهطوریکه کوواریانس باقیماندهاست و . همچنین حالت و کوواریانس تصفیهشده با کمک معادلات زیر قابل محاسبه است.
- یا
از مزیتهای MBF عدم نیاز به یافتن معکوس ماتریس کوواریانس است.
تصفیهکننده کمینه واریانس
این روش میتواند بهترین خطای ممکن را با استفاده از پارامترها و آمارههای نویزی شناختهشده بدست آورد.[25] این تصفیهکننده مدل کلیتری از فیلتر غیر علی وینر است. (non-causal Wiener filter)
محاسبات در دو گام انجام میشود. محاسبات گام رو به جلو در یک مرحله پیشبینی صورت میگیرد:
این عبارات معکوس وینر-هوف (Wiener-Hopf) است. نتیجه گام رو به عقب میتواند با استفاده بازگشت در زمان و از گام رو به جلو از محاسبه شود. در این حالت خروجی سیستم برابر است با:
با جایگذاری در رابطه بالا
این معادله برا ی فیلتر کالمن کمینه واریانس همواره یکسان است. حل معادلات بالا واریانس تخمین خطای خروجی را کمینه میکند. توجه کنید که در روش Rauch–Tung–Striebel فرض میشود که همه توزیعها گاوسی هستند اما در اینجا چنین نیست.
نسخهٔ پیوسته در زمان این تصفیهکننده در[26][27] ارائه شدهاند.
فیلترهای وزندار کالمن
توابع وزندار جهت وزن دادن به میانگین توزیع توان خطا در یک بازه تغییر مشخص استفاده میشوند. فرض کنید - یک تخمین خطای خروجی توسط فیلتر کالمن و یک تابع تخصیص وزن علی باشد. روش بهینهای که واریانس ( - ) را کمینه میکند استفاده از است.
نحوه طراحی فعلاً بیپاسخ است. یک راه آن شناسایی سیستمی که تخمین خطا را تولید میکند و قرارداد کردن به عنوان معکوس آن سیستم است.[28] این روش میتواند جهت محاسبه خطای مربع میانگین استفاده شود تا هزینه فیلتر کاهش یابد. همچنین روش مشابهی جهت یافتن تصفیهکننده نیز وجود دارد.
فیلترهای غیرخطی
مبنای فیلتر کالمن، تبدیلات خطی است. اما سیستمهای پیچیدهتر میتوانند غیرخطی باشند. مسئله غیرخطی بودن میتواند در مشاهدات، مدلسازی یا هر دو بروز پیدا کند.
فیلتر کالمن بسطیافته - EKF
در فیلتر بسطیافته کالمن (EKF) انتقال حالات و مشاهدات نیاز به توابع حالت خطی یا غیرخطی دارند. اینها توابعی مشتقپذیر هستند.
تابع f میتواند جهت محاسبه حالت پیشبینی شده از تخمین قبلی به کار رود. همچنین تابع h جهت یافتن مشاهدهای از حالت قبلی به کار میرود. توابع f و h نمیتوانند مستقیماً به کوواریانس اعمال شوند، بلکه باید ماتریسی از مشتقات جزئی (ماتریس ژاکوبی) آنها محاسبه شود.
در هر بازه زمانی ماتریس ژاکوبی با استفاده از حالات پیشبینی شده قبلی محاسبه میشود. این ماتریسها در معادلات فیلتر کالمن کاربرد دارد. در واقع این فرایند عمل خطی کردن توابع غیرخطی را حول تخمین فعلی شامل میشود.
فیلتر کالمن از نوع UKF - Unscented
وقتی انتقال حالات و مشاهدات، یعنی توابع پیشبینی و آپدیت و ، کاملاً غیرخطی باشند، فیلتر کالمن بسطیافته کارایی پایینی خواهد داشت.[29] به این دلیل که کوواریانس در عمل خطیسازی مدل غیرخطی افزایش مییابد. فیلتر کالمن Unscented از روش نمونهگیری قطعی که به Uncented Transform معروف است، استفاده میکند تا مجموعه نمونه مینیمالی از نقاط حول میانگین را جمعآوری کند. سپس این نقاط در تابع غیرخطی وارد شده تا میانگین و کوواریانس جدید حاصل شود. نتیجه برای سیستمهای قطعی با قطعیت بیشتری مقدار میانگین و کوواریانس را ارائه میکند.[30] این روش به عنوان روش مونتکارلو یا بسط تیلور برای آمارههای پسین شناخته شدهاست. در واقع این روش ما را از محاسبه مستقیم ماتریس ژاکوبی که برای بعضی توابع بسیار پیچیدهاست، بینیاز میکند.
پیشبینی
مشابه EKF، در روش UKF فاز پیشبینی در مقایسه با یک آپدیت خطی مستقل از آپدیت UKF انجام میشود. تخمین حالت و کوواریانس با کمک میانگین و کوواریانس فرایند بدست میآیند.
مجموعهای شامل 2L + ۱ به کمک حالت و کوواریانس از حالت بعد L حاصل میشود.
- بهطوریکه
iامین ستون ماتریس مربع ریشه است.
با توجه به تعریف ریشه مربعی در ماتریس بدست میآید:
ریشه مربعی باید به صورت عددی و توسط روشهایی مانند تفکیک کولسکی محاسبه شود.
نقاط بدست آمده به عنوان ورودی تابع انتقال f داده میشوند:
بهطوریکه . از نقاط وزندار جهت محاسبه تخمین حالت و کوواریانس استفاده میشود
بهطوریکه وزنهای مربوط به حالات و کوواریانس از روابط زیر بدست میآیند:
و گستردگی نقاط را کنترل میکنند. مربوط به توزیع است.
اگر توزیع گاوسی باشد، مقادیر طبیعی برابر , و هستند. بهینه است.
آپدیت
پیشبینی حالت و کوواریانس مطابق بالا حاصل میشوند به جز زمانی که میانگین و کوواریانس نویز مشاهده شده در دست باشد.
مطابق قبل مجموعهای شامل 2L + ۱ نقطه در نظر میگیریم
اگر پیشبینی UKF استفاده شدهباشد، نقاط به صورت زیر مستقلاً قابل محاسبهاند.
بهطوریکه
نقاط به عنوان ورودی تابع h استفاده میشوند
نقاط وزندار جهت محاسبه مشاهده و کوواریانس مشاهدات پیشبینی شدهاستفاده میشوند.
کوواریانس ضربدری حالات و مشاهدات به صورت زیر محاسبه میشود
که برای محاسبه نتیجه فیلتر کالمن UKF استفاده میشود.
همانند فیلتر کالمن، حالت آپدیت شده از جمع حالت پیشبینی شده و وزندار کردن نتیجه کالمن محاسبه میشود
همچنین کوواریانس آپدیت شده برابر است با تفاضل کوواریانس پیشبینی شده و کوواریانس محاسبه پیشبینی شده که با نتیجه کالمن وزندار شدهاست.
فیلتر کالمن - بوسی
این فیلتر حالت پیوسته در زمان فیلتر کالمن میباشد که نام آن برگرفته از نام ریچارد اسنودن بوسی میباشد.[31][32]
این فیلتر مبتنی بر فضای نمونه حالت مدل شدهاست.
بهطوریکه و قوت نویزهای سفید و را بیان میکند.
فیلتر از دو معادله دیفرانسیلی بدست میآید. یکی برای تخمین حالت و دیگری برای کوواریانس.
بهطوریکه
کوواریانس نویز مشاهدهشده معادل کوواریانس خطای پیشبینی شده است. این دو کوواریانس تنها در حالت پیوسته زمان برابرند.[33]
تمایز میان حالت پیشبینی و آپدیت فیلتر کالمن در اینجا وجود ندارد.
فیلتر کالمن هیبریدی
بسیاری از سیستمهای فیزیکی به صورت پیوسته در زمان مدل میشوند درحالیکه مشاهدات ورودی توسط یک پردازنده دیجیتال و به صورت گسسته در زمان به آن ارائه میشوند. به این ترتیب مدل سیستم و مشاهدات به این صورت بیان میشود:
بهطوریکه
مقداردهی
پیشبینی
این معادلاتت از حالت پیوسته فیلتر کالمن، بدون آپدیت توسط مشاهدات حاصل میشوند بهطوریکه . حالت و کوواریانس پیشبینی شده با حل مجموعهای از معادلات دیفرانسیلی دارای مقادیر اولیه تخمین حالت قبلی محاسبه میشوند.
آپدیت
معادلات آپدیت همان معادلات فیلتر کالمن گسسته هستند.
منابع
- Wolpert، Daniel؛ Ghahramani، Zoubin (۲۰۰۰). «Computational principles of movement neuroscience». Nature Neuroscience: ۱۲۱۲–۷. doi:10.1038/81497.
- Kalman، R. E. (۱۹۶۰). «A New Approach to Linear Filtering and Prediction Problems». Journal of Basic Engineering: ۳۵. doi:10.1115/1.3662552.
- Roweis، S؛ Ghahramani، Z (۱۹۹۹). «A unifying review of linear gaussian models». Neural computation: ۳۰۵–۴۵. doi:10.1162/089976699300016674. PMID 9950734.
- Hamilton, J. (1994), Time Series Analysis, Princeton University Press. Chapter 13, 'The Kalman Filter'
- Ishihara، J.Y.؛ Terra، M.H. (۲۰۰۶). «Robust Kalman Filter for Descriptor Systems». IEEE Transactions on Automatic Control: ۱۳۵۴. doi:10.1109/TAC.2006.878741.
- Terra، Marco H.؛ Cerri، Joao P. (۲۰۱۴). «Optimal Robust Linear Quadratic Regulator for Systems Subject to Uncertainties». IEEE Transactions on Automatic Control: ۲۵۸۶–۲۵۹۱. doi:10.1109/TAC.2014.2309282.
- Kelly, Alonzo (1994). "A 3D state space formulation of a navigation Kalman filter for autonomous vehicles" (PDF). DTIC Document: 13. 2006 Corrected Version بایگانیشده در ۱۰ ژانویه ۲۰۱۷ توسط Wayback Machine
- Reid، Ian؛ Term، Hilary. «Estimation II» (PDF). www.robots.ox.ac.uk. Oxford University.
- Rajamani, Murali (October 2007). Data-based Techniques to Improve State Estimation in Model Predictive Control (PDF) (PhD Thesis). University of Wisconsin–Madison. Archived from the original (PDF) on 4 March 2016. Retrieved 16 December 2016.
- Rajamani، Murali R.؛ Rawlings، James B. (۲۰۰۹). «Estimation of the disturbance structure from data using semidefinite programming and optimal weighting». Automatica. doi:10.1016/j.automatica.2008.05.032.
- «Autocovariance Least-Squares Toolbox». Jbrwww.che.wisc.edu. بایگانیشده از اصلی در ۲۸ نوامبر ۲۰۱۶. دریافتشده در ۱۶ دسامبر ۲۰۱۶.
- Three optimality tests with numerical examples are described in Peter, Matisko, (2012). "Optimality Tests and Adaptive Kalman Filter". 16th IFAC Symposium on System Identification. 16th IFAC Symposium on System Identification. p. 1523. doi:10.3182/20120711-3-BE-2027.00011. ISBN 978-3-902823-06-9.
- Spall، James C. (۱۹۹۵). «The Kantorovich inequality for error analysis of the Kalman filter with unknown noise distributions». Automatica. doi:10.1016/0005-1098(95)00069-9.
- Maryak، J.L.؛ Spall، J.C. (۲۰۰۴). «Use of the Kalman Filter for Inference in State-Space Models with Unknown Noise Distributions». IEEE Transactions on Automatic Control. doi:10.1109/TAC.2003.821415.
- Anderson، Brian D. O.؛ Moore، John B. (۱۹۷۹). Optimal Filtering. New York: Prentice Hall. صص. ۱۲۹–۱۳۳. شابک ۰-۱۳-۶۳۸۱۲۲-۷.
- Thornton، Catherine L. (۱۵ اکتبر ۱۹۷۶). «Triangular Covariance Factorizations for Kalman Filtering». http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19770005172_1977005172.pdf. NASA Technical Memorandum 33-798. پیوند خارجی در
|ژورنال=
وجود دارد (کمک) - Bierman، G.J. (۱۹۷۷). «Factorization Methods for Discrete Sequential Estimation». Factorization Methods for Discrete Sequential Estimation. بیبکد:1977fmds.book.....B.
- Bar-Shalom، Yaakov؛ Li، X. Rong؛ Kirubarajan، Thiagalingam (۲۰۰۱). Estimation with Applications to Tracking and Navigation. John Wiley & Sons. صص. ۳۰۸–۳۱۷. شابک ۹۷۸-۰-۴۷۱-۴۱۶۵۵-۵.
- Golub، Gene H.؛ Van Loan، Charles F. (۱۹۹۶). Matrix Computations. Johns Hopkins Studies in the Mathematical Sciences (ویراست Third). Baltimore, Maryland: Johns Hopkins University. صص. ۱۳۹. شابک ۹۷۸-۰-۸۰۱۸-۵۴۱۴-۹.
- Masreliez، C. Johan؛ Martin، R D (۱۹۷۷). «Robust Bayesian estimation for the linear model and robustifying the Kalman filter». IEEE Transactions on Automatic Control: ۳۶۱–۳۷۱. doi:10.1109/TAC.1977.1101538.
- Lütkepohl، Helmut (۱۹۹۱). Introduction to Multiple Time Series Analysis. Heidelberg: Springer-Verlag Berlin,. صص. ۴۳۵.
- Gabriel T. Terejanu (۲۰۱۲-۰۸-۰۴). «Discrete Kalman Filter Tutorial» (PDF).
- Anderson، Brian D. O.؛ Moore، John B. (۱۹۷۹). Optimal Filtering. Englewood Cliffs, NJ: Prentice Hall, Inc. صص. ۱۷۶–۱۹۰. شابک ۰-۱۳-۶۳۸۱۲۲-۷.
- Rauch، H.E.؛ Tung، F. C. T. Striebel. «Maximum likelihood estimates of linear dynamic systems». AIAA Journal: ۱۴۴۵–۱۴۵۰. doi:10.2514/3.3166. بیبکد:1965AIAAJ...3.1445.
- Einicke، G.A. (مارس ۲۰۰۶). «Optimal and Robust Noncausal Filter Formulations». IEEE Trans. Signal Processing: ۱۰۶۹–۱۰۷۷. doi:10.1109/TSP.2005.863042. بیبکد:2006ITSP...54.1069E.
- Einicke، G.A. (آوریل ۲۰۰۷). «Asymptotic Optimality of the Minimum-Variance Fixed-Interval Smoother». IEEE Trans. Signal Processing: ۱۵۴۳–۱۵۴۷. doi:10.1109/TSP.2006.889402. بیبکد:2007ITSP...55.1543E.
- Einicke، G.A.؛ Ralston، J.C. (دسامبر ۲۰۰۸). C.O. Hargrave و D.C. Reid و D.W. Hainsworth. «Longwall Mining Automation. An Application of Minimum-Variance Smoothing». IEEE Control Systems Magazine. doi:10.1109/MCS.2008.929281.
- Einicke، G.A. (دسامبر ۲۰۱۴). «Iterative Frequency-Weighted Filtering and Smoothing Procedures». IEEE Signal Processing Letters: ۱۴۶۷–۱۴۷۰. doi:10.1109/LSP.2014.2341641. بیبکد:2014ISPL...21.1467E.
- Julier, Simon J.; Uhlmann, Jeffrey K. (1997). "A new extension of the Kalman filter to nonlinear systems" (PDF). Int. Symp. Aerospace/Defense Sensing, Simul. and Controls. Signal Processing, Sensor Fusion, and Target Recognition VI. 3: 182. Bibcode:1997SPIE.3068..182J. doi:10.1117/12.280797. Retrieved 2008-05-03.
- Gustafsson, Fredrik; Hendeby, Gustaf (2012). "Some Relations Between Extended and Unscented Kalman Filters". IEEE Transactions on Signal Processing. 2: 545–555.
- Bucy, R.S. and Joseph, P.D. , Filtering for Stochastic Processes with Applications to Guidance, John Wiley & Sons, 1968; 2nd Edition, AMS Chelsea Publ. , 2005. ISBN 0-8218-3782-6
- Jazwinski, Andrew H. , Stochastic processes and filtering theory, Academic Press, New York, 1970. ISBN 0-12-381550-9
- «An innovations approach to least-squares estimation--Part I: Linear filtering in additive white noise». IEEE Transactions on Automatic Control: ۶۴۶–۶۵۵. ۱۹۶۸. doi:10.1109/TAC.1968.1099025.
- مشارکتکنندگان ویکیپدیا. «Kalman filter». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۲۱ مارس ۲۰۱۴.