فیلتر کالمان

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از فیلتر کالمن)
پرش به: ناوبری، جستجو
Basic concept of Kalman filtering.svg

فیلتر کالمان (به انگلیسی: Kalman filter) که به عنوان فیلتر خطی مرتبه دوم نیز از آن یاد می‌شود، الگوریتمی است که حالت یک سیستم پویا را با استفاده از مجموعه‌ای از اندازه‌گیری‌های شامل خطا در طول زمان برآورد می‌کند. این فیلتر معمولاً تخمین دقیق‌تری را نسبت به تخمین بر مبنای یک اندازه‌گیری واحد را بر مبنای استنباط بیزی و تخمین توزیع احتمال مشترکی از یک متغیر تصادفی در یک مقطع زمانی ارائه می‌کند. این فیلتر از نام رودولف ئی کالمن، یکی از پایه‌گذاران این تئوری گرفته شده‌است.

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

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

درمورد ورودی‌های فیلتر کالمان نمی‌توان بیان کرد که تمام خطاها گوسی هستند. اما در عمل فیلتر برآوردهای احتمالاتی را با فرض توزیع طبیعی داشتن انجام می‌دهد.[۲]

مثال کاربردی[ویرایش]

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

به عنوان مثال، برای کاربری آن در رادار، آنجا که علاقه‌مند به ردیابی هدف هستید، اطلاعات در مورد موقعیت، سرعت و شتاب هدف با حجم عظیمی از انحراف به لطف پارازیت در هر لحظه اندازه‌گیری می‌شود. فیلتر کالمان از پویایی هدف بهره می‌گیرد به این صورت که سیر تکاملی آن را کنترل می‌کند، تا تأثیرات پارازیت را از بین ببرد و یک برآورد خوب از موقیت هدف در زمان حال (تصفیه کردن) و در آینده (پیش بینی) و یا در گذشته (الحاق یا هموار سازی) ارائه می‌دهد. یک نسخه ساده شده فیلتر کالمان، فیلتر آلفا بتا (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[۳] و فصل ۱۳ Hamilton[۴] ارائه شده است.

برای تخمین حالت درونی یک فرایند که توسط مجموعه‌ای مشاهدات دارای پارازیت ارائه شده‌است باید آنرا منطبق بر چارچوب فیلتر کالمان کنیم. به این منظور ماتریس‌های زیر را ارائه می‌کنیم:

Fk: مدل انتقال حالات،

Hk: مدل مشاهده شده،

Qk: کوواریانس پارازیت فرایند،

Rk: کوواریانس پارازیت مشاهده شده،

Bk: مدل ورودی-کنترل

فیلتر کالمان بیان می‌کند که می‌توان حالت k را با استفاده از حالت (k - 1) با استفاده از رابطه زیر محاسبه کرد:

به طوریکه:

Fk: حالت انتقالی اعمال شده به xk−1،

Bk: مدل ورودی-کنترل اعمال شده به بردار کنترلی u

wk: فرایند نویزی با توزیع نرمال، میانگین صفر و واریانس Qk

در زمان مشاهده zk با توجه به حالت xk به صورت زیر بدست می‌آید:

به طوریکه Hk مدل مشاهده شده که به فضای مشاهده شده نگاشت می‌شود و همچنین vk نویز مشاهده شده با توزیع گاوسی، میانگین صفر و کوواریانس Rk است.

لازم است ذکر شود که حالت اولیه و بردار نویزی در هر محله از هم مستقل هستند.

بسیاری از سیستم‌های پویای واقعی از این مدل تبعیت نمی‌کنند. برخی سیستم‌های پویا حتی در زمانی که منبع ورودی ناشناخته‌ای را بررسی می‌کنیم، می‌توانند موجب کاهش تأثیر این فیلتر شوند. زیرا اثر این سیستم‌ها بر سیگنال ورودی تأثیرگذار است و به این ترتیب می‌تواند موجب ناپایداری تخمین فیلتر شود. به علاوه نویزهای سفید مستقل باعث منشعب شدن فیلتر نمی‌شوند. مسئله تفکیک نویز سفید و سیستم‌های پویا در شاخهٔ نظریه کنترل و در چارچوب کنترل مقاوم بررسی می‌شود.[۵][۶]

Kalman filter model 2.svg

شرح بیشتر[ویرایش]

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

حالت فعلی فیلتر توسط دو متغیر تشریح می‌شود:

  • تخمین حالت پسینی در زمان k به شرط مشاهدات پیش از k.
  • ماتریس کوواریانس خطای پسین.

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

معمولاً این دو گام متناوباً تکرار می‌شوند، به این معنی که پیش‌بینی تا مشاهده بعدی انجام می‌شود و سپس با استفاده از مشاهدات فعلی آپدیت انجام می‌شود. اگر در بازه زمانی مشاهده‌ای انجام نشود، پیش‌بینی‌ها تا مشاهده بعدی انجام می‌شوند و آپدیت بر مبنای چند مرحله پیش‌بینی انجام می‌شود. به طور مشابه اگر در بازه زمانی چندین مشاهده مستقل انجام شود، بر مبنای هریک از آن‌ها چند آپدیت با ماتریس‌های Hk متفاوت بدست می‌آید.[۷][۸]

پیش‌بینی[ویرایش]

تخمین حالت پیش‌بینی شده (پیشین)
تخمین کوواریانس پیش‌بینی شده (پیشین)

آپدیت[ویرایش]

مشاهده جدید وابسته
کوواریانس جدید وابسته
نتیجه بهینه کالمان
تخمین حالت آپدیت شده (پسین)
تخمین کوواریانس آپدیت شده (پسین)

فرمول کوواریانس آپدیت شده تنها در حالت بهینه بودن فیلتر کالمان کاربرد دارد و در باقی حالات فرمول‌های پیچیده‌تری موردنیاز است که در بخش مشتقات موجود است.

ثابت‌ها[ویرایش]

اگر مدلسازی دقیق باشد و و بیانگر توزیع حالات ابتدایی سیستم باشند، مقادیر ثابت زیر بدست می‌آیند:

به طوریکه امید ریاضی متغیر تصادفی است. در بالا تمامی تخمین‌ها دارای امید ریاضی صفر هستند.

همچنین:

به این ترتیب ماتریس‌های کوواریانس نشان‌دهنده مقادیر تخمینی کوواریانس‌ها هستند.

تخمین کوواریانس‌های نویز Qk و Rk[ویرایش]

پیاده‌سازی عملی فیلتر کالمان با توجه به سختی بدست آوردن تخمین ماتریس کوواریانس Qk و Rk بهینه دشوار است. مطالعات بسیاری جهت بدست آوردن تخمین‌های کوواریانس با توجه به داده‌های موجود انجام شده‌است. یکی از بهترین روش‌ها، تکنیک حداقل مربعات اتوکوواریانس(ALS) است که از اتوکوواریانس داده‌ها با ایجاد تأخیر زمانی برای تخمین استفاده می‌کند.[۹][۱۰] از گنو آکتیو و متلب جهت محاسبه ماتریس‌های کوواریانس نویز با استفاده از تکنیک حداقل مربعات اتوکوواریانس استفاده می‌شود. این کار به صورت آنلاین توسط پروانه عمومی همگانی گنو امکان‌پذیر است.[۱۱]

بهینگی و کارایی[ویرایش]

فیلتر کالمان یک فیلتر خطی بهینه است زیرا الف) مدلسازی آن با دقت بالایی بر سیستم اصلی منطبق است. ب) نویز ورودی، نویز سفید ناهمبسته است. ج) مقدار کوواریانس نویز قابل محاسبه است. روش‌های بسیاری از جمله روش حداقل مربعات اتوکوواریانس که در بالا به آن اشاره شد برای تخمین کوواریانس نویز ارائه شده‌اند. پس از تخمین کوواریانس لازم است کارایی سیستم ارتقا یابد. این بدین معنی است که تخمین حالات سیستم دقیق‌تر شوند. اگر فیلتر کالمان بهینه باشد، نویز ورودی نویز سفید است که محاسبه کارایی سیستم را ممکن می‌سازد. روش‌های زیادی جهت محاسبه کارایی موحود است.[۱۲] اگر توزیع نویز گاوسی نباشد، روش‌هایی جهت نخمین کارایی با استفاده از نامساوی‌های احتمالاتی در[۱۳] و[۱۴] ارائه شده‌است.

مثال کاربرد عملی[ویرایش]

کامیونی دارای اصطکاک در مسیری مستقیم را در نظر بگیرید. کامیون در مکان صفر ثابت است و سپس در مسیری تحت تأثیر نیروهای تصادفی به حرکت در می‌آید. موقعیت کامیون را در هر Δt ثانیه اندازه‌گیری می‌کنیم. اما این اندازه‌گیری مبهم است چرا ما تنها مدلی از مکان و سرعت کامیون را در نظر می‌گیریم. در اینجا فیلتر کالمان را برای این مدل بیان می‌کنیمو.

چون ثابت هستند، شاخص‌های زمانی آنها حذف می‌شوند.

موقعیت و سرعت کامیون در فضای خطی موقعیت آن توصیف می‌شود:

سرعت، یعنی مشتق مکان نسبت به زمان است.

فرض کنیم در بازه زمانی میان (k − 1) و k شتاب ak که دارای توزیع طبیعی با میانگین صفر و واریانسσa است به آن اعمال شود. طبق قوانین حرکت نیوتن داریم:

نتیجه شتابak را به سیستم اعمال می‌کند و همچنین داریم

و

به این ترتیب

به طوریکه و

توزیع کاملاً پیوسته نیست و بنابراین هیچ تابع توزیع احتمالی ندارد. روش دیگر بیان این توزیع به صورت زیر است:

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

به طوریکه

و

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

برای اینکه در فیلتر آگاهیمان نسبت به این موضوع را مشخص کنیم، یک ماتریس کوواریانس صفر تعریف می‌کنیم:

اگر حالت ابتدایی و سرعت به درستی و دقت در دست نباشند، ماتریس کوواریانس باید با توجه به واریانس‌های داده شده و به صورت قطری تعریف شود:

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

مشتقات[ویرایش]

مشتق‌گیری از ماتریس تخمینی کوواریانس پسین[ویرایش]

با توجه به مقدار ثابت کوواریانس خطا Pk | k در بالا

با جایگذاری از روابط اثبات شده خواهیم داشت

حال مقدار را جایگزین می‌کنیم

همچنین را نیز در رابطه جایگذاری می‌کنیم

با توجه به بردار خطا

چون خطای اندازه‌گیری شدهvk نسبت به سایر متغیرها ناهمبسته است، می‌توان گفت

با توجه به ویژگی‌های ماتریس کوواریانس

با توجه به ثابت بودن Pk | k−1 و تعریف Rk نتیجه می‌شود

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

مشتق نتیجه کالمان[ویرایش]

فیلتر کالمان یک تخمینگر کمینه مربع میانگین خطا (MMSE) است. خطا در تخمین حالت پسین برابر است با

هدف ما کمینه کردن میانگین مربع این بردار خطا یعنی است. این معادل کمینه کردن اثر تخمین پسین ماتریس کوواریانس است. با بسط رابطه بالا نتیجه می‌شود:

اثر ماتریس زمانی کمینه می‌شود که حساب ماتریس صفر شود. با استفاده از خواص ماتریس گرادیان و تقارن ماتریس‌ها داریم:

اگر این معادله را برای Kk حل کنیم، نتیجه کالمان بدست می‌آید

این عبارت همان نتیجه بهینه کالمان است.

ساده کردن فرمول کوواریانس خطای پسین[ویرایش]

با استفاده از نتیجه بهینه کالمان که در بالا بدست آمد می‌توان فرمول کوواریانس خطای پسین را ساده‌تر کرد. اگر طرفیت رابطه نتیجه بهینه کالمان را در SkKkT ضرب کنیم، داریم:

با استفاده از فرمول بسط داده شده کوواریانس خطای پسین

با ساده‌سازی دو جملهٔ آخر نتیجه می‌شود

این فرمول در محاسبه بسیار راحت‌تر است اما تنها برای نتیجه بهینه کاربرد دارد و زمانی که نتیجه کالمان بهینه نباشد باید از همان فرمول قبلی استفاده کرد.

تحلیل درستی[ویرایش]

معادلات فیلتر کردن کالمان تخمینی بازگشتی برای حالت و کوواریانس خطای ارائه می‌کند. دقت تخمین به پارامترهای سیستم و نویز ورودی تخمینگر بستگی دارد.[۱۵] در غیاب مقادیر ماتریس‌های کوواریانس و عبارت

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

این بحث به حالتی که عدم قطعیت درمورد خطا داریم محدود می‌شود. حال مقادیر واقعی کوواریانس نویز را و تعریف می‌کنیم به طوریکه مقادیر آنها به ترتیب در روابط جایگزین و شوند. مقدار واقعی کوواریانس خطا را و با فیلتر کالمان محاسبه می‌شوند. اگر و ، خواهد بود. با محاسبه مقدار واقعی کوواریانس خطا و جایگذاری و در نظر داشتن اینکه and معادلات بازگشتی برای بدست می‌آید:

و

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

ریشه مربع[ویرایش]

یکی از مشکلات فیلتر کالمان ثبات عددی است. اگر کوواریانس نویزQk کوچک باشد، مقدار ویژه آن متفی می‌شود. به این ترتیب ماتریس کوواریانس حالاتP نامعین می‌شود در حالیکه باید مثبت معین باشد.

یک ویژگی ماتریس‌های مثبت معین این است که ریشه مربعی ماتریس مثلثی P = S·ST دارند. این ریشه می‌تواند به کمک روش تفکیک چولسکی (Cholesky decomposition) محاسبه شود. اگر کوواریانس به این فرم نوشته شود، هیچ‌گاه قطری یا متقارن نخواهد بود. یک فرم معادل این ماتریس که با استفاده از تفکیک U-D بدست می‌آید، P = U·D·UT

است کهU یک ماتریس مثلثی واحد و D یک ماتریس قطری است. در میان این دو فرم، فرم U-D رایج‌تر است و نیاز به محاسبات کمتری دارد.

الگوریتم‌های کارای پیش‌بینی و آپدیت کالمان در فرم ریشه مربعی، توسط بیرمن و تورتون ارائه شدند.[۱۶][۱۷]

'تفکیک'L·D·LT ماتریس کوواریانسSk مبنای دیگر فیلترهای عددی و ریشه مربعی است.[۱۸] الگوریتم با تفکیک LU آغاز می‌شود و نتایج آن در ساختارL·D·LT وارد می‌شود تا به روش Golub و Van Loan (الگوریتم ۴٫۱٫۲) در ماتریس قطری غیر واحد انجام شود.[۱۹]

ارتباط با تخمین بازگشتی بیز[ویرایش]

فیلتر کالمان یکی از ساده‌ترین شبکه‌های پویای بیزی است. فیلتر کالمان حالات فعلی سیستم را در طول زمان به صورت بازگشتی، با استفاده از اندازی‌گیری‌های ورودی در مدل فرایندی ریاضی تخمین می‌زند. به طور مشابه تخمین بازگشتی بیز، توابع توزیع احتمال ناشناخته را به صورت بازگشتی، با استفاده از اندازی‌گیری‌های ورودی در مدل فرایندی ریاضی در طول زمان تخمین می‌زند.[۲۰]

در تخمین بازگشتی بیز، حالت فعلی یک فرایند مارکوف مشاهده نشده در نظر گرفته می‌شود و اندازه‌گیری‌های مشاهده شده مدل پنهان مارکف (HMM) هستند.

HMM Kalman Filter Derivation.svg

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

به طور مشابه اندازه‌گیری در بازه زمانی kام تنها به حالت قبلی وابسته است و مستقل از تمام حالات پیش از حالت قبلی آن است.

با این مفروضات، توزیع احتمال تمام حالات مدل پنهان مارکوف به صورت زیر بیان می‌شود:

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

به این ترتیب گام‌های پیش‌بینی و آپدیت فیلتر کالمان به صورت احتمالاتی بدست می‌آیند. توزیع احتمال حالت پیش‌بینی شده حاصل انتگرال حاصلضرب توابع توزیع احتمال انتقال از حالت (k-1)ام به حالت kام است و حالت قبلی روی تمام های ممکن است.

اندازه‌گیری‌ها تا بازه زمانی kام عبارتند از:

توزیع احتمال آپدیت از حاصلضرب پیش‌بینی و احتمال بخت (likelihood) بدست می‌آید.

به طوریکه

ضریب نرمال‌سازی است.

توابع توزیع احتمال باقیمانده عبارتند از:

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

بخت حاشیه‌ای[ویرایش]

همانند تخمین بازگشتی بیز که پیش‌تر بیان شد، فیلتر کالمان را می‌توان به عنوان یک مدل مولد دید. یعنی فرآیندی برای تولید دنباله‌ای از مشاهدات تصادفی (... ,z = (z0, z1, z2. این فرایند به صورت زیر تعریف می‌شود:

  1. حالت پنهان را از توزیع گاوسی پیشین نمونه‌گیری کنید.
  2. حالت پنهان را از مدل مشاهده شده نمونه‌گیری کنید.
  3. برای
    1. حالت پنهان را از مدل انتقالی محاسبه کنید.
    2. مشاهده را از مدل مشاهده شده محاسبه کنید.

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

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

به علاوه چون فیلتر کالمان معرف یک فرایند مارکوف است، تمام دانش بدست آمده از مشاهدات قبلی به تخمین محدود می‌شود. به این ترتیب بخت حاشیه‌ای به صورت زیر محاسبه می‌شود:

رابطه بالا حاصلضرب چند توزیع احتمال گاوسی است که هر یک نمایانگر یک مشاهدهzk تحت فیلتر است؛ که از آپدیت‌های بازگشتی محاسبه می‌شود. برای راحتی محاسبه بهتر است ازlog بخت حاشیه‌ای یعنی استفاده شود. با فرض محاسبه به صورت بازگشتی انجام می‌شود.

به طوریکه بعد بردار اندازه‌گیری‌ها می‌باشد.[۲۱]

فیلتر اطلاعاتی[ویرایش]

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

به طریق مشابه کوواریانس و بردار مشاهدات هم با عبارات هم‌ارز اطلاعاتی جایگزین می‌شوند.
با داشتن ماتریس و بردار مشاهدات که به صورت زیر تعریف شده‌اند
اطلاعات آپدیت شده به صورت زیر نوشته می‌شوند.[۲۲]

مزیت اصلی فیلتر اطلاعاتی این است که N مشاهده می‌توانند در هر بازه زمانی با جمع زدن ماتریس‌ها و بردارهای اطلاعاتی فیلتر شوند.

جهت پیش‌بینی فیلتر اطلاعات ماتریس و بردار اطلاعات به عبارات هم‌ارزشان در فضای حالات سیستم تبدیل می‌شوند. البته پیش‌بینی فضای اطلاعاتی هم قابل انجام است.[۲۲]

این مقادیر به شرطی قابل محاسبه‌اند کهF و Q در زمان ثابت باشند. همچنینF و Q باید معکوس‌پذیر باشند.

تصفیه‌کننده تأخیر زمانی[ویرایش]

تصفیه‌کننده بهینه تخمینی بهینه از برای تأخیر ثابت با استفاده از مشاهدات تا ارائه می‌کند.[۲۳] این تخمین به کمک روابط قبلی و برای یک حالت تکمیل شده به صورت زیر بدست می‌آید:

به طوریکه:

  • و با یک فیلتر استاندارد کالمان تخمین زده شده‌است.
  • و متغیرهای جدیدی هستند که در فیلتر کالمان وجود نداشتند.
  • نتایج کالمان از رابطه زیر بدست می‌آیند:

به طوریکه و کوواریانس خطاهای پیش‌بینی شده و نتایج فیلتر استاندارد کالمان هستند. ()

اگر تخمین کوواریانس خطا را به صورت زیر تعریف کنیم:

تخمین بهتری از از رابطه زیر حاصل می‌شود.

تصفیه‌کننده بازه[ویرایش]

تصفیه‌کننده بهینه تخمینی بهینه از () با استفاده از مشاهداتی در بازه تا ارائه می‌کند. به این مبحث «تصفیه‌کننده کالمان» هم گفته می‌شود. الگوریتم‌های مختلفی با این منظور موجودند.

Rauch–Tung–Striebel[ویرایش]

الگوریتمی دو مرحله‌ای و کارا برای تصفیه کردن بازه است.[۲۴] گام رو به جلو مشابه فیلتر عادی کالمان است. تخمین‌های فیلتر شده پیشین و پسین، و ، در گام رو به عقب کاربرد دارند.

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

به طوریکه
تخمین حالت پسین زمان و تخمین حالت پیشین زمان است. درمورد کوواریانس نیز همین نوشتار به کار می‌رود.

تصفیه‌کننده Bryson–Frazier[ویرایش]

این روش جایگزینی برای الگوریتم RTS است که توسط بیرمن ارائه شده‌است.[۱۷] این روش همچنین در گام رو به عقب داده‌های بدست آمده در گام رو به جلوی فیلتر کالمان استفاده می‌کند. معادلات رو به عقب شامل محاسبات بازگشتی که پس از هر مشاهده جهت تصفیه حالت و کوواریانس به کار برده می‌شود.

معادلات بازگشتی عبارتند از:

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

یا

از مزیت‌های MBF عدم نیاز به یافتن معکوس ماتریس کوواریانس است.

تصفیه‌کننده کمینه واریانس[ویرایش]

این روش می‌تواند بهترین خطای ممکن را با استفاده از پارامترها و آماره‌های نویزی شناخته‌شده بدست آورد.[۲۵] این تصفیه‌کننده مدل کلی‌تری از فیلتر غیر علی وینر است. (non-causal Wiener filter)

محاسبات در دو گام انجام می‌شود. محاسبات گام رو به جلو در یک مرحله پیش‌بینی صورت می‌گیرد:

این عبارات معکوس وینر-هوف (Wiener-Hopf) است. نتیجه گام رو به عقب می‌تواند با استفاده بازگشت در زمان و از گام رو به جلو از محاسبه شود. در این حالت خروجی سیستم برابر است با:

با جایگذاری در رابطه بالا

این معادله برا ی فیلتر کالمان کمینه واریانس همواره یکسان است. حل معادلات بالا واریانس تحمین خطای خروجی را کمینه می‌کند. توجه کنید که در روش Rauch–Tung–Striebel فرض می‌شود که همه توزیع‌ها گاوسی هستند اما در اینجا چنین نیست.

نسخهٔ پیوسته در زمان این تصفیه‌کننده در[۲۶][۲۷] ارائه شده‌اند.

فیلترهای وزندار کالمان[ویرایش]

توابع وزندار جهت وزن دادن به میانگین توزیع توان خطا در یک بازه تغییر مشخص استفاده می‌شوند. فرض کنید - یک تخمین خطای خروجز توسط فیلتر کالمان و یک تابع تخصیص وزن علی باشد. روش بهینه‌ای که واریانس ( - ) را کمینه می‌کند استفاده از است.

نحوه طراحی فعلاً بی‌پاسخ است. یک راه آن شناسایی سیستمی که تخمین خطا را تولید می‌کند و قرارداد کردن به عنوان معکوس آن سیستم است.[۲۸] این روش می‌تواند جهت محاسبه خطای مربع میانگین استفاده شود تا هزینه فیلتر کاهش یابد. همچنین روش مشابهی جهت یافتن تصفیه‌کننده نیز وجود دارد.

فیلترهای غیرخطی[ویرایش]

مبنای فیلتر کالمان، تبدیلات خطی است. اما سیستم‌های پیچیده‌تر می‌توانند غیرخطی باشند. مسئله غیرخطی بودن می‌تواند در مشاهدات، مدلسازی یا هر دو بروز پیدا کند.

فیلتر کالمان بسط‌یافته - EKF[ویرایش]

در فیلتر بسط‌یافته کالمان (EKF) انتقال حالات و مشاهدات نیاز به توابع حالت خطی یا غیرخطی دارند. اینها توابعی مشتق‌پذیر هستند.

تابع f می‌تواند جهت محاسبه حالت پیش‌بینی شده از تخمین قبلی به کار رود. همچنین تابع h جهت یافتن مشاهده‌ای از حالت قبلی به کار می‌رود. توابع f و h نمی‌توانند مستقیماً به کوواریانس اعمال شوند، بلکه باید ماتریسی از مشتقات جزیی (ماتریس ژاکوبی) آنها محاسبه شود.

در هر بازه زمانی ماتریس ژاکوبی با استفاده از حالات پیش‌بینی شده قبلی محاسبه می‌شود. این ماتریس‌ها در معادلات فیلتر کالمان کاربرد دارد. در واقع این فرایند عمل خطی کردن توابع غیرخطی را حول تخمین فعلی شامل می‌شود.

فیلتر کالمان از نوع UKF - Unscented[ویرایش]

وقتی انتقال حالات و مشاهدات، یعنی توابع پیش‌بینی و آپدیت و ، کاملاً غیرخطی باشند، فیلتر کالمان بسط‌یافته کارایی پایینی خواهد داشت.[۲۹] به این دلیل که کوواریانس در عمل خطی‌سازی مدل غیرخطی افزایش می‌یابد. فیلتر کالمان Unscented از روش نمونه‌گیری قطعی که به Uncented Transform معروف است، استفاده می‌کند تا مجموعه نمونه مینیمالی از نقاط حول میانگین را جمع‌آوری کند. سپس این نقاط در تابع غیرخطی وارد شده تا میانگین و کوواریانس جدید حاصل شود. نتیجه برای سیستم‌های قطعی با قطعیت بیشتری مقدار میانگین و کوواریانس را ارائه می‌کند.[۳۰] این روش به عنوان روش مونت‌کارلو یا بسط تیلور برای آماره‌های پسین شناخته شده‌است. در واقع این روش ما را از محاسبه مستقیم ماتریس ژاکوبی که برای بعضی توابع بسیار پیچیده است، بی‌نیاز می‌کند.

پیش‌بینی

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

مجموعه‌ای شامل 2L + 1 به کمک حالت و کوواریانس از حالت بعد L حاصل می‌شود.

به طوریکه

iامین ستون ماتریس مربع ریشه است.

با توجه به تعریف ریشه مربعی در ماتریس بدست می‌آید:

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

نقاط بدست آمده به عنوان ورودی تابع انتقال f داده می‌شوند:

به طوریکه . از نقاط وزندار جهت محاسبه تخمین حالت و کوواریانس استفاده می‌شود

به طوریکه وزن‌های مربوط به حالات و کوواریانس از روابط زیر بدست می‌آیند:

و گستردگی نقاط را کنترل می‌کنند. مربوط به توزیع است.

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

آپدیت

پیش‌بینی حالت و کوواریانس مطابق بالا حاصل می‌شوند به جز زمانی که میانگین و کوواریانس نویز مشاهده شده در دست باشد.

مطابق قبل مجموعه‌ای شامل 2L + 1 نقطه درنظر می‌گیریم

اگر پیش‌بینی UKF استفاده شده‌باشد، نقاط به صورت زیر مستقلاً قابل محاسبه‌اند.

به طوریکه

نقاط به عنوان ورودی تابع h استفاده می‌شوند

نقاط وزندار جهت محاسبه مشاهده و کووارریانس مشاهدات پیش‌بینی شده استفاده می‌شوند.

کوواریانس ضربدری حالات و مشاهدات به صورت زیر محاسبه می‌شود

که برای محاسبه نتیجه فیلنر کالمان UKF استفاده می‌شود.

همانند فیلتر کالمان، حالت آپدیت شده از جمع حالت پیش‌بینی شده و وزندار کردن نتیجه کالمان محاسبه می‌شود

همچنین کوواریانس آپدیت شده برابر است با تفاضل کوواریانس پیش‌بینی شده و کوواریانس محاسبه پیش‌بینی شده که با نتجه کالمان وزندار شده‌است.

فیلتر کالمان - بوسی[ویرایش]

این فیلتر حالت پیوسته در زمان فیلتر کالمان می‌باشد که نام آن برگرفته از نام ریچارد اسنودن بوسی می‌باشد.[۳۱][۳۲]

این فیلتر مبتنی بر فضای نمونه حالت مدل شده است

به طوریکه و قوت نویزهای سفید و را بیان می‌کند.

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

به طوریکه

کوواریانس نویز مشاهده‌شده معادل کوواریانس خطای پیش‌بینی شده است. این دو کوواریانس تنها در حالت پیوسته زمان برابرند.[۳۳]

تمایز میان حالت پیش‌بینی و آپدیت فیلتر کالمان در اینجا وجود ندارد.

فیلتر کالمان هیبریدی[ویرایش]

بسیاری از سیستم‌های فیزیکی به صورت پیوسته در زمان مدل می‌شوند درحالیکه مشاهدات ورودی توسط یک پردازنده دیجیتال و به صورت گسسته در زمان به آن ارائه می‌شوند. به این ترتیب مدل سیستم و مشاهدات به این صورت بیان می‌شود:

به طوریکه

مقداردهی

پیش‌بینی

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

آپدیت

معادلات آپدیت همان معادلات فیلتر کالمان گسسته هستند.

منابع[ویرایش]

  1. Wolpert، Daniel و Zoubin Ghahramani. «Computational principles of movement neuroscience». Nature Neuroscience، 2000، 1212–7. doi:10.1038/81497. 
  2. Kalman، R. E.. «A New Approach to Linear Filtering and Prediction Problems». Journal of Basic Engineering، 1960، 35. doi:10.1115/1.3662552. 
  3. Roweis، S و Z Ghahramani. «A unifying review of linear gaussian models». Neural computation، 1999، 305–45. doi:10.1162/089976699300016674. PMID 9950734. 
  4. Hamilton, J. (1994), Time Series Analysis, Princeton University Press. Chapter 13, 'The Kalman Filter'
  5. Ishihara، J.Y. و M.H. Terra. «Robust Kalman Filter for Descriptor Systems». IEEE Transactions on Automatic Control، 2006، 1354. doi:10.1109/TAC.2006.878741. 
  6. Terra، Marco H. و Joao P. Cerri. «Optimal Robust Linear Quadratic Regulator for Systems Subject to Uncertainties». IEEE Transactions on Automatic Control، 2014، 2586–2591. doi:10.1109/TAC.2014.2309282. 
  7. Kelly, Alonzo (1994). "A 3D state space formulation of a navigation Kalman filter for autonomous vehicles". DTIC Document: 13.  2006 Corrected Version
  8. Reid، Ian و Hilary Term. «Estimation II». www.robots.ox.ac.uk. Oxford University. 
  9. Rajamani, Murali (October 2007). Data-based Techniques to Improve State Estimation in Model Predictive Control (PhD Thesis). University of Wisconsin–Madison. 
  10. Rajamani، Murali R. و James B. Rawlings. «Estimation of the disturbance structure from data using semidefinite programming and optimal weighting». Automatica، 2009. doi:10.1016/j.automatica.2008.05.032. 
  11. «Autocovariance Least-Squares Toolbox». Jbrwww.che.wisc.edu. 
  12. 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. 
  13. Spall، James C.. «The Kantorovich inequality for error analysis of the Kalman filter with unknown noise distributions». Automatica، 1995. doi:10.1016/0005-1098(95)00069-9. 
  14. Maryak، J.L. و J.C. Spall. «Use of the Kalman Filter for Inference in State-Space Models with Unknown Noise Distributions». IEEE Transactions on Automatic Control، 2004. doi:10.1109/TAC.2003.821415. 
  15. Anderson، Brian D. O. و John B. Moore. Optimal Filtering. New York: Prentice Hall، 1979. 129–133. شابک ‎۰-۱۳-۶۳۸۱۲۲-۷. 
  16. Thornton، Catherine L.. «Triangular Covariance Factorizations for Kalman Filtering». http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19770005172_1977005172.pdf، 15 October 1976. NASA Technical Memorandum 33-798. 
  17. ۱۷٫۰ ۱۷٫۱ Bierman، G.J.. «Factorization Methods for Discrete Sequential Estimation». Factorization Methods for Discrete Sequential Estimation، 1977. Bibcode1977fmds.book.....B. 
  18. Bar-Shalom، Yaakov، X. Rong Li و Thiagalingam Kirubarajan. Estimation with Applications to Tracking and Navigation. John Wiley & Sons، 2001. 308–317. شابک ‎۹۷۸-۰-۴۷۱-۴۱۶۵۵-۵. 
  19. Golub، Gene H. و Charles F. Van Loan. Matrix Computations. Johns Hopkins Studies in the Mathematical Sciences. ویرایش Third. Baltimore, Maryland: Johns Hopkins University، 1996. 139. شابک ‎۹۷۸-۰-۸۰۱۸-۵۴۱۴-۹. 
  20. Masreliez، C. Johan و R D Martin. «Robust Bayesian estimation for the linear model and robustifying the Kalman filter». IEEE Transactions on Automatic Control، 1977، 361–371. doi:10.1109/TAC.1977.1101538. 
  21. Lütkepohl، Helmut. Introduction to Multiple Time Series Analysis. Heidelberg: Springer-Verlag Berlin,، 1991. 435. 
  22. ۲۲٫۰ ۲۲٫۱ Gabriel T. Terejanu. «Discrete Kalman Filter Tutorial». 2012-08-04. 
  23. Anderson، Brian D. O. و John B. Moore. Optimal Filtering. Englewood Cliffs, NJ: Prentice Hall, Inc.، 1979. 176–190. شابک ‎۰-۱۳-۶۳۸۱۲۲-۷. 
  24. Rauch، H.E. و F. Tung. C. T. Striebel. «Maximum likelihood estimates of linear dynamic systems». AIAA Journal. C. T. Striebel، 1445–1450. Bibcode1965AIAAJ...3.1445.. doi:10.2514/3.3166. 
  25. Einicke، G.A.. «Optimal and Robust Noncausal Filter Formulations». IEEE Trans. Signal Processing، March 2006، 1069–1077. Bibcode2006ITSP...54.1069E. doi:10.1109/TSP.2005.863042. 
  26. Einicke، G.A.. «Asymptotic Optimality of the Minimum-Variance Fixed-Interval Smoother». IEEE Trans. Signal Processing، April 2007، 1543–1547. Bibcode2007ITSP...55.1543E. doi:10.1109/TSP.2006.889402. 
  27. Einicke، G.A. و J.C. Ralston. C.O. Hargrave و D.C. Reid و D.W. Hainsworth. «Longwall Mining Automation. An Application of Minimum-Variance Smoothing». IEEE Control Systems Magazine. C.O. Hargrave و D.C. Reid و D.W. Hainsworth، December 2008. doi:10.1109/MCS.2008.929281. 
  28. Einicke، G.A.. «Iterative Frequency-Weighted Filtering and Smoothing Procedures». IEEE Signal Processing Letters، December 2014، 1467–1470. Bibcode2014ISPL...21.1467E. doi:10.1109/LSP.2014.2341641. 
  29. Julier, Simon J.; Uhlmann, Jeffrey K. (1997). "A new extension of the Kalman filter to nonlinear systems". 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. 
  30. Gustafsson, Fredrik; Hendeby, Gustaf (2012). "Some Relations Between Extended and Unscented Kalman Filters". IEEE Transactions on Signal Processing 2: 545–555. 
  31. 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
  32. Jazwinski, Andrew H. , Stochastic processes and filtering theory, Academic Press, New York, 1970. ISBN 0-12-381550-9
  33. «An innovations approach to least-squares estimation--Part I: Linear filtering in additive white noise». IEEE Transactions on Automatic Control، 1968، 646–655. doi:10.1109/TAC.1968.1099025. 
  • مشارکت‌کنندگان ویکی‌پدیا، «Kalman filter»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد (بازیابی در ۲۱ مارس ۲۰۱۴).