کنترل مد لغزشی — به زبان ساده
«کنترل مد لغزشی» (Sliding Mode Control) یا SMC یک روش کنترل غیرخطی است که ویژگیهای منحصر به فردی مانند دقت، قوام، و تنظیم و پیادهسازی آسان دارد.
به طور خلاصه میتوان گفت که در کنترل مد لغزشی حالتهای سیستم به یک سطح، به نام «سطح لغزش» (Sliding Surface)، در فضای حالت برده میشوند. وقتی حالتها به سطح لغزش رسیدند، کنترل مد لغزشی حالتها را در نزدیکی و همسایگی سطح لغزش نگه میدارد. بنابراین، این رویکرد، یک روش کنترلی با دو بخش است. در بخش اول یک سطح لغزش طراحی میشود که حرکت لغزشی مشخصات طراحی را برآورده کند. در بخش دوم، قانون کنترلی انتخاب میشود که با آن، سطح سوئیچنگ حالت سیستم را جذب کند.
کنترل مد لغزشی دو مزیت اصلی دارد. اولین مزیت این است که میتوان با انتخاب تابع لغزشی مناسب، به رفتار دینامیکی مطلوب سیستم دست یافت. مزیت دوم این است که پاسخ حلقهبسته سیستم هیچ حساسیتی نسبت به نامعینیها (پارامترهای مدل، اغتشاشها و غیرخطی بودن) ندارد. در نتیجه، از دیدگاه عملی، با استفاده از کنترل مد لغزشی میتوانیم فرایندهای غیرخطی را در حضور اغتشاشات و نامعینیهای مدل کنترل کنیم.
کنترل مد لغزشی
سیستم تکورودی-تکخروجی (SISO) زیر را در نظر بگیرید:
که در آن، و ، به ترتیب، متغیر خروجی و متغیر ورودی و بردار حالت را نشان میدهند.
هدف کنترل، ردیابی سیگنال خروجی مطلوب است. به عبارت دیگر، بعد از مدت کوتاهی باید خطای به مجاورت بسیار نزدیک صفر میل کند.
همانطور که گفتیم، کنترل مد لغزشی دو بخش دارد و طراحی آن در دو گام زیر انجام میشود:
- مرحله اول: طراحی سطح لغزش
- مرحله دوم: طراحی ورودی کنترل
مرحله اول معادل با تعریف یک تابع اسکالر (نردهای) برحسب حالت سیستم است:
اغلب، سطح لغزش به خطای ردیابی و تعداد مشخصی از مشتقهای آن بستگی دارد:
تابع را باید به گونهای انتخاب کرد که صفر شدن آن () به یک معادله دیفرانسیل «پایدار» منجر شود که در این صورت، هر جواب در نهایت به صفر میل خواهد کرد.
رایجترین انتخاب برای انتخاب «خمینه» (Manifold) لغزش یک ترکیب خطی به صورت زیر است:
تعداد مشتقهای موجود (تعداد ضریب در (۶))، باید برابر با باشد، که در آن، درجه نسبی ورودی-خروجی (۱) و (۲) است.
با انتخاب صحیح ضرایب ، اگر متغیر به صفر میل کند، خطا و مشتقهای آن به صورت نمایی به صفر میل خواهند کرد. اگر چنین شرایطی برقرار باشد، آنگاه وظیفه کنترل صفر کردن در زمان محدود - بدون توجه به هر جنبه دیگری است.
از دیدگاه هندسی، معادله سطحی را در فضای خطا تعریف میکند که «سطح لغزش» نامیده میشود. مسیرهای سیستم تحت کنترل باید به سطح لغزش بروند که در آن، مشخصات طراحی لحاظ شده است.
یک فرم سطح لغزش به صورت زیر است که تنها به پارامتر نردهای بستگی دارد:
انتخاب پارامتر مثبت اغلب دلخواه است و قطب یکتای «دینامیک کاهش یافته» سیستم در حال لغزش را بیان میکند. در طرف مقابل، پارامتر صحیح باید برابر با باشد، که درجه نسبی بین و است. این بدین معنی است که درجه نسبی متغیر برابر با یک است.
گام بعدی (گام دوم) یافتن یک عمل کنترلی است که مسیرهای سیستم را به خمینه لغزش ببرد؛ به عبارت دیگر، کنترل قادر است متغیر را در زمان محدود به صفر میل دهد.
به طور کلی، دو رویکرد بر اساس کنترل مد لغزشی وجود دارد: کنترل مد لغزشی استاندارد (یا مرتبه اول) و کنترل مد لغزشی مرتبه بالا. البته، در برخی منابع، به جای کنترل مد لغزشی مرتبه بالا، کنترل مد لغزشی مرتبه دوم را بیان میکنند. ویژگی مشترک همه روشهای کنترل مد لغزشی این است که در آنها نیازی به اطلاعات دقیق در مورد دینامیک سیستم نیست. به عبارت دیگر، سیستم تحت کنترل به عنوان یک «جعبه سیاه» کاملاً نامعین در نظر گرفته میشود.
کنترل مد لغزشی مرتبه اول
کنترل در خمینه ناپیوسته است:
تابع علامت به گونهای است که:
پارامتر یک ثابت به اندازه کافی بزرگ است.
در حالات مانا، متغیر کنترل با فرکانس بسیار بالایی (از نظر تئوری، بینهایت) بین مقادیر و نوسان میکند (شکل ۲).
کنترل سوئیچینگ فرکانس بالای ناپیوسته (شکل ۲) در کاربردهای الکتریکی (که سیگنالهای کنترل PWM به کار میرود) مناسب هستند، اما مثلاً در سیستمهای دینامیکی نوسانات بالا ممکن است منجر به مسائل مختلفی شود.
برای حل مشکل مزبور، که به پدیده چترینگ (Chattering Phenomenon) معروف است، از تکنیکهایی، مانند جایگزینی تابع با یک تقریب نَرم پیوسته استفاده میشود. برای مثال، به ترتیب، توابع اشباع (Sat) و تانژانت هیپربولیک (tanh) زیر به کار میروند:
البته این روش در حالتهای خاصی مؤثر عمل میکند. یکی از این موارد وقتی است که نامعینیهای سخت (Hard) وجود نداشته باشند.
سلام مرسی. کمتر منبعی داخل نت هست که به این شیوایی توضیح داده باشه. فقط کاش فایل شبیه سازی رو هم قرار میدادین. اگر راجع به شکل 4 هم بیشتر توضیح بدین ممنون میشم.
سلام وقت بخیر ممنون از آموزش خوبتون فقط یک نکته رو میخواستم بگم که در فرمول (1)
g(x,t).u میباشد که به اشتباه g(x,t) نوشته شده.
سلام.
معادله تصحیح شد.
سپاس از همراهی و بازخوردتان.
سلام وقتتون بخیر،از آموزش های خوب و مفیدتون ممنونم.یک سوال درحین آموزش برای من پیش اومد و اون اینکه چرا برای صفر شدن مشتق سطح لغزش در کنترل مد لغزشی به سراغ اثبات پایداری سطح لغزش میرویم؟