توضیحات

icon فایل هایی که با لینک مستقیم در سایت قرار گرفته اند بدون پسورد می باشند.

آشنایی با منطق فازی

kj 

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


مفاهیم منطق فازی (fuzzy logic) اولین بار به وسیله پروفسور لطفی زاده ارائه شد و سپس توسط دیگران گسترش یافت. ریاضیات محض بخودی خود اهمیت چندانی ندارد بلکه نحوه کاربرد آن در صنعت اهمیت دارد.منطق فازی نیز بیش از بیست سال پس از ۱۹۶۵ از درگاه دانشگاه ها به بیرون راه نیافت زیرا کمتر کسی معنای آنرا درک کرده بود. در اواسط دهه ۸۰ میلادی قرن گذشته صنعتگران ژاپنی معنا و ارزش صنعتی این علم را دریافته و منطق فازی را به کار گرفتند. اولین پروژه آنها طرح هدایت و کنترل تمام خودکار قطار زیرزمینی شهر سندای بود که توسط شرکت هیتاچی برنامه ریزی و ساخته شد. از این پس منطق فازی بسیار سریع در تکنولوژی دستگاه های صوتی و تصویری ژاپنی ها راه یافت (از جمله نلرزیدن تصویر فیلم دیجیتال ضمن لرزیدن دست فیلم بردار).
کلمه fuzzy به معنای غیر دقیق و مبهم است و این منطق در مقابل منطق صفر و یک بوجود آمد. در منطق صفر و یک ارزش یک گزاره یا یک  بود یا صفر، یا درست بود یا غلط، یاسفید بود یا سیاه ولی در منطق فازی ارزش یک گزاره بین صفر و یک می باشد. اجازه دهید این تفاوت را با یک مثال توضیح دهیم.
فرض کنید گزاره ما درباره گرم بودن یا سرد بودن یک محیط باشد. در منطق صفر و یک باید یک دمای مرجع را در نظر بگیریم و اگر دمای محیط بالاتر از دمای مرجع بود می گوییم محیط گرم است و در غیر این صورت محیط سرد است. ولی در منطق فازی یک محدوده را بجای دمای مرجع در نظر گرفته و ممکن است محیط مثلا ۰٫۳ گرم باشد. این تفاوت میان دو منطق را در شکل زیر می توانید ببینید:

Logic-Different

برای آشنایی با منطق فازی و نحوه استدلال با آن ابتدا به معرفی چند مفهوم می پردازیم:

 

متغیرهای زبانی:
متغیرهای زبانی به متغیرهایی گفته می‌شود که مقادیر مورد قبول برای آن‌ها به جای اعداد، کلمات و جملات زبان‌های انسانی یا ماشینی هستند.همانگونه که در محاسبات ریاضی از متغیرهای عددی استفاده می‌گردد، در منطق فازی نیز از متغیرهای زبانی استفاده می‌گردد.هر متغیر زبانی می تواند بر اساس ارزش‌های زبانی در مجموعه ای قرار گیرد. به عنوان مثال: متغیر زبانی «سن» بسته به تقسیمات مورد نظر شخصی و شرایط می‌تواند در مجموعه عباراتی از قبیل «نوجوان»، «جوان»، «میان سال» و «سالمند» قرار گیرد.

 

توابع عضویت (Membership function):
برای هر مجموعه X، تابع عضویت مجموعه X تابعی است از X نسبت به بازه [۰,۱] .
توابع عضویت X بیانگر زیرمجموعه فازی X است. تابع عضویت مجموعه فازی A معمولاً بصورت μA نمایش داده می‌شود. درجه عضویت μA(x)i بیانگر میزان عضویت عنصر x به مجموعه فازی A است.

Membership-Function

اگر درجه عضویت یک عنصر از مجموعه برابر با صفر باشد، آن عضو کاملاً از مجموعه خارج است و اگر درجه عضویت یک عضو برابر با یک باشد، آن عضو کاملاً در مجموعه قرار دارد. حال اگر درجه عضویت یک عضو بین صفر و یک باشد، این عدد بیانگر درجه عضویت تدریجی می‌باشد.برای مثال اگر متغیر دما در تابع عضویت سرد،دارای مقدار درجه عضویت ۰٫۳ باشد بدین مفهوم است که دمای محیط ۰٫۳ سرد است.
شکل زیر انواع توابع عضویت را نشان می دهد:

kind-of-membership-function

شکل زیر قسمت های مختلف یک سیستم فازی را نشان می دهد:

fuzzy-inference

چون که ورودی سیستم ها بصورت یک عدد قطعی (Crisp) می باشد وظیفه قسمت فازی (Fuzzification) این است که ورودی را بصورت یک مجموعه فازی در بیاورد.در قسمت پایگاه داده (Data Base) اطلاعات توابع عضویت ها قرار دارد.قسمت پایگاه قوانین (Rule Base) شامل قوانینی است که خروجی سیستم فازی را معین می کند.برای مثال فرض کنید که می خواهیم یک فن را برای متعادل کردن دمای محیط کنترل کنیم.پایگاه قوانین می تواند شامل قوانین زیر باشد:

IF temperature IS very cold THEN stop fan
IF temperature IS cold THEN turn down fan
IF temperature IS normal THEN maintain level
IF temperature IS hot THEN speed up fan

توجه کنید که temperature یک متغیر زبانی و عبارات

{very cold,cold,normal,hot,stop,turn down,maintain level,speed up}

هر کدام یک تابع عضویت می باشند.
توجه کنید که در منطق فازی یک گزاره کاملا صحیح یا کاملا اشتباه نمی باشد بلکه عددی بین صفر و یک می باشد.پس ممکن است قانون شماره یک ۰٫۳ صحیح باشد و قانون شماره دو ۰٫۶ صحیح و… .
وظیفه قسمت غیر فازی کننده (Defuzzification) استنتاج است. روش های مختلفی برای استنتاج وجود دارد برای مثال ممکن است هر قانونی که صحیح تر بود را بعنوان خروجی در نظر بگیریم ولی بهتر است که میانگینی از همه قوانین را در نظر بگیریم.به این روش،روش center of area نیز گفته می شود.خروجی در این روش از رابطه زیر بدست می آید:

33

تنها مشکل این روش محاسبات زیاد برای توابع عضویت پیچیده می باشد.

 

طراحی کنترل کننده فازی(Fuzzy Logic Controller):
پروفسور Wang در مقاله ای نحوه طراحی یک کنترل کننده فازی راشرح داد.فرض کنید سیستمی با فیدبک منفی دارای پاسخ پله زیر باشد:

Step-Response

همان طور که مشاهده می کنید در زیر منحنی،علامت E و DE در بازه های مختلف مشخص شده است. اگر برای هر کدام از متغیر های خطا و تغییرات خطا هفت مجموعه بصورت زیر در نظر بگیریم:

NB (Negative Big)
NM (Negative Medium)
NS (Negative Small)
Z (Zero)
PS (Positive Small)
PM (Positive Medium)
PB (Positive Big)

پایگاه قوانین را بصورت زیر می توان نوشت:

Rule-Base

در قسمت بعد نحوه طراحی یک کنترل کننده فازی با Matlab را برای کنترل یک سرو موتور شرح می دهیم.

 

تهیه و تنظیم: motodrive.ir

 

لینک منبع:

http://motodrive.ir/%D9%85%D9%86%D8%B7%D9%82-%D9%81%D8%A7%D8%B2%DB%8C

بهمن ۸ام, ۱۳۹۳ | 2,384 views | دسته: مقالات آموزشی
برچسب ها: ، ،



افزودن نظر: