توضیحات
Supervisory Fuzzy Control for 5 DOF Robot Arm
ترجمه فارسی موضوع مقاله: کنترل کننده فازی و کنترل ربات با پنج درجه آزادی
شبیه سازی با متلب 2010 تا 2012 قابل اجراست.
مقدمه
در دنیای امروز روباتها به بخش مهمی در صنعت تبدیل شده اند.
بنابراین کنترل روباتها به یک موضوع مهم و اساسی تبدیل شده است.
کنترل کننده PID به عنوان محبوبترین کنترل کننده به علت سادگی ساختار و طراحی شناخته میشود.
90% کاربردهای کنترلی به یکی از فرمهای PID مانند PD و PI محدود میشود. روشهای مختلفی برای تنظیم پارامترهای pid وجود دارد.
مانند روش زیگلر نیکولز یا کوهن کُن. میتوان از منطق فازی برای کنترل با نظارت PID استفاده کرد.
در روشهای سنتی طراحی PID پارامترهای کنترل کننده در طول زمان ثابت هستند و تغییر نمی کنند.
در مواجه با سیستمهای غیر خطی و پیچیده ثابت بودن پارامترهای کنترل کننده موجب غیر مطلوب شدن پاسخ سیستم می شود.
در اینجا از قوانینی که توسط یک فرد خبره در قالب یک سیستم فازی ارائه میشود برای تغییر دادن پارامترها در طول زمان استفاده می شود.
در این پروژه از کنترل کننده فازی با نظارت در کنترل روبات با پنج درجه آزادی استفاده میشود.
کنترل کننده PID
تابع تبدیل این کنترل کننده به یکی از دو صورت زیر بیان میشود:
که در آن KP و KI و KD بهرههای تناسبی و انتگرالی و مشتقی هستند و TI و TD ثابتهای زمانی انتگرالی و مشتقی هستند.
قواعد سر انگشتی برای تنظیم پارامترهای PiD وجود دارد. از جمله:
1. اگر ورودی بزرگ و مثبت است، KP باید بزرگ، KI کوچک و KD نیز کوچک انتخاب میشود تا خروجی سرعت داده شود.
2. اگر ورودی خیلی کوچک باشد، KP باید کوچکتر، Ki بزرگتر و KD بزرگتر شودتا فراجهش پاسخ کمتر و پاسخ سریعتر شود.
کنترل کننده منطق فازی
این کنترل کننده چهار بخش عمده دارد: فازی ساز، پایگاه قواعد، موتور استنتاج فازی و غیرفازی ساز.
فازی ساز ورودی واقعی را به ورودی فازی سازی شده تبدیل میکند. پایگاه قواعد حاوی قوانینی است که در تولید خروجی باید در نظر گرفته شوند.
موتور استنتج از روی خروجی قوانین تصمیم میگیرد که مقدار خروجی چقدر باشد.
غیرفازی ساز خروجی موتور استنتاج را به سیگنال کنترلی تبدیل میکند.
کنترل کننده های فازی-PID به دو دسته تقسیم میشوند.
در دسته اول کنترل کننده فازی جایPID را میگیرد و سیگنال کنترلی مستقیما از روی قواعد نتیجه میشود.
در روش دوم که روش با نظارت است از سیستم فازی برای تنظیم پارامترهای PID استفاده میشود.
مراحل طراحی کنترل کننده فازی به صورت زیر است:
1- متغیرهای ورودی-خروجی کنترل کننده فازی را تعیین کنید. در این پروژه ورودی های سیستم فازی و و خروجیهای سیستم KP و KI و KD هستد.
2- برای هر متغیر ورودی هفت تابع عضویت در نظر میگیریم که از منفی بزرگ (NB) تا مثبت بزرگ (PB) میباشد. خروجیهای KP و KD دو تابع عضویت و متغیر KI دارای یک تابع عضویت میباشد.
3- در این پروژه از سیستم فازی ممدانی (مینیمم ماکزیمم) برای موتور استنتاج استفاده میشود.
4- غیرفازی سازی در این پروژه با روش مرکز ثقل با رابطه زیر انجام میشود:
کنترل کننده فازی با نظارت
در این کنترل کننده از خطا و تغییرات خطا برای تنظیم پارامترهای PID استفاده میشود.
این وروردیها به صورت زیر هستند:
محدوده خروجیهای سیستم فازی به صورت زیر است:
تابع عضویت برای متغیرهای ورودی و خروجی در شکلهای زیر آمده است:
…
قوانین سیستم فازی باید به گونه ای انتخاب شوند که پاسخ سیستم دارای زمان خیز کوتاه، فراجهش کم و خطای حالت ماندگار کم باشد.
شکل زیر پاسخ پله سیستم را نشان میدهد.
این پاسخ به چهار قسمت تبدیل میشود.
برای نواحی نزدیک (a) برای داشتن زمان خیز سریع باید یک سیگنال کنترلی بزرگ داشته باشیم.
برای حذف خطا بهره انتگرالی مورد نیاز است و برای سرعت بخشیدن به پاسخ باید بهره مشتقی وجود داشته باشد.
قانون این ناحیه به صورت زیر بیان میشود.
زمانی که در نواحی نقطه (b) خطا منفی است سیستم باید آرام باشد تا فراجهش کم باشد.
این کار با کم کردن ضریب تناسبی و بهره انتگرالی کم و بهره مشتقی بزرگ انجام میشود.
قانون مربوط به این ناحیه به صورت زیر بیان میشود:
قوانین دیگر نیز به طریق مشابه بدست میآیند. در جداول زیر قوانین سیستم فازی آمده است:
پیاده سازی روش در Matlab
کنترل کننده فازی ارائه شده در محیط سیمولینک به صورت زیر شبییه سازی شده.
در این قسمت عملکرد کنترل کننده معرفی شده را روی یکی از بازوهای روبات بررسی می کنیم.
هر بازوی روبات دارای یک موتور DC است که تابع تبدیل آن به صورت زیر است:
بلوک PID در شکل بالا به صورت زیر است:
در بلوک fuzzy logic controller تابع زیر برای ورودی دادن به سیستم فازی استفاده شده است:
function y = ccontrol( x )
load controller
y=evalfis(x,controller);
end
در این تابع ابتدا سیستم فازی با قوانین و توابع عضویت معرفی شده که قبلا با جعبه ابزار منطق فازی ساخته شده و در فایل controller.m ذخیره شده لود میشود. سپس با تابع evalfis به این سیستم ورودی داده میشود و نتیجه آن در خروجی تابع قرار میگیرد.
برای اجرای شبیه سازی و رسم نتایج کدهای فایل FSC.m نوشته شده. این کدها به صورت زیر هستند:
…
در این کدها ابتدا دامنه ورودی و اغتشاش توسط متغیرهای T_1 و D_1 توسط کاربر تعیین می شود.
سپس فایل سیمولینک اجرا میشود و نتایج خروجی به workspace فرستاده میشوند. سپس نتایج بدست آمده و همچنین تغییرات پارامترها در طول زمان رسم میشوند و برای داشتن یک معیار کمی، توسط تابع stepinfo مشخصات پاسخ پله مانند فراجهش و زمان خیز را بدست میآوریم و در command window نمایش میدهیم.
سپس توسط تابع plotmf شکل توابع عضویت را برای ورودی و خروجیها استخراج و نمایش می دهیم.
همچنین برای بررسی اثر اغتشاش، یک اغتشاش در زمان t=1s به سیستم وارد شده است.
شکل های زیر نتیجه اجرای کدهای بالا را نشان می دهند:
کلید واژه : کنترل فازی، درجه آزادی، ربات، رباتیک
Fuzzy; supervisory control; 5-DOF; robot arm
شبیه سازی مقاله Supervisory Fuzzy Control for 5 DOF Robot Arm
به تعداد محدودی قابل فروش می باشد.
سفارش انجام پروژه مشابه
درصورتیکه این محصول دقیقا مطابق خواسته شما نمی باشد،. با کلیک بر روی کلید زیر پروژه دلخواه خود را سفارش دهید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.