خانه :: اساتید :: اخبار

بازدید:46281   بروزرسانی: 11-10-1402

Farhad Bayat

جعبه ابزار کنترل پیش بین در 3 گام: MPC3S


توصیف کلی

MPC3S  یک جعبه ابزار متن باز است که به سادگی و تنها در سه گام امکان تعریف، حل و شبیه سازی انواع مختلف روش های کنترل پیش بین مبتنی بر مدل خطی (MPC) را فراهم می کند. 

>>  دانلود فایل راهنمای کاربر MPC3S  <<

فيلم هاي آموزش جعبه ابزار MPC3S: 

دانلود فيلم كامل كارگاه "كنترل پيش بين مبتني بر مدل در 3 گام" ارائه شده در 30 امين كنفرانس بين المللي مهندسي برق ايران

بخش اول آموزش (مقدمه و ساختار کنترل پيش بين)


سیستم مورد نیاز:

جعبه ابزار MPC3S از همه سیستم عامل های زیر پشتیبانی می کند:

  • Windows 32bit/64bit
  • Linux 32bit/64bit
  • Mac 32bit/64bit
  • MATLAB online

روش نصب و حذف:

برای نصب جعبه ابزار MPC3S مراحل زیر را انجام دهید:

گام 1: فایل مناسب جعبه ابزار را مطابق سیستم عامل خود از لینکهای زیر دانلود کنید:   

                                              

گام 2: فایل را از حالت فشرده خارج کنید. سپس، فایل "MPC3S_install.m" را توسط MATLAB باز نموده و اجرا کنید.

گام 3: اکنون به تمام دستورات جعبه ابزار MPC3S از طریق MATLAB دسترسی دارید.


چگونه به MPC3S ارجاع دهیم:

درصورتیکه در پژوهش های خود از این ابزار بهره برده باشید می توانید به روش زیر به این جعبه ابزار ارجاع دهید:

فارسی:

[1] فرهاد بیات، "کنترل پیش بین مبتنی بر مدل: تئوری و کاربردها"، انتشارات دانشگاه زنجان، 1400.

[2] فرهاد بیات، "MPC3S: جعبه ابزاری برای طراحی و پیاده سازی کنترل پیش بین در محیط MATLAB"، سال 2022.

انگلیسی:

[1] Farhad Bayat, "Model Predictive Control: Theory and Applications", University of Zanjan, 2021.

[2] Farhad Bayat, "MPC3S: A toolbox for designing and implementing Model Predictive Control in MATLAB", www.znu.ac.ir/members/newpage/915/en, 2022.

@InBook {MPCbayat,                                                                                                                                     
author={Farhad Bayat},                                                                                                                            
title={Model Predictive Control: Theory and Applications},                                                                  
year={2021},                                                                                                                                         
address={University of Zanjan, Iran}}                                                                                                         

ارتباط با توسعه دهند:

برای ارائه نظرات، گزارش اشکالات یا انجام سوال در خصوص MPC3S می توانید از طریق ایمیل زیر ارتباط داشته باشید:

Email: bayat.farhad@znu.ac.ir


ویژگیهای جعبه ابزار MPC3S:

  • برخلاف اکثر جعبه ابزارهای موجود در حوزه کنترل پیش بین، MPC3S قابلیت بهره گیری از کلیه مدلهای زیر را در یک چارچوب واحد فراهم می کند:
    • ​مدل تابع تبدیل به فرم CARIMA،
    • مدل فضای حالت (SS)،
    • مدل پاسخ ضربه منقطع FIR/TIR،
    • مدل پاسخ پله منقطع FSR/TSR،
    •  
  • جعبه ابزار MPC3S به ساده ترین شکل این امکان را به طراح می دهد که مدل فرایند، مدل اغتشاش، افق های پیش بینی و کنترلی، محدودیت ها، وزن ها، فیلترهای مورد استفاده برای کاهش نویز اندازه گیری و مدل مشاهده گر (در صورت بهره گیری از مدل فضای حالت) را تعریف کند.
  •  
  • با بهره گیری از MPC3S هر مسأله کنترل پیش بین فقط در سه گام قابل طراحی و ارزیابی است:

گام 1: مسأله MPC خود را فقط با فراخوانی یک تابع "()MPC_Problem" تعریف کنید.

گام 2: مسأله MPC خود را فقط با فراخوانی یک تابع "()MPC_Solve" حل کنید.

گام 3: مسأله MPC خود را فقط با فراخوانی یک تابع "()MPC_Sim" شبیه سازی کنید.

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

یک مثال ساده:

یک سیستم SISO مرتبه 1 با مدل فضای حالت زیر را درنظر بگیرید (زمان نمونه برداری Ts=1 ثانیه است):

 

 

تابع هزینه مربوط به مسأله کنترل پیش بین را به صورت زیر درنظر بگیرید:

 

 

پارامترهای تابع هزینه به صورت زیر درنظر گرفته می شوند:

 

همچنین، محدودیت های زیر در سیستم درنظر گرفته می شوند:

 

 

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

 

 

 

 

 

حل با استفاده از جعبه ابزار MPC3S:

گام 1: تعریف مسأله

Problem = MPC_Problem('SS');                                                    

Problem.Plant.Model.A = 0.5;                                                         

Problem.Plant.Model.B = 1;                                                            

Problem.Plant.Model.C = 1;                                                            

Problem.Plant.Ts = 1;                                                                      

Problem.Plant.ny = 1;                                                                      

Problem.Cost.Np = 10;                                                                    

Problem.Cost.Nc = 5;                                                                      

Problem.Cost.Gama = 2;                                                                 

Problem.Cost.Lamda = 1;                                                                

Problem.Constraints.umax = 1;                                                        

Problem.Constraints.umin = -1;                                                        

Problem.Constraints.Dumax = 0.2;                                                   

Problem.Constraints.Dumin = -0.2;                                                   

گام 2: حل مسأله

mpcLaw = MPC_Solve(Problem);                                                     

گام 3: شبیه سازی حلقه بسته

SimParams = MPC_SimParams('SS');                                              

SimParams.Ref = 2*ones(1,50);                                                         

SimParams.Dist = [zeros(1,20),0.5*ones(1,30)];                                

SimParams.Noise.y = [zeros(1,30),0.05*(2*rand(1,20)-1)];                

Results= MPC_Sim(mpcLaw,SimParams);                                        

MPC_Plot(Results)                                                                            

نتایج شبیه سازی حلقه بسته سیستم در حضور کنترل کننده پیش بین طراحی شده در شکل 1 نشان داده شده اند.

 

نکته:

دو تابع کمکی "()MPC_SimParams" و "()MPC_Plot" در کدهای فوق به ترتیب برای آماده سازی پارامترهای شبیه سازی و ترسیم نتایج شبیه سازی مورد استفاده قرار گرفته اند.

شکل 1: نتایج شبیه سازی حلقه بسته سیستم در حضور کنترل کننده پیش.