بازدید:46281 بروزرسانی: 11-10-1402
توصیف کلی:
MPC3S یک جعبه ابزار متن باز است که به سادگی و تنها در سه گام امکان تعریف، حل و شبیه سازی انواع مختلف روش های کنترل پیش بین مبتنی بر مدل خطی (MPC) را فراهم می کند.
>> دانلود فایل راهنمای کاربر MPC3S <<
فيلم هاي آموزش جعبه ابزار MPC3S:
بخش اول آموزش (مقدمه و ساختار کنترل پيش بين)
سیستم مورد نیاز:
جعبه ابزار MPC3S از همه سیستم عامل های زیر پشتیبانی می کند:
- Windows 32bit/64bit
- Linux 32bit/64bit
- Mac 32bit/64bit
- MATLAB online
روش نصب و حذف:
برای نصب جعبه ابزار MPC3S مراحل زیر را انجام دهید:
گام 1: فایل مناسب جعبه ابزار را مطابق سیستم عامل خود از لینکهای زیر دانلود کنید:
- Win 64-bit (Version 5.0)
- Win 32-bit (Version 5.0)
- Linux 64-bit (Version 5.0)
- Linux 32-bit (Version 5.0)
- Mac 64-bit (Version 5.0)
- Mac 32-bit (Version 5.0)
گام 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.
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: نتایج شبیه سازی حلقه بسته سیستم در حضور کنترل کننده پیش.
- Win 64-bit (Version 5.0)
- Win 32-bit (Version 5.0)
- Linux 64-bit (Version 5.0)
- Linux 32-bit (Version 5.0)
- Mac 64-bit (Version 5.0)
- Mac 32-bit (Version 5.0)