lmi

آموزش حل ناتساوی های ماتریسی خطی (LMI) با متلب

احتمالا برای شما هم پیش اومده که در یک مقاله یا کتاب به جایی رسیدید که باید یک ناتساوی ماتریسی خطی (یا LMI) رو حل کنید و در بدر دنبال یک نفر هستید تا در کوتاهترین زمان ممکن حل این نوع ناتساوی ها رو به شما یاد بده تا مجبور نباشید زمان قابل توجهی صرف کنید و از منابع مختلف دنبال راه حل باشید. اگر شما هم جزو این دسته از محققین هستید دیگه نگران نباشید. در این پست قراره تمام جزییات و کلیات نامساوی ماتریسی خطی (و حتی غیرخطی) با نحوه حل اونها در متلب و با دو روش تولباکس متلب و YALMIP به روش ساده و با مثالهای مفصل توضیح داده بشه. اگر با این فیلمهای آموزشی همراه شده و مرحله به مرحله مثالها رو پیش برید بعد از این ۱۱ جلسه قادر خواهید بود حل کننده (solver) مناسب رو برای مساله خودتون انتخاب کرده و ناتساویهای ماتریسی خودتون رو باهاش حل بکنید. بعد از تشریح کامل دو روش بالا یک مثال از طراحی کنترل کننده برای سیستم شناور مغناطیسی از یک مقاله IEEE با استفاده از LMI خدمت شما ارایه میشه (به همراه شبیه سازی در محیط سیمولینک) تا مطلب کامل جا بیافته. با ما همراه باشید…

پیشنیازها: آشنایی اولیه با جبر خطی و تئوری سیستمهای کنترل خطی – آشنایی با کدنویسی در محیط متلب

جلسه اول: در این جلسه ابتدا مقدمات ریاضی و تعریف ناتساوی های ماتریسی به همراه مفاهیم مجموعه های محدب و نامحدب توضیح داده میشه و چند مثال هم از هر دو نوع مجموعه ارایه می‌شود. سپس نحوه تبدیل ناتساویهای خام به حالت استاندارد تشریح شده و در انتها روشهای مختلف حل عددی ناتساویهای ماتریسی به طور خلاصه مطرح می‌شود. جهت ارزیابی شما عزیزان جلسه اول رایگان تقدیم می‌شود.

مدت زمان آموزش: چهل و نه دقیقه

محتویات درس: فیلم با کیفیت ۷۲۰p و پاورپوینت درس

حجم فایل: ۶۵ مگابایت

جلسه اول:


جلسه دوم: در این جلسه کار با تولباکس LMI متلب را شروع کرده و مراحل مختلف ایجاد یک LMI ارایه می‌شود. به طور خاص نحوه تعیین متغیرهای ماتریسی و همینطور نحوه وارد کردن جملات داخلی و خارجی به همراه مثال در محیط متلب تشریح می‌شود.

مدت زمان آموزش: یک ساعت و نه دقیقه

محتویات درس: فیلم با کیفیت ۷۲۰p- پاورپوینت درس- کد متلب مربوط به مثالها- فایل pdf راهنمای استفاده از تولباکس متلب و لیست مرتب شده تمام دستورات مرتبط با تولباکس LMI متلب

حجم فایل: ۸۹ مگابایت

پیش نمایش جلسه دوم:


جلسه سوم: در این جلسه دستورات مختلفی که برای کسب اطلاعات تکمیلی از متغیرها و LMI های تعریف شده در متلب وجود دارند بررسی شده و با مثال تشریح می شوند. در ادامه یکی از دستورات مهم تولباکس LMI متلب که برای حل مسایل ناتساوی مورد استفاده قرار می‌گیرد معرفی شده و یک مثال از تحلیل پایداری سیستم کنترلی برای آن ارایه می‌شود.

مدت زمان آموزش: یک ساعت و هشت دقیقه

محتویات درس: فیلم- پاورپوینت درس و کد متلب مربوط به مثالها

حجم فایل: ۱۰۰ مگابایت

پیش نمایش جلسه سوم:


جلسه چهارم: در این جلسه ابتدا دستور mincx که برای حل ناتساویهای ماتریسی با شرط مینیمم سازی (یا ماکزیمم سازی) استفاده می‍شود به طور کامل تشریح شده و مثال جلسه قبل با شرط مینیمم و ماکزیمم سازی دوباره با این دستور حل می‍شود. همچنین دستور gevp که مربوط به حل مسایل مینیمم سازی مقدار ویژه تعمیم یافته می‌باشد تشریح می‌شود.

مدت زمان آموزش: پنجاه و یک دقیقه

محتویات درس: فیلم- پاورپوینت درس و کد متلب مربوط به مثالها

حجم فایل: ۶۹ مگابایت

پیش نمایش جلسه چهارم:


جلسه پنجم: در این جلسه ابتدا دستورات باقیمانده که مربوط به ارزیابی LMI بعد از حل آن است معرفی می‌شوند. در ادامه یک مثال از طراحی کنترل کننده فیدبک حالت برای سیستم خطی به شکل LMI فرمول بندی شده و با تولباکس LMI متلب حل می‌گردد. نهایتا دو ترفند بسیار پرکاربرد تبدیل متجانس (Congruent transformation) و لم شور (Schur complement) برای LMI بیان می‌شوند.

مدت زمان آموزش: پنجاه و سه دقیقه

محتویات درس: فیلم- پاورپوینت درس و کد متلب مربوط به مثالها

حجم فایل: ۷۶ مگابایت

پیش نمایش جلسه پنجم:


جلسه ششم: از این جلسه معرفی تولباکس YALMIP شروع می‍شود و ابتدا توضیحات مقدماتی درباره آن و مزایای آن نسبت به تولباکس متلب ارایه می‌شود. در ادامه تمامی مراحل دانلود و نصب این تولباکس بر روی متلب به صورت گام به گام تشریح می‌شود. در انتها نحوه ارزیابی نصب درست تولباکس و solver های موجود در آن توضیح داده می‌شود.

توجه: اخیرا ظاهر و پوسته سایت YALMIP دچار تغییر و تحول شده و با صفحات نشان داده شده در فیلمهای حاضر قدری متفاوت است. با توجه به اینکه محتویات سایت YALMIP تغییر پیدا نکرده و تنها محل لینکها تغییر پیدا کرده (مثلا لینکهای ستونی سمت چپ به بالای صفحه انتقال پیدا کرده)، فیلمهای موجود دوباره ضبط نشده و همین فیلمها قابل استفاده هستند.

مدت زمان آموزش: چهل و هفت دقیقه

محتویات درس: فیلم آموزشی

حجم فایل: ۹۶ مگابایت

پیش نمایش جلسه ششم:


جلسه هفتم: در این جلسه ابتدا نحوه تعریف متغیرهای ماتریسی با مثالهای متنوع در محیط متلب توضیح داده شده و سپس چگونگی تعریف قیدها یا همان ناتساویهای ماتریسی جهت استفاده در YALMIP با چندین مثال تشریح می‌شود.

مدت زمان آموزش: یک ساعت و ۲ دقیقه

محتویات درس: فیلم آموزشی- فایل پاورپوینت و کد مثالهای نوشته شده در این جلسه

حجم فایل: ۸۵ مگابایت

پیش نمایش جلسه هفتم:


جلسه هشتم: در این جلسه نحوه تعریف تابع هزینه، گزینه های اختیاری مربوط به YALMIP (به جز solver ها)، چگونگی حل مساله و در نهایت روش استخراج متغیرهای ماتریسی تشریح شده و مثال تحلیل پایداری که جلسات پیش با تولباکس متلب حل شده بود، با YALMIP هم حل می‌شود.

مدت زمان آموزش: یک ساعت و یازده دقیقه

محتویات درس: فیلم آموزشی- فایل پاورپوینت و کد مثالهای نوشته شده در این جلسه

حجم فایل: ۱۱۴ مگابایت

پیش نمایش جلسه هشتم:


جلسه نهم: مباحث باقیمانده از توضیحات مربوط به YALMIP از جمله solver ها (داخلی و خارجی) در این جلسه مورد بحث قرار می‌گیرد. به طور خاص نحوه دانلود و نصب سه solver پرکاربرد به نامهای PENBMI ، SDPT3 و MOSEK به طور کامل تشریح شده و مثال تحلیل پایداری سیستم خطی که در جلسات قبل با تولباکس متلب حل شده بود، با این سه solver نیز حل می‌گردند.

مدت زمان آموزش: یک ساعت و سیزده دقیقه

محتویات درس: فیلم آموزشی- فایل پاورپوینت و کد مثالهای نوشته شده در این جلسه

حجم فایل: ۱۶۹ مگابایت

پیش نمایش جلسه نهم:


جلسه دهم: در این جلسه تکنولوژیهای موجود در ساخت قطارهای مغناطیسی bk_0b2624c75cab4b975e9571911ca55429_i4ejdvمعرفی شده و دینامیک غیرخطی شناورسازی یک قطار مغناطیسی با تکنولوژی EMS از یک مقاله IEEE ارایه می‌شود. در ادامه نقاط تعادل و نامی دینامیک استخراج شده و حول نقطه مورد نظر خطی‌سازی ژاکوبی انجام می‌شود تا ماتریسهای مورد نیاز برای طراحی کنترل‌کننده فیدبک حالت بدست آورده شود.

مدت زمان آموزش: یک ساعت و شش دقیقه

محتویات درس: فیلم آموزشی و کلیپی کوتاه از عملکرد قطار مغناطیسی- فایل پاورپوینت و مقاله IEEE حاوی دینامیک شناورسازی قطار مغناطیسی

حجم فایل: ۱۱۶ مگابایت

پیش نمایش جلسه دهم:


جلسه یازدهم: در این جلسه ابتدا دینامیک غیرخطی شناور مغناطیسی در محیط متلب و در نقطه کار دلخواه خطی شده و سپس با هر دو روش تولباکس LMI متلب و YALMIP مساله پایدارسازی سیستم خطی شدDSC1301kه با فیدبک حالت حل می‌شود. همچنین بعد از بدست آوردن بهره کنترل کننده با استفاده از solver های PENBMI، SDPT3 و MOSEK در محیط YALMIP و بهره بدست آمده از تولباکس متلب، سیستم حلقه بسته (با دینامیک غیرخطی) در محیط سیمولینک شبیه سازی شده و نتایج حاصل از این بهره ها باهم مقایسه شده است.

مدت زمان آموزش: یک ساعت و هفت دقیقه

محتویات درس: فیلم آموزشی- فایل پاورپوینت و کدها و فایلهای شبیه سازی سیستم حلقه بسته

حجم فایل: ۱۱۳ مگابایت

پیش نمایش جلسه یازدهم:


برای خرید جلسه مورد نظر ابتدا تیک جلسه مربوطه رو بزنید و بعد دکمه خرید رو بزنید سپس در صفحه جدید ایمیل و نام خود را وارد بفرمایید و دکمه خرید رو بزنید. بعد از اون به صفحه پرداخت هدایت خواهید شد با داشتن رمز دوم عملیات پرداخت رو طی بفرمایید. لینک دانلود هم در صفحه پرداخت به شما نمایش داده خواهد شد و هم به ایمیلتون فرستاده میشه. لطفا ایمیل خودتون رو با دقققققت وارد بفرمایییییییید

برای خرید تمام جلسات گزینه آخر را انتخاب کرده و از تخفیف ۳۰ درصدی بهره مند شوید…

 

 

۴۴ نظر

  1. سلام
    معادله همیلتون ژاکوبی غیر خطی رو میشه با یالمیپ به صورت عددی حل کرد؟
    برای پیدا کردن فیدبک حالت بهینه

    [پاسخ]

    مدیر سایت پاسخ در تاريخ بهمن ۳ام, ۱۳۹۵ ۱۰:۵۷ ق.ظ:

    @بابک,
    سلام
    در حالت کلی هر نامساوی ماتریسی غیرخطی رو نمیشه با YALMIP حل کرد مخصوصا اگه غیر محدب باشه. اگر بتونید معادله همیلتون ژاکوبی رو به BMI تبدیل کنید با استفاده از solver خوب PENBMI میتونید حلش کنید اما اگه BMI نباشه (و غیرخطی مرتبه بالا باشه)، solver مناسبی برای حلش وجود نداره و اونهایی که موجود هستند خیلی کارایی ندارند مثل BMIBNB

    [پاسخ]

  2. با سلام
    در مورد مقاله زیر که کنترل پیش بین سیستمهای متصل به هم با قید QDC می باشد ، تابع هزینه J را باید در حضور قید QDC آورده شده در ناتساوی شماره ۷ که این قید به صورت BMI می باشد حل کنیم. اما با این مشکل مواجه شدیم که باید با کدام solver در Yalmip حل شود؟
    https://pdfs.semanticscholar.org/dbf1/0b9183b76bc265275c2181f1a6b3f5eff462.pdf

    [پاسخ]

    مدیر سایت پاسخ در تاريخ بهمن ۳ام, ۱۳۹۵ ۱۰:۳۳ ق.ظ:

    @نازنین,
    با سلام و عرض معذرت به خاطر تاخیر در پاسخ دهی.
    همونطور که در جلسه نهم توضیح دادم، برای حل BMI میشه از solver خوب PENBMI استفاده کرد. البته این solver پولی بوده و باید خریداری بشه اما عملکردش قابل قبوله

    [پاسخ]

  3. با سلام
    یک سوال در مورد سالور Mosek داشتم. اگر این سالور از طریق ایمیل دانشگاهی و بصورت academic دانلود بشه، آیا محدودیت نصب روی چند سیستم رو داره؟ در واقع سوالم اینه ایا از یک لایسنس گرفته شده میشه بروی چند سیستم استفاده کرد؟

    [پاسخ]

    علی جوادی پاسخ در تاريخ دی ۲۸ام, ۱۳۹۵ ۲:۰۳ ب.ظ:

    @رضا,
    سلام
    فقط روی یک سیستم قابل استفاده است

    [پاسخ]

  4. با سلام و احترام،

    صفحه ۱۱ مقاله ای که در آخر پست لینکش رو قرار دادم، یک مسئله LMI را با روش differential evolution حل کرده است. میتونید در این مورد کمی توضیح دهید؟ آیا در آموزش هایی که گذاشته شده از این روش هم استفاده شده است؟ تولباکس متلب از این روش پشتیبانی می کند و اگر نمی کند باید از چه نرم افزار یا تولباکسی استفاده کرد؟

    با تشکر.

    http://www.sciencedirect.com/science/article/pii/S001600321500410X

    [پاسخ]

    علی جوادی پاسخ در تاريخ دی ۱۷ام, ۱۳۹۵ ۱۰:۱۳ ب.ظ:

    @امیر کاظمی,
    با سلام
    این روش برای حل مسایل غیر محدب (در این مقاله دوخطی) استفاده میشه و یک روش فرا ابتکاریه. من در آموزشها فقط solver ها رو معرفی کردم و نحوه حل مساله توسط اونها رو توضیح ندادم. بنابراین در مورد این روش هم توضیحی ندادم. مهم اینه که شما از یک solver که مساله شما رو حل میکنه بتونید استفاده کنید (مثلا از طریق YALMIP).
    البته اگر علاقمند به پیاده‌سازی یک روش خاص مثل DE باشید، میتونید از الگوریتم ارائه شده در فلوچارت شکل ۲ استفاده کرده و با استفاده از هر تولباکسی که LMI حل میکنه (تولباکس متلب یا YALMIP) این روش رو پیاده‌سازی کنید. در واقع با این روش مساله غیر محدب تبدیل به حل چند LMI میشه و در این مقاله اون LMI هارو با تولباکس متلب حل کرده.
    همونطور که تو فیلمها گفتم، برای حل نامساوی‌های دو خطی میتونید داخل YALMIP از solver PENBMI استفاده کنید که عملکرد خوبی داره ولی پولیه.
    امیدوارم توضیحات کافی باشه

    [پاسخ]

    امیر کاظمی پاسخ در تاريخ دی ۱۷ام, ۱۳۹۵ ۱۰:۱۵ ب.ظ:

    @علی جوادی,

    بسیار مفید بود، سپاس.

    [پاسخ]

  5. سلام ممنون از راهنماییتون
    از حل LMIهم که بگذریم و مقادیر P,L,B را معلوم فرض کنیم و K را از رابطه ذکر شده بدست اوریم رابطه ی L=PBK را برقرار نمیکند. ولی اثبات رابطه ذکر شده ظاهرا درست است.
    برای اثبات داریم : چون P معکوس پذیر است بنابراین با ضرب از سمت چپ طرفین رابطه ی L=PBK در P^-1 خواهیم داشت:BK=P^-1*L .با ضرب دو طرف تساوی از چپ در ماتریس B’ خواهیم داشت:B’*B*K=B’*P^-1*Lو چون B’*B معکوس پذیر است بنابراین با ضرب دو طرف مساوی از چپ در معکوس B’*B خواهیم داشت
    K=(B’*B)^-1*B’*P^-1*L ولی K بدست امده رابطه L=PBK را براورده نمیکند.به این رابطه خیلی نیاز دارم ممنونم اگر راهنمایی کنید.
    لینک مقالهhttp://www.sciencedirect.com/science/article/pii/S0016003214003573

    [پاسخ]

    علی جوادی پاسخ در تاريخ آذر ۱۸ام, ۱۳۹۵ ۶:۱۶ ب.ظ:

    @علی,
    سلام
    صفحه دوم مقاله اگر دقت کنید (پاراگراف سوم از آخر) توضیح داده که از روش best scalars selection استفاده کرده و اعتراف کرده که نمیشه جواب دقیق بدست آورد و بنابراین بهترین K که ماتریسهای L و PBK رو به هم نزدیک کنه، بدست آورده. همه اینا هم به خاطر این بوده که نتونسته مساله رو به فرم LMI در بیاره و برای تبدیل مساله از حالت quasi-convex به convex از این ترفند نادرست استفاده کرده. با این که ژورنال خوبیه ولی این مقاله متاسفانه سطح پایینی داره تضمینی برای پایداری سیستم با این روش وجود نداره حتی اگه شبیه سازی هم جواب بده. حتی مقادیر PBK و L مثال حل شده داخل خود مقاله هم برابر نیست!!! به شما هم توصیه میکنم از این روش استفاده نکنید
    موفق باشید

    [پاسخ]

  6. سلام
    در حالت عادی نمیشه ولی ایا مراحل زیر می تواند درست باشد؟
    pوL توسط متلب بدست می آید و pیک ماتریس۲*۲ است و B یک ماتریس ۱*۲ و L یک ماتریس ۲*۲ است و گین Kنیز باید ۲*۱ باشد. بنابراین می توان گین K را از رابطه ی زیر بدست آورد(این راه حل یکی از مقالات ژورنال است):
    K=(B’B)^-1*B’*P^-1*L

    [پاسخ]

    علی جوادی پاسخ در تاريخ آذر ۱۸ام, ۱۳۹۵ ۱۱:۰۲ ق.ظ:

    @علی,
    سلام
    خواهش من اینه که دوباره جواب قبلی من رو با دقت خیلی بیشتر بخونید. ولی برای اینکه مساله کاملا مشخص بشه من یک مثال نقض برای این راه حلی که شما پیدا کردید ارائه میکنم.
    فرض کنید [۲- ۱- ;۱ ۰]=A و [۱;۰]=B باشند. کد زیر برای شما مقادیر P مثبت معین و L رو محاسبه می کنه:
    clear all;close all;clc
    A=[0 1;-1 -2];B=[0;1];
    P=sdpvar(2,2);L=sdpvar(2,2);
    C=[ A’*P+P*A+L+L’=0 ];
    optimize(C);
    Pv=value(P)
    Lv=value(L)
    K=(B’*B)\B’/Pv*Lv
    مقادیر بدست اومده به شکل زیر هستند:
    P=[1 0;0 1]
    L=[-0.5 0;0 1.5]
    K=[1.5 0]
    حالا اگه PBK رو با مقادیر بدست اومده محاسبه کنید داریم:
    [۱٫۵ ۰;۰ ۰]=PBK
    در حالی که L برابر این مقدار نیست!
    علتش هم همون چیزیه که تو جواب قبلی خدمتتون عرض کردم. البته با توجه به اینکه ‘ (B’*B)\B معکوس مجازی B هستش، بنابراین از این رابطه که گفتید مقدار K طوری بدست میاد که فاصله بین نرم ماتریسهای L و PBK مینیمم بشه و همونطور که میبینید ماتریس L و PBK تو این مثال فقط تو یه درایه باهم فرق دارند و بقیه مقادیرشون یکسانه. ولی در حالت کلی به دلایلی که قبلا گفتم نمیشه هیچ جواب دقیقی بدست آورد.
    لطفا لینک اون مقاله رو همینجا بفرستید تا ببینم که آیا ژورنال معتبری هست یا نه؟
    با درود

    [پاسخ]

  7. سلام وقت بخیر
    ایا ممکن است در حل نامساوی ماتریسی مثلا عبارت PBK که PوK مجهول و B معلو م است ، تغییر متغییر L=PBK را انجام داد و آن را حل کرد؟
    ممنون میشم اگه جواب بدین.

    [پاسخ]

    علی جوادی پاسخ در تاريخ آذر ۱۷ام, ۱۳۹۵ ۹:۵۳ ب.ظ:

    @علی,
    با سلام و تشکر از سوال خوبی که پرسیدید.
    احتمالا منظور شما از این سوال این بوده که برای طراحی کنترل کننده فیدبک حالت که باید LMI زیر حل بشه، میشه این تغییر متغیر رو داد یا نه؟ (چون بعیده تو یه مساله کنترلی فقط جمله PBK به تنهایی ظاهر بشه که در اینصورت تغییر متغیر امکان پذیره ولی به دردی نمیخوره چون در عمل این حالت پیش نمیاد!)
    A’P+PA+PBK+K’B’P<0
    در اینصورت جواب شما منفیه به خاطر اینکه اگر این تغییر متغیر رو بدید، باید P موجود در جملات A'P و PA رو هم بر حسب متغیر جدید بنویسید یا رابطه اونا رو با L تعیین کنید. اگه قرار باشه L یه ماتریس جدید باشه و P هم یه ماتریس جدا باشه که باید توسط متلب پیدا بشه، اونوقت دیگه رابطه بین P و K با L از بین میره و شما نمیدونید به ازای اون P و L داده شده آیا میشه یک K پیدا کرد که رابطه L=PBK برقرار باشه یا نه؟ برای روشن شدن بحث فرض کنید P یک ماتریس متقارن دو در دو، B یک ماتریس دو در یک، K یک ماتریس یک در دو باشند و بنابراین L یک ماتریس دو در دو خواهد بود. حالا اگه P و L به صورت مستقل توسط متلب پیدا بشه (با حل A'P+PA+L+L'<0) و شما مقدارشونو بدونید، از مساوی قرار دادن L و PBK چهار معادله دارید در حالی که فقط دو متغیر داخل K دارید که باید طوری تعیین بشوند که همه چهار معادله برقرار باشه که در حالت کلی غیر ممکنه. اگه رو کاغذ یکبار بنویسید کاملا مطلب جا میافته.
    درود

    [پاسخ]

  8. سلام. اگر می شود لطفا PENBMI را برای دانلود قرار دهید.

    [پاسخ]

    علی جوادی پاسخ در تاريخ آذر ۲ام, ۱۳۹۵ ۱۱:۱۷ ب.ظ:

    @ali, با سلام. دوست عزیز همانطور که داخل فیلمها هم اشاره کردم، PENBMI یک solver رایگان نیست و باید برای استفاده از آن خریداری شود.
    درود

    [پاسخ]

    ali پاسخ در تاريخ آذر ۲ام, ۱۳۹۵ ۱۱:۱۸ ب.ظ:

    @علی جوادی,
    یعنی شما هم آن را ندارید؟

    [پاسخ]

    علی جوادی پاسخ در تاريخ آذر ۳ام, ۱۳۹۵ ۶:۵۴ ق.ظ:

    @ali, نسخه‌ای که من دارم صرفا برای مصارف تحقیقاتی بوده و برای دانشگاه علم و صنعت ایران خریداری شده و فقط دانشجویان این دانشگاه اجازه استفاده از اون رو دارند و من اجازه ندارم اونو در اختیار عموم قرار بدم. هر فرد یا دانشگاهی که نیاز داشته باشه باید اون رو خریداری کنه. البته توصیه میکنم نسخه آکادمیکش رو از طریق دانشگاهتون تهیه کنید که ارزونتره.
    اجازه بدید یه توصیه کلیتر هم بکنم. همیشه سعی کنید مساله رو طوری فرمولبندی کنید که به LMI برسید و بنابراین نیازی به solver هایی مثل PENBMI نداشته باشید. این کار دو مزیت داره:
    ۱) نیازی به هزینه کردن برای خرید PENBMI نیست.
    ۲) معمولا دید خوبی نسبت به مسایل غیرمحدب در بین داوران ژورنالهای معتبر وجود نداره و بنابراین اگر مقاله‌ای نگارش کنید که باید توش یه شرط BMI حل بشه احتمال رد شدن مقاله وجود داره.
    موفق باشید

    [پاسخ]

    ali پاسخ در تاريخ آذر ۳ام, ۱۳۹۵ ۱۰:۴۵ ق.ظ:

    @علی جوادی,
    ممنون که جواب دادید.
    قید من quasi-convex است.
    بازم اگه لطف کنید برام ایمیل کنید ممنون میشم ازتون.

    [پاسخ]

    علی جوادی پاسخ در تاريخ آذر ۳ام, ۱۳۹۵ ۱:۵۲ ب.ظ:

    @ali, متاسفانه امکانش نیست که این solver رو در اختیار هیچ کسی بذارم ولی قطعا میتونید الگوریتم های تکراری رایگان پیدا کنید که مسایل quasi-convex رو براتون حل بکنه.
    موفق باشید

    [پاسخ]

  9. سلام
    وقت بخیر
    آقای دکتر آیا دستور mincx فقط برای حالت مینیم سازی بصورت cx قابل استفاده است؟
    مثلا اگر یک پارامتر را (نه یک تابع) را بخواهیم مینیمم کنیم چطور؟
    مثلا قرار است نامساوی ماتریسی حل شود به شرط مینیمم سازی پارامتر d. که در ماتریس هم، پارامتر d بصورت ضرب در ماتریس واحد روی قطرهای اصلی قرار دارد. مثلا سطر اول به این صورت است…
    [dI BP-GC] (متاسفانه امکان اتچ کردن تصویر وجود ندارد و امکانات ویرایش هم در این صفحه محدود می باشد)
    G,P هم ماتریس های نامعلوم هستند که با حل LMI بدست می آیند.
    جناب دکتر جوادی قبلا از پاسخگویی شما سپاسگزارم

    [پاسخ]

    علی جوادی پاسخ در تاريخ آبان ۳ام, ۱۳۹۵ ۶:۴۶ ب.ظ:

    @یاسمن, با سلام
    اولا که تمام مجهولات شما چه ماتریسی، چه برداری و چه اسکالر همگی جزو متغیرهای LMI هستند و همگی داخل بردار تصمیم گیری یا x قرار دارند و شما با دستور mincx میتونید هر ترکیب خطی از این متغیرها رو (که همون cx باشه) مینیمم کنید. تنها کاری که شما باید بکنید اینه که محل اون متغیر دلخواه رو تو بردار تصمیم گیری پیدا کنید تا بردار c رو تعیین کنید (مثلا ضریب متناسب با اون متغیر تصمیم گیری رو تو بردار c یک کنید و بقیه رو صفر کنید). روشهای مختلفی برای این کار وجود داره که تو جلسه چهارم (تقریبا دقایق ۴ تا ۱۲) با یک مثال کاربردی مفصلا بحث شده. در واقع یکی از روشها دستور defcx هستش که تو فیلم به طور کامل توضیح داده شده.
    موفق باشید

    [پاسخ]

    یاسمن پاسخ در تاريخ آبان ۴ام, ۱۳۹۵ ۱۲:۴۰ ق.ظ:

    فراااااوااااان سپاااااااااس 🙂
    حل شد فقط دقتش مناسب نیست.

    [پاسخ]

    علی جوادی پاسخ در تاريخ آبان ۴ام, ۱۳۹۵ ۵:۵۳ ق.ظ:

    @یاسمن, برای بهتر شدن دقت شاید بهتر باشه از تولباکس YALMIP با solver MOSEK استفاده کنید.
    درود

    [پاسخ]

  10. اوکی
    سپاس
    ببخشید یک سوال دیگه:‏
    یکی از درایه های ماتریس من در ناتساوی ماتریسی به صورت‎+( P(UA)+TC)’ ‎‏ ‏P(UA)+TC‎ که من بصورت زیر اجرا کردم
    lmiterm([2 1 1 P],U*A,1,’s’);
    %lmiterm([2 1 1 0],T*C);
    %lmiterm([2 1 1 0],C’*T’);

    اما دو خطی که با %‏‎ ‎‏ نشان دادم رو ایراد میگیره که ابعاد متناسب نیستن! بنظرتون مشکل رو چطور حل کنم؟
    از اینکه باز هم ‏راهنمایی می فرمایید سپاسگزارم.‏

    [پاسخ]

    علی جوادی پاسخ در تاريخ مهر ۱۳ام, ۱۳۹۵ ۷:۰۷ ق.ظ:

    @یاسمن,
    با فرض اینکه ابعاد تمام ماتریسها درست تعیین شده باشند، به نظر میرسه مشکل تو خط اوله. مساله اینجاست که ماتریس UA از سمت راست به P ضرب شده ولی تو خط اول طوری تعریف کردید که انگار ماتریس UA از سمت چپ به ماتریس P ضرب شده. در واقع باید جای UA و ۱ تو تعریف عوض بشه.

    [پاسخ]

  11. سلام
    وقت بخیر
    متاسفانه من دیر پاسخ شما رو دیدم،واقعا سپاسگزارم. روش پیشنهادی شما رو انجام میدم، امیدوارم به جواب برسه. فقط ep1 و ep2 رو بنظرتون به چه صورتی تعریف کنم؟در واقع مساله LMI با فرض مینیمم کردن ep ها باید باشه !
    با آرزوی سلامت و شادی براتون

    [پاسخ]

    علی جوادی پاسخ در تاريخ مهر ۱۲ام, ۱۳۹۵ ۱۰:۱۸ ب.ظ:

    @یاسمن,
    سلام
    همونطور که قبلا عرض کردم علاوه بر ماتریس مجهول Z باید ep1>0 و ep2>0 رو هم به عنوان دو مجهول اسکالر تعریف کنید و بعد دو تا LMI بدست اومده رو با شرط مینیمم سازی c1*ep1+c2*ep2 حل کنید که c1 و c2 دو عدد مثبت هستند که شما انتخاب می کنید. البته دو شرط مثبت بودن ep1 و ep2 رو هم باید به LMI های قبلی اضافه کنید.

    [پاسخ]

  12. سلام
    سپاس از توضیحتون
    ماتریس u 7×۶ و ماتریس v 7×۴ هستش، یعنی ماتریس A 7×۱۰ میشه
    راستش هنوز نمیدونم چه راهی مناسب تره، و چه راه حلی بدون تبدیل به نامساوی میتونه براش وجود داشته باشه، باز هم ازتون خواهش میکنم اگر نکته ای در این خصوص به ذهنتون رسید، بفرمائید.
    صمیمانه سپاسگزارم

    [پاسخ]

    علی جوادی پاسخ در تاريخ مهر ۵ام, ۱۳۹۵ ۲:۴۰ ب.ظ:

    @یاسمن,
    سه نکته زیر رو هم به پاسخ قبلی باید اضافه کنم:
    ۱) به جای تجزیه ماتریسها میتونید از تعریف متغیرهای جدید بهره ببرید. فرض کنید متغیر جدید مساله [Z=[U V بوده و ماتریس جدید [N=[M;C رو هم تعریف کنید (ماتریس C زیر ماتریس M قرار دارد). بدین ترتیب میشه تساوی اول رو به شکل (Z=A+T(I-W و دومی رو به شکل ZN=I نوشت. حال اگر این دو تساوی رو به شکل ناتساوی بنویسیم داریم:
    ep1*I<ZN-I<ep1*I-
    ep2*I<Z-A-T(I-W)<ep2*I-
    حالا میتونید دو LMI بالا رو نسبت به متغیر جدید Z حل کرده و پس از حل مساله با توجه به ابعاد ماتریسهای U و V از داخل ماتریس Z استخراج کنید. دقت کنید که ابعاد ماتریسهای همانی درست باشند.
    ۲) هر دوی ep1 و ep2 باید اسکالرهای مثبتی باشند.
    ۳) به جای مینیمم کردن ep1+ep2 میتونید c1*ep1+c2*ep2 رو مینیمم کنید که در اون c1 و c2 اعداد مثبتی هستند که شما میتونید انتخاب کنید. این پارامترهای آزاد وزنی کمک میکنند تا اهمیت ep1 و ep2 رو مشخص کنید. مثلا اگر c1 بزرگتر از c2 باشه، یعنی اینکه ناتساوی اول (بدست اومده از تساوی اول) برای شما اهمیت بیشتری داره و میخوایید ep1 خیلی نزدیک صفر باشه (نسبت به ep2) تا ناتساوی اول بیشتر به تساوی نزدیک بشه.
    موفق باشید

    [پاسخ]

  13. سلام
    وقت بخیر
    باز هم از تدریس خوب LMI تشکر میکنم و یک سوال داشتم
    رابطه تساوی ماتریسی به شکل زیر دارم، میخواستم ببینم امکان حلش با ‏YALMIP‏ وجود داره؟
    ‎[U V]=A+T(I-W)‎‏ و ‏UM+VC=I‏ که ‏T، ماتریس دلخواهی است و ‏A,W,M,C‎‏ هم ماتریس هستند و موجود. و هدف بدست آوردن ‏ماتریس هایU,V ‎‏ هستش.‏
    از اینکه راهنمایی می فرمایید سپاسگزارم.‏

    [پاسخ]

    علی جوادی پاسخ در تاريخ مهر ۴ام, ۱۳۹۵ ۸:۲۰ ب.ظ:

    @یاسمن,
    با سلام و وقت بخیر.
    ۱) با توجه به اینکه مساله شما تساوی ماتریسی است و ناتساوی نیست شاید بهتر باشه از روشهای دیگه (اگر موجود باشه) استفاده کنید.
    ۲) توصیه میشه همیشه مساله رو از اول به شکل LMI مدل کنید تا اینکه مساله رو به شکل تساوی بدست بیارید و بعد سعی کنید با یک تولباکس که برای حل ناتساوی بهینه شده حل بکنید. شبیه اینه که شما بخواهید مثلا معادله جبری لیاپونوف یا معادله ریکاتی رو با LMI حل کنید درحالی که کلی روشهای حل عددی برای این معادلات وجود دارند. اگر هنوز اصرار به حل مساله با یالمیپ دارید به گزینه سه عمل کنید (که تضمینی براش وجود نداره).
    ۳) متاسفانه در مورد ابعاد ماتریسها اصلا صحبتی نکردید که باعث ایجاد ابهام میشه. مثلا معلوم نیست منظور از معادله U V]=A+T(I-W)‎‏] چیه؟ اگر منظور اینه که ابعاد U و V باهم با ابعاد A یکسانه بنابراین اولا باید ماتریس A و همچنین (T(I-W رو بگونه‌ای تجزیه بکنید که عبارتی به شکل [U V] ظاهر نشه. ثانیا باید تساویها رو به ناتساوی تبدیل کنید (البته بعد از تجزیه)، مثلا به شکل زیر:
    ep1*I<UM+VC-I<ep1*I-
    ep2*I<[U V]-A-T(I-W)<ep2*I-
    به شرطی که مثلا ep1 + ep2 مینیمم بشه. در حالت ایده‌ال که ep1=ep2=0 بشه، مساله تساوی حل میشه ولی در صورت وجود جواب یکتا برای این تساویها یالمیپ به احتمال زیاد اعداد کوچکی برای این متغیرها پیدا خواهد کرد که اگر به اندازه کافی کوچک باشند، به جواب ایده‌ال بسیار نزدیک خواهد بود.
    امیدوارم این توضیحات کافی باشه

    [پاسخ]

  14. با سلام و احترام

    مطالب ارائه شده بسیار مفید و کاملا عملی هستند.
    تسلط علمی مدرس نیز بر روی مطالب در تمامی جلسات مشهود است.
    جا داره واقعا از تسلط و توضیحات دقیق شما تشکر کنم.
    با آرزوی موفقیت و سربلندی … .

    [پاسخ]

    مدیر سایت پاسخ در تاريخ شهریور ۱۴ام, ۱۳۹۵ ۱۰:۳۳ ب.ظ:

    @رضا,
    سلام
    من به ایشون اعتقاد زیادی دارم نظمشون زبان زد خاص و عامه
    درود

    [پاسخ]

  15. سلام من فیلم رو دانلود کردم ولی هر کاری میکنم از حالت زیپ خارج نمیشه ؟ میشه راهنمایی بفرمایید؟

    [پاسخ]

    مدیر سایت پاسخ در تاريخ مرداد ۸ام, ۱۳۹۵ ۱۲:۱۹ ب.ظ:

    @محمد جواد,
    سلام
    همه پارت ها رو توی یک فولدر قرار بدین و بعد روی یکی از اونها کلیک راست کنید و گزینه اکسترکت هیر رو بزنید.

    [پاسخ]

  16. درود به شما
    جلسه دوم LMI هم مثل جلسه اول خیلی خوب بود، هیچ مشکلی هم در پخش نبود. اساسی خدا قوت.
    فقط اگر فونت دستورات matlab رو بزرگتر می گذاشتید بنظرم بهتر دیده می شد.
    سلامت و پاینده باشید.

    [پاسخ]

    علی جوادی پاسخ در تاريخ مرداد ۶ام, ۱۳۹۵ ۶:۱۹ ب.ظ:

    @یاسمن, ممنون از لطف شما و خوشحالم که فایلهای ویدیویی مشکلی ندارند. متاسفانه ضبط تمامی جلسات مربوط به آموزش LMI به اتمام رسیده و در این مرحله قادر به تغییر فونت دستورات متلب نیستم و با توجه به اینکه دستورات متلب موجود در فیلم قابل رویت هستند (هرچند کمی کوچک هستند) و همچنین تمامی کدها تقدیم شما می‌شود، ویدیوها دوباره ضبط نخواهند شد. البته در ویدیوهای آینده حتما پیشنهاد شما مدنظر قرار خواهد گرفت.
    با سپاس

    [پاسخ]

  17. با سلام و تشکر از حسن توجه شما
    من فیلم این جلسه رو با پخش کننده های ویدیویی مختلف امتحان کردم و داخل هیچ کدوم تاخیر یا جلو افتادگی وجود نداشت. کیفیت صدای VLC player و media player classic کمی پایین بود، کیفیت تصویر و صدای windows media player خوب بود و KM player هم در همه موارد متوسط بود ولی مشکل عدم مشاهده فایل pdf تو هیچ کدوم مشاهده نشد. البته فایل pdf به همراه فیلم تصویری جلسه دوم روی سایت قرار گرفته است. شاید بهتر باشه که یک نسخه جدید از پخش کننده ویدیویی که استفاده می کنید تهیه کنید و با نسخه جدید امتحان کنید.
    با تشکر از نظرتون

    [پاسخ]

  18. سلام
    خداقوت
    سپاس از کار مثبتی که در حال انجامش هستید.
    در مورد آموزش LMI در ابتدای جلسه اول مدرس محترم از فایل pdf ی صحبت می فرمایند که گویا با فرض این است که مخاطبین فایل را مشاهده می کنند ، اما در فیلم فایلی نشان داده نمی شود.
    لطفا چک بفرمایید.

    [پاسخ]

یک پاسخ بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *