فیلتر کالمان

از testwiki
پرش به ناوبری پرش به جستجو

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

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

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

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

مثال کاربردی

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

به عنوان مثال، برای کاربری آن در رادار، آنجا که علاقه‌مند به ردیابی هدف هستید، اطلاعات در مورد موقعیت، سرعت و شتاب هدف با حجم عظیمی از انحراف به لطف پارازیت در هر لحظه اندازه‌گیری می‌شود. فیلتر کالمن از پویایی هدف بهره می‌گیرد به این صورت که سیر تکاملی آن را کنترل می‌کند، تا تأثیرات پارازیت را از بین ببرد و یک برآورد خوب از موقعیت هدف در زمان حال (تصفیه کردن) و در آینده (پیش‌بینی) یا در گذشته (الحاق یا هموار سازی) ارائه می‌دهد. یک نسخه ساده شده فیلتر کالمن، فیلتر آلفا بتا الگو:به انگلیسی، که همچنان عموماً استفاده می‌شود از ثابت‌های static weighting به جای ماتریس‌های کواریانس استفاده می‌کند.

نام‌گذاری و تاریخچه توسعه

اگر چه توروالد نیکولای تیله الگو:دانمارکی و پیتر سوئرلینگ الگو:به انگلیسی قبلاً الگوریتم مشابهی ارائه داده بودند، این فیلتر به افتخار رودلف ئی کالمن، فیلتر کالمن نام‌گذاری شد و استنلی اف اشمیت الگو:به انگلیسی عموماً به خاطر توسعه اولین پیاده‌سازی فیلتر کالمن شهرت یافت. این رخداد هنگام ملاقات با کالمن در بنیاد پژوهشی ناسا روی داد و وی شاهد کارایی ایده کالمن در برآورد مسیر پرتاب پروژه آپولو بود، که منجر به الحاق آن به رایانه ناوبری آپولو شد. این فیلتر بر روی کاغذ در ۱۹۵۸ توسط سوئرلینگ، در ۱۹۶۰ توسط کالمن و در ۱۹۶۱ توسط کالمن و بوسی ایجاد و بسط داده شد.

این فیلتر بعضی مواقع فیلتر استراتونوویچ-کالمان-بوسی نامیده می‌شود، چرا که یک نمونه خاص از فیلتر بسیار معمولی و غیر خطی ای است که قبلاً توسط روسلان استراتنویچ ایجاد شده، در حقیقت معادله این نمونه خاص، فیلتر خطی در اسنادی که از استراتنویچ قبل از تابستان ۱۹۶۰، یعنی زمانی که کالمن، استراتنویچ را در کنفرانسی در مسکو ملاقات کرد به چاپ رسید بود.

در تئوری کنترل، فیلتر کالمن بیشتر به برآورد مرتبه دوم (LQE) اشاره دارد. امروزه تنوع گسترده‌ای از فیلتر کالمن به وجود آمده، از فرمول اصلی کالمن در حال حاضر فیلترهای: کالمن ساده، توسعه یافته اشمیت، اطلاعاتی و فیلترهای گوناگون جذر بیرمن، تورنتون و بسیاری دیگر به وجود آمده‌اند. گویا مرسوم‌ترین نوع فیلتر کالمن فاز حلقهٔ بسته (phase-locked loop) می‌باشد که امروزه در رادیوها، رایانه‌ها و تقریباً تمامی انواع ابزارهای تصویری و ارتباطی کاربرد دارد.

اساس مدل سیستم پویا

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

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

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

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

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

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

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

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

𝐱k=𝐅k𝐱k1+𝐁k𝐮k+𝐰k

به‌طوری‌که:

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

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

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

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

𝐳k=𝐇k𝐱k+𝐯k

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

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

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

شرح بیشتر

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

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

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

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

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

پیش‌بینی

تخمین حالت پیش‌بینی شده (پیشین) 𝐱^kk1=𝐅k𝐱^k1k1+𝐁k𝐮k
تخمین کوواریانس پیش‌بینی شده (پیشین) 𝐏kk1=𝐅k𝐏k1k1𝐅kT+𝐐k

به روز رسانی

مشاهده جدید وابسته 𝐲~k=𝐳k𝐇k𝐱^kk1
کوواریانس جدید وابسته 𝐒k=𝐇k𝐏kk1𝐇kT+𝐑k
نتیجه بهینه کالمن 𝐊k=𝐏kk1𝐇kT𝐒k1
تخمین حالت آپدیت شده (پسین) 𝐱^kk=𝐱^kk1+𝐊k𝐲~k
تخمین کوواریانس آپدیت شده (پسین) 𝐏k|k=(I𝐊k𝐇k)𝐏k|k1

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

ثابت‌ها

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

  • E[𝐱k𝐱^kk]=E[𝐱k𝐱^kk1]=0
  • E[𝐲~k]=0

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

همچنین:

  • 𝐏kk=cov(𝐱k𝐱^kk)
  • 𝐏kk1=cov(𝐱k𝐱^kk1)
  • 𝐒k=cov(𝐲~k)

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

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

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

بهینگی و کارایی

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

مثال کاربرد عملی

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

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

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

𝐱k=[xx˙]

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

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

𝐱k=𝐅𝐱k1+𝐆ak

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

𝐅=[1Δt01]

و

𝐆=[Δt22Δt]

به این ترتیب

𝐱k=𝐅𝐱k1+𝐰k

به‌طوری‌که 𝐰kN(0,𝐐) و

𝐐=𝐆𝐆Tσa2=[Δt44Δt32Δt32Δt2]σa2

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

𝐰k𝐆N(0,σa)

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

𝐳k=𝐇𝐱k+𝐯k

به‌طوری‌که

𝐇=[10]

و

𝐑=E[𝐯k𝐯kT]=[σz2]

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

𝐱^00=[00]

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

𝐏00=[0000]

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

𝐏00=[σx200σx˙2]

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

مشتقات

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

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

𝐏kk=cov(𝐱k𝐱^kk)

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

𝐏kk=cov(𝐱k(𝐱^kk1+𝐊k𝐲~k))

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

𝐏kk=cov(𝐱k(𝐱^kk1+𝐊k(𝐳k𝐇k𝐱^kk1)))

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

𝐏kk=cov(𝐱k(𝐱^kk1+𝐊k(𝐇k𝐱k+𝐯k𝐇k𝐱^kk1)))

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

𝐏k|k=cov((I𝐊k𝐇k)(𝐱k𝐱^kk1)𝐊k𝐯k)

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

𝐏k|k=cov((I𝐊k𝐇k)(𝐱k𝐱^kk1))+cov(𝐊k𝐯k)

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

𝐏kk=(I𝐊k𝐇k)cov(𝐱k𝐱^kk1)(I𝐊k𝐇k)T+𝐊kcov(𝐯k)𝐊kT

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

𝐏kk=(I𝐊k𝐇k)𝐏kk1(I𝐊k𝐇k)T+𝐊k𝐑k𝐊kT

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

مشتق نتیجه کالمن

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

𝐱k𝐱^kk

هدف ما کمینه کردن میانگین مربع این بردار خطا یعنی E[𝐱k𝐱^k|k2] است. این معادل کمینه کردن اثر تخمین پسین ماتریس کوواریانس 𝐏k|k است. با بسط رابطه بالا نتیجه می‌شود:

𝐏kk=𝐏kk1𝐊k𝐇k𝐏kk1𝐏kk1𝐇kT𝐊kT+𝐊k(𝐇k𝐏kk1𝐇kT+𝐑k)𝐊kT=𝐏kk1𝐊k𝐇k𝐏kk1𝐏kk1𝐇kT𝐊kT+𝐊k𝐒k𝐊kT

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

tr(𝐏kk)𝐊k=2(𝐇k𝐏kk1)T+2𝐊k𝐒k=0

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

𝐊k𝐒k=(𝐇k𝐏kk1)T=𝐏kk1𝐇kT

𝐊k=𝐏kk1𝐇kT𝐒k1

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

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

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

𝐊k𝐒k𝐊kT=𝐏kk1𝐇kT𝐊kT

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

𝐏kk=𝐏kk1𝐊k𝐇k𝐏kk1𝐏kk1𝐇kT𝐊kT+𝐊k𝐒k𝐊kT

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

𝐏kk=𝐏kk1𝐊k𝐇k𝐏kk1=(I𝐊k𝐇k)𝐏kk1

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

تحلیل درستی

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

𝐏kk=(𝐈𝐊k𝐇k)𝐏kk1(𝐈𝐊k𝐇k)T+𝐊k𝐑k𝐊kT

مقدار درست کوواریانس خطا را ارائه نمی‌کند. به عبارت دیگر، 𝐏kkE[(𝐱k𝐱^kk)(𝐱k𝐱^kk)T]. در بسیاری از کاربردهای بی‌درنگ، ماتریس‌های کوواریانس مورد استفاده در طراحی فیلتر کالمن با مقادیر واقعی ماتریس‌های کوواریانس تفاوت دارند. این تحلیل بیان می‌دارد که تخمین کوواریانس خطا زمانی که ماتریس‌های ورودی سیستم 𝐅k و 𝐇k باشند، نادرست است.

این بحث به حالتی که عدم قطعیت در مورد خطا داریم محدود می‌شود. حال مقادیر واقعی کوواریانس نویز را 𝐐ka و 𝐑ka تعریف می‌کنیم به‌طوری‌که مقادیر آن‌ها به ترتیب در روابط جایگزین 𝐐k و 𝐑k شوند. مقدار واقعی کوواریانس خطا را 𝐏kka و 𝐏kk با فیلتر کالمن محاسبه می‌شوند. اگر 𝐐k𝐐ka و 𝐑k𝐑ka، 𝐏kk=𝐏kka خواهد بود. با محاسبه مقدار واقعی کوواریانس خطا 𝐏kka=E[(𝐱k𝐱^kk)(𝐱k𝐱^kk)T] و جایگذاری 𝐱^kk و در نظر داشتن اینکه E[𝐰k𝐰kT]=𝐐ka and E[𝐯k𝐯kT]=𝐑ka معادلات بازگشتی برای 𝐏kka به‌دست می‌آید:

𝐏kk1a=𝐅k𝐏k1k1a𝐅kT+𝐐ka

و

𝐏kka=(𝐈𝐊k𝐇k)𝐏kk1a(𝐈𝐊k𝐇k)T+𝐊k𝐑ka𝐊kT

محاسبه 𝐏kk با فرض E[𝐰k𝐰kT]=𝐐k و E[𝐯k𝐯kT]=𝐑k انجام می‌شود. روابط بازگشتی برای 𝐏kka و 𝐏kk جز زمانی که 𝐐ka و 𝐑ka را به ترتیب به جای 𝐐k و 𝐑k در نظر بگیریم، یکتا هستند.

ریشه مربع

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

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

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

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

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

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

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

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

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

p(xkx0,,xk1)=p(xkxk1)

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

p(zkx0,,xk)=p(zkxk)

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

p(x0,,xk,z1,,zk)=p(x0)i=1kp(zixi)p(xixi1)

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

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

p(xkZk1)=p(xkxk1)p(xk1Zk1)dxk1

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

Zt={z1,,zt}

توزیع احتمال آپدیت از حاصلضرب پیش‌بینی و درست‌نمایی الگو:به انگلیسی به‌دست می‌آید.

p(xkZk)=p(zkxk)p(xkZk1)p(zkZk1)

به‌طوری‌که

p(zkZk1)=p(zkxk)p(xkZk1)dxk

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

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

p(xkxk1)=𝒩(Fkxk1,Qk)

p(zkxk)=𝒩(Hkxk,Rk)

p(xk1Zk1)=𝒩(x^k1,Pk1)

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

بخت حاشیه‌ای

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

  1. حالت پنهان 𝐱0 را از توزیع گاوسی پیشینp(𝐱0)=𝒩(𝐱^00,𝐏00) نمونه‌گیری کنید.
  2. حالت پنهان 𝐱0𝐳0 را از مدل مشاهده شده p(𝐳0𝐱0)=𝒩(𝐇0𝐱0,𝐑0) نمونه‌گیری کنید.
  3. برای k=1,2,3,
    1. حالت پنهان 𝐱k را از مدل انتقالیp(𝐱k𝐱k1)=𝒩(𝐅k𝐱k1+𝐁k𝐮k,𝐐k) محاسبه کنید.
    2. مشاهده 𝐳k را از مدل مشاهده شدهp(𝐳k𝐱k)=𝒩(𝐇k𝐱k,𝐑k) محاسبه کنید.

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

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

p(𝐳)=k=0Tp(𝐳k𝐳k1,,𝐳0)

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

p(𝐳)=k=0Tp(𝐳k𝐱k)p(𝐱k𝐳k1,,𝐳0)d𝐱k=k=0T𝒩(𝐳k;𝐇k𝐱k,𝐑k)𝒩(𝐱k;𝐱^kk1,𝐏kk1)d𝐱k=k=0T𝒩(𝐳k;𝐇k𝐱^kk1,𝐑k+𝐇k𝐏kk1𝐇kT)=k=0T𝒩(𝐳k;𝐇k𝐱^kk1,𝐒k)

رابطه بالا حاصلضرب چند توزیع احتمال گاوسی است که هر یک نمایانگر یک مشاهده zk تحت فیلتر 𝐇k𝐱^kk1,𝐒k است؛ که از آپدیت‌های بازگشتی محاسبه می‌شود. برای راحتی محاسبه بهتر است ازlog بخت حاشیه‌ای یعنی=logp(𝐳) استفاده شود. با فرض (1)=0 محاسبه به صورت بازگشتی انجام می‌شود.

(k)=(k1)12(𝐲~kT𝐒k1𝐲~k+log|𝐒k|+dylog2π)

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

فیلتر اطلاعاتی

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

Ykk=Pkk1
y^kk=Pkk1x^kk
به طریق مشابه کوواریانس و بردار مشاهدات هم با عبارات هم‌ارز اطلاعاتی جایگزین می‌شوند.
Ykk1=Pkk11
y^kk1=Pkk11x^kk1
با داشتن ماتریس و بردار مشاهدات که به صورت زیر تعریف شده‌اند
Ik=HkTRk1Hk
ik=HkTRk1zk
اطلاعات آپدیت شده به صورت زیر نوشته می‌شوند.[۲۲]
Ykk=Ykk1+Ik
y^kk=y^kk1+ik

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

Ykk=Ykk1+j=1NIk,j
y^kk=y^kk1+j=1Nik,j

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

Mk=[Fk1]TYk1k1Fk1
Ck=Mk[Mk+Qk1]1
Lk=ICk
Ykk1=LkMkLkT+CkQk1CkT
y^kk1=Lk[Fk1]Ty^k1k1

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

تصفیه‌کننده تأخیر زمانی

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

[x^ttx^t1tx^tN+1t]=[I00]x^tt1+[00I00I][x^t1t1x^t2t1x^tN+1t1]+[K(0)K(1)K(N1)]ytt1

به‌طوری‌که:

  • x^tt1 و ytt1=ztHx^tt1 با یک فیلتر استاندارد کالمن تخمین زده شده‌است.
  • x^tit و i=1,,N1 متغیرهای جدیدی هستند که در فیلتر کالمن وجود نداشتند.
  • نتایج کالمن از رابطه زیر به‌دست می‌آیند:
    • K(i)=P(i)HT[HPHT+R]1
    • P(i)=P[[FKH]T]i

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

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

Pi:=E[(xtix^tit)*(xtix^tit)z1zt]

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

PPi=j=0i[P(j)HT[HPHT+R]1H(P(i))T]

تصفیه‌کننده بازه-ثابت

تصفیه‌کننده یا هموارگر با بازه-ثابت بهینه تخمینی بهینه از x^kn (k<n) با استفاده از مشاهداتی در بازهz1 تا zn ارائه می‌کند. به این مبحث «تصفیه‌کننده کالمن» هم گفته می‌شود. الگوریتم‌های مختلفی با این منظور موجودند.

راوخ–تونگ–استریبل

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

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

x^kn=x^kk+Ck(x^k+1nx^k+1k)
Pkn=Pkk+Ck(Pk+1nPk+1k)CkT
به‌طوری‌که
Ck=PkkFk+1TPk+1k1
xkk تخمین حالت پسین زمان k و 𝐱k+1k تخمین حالت پیشین زمان k+1 است. درمورد کوواریانس نیز همین نوشتار به کار می‌رود.

تصفیه‌کننده برایسون-فریزر

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

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

Λ~k=HkTSk1Hk+C^kTΛ^kC^k
Λ^k1=FkTΛ~kFk
Λ^n=0
λ~k=HkTSk1yk+C^kTλ^k
λ^k1=FkTλ~k
λ^n=0

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

Pkn=PkkPkkΛ^kPkk
xkn=xkkPkkλ^k
یا
Pkn=Pkk1Pkk1Λ~kPkk1
xkn=xkk1Pkk1λ~k.

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

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

این روش می‌تواند بهترین خطای ممکن را با استفاده از پارامترها و آماره‌های نویزی شناخته‌شده به‌دست آورد.[۲۵] این تصفیه‌کننده مدل کلی‌تری از فیلتر غیرعلّی وینر الگو:به انگلیسی است.

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

x^k+1k=(FkKkHk)x^kk1+Kkzk
αk=Sk1/2Hkx^kk1+Sk1/2zk

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

y^kN=zkRkβk

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

y^kk=zkRkSk1/2αk

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

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

فیلترهای وزن‌دار کالمن

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

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

فیلترهای غیرخطی

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

فیلتر کالمن بسط‌یافته - ئی‌کِی‌اف

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

xk=f(xk1,uk)+wk
zk=h(xk)+vk

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

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

فیلتر کالمن از نوع یوکِی‌اف - بی‌اثر

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

پیش‌بینی

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

xk1k1a=[x^k1k1TE[wkT] ]T
Pk1k1a=[Pk1k100Qk]

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

χk1k10=xk1k1a
χk1k1i=xk1k1a+((L+λ)Pk1k1a)i,i=1,,L
χk1k1i=xk1k1a((L+λ)Pk1k1a)iL,i=L+1,,2L
به‌طوری‌که
((L+λ)Pk1k1a)i

iامین ستون ماتریس مربع ریشه (L+λ)Pk1k1a است.

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

BAAT

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

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

χkk1i=f(χk1k1i)i=0,,2L

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

x^kk1=i=02LWsiχkk1i
Pkk1=i=02LWci [χkk1ix^kk1][χkk1ix^kk1]T

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

Ws0=λL+λ
Wc0=λL+λ+(1α2+β)
Wsi=Wci=12(L+λ)
λ=α2(L+κ)L

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

اگر توزیع x گاوسی باشد، مقادیر طبیعی برابر α=103, κ=0 و β=2 هستند. β=2 بهینه است.

آپدیت

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

xkk1a=[x^kk1TE[vkT] ]T
Pkk1a=[Pkk100Rk]

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

χkk10=xkk1aχkk1i=xkk1a+((L+λ)Pkk1a)i,i=1,,Lχkk1i=xkk1a((L+λ)Pkk1a)iL,i=L+1,,2L

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

χkk1:=[χkk1TE[vkT] ]T±(L+λ)Rka

به‌طوری‌که

Rka=[000Rk]

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

γki=h(χkk1i)i=0..2L

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

z^k=i=02LWsiγki
Pzkzk=i=02LWci [γkiz^k][γkiz^k]T

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

Pxkzk=i=02LWci [χkk1ix^kk1][γkiz^k]T

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

Kk=PxkzkPzkzk1

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

x^kk=x^kk1+Kk(zkz^k)

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

Pkk=Pkk1KkPzkzkKkT

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

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

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

ddt𝐱(t)=𝐅(t)𝐱(t)+𝐁(t)𝐮(t)+𝐰(t)
𝐳(t)=𝐇(t)𝐱(t)+𝐯(t)

به‌طوری‌که 𝐐(t) و 𝐑(t) قوت نویزهای سفید 𝐰(t) و 𝐯(t) را بیان می‌کند.

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

ddt𝐱^(t)=𝐅(t)𝐱^(t)+𝐁(t)𝐮(t)+𝐊(t)(𝐳(t)𝐇(t)𝐱^(t))
ddt𝐏(t)=𝐅(t)𝐏(t)+𝐏(t)𝐅T(t)+𝐐(t)𝐊(t)𝐑(t)𝐊T(t)

به‌طوری‌که

𝐊(t)=𝐏(t)𝐇T(t)𝐑1(t)

کوواریانس نویز مشاهده‌شده 𝐑(t) معادل کوواریانس خطای پیش‌بینی شده 𝐲~(t)=𝐳(t)𝐇(t)𝐱^(t) است. این دو کوواریانس تنها در حالت پیوسته زمان برابرند.[۳۳]

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

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

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

𝐱˙(t)=𝐅(t)𝐱(t)+𝐁(t)𝐮(t)+𝐰(t),𝐰(t)N(𝟎,𝐐(t))𝐳k=𝐇k𝐱k+𝐯k,𝐯kN(𝟎,𝐑k)

به‌طوری‌که

𝐱k=𝐱(tk)

مقداردهی

𝐱^00=E[𝐱(t0)],𝐏00=Var[𝐱(t0)]

پیش‌بینی

𝐱^˙(t)=𝐅(t)𝐱^(t)+𝐁(t)𝐮(t), with 𝐱^(tk1)=𝐱^k1k1𝐱^kk1=𝐱^(tk)𝐏˙(t)=𝐅(t)𝐏(t)+𝐏(t)𝐅(t)T+𝐐(t), with 𝐏(tk1)=𝐏k1k1𝐏kk1=𝐏(tk)

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

آپدیت

𝐊k=𝐏kk1𝐇kT(𝐇k𝐏kk1𝐇kT+𝐑k)1
𝐱^kk=𝐱^kk1+𝐊k(𝐳k𝐇k𝐱^kk1)
𝐏kk=(𝐈𝐊k𝐇k)𝐏kk1

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

منابع

الگو:پانویس

الگو:سامانه‌های ناوبری ماهواره‌ای الگو:نظریه کنترل

  1. الگو:یادکرد ژورنال
  2. الگو:یادکرد ژورنال
  3. الگو:یادکرد ژورنال
  4. Hamilton, J. (1994), Time Series Analysis, Princeton University Press. Chapter 13, 'The Kalman Filter'
  5. الگو:یادکرد ژورنال
  6. الگو:یادکرد ژورنال
  7. الگو:Cite journal 2006 Corrected Version الگو:Webarchive
  8. الگو:یادکرد وب
  9. الگو:Cite thesis
  10. الگو:یادکرد ژورنال
  11. الگو:یادکرد وب
  12. Three optimality tests with numerical examples are described in الگو:Cite book
  13. الگو:یادکرد ژورنال
  14. الگو:یادکرد ژورنال
  15. الگو:یادکرد کتاب
  16. الگو:یادکرد ژورنال
  17. ۱۷٫۰ ۱۷٫۱ الگو:یادکرد ژورنال
  18. الگو:یادکرد کتاب
  19. الگو:یادکرد کتاب
  20. الگو:یادکرد ژورنال
  21. الگو:یادکرد کتاب
  22. ۲۲٫۰ ۲۲٫۱ الگو:یادکرد وب
  23. الگو:یادکرد کتاب
  24. الگو:یادکرد ژورنال
  25. الگو:یادکرد ژورنال
  26. الگو:یادکرد ژورنال
  27. الگو:یادکرد ژورنال
  28. الگو:یادکرد ژورنال
  29. الگو:Cite journal
  30. الگو:Cite journal
  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. الگو:یادکرد ژورنال