احتمالا برای شما هم پیش اومده که در یک مقاله یا کتاب به جایی رسیدید که باید یک ناتساوی ماتریسی خطی (یا 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 رمز دار هست و من برای رمز گشایی نرم افزار مورد نظر رو از سایت دانلود کردم، وقتی که میخوام رمزگشایی به صورت آنلاین انجام بدم، با پیام invalid مواجه میشم. لطفا راهنمایی بفرمایید چرا این اتفاق افتاده و من چطور این مشکل رو باید بر طرف کنم
علی جوادی
@علیرضا,
با سلام و تشکر از لطف شما
بابت این مشکل از شما عذرخواهی میکنم و از مدیر سایت پیگیری میکنم تا در اسرع وقت این مشکل شما برطرف بشه.
از اینکه این
علیرضا
@علی جوادی,
ممنونم از لطف شما، اگه امکان داره حتی المقدور سریعتر پی گیری بفرمایید تا امکان استفاده از ویدیوهای شماره شش به بعد رو داشته باشم. بسیار ممنونم جناب دکتر
حسین
با سلام آقای دکتر ببخشید میخواستم ببینم می تونم Solver penbmi را از سایت شما خریداری کنم؟؟
علی جوادی
@حسین,
سلام
امکانش نیست و باید از سایت خودش تهیه کنید.
ما هم حدود 250 یورو هزینه کردیم تا برای آزمایشگاه خریداریش کنیم
mina
با سلام خدمت آقای دکتر
چطور میشه یک کنترل کننده فیدبک خروجی دینامیکی برای یک سیستم درجه 5 طراحی کرد؟( من جلسه پنجم که مربوط به طراحی کنترل کننده هست رو کامل گوش کردم ولی نتونستم این طراحی رو انجام بدم ) ممنون میشم راهنماییم کنید
علی جوادی
@mina,
با سلام و عرض معذرت به خاطر تاخیر در پاسخگویی
مبحث مورد اشاره در جلسه 5 فقط طراحی فیدبک حالت برای سیستمهاست و در مورد فیدبک خروجی حرفی زده نشده. برای اینکار باید فرمولبندی مساله رو از اول انجام بدید (ساختار کنترل کننده رو تشکیل بدید) و بعد LMI های مورد نیاز برای پایداری سیستم حلقه بسته رو بدست بیارید و برای سیستم خودتون حل کنید. مثلا اگر از رویتگر لیونبرگر استفاده کنیم، میشه مساله رو به LMI تبدیل کرد. برای اطلاعات بیشتر به آموزش زیر مراجعه کنید:
https://www.controlref.com/output-feedback/
mina
@علی جوادی</a
خیلی ممنونم از راهنمایی تون
علی جوادی
@mina,
خواهش میکنم. موفق باشید
ل.م
سلام آقای دکتر
وقت بخیر و خدا قوت
ببخشید سوالی داشتم ممنون میشم راهنمایی بفرمایید :
من طبق یالمیپ برنامه نویسی انجام دادم … در مقاله م تابع هزینه ای به همان فرم متداول کنترل بهینه دارم … مساله بیان شده در قالب چند LMI است ولی مینیمم سازی ندارم…یعنی ندارم min کن مثلا (tr(Q را سابجکت تو این LMIها….
حالا سوالم اینه که در دستور optimize برای قسمت تابع هزینه ش چی تعریف کنم؟….خالی بذارم بصورت []…یا خیر بیام همان تابع هزینه کوادراتیک رو اینجا تعریف کنم ؟
با تشکر
علی جوادی
@ل.م,
با سلام و عذرخواهی بابت تاخیر در پاسخ دهی
اگر هیچ تابعی برای مینیمم کردن نیست، خالی بذارید و فقط LMI ها رو حل کنید
رضا
سلام من جلسه 6 و 7 رو خریدم داخل فایل زیپ یه فایل با فرمت zxp چجوری باید بازش کرد
علی جوادی
@رضا,
سلام
با عذرخواهی بابت تاخیر در پاسخگویی
لطفا به صفحه سوالات متداول سایت و قسمت “چگونه فیلم را ببینیم؟” مراجعه کنید
عرفان
با سلام
در یک مسعله بهینه سازی اگر تابع هدف یک نامساوی ماتریسی خطی بود چگونه می توان آن را حل کرد m=argmax G<0
m
یعنی m ای که بتواند G<0 را ماکسیمم کند کهG ماتریس است
و m یک ماتریس قطری است
علی جوادی
@عرفان,
سلام
من صورت مساله رو نفهمیدم
البته اینجا فقط نحوه حل یک مساله LMI توضیح داده شده و روشهای تبدیل یه مساله به مینیمم سازی یا نامساوی یه مبحث دیگه است
HBNB
سلام من بسته اموزشی از این سایت خریداری کردم ولی متاسفانه لینک به ایملیم فرستاده نشده…فوری لازمش دارم…ممنون میشم اگر رسیدگی کنید
علی جوادی
@HBNB,
سلام
پوشه اسپم رو چک کردید؟
mina
با عرض سلام خدمت آقای دکتر
میشه خواهش کنم من رو راهنمایی کنید که برای بررسی پایداری مجانبی یک سیستم با روش lmi از چه دستوری و چطور استفاده کنم
سپاس فراوان
علی جوادی
@mina,
سلام
این سوال خیلی کلیه. بسته به اینکه سیستم خطی باشه یا غیرخطی، نامعینی داشته باشه یا نه و … تحلیل پایداری با LMI متفاوته ولی نقطه مشترک برای تمام حالتها استفاده از روش مستقیم لیاپونوف هستش.
به نظرم بهتره از حالت ساده (سیستم خطی بدون نامعینی) که جلسه 5 مطرح کردم شروع بکنید
mina
@علی جوادی</a خیلی ممنون از راهنمایی تون
علی جوادی
@mina,
خواهش میکنم. موفق باشید
یاسمن
با سلام و عرض تبریک سال نو خدمت شما آقای دکتر جوادی
آقای دکتر مدت لایسنس mosek solver من تمام شده و من مجددا لایسنس رو از روی سایت تقاضا دادم و دریافت کردم و همان مراحل قبل یعنی کپی آن در فولدری به نان mosek در درایو C . اما متاسفانه همچنان این solver در متلب غیرفعال است.
خیلی ممنون میشم اگر لطف بفرمایید و راهنمایی کنید.
سپاس فراوان
علی جوادی
@یاسمن,
سلام. من هم سال نو رو به شما تبریک عرض میکنم
شاید لایسنس قبلی رو پاک نکردید. اول باید قبلی رو پاک کنید و بعد لایسنس جدید رو کپی کنید
یاسمن
@علی جوادی,
سپاسگزارم
آقای دکتر لایسنس قبل را پاک کرده بودم. بنظر شما با لایسنس جدید ممکن است نیاز به نسخه جدیدتر mosek هم باشد؟
یاسمن
@یاسمن,
آقای دکتر جوادی، هنگام تست mosek این پیغام خطا داده می شود.
Warning: MOSEK Fusion is not configured correctly; check that mosek.jar is added to
the javaclasspath.
گویا باید مجددا به مسیر متلب اضافه شود؟
باز هم از اینکه راهنمایی می فرمائید سپاسگزارم.
علی جوادی
@یاسمن,
این عبارتی که شما تحت عنوان خطا معرفی کردید در واقع یک هشداره و نه خطا. معمولا خطا مانع کار کردن کد میشه نه هشدار. ظاهرا لایسنس شما داره کار میکنه ولی فقط برای استفاده از fusion باید طبق راهنمای زیر عمل کنید:
https://goo.gl/gfwK6a
البته من تا حالا از fusion استفاده نکردم و اطلاعات بیشتری در موردش ندارم.
در همین حالت ببینید که تولباکس یالمیپ با mosek کار میکنه یا نه. اگر کار نکرد طبق راهنما عمل کنید
یاسمن
@علی جوادی,
سلام
سپاس از وقتی که برای پاسخ دهی قرار می دهید.
نسخه جدید یالمیپ و موزک را هم نصب کردم اما یالمیپ با موزک کار نمی کند و متاسفانه دلیلش را متوجه نشدم.
بهرحال از شما سپاسگزارم.
علی جوادی
@یاسمن,
سلام
خواهش میکنم
میتونید همون لایسنس رو تو یه کامپیوتر دیگه تست کنید ببینید که مشکل از لایسنس هستش یا احیانا متلب و یا ویندوز.
محمد
سلام آقای جوادی
سوالی داشتم که ممنون میشم راهنمایی بفرمایید
یکی از متغیرهای من ماتریس V هست که ابعادش 4*2 می باشد که با دستور lmivar تعریف گردید. حالا در یکی از LMI ها ، سطرهای ماتریس V وجود دارند یعنی vi ها….
حالا چون من دو سطر دارم بنابراین v1 و v2 خواهم داشت….که بصورت زیر بیان گردید:
V=lmivar(2,[2 4])
lmiterm([2 1 2 V(1,:)],1,1)
.
.
lmiterm([3 1 2 V(2,:)],1,1)
ولی متلب خطا می دهد Index exceeds matrix dimensions.
ممنون میشم راهنمایی بفرمایید.
علی جوادی
@محمد,
سلام
باید بردارهای v1 و v2 رو با ضرب ماتریسهای مناسب در متغیر اصلی تولید کنید.
مثلا به جای v1 باید از عبارت V*[0 1] استفاده کنید
همینطور V*[0 1]=v2 رو باید در LMI استفاده کنید
یه روش دیگه هم اینه که v1 و v2 رو به عنوان دو متغیرهای مساله (به جای V) تعریف کنید و از اونها داخل LMI استفاده کنید. بعدا که جواب بدست اومد میتونید V رو از روی v1 و v2 بسازید.
البته همونطور که در فیلمها هم گفتم بهتره از تولباکس یالمیپ استفاده کنید چون این کارها اونجا خیلی راحتتر انجام میشه
موفق باشید
محمد
@علی جوادی,
سلام مجدد آقای دکتر
خیلی خیلی ممنونم …با راهنمایی شما مشکل حل شد….سپاسگزارم
علی جوادی
@محمد,
خواهش میکنم. موفق باشید