همونطور که میدانید بحث تخمینگر (Estimator) یا رویتگر (Observer) نه تنها در مهندسی کنترل (Control Engineering) و مهندسی برق (Electrical Engineering)، بلکه در تمامی رشتههای مهندسی و حتی غیر مهندسی از جمله مهندسی مکانیک (Mechanical Engineering)، مهندسی شیمی (Chemical Engineering)، مهندسی هوافضا (Aerospace Engineering)، روباتیک (Robotics)، اقتصاد (Economics)، بومشناسی (Ecology) و زیستشناسی (Biology) کاربرد فراوانی دارد. از طرف دیگر، فیلتر کالمن (Kalman Filter) به عنوان یک تخمینگر بهینه پرکاربردترین و محبوبترین رویتگر در تمامی کاربردهاست که مقالات و کتابهای بسیاری در مورد آن نوشته شده و هنوز هم کارهای تحقیقاتی زیادی در مورد آن انجام میشود. البته بحث تخمین به فیلتر کالمن و مشتقات آن محدود نشده و تخمینگرهای زیاد دیگری هم وجود دارند که استفاده میشوند.
من به عنوان یک مهندس کنترل در درسهای مختلفی که گذراندهام، به صورت جسته گریخته با یک سری اطلاعات گسسته در مورد تخمینگرها مواجه شدم؛ از جمله بحث رویتگرهای لیونبرگر در درس کنترل مدرن یا فیلتر کالمن در درس کنترل فرآیندهای اتفاقی، اما هیچوقت به صورت منظم و سازمان یافته تخمینگرها را نشناختم. بنابراین قصد دارم در این سری فیلمها، سیر تا پیاز تخمینگرها، انواع، کاربردها، نحوه تحلیل و طراحی، نحوه پیادهسازی در متلب و هر چیزی که ممکن است در این مسیر مورد نیاز باشد، خدمت شما تقدیم کنم.
برای این کار یکی از کتابهای خیلی خوب و جامع را به عنوان مرجع اصلی این سری فیلمها در نظر گرفتم. نام کامل این کتاب “تخمینگرهای بهینه حالت، کالمن، ∞H و روشهای غیرخطی” بوده و نویسند آن Dan Simon از دانشگاه کلیولند است. این کتاب مزایای زیادی دارد که در جلسه اول به بعضی از آنها اشاره کردهام. علاوه بر این کتاب که جنبه تئوری بحث را از آن دنبال میکنم، یک تولباکس (بر اساس متلب) رایگان و خیلی مفید را خدمت شما معرفی میکنم که شامل بسیاری از روشهای موجود بوده و از آن میتوان برای پیادهسازی اکثر تخمینگرها استفاده کرد. نام این تولباکس “فیلترینگ بهینه با استفاده از فیلترهای کالمن و اسموترها” بوده و تهیه کننده اصلی آن Simo Sarkka از دانشگاه آلتو فنلاند است که خودش در زمینه فیلتر کالمن و هموارسازها تحقیقات زیادی انجام داده است. با توجه به اینکه این تولباکس تمام روشهای موجود در کتاب رو پوشش نمیدهد، توابع مورد نیاز برای پیاده سازی این روشها به تدریج معرفی شده و نحوه اضافه کردن آنها به تولباکس و نحوه استفاده از آنها به طور کامل توضیح داده میشود.
به صورت خلاصه مباحث زیر در این سری فیلمها مورد بررسی قرار می گیرند:
- مقدمات ریاضی از جمله جبرخطی و سیستمهای دینامیکی و فرآیندهای تصادفی
- تخمین حداقل مربعات (Least Squares Estimation)
- انتشار حالت و کواریانس (Propagation of States and Covariance)
- فیلتر کالمن گسسته (Discrete Kalman Filter) و هموارساز آن (Kalman Smoother)
- انواع فرمولبندیهای دیگر فیلتر کالمن
- فیلتر کالمن برای سیستمهای دارای نویز رنگی (Colored Noise) و همبسته (Correlated)
- فیلتر کالمن پیوسته Kalman Bucy Filter) KBF)
- فیلتر ∞H
- ترکیب فیلتر ∞H و کالمن
- فیلتر کالمن توسعه یافته Extended Kalman Filter) EKF) و هموارساز آن (EKF Smoother)
- فیلتر کالمن بدون بو! Unscented Kalman Filter) UKF) و هموارساز آن (UKF Smoother)
- فیلتر ذرهای (Particle Filter)
- فیلتر Extended Kalman Particle Filter) EKPF)
- فیلتر کالمن مکعبی Cubature Kalman Filter) CKF) و هموارساز آن (CKF Smoother)
- فیلتر کالمن گاوس-هرمیت Gauss-Hermite Kalman Filter) GHKF) و هموارساز آن (GHKF Smoother)
- فیلتر کالمن تفاضل مرکزی Central Difference Kalman Filter) CDKF)
- فیلتر کالمن برای سیستمهای دارای مدل چندگانه (سیستمهای سویچینگ مارکوف) Interacting Multiple Models Filters) IMM)
پیش نیازها: آشنایی اولیه با کدنویسی در متلب
لطفا قبل از دیدن ادامه پست حتما این ویدئو را ببینید:
برای اطلاع از فهرست موضوعی تمامی جلسات اینجا کلیک کنید
نکته آخر اینکه شاید برایتان جالب باشد که دکتر کیوان افشار مقاله زیر را با راهنمایی دکتر جوادی از جلسه 108 این مجموعه چاپ کرده است.
Mass estimation and adaptive output feedback control of nonlinear electromagnetic levitation system
برای دیدن جزئیات هر جلسه شامل: پیش نمایش هر جلسه، موضوع هر جلسه، مدت زمان هر جلسه و …. به تب فهرست جلسات بروید
برای خرید یک یا چند فصل به تب خرید موضوعی بروید.
- لینک دانلود فایل بلافاصله بعد از پرداخت وجه به نمایش در خواهد آمد.
- همچنین لینک دانلود به ایمیل شما ارسال خواهد شد به همین دلیل ایمیل خود را به دقت وارد نمایید.
- ممکن است ایمیل ارسالی به پوشه اسپم یا Bulk ایمیل شما ارسال شده باشد.
- در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.
پیام
با سلام. ممنونم بابت اموزش خوبتان. من تا فصل 8 آموزش شما را خرید کرده ام.
من برای یک پلنت خطی پیوسته که ناپایدار است (یک ورودی و دو خروجی و چهار متغییر حالت) یک فیلتر کالمن طراحی کرده ام ( با نویز فرایند و اندازه گیری نا همبسته) . تا ثانیه 9 پایدار از و بعد هر چهار متغییر حالت واقعی پلنت به سمت بی نهایت میل میکند و تخمینها نیز این مقادیر واقعی را دنبال میکند. دلیلش چیست که هر چهار متغییر حالت واقعی پلنت بعد از 9 ثانیه به سمت بی نهایت میل میکند در صورتی که اصلا ورودی کنترلی به سیستم نداده ام . مشکل در چیست و باید چکارش کنم؟
( ورودی کنترلی در پلنت من وجود ندارد. صفر در نظر گرفته ام)
( ماتریس Q را 4*4 و ماتریس R را 2*2 و هر دو را قطری در نظر گرفته ام که تمامی درایه های روی قطر اصلی را یک گرفته ام)
( ماتریس P در حالت اولیه را (eye(4 و حالت اولیه تمامی متغییرهای حالت را صفر در نظر گرفته ام)
با تشکر
علی جوادی
@پیام,
سلام
خوب وقتی سیستم ناپایدار باشه طبیعتا بعد یه مدت حالتها به سمت بینهایت میل می کنند مگر اینکه یک ورودی کنترلی مناسب اعمال بشه تا سیستم رو پایدار کنه.
البته حتی اگه سیستم ناپایدار هم باشه تخمین انجام میشه ولی خوب حالتها به سمت بینهایت میل می کنند و تخمینها هم تعقیبش می کنند (به سمت بینهایت میل میکنند)
زهرا
ممنون از پاسختون.
ممنون میشم راهنماییم بفرمایید. من در تعریف مساله ام مشکل دارمو کمی گیج شدم!!! که اصلا از فیلتر کالمن باید استفاده کنم یا نه!! (با توجه به توضیحات ابتدایی جلسه 14)
x’=Ax+Bu+Gw
A B G ماتریس های ثابت
x حالات قابل اندازه گیری
u ورودی قابل اندازه گیری
w اغتشاش غیر قابل اندازه گیری
درواقع حالت ها رو میتونم اندازه بگیرم و احتیاجی به تخمین حالات نیست. مشکلم اغتشاشات غ ق اندازه گیریه.
راه حل این مشکل فیلتر کالمنه؟ این که اغتشاشات غ ق اندازه گیریو جز حالات سیستم در نظر بگیرم و در واقع اغتشاشات رو تخمین بزنم؟ یا روش دیگه ای هست؟
کدوم جلسه کمک کننده اس؟ جلسات 14 به بعد ؟
سپاس از لطفتون.
علی جوادی
@زهرا,
شما باید هدفتون رو مشخص کنید که آیا می خواهید اغتشاش رو تخمین بزنید یا اثر اغتشاش رو بر روی عملکرد سیستم کاهش بدید؟ معمولا تخمین اغتشاش به تنهایی هدف نیست و در نهایت هدف کاهش اثر اغتشاش نامعلومه.
اگر هدف فقط تخمین اغتشاش باشه، باید از روشهای رویت اغتشاش (disturbance observer) استفاده کنید. برای اطلاعات بیشتر در این زمینه با مدیر سایت (که تخصصش همین موضوعه) صحبت کنید.
اما اگر هدفتون کاهش اثر اغتشاش باشه، من تو یه سری فیلم جداگانه کنترل مقاوم این نوع سیستمها رو مفصل بررسی کردم که از ابزار LMI استفاده میکنه. این سری فیلمها رو میتونید تو آدرس زیر ببینید:
https://www.controlref.com/robust-h-infinity
ساسان
با سلام
می خواستم از فیلتر کالمن در هیدرلوژی در تز دکترام استفاده کنم استادی برای مشاوره در این زمینه می شناسید که معرفی کنید.
علی جوادی
@ساسان,
سلام
دکتر بیژن معاونی در دانشکده راه آهن دانشگاه علم و صنعت ایران
زهرا
سلام. مرسی از اموزشتون عالی.
یه سوال داشتم. من برای یه سیستم میتونم همزمان از کنترلر پیش بین و فیلتر کالمن استفاده کنم؟ کدوم جلسه از اموزش به من میتونه کمک کنه؟ چون وقت کافی برای یادگیری همه ندارم.
سپاس
علی جوادی
@زهرا,
با سلام و تشکر از لطف شما
شما فیلتر کالمن رو میتونید با هر کنترل کننده ای استفاده کنید ولی باید توجه داشته باشید که تضمینی برای پایداری سیستم در اینصورت وجود نداره به جز حالتهای خاص مثل سیستمهای خطی. برای اطلاعات بیشتر در این مورد به جلسه اول (حدودا دقیقه 60) مراجعه کنید.
برای مثالی از این حالت که کنترل کننده غیرخطی با چند توع فیلتر کالمن مختلف کوپل شده به جلسه 108 مراجعه کنید. مشابه کاری که تو این جلسه شده میتونید کنترل کننده های دیگه (از جمله پیش بین) رو هم با انواع تخمینگرها (از جمله کالمن) ترکیب کنید
پیام
با سلام
اگر مدل سیستم در محیط سیمولینک در متلب فانکشن انجام شود آیا گسسته است یا پیوسته؟
من میخاهم برای پلنتم که خطی است از فیلتر کالمن به عنوان رویتگرم استفاده کنم و سیستمم را درون متلب فانکشن به صورت فضای حالت نوشته ام. خواستم بدانم نوشتن مدل در محیط سیمولینک و در متلب فانکشن باعث میشود سیستم گسسته شود ؟
علی جوادی
@پیام,
سلام
همونطور که از اسمش پیداست، متلب فانکشن فقط برای ساختن یه تابع در محیط سیمولینک کاربرد داره و سیستم رو تعریف نمیکنه. برای تعریف سیستم باید علاوه بر تعریف توابع، انتگرالگیر (برای سیستمهای پیوسته) یا بلوک تاخیر واحد (برای سیستمهای گسسته) استفاده بشه
حسین
با سلام و خسته نباشید،
در جلسات آموزشی در مورد Ensemble Kalman Filter هم توضیحاتی داده شده؟
علی جوادی
@حسین,
سلام
خیر. در مورد ENKF در این سری فیلمها چیزی گفته نشده
پیام
با سلام . توی اموزش شما فیلتر کالمن تکمیلی تدریس شده ؟
کدوم قسمته؟
واسه تلفیق داده های شتاب سنج و ژایروسکوپ و بدست اوردن زاویه خواستم
علی جوادی
@پیام,
سلام
قسمت فیلتر کالمن تکمیلی گفته شده ولی مربوط به تلفیق داده های سنسورها نیست. در بخش تکمیلی فیلترهای مهمی که داخل کتاب Dan Simon وجود نداره گفته شدند که شامل جلسات 97 تا 108 میشه.
برای تلفیق شما از هر فیلتر غیرخطی میتونید استفاده کنید از جمله EKF، UKF و فیلترهایی که در بخش تکمیلی گفته شدند.
برای اطلاعات بیشتر به توضیحات هر درس مراجعه کنید
ساسان
با سلام
اگر یک یا چند معادله اندازه گیری بر روی پارامترها داشته باشیم چطور باید همزمان با معادله اندازه گیری حالت بر روی فیلتر کالمن اعمال کنیم؟؟؟
علی جوادی
@ساسان,
سلام
سوال خیلی نامفهمومه. آیا منظورتون اینه که علاوه بر حالت چطور میشه پارامتر رو هم تخمین زد؟ یا اینکه پارامترها رو با یه نویزی اندازهگیری کردید و می خواهید که اونها رو تخمین بزنید؟
لطفا سوال رو کامل بپرسید
ساسان
@علی جوادی,
بله مورد دوم پارامتر هم با نویز اندازه گیری کردیم و می خواهیم اونا رو هم تخمین بزنیم علاوه بر اندازه گیری حالت
علی جوادی
@ساسان,
کافیه پارامترها رو به بردار حالت اضافه کنید. اسم این روش تخمین دوگانه هستش که در جلسه 88 مفصل بررسی شده
ساسان
@علی جوادی,
در جلسه 88 اندازه گیری ما توی حالت بود بعد می خواستیم پارامتر رو هم علاوه بر حالت،تخمین بزنیم ولی اگر ما بخواهیم علاوه بر حالت،اندازه گیری پارامتر رو هم اضافه کنیم پس شبیه همونه تشکر
علی جوادی
@ساسان,
بله دقیقا
یاسر
سلام،
خیلی ممنون از مجموعه فوق العاده شما،
فیلم راهنما رو هم دیدم ولی متوجه نشدم، که مباحث تیونینگ فیلتر کالمن رو کجا و چجوری گفتین؟ یعنی مباحث و روش های مربوط به انتخاب ماتریس های Q و R و….
علی جوادی
@یاسر,
با سلام و تشکر از لطف شما
من متوجه نشدم منظورتون تعیین ماتریسهای Q و R دقیقا تو چه روشی هستش؟ معمولا برای فیلتر کالمن کواریانس و تخمین اولیه جزو پارامترهای تنظیم هستند که مفصل توضیح دادم. سوالتون رو دقیقتر بپرسید (کدوم جلسه و کدوم روش)
پیام
با سلام
اگر با استفاده از انتگرالگیری از دادههای ژیروسکوپ میشه زاویه رو محاسبه کرد و مشکلش اینه که بعد یه مدت (به خاطر نویز و خطاهای مختلف) دریفت به وجود میاد و خطای افزایشی ایجاد میشه. بنابراین از دادههای سنسورهای دیگه مثل شتاب سنج هم استفاده میشه تا این خطا به وجود نیاد.
خواستم بدونم از داده های شتاب سنج ما چه استفاده ای میکنیم؟ از داده های ژیروسکوپ میشه زاویه رو محاسبه کرد، از داده های شتابسنج چه استفاده ای میتوان کرد؟ عملیات خاصی روی داده های ان باید انجام دهیم؟
با تشکر
علی جوادی
@پیام,
اولا که مستقیما از داده ها استفاده نمیشه ولی میتونه کمک کنه چون همیشه میتونه جهت جاذبه زمین رو به ما نشون بده (حداقل زوایای رول و پیچ رو خیلی کمک میکنه). برای اطلاعات بیشتر به کتابهای ناوبری مراجعه کنید