احتمالا برای شما هم پیش اومده که در یک مقاله یا کتاب به جایی رسیدید که باید یک ناتساوی ماتریسی خطی (یا LMI) رو حل کنید و در بدر دنبال یک نفر هستید تا در کوتاهترین زمان ممکن حل این نوع ناتساوی ها رو به شما یاد بده تا مجبور نباشید زمان قابل توجهی صرف کنید و از منابع مختلف دنبال راه حل باشید. اگر شما هم جزو این دسته از محققین هستید دیگه نگران نباشید. در این پست قراره تمام جزییات و کلیات نامساوی ماتریسی خطی (و حتی غیرخطی) با نحوه حل اونها در متلب و با دو روش تولباکس متلب و YALMIP به روش ساده و با مثالهای مفصل توضیح داده بشه. اگر با این فیلمهای آموزشی همراه شده و مرحله به مرحله مثالها رو پیش برید بعد از این 11 جلسه قادر خواهید بود حل کننده (solver) مناسب رو برای مساله خودتون انتخاب کرده و ناتساویهای ماتریسی خودتون رو باهاش حل بکنید. بعد از تشریح کامل دو روش بالا یک مثال از طراحی کنترل کننده برای سیستم شناور مغناطیسی از یک مقاله IEEE با استفاده از LMI خدمت شما ارایه میشه (به همراه شبیه سازی در محیط سیمولینک) تا مطلب کامل جا بیافته. با ما همراه باشید…
پیشنیازها: آشنایی اولیه با جبر خطی و تئوری سیستمهای کنترل خطی – آشنایی با کدنویسی در محیط متلب
جلسه اول: مقدمات ریاضی و تعریف ناتساوی های ماتریسی
در این جلسه ابتدا مقدمات ریاضی و تعریف ناتساوی های ماتریسی به همراه مفاهیم مجموعه های محدب و نامحدب توضیح داده میشه و چند مثال هم از هر دو نوع مجموعه ارایه میشود. سپس نحوه تبدیل ناتساویهای خام به حالت استاندارد تشریح شده و در انتها روشهای مختلف حل عددی ناتساویهای ماتریسی به طور خلاصه مطرح میشود. جهت ارزیابی شما عزیزان جلسه اول رایگان تقدیم میشود.
مدت زمان آموزش: 49 دقیقه
محتویات درس: فیلم با کیفیت 720p و پاورپوینت درس
حجم فایل: 65 مگابایت
پیش نمایش جلسه اول:
جلسه دوم: تعیین متغیرهای ماتریسی و وارد کردن جملات LMI در تولباکس متلب
در این جلسه کار با تولباکس LMI متلب را شروع کرده و مراحل مختلف ایجاد یک LMI ارایه میشود. به طور خاص نحوه تعیین متغیرهای ماتریسی و همینطور نحوه وارد کردن جملات داخلی و خارجی به همراه مثال در محیط متلب تشریح میشود.
مدت زمان آموزش: 69 دقیقه
محتویات درس: فیلم با کیفیت 720p- پاورپوینت درس- کد متلب مربوط به مثالها- فایل pdf راهنمای استفاده از تولباکس متلب و لیست مرتب شده تمام دستورات مرتبط با تولباکس LMI متلب
حجم فایل: 89 مگابایت
پیش نمایش جلسه دوم:
جلسه سوم: معرفی دستور feasp تولباکس متلب جهت حل LMI
در این جلسه دستورات مختلفی که برای کسب اطلاعات تکمیلی از متغیرها و LMI های تعریف شده در متلب وجود دارند بررسی شده و با مثال تشریح می شوند. در ادامه یکی از دستورات مهم تولباکس LMI متلب که برای حل مسایل ناتساوی مورد استفاده قرار میگیرد معرفی شده و یک مثال از تحلیل پایداری سیستم کنترلی برای آن ارایه میشود.
مدت زمان آموزش: 68 دقیقه
محتویات درس: فیلم- پاورپوینت درس و کد متلب مربوط به مثالها
حجم فایل: 100 مگابایت
پیش نمایش جلسه سوم:
جلسه چهارم: معرفی دستورات mincx و gevp تولباکس متلب جهت حل مسایل مینیممسازی
در این جلسه ابتدا دستور mincx که برای حل ناتساویهای ماتریسی با شرط مینیمم سازی (یا ماکزیمم سازی) استفاده میشود به طور کامل تشریح شده و مثال جلسه قبل با شرط مینیمم و ماکزیمم سازی دوباره با این دستور حل میشود. همچنین دستور gevp که مربوط به حل مسایل مینیمم سازی مقدار ویژه تعمیم یافته میباشد تشریح میشود.
مدت زمان آموزش: 51 دقیقه
محتویات درس: فیلم- پاورپوینت درس و کد متلب مربوط به مثالها
حجم فایل: 69 مگابایت
پیش نمایش جلسه چهارم:
جلسه پنجم: طراحی کنترل کننده فیدبک حالت برای سیستم خطی و حل LMI های آن با تولباکس متلب
در این جلسه ابتدا دستورات باقیمانده که مربوط به ارزیابی LMI بعد از حل آن است معرفی میشوند. در ادامه یک مثال از طراحی کنترل کننده فیدبک حالت برای سیستم خطی به شکل LMI فرمول بندی شده و با تولباکس LMI متلب حل میگردد. نهایتا دو ترفند بسیار پرکاربرد تبدیل متجانس (Congruent transformation) و لم شور (Schur complement) برای LMI بیان میشوند.
مدت زمان آموزش: 53 دقیقه
محتویات درس: فیلم- پاورپوینت درس و کد متلب مربوط به مثالها
حجم فایل: 76 مگابایت
پیش نمایش جلسه پنجم:
جلسه ششم: معرفی تولباکس یالمیپ برای حل LMI و نجوه دانلود و نصب آن
از این جلسه معرفی تولباکس YALMIP شروع میشود و ابتدا توضیحات مقدماتی درباره آن و مزایای آن نسبت به تولباکس متلب ارایه میشود. در ادامه تمامی مراحل دانلود و نصب این تولباکس بر روی متلب به صورت گام به گام تشریح میشود. در انتها نحوه ارزیابی نصب درست تولباکس و solver های موجود در آن توضیح داده میشود.
توجه: اخیرا ظاهر و پوسته سایت YALMIP دچار تغییر و تحول شده و با صفحات نشان داده شده در فیلمهای حاضر قدری متفاوت است. با توجه به اینکه محتویات سایت YALMIP تغییر پیدا نکرده و تنها محل لینکها تغییر پیدا کرده (مثلا لینکهای ستونی سمت چپ به بالای صفحه انتقال پیدا کرده)، فیلمهای موجود دوباره ضبط نشده و همین فیلمها قابل استفاده هستند.
مدت زمان آموزش: 47 دقیقه
محتویات درس: فیلم آموزشی
حجم فایل: 96 مگابایت
پیش نمایش جلسه ششم:
جلسه هفتم: تعریف متغیرهای ماتریسی و قیدها با استفاده از تولباکس یالمیپ
در این جلسه ابتدا نحوه تعریف متغیرهای ماتریسی با مثالهای متنوع در محیط متلب توضیح داده شده و سپس چگونگی تعریف قیدها یا همان ناتساویهای ماتریسی جهت استفاده در YALMIP با چندین مثال تشریح میشود.
مدت زمان آموزش: 62 دقیقه
محتویات درس: فیلم آموزشی- فایل پاورپوینت و کد مثالهای نوشته شده در این جلسه
حجم فایل: 85 مگابایت
پیش نمایش جلسه هفتم:
جلسه هشتم: تعریف تابع هزینه و حل LMI با استفاده از تولباکس یالمیپ
در این جلسه نحوه تعریف تابع هزینه، گزینه های اختیاری مربوط به YALMIP (به جز solver ها)، چگونگی حل مساله و در نهایت روش استخراج متغیرهای ماتریسی تشریح شده و مثال تحلیل پایداری که جلسات پیش با تولباکس متلب حل شده بود، با YALMIP هم حل میشود.
مدت زمان آموزش: 71 دقیقه
محتویات درس: فیلم آموزشی- فایل پاورپوینت و کد مثالهای نوشته شده در این جلسه
حجم فایل: 114 مگابایت
پیش نمایش جلسه هشتم:
جلسه نهم: معرفی و تشریح نحوه دانلود و نصب سه solver پرکاربرد به نامهای PENBMI ، SDPT3 و MOSEK
مباحث باقیمانده از توضیحات مربوط به YALMIP از جمله solver ها (داخلی و خارجی) در این جلسه مورد بحث قرار میگیرد. به طور خاص نحوه دانلود و نصب سه solver پرکاربرد به نامهای PENBMI ، SDPT3 و MOSEK به طور کامل تشریح شده و مثال تحلیل پایداری سیستم خطی که در جلسات قبل با تولباکس متلب حل شده بود، با این سه solver نیز حل میگردند.
مدت زمان آموزش: 73 دقیقه
محتویات درس: فیلم آموزشی- فایل پاورپوینت و کد مثالهای نوشته شده در این جلسه
حجم فایل: 169 مگابایت
پیش نمایش جلسه نهم:
جلسه دهم: معرفی دینامیک غیرخطی قطار مغناطیسی شناور و خطیسازی حول نقطه کار
در این جلسه تکنولوژیهای موجود در ساخت قطارهای مغناطیسی معرفی شده و دینامیک غیرخطی شناورسازی یک قطار مغناطیسی با تکنولوژی EMS از یک مقاله IEEE ارایه میشود. در ادامه نقاط تعادل و نامی دینامیک استخراج شده و حول نقطه مورد نظر خطیسازی ژاکوبی انجام میشود تا ماتریسهای مورد نیاز برای طراحی کنترلکننده فیدبک حالت بدست آورده شود.
مدت زمان آموزش: 66 دقیقه
محتویات درس: فیلم آموزشی و کلیپی کوتاه از عملکرد قطار مغناطیسی- فایل پاورپوینت و مقاله IEEE حاوی دینامیک شناورسازی قطار مغناطیسی
حجم فایل: 116 مگابایت
پیش نمایش جلسه دهم:
جلسه یازدهم: طراحی و شبیهسازی فیدبک حالت برای سیستم شناور مغناطیسی
در این جلسه ابتدا دینامیک غیرخطی شناور مغناطیسی در محیط متلب و در نقطه کار دلخواه خطی شده و سپس با هر دو روش تولباکس LMI متلب و YALMIP مساله پایدارسازی سیستم خطی شده با فیدبک حالت حل میشود. همچنین بعد از بدست آوردن بهره کنترل کننده با استفاده از solver های PENBMI، SDPT3 و MOSEK در محیط YALMIP و بهره بدست آمده از تولباکس متلب، سیستم حلقه بسته (با دینامیک غیرخطی) در محیط سیمولینک شبیه سازی شده و نتایج حاصل از این بهره ها باهم مقایسه شده است.
مدت زمان آموزش: 67 دقیقه
محتویات درس: فیلم آموزشی- فایل پاورپوینت و کدها و فایلهای شبیه سازی سیستم حلقه بسته
حجم فایل: 113 مگابایت
پیش نمایش جلسه یازدهم:
مطالعه بیشتر
Elham
با سلام و عرض ادب.
ضمن تشکر از مطالب بسیار خوب و عالی که در اختیار مخاطبین قرار می دهید.
بنده می خواهم مسئله decay rate و همزمان سازی را در سیستم های آشوب با استفاده از مدل T-Sحل کنم که این مسئله در نهایت به چند LMI منجر خواهد شد که در این LMI ها باید پارامتر آلفا را ماکزیمم کنم(decay rate) و پارامتر بتا را مینیمم کنم (لازم به ذکر است که بتا باید یک مقدار مثبت بسیار کوچک باشد)
اما متاسفانه پس از حل LMI ها مقادیری که ماتریس بهره به خود میگیرد بسیار بزرگ می باشد و باعث ناپایداری سیستم می شود.
که برای حل این مسئله هم از yalmip استفاده کرده ام و هم از متلب که متاسفانه هر دو جواب نمیدهد.
میخواستم ببینم برای حل اینگونه LMI ها روشی غیر از روش های تکراری وجود ندارد؟
واین که در کل اینگونه LMI ها را باید چگونه حل کرد؟
علی جوادی
@Elham,
با سلام و تشکر از لطف شما
اولا که باید ببینید ناتساوی های شما نسبت به آلفا و بتا خطی هستند یا نه. اگر خطی نباشند، شما دیگه LMI ندارید و ممکنه BMI یا یه ناتساوی غیرخطی باشه.
ثانیا معلوم نیست شما چرا از روش تکراری استفاده کردید. اگر LMI داشته باشید نیازی به روش تکراری نیست و به راحتی با تولباکس متلب یا یالمیپ قابل حله.
ثالثا بزرگ بودن بهره مهم نیست بلکه مهم اینه که LMI ها feasible شده باشند و معیار مورد نظر مینیمم یا ماکزیمم شده باشه.
توصیه میکنم اول مطمین بشید که مساله شما یک مساله بهینه سازی محدب هست و بعد از تولباکس متلب یا یالمیپ استفاده کنید
مسعود
با سلام من پروزه قطار شناورlmiرو دانلود کردم خطای زیرو میده و برنامه ران نمیشه تا نتیجه رو ببینم.
خطا به صورت زیر استundefined function or variable ‘sdpvar’
Error in state-feedback-maglev(line27)
xy=sdpvar(n,n);Yy=sdpvar(ni,n);
علی جوادی
@مسعود,
شما تولباکس YALMIP رو نصب نکردید و بنابراین MATLAB دستوراتی مثل sdpvar رو نمیشناسه. توضیحات تکمیلی در مورد نحوه دانلود و نصب این تولباکس در جلسه ششم وجود داره. همچنین نحوه استفاده از دستورات این تولباکس و solver های مختلف در جلسات هفتم تا نهم به طور کامل توضیح داده شده
مسعود
مهندس جان من تا حالا چهار تا سوال پرسیدم همش تفره میرین با کلمات بازی میکنین
علی جوادی
@مسعود,
مطمین باشید اگه جواب سوالها رو بدونم، کمک میکنم. در مورد آخر هم باید دقیقا خطا رو بگید تا بتونم کمک کنم هرچند تمام جزییات داخل فیلمها موجوده
مسعود
با سلام و خسته نباشید اقای دکتر من تعو این بخش پروژه مربوط به قطار شناورو دانلود کردم اونو میخواستم ران کنم نتایجشو ببینم نمیدونم چرا چیزی نمیاد ایا چیز خاصی باید نصب کنم همراه متلب لطفا کمکم کنید اگه میتونید توضیحات بیشترو به ایمیلم بفرستین
با تشکر.
علی جوادی
@مسعود,
بهتره همینجا مساله مطرح بشه تا اگر کسه دیگه ای همین خطا رو دید نحوه رفعش رو هم ببینه.
دقیقا چه خطایی می بینید؟
مسعود
محاسبه کران بالای مو .بخاطر بیاورید که کران بالای مقادیر تکین ساختار یافتهssv
علی جوادی
@مسعود,
در این مورد اطلاعی ندارم
مسعود
با سلام محاسبه کران بالای( مو) muرا میخواستم فردا امتحان داریم. در درس لطفا کمکم کنید.
lmi
علی جوادی
@مسعود,
من هنوز صورت سوال رو درست نفهمیدم ولی اگر منظورتون میو در روش سنتز میو باشه، من در این زمینه اطلاعی ندارم
مسعود
با عرض سلام .لطفا محاسبه کران بالای MUرا با تحلیل توضیح دهید یه روز وقت دارم سوال امتحانی هس.و سوال بعدی چگونه میتوان مساعل بهینه سازی lmi زمان پیوسته را به زمان گسسته تعمیم داد و به عنوان مثال از شر هورویتز بودن ماتریس ماتریسA شرطschurبودن ان را بدست اورید.
علی جوادی
@مسعود,
با سلام
نگفتید که MU مخفف چی هست؟
جواب سوال دوم رو هم نمیدونم. اگر دقت کنید من در تمام فیلمها چه LMI و چه کنترل مقاوم فقط در مورد سیستمهای زمان پیوسته صحبت کردم و سیستمهای زمان گسسته اصلا مطرح نشده. از طرف دیگه هدف من در فیلمهای LMI فقط آموزش نحوه حل LMI توسط متلب بوده و خود بحث بهینه سازی مرکز توجه نبوده
niha
سلام
میخاستم بدونم چطور میشه مساله ماکزیمم سازی رو با gevp حل کرد ؟؟؟من هر کاری میکنم با تغییر علامت هم نمیتونم بدست بیارم ؟ممنون میشم راهنمایی کنید؟
علی جوادی
@niha,
با سلام
اگه منظورتون اینه که لاندا رو ماکزیمم کنید، از معادلات LFC مشخصه که ماکزیمم لاندا بینهایته و در واقع ماکزیمم محدود نداره. این مساله داخل روش mincx قابل انجامه که میتونید مساله ماکزیمم سازی رو حل بکنید البته به شرطی که مساله ماکزیمم محدود داشته باشه
niha
@علی جوادی,
بایستی حتما یک مقدار ماکزیمم با قید های مساله پیدا بشه :
maximize alpha
subject to
P * A’ – M’ * B’+ AP – BM +(s-1)Y+ 2alphaP < 0
…
سایر قیدها مشابه همین هستن
با تغییر متغیر تابع هدف و قید ها، مساله feasible نمیشه
علی جوادی
@niha,
من دو تا پیشنهاد دارم:
1) اول برای یک سیستم اسکالر که خیلی ساده باشه مساله رو حل کنید. حتی شاید بشه تحلیلی هم حل کرد. بعد با همین کدهایی که نوشتید ببینید میتونید جواب بگیرید یا نه. اگر جواب نگرفتید یعنی کدها و روشتون مشکل داره. اگر درست عمل کرد برید پیشنهاد دوم رو انجام بدید.
2) اگر مقادیر جوابها رو از یه مرجعی در دسترس دارید به جای آلفا مقدار جواب رو قرار بدید و ببینید با دستور feasp ماتریسهای مجهول دیگه به درستی بدست میاد و مساله feasible میشه یا نه. اگر نشد یعنی باز تو کدها مشکلی هست. اگر حل شد یعنی مشکل دقیقا سر آلفاست.
البته در بحث feasible شدن یا نشدن دلایل مختلفی وجود دارند. ممکنه برای یک سیستم feasible بشه و برای یه سیستم دیگه feasible نشه. باید دید که برای سیستم مورد نظر شما آیا همین مساله جواب داره یا نه.
mohammad
با سلام
متاسفانه وجود آهنگ پس زمینه اصلا کار اصولی در تدریس دروس تخصصی نیست. تا حالا تو کدوم کلاس درس آهنگ پخش کردن!!!!!!!!!!!
لطفا در آموزش های بعدی بهتره این آهنگ حذف بشه حواس رو پرت میکنه و قدرت یادگیری رو کاهش میده. البته فکر کنم در فیلتر کالمن که تهیه کردم حذف شده.
با تشکر
علی جوادی
@mohammad,
سلام
کاملا حق با شماست دوست عزیز
عذرخواهی میکنم اگه این مساله باعث رنجش شما شده
به همین خاطر در آموزشهای بعدی آهنگ پس زمینه حذف شده
لیلا
جناب آقای دکتر جوادی، سلام ، وقت شما بخیر
قبل از هر چیز لازم می دونم از صعه صدر و نگاه مثبت شما که به دور از تنگ نظری های مرسوم به سوالات مطرح شده پاسخ داده اید تشکر کنم. سوالی داشتم که ممنون میشم راهنمایی بفرمایید، گاها LMI های دیده شده در مقالات در بدنه ی یک الگوریتم تکرارشونده قرار دارند مانند مقاله زیر
http://www.sciencedirect.com/science/article/pii/S0378779610001380
ویا مانند آنچه که در سیستم های سوئیچینگ برخورد میکنیم، متغیرهای LMI داری اندیسی مانند i که این i ها محدود می باشند مانند
http://www.sciencedirect.com/science/article/pii/S1751570X07000866
آیا در این 11 جلسه ویدئو به برنامه نویسی این نوع LMIها هم اشاره شده است؟
در غیر اینصورت واقعا ممنون میشم، اگه راهنمایی کنید …چون شدیدا به مشکل برخوردم.
علی جوادی
@لیلا,
با سلام و تشکر از لطف شما
تو هر دو تا مقاله درنهایت یه سری LMI بدست اومده که باید حل بشه و مهم اینه که نامساویهای ماتریسی خطی هستند و غیرخطی نیستند. حالا اینکه تو سیستمهای سویچ شونده استفاده بشه یا سیستمهای تاخیردار یا تو کاربردهای دیگه اصلا فرقی نمیکنه. این روشهای حل LMI که تو این فیلمها گفته شده یک ابزار هستند و تو هر کاربردی میشه از اونا استفاده کرد.
تو صفحه سوم مقاله اول گفته که از دستور gevp استفاده کرده و تو remark هشتم مقاله دوم هم گفته که از feasp استفاده کرده که من این دو تا دستور به اضافه تمامی دستورهای مرتبط دیگه رو از جلسه دوم تا پنجم گفتم. علاوه بر تولباکس متلب، من تولباکس Yalmip رو هم که کار باهاش راحتتر از تولباکس خود متلب هستش، طی جلسات ششم تا نهم گفتم.
با دیدن این فیلمها به راحتی میتونید روش مورد اشاره در مقالات رو پیاده کنید
لیلا
@علی جوادی,
از وقتی که گذاشتید سپاسگزارم
همانطور که شما فرمودید در حل LMI از دستورهایی که اشاره کردید استفاده می شه ولی آیا در تعریف تک تک درایه های سازنده ی یک LMI که عضو یک الگوریتم تکرارشونده می باشد( ویا به عبارت دیگر اندیس بیانگر تکرار i دارند) نیز آیا همچنان از دستور lmiterm استفاده می شود؟
ممنون می شم راهنمایی بفرمایید
علی جوادی
@لیلا,
تفاوتی نداره. بالاخره در هر مرحله یا باید یک LMI حل بشه یا اینکه چندین LMI باهم حل بشه، در هر صورت اگر از تولباکس متلب استفاده کنید، تعریف LMI از طریق دستور lmiterm انجام میشه. فقط باید متغیرهای متناسب با اندیس i ام تعریف شده باشه
لیلا
@علی جوادی,
سلام مجدد
ممنونم از پاسخگویی شما…و وقتی که گذاشتید
آرزوی موفقیت و سلامتی دارم
علی جوادی
@لیلا,
سلام
امیدوارم توضیحات کافی بوده باشه
موفق باشید
لیلا
@علی جوادی,
توضیحات شما حتما مفید بودن ولی اگربخام صادق باشم این جمله ی شما رو که فرمودید ” فقط باید متغیرهای متناسب با اندیس i ام تعریف شده باشه” رو متوجه نشدم. ولی شما رو هم درک می کنم که کل فضای شبیه سازی LMIهایی از این دست ، شاید رسیدن به همین جمله باشد ….حالا چگونه….دیگه به قول شاعر : اگر مراد نیابم به قدر وسع بکوشم….
سپاسگزارم.
علی جوادی
@لیلا,
برای اطلاعات بیشتر در مورد سیستمهای سویچینگ، لطفا از خانم دکتر فرجی کمک بگیرید. در این زمینه مقاله های متعدد داره و با LMI هم کار کرده