مقدمه ای بر کنترل مقاوم

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

همچنانی که در نوشته های قبلی دیده ایم هدف اصلی در طراحی سیستم کنترل رسیدن به مشخصات مطلوب خروجی چه از لحاظ سرعت و چه از لحاظ تطبیق با واقعیت سیستم ها می باشد. مسئله اساسی در سیستم های این چنینی بدست آوردن پاسخ زمانی سریع ، نوسانات خروجی پایین و امکان پذیری سیگنال کنترل می باشد. به طور معمول با یک طراحی منطقی دو مورد اول در طراحی یک کنترل کننده مقاوم امکان پذیر است حال آنکه مورد سوم تا حدی نیاز به بررسی خواهد داشت.

انواع روش های کنترل مقاوم

دو روش اصلی در طراحی روش های مقاوم در تئوری کنترل سیستم ها مطرح می باشد که به صورت زیر می باشد :

  • روش کنترل مد لغزشی : این روش بخصوص در سیستم های غیرخطی کاربرد دارد و مبنای آن براساس قاعده لیاپانوف می باشد.
  • روش های مبتنی بر اصل کنترل مقاوم همچون روش H بی نهایت : این روش بر مبنای تئوری کنترل مقاوم و برای سیستم های خطی کاربرد بیشتری دارد هر چند که در سیستم های نوین طراحی های برای سیستم های غیرخطی به این شکل نیز عنوان شده است.

جایگذاری کنترل مد لغزشی در متلب

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

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

در شکل 1 ، مثالی از طراحی مدلغزشی در محیط سیمولینک متلب نمایش داده شده است. در این چینش پس از تعریف دینامیک سیستم تحت یک تابع ام فایل در بلوک interpreted matlab function در سیمولینک جایگذاری شده است و سپس با انتگرال گیری از مشتقات متغیرهای حالت به این متغیرهای اساسی دست پیدا کردیم. در ادامه با فیدبک گرفتن از مقادیر متغیرهای حالت نسبت به طراحی کنترلر مد لغزشی اقدام شده است.

sliding mat ex 1024x551 طراحی یک کنترل کننده مقاوم در متلب
شکل 1 ) مثالی از طراحی به روش مد لغزشی در محیط سیمولینک

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

همانگونه که اشاره شد، کدنویسی در محیط سیمولینک و در رابط هایی که (نظیر Matlab Function ، Interpreted matlab function) به این منظور قرار داده شده اند، دست طراح را باز می گذارند و می تواند حجم کار در سیمولینک را کاهش داد. اما به یاد داشتن برخی نکات در این مورد ضروری است :

  • تمامی امکاناتی که در تابع نویسی (mfile نویسی) در اختیارتان قرار دارد در سیمولینک در دسترس نخواهد بود ! به این معنا که تمامی توابع متلب قابل استفاده در کدنویسی های انجام گرفته در سیمولینک نیستند. البته استفاده از بلوک  Interpreted matlab function تا حدود زیادی دایره توابع قابل استفاده را افزایش می دهد.
  • امکان وقوع خطاهایی نظیر لوپ جبری در این حالت افزایش می یابد. البته این مسئله رفته رفته و با حرفه ای شدن کاربر کمتر پیش می آید.
  • برخی بلوک های اختصاصی در سیمولینک را نادیده نگیرید. مشخصا استفاده از کدنویسی کار را ساده تر می کند ولی برخی بلوک ها در کتابخانه سیمولینک قرار داده شده اند که می توانند شما را از کدنویسی برای عملیات بی نیاز سازد. از این جمله می توان به بلوک هایی نظیر mean به منظور محاسبه میانگین در تِرک های مشخص و یا RMS در مهندسی برق که به منظور محاسبه مقادیر rms جریان و ولتاژ  می باشند، اشاره کرد.
  • امکان بروز عدم سنکرون سازی مناسب بین کد نوشته شده و سیمولینک ! این مشکل در سیمولینک های حجیم که همراه با کدنویسی می باشند “گاها” مشاهده می شود. در این حالت ممکن است خطای لوپ جبری از متلب صادر شود، حال آنکه چنین چیزی ذاتا اتفاق نیاُفتاده باشد و آنچه باعث بروز این مسئله شده عدم سنکرون سازی مناسب باشد. در این شرایط ناگزیر هستید تا تکنیک های مختلف کدنویسی را امتحان کنید و یا با رسم بلوک دیاگرامی عملیات مورد نظر کدها را حذف کنید.

طراحی به روش H در کنترل مقاوم

در این شیوه که بیشتر برای سیستم های خطی کاربرد دارد انواع مختلفی تعریف می شود که از آن جمله می توان به روش های H اینفینیتی و H2 اشاره کرد. این روش برای سیستم هایی که دارای نامعینی های پارامتری متعدد و اغتشاش خارجی می باشند کاربرد دارد .

اولین گام به منظور طراحی روش کنترلی با این متد ، تعریف فضای حالت سیستم ذیل یک تابع mfile می باشد تا بتوان در ادامه نامعینی ها را تعریف کرده و سپس با بیان توابع وزنی نسبت به بدست آوردن خروجی فضای حالت سیستم کنترلی اقدام نمود.

robust 1 im طراحی یک کنترل کننده مقاوم در متلب

شکل 2 ) تعریف متغیرهای نامعین در طراحی سیستم کنترل مقاوم

آنگونه که در شکل 2 نمایش داده شده است پارامترهای نامعین سیستم در فضای حالت به صورت یک مقدار مرکزی با یک رنج مشخص بیان می شوند که در ادامه این متغیرها در تعریف مدل فضای حالت سیستم در ماتریس های A ، B ، C و D بکار می روند. تابع ss برای تشکیل سیستم براساس توابع فضای حالت بکار رفته است در ادامه نیز سیستم نامی معرفی شده است.

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

%% >>>>>>>>>>>>>>> Generalized Plant >>>>>>>>>>>>>>
w1=0.0012;
w2=0.001;
w3=0.01;
w4=0.0102;
%——————————————————–
Cp=[-w1 0 0 0;0 0 0 0;w3 0 0 0;0 0 w4 0;-1 0 0 0;0 0 1 0];
Dp=[w1 0 0 -w1 0;0 0 0 0 w2;0 0 0 0 0;0 0 0 0 0;1 0 0 -1 0;0 0 1 0 0];
B1=[0 0 0 0;0 0 0 0;0 0 0 0;0 B2(4,1) 0 0];
Bp=[B1 B2];
P=pck(Ap,Bp,Cp,Dp);

در انتخاب این توابع وزنی باید دقت کامل به عمل آید که در موقعیت های مناسب وارد سیستم شوند و همچنین مقادیر کوچک و قابل قبولی بدست دهند. در ادامه از تابع hinfsyn به منظور بدست آوردن کنترل کننده مقاوم برای سیستم تعمیم یافته استفاده می شود. که کدهای متلب آن به صورت زیر می باشد :

%% >>>>>>>>>>>>>> Accumulate >>>>>>>>>>>>>>>>>>>
[K,CL,GAM]=hinfsyn(P,2,1,0,10,0.0001);
[Ak,Bk,Ck,Dk]=unpck(K);

%% >>>>>>>>>>>> Close Loop >>>>>>>>>>>>>>>>>>>>>>>>>>
CL=CL(1:12,1:12);
[Acl,Bcl,Ccl,Dcl]=unpck(P);
sys_cL=ss(Acl,Bcl,Ccl,Dcl);

تابع unpck به منظور به منظور بدست آوردن فرم تابع کنترلر از روی ماتریس های تابع تبدیل بکار می رود. نهایتا سیستم حلقه بسته را که شامل سیستم دینامیکی در حضور پارامترهای نامعین بعلاوه کنترلر می باشد را تشکیل می دهیم.

از این توابع به منظور پیاده سازی شماتیک سیستم در محیط سیمولینک استفاده می شود که البته لازمه آن اجرای مناسب این ام فایل و بدست آوردن مقدار مناسب و قابل قبول برای زیتای تابع Hinfsyn می باشد. شکل زیر شماتیک سیمولینک را نشان می دهد.

rob im طراحی یک کنترل کننده مقاوم در متلب

شکل 3 ) شماتیک سیمولینک برای اجرای کنترل مقاوم

در این شماتیک مسیر رفرنس برای ردیابی خروجی ارائه می شود که به صورت مسیر پله ای متغیر می باشد. توابع Kc که مبین کنترل کننده می باشد و P که مبین مدل دینامیکی جنرالایز سیستم می باشد از خروجی های mfile قبلی قابل بازبابی هستند. می توان در مسیر خروجی و فیدبک ها از اغتشاشات به صورت نویز و یا پله استفاده کرد.

منبع : برق تِک

About برق تِک

Leave a Reply

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