طراحی کنترل کننده PID با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO
طراحی کنترل کننده PID جهت یک سیستم (جرم و فنرودمپر) با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO
این یک پروژه درس چند متغیره با متلب است:
مقدمه
انواع مسایل بهینه سازی
1- سعی و خطا
2- تک بعدی(تک متغیره) و چندبعدی(چندمتغیره)
3- پویا و ایستا
4- مقید ونامقید
5- پیوسته و گسسته
6- یک معیاره و چند معیاره
در سیستم های کنترل پس از مدل سازی سیستم، برای پی بردن به رفتار سیستم ما به دنبال ورودی خوب و ساده جهت تحلیل سیستم می گردیم.
بهترین و ساده ترین ورودی ها در این حوزه عبارتند از:
الف- پله ب- ضربه ج- سینوسی
حال که از دانش ورودی آگاه شدیم به سراغ سیستم میرویم.
سیستم مدل شده در این تحقیق شامل معادلات دیفرانسیلی،انتگرالی،تناسبی می باشد.
در مرحله آخر مابایستی ورودی یا ورودی ها را به سیستم اعمال و خروجی یا خروجی ها را مشاهده نماییم .
شرح مراحل انجام تحقیق
-
تشریح سیستم و معادلات آن
- طراحی کنترل کننده PID جهت یک سیستم (جرم و فنرودمپر) با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO
- اعمال دو ورودی پله به سیستم در زمانهای 12 و 120 ثانیه .
- ترسیم خروجی بدون کنترل کننده
- اعمال کنترل کننده (در این تحقیق PID) به سیستم.
5-تعیین ضرایب PID1 ,PID2 بر اساس PSO
با run کردن برنامه به این ضرایب دست پیدا خواهیم نمود.(multi2)
هدف از تعیین ضرایب و اعمال آن به سیستم موارد ذیل می باشد:
الف- از بین بردن اثر ورودی یک بر خروجی دو.
ب- از بین بردن اثر ورودی دو بر خروجی یک.
ج- کم کردن اورشوت ورودی یک – خروجی یک.
د- کم کردن اورشوت ورودی دو – خروجی دو.
ه- کم کردن زمان نشست خروجی یک ودو.
ی – کم کردن error خروجی های یک و دو(فاصله جواب نهایی تا یک- همان پاسخ پله)
شکل موج ذیل بدون PID و هرگونه کنترل کننده می باشد.
بررسی سابقه موضوع طراحی کنترل کننده
روش های دیگری جهت تعیین پارامترهای کنترل کننده وجود دارد که از آن جمله می توان به زیگلر نیکولز اشاره نمود.
لازم به توضیح است در این تحقیق از روشهای سیستماتیک خودداری گردیده و بر اساس الگوریتم های رقابتی و انبوه ذرات این تحقیق صورت پذیرفته است.
روش های دیگری چون گرید سرچ بعلت زمان بر بودن منتفی می باشد.
طراحی کنترل کننده PID با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO
فرضیات اولیه
الف- چرا ما بدنبال روشهای غیر سیستماتیک جهت تعیین پارامترهای PIDمی گردیم؟
ب- آیا الگوریتم های تکاملی جهت حل اینگونه مسایل مفید می باشند؟چرا؟
ج – آیا این روش قابل ارتقا بوده و به طرق دیگر نیز قابل پیاده سازی می باشد؟
در اینگونه مسایل راه حل قطعی جهت رسیدن به جواب از طریق سیستماتیک وجود ندارد، اما تا حدودی ما را به آن نزدیک می کند،پس از نزدیک شدن به پاسخ باید به صورت سعی و خطا نسبت به بهبود جواب از طریق شهودی اقدام نمود.(روش زیگلرنیکولز)
اما الگوریتم های تکاملی بدون نیاز به روابط ریاضی و فرمول اقدام به حل مسایل در مدت زمان کوتاه می نمایند.
این گونه از روش ها قابل ارتقا هستند: مانند GA-PSO-ACOو… که روز به روز ارتقا و رفته رفته کشف گردیده اند.(مثالی از بحث ارتقا در فضای سرچ PSO برای درک بهتر ذکرخواهد گردید.)
طراحی کنترل کننده PID با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO
PSO(Particle Swarm Optimazation)
درسال 1995 توسط جیمزکندی و راسل ابرهارت معرفی گردید. PSOروش بهینه سازی
آنها درابتدا قصد داشتند که با بهره گیری از مدل های اجتماعی و روابط موجود اجتماعی،نوعی از هوش محاسباتی را بوجود بیاورندکه به توانایی های فردی ویژه نیازی نداشته باشد. کار آنان ،منجر به ایجاد الگوریتمی
شد.PSO قوی برای بهینه سازی ،بنام الگوریتم بهینه سازی ذرات یا
این روش از عملکرد دسته جمعی گروههای حیوانات مانند پرندگان و ماهی ها اقتباس شده است.
عملکرد انبوه ذرات
فضای جستجو(سه بعدی)
X(t) موقعیت ذره
V(t) سرعت ذره
XLbest(t) بهترین موقعیت هرذره
X(t) موقعیت ذره
V(t) سرعت ذره
Xlbest(t) بهترین موقعیت هرذره
Xgbest(t)درجمعیت بهترین موقعیت هرذره
طراحی کنترل کننده PID با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO
فرمول و الگوریتم کار مربوط به PSO
کار الگوریتم انبوه ذرات اقتباس شده از حرکت جمعی و گروهی موجودات می باشد.
Particle swarm optimization (PSO) is a population based stochastic optimization technique developed by Dr. Eberhart and
Dr. Kennedy in 1995, inspired by social behavior of bird flocking or fish schooling.
مراحل کار PSO برای تعیین ضرایب در این تحقیق
- تشکیل یک ماتریس 6*729(با توجه به یک مقاله انگلیسی که ذکر کرده است بهترین راه سرچ فضا تقسیم بندی آن می باشد، این جانب با توجه به داشتن 6 ذره –بعد- اقدام به تقسیم بندی هر بعد به سه قسمت نموده ام ودر مجموع 729فضا داریم که یک ذره از عمد برای سرچ بهتر فضا در داخل هرفضا قرار داده ایم.
6^3=729
- تعیین میزان برازندگی در تابع هزینه(قرار دادن پارتیکل های 6 بعدی در تابع هزینه)
- بدست آوردن بهترین (کمترین) هزینه -G global best(بهترین نفر گروه)
- آپدیت سرعت بر اساس فرول مربوطه
- آپدیت موقعیت
- تکرار این روند تا طی شدن یکی از شرایط توقف (در این تحقیق طی شدن 20 مرحله در نظر گرفته شده است)
طراحی کنترل کننده PID با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO
مراحل اجرای برنامه متلب
فایلهای multi2 را باز کنید، باید در نظر داشته باشید فایل multi2 فایل اصلی شما می باشد.
- عجله نکنید! بگذارید برنامه اجرا شود،حوصله بخرج دهید !(5دقیقه)
- پس از اتمام برنامه شما ضرایب PID1 و PID2 را خواهید دید.
مشاهده می شود که پاسخ سیستم ما تقریبا بر ورودی های پله منطبق می باشد.
نتیجه:کنترل کننده PID به ورودی پله پاسخ مناسب داده است.
طراحی کنترل کننده PID با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.