احتمالا برای شما هم پیش اومده که در یک مقاله یا کتاب به جایی رسیدید که باید یک ناتساوی ماتریسی خطی (یا 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 دارم که یکی از درایه های آن Q^ -1 می باشد . ماتریس Q یکی از متغیرهای من هست که با دستور sdpvar تعریف شده است.
ضمنا شرط Q>0 نیز جز محدودیت ها لحاظ شده . (Q ماتریس مربعی 4در 4 است.)
ولی هنگام run این خطا را می دهد:
Only scalars can have negative or non-integer powers
در صورت امکان راهنمایی بفرمایید.
علی جوادی
@لیلا,
با سلام و تشکر از لطف شما
مشکل این جاست که شما LMI ندارید بلکه NMI دارید چون هم خود Q رو دارید و هم معکوسش رو. بنابراین نمیتونید مستقیما مساله خودتون رو با متلب حل کنید.
باید از یه روشی مثل Cone Complementarity Linearization یا CCL استفاده کنید تا NMI رو به LMI تبدیل کنید. برای مشاهده الگوریتم CCL مثلا میتونید به مقاله زیر مراجعه کنید:
http://ieeexplore.ieee.org/document/618250
لیلا
@علی جوادی,
ممنون از وقتی که گذاشتید.
آقای دکتر ،دو تا مساله ای که یادم رفت بگم خدمتتون:
1) این بود که مقاله در داخل LMI ماتریس Q^-1 را مستقیما وارد نکرده بلکه اومده یه متغیر جدیدی بصورت G=Q^-1 رو تعریف کرده و داخل LMI از متغیر G استفاده کرده …..آیا این مطلب کمکی می کنه؟
2) ضمنا خود مقاله بارها روابط رو LMI معرفی می کند…
واقعا ممنون میشم نظرتون رو بفرمایید.
علی جوادی
@لیلا,
خوب اگر G رو به عنوان یک متغیر جدید تعریف کرده و خود Q (که معکوس G هستش) هم داخل ناتساوی موجوده، بنابراین باز هم یک متغیر دارید که هم خودش و هم معکوسش در ناتساوی وجود داره و بنابراین باز هم LMI نیست.
ممکنه مقاله با یه روشی مساله رو به LMI تبدیل کرده و معکوس رو بنحوی از بین برده. مقاله رو با دقت بیشتر بخونید
امیدوارم این توضیحات کمک کرده باشه
لیلا
@علی جوادی,
سلام آقای دکتر
بابت تاخیر عذرخواهی می کنم…
نا متاسفانه مشکل همچنان برطرف نشده
ولی همین که شما پاسخگو هستید و وقت میذارید، سپاسگزارم.
مسعود
سلام خوب اون پرسشم مربوط به نتیجه شبیه سازی قطار بود دیگه .
علی جوادی
@مسعود,
همونطور که در اول پست میبینید، آشنایی با متلب جزو پیش نیازهای این سری فیلم هاست
مسعود
سلام مهندس ببخشید راجب plotها سوال داشتم که یادم رفته یه جایی بود که بدون حفظ دستور میانبر میرفتیم نتایج شبیه سازیو مثلا زمان میدادیم یا صفحه سیاهو زمینشو سفید میکردیم الان میرم اونقسمت ولی توی اون نوار ابزار که گزینه بیشتری بود الان فقط چهار تا هست یقیه نیستن مثلا یک پنجره سمت راست بالای توی اون تنظیمات بود اون نیس یا مثلا میخواستیم اسم برای هر نموار بغل تصویر بزاریم لطفا راهنمایی کنید.
علی جوادی
@مسعود,
سلام
در اینجا به سوالات مربوط به LMI جواب داده میشه. لطفا به فایلهای آموزشی متلب مراجعه کنید
محمد غضنفری
با سلام
بنده دنبال یه مقاله نه خیلی سخت در زمینه LMI هستم ( با کد های آماده ) می خواستم بدونم که یه چنین مقاله ای دم دستتون هست ؟
(البته من قبلا مقاله قطار رو از سایتتون خریداری کردم اگه ممکنه یه مقاله دیگه باشه )
مدیر سایتادمین سایت ( مالک تایید شده )
@محمد غضنفری,
سلام موضوعی که شما میخواید برای ما مقدور نیست اما در مورد اینکه یه آموزش مثل آموزشی که خریداری کردید رو بخواید باید هشت نفر پیش خرید انجام بدن تا مقاله ای با محوریت موضوع شما آماده بشه. یا اینکه شما هزینه هشت نفر رو پرداخت کنید.
سپاسگزارم
مدیر سایتادمین سایت ( مالک تایید شده )
@امیر یوسف زاده,
سلام
در حال حاضر تخفیفی که اعمال شده تخفیف 40 درصده و تخفیف 20 درصد وجود نداره!
برای دریافت کد تخفیف 40 درصد به کانال ما مراجعه بفرمایید
سپاسگزارم
علی جوادی
@امیر یوسف زاده,
سلام
تخفیف 20 درصدی کل جلسات در قیمت نهایی اعمال شده است. اگر دقت کنید قیمت کل جلسات 60000 تومان است ولی با 20 درصد تخفیف 48000 تومان قیمت گذاری شده است
امیر یوسف زاده
سلام
من کل جلسات رو برای خرید انتخاب می کنم ولی تخفیف 20 درصدی شامل حالم نمی شه.
مسعود
سلام مهندس من مشکلم باز حل نشد ایا منظور شما از تولباکس همان یالمیپ است بله اونو نصب کردم وتستم کردم داخل یالمیپ فقط چنتا سالور بودن . لطفا بیشتر توضیح بدین ببینید تو فیلم فقط روش نصب یالمیپو گفته دیگه راجب ارور برنامه چیزی نگفته که لطفا کمکم کنید
علی جوادی
@مسعود,
بله منظورم همون تولباکس یالمیپ هستش. اون خطایی که گفتید بعد از نصب تولباکس نباید ببینید مگر اینکه خطای دیگری ببینید. مثلا ممکنه مشکل از این باشه که شما solver مورد استفاده در کد رو ندارید که در اینصورت کافیه در دستور sdpsettings نوع solver رو انتخاب نکنید تا خود تولباکس از solver هایی که داره انتخاب کنه
مسعود
سلام مهندس راجب خطالی اون برنامه قطار شناور که گفتین یالمیپ رو نصب کنم بازم مشکل حل نشد چکار کنم خطار م قبلا فرستادم.
علی جوادی
@مسعود,
اگر تولباکس رو درست نصب کرده باشید، قطعا نباید همون خطا رو ببینید به خاطر اینکه دستور sdpvar داخل تولباکس تعریف شده. با روشی که در جلسه 6 گفتم (دقیقه 34)، نصب تولباکس رو تست کنید
Elham
ممنون از پاسخگویی سریع و دقیقتون.
اینکه من از روش تکراری استفاده کردم برای این بود که به عنوان مثال یکبار آلفا را ثابت فرض میکنم بعد نسبت به بتا مینیمم سازی انجام میدهم سپس این روند را برای آلفا به کار میگیرم.
مسئله که بنده بر روی آن کار میکنم به شکل زیر است:
Maximize α
X,S,M1,M2
Minimum β
X,S,M1,M2
Subject to X>0, β>0, α>0,S>0
[I S ;S I)]>0
-A1 X+BM1-XA1^T+M1^T B^T-2αX>0
-A2 X+BM2-XA2^T+M2^T B^T-2αX>0
[βS {(A1X – BM_1 )-(A2 X – BM2)}^T; {(A1 X-BM1 )-(A_2 X-BM2)}; I)]>0
با توجه به مسئله بالا یعنی روش حل بنده مشکل داشته است؟
اگر امکانش هست میشه لطف کنید، بگید برای حل اینگونه مسائل باید از چه روشی استفاده کنم؟
علی جوادی
@Elham,
داخل ناتساوی ها حاصلضرب آلفا و ایکس و همچنین بتا و اس وجود داره و بنابراین با solver های عادی نمیشه مساله رو حل کرد چون ناتساوی ها اصلا LMI نیستند. پیشنهاد من اینه که شما هر بار آلفا و بتا رو یه مقداری تعیین کنید و مساله feasibility رو حل کنید به جای مینیمم سازی. اگر جواب داد بتا رو کمتر و آلفا رو بیشتر کنید و در غیر اینصورت برعکس عمل کنید. این کار رو تا جایی ادامه بدید تا هم LMI ها feasible بشه و هم تا حد ممکن بتا مینیمم و آلفا ماکزیمم بشه.