در این پست فیلم آموزش مد لغزشی طبق کتاب اسلوتین قرار داده میشود. کتاب اسلوتین رو اگه خونده باشید متوجه خواهید شد که بسیاری از مطالب این فصل گنگ هستند و نیاز به توضیحات بیشتر دارن. ضمن اینکه به نظر من بعضی از مطالب این کتاب بعد از اینکه فصل به پایان رسید باید باز هم در موردشون بحث بشه اما توی کتاب این امکان وجود نداره . از طرفی مثال هایی در این کتاب وجود داره که اگه با روند شبیه سازی اون ها هم آشنا بشیم در یادگیری این روش جذاب بسیار موثره. من مد لغزشی رو بارها و بارها بر روی سیستم های مختلف شبیه سازی کردم و مقالات زیادی در این زمینه کار کردم.
چیزی که من تضمین میدم اینه که بعد از این دوره آموزشی، به نتایج زیر خواهید رسید:
مد لغزشی رو به طور کامل و فراتر از مطالب کتاب درک خواهید کرد
با نحوه شبیه سازی مثال ها و بحث روی آنها کاملا آشنا خواهید شد
نحوه تلفیق این روش با روش هایی مثل فازی، ژنتیک و … رو خواهید آموخت (مد لغزشی فازی در همین سایت قرار داده شده است برای دانلود این فیلم آموزشی کلیک بفرمایید)
پیاده سازی این روش بر روی سیستم های غیرخطی پیچیده و شبیه سازی آنها رو یاد خواهید گرفت.
میتونید برای سیستم خودتون این شبیه سازی ها رو انجام بدید
مقالات مختلف رو که در زمینه مد لغزشی هستن میتونید براحتی درک کنید.
تفاوت این آموزش با آموزش دیگری تحت عنوان “آموزش مد لغزشی از طراحی تا شبیه سازی“که در سایت قرار داده شده در این هست که آموزشی که در این پست قرار داره برای افرادیه که میخوان با عمق بیشتری مد لغزشی رو یاد بگیرن و اون آموزش برای کسیه که اطلاعات بسیار ناچیزی از مد لغزشی داره و فقط میخواد روی یه سیستم ساده یک مد لغزشی ساده رو پیاده کنه. اما در اینجا هم با مباحث بیشتری آشنا خواهید شد و هم مطالب با عمق بیشتری ذکر خواهند شد. همچنین یک “جزوه کاربردی مد لغزشی“ نیز در این سایت قرار داده شده است که همونطور که از اسمش معلومه فقط حالت کاربردی داره.
در این جلسه در مورد صورت مسئله مد لغزشی، انواع نامعینی، سطوح لغزشی و از همه مهمتر تبدیل مسئله مرتبه ان به مسئله مرتبه یک در مد لغزشی پرداخته شده است. در ادامه کلا در ارتباط با اینکه چطور میتوان یک مسئله ردیابی مرتبه ان رو به یک مسئله پایدارسازی از مرتبه یک (سطح سوئیچینگ) تبدیل کرد بحث کرد.
مبحث ناتمام جلسه قبل در این جلسه به اتمام میرسد. سپس در مورد شرط لغزش به طول مفصل بحث میشود همچنین در ادامه پدیده چترینگ توضیح داده شده است و در نهایت به توضیح فیلیپف و دینامیک معادل پرداخته شده است. دقت کنید این مطلب در کتاب اصلا بخوبی تفسیر داده نشده است.
مدت زمان آموزش: 55 دقیقه
محتویات دانلود :فیلم، پاورپوینت درس
جلسه سوم:
نحوه طراحی و شبیه سازی مد لغزشی به صورت گام به گام
در این جلسه ابتدا یک الگوریتم برای طراحی مد لغزشی ارائه شده است. این الگوریتم به صورت واضح بیان شده است و به صورت مفصل در مورد آن بحث شده است. مباحثی از قبیل نحوه انتخاب سطح لغزش، چرا سطح لغزش به فرمی که در کتاب است در نظر گرفته می شود؟ چرا در همه مقالات به این فرم نیست و ….. و در ادامه با یک مثال تک ورودی و تک خروجی ابتدا طراحی به طور کامل و براساس الگوریتمی که در ابتدای جلسه گفته شد انجام میشود و سپس این مثال در نرم افزار MATLAB شبیه سازی شده است. و در پایان، به بحث در مورد پارامتر های طراحی در این نرم افزار پرداخته شده است.
مدت زمان آموزش: 55 دقیقه
محتویات دانلود : فیلم، پاورپوینت درس و ام فایل مربوط به درس
جلسه چهارم:
طراحی و شبه سازی مد لغزشی برای سیستم های مرتبه دو و سه
در این جلسه طراحی کنترل کننده مد لغزشی و شبیه سازی آن در نرم افزار MATLAB برای دو سیستم مرتبه دو و سه انجام شده است. یکی از بحث های مهم طراحی مد لغزشی یعنی تبدیل هر سیستم غیرخطی به سیستم مرتبه دوم استاندارد به طور مفصل بحث شده است. همچنین مباحث تکمیلی در مورد تعریف سطح لغزش در مثال مربوط به سیستم مرتبه سه ذکر شذه است.
مدت زمان آموزش: 66 دقیقه
محتویات دانلود : فیلم، پاورپوینت درس و 2 ام فایل مربوط به درس
در ابتدای جلسه، کنترل کننده مد لغزشی برای سیستم های مرتبه n طراحی شده است تا اگر سیستم شما مثلا دارای درجه نسبی ده بود دیگه از اول تا آخر طراحی رو انجام ندید و یا اینکه اگه میخواید طراحی رو انجام بدید بدونید میخواید به چه چیزی برسید. در ادامه به بحث در مورد کنترل انتگرالی و حد بهره پرداخته شده است. توی کتاب دلیل استفاده از کنترل انتگرالی و اینکه چرا باید سطح لغزش در ابتدا صفر باشد چیزی نگفته. از طرفی مثال هم حل نشده است. ما در این آموزش هم کاربرد کنترل انتگرالی رو گفتیم و هم یک مثال رو در نرم افزار متلب شبیه سازی کردیم. پس از اون، به نقطه اوج طراحی مد لغزشی یعنی برای سیستم هایی که به فرم x^(n)=f(x)+g(x)u هستند پرداخته شده است. نحوه اثبات در کتاب خیلی گنگه. این اثبات با تمام جزئیات از ابتدا تا انتها ذکر شده است.
مدت زمان آموزش: 66 دقیقه
محتویات دانلود :فیلم، پاورپوینت درس و ام فایل مربوط به درس
در ابتدا به طراحی یک مثال برای سیستمی که بهره داشته باشه پرداخته شده است. سپس وارد موضوع چترینگ شدیم. کاربردهای چترینگ، نحوه حذف چترینگ در حالت کلی، دسته بندی که برای حذف چترینگ برای حالت های مختلف میتوان انجام داد و شبیه سازی یک مثال برای حالتی که لایه مرزی ثابت باشد موضوعاتیست که در این جلسه کار شده است. برای حذف چترینگ دو دسته بندی کلی انجام شده است یکی حذف چترینگ برای سیستم هایی که باید در آنها لایه مرزی ثابت باشد و دیگری حذف چترینگ برای سیستم هایی که در آنها لایه مرزی متغیر بهتر از لایه مرزی ثابت جواب می دهد. در این جلسه به دسته بندی اول پرداخته شده است.ضمنا مثالی که در این جلسه شبیه سازی شده است مثال7-2 کتاب است.
مدت زمان آموزش: 53 دقیقه
محتویات دانلود : فیلم، پاورپوینت درس و ام فایل مربوط به درس
در این جلسه به راه حل جذف چترینگ با استفاده از لایه مرزی متغیر پرداخته شده است. این روش برای سیستم هایی که ضریب ورودی کنترلی در آنها یک هست و نیست بررسی شده است و با ذکر مثال و شبیه سازی آن در نرم افزار متلب به صورت مفصل بحث شده است. حذف چترینگ با استفاده از لایه مرزی متغیر با زمان برای سیستم های خاصی هست. پیشنهاد می شود در صورتیکه فقط می خواید این جلسه رو خریداری بفرمایید جلسه قبل رو هم تهیه کنید چون ممکنه برای سیستم شما استفاده از این روش موضوعیت نداشته باشد.
مدت زمان آموزش: 55 دقیقه
محتویات دانلود : فیلم، پاورپوینت درس و ام فایل مربوط به درس
جلسه هشتم:
طراحی مد لغزشی برای یک سیستم چند ورودی – چند خروجی
یک مثال جامع که تمامی مباحث قبل رو بتونه پوشش بده رو طراحی کردم. مد لغزشی با در نظر گرفتن تمامی جوانب برای این سیستم طراحی شده است. در این مثال، یک سیستم دو ورودی و دو خروجی که چهار متغیر حالت دارد در نظر گرفته شده است. محدودیت های لامبدا نیز در صورت سوال مطرح شده است و این موضوع در ابتدای جلسه بحث شده است که چطور می توان محدودیت های مختلف را بر روی پارامتر لامبدا اعمال کرد.توجه بفرمایید این جلسه آخرین جلسه از مجموعه آموزش های مد لغزشی بر اساس کتاب اسلوتین بود. در ادامه سعی دارم نحوه تلفیق این روش با روش های دیگر و انواع دیگر مد لغزشی رو برای شما آماده کنم.
مدت زمان آموزش: 54 دقیقه
محتویات دانلود : فیلم، پاورپوینت درس
جلسه نهم:
در اين جلسه، يک واسط گرافيکي در متلب (gui) توليد شده که با استفاده از آن به طور اتوماتیک مي توانید يک کنترل کننده مد لغزشی (Sliding Mode) براي يک سيستم طراحي کنید. در واقع چکیده مباحث تدریس شده به صورت یک پنل تصویری در این جلسه آمده است. مخصوصاً برای دوستانی که فقط خروجی کار برای آنها مهم است، این واسط گرافيکي می تواند بسیار مفید باشد.
سلام. من در سیستمی که دارم میخواهم معادلات سیستم رو دی کوپل کنم و جداگانه هر کدام رو بررسی کنم اما در معادله xdot2 هیچ گونه u وجود ندارد و من باید 3 بار مشتق بگیرم تا u بوجود بیاد و در حالت بعدی هم 2 بار. اما در یک مقاله ای دیدم که سطح لغزش را s1=c1e1+c2e2 و s2=c3e3+c4e4 در نظر گرفته! مگر نباید در حالت اول s از درجه 3 و در حالت دوم از درجه 2محاسبه شود؟
معادلات سیستم :
xdot1=x2
xdot2=(x1x4^2-gsin(x3))1/k1
xdot3=x4
(xdot4=[-cos(x3)(k2x4cos(lx3/d)-0.5lmbg-mBgx1)+k3cos(x3)cos(lx3/d)u-2mBx1x2x4]1/(JB+Jb+mBx1^2
که مقادیر k مشخص هستند.
علاوه بر این beta1=beta3=0 و beta2=1 و beta4=ضریب u در معادله چهارم فرض شده. دلیل اینکه beta2 برابر 1 فرض میشود چیست؟ ما در معادله دوم u نداریم که ضریبش 1 باشد!
و سوال دیگر اینست که نامعینی سیستم که در آموزش fhat گفته شد، چگونه باید از این معادلات بدست آید ؟ در سوالاتی که در آموزش بررسی شد همگی حد نامعینی مشخص بودند ولی در اینجا چگونه مشخص می شود؟ در یک مقاله دیدم که از ماتریسی مانند ژاکوبین بدست آمد:
[rond(f1)/rond(x1) و … بقیه اجزا ماتریس بدین ترتیب…
این سوالات ذهنم را درگیر کرده .خیلی ممنونم پیشاپیش از پاسخ شما.
سلام
در مورد این قسمت از سوالتون “مگر نباید در حالت اول s از درجه ۳ و در حالت دوم از درجه ۲محاسبه شود؟” . من البته مسئول مقالات دیگران نیستم و نمیدونم در اون مقاله چیکار کرده و فقط پاسخگوی فیلم های آموزشی خودم هستم اما پاسخ سوال شما اینه که بله باید از درجه سه باشه و خب شما میتونید مقاله رو ببینید وقتی که با دو بار نتونسته همچنان به یو برسه پس چطوری ورودی کنترلی رو محاسبه کرده؟! ضمن اینکه سطح لغزشی که من در آموزش ها عرض کردم یک سطح روتین هست که 99 درصد مقالات به همین صورت میگیرند اما ممکنه برای یک سیستم خاص سطح لغزش به گونه های دیگری هم گرفته شود که احتمالا به لحاظ فیزیکی و براساس تجربه به اون صورت در نظر میگیرند.
در مورد این قسمت از سوالتون “دلیل اینکه beta2 برابر ۱ فرض میشود چیست؟ ” من هیچ بتایی در معادلات نمیبینم.
“و سوال دیگر اینست که نامعینی سیستم که در آموزش fhat گفته شد، چگونه باید از این معادلات بدست آید ؟” من نمیدونم در معادلات شما چه پارامترهایی متغیر هستند ولی اینکه fh چطوری بدست میاد شما باید یک مسئله بهینه رو به صورت تحلیلی حل کنید. به این ترتیب که با خودتون بگید که مقادیر نامعینی رو چه مقادیری بگیرم که کران بالای نامعینی بدست بیاد. البته این نکته رو هم عرض کنم که تخمین نامعینی معمولا با قرار دادن مقادیر متوسط پارامترهای نامعین بدست میاد.
سپاس
سلام اقای دکتر ببخشید در جلسه 2 انتهای جلسه فرمودین با تنظیم ضرایبی میتونیم زمان رسیدن سطح لغزش رو تنظیم کنیم ممنون میشم راهنمایی کنید چه ضرایبی می تونیم این کار رو انجام بدیم با تشکر
نه اقای دکتر در انتهای جلسه 2 شما فرمودین روش هایی در مقالاتی ارائه شده که مدت زمان رسیدن سطح لغزش رو درست تعیین می کنه و درست در همون زمان سطح لغزش به صفر میرسه و فرمودین مقالات اون مطالعه کردین ممنون میشم اگ بتونید یا اون مقالات به ما معرفی کنید و یا اینکه اگه خودتونیادتون هست لطف کنید پارامتر های اون معرفی کنید با تشکر
سلام اقای دکتر ببخشید در جلسه 6 فرمودین به منظور حذف چترینگ باید به سیستم خطا تزریق کنیم که اگر لایه مرزی به صورت ثابت در نظر بگیریم در این حالت خطا دارای رابطه ای می باشد ببخشید رابطه خطا رو از کجا به دست آوردین تو کتاب اسلوتین هست
سلام . بله اگه لایه مرزی بدیم چترینگ حذف میشه اما خطا به سیستممون تحمیل میشه. رابطه خطا و لایه مرزی رو در جلسات ابتدایی عرض کردم. مجددا ملاحظه بفرمایید
با عرض سلام و تشکر از آموزش های بسیار خوبتون ببخشید یک سوال داشتم در قسمت 8 نوشتید یک سیستم مایمو طراحی کردین ولی در محتویات کد متلبشو ننوشتید میخاستم بدونم داخل این اموزش این مثال در متلب شبیه سازی شده است و کد هاش موجود هست؟
خیلی ممنونم
سلام. نظر لطفتون هست. اینکه چطور برنامه نوشته بشه رو توضیح دادم ولی به صورت کامل برنامه رو ننوشتم. اگر جلسات قبل رو با دقت ملاحظه کرده باشید با توجه به توضیحات شبیه سازی توی این جلسه، مشکلی نخواهید داشت.
سپاسگزارم
سلام من سیستم زیر را دارم
چجوری در سیمولینک پیاده سازی کنم.امکانش هست سیمولینکشو برام بذارین
x¨ = f (x,ẋ) + g (x,ẋ)u,
(Ṡ = −ksign(S,
((u =inv(b) (x¨d−λx −f−ksign(S
سلام خسته نباشید ممنون از پاسختون
اگر ما از معادلات سیستم مشتق گرفتیم و بهر دلیلی ضریب u صفر شد ، راه حلی وجود داره؟
سلام
این موضوع به صورت مفصل به همراه مثال در فیلم های آموزشی توضیح داده شد. لطفا مجددا آموزش رو ببینید.
سپاس
سلام. من در سیستمی که دارم میخواهم معادلات سیستم رو دی کوپل کنم و جداگانه هر کدام رو بررسی کنم اما در معادله xdot2 هیچ گونه u وجود ندارد و من باید 3 بار مشتق بگیرم تا u بوجود بیاد و در حالت بعدی هم 2 بار. اما در یک مقاله ای دیدم که سطح لغزش را s1=c1e1+c2e2 و s2=c3e3+c4e4 در نظر گرفته! مگر نباید در حالت اول s از درجه 3 و در حالت دوم از درجه 2محاسبه شود؟
معادلات سیستم :
xdot1=x2
xdot2=(x1x4^2-gsin(x3))1/k1
xdot3=x4
(xdot4=[-cos(x3)(k2x4cos(lx3/d)-0.5lmbg-mBgx1)+k3cos(x3)cos(lx3/d)u-2mBx1x2x4]1/(JB+Jb+mBx1^2
که مقادیر k مشخص هستند.
علاوه بر این beta1=beta3=0 و beta2=1 و beta4=ضریب u در معادله چهارم فرض شده. دلیل اینکه beta2 برابر 1 فرض میشود چیست؟ ما در معادله دوم u نداریم که ضریبش 1 باشد!
و سوال دیگر اینست که نامعینی سیستم که در آموزش fhat گفته شد، چگونه باید از این معادلات بدست آید ؟ در سوالاتی که در آموزش بررسی شد همگی حد نامعینی مشخص بودند ولی در اینجا چگونه مشخص می شود؟ در یک مقاله دیدم که از ماتریسی مانند ژاکوبین بدست آمد:
[rond(f1)/rond(x1) و … بقیه اجزا ماتریس بدین ترتیب…
این سوالات ذهنم را درگیر کرده .خیلی ممنونم پیشاپیش از پاسخ شما.
سلام
در مورد این قسمت از سوالتون “مگر نباید در حالت اول s از درجه ۳ و در حالت دوم از درجه ۲محاسبه شود؟” . من البته مسئول مقالات دیگران نیستم و نمیدونم در اون مقاله چیکار کرده و فقط پاسخگوی فیلم های آموزشی خودم هستم اما پاسخ سوال شما اینه که بله باید از درجه سه باشه و خب شما میتونید مقاله رو ببینید وقتی که با دو بار نتونسته همچنان به یو برسه پس چطوری ورودی کنترلی رو محاسبه کرده؟! ضمن اینکه سطح لغزشی که من در آموزش ها عرض کردم یک سطح روتین هست که 99 درصد مقالات به همین صورت میگیرند اما ممکنه برای یک سیستم خاص سطح لغزش به گونه های دیگری هم گرفته شود که احتمالا به لحاظ فیزیکی و براساس تجربه به اون صورت در نظر میگیرند.
در مورد این قسمت از سوالتون “دلیل اینکه beta2 برابر ۱ فرض میشود چیست؟ ” من هیچ بتایی در معادلات نمیبینم.
“و سوال دیگر اینست که نامعینی سیستم که در آموزش fhat گفته شد، چگونه باید از این معادلات بدست آید ؟” من نمیدونم در معادلات شما چه پارامترهایی متغیر هستند ولی اینکه fh چطوری بدست میاد شما باید یک مسئله بهینه رو به صورت تحلیلی حل کنید. به این ترتیب که با خودتون بگید که مقادیر نامعینی رو چه مقادیری بگیرم که کران بالای نامعینی بدست بیاد. البته این نکته رو هم عرض کنم که تخمین نامعینی معمولا با قرار دادن مقادیر متوسط پارامترهای نامعین بدست میاد.
سپاس
سلام اقای دکتر ببخشید در جلسه 2 انتهای جلسه فرمودین با تنظیم ضرایبی میتونیم زمان رسیدن سطح لغزش رو تنظیم کنیم ممنون میشم راهنمایی کنید چه ضرایبی می تونیم این کار رو انجام بدیم با تشکر
سلام. منظورم همون ضریب تابع علامت هست. زمان رسیدن به سطح لغزش رو مجددا توی فیلم ها ببینید (tr) . این زمان به چه پارامترهایی وابستس؟
سپاس
نه اقای دکتر در انتهای جلسه 2 شما فرمودین روش هایی در مقالاتی ارائه شده که مدت زمان رسیدن سطح لغزش رو درست تعیین می کنه و درست در همون زمان سطح لغزش به صفر میرسه و فرمودین مقالات اون مطالعه کردین ممنون میشم اگ بتونید یا اون مقالات به ما معرفی کنید و یا اینکه اگه خودتونیادتون هست لطف کنید پارامتر های اون معرفی کنید با تشکر
سلام
بله مقاله ای بود که قبلا خودم شبیه سازیش کردم ولی متاسفانه الان حضور ذهن ندارم
سلام اقای دکتر ببخشید در جلسه 6 فرمودین به منظور حذف چترینگ باید به سیستم خطا تزریق کنیم که اگر لایه مرزی به صورت ثابت در نظر بگیریم در این حالت خطا دارای رابطه ای می باشد ببخشید رابطه خطا رو از کجا به دست آوردین تو کتاب اسلوتین هست
سلام . بله اگه لایه مرزی بدیم چترینگ حذف میشه اما خطا به سیستممون تحمیل میشه. رابطه خطا و لایه مرزی رو در جلسات ابتدایی عرض کردم. مجددا ملاحظه بفرمایید
با عرض سلام و تشکر از آموزش های بسیار خوبتون ببخشید یک سوال داشتم در قسمت 8 نوشتید یک سیستم مایمو طراحی کردین ولی در محتویات کد متلبشو ننوشتید میخاستم بدونم داخل این اموزش این مثال در متلب شبیه سازی شده است و کد هاش موجود هست؟
خیلی ممنونم
سلام. نظر لطفتون هست. اینکه چطور برنامه نوشته بشه رو توضیح دادم ولی به صورت کامل برنامه رو ننوشتم. اگر جلسات قبل رو با دقت ملاحظه کرده باشید با توجه به توضیحات شبیه سازی توی این جلسه، مشکلی نخواهید داشت.
سپاسگزارم
سلام من سیستم زیر را دارم
چجوری در سیمولینک پیاده سازی کنم.امکانش هست سیمولینکشو برام بذارین
x¨ = f (x,ẋ) + g (x,ẋ)u,
(Ṡ = −ksign(S,
((u =inv(b) (x¨d−λx −f−ksign(S
s ̇=〖k|s|〗^α/〖β+(1-β)e〗^(〖-γ|s|〗^μ ) sign(s)
سلام
خیر این امکان وجود ندارد.