معرفی کنترل پیشبین(Model Predictive Control)
## چکیده
کنترل پیشبین یا کنترل Model Predictive Control (MPC) یک روش کنترل بهینه است که با استفاده از یک مدل ریاضی از سیستم، رفتار آینده سیستم را پیشبینی میکند و با حل یک مسئله بهینهسازی با محدودیت، عملهای کنترلی بهینه را تعیین میکند. این روش با اعمال اصل افق متحرک، در هر گام زمانی فقط اولین عمل کنترلی را اجرا میکند و در گام بعدی با توجه به حالت جدید سیستم، عملهای کنترلی را به روز میکند. کنترل پیشبین قابلیت کنترل سیستمهای چند ورودی چند خروجی، سیستمهای با تاخیر زمانی، سیستمهای با محدودیتها و سیستمهای با اطلاعات آینده را دارد. در این متن، مفاهیم اصلی، دستهبندیها، کاربردها و چالشهای کنترل پیشبین را معرفی میکنیم.
## مقدمه
کنترل یک سیستم پویا به معنای تنظیم عملهای کنترلی بر روی ورودیهای سیستم به گونهای است که خروجیهای سیستم به یک سیگنال مرجع دلخواه دنبال کنند. برای این منظور، معمولا از یک کنترلکننده استفاده میشود که بر اساس یک قانون کنترل، عملهای کنترلی را بر حسب خطای بین سیگنال مرجع و خروجی سیستم محاسبه میکند. بر اساس روش محاسبه قانون کنترل، میتوان کنترلکنندهها را به دستههای مختلفی تقسیم کرد. برخی از دستههای مهم عبارتند از:
– کنترلکنندههای کلاسیک: این دسته شامل کنترلکنندههایی است که قانون کنترل آنها بر اساس یک تابع خطی یا غیرخطی از خطای فعلی و گذشته است. مثالهایی از این دسته عبارتند از کنترلکنندههای نسبت، نسبت-انتگرال، نسبت-انتگرال-مشتق (PID)، کنترلکنندههای فازی و کنترلکنندههای عصبی.
– کنترلکنندههای پیشبین: این دسته شامل کنترلکنندههایی است که قانون کنترل آنها بر اساس یک تابع از خطای فعلی و آینده است. این کنترلکنندهها با استفاده از یک مدل ریاضی از سیستم، رفتار آینده سیستم را پیشبینی میکنند و با حل یک مسئله بهینهسازی با محدودیت، عملهای کنترلی بهینه را تعیین میکنند. مثالهایی از این دسته عبارتند از کنترلکنندههای کنترل پیشبین خطی (LMPC)، کنترل پیشبین غیرخطی (NMPC)، کنترل پیشبین تطبیقی (AMPC) و کنترل پیشبین تقریبی (EMPC).
– کنترلکنندههای تکراری: این دسته شامل کنترلکنندههایی است که قانون کنترل آنها بر اساس یک تابع از خطای فعلی و گذشته در چرخههای تکراری است. این کنترلکنندهها برای سیستمهایی که خروجی آنها در زمانهای مشخص تکرار میشود، مناسب هستند. مثالهایی از این دسته عبارتند از کنترلکنندههای تکراری خطی (LRC)، تکراری غیرخطی (NRC)، تکراری تطبیقی (ARC) و تکراری تقریبی (ERC).
در این متن، ما بر روی دسته دوم، یعنی کنترلکنندههای پیشبین تمرکز میکنیم. کنترلکنندههای پیشبین دارای ویژگیهای متمایزی هستند که آنها را از دیگر کنترلکنندهها متفاوت میکنند. برخی از این ویژگیها عبارتند از:
-کنترل بهینه: کنترلکنندههای پیشبین با حل یک مسئله بهینهسازی با محدودیت، عملهای کنترلی را طوری تعیین میکنند که یک تابع هزینه مربوط به عملکرد سیستم را کمینه کنند.
کنترل پیش بین مدل (Model Predictive Control)، یک کنترلکننده پیشرفته برای کنترل فرآیندهای صنعتی است که در آن میتوان قیدهای فیزیکی حاکم بر سیستم را در هنگام طراحی در نظر گرفت. مزیت دیگر کنترل پیشبین مدل این است که این کنترلکننده در واقع همان کنترل بهینه است، اما به صورت بلادرنگ (Real-time) و آنلاین بهینهسازی آن انجام میشود. در این آموزش قصد داریم به مبانی این کنترلکننده مهم بپردازیم و مزایا و معایب آن را بررسی کنیم. فهرست مطالب این نوشته مقایسه کنترل تناسبی-انتگرالی-مشتقی (PID) و کنترل پیش بین مدل اصول کنترل پیش بین مدل (MPC) اصل افق کاهنده (Receding Horizon Principle) افق کنترل مزایای کنترل پیشبین مدل معایب کنترل پیشبین مدل الگوریتمهای حل مسئله بهینهسازی انواع استراتژیهای کنترل پیشبین مدل مقایسه کنترل تناسبی-انتگرالی-مشتقی (PID) و کنترل پیش بین مدل در کنترل پیش بین مدل سیگنال کنترلی همواره از طریق حل یک مسئله بهینهسازی مقید حاصل میشود. تابع هزینه مسئله بهینهسازی، بسته به نوع پلانت میتواند انرژی مصرفی، سوخت مصرفی، انرژی خطای ردیابی و… باشد. برای درک بهتر عملکرد کنترل پیش بین مدل بهتر است که مقایسهای بین کنترلکننده رایج تناسبی-انتگرالی-مشتقی PID و کنترل پیشبین مدل به منظور کنترل سرعت یک موتور جریان مستقیم 12 ولت داشته باشیم. فیلم آموزش کنترل پیش بین مدل با متلب در فرادرس کلیک کنید در هنگام طراحی پارامترهای کنترلکننده PI ما فقط مشخصههای حوزه فرکانس یا زمان (مانند درصد بالازدگی، زمان نشست، پهنای باند و…) را در نظر میگیریم و کاری به انرژی مصرفی سیستم کنترل نداریم. اما به دلیل اینکه موتور 12 ولت است، نباید ولتاژی بیشتر از آن را به موتور اعمال کنیم، چون ممکن است موتور بسوزد. پس سیگنال کنترلی باید کوچکتر از 12 ولت باشد که این قید را نمیتوان در تنظیم پارامترهای کنترلکننده PI در نظر گرفت. از طرف دیگر، مسائل انرژی مصرفی و قیدهای مربوط به سیگنالهای کنترلی و حتی خود حالتهای سیستم را میتوان در کنترل پیشبین مدل در نظر گرفت. برای مثال میتوان کنترلکنندهای طراحی کرد که سیگنال کنترلی کمتر از 12 ولت باشد، سرعت موتور هیچ وقت بزرگتر از 1000 دور بر دقیقه نشود و همزمان با برآورده شدن این قیدها انرژی مصرفی موتور نیز حداقل شود. اصول کنترل پیش بین مدل (MPC) کنترل پیشبین مدل بر اساس بهینهسازی تکراری (آنلاین) یک تابع هزینه با افق محدود از عملکرد پلانت کار میکند. شکل زیر اصول کار این کنترلکننده محبوب را نشان میدهد.
انواع کنترل پیش بین
به طور کلی، میتوان کنترل پیشبین را به چهار دسته تقسیم کرد:
- کنترل پیشبین خطی (LMPC): این دسته شامل کنترلکنندههایی است که مدل سیستم، محدودیتها و تابع هزینه همگی خطی یا چندجملهای دوم هستند. در این حالت، مسئله بهینهسازی که کنترلکننده پیشبین حل میکند، یک مسئله برنامهریزی چندجملهای دوم (QP) است که میتواند با استفاده از الگوریتمهای مختلفی حل شود. این دسته از کنترل پیشبین برای سیستمهای خطی یا تقریبا خطی مناسب است.
- کنترل پیشبین غیرخطی (NMPC): این دسته شامل کنترلکنندههایی است که مدل سیستم، محدودیتها یا تابع هزینه غیرخطی هستند. در این حالت، مسئله بهینهسازی که کنترلکننده پیشبین حل میکند، یک مسئله برنامهریزی غیرخطی (NLP) است که میتواند با استفاده از الگوریتمهای مختلفی حل شود. این دسته از کنترل پیشبین برای سیستمهای غیرخطی یا خطی با محدودیتهای غیرخطی مناسب است.
- کنترل پیشبین تطبیقی (AMPC): این دسته شامل کنترلکنندههایی است که مدل سیستم را به صورت آنلاین برآورد میکنند و با توجه به برآورد جدید، عملهای کنترلی را به روز میکنند. در این حالت، مسئله بهینهسازی که کنترلکننده پیشبین حل میکند، میتواند خطی یا غیرخطی باشد. این دسته از کنترل پیشبین برای سیستمهای با پارامترهای نامعلوم یا متغیر مناسب است.
- کنترل پیشبین تقریبی (EMPC): این دسته شامل کنترلکنندههایی است که مسئله بهینهسازی را به صورت آفلاین حل میکنند و یک تابع تقریبی از عملهای کنترلی را بر حسب حالت سیستم به دست میآورند. در این حالت، مسئله بهینهسازی که کنترلکننده پیشبین حل میکند، میتواند خطی یا غیرخطی باشد. این دسته از کنترل پیشبین برای سیستمهای با محدودیتهای پیچیده یا با سرعت بالا مناسب است.
برخی از مدل های کنترل پیش بین
- مدل DMC (Dynamic Matrix Control): این مدل یکی از اولین و سادهترین مدلهای کنترل پیشبین است که برای سیستمهای خطی با تاخیر زمانی مناسب است. در این مدل، رفتار آینده سیستم با استفاده از یک ماتریس پاسخ پله (Step Response Matrix) توصیف میشود که نشان میدهد که خروجی سیستم چگونه به یک پله در ورودی واکنش مینشاند. این ماتریس میتواند از طریق آزمایشهای پلهای یا مدلسازی سیستم به دست آید. سپس با حل یک مسئله بهینهسازی خطی، عملهای کنترلی بهینه برای رسیدن به سیگنال مرجع مورد نظر محاسبه میشوند.
- مدل MAC (Model Algorithmic Control): این مدل یک تعمیم از مدل DMC است که برای سیستمهای خطی با تاخیر زمانی و محدودیتهای خطی مناسب است. در این مدل، رفتار آینده سیستم با استفاده از یک مدل خطی با پارامترهای متغیر توصیف میشود که میتواند از طریق برآوردگرهای آنلاین یا آفلاین به دست آید. سپس با حل یک مسئله بهینهسازی خطی با محدودیت، عملهای کنترلی بهینه برای رسیدن به سیگنال مرجع مورد نظر محاسبه میشوند.
- مدل GPC (Generalized Predictive Control): این مدل یک تعمیم از مدل MAC است که برای سیستمهای خطی با تاخیر زمانی و محدودیتهای غیرخطی مناسب است. در این مدل، رفتار آینده سیستم با استفاده از یک مدل خطی با پارامترهای متغیر توصیف میشود که میتواند از طریق برآوردگرهای آنلاین یا آفلاین به دست آید. سپس با حل یک مسئله بهینهسازی غیرخطی با محدودیت، عملهای کنترلی بهینه برای رسیدن به سیگنال مرجع مورد نظر محاسبه میشوند.
- مدل SMPC (Stochastic Model Predictive Control): این مدل یک تعمیم از مدل GPC است که برای سیستمهای خطی یا غیرخطی با تاخیر زمانی، محدودیتهای غیرخطی و عدم قطعیت مناسب است. در این مدل، رفتار آینده سیستم با استفاده از یک مدل تصادفی با پارامترهای متغیر توصیف میشود که میتواند از طریق برآوردگرهای آنلاین یا آفلاین به دست آید. سپس با حل یک مسئله بهینهسازی تصادفی با محدودیت، عملهای کنترلی بهینه برای رسیدن به سیگنال مرجع مورد نظر محاسبه میشوند.
- مدل PFC (Predictive Functional Control): این مدل یک تعمیم از مدل MPC است که برای سیستمهای خطی یا غیرخطی با تاخیر زمانی و محدودیتهای خطی مناسب است. در این مدل، رفتار آینده سیستم با استفاده از یک تابع هدف توصیف میشود که نشان میدهد که خروجی سیستم چگونه به سیگنال مرجع مورد نظر نزدیک میشود. این تابع هدف میتواند از طریق آزمایشهای پلهای یا مدلسازی سیستم به دست آید. سپس با حل یک مسئله بهینهسازی خطی با محدودیت، عملهای کنترلی بهینه برای رسیدن به تابع هدف محاسبه میشوند.
مزیت های کنترل پیش بین
کنترل پیشبین چندین مزیت دارد که برخی از آنها عبارتند از:
- کنترل پیشبین از یک مدل ریاضی از سیستم برای پیشبینی رفتار آینده سیستم استفاده میکند. این باعث میشود که کنترلکننده دقیق و واقعگرا باشد و بتواند به ساختار و پویایی سیستم تطبیق پیدا کند.
- کنترل پیشبین با حل یک مسئله بهینهسازی با محدودیت، عملهای کنترلی بهینه را تعیین میکند. این باعث میشود که کنترلکننده بهینه و محدودیتمدار باشد و بتواند به اهداف کنترلی دست یابد.
- کنترل پیشبین با اعمال اصل افق متحرک، در هر گام زمانی فقط اولین عمل کنترلی را اجرا میکند و در گام بعدی با توجه به حالت جدید سیستم، عملهای کنترلی را به روز میکند. این باعث میشود که کنترلکننده به روز و منعطف باشد و بتواند به تغییرات سیستم واکنش نشان دهد.
- کنترل پیشبین قابلیت کنترل سیستمهای چند ورودی چند خروجی، سیستمهای با تاخیر زمانی، سیستمهای با محدودیتها و سیستمهای با اطلاعات آینده را دارد. این باعث میشود که کنترلکننده کاربردی و گسترده باشد و بتواند به انواع سیستمها کنترل اعمال کند.
کاربردهای کنترل پیش بین
کنترل پیشبین در بسیاری از زمینههای مهندسی و صنعتی کاربرد دارد. برخی از کاربردهای کنترل پیشبین عبارتند از:
- کنترل پیشبین در صنایع شیمیایی، نفتی و گازی برای کنترل دما، فشار، جریان، ترکیب و غیره استفاده میشود. این روش باعث میشود که فرآیندهای تولید بهینه و کارآمد باشند و مصرف انرژی و هزینهها کاهش یابند
- کنترل پیشبین در صنایع برقی، الکترونیکی و ارتباطی برای کنترل تبدیلکنندههای قدرت، رباتها، ماهوارهها، شبکههای توزیع برق و غیره استفاده میشود. این روش باعث میشود که سیستمهای الکتریکی دقیق و پایدار باشند و توان و امنیت را افزایش دهند.
- کنترل پیشبین در صنایع حمل و نقل و خودروسازی برای کنترل موتور، گیربکس، ترمز، فرمان، کروز کنترل و غیره استفاده میشود. این روش باعث میشود که خودروها کارآمد و ایمن باشند و مصرف سوخت و آلایندگی را کاهش دهند.
- کنترل پیشبین در صنایع غذایی و زیستی برای کنترل دما، pH، تراکم، ترشح و غیره استفاده میشود. این روش باعث میشود که فرآیندهای تولید کیفیت و بهداشت بالایی داشته باشند و مصرف مواد اولیه و زمان را کاهش دهند.
- کنترل پیشبین در صنایع هوافضا و دفاعی برای کنترل هواپیماها، موشکها، رادارها، سیستمهای هدایت و غیره استفاده میشود. این روش باعث میشود که سیستمهای هوایی دقت و کارایی بالایی داشته باشند و توانایی پاسخگویی به شرایط مختلف را داشته باشند.
- کنترل پیشبین در صنایع پزشکی و دارویی برای کنترل دستگاههای پزشکی، تزریق دارو، تشخیص بیماری و غیره استفاده میشود. این روش باعث میشود که درمانهای پزشکی اثربخش و ایمن باشند و عوارض جانبی را کاهش دهند.
- کنترل پیشبین در صنایع معدنی و مواد برای کنترل کورهها، مخازن، فرآیندهای جداسازی و غیره استفاده میشود. این روش باعث میشود که فرآیندهای تولید مواد معدنی و مصنوعی کارآمد و کیفیت بالایی داشته باشند و مصرف انرژی و زیستمحیطی را کاهش دهند.
اینها فقط بخشی از کاربردهای کنترل MPC است.
کنترل پیش بین با متلب
برای طراحی و شبیهسازی کنترلکنندههای کنترل پیشبین، میتوانید از ابزارهای متلب استفاده کنید. برخی از این ابزارها عبارتند از:
- Model Predictive Control Toolbox: این ابزار یک مجموعه از توابع، یک برنامه، بلوکهای Simulink و مثالهای مرجع برای توسعه کنترلکنندههای کنترل پیشبین ارائه میدهد. برای مسائل خطی، این ابزار طراحی کنترلکنندههای کنترل پیشبین ضمنی، صریح، تطبیقی و برنامهریزی شده را پشتیبانی میکند. برای مسائل غیرخطی، میتوانید کنترلکنندههای کنترل پیشبین غیرخطی یک مرحلهای و چند مرحلهای را پیادهسازی کنید. این ابزار امکان استفاده از حلکنندههای بهینهسازی قابل انتقال و همچنین امکان استفاده از یک حلکننده سفارشی را فراهم میکند. میتوانید عملکرد کنترلکننده را در متلب و Simulink با اجرای شبیهسازیهای حلقه بسته ارزیابی کنید. برای رانندگی خودکار، میتوانید از بلوکها و مثالهای ارائه شده که با استانداردهای MISRA C و ISO 26262 سازگار هستند، برای شروع سریع با برنامههای کمک به حفظ خط، برنامهریزی مسیر، دنبال کردن مسیر و کنترل سرعت تطبیقی استفاده کنید. این ابزار پشتیبانی از کد C و CUDA و تولید متن ساختاریافته IEC 61131-3 را دارد1
- YALMIP: این ابزار یک محیط مدلسازی بهینهسازی برای متلب است که امکان حل مسائل بهینهسازی خطی، چندجملهای، غیرخطی، مختلط-صحیح و همگن را با استفاده از حلکنندههای مختلف فراهم میکند. میتوانید از این ابزار برای طراحی کنترلکنندههای کنترل پیشبین غیرخطی با استفاده از مدلهای پیشبینی، هزینه و محدودیت غیرخطی استفاده کنید. این ابزار امکان تعریف متغیرهای تصمیمگیری، محدودیتها و توابع هدف را با استفاده از سینتکس متلب ساده و قدرتمند فراهم میکند2
- MPCTools: این ابزار یک مجموعه از توابع و کلاسهای متلب برای توسعه کنترلکنندههای کنترل پیشبین غیرخطی است. این ابزار امکان تعریف مدلهای پیشبینی، هزینه و محدودیت غیرخطی را با استفاده از توابع متلب یا CasADi فراهم میکند. این ابزار از حلکنندههای بهینهسازی غیرخطی مختلفی مانند IPOPT، KNITRO، SNOPT و غیره پشتیبانی میکند. این ابزار امکان تولید کد C از مدلها و حلکنندهها را برای افزایش سرعت و قابلیت انتقال دارد3
کارشناسان متلبی توانایی انجام پروژه کنترل پیش بین را دارند, همانطور که پروژه های آماده کنترل پیش زیادی در سایت متلبی مشاهده کردید. متخصصان فرهیخته و مجرب در زمینه انجام شبیه سازی با کنترل MPC داریم. شما میتوانید سفارش کنترل پیش بین خود را به همراه آموزش و پشتیبانی از متلبی دریافت کنید.