احتمالا برای شما هم پیش اومده که در یک مقاله یا کتاب به جایی رسیدید که باید یک ناتساوی ماتریسی خطی (یا 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 مگابایت
پیش نمایش جلسه یازدهم:
مطالعه بیشتر
حمید
سلام آقای دکتر
ضمن تشکر از شما بابت آموزش مفیدتان، من دو LMI دارم به صورت زیر:
1- 0>A’*P+P*A-C’*R1-R1’*C
2- B’*P+P*B-C’*R2-R2’*C<0
ماتریس های P و R1 و R2 متغیرها می باشند که باید به دست آورده شوند
برای حل همزمان این دو LMI و به دست آوردن ماتریس های گفته شده، به چه صورت باید LMI ها را برای متلب تعریف کنم؟
باتشکر
علی جوادی
سلام
لطفا به فیلمهای آموزشی مراجعه کنید.
تمام دستورات متلب با مثالهای متنوع ارائه شده و به راحتی میتونید مساله خودتون رو حل کنید
Lewis
سلام دکتر عزیز
ما دقیقا به دستور gevp نیاز داریم که شما بین این همه دستور دقیقا همین رو نگفتید
میشه لطفا یه مثال در این زمینه حل کنید؟
یا یه مثال بفرستیم شما اون رو حل کنید؟
علی جوادی
سلام و عرض ادب
از اینکه این دستور پوشش داده نشده عذرخواهی میکنم.
متاسفانه امکان حل مثال در شرایط فعلی مقدور نیست
البته اگر دستورات دیگه رو فهمیده باشید، استفاده از این دستور هم سخت نخواهد بود
معین
درود
دانشجوی دکتری کنترل هستم.
لطفا بجای واژه fesible از واژه معادل فیزا و بجای واژهfeasiblity از فیزایی استفاده شود تا واژه جای خود را پیدا کند در زبان فارسی.
واژه دقیقی برای feasible در زبان فارسی وجود ندارد.
نامساوی ماتریسی خطی فیزاست بجای شدنی است!.
فیزا یا feasible به معنی امکان پذیر در عمل.
فیزا و فیزایی
علی جوادی
سلام
ممنون از راهنمایی ولی دیگه برای من دیر شده چون سالها استفاده کردم و سختمه کلمه دیگری استفاده کنم.
شاید برای کسانی که تازه شروع به کار با LMI میکنند مفید باشه
سپاس
علی
با سلام و عرض ادب خدمت شما آقای دکتر
بنده یک کد LMI با استفاده از تولباکس YALMIP نوشتم. ایرادی که در این کد دارم این هست: زمانی که بنده می خوام اینورس یک متغیر را که به صورت sdpvar در ابتدای برنامه تعریف کردم در Constrain ها استفاده کنم با ارور مواجه میشم. بنده می خوام این دستور را تایپ کنم
دستور: 0<[X*inv(Y)*X] ، هم متغیر X و هم Y قبلا به صورت sdpvar تعریف شده اند از اینرو با ارور زیر مواجه میشم:
Undefined function 'inv' for input arguments of type 'sdpvar'.
می خوام بدونم من چطور می تونم از اینورس sdpvar ها توی Constrain ها استفاده کنم.
خیلی خیلی ممنونم میشم اگر کمکم کنید.
با تشکر از شما
علی جوادی
سلام
این عبارتی که شما قصد دارید تعریف کنید اصلا LMI نیست چون معکوس یک مجهول داخلش ظاهر شده.
صادق
با سلام
مطالب مربوط به lmivar و lmiterm در کدوم جلسات توضیح داده شدن؟
علی جوادی
سلام
جلسه دوم
محمد
خب در اجرای کد هم ظاهرا به مشکل می خوره. و این پیام رو میده:
Mosek error: MSK_RES_ERR_MISSING_LICENSE_FILE (License cannot be located. The default search path is ‘;C:\Users\Shaygan\mosek\mosek.lic;’.)
علی جوادی
من جای شما باشم با پشتیبانی mosek این مشکل رو مطرح میکنم: support@mosek.com
محمد
سلام. من سلور mosek رو با توجه فیلم آموزشی حل ناتساوی ها ماتریسی نصب کردم. و لایسنس مربوطه رو هم نصب کردم. ولی در اجرای دستور mosekdiag خطای زیر رو میده:
chek that mosek. jar is added to the javaclasspath
علی جوادی
سلام
برای من این مشکل پیش نیومده یا حداقل یادم نیست اگرم پیش اومده
اما داخل فایل PDF راهنمای استفاده از mosek (صفحه 8) گفته که این پیام که شما گفتید یک هشداره (warning) نه خطا (error)
و گفته که این هشدار در محیط متلب مشکلی ایجاد نمیکنه.
سجاد
با عرض سلام و خسته نباشید؛
جناب دکتر جوادی، ممکن است که حل کننده LMI تولباکس متلب نتواند جواب را پیدا کند، در حالی که جعبه ابزار YALMIP بتواند جواب را پیدا کند؟
علی جوادی
با سلام
اگر هدف حل LMI باشه و بنابراین مساله محدب باشه، تولباکس متلب اصولا باید بتونه حلش کنه
ولی ممکنه تو حالتهای مرزی و خیلی سخت، تولباکس متلب جوابهای دقیق نداشته باشه
در این حالتها میتونید از سالورهای قوی YALMIP استفاده کنید.
تجربه نشون میده برای اکثر مسایل همون تولباکس متلب هم جواب میده و بیشتر به خاطر راحتی از YALMIP استفاده میشه
شهرام نوروزی
سلام و ادب
بنده قصد دارم یک مقاله کنترل مقاوم را با LMI و تولباکس Yalmip شبیه سازی کنم آیا فقط قسمت 7 و 8 را بخرم کافیه؟.
علی جوادی
سلام
جلسات 6 و 7 و 8 و 9 مربوط به تولباکس yalmip هستند و برای کار شما کافیه. برای اطلاعات بیشتر به توضیحات هر جلسه مراجعه کنید.
نسرین
با سلام
ممنون از راهنمایی هاتون
اگر در یک مجموعه lmi چند اسکالر وجود داشته باشد که همان متغیرهای طراحی ثابت هستند (پاسخ مسئله lmi نیستند و اصولا از قبل به صورت سعی و خطا انتخاب شده اند) آیا راهی وجود دارد که محدوده فیزیبل بودن lmi را نسبت به مقادیر این ثابت ها مشخص کند؟ در واقع یک سطح یا حجمی را با این ثابت ها مشخص کرد که خارج از این محدوده دیگر lmi فیزیبل نباشد.
علی جوادی
@نسرین,
سلام
یک روش ساده اینه که برای هر متغیر یه حلقه for بنویسید و به ازای مقادیر مختلف هر متغیر ببینید آیا LMI ها فیزیبل هستند یا نه (و مقادیر مرزی هر متغیر رو ذخیره کنید) و محدوده فیزیبل بودن رو به صورت عددی بدست بیارید. البته محدوده تغییرات هر متغیر و رزلوشن تغییرش در هر مرحله رو باید خودتون تعیین کنید.
نسرین
ممنون
یه سوال دیگه هم دارم در فیلمها چند بار ذکر شده که lmi ها حتما متقارن هستند. چرا؟ من lmi ای دارم که متقارن نیست! اما تمام خصوصیات و ظاهر آن مشابه یک lmi است. چکار باید بکنم؟ در روش حل فرقی دارد؟ به متلب که دادم با روشی که در فیلمها آمده بود خطایی نگرفت.
علی جوادی
@نسرین,
من تا حالا هر LMI ای که دیدم متقارن بوده. نمیدونم کجا ممکنه پیش بیاد که LMI متقارن نباشه!