مقدمه :
سیستم های منطق فازی (fuzzy logic systems -fls) یک خروجی قابل قبول اما قطعی در پاسخ به یک ورودی ناقص ، مبهم ، تحریف شده و یا نادرست (fuzzy) تولید می کنند.
منطق فازی چیست ؟
منطق فازی (Fuzzy Logic -FL) یک نوع مدل استدلال است که استدلال انسانی را شبیه سازی می کند.شیوه منطق فازی راه حل تصمیم گیری انسانی را تقلید میکند به طوری که همه امکان های میانی بین مقادیری دیجیتال بله یا خیر را در نظر گرفته و در حل مسائله درگیری می کند.
بلاک منطقی مرسوم که یک کامپیوتر آن را درک میکند و متوجه میشود یک ورودی قطعی را دریافت میکند و یک خروجی صریح را تولید میکند که این خروجی صحیح( TRUE ) یا غلط است ( FALSE). این خروجی ها شبیه بله یا خیر انسانی هستند.مخترع منطق فازی ،پرفسور لطفی زاده ، کشف نمود که بر خلاف کامپیوتر ها ، تصمیم های گرفته شده توسط بشر شامل یک محدوده از چیز های ممکن در میان بله و خیر است.از قبیل :
CERTAINLY YES -قطعا بله
POSSIBLY YES – احتمالاً بله
CANNOT SAY – نمیشه گفت
POSSIBLY NO -احتمالا نه
CERTAINLY NO – قطعاً بله
منطق فازی بر روی همه سطوح موارد(جواب های ) ممکن برای ورودی به منظور بدست آوردن یک خروجی قطعی عمل می کند.
پیادهسازی و اجرا :
سیستم منطقی فازی میتواند در سیستمهایی با اندازه ها و محدوده توانایی متفاوت از میکرو کنترلر های کوچک تا بزرگ ، شبکه ، سیستمهای کنترلر مبتنی بر ایستگاه کاری پیادهسازی و اجرا شود.
سیستم منطق فازی میتواند در سختافزار ها ، نرمافزار های و ترکیبی از هر دو پیادهسازی و اجرا شود.
چرا منطق فازی ؟
منطق فازی برای اهداف تجاری و علمی و کاربردی مفید است
- میتواند برای کنترل ماشینها و محصولات مصرف کننده به کار گرفته شود
- ممکن است که استدلال دقیقی در اختیار قرار ندهد ، اما در نهایت یک استدلال قابل قبول تولید میکند
- منطق فازی یکی از روشها یی است که میتواند در محیط های غیر قطعی کاربرد داشته باشد
معماری سیستمهای فازی :
یک سیستم منطق فازی ۴ بخش اصلی دارد که در ذیل به آن میپردازیم.
1- ماژول فازی سازی (Fuzzification Module)
این قسمت از سیستم منطق فازی ورودی های سیستم را که اعداد Crisp ( همان مجموعه اعداد معمولی ) را به مجموعه فازی تبدیل می کند. این ماژول سیگنال ورودی را به ۵ مرحله تقسیم میکند ، از جمله :
LP x is Large Positive X مثبت بزرگ است
MP x is Medium Positive X مثبت متوسط است
S x is Small X کوچک است
MN x is Medium Negative X متوسط منفی است
LN x is Large Negative X بزرگ منفی است
2-پایگاه دانش : Knowledge Base
در پایگاه دانش قوانین IF-THEN هایی که توسط شخص خبره تهیه و تدوین شدهاند قرار می گیرد.
3- موتور استنتاج (Inference Engine) :
موتور استنتاج پروسه استدلال انسانی را بوسیله ایجاد استنتاج فازی بر روی ورودی و قوانین IF-THEN شبیه سازی میکند
4- ماژول غیر فازی ساز (Defuzzification Module ):
ماژول غیر فازی ساز در نهایت مجموعه فازی تولید شده بوسیله موتور استنتاج را به مقداری عددی معمولی (Crisp ) تبدیل می کند.
تابع عضویت بر روی مجموعه های فازی از متغیر ها ،یکسری عملیات را انجام میدهند.
تابع عضویت :
تابع عضویت به ما اجازه میدهد تا که یک مجموعه فازی را به صورت گرافیکی نمایش بدهیم و موارد زبانشناسی مربوط به آن را تعیین کنیم.تابع عضویت برای یک مجموعه فازی مثل A بر روی متغیر universe of discourse مثل X به صورت :µA:X → [0,1] تعریف می شود.که در آن هر عنصر از X به مقداری بین ۰ و ۱ نگاشت می شود. که مقدار عضویت یا درجه عضویت نامیده می شود.که درجه عضویت عنصری در X را در مجموعه فازی A معین می کند.
- محمور X نشان دهنده universe of discourse است.
- محور Y نشان دهنده درجه عضویت است که بین ۰ تا ۱ متغیر است. [0,1 ].
ممکن است که چنید تابع عضویت برای فازی نمودن مقداری عددی به کار برده شود. همه توابع عضویت برای LP, MP, S, MN و LN در شکل زیر نشان داده شده است .
تابع عضویت مثلثی شکل در میان دیگر شکلهای تابع عضویت مثل ذوذنقه ای ، تک صفحه (singleton) و گواسین (Gaussian) عمومیت بیشتری دارند.
در این شکل ورودی برای ۵ سطح فازی کننده از -۱۰ ولت تا +۱۰ ولت متغیر است.بنابراین خروجی متناظر نیز متغیر است.
مثالی از یک سیستم منطق فازی :اجازه بدهید تا یک سیستم تهویه هوا را با پنج سطح سیستم منطق فازی مورد بررسی قرار دهیم.این سیستم دمای سیستم تهویه هوا را با مقایسه دمای اتاق و مقدار دمای مورد نظر ( هدف) تنظیم می کند.
الگوریتمتعریف متغیر های زبانی و شرایط ( موارد)
ساختن توابع عضویت برای آنها
ساختن پایگاه داده دانش قوانین
تبدیل دادههای معمولی (Crisp Data ) به مجموعه های داده فازی با استفاده از توابع عضویت ( فازی سازی)
ارزیابی قوانین در پایگاه قانون (موتور استنتاج)
ترکیب نتابج هر یک از قانون ها (موتور استنتاج)
تبدیل خروجی داده به مقادیر غیر فازی (غیر فازی سازی )
توسعه منطق :مرحله اول : تعریف متغیر های زبانی و شرایط ( موارد) متغیر های زبانی ، متغیر های ورودی و خروجی در شکل کلمات ساده یا جملات هستند.برای دمای اتاق ، سرد ، گرم و غیره و غیره موارد زبانی هستند.
Temperature (t) = {very-cold, cold, warm, very-warm, hot}
هر عضوی از این مجموعه یک مورد زبانی است و میتواند بخشی از مقادیر دما را به طور کلی پوشش دهد.
مرحله ۲ : تولید توابع عضویت برای آنها :توابع عضویت متغیر دما در ذیل نشان داده شده است
مرحله ۳ :ایجاغد یک ماتریکس از مقادیر دمای اتاق در مقابل مقادیر دمای هدفی که از سیستم تهویه انتظار داریم برای ما فراهم کند
دمای هدف / دمای اتاق
دمای
هدف /
دمای
اتاق
|
Very_Cold
|
Cold
|
Warm
|
Hot
|
Very_Hot
|
Very_Cold
|
No_Change
|
Heat
|
Heat
|
Heat
|
Heat
|
Cold
|
Cool
|
No_Change
|
Heat
|
Heat
|
Heat
|
Warm
|
Cool
|
Cool
|
No_Change
|
Heat
|
Heat
|
Hot
|
Cool
|
Cool
|
Cool
|
No_Change
|
Heat
|
Very_Hot
|
Cool
|
Cool
|
Cool
|
Cool
|
No_Change
|
مجموعه قوانی را پایگاه دانش به شکل IF-THEN-ELSE تولید و ایجاد می کنیم.
Sr. No.
|
Condition
|
Action
|
1
|
IF temperature=(Cold OR Very_Cold) AND target=Warm THEN
|
Heat
|
2
|
IF temperature=(Hot OR Very_Hot) AND target=Warm THEN
|
Cool
|
3
|
IF (temperature=Warm) AND (target=Warm) THEN
|
No_Change
|
مرحله ۴ : بدست آوردن مقدار فازیعملیات های مجموعه فازی ارزیابی قوانین را انجام می دهند. عملیات استفاده شده برای OR و AND به ترتیبی بیشینه max و کمینه MIN می باشد.همه نتایج ارزیابی به شکل نتیجه نهایی ترکیب می شوندواین تنتیجه یک مقدار فازی است.
مرحله ۵ : انجام عملیات غیر فازی نمودنغیر فازی نمودن انجام عملیات بر اساس تابع عضویت برای متغیر خروجی میباشد