کنترل مد لغزشی — به زبان ساده

۴۶۵۸ بازدید
آخرین به‌روزرسانی: ۱۳ اردیبهشت ۱۴۰۲
زمان مطالعه: ۹ دقیقه
دانلود PDF مقاله
کنترل مد لغزشی — به زبان سادهکنترل مد لغزشی — به زبان ساده

«کنترل مد لغزشی» (Sliding Mode Control) یا SMC یک روش کنترل غیرخطی است که ویژگی‌های منحصر به فردی مانند دقت، قوام، و تنظیم و پیاده‌سازی آسان دارد.

997696

به طور خلاصه می‌توان گفت که در کنترل مد لغزشی حالت‌های سیستم به یک سطح، به نام «سطح لغزش» (Sliding Surface)، در فضای حالت برده می‌شوند. وقتی حالت‌ها به سطح لغزش رسیدند، کنترل مد لغزشی حالت‌ها را در نزدیکی و همسایگی سطح لغزش نگه می‌دارد. بنابراین، این رویکرد، یک روش کنترلی با دو بخش است. در بخش اول یک سطح لغزش طراحی می‌شود که حرکت لغزشی مشخصات طراحی را برآورده کند. در بخش دوم، قانون کنترلی انتخاب می‌شود که با آن، سطح سوئیچنگ حالت سیستم را جذب کند.

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

کنترل مد لغزشی

سیستم تک‌ورودی-تک‌خروجی (SISO) زیر را در نظر بگیرید:

x˙=f(x,t)+g(x,t)u          (1) \large \dot {x} = f ( x , t ) + g ( x , t )u \;\;\;\;\; (1)

y=h(x,t)          (2) \large y = h ( x , t ) \;\;\;\;\; ( 2 )

که در آن، yy و uu، به ترتیب، متغیر خروجی و متغیر ورودی و xRn x \in R ^ n بردار حالت را نشان می‌دهند.

هدف کنترل، ردیابی سیگنال خروجی مطلوب yd y _ d است. به عبارت دیگر، بعد از مدت کوتاهی باید خطای e=yyd e = y - y _ {d} به مجاورت بسیار نزدیک صفر میل کند.

همان‌طور که گفتیم، کنترل مد لغزشی دو بخش دارد و طراحی آن در دو گام زیر انجام می‌شود:

  • مرحله اول: طراحی سطح لغزش
  • مرحله دوم: طراحی ورودی کنترل

مرحله اول معادل با تعریف یک تابع اسکالر (نرده‌ای) برحسب حالت سیستم است:

σ(X)=RnR \large \sigma ( X ) = \mathbb{R} ^ n \rightarrow \mathbb {R}

اغلب، سطح لغزش به خطای ردیابی ey e _ y و تعداد مشخصی از مشتق‌های آن بستگی دارد:

σ=σ(e,e˙,,e(k))          (3) \large \sigma = \sigma ( e , \dot { e } , \cdots , e ^ {(k)} ) \;\;\;\;\; (3)

تابع σ \sigma را باید به گونه‌ای انتخاب کرد که صفر شدن آن (σ=0\sigma = 0 ) به یک معادله دیفرانسیل «پایدار» منجر شود که در این صورت، هر جواب ey(t) e _ y (t) در نهایت به صفر میل خواهد کرد.

رایج‌ترین انتخاب برای انتخاب «خمینه» (Manifold) لغزش یک ترکیب خطی به صورت زیر است:

σ=e˙+c0e          (4) \large \sigma = \dot { e } + c _ 0 e \;\;\;\;\; (4)

σ=e¨+c1e˙+c0e          (5) \large \sigma = \ddot {e } + c_1 \dot { e } + c _ 0 e \;\;\;\;\; (5)

σ=e(k)+i=0k1cie(i)          (6) \large \sigma = e ^ {(k)} + \sum _ {i = 0} ^ {k-1} c _ i e ^ {(i)} \;\;\;\;\; (6)

تعداد مشتق‌های موجود (تعداد kk ضریب در (۶))، باید برابر با k=r1k = r - 1 باشد، که در آن، rr درجه نسبی ورودی-خروجی (۱) و (۲) است.

با انتخاب صحیح ضرایب ci c _ i ، اگر متغیر σ \sigma به صفر میل کند، خطا و مشتق‌های آن به صورت نمایی به صفر میل خواهند کرد. اگر چنین شرایطی برقرار باشد، آنگاه وظیفه کنترل صفر کردن σ\sigma در زمان محدود - بدون توجه به هر جنبه دیگری است.

از دیدگاه هندسی، معادله σ=0 \sigma = 0 سطحی را در فضای خطا تعریف می‌کند که «سطح لغزش» نامیده می‌شود. مسیرهای سیستم تحت کنترل باید به سطح لغزش بروند که در آن، مشخصات طراحی لحاظ شده است.

یک فرم سطح لغزش به صورت زیر است که تنها به پارامتر نرده‌ای pp بستگی دارد:

σ=(ddt+p)ke          (7) \large \sigma = \left ( \frac { d } { d t } + p \right ) ^ k e \;\;\;\;\; (7)

k=1            σ=e˙+pe          (8) \large k = 1 \;\;\; \rightarrow \;\;\; \sigma = \dot {e} + p e \;\;\;\;\; (8)

k=2            σ=e¨+2pe˙+p2e          (9) \large k = 2 \;\;\; \rightarrow \;\;\; \sigma = \ddot {e} + 2 p \dot { e } + p ^ 2 e \;\;\;\;\; (9)

انتخاب پارامتر مثبت pp اغلب دلخواه است و قطب یکتای «دینامیک کاهش یافته» سیستم در حال لغزش را بیان می‌کند. در طرف مقابل، پارامتر صحیح kk باید برابر با r1r-1 باشد، که rr درجه نسبی بین yy و uu است. این بدین معنی است که درجه نسبی متغیر σ\sigma برابر با یک است.

گام بعدی (گام دوم) یافتن یک عمل کنترلی است که مسیرهای سیستم را به خمینه لغزش ببرد؛ به عبارت دیگر، کنترل قادر است متغیر σ\sigma را در زمان محدود به صفر میل دهد.

به طور کلی، دو رویکرد بر اساس کنترل مد لغزشی وجود دارد: کنترل مد لغزشی استاندارد (یا مرتبه اول) و کنترل مد لغزشی مرتبه بالا. البته، در برخی منابع، به جای کنترل مد لغزشی مرتبه بالا، کنترل مد لغزشی مرتبه دوم را بیان می‌کنند. ویژگی مشترک همه روش‌های کنترل مد لغزشی این است که در آن‌ها نیازی به اطلاعات دقیق در مورد دینامیک سیستم نیست. به عبارت دیگر، سیستم تحت کنترل به عنوان یک «جعبه سیاه» کاملاً‌ نامعین در نظر گرفته می‌شود.

کنترل مد لغزشی مرتبه اول

کنترل در خمینه σ=0\sigma = 0 ناپیوسته است:

u=Usgn(σ)          (10) \large u = - U \text{sgn}(\sigma ) \;\;\;\;\;(10)

تابع علامت sgn\text{sgn} به گونه‌ای است که:

u={Uσ>0Uσ<0          (11) \large u = \begin {cases} - U & \sigma > 0 \\ U & \sigma < 0 \end {cases} \;\;\;\;\; (11)

پارامتر UU یک ثابت به اندازه کافی بزرگ است.

شکل ۱: تغییرات متغیر <span class=σ\sigma به ازای شرایط اولیه متفاوت" width="483" height="320">
شکل ۱: تغییرات متغیر σ\sigma به ازای شرایط اولیه متفاوت

در حالات مانا، متغیر کنترل uu با فرکانس بسیار بالایی (از نظر تئوری، بینهایت) بین مقادیر u=U u = U و u=U u = - U نوسان می‌کند (شکل ۲).

شکل ۲: تغییرات سیگنال کنترل <span class=uu (خط‌چین σ\sigma را نشان می‌دهد.)" width="361" height="320">
شکل ۲: تغییرات سیگنال کنترل uu (خط‌چین σ\sigma را نشان می‌دهد)

کنترل سوئیچینگ فرکانس بالای ناپیوسته (شکل ۲) در کاربردهای الکتریکی (که سیگنال‌های کنترل PWM به کار می‌رود) مناسب هستند، اما مثلاً‌ در سیستم‌های دینامیکی نوسانات بالا ممکن است منجر به مسائل مختلفی شود.

برای حل مشکل مزبور، که به پدیده چترینگ (Chattering Phenomenon) معروف است، از تکنیک‌هایی، مانند جایگزینی تابع sgn\text{sgn} با یک تقریب نَرم پیوسته استفاده می‌شود. برای مثال، به ترتیب، توابع اشباع (Sat) و تانژانت هیپربولیک (tanh) زیر به کار می‌روند:

u=Usat(σ,ε)Uσσ+ε          ε>0,      ε0          (12) \large u = - U \text{sat} ( \sigma , \varepsilon ) \equiv - U \frac { \sigma } { |\sigma | + \varepsilon } \;\;\;\;\; \varepsilon > 0 ,\;\;\; \varepsilon \approx0 \;\;\;\;\; (12)

u=Utanh(σ/ε)          ε>0,      ε0          (13) \large u = - U \text{tanh} ( \sigma /\varepsilon ) \;\;\;\;\; \varepsilon > 0 ,\;\;\; \varepsilon \approx0 \;\;\;\;\; (13)

البته این روش در حالت‌‌های خاصی مؤثر عمل می‌کند. یکی از این موارد وقتی است که نامعینی‌های سخت (Hard) وجود نداشته باشند.

بر اساس رای ۲۴ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
A Quick Introduction to Sliding Mode Control and Its Applications
۴ دیدگاه برای «کنترل مد لغزشی — به زبان ساده»

سلام مرسی. کمتر منبعی داخل نت هست که به این شیوایی توضیح داده باشه. فقط کاش فایل شبیه سازی رو هم قرار میدادین. اگر راجع به شکل 4 هم بیشتر توضیح بدین ممنون میشم.

سلام وقت بخیر ممنون از آموزش خوبتون فقط یک نکته رو میخواستم بگم که در فرمول (1)
g(x,t).u میباشد که به اشتباه g(x,t) نوشته شده.

سلام.
معادله تصحیح شد.
سپاس از همراهی و بازخوردتان.

سلام وقتتون بخیر،از آموزش های خوب و مفیدتون ممنونم.یک سوال درحین آموزش برای من پیش اومد و اون اینکه چرا برای صفر شدن مشتق سطح لغزش در کنترل مد لغزشی به سراغ اثبات پایداری سطح لغزش میرویم؟

نظر شما چیست؟

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