طراحی کنترل کننده PID جهت یک سیستم (جرم و فنرودمپر) با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO

این یک پروژه درس چند متغیره با متلب است:

مقدمه

انواع مسایل بهینه سازی

1- سعی و خطا

2- تک بعدی(تک متغیره) و چندبعدی(چندمتغیره)

3- پویا و ایستا

4- مقید ونامقید

5- پیوسته و گسسته

6- یک معیاره و چند معیاره

در سیستم های کنترل پس از مدل سازی سیستم، برای پی بردن به رفتار سیستم ما به دنبال ورودی خوب و ساده جهت تحلیل سیستم می گردیم.

بهترین و ساده ترین ورودی ها در این حوزه عبارتند از:

الف- پله    ب- ضربه    ج- سینوسی

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

سیستم مدل شده در این تحقیق  شامل معادلات دیفرانسیلی،انتگرالی،تناسبی می باشد.

در مرحله آخر مابایستی ورودی یا ورودی ها را به سیستم اعمال و خروجی یا خروجی ها را مشاهده نماییم .

شرح مراحل انجام تحقیق

  • تشریح سیستم و معادلات آن

  • طراحی کنترل کننده PID  جهت یک سیستم (جرم و فنرودمپر) با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO

multivariable-project1

multivariable-project2

 

  • اعمال دو ورودی پله به سیستم در زمانهای 12  و 120 ثانیه .
  • ترسیم خروجی بدون کنترل کننده

multivariable-project3

 

  • اعمال کنترل کننده (در این تحقیق PID) به سیستم.

پروژه متلب

5-تعیین ضرایب PID1 ,PID2  بر اساس PSO

با run  کردن برنامه به این ضرایب دست پیدا خواهیم نمود.(multi2)

multivariable-project5

هدف از تعیین ضرایب و اعمال آن به سیستم موارد ذیل می باشد:

الف- از بین بردن  اثر ورودی یک  بر خروجی دو.

ب- از بین بردن  اثر ورودی دو  بر خروجی یک.

ج- کم کردن اورشوت ورودی یک – خروجی یک.

د- کم کردن اورشوت ورودی دو – خروجی دو.

ه- کم کردن زمان نشست خروجی یک ودو.

ی – کم کردن error خروجی های یک و دو(فاصله جواب نهایی تا یک- همان پاسخ پله)

Matlab

          شکل موج ذیل بدون PID و هرگونه کنترل کننده می باشد.

بررسی سابقه موضوع طراحی کنترل کننده

روش های دیگری جهت تعیین پارامترهای کنترل کننده وجود دارد که از آن جمله می توان به زیگلر نیکولز اشاره نمود.

لازم به توضیح است در این تحقیق از روشهای سیستماتیک خودداری گردیده و بر اساس الگوریتم های رقابتی و انبوه ذرات این تحقیق صورت پذیرفته است.

روش های دیگری چون گرید سرچ بعلت زمان بر بودن منتفی می باشد.

طراحی کنترل کننده PID با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO

 

فرضیات اولیه

الف- چرا ما بدنبال روشهای غیر سیستماتیک جهت تعیین پارامترهای PIDمی گردیم؟

ب- آیا الگوریتم های تکاملی جهت حل اینگونه مسایل مفید می باشند؟چرا؟

ج – آیا این روش قابل ارتقا بوده و به طرق دیگر نیز قابل پیاده سازی می باشد؟

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

اما الگوریتم های تکاملی بدون نیاز به روابط ریاضی و فرمول اقدام به حل مسایل در مدت زمان کوتاه می نمایند.

این گونه از روش ها قابل ارتقا هستند: مانند GA-PSO-ACOو… که روز به روز ارتقا و رفته رفته کشف گردیده اند.(مثالی از بحث ارتقا در فضای سرچ PSO برای درک بهتر ذکرخواهد گردید.)

طراحی کنترل کننده PID با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO

PSO(Particle Swarm Optimazation)

درسال 1995 توسط جیمزکندی و راسل ابرهارت معرفی گردید.   PSOروش بهینه سازی

آنها درابتدا قصد داشتند که با بهره گیری از مدل های اجتماعی و روابط موجود اجتماعی،نوعی از هوش محاسباتی را بوجود بیاورندکه به توانایی های فردی ویژه نیازی نداشته باشد. کار آنان ،منجر به ایجاد الگوریتمی

شد.PSO قوی برای بهینه سازی ،بنام الگوریتم بهینه سازی ذرات یا

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

 

عملکرد انبوه ذرات

multivariable-project7

   فضای جستجو(سه بعدی)

X(t)            موقعیت ذره

V(t)           سرعت ذره

XLbest(t)    بهترین موقعیت هرذره

 

multivariable-project8

X(t)    موقعیت ذره

V(t)    سرعت ذره

Xlbest(t)    بهترین موقعیت هرذره

Xgbest(t)درجمعیت     بهترین موقعیت هرذره

طراحی کنترل کننده PID با استفاده از الگوریتم ژنتیک GA و الگوریتم انبوه ذرات PSO

multivariable-project9

فرمول و الگوریتم کار مربوط به PSO

multivariable-project10

کار الگوریتم انبوه ذرات اقتباس شده از حرکت جمعی و گروهی موجودات می باشد.

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

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

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

برای امنیت، استفاده از سرویس reCAPTCHA گوگل مورد نیاز است که موضوع گوگل است Privacy Policy and Terms of Use.

اگر با این شرایط موافقید، لطفا here کلیک کنید.