سامانه کنترل فازی

**سامانه کنترل فازی** یک سامانه کنترل مبتنی بر منطق فازی است - سامانه‌ای ریاضی که مقادیر ورودی آنالوگ را به عنوان متغیرهای منطقی تحلیل می‌کند، یعنی برروی مقادیری پیوسته در بازه بین ۰ و ۱. برخلاف منطق کلاسیک یا دیجیتال، که بر روی مقادیر گسسته‌ ۱ یا ۰ (درست یا نادرست) عمل می‌کند.

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

اگر چه رویکردهای دیگری مانند الگوریتم ژنتیک و شبکه‌های عصبی می‌توانند در بسیاری از موارد مانند منطق فازی عمل کنند، اما منطق فازی این مزیت را دارد که راه حل مسئله را می‌توان به‌ گونه‌ای که اپراتورهای انسانی آن را درک کرده‌اند، ارائه و پیاده‌سازی کرد. به این ترتیب از تجربه آن‌ها برای طراحی کنترل کننده، بدون داشتن مدل ریاضی دقیقی برای سامانه، استفاده نمود. این خصوصیت باعث می‌شود تا مکانیزه کردن کارهایی که قبلاً توسط انسان با موفقیت انجام شده‌اند، آسان‌تر شود.

## تاریخچه و کاربردها
منطق فازی توسط لطفی زاده در دانشگاه کالیفرنیا، برکلی در مقاله‌ای در سال ۱۹۶۵ ارائه گردید. وی در مقاله‌ای در سال ۱۹۷۳ ایده‌های خود را در خصوص مفهومی بنام "متغیرهای زبانی" - به عنوان متغیری که در یک مجموعه فازی تعریف شده‌است - معرفی کرد. اولین کاربرد آن در صنعت، به یک کوره سیمان ساخته شده در دانمارک و در سال ۱۹۷۵ بر می‌گردد.

سامانه‌های فازی بطور گسترده در ابتدا در ژاپن پیاده سازی شدند.

* علاقه به سامانه‌های فازی توسط «سیجی یاسونوبو» و «سوجی میاموتو» از هیتاچی آغاز شد، زمانی که در سال ۱۹۸۵ شبیه سازی‌هایی را ارائه دادند که امکان سنجی سامانه‌های کنترل فازی برای متروی سندای را نشان می‌داد. ایده آن‌ها به تصویب رسید و سامانه‌های فازی برای کنترل شتاب، ترمز و توقف قطار شهری، همزمان با افتتاح خط نامبوک در ۱۹۸۷ استفاده شد.
*در سال ۱۹۸۷، «تاکشی یاماکاوا» در آزمایش «آونگ واژگون» استفاده از کنترل فازی را از طریق مجموعه‌ای از تراشه‌های اختصاصی و ساده منطقی فازی نشان داد. این یک مسئله کلاسیک کنترل است، که در آن وسیله نقلیه سعی می‌کند با حرکت به جلو و عقب، آونگ واژگون را به صورت باثبات نگه دارد. در ادامه یاماکاوا با نصب یک لیوان حاوی آب و حتی قراردادن یک موش زنده در بالای آونگ، این مسئله را پیچیده‌تر کرد و این سامانه با موفقیت در هر دو مورد ثبات خود را حفظ کرد. سرانجام یاماکاوا به منظور بهره‌برداری از حق ثبت اختراعات خود در این زمینه، اقدام به تأسیس آزمایشگاه تحقیقات سامانه‌های فازی خود نمود.
* مهندسان ژاپنی متعاقباً طیف گسترده‌ای از سامانه‌های فازی را برای کاربردهای صنعتی و خانگی توسعه دادند. در سال ۱۹۸۸، ژاپن آزمایشگاه مهندسی بین المللی فازی (LIFE)، که یک همکاری مشترک بین ۴۸ شرکت برای پیگیری تحقیقات فازی است، را تأسیس کرد. شرکت خودروسازی فولکس واگن تنها عضو خارجی در این توافق بود که یک محقق را برای مدت سه سال به آن اعزام کرد.
*بسیاری از کالاهای مصرفی ژاپنی دارای سامانه‌های فازی هستند. جاروبرقی ماتسوشیتا از میکروکنترلرهای الگوریتم فازی برای خواندن اطلاعات از سنسورهای گرد و غبار استفاده می‌کند و بر این اساس قدرت مکش را تنظیم می‌کند. ماشین لباسشویی هیتاچی از کنترلرهای فازی برای حسگرهای وزن، نوع پارچه و چرک استفاده کرده و به طور خودکار چرخه یا سیکل شستشو را برای استفاده بهینه از انرژی، آب و مواد شوینده تنظیم می‌کنند.
*کانن یک دوربین فوکوس خودکار را توسعه داد که از یک دستگاه بارجفت‌شده (CCD) برای اندازه‌گیری وضوح تصویر در شش منطقه از میدان دید خود بهره برده و از اطلاعات ارائه شده برای تعیین میزان فوکوس تصویر استفاده می‌کند. همچنین سرعت تغییر لنز در حین فوکوس را ردیابی کرده و سرعت آن را کنترل می‌کند تا از لرزش جلوگیری کند. سامانه کنترل فازی دوربین از ۱۲ ورودی استفاده می‌کند: ۶ عدد برای بدست آوردن داده‌های وضوح فعلی ارائه شده توسط CCD و ۶ عدد برای اندازه‌گیری سرعت تغییر حرکت لنز. خروجی موقعیت لنز است. سامانه کنترل فازی از ۱۳ قانون استفاده می‌کند و به ۱٫۱ کیلوبایت حافظه نیاز دارد.
*یک سامانه تهویه مطبوع صنعتی طراحی شده توسط شرکت میتسوبیشی از ۲۵ دستور برای کنترل گرما و ۲۵ دستور برای خنک‌کردن، استفاده می‌کند. یک سنسور دما، خروجی‌های کنترلر را که به یک اینورتر، شیر کمپرسور و موتور فن متصل هستند، را فراهم می کند. در مقایسه با طراحی قبلی، کنترلر فازی پنج برابر سریع‌تر گرم و یا خنک می‌کند، مصرف برق را ۲۴٪ کاهش می‌دهد، ثبات دما را دو برابر افزایش می‌دهد و از سنسورهای کمتری استفاده می‌کند.
*کاربردهای دیگری که مورد بررسی قرار گرفتند یا پیاده‌سازی شدند عبارتند از: تشخیص متون دست نویس، رباتیک، ربات‌هایی که به بیماری‌های خاص توانبخشی می‌دهد. (برای مثال برای کنترل ضربان قلب و فشار خون)، سامانه‌های منترل آسانسور و غیره.

کار بر روی سامانه‌های فازی در ایالات متحده و اروپا نیز ادامه دارد، اگرچه در مقیاس کمتری نسبت به ژاپن انجام می‌شود.

* سازمان حفاظت از محیط زیست ایالات متحده آمریکا کنترل فازی را برای موتورهایی با بهره‌وری انرژی مورد بررسی قرار داده‌است. ناسا کنترل فازی را برای سامانه اتصال فضایی خودکار بررسی کرده است، شبیه‌سازی‌ها نشان می‌دهند که یک سامانه کنترل فازی می‌تواند مصرف سوخت را تا حد زیادی کاهش دهد. شرکت‌هایی مانند بویینگ، جنرال موتورز، الن برادلی، کرایسلر، ایتن، ویرلپول روی منطق فازی برای استفاده در یخچال‌های کم مصرف، سامانه‌های انتقال نیروی محرکه بهبود یافته  اتومبیل و موتورهای الکتریکی با موتورهایی با بهره‌وری انرژی کار کرده‌اند.  

*در سال ۱۹۹۵ مایتاگ یک ماشین ظرفشویی هوشمند را بر اساس یک کنترل کننده فازی معرفی کرد که دارای یک سنسور برای اندازه‌گیری دما، یک سنسور هدایت، برای اندازه‌گیری میزان مواد شوینده براساس میزان یون‌های موجود در آب، همچنین یک سنسور نوری حساس برای اندازه‌گیری میزان کدوررت در شستشو و یک سنسور مغناطیسی برای خواندن نرخ چرخش است. در این دستگاه سامانه کنترلی چرخه مطلوب شستشو را برای هر بار شستشو به گونه‌ای تنظیم می‌کند تا با کمترین مصرف انرژی، مواد شوینده و آب بهترین نتیجه را بدست آورد. حتی با ردیابی آخرین باری که درب باز می‌شود، میزان خشک شدگی مواد غذایی و تعداد ظروف را با تعداد دفعات باز شدن درب تخمین می‌زند.

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

## مجموعه‌های فازی
متغیرهای ورودی در یک سامانه کنترل فازی به طورکلی توسط مجموعه ای از نقشه‌های تابع عضویت کنترل می‌شوند که به عنوان مجموعه‌های فازی شناخته می‌شوند فرایند تبدیل یک مقدار ارزش ورودی به یک موجدار به یک مقدار ارزش فازی، فازی سازی نامیده می‌شود.
در یک سامانه کنترل، نوع سوئیچ یا on/off ورودی‌های همراه با ورودی‌های آنالوگ و همچنین سوئیچ در ورودی‌ها همواره یک ارتباط (حقیقت) مجموعه فازی دارند که ارزش ان برابر۱ یا ۰ است ام این طرح می‌تواند با آن‌ها به سادگی برخورد کند زمانی که توابع فازی یک مقدار با مقدار دیگری اتفاق می‌افتد.
با توجه به نمایش متغیرهای ورودی به توابع عضویت و مقادیر حقیقی، میکروکنترلر براساس اقدامات، برمبنا دستورها تصمیم می‌گیرد.

 IF brake temperature IS warm AND speed IS not very fast
 THEN brake pressure IS slightly decreased.

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

ترکیب عملیات فازی و نتیجه‌گیری برمبتنی بر قاعده فازی سامانه تخصصی را توصیف می‌کند. سامانه‌های کنترل کلاسیک مبتنی بر مدل‌های ریاضی است که کنترل می‌کند یک یا چند سامانه با استفاده از یک یا چند معادله دیفرانسیل که به وسیله ورودی‌های سامانه تعریف می‌شود. چنین سامانه‌های اغلب به عنوان سامانه‌های PID که کنترل کننده‌ها متناسب با انتگرال گیر کنترل‌کننده هستند اجرا می‌شوند. آن‌ها در توسعه و تجزیه و تحلیل سامانه‌های بسیار مؤثر هستند.

اگر PID و دیگر سامانه‌های کنترل کلاسیک بسیار توسعه یافته‌اند چرا با کنترل فازی در تضادند؟ این چند مزیت دارد. در بسیاری از موارد، مدل ریاضی کنترل فرایند ممکن است وجود نداشته باشد یا ممکن است خیلی گران از نظر پردازش قدرت رایانه و حافظه باشد و یک سامانه ممکن است براساس قوانین تجربی مؤثرتر باشد.

علاوه بر این، منطق فازی برای پیاده‌سازی کم هزینه بر روی سنسورها، تبدیل آنالوگ به دیجیتال ویک تراشه ۴بیتی یا ۸ بیتی در میکروکنترلرها می‌تواند مناسب باشد. چنین سامانه‌ای را می‌توان به راحتی ارتقا داد تنها با اضافه کردن دستور جدید برای بهبود اجرا یا اضافه کردن یک ویژگی جدید. در بسیاری از موارد از کنترل فازی می‌توان در بهبود کنترل کننده‌های کلاسیک یا اضافه کردن یک لایه اضافی از روش هوشمند به روش کنترل کنونی استفاده کرد.

### جزئیات کنترل فازی
کنترل کننده‌های فازی از لحاظ مفهومی بسیار ساده هستند. آن‌ها از یک مرحله ورودی، یک مرحله پردازش و یک مرحله خروجی تشکیل شده‌اند. در مرحله ورودی طراحی سنسور (جایابی سنسورها در سامانه) یا ورودی‌های دیگر مانند سوئیچ‌ها، انگشت شست و غیره مطرح است، تابع تبدیل و مقادیر حقیقی بایستی مناسب باشد. در مرحله پردازش هر دستور در جای مناسب خود یک نتیجه می‌دهد، سپس نتایج را ترکیب می‌کند تا دستور نهایی را بدست آورد. در مرحله خروجی نتیجه ترکیبی را به یک مقدار کنترل خروجی ویژه برمی‌گرداند.

شایع‌ترین شکل تابع عضویت، توابع مثلثی استهرچند منحنی‌های تراپزی و زنگ نیز استفاده می‌شوند، اما شکل تغییر سطح و جایابی‌ها به طورکلی اهمیت کمتری دارد. از سه تا هفت منحنی برای پوشش موردنیاز محدوده ورودی مناسب است یا جهان گفتمان در اصطلاحات فازی.

همان‌طور که قبلاً مورد بحث قرار گرفت، مرحله پردازش براساس مجموعه ای از قوانین منطق در فرم حالت IF-THEN شکل گرفته‌است. جایی که بخش IF به عنوان پیشخور (پیشین) و بخش THEN به عنوان پسخور(نتیجه) نامیده می‌شوند. سامانه‌های کنترل فازی معمولاً ده‌ها دستور دارند. یک قانون برای یک ترموستات را در نظر بگیرید:

 IF (temperature is "cold") THEN (heater is "high")

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

در عمل، در مجموعه قوانین فازی چند پیش فرض ترکیب شده وجود دارد که از عملکرد فازی استفاده می‌کند مانند AND وOR وNOT هرچند تعاریف برای تغییر دوباره تمایل دارندو در یک تعریف عمومی از همه حداقل وزن استفاده می‌کنند زمانی کهOR از بیشترین مقدار استفاده می‌کند. همچنین یک تابع تبدیل از ۱ برای عملگر NOT وجود دارد تا تابع مکمل بدهد.

چند راه برای تعریف نتیجه دستور وجود دارد اما یکی از رایج‌ترین و ساده‌ترین استنتاج روش MAX/MIN است در این روش تابع خروجی مقادیر حقیقی تولید شده را به وسیله فرض قبلی به ما می‌دهد.

دستورها می‌توانند به صورت موازی در سخت‌افزار یا به صورت پیوسته در نرم‌افزار حل شوند نتایج حاصل از همه دستورها تأکید بر روش دی فازی برای رسیدن به مقادیر یکنواخت از چندین روش دارد. چندین روش وجود دارد، در تئوری، هرکدام با مزایا و اشکالات مختلفی است.
روش Centroid بسیار محبوب است، مرکز جرم نتیجه مقادیر موجی است. رویکرد دیگر روش قد است که ارزش بزرگترین مشارکت‌کننده طول می‌کشد. روش centroid دستورهای بزرگترین منطقه از خروجی در حالی که ارتفاع روش به‌طور پیوسته به بزرگترین مقدار خروجی حکم می‌کند.
نمودار زیر ماکزیمم defuzzification را برای یک سامانه با ورودی‌های متغیر x و y و z و یک خروجی متغیر n است. توجه داشته باشید که mu یک استاندارد منطق فازی برای مقادیر حقیقی است.
پرونده:Fuzzy control - centroid defuzzification using max-min inferencing.png

توجه کنید که هر دستور یک نتیجه از مقادیر حقیقی در یک عضو خاص را برای خروجی متغیر می‌دهد در مرکز دفازیکیشن مقدار OR’D است یعنی حداکثر مقدار استفاده می‌شود و مقادیر اضافه نشده هستندو نتایج پس از ترکیب بااستفاده از محاسبات داخلی طراحی سامانه کنترل فازی سامانه‌های تجربی اساساً روش‌شناسی است. رویکرد به تشخیص و خطا به صورت زیر است:
* ثبت سامانه عملیاتی مشخصاتی و ورودی‌ها و خروجی‌ها
* مجموعه‌های فازی را برای هر ورودی ثبت کنید
* دستور سامانه را ثبت کنید
* محدوده روش دیفازیکیشن را پیدا کنید.
* از طریق مجموعه آزمون اعتبارسنجی را اجرا کنید. جزئیات سامانه را در صورت نیاز تنظیم کنید.
* سند را کامل و تولید را افزایش دهید.

به عنوان مثال طراحی یک کنترل‌کننده فازی برای توربین بخار را در نظر بگیرید. بنظر می‌رسد به شرح زیر است:متغیر ورودی و خروجی را به نقشه وارد کنید. مجموعه فازی زیر:
پرونده:Fuzzy control - input and output variables mapped into a fuzzy set.png

که در آن:

   N3:   Large negative.
   N2:   Medium negative.
   N1:   Small negative.
   Z:    Zero.
   P1:   Small positive.
   P2:   Medium positive.
   P3:   Large positive.

و قوانین عبارتند از:

 rule 1:  IF temperature IS cool AND pressure IS weak,   
          THEN throttle is P3.

 rule 2:  IF temperature IS cool AND pressure IS low,    
          THEN throttle is P2.

 rule 3:  IF temperature IS cool AND pressure IS ok,     
          THEN throttle is Z.

 rule 4:  IF temperature IS cool AND pressure IS strong, 
          THEN throttle is N2.

در عمل کنترل‌کننده ورودی‌ها و نقشه آن‌ها را در توابع عضویت مقادیر حقیقی می‌پذیرد. سپس این نقشه بندی‌ها به داخل دستور وارد می‌شوند. اگر دستورهای خاص یک AND رابطه بین نقشه (طراحی) بین دو متغیر ورودی را مشخص می‌کند به عنوان مثال حداقل دو مورد از مقادیر حقیقی ترکیبی استفاده می‌شود. اگر یک OR مشخص باشد، از حداکثر استفاده می‌شود. این حالت خروجی مناسب انتخاب می‌شود؛ و یک مقدار ویژه حقیقی را به خود اختصاص در سطح پیش فرض داده‌است. ابتدا مقادیر حقیقی است و سپس دیفازیکیشن می‌شود. برای مثال فرض کنید درجه حرارت در وضعیت سرما قرار دارد و فشار در حالت کم و خوب است. از مقادیر فشار اطمینان حاصل می‌شود که تنها قوانین ۲ و ۳ گرما است.

پرونده:Fuzzy control - Rule 2 evaluation.png

پرونده:Fuzzy control - Rule 3 evaluation.png

سپس دو خروجی از طریق تخریب زایی درونی از هم جدا می‌شوند:

```
__________________________________________________________________

                                       |          Z      P2
                                    1 -+          *     *
                                       |         **   **
                                       |        ** **
                                       |       *   **   *
                                       |      *     222222222
                                       |     *     22222222222
                                       |    333333332222222222222
                                       +---33333333222222222222222--&gt;
                                                        ^ 
                                                      +150 
   __________________________________________________________________
```

مقدار خروجی گشتاور را تنظیم می‌کند و سپس برای تولید مقدار بعدی چرخه کنترل دوباره شروع خواهد شد.

### ساخت یک کنترل کننده فازی
یک اجرا با یک میکروکنترلر با یک فیدبک ساده در نظر بگیرید:

پرونده:Fuzzy control system-feedback controller.png

یک مجموعه فازی برای خطای ورودی تعریف شده‌است. متغیر e و متغیر مشتق خطا، دلتا، و همچنین خروجی از ان پیروی می‌کند:

  LP: large positive
  SP: small positive
  ZE: zero
  SN: small negative
  LN: large negative

اگر محدوده خطا از -۱ به ۱ با یک مبدل آنالوگ به دیجیتال باشد وضوح ۰٫۲۵ استفاده شده‌است. سپس متغیر ورودی دستگاه (که در متغیر خروجی در این مورد نیز اعمال می‌شود) می‌توان به سادگی به عنوان یک جدول با خطا /مقدار دلتا/خروجی در ردیف بالا و مقادیر حقیقی برای هر عضویت تابع مرتب شده در ردیف زیر توصیف کرد.

  _______________________________________________________________________
  -1 -0.75 -0.5 -0.25 0 0.25 0.5 0.75 1
  _______________________________________________________________________
  mu(LP) 0 0 0 0 0 0 0.3 0.7 1
  mu(SP) 0 0 0 0 0.3 0.7 1 0.7 0.3
  mu(ZE) 0 0 0.3 0.7 1 0.7 0.3 0 0
  mu(SN) 0.3 0.7 1 0.7 0.3 0 0 0 0
  mu(LN) 1 0.7 0.3 0 0 0 0 0 0
  _______________________________________________________________________ —or, in graphical form (where each "X" has a value of 0.1):

  LN SN ZE SP LP
  +----+
  | |
 -1.0 | XXXXXXXXXX XXX:: : |
 -0.75 | XXXXXXX XXXXXXX:: : |
 -0.5 | XXX XXXXXXXXXX XXX:: |
 -0.25 |: XXXXXXX XXXXXXX:: |
  0.0 |: XXX XXXXXXXXXX XXX: |
  0.25 |:: XXXXXXX XXXXXXX: |
  0.5 |:: XXX XXXXXXXXXX XXX |
  0.75 |:: : XXXXXXX XXXXXXX |
  1.0 |:: : XXX XXXXXXXXXX |
  | |
  +----+

فرض می‌کنیم سامانه فازی از دستور مبنا پیروی می‌کند:

  rule 1: IF e = ZE AND delta = ZE THEN output = ZE
  rule 2: IF e = ZE AND delta = SP THEN output = SN
  rule 3: IF e = SN AND delta = SN THEN output = LP
  rule 4: IF e = LP OR delta = LP THEN output = LN

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

یک محاسبه مرکزی گسسته برابر است با:

  SUM(I = 1 TO 4 OF (mu(I) * output(I))) / SUM(I = 1 TO 4 OF mu(I))

حال فرض می‌کنیم در یک زمان خاص داریم:

  e     = 0.25
  delta = 0.5

که می‌دهد:

  ________________________
 e delta
  ________________________
  mu(LP) 0 0.3
  mu(SP) 0.7 1
  mu(ZE) 0.7 0.3
  mu(SN) 0 0
  mu(LN) 0 0
  ________________________

از این رابطه با توجه به قاعده ۱ داریم:

  rule 1: IF e = ZE AND delta = ZE THEN output = ZE

  mu(1)     = MIN(0.7, 0.3) = 0.3
  output(1) = 0

Mu :نتیجه مقادیر حقیقی تابع عضویت برای دستور ۱. در شرایط محاسبه درونی این توده برای نمونه گسسته نتیجه می‌شود.

خروجی ۱:مقدار (برای دستور ۱) که در ان نتیجه تابع عضویت ماکزیمم در محدوده متغیر خروجی مجموعه فازی است. یعنی محاسبه محل مرکز جرم برای این نتیجه، واحد است. این مقدار مستقل از مقدار mu استZE در محدوده خروجی به سادگی موقعیت مکانی را مشخص می‌کند.

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

  rule 2: IF e = ZE AND delta = SP THEN output = SN

  mu(2)     = MIN(0.7, 1) = 0.7
  output(2) = -0.5

  rule 3: IF e = SN AND delta = SN THEN output = LP

  mu(3)     = MIN(0.0, 0.0) = 0
  output(3) = 1

  rule 4: IF e = LP OR delta = LP THEN output = LN

  mu(4)     = MAX(0.0, 0.3) = 0.3
  output(4) = -1

محاسبه مرکزی بدست می آید:

    \frac{mu(1) \cdot output(1)+mu(2) \cdot output(2)+mu(3) \cdot output(3)+mu(4) \cdot output(4)}{mu(1)+mu(2)+mu(3)+mu(4)} 
   =\frac{(0.3 \cdot 0)+(0.7 \cdot-0.5)+(0 \cdot 1) +(0.3 \cdot-1)}{0.3+0.7+0+0.3} 
   =-0.5—for the final control output. Simple. Of course the hard part is figuring out what rules actually work correctly in practice.

اگر مشکلی در فهمیدن معادله داخلی دارید به یاد داشته باشید که Centroid توسط summing all تعریف می‌شود. لحظات (موقعیت زمانی جرم) در اطراف مرکز ثقل و معادله مجموع به صفر میل می‌کند؛ بنابراین اگرXo مرکز جاذبه باشد Xi محل هر جرم وMiهر جرمی است پس می‌دهد:

   0 = ( X_1 - X_0 ) \cdot M_1 + ( X_2 - X_0 ) \cdot M_2 + \ldots + ( X_n - X_0 ) \cdot M_n
   0 = ( X_1 \cdot M_1 + X_2 \cdot M_2 + \ldots + X_n \cdot M_n ) - X_0 \cdot ( M_1 + M_2 + \ldots + M_n ) 
    X_0 \cdot ( M_1 + M_2 + \ldots + M_n ) =  X_1 \cdot M_1 + X_2 \cdot M_2 + \ldots + X_n \cdot M_n 
    X_0 = \frac{ X_1 \cdot M_1 + X_2 \cdot M_2 + \ldots + X_n \cdot M_n }{ M_1 + M_2 + \ldots + M_n }

 در مثال ما مقادیر mu به جرم‌ها و مقادیر از x به جرم‌ها مربوط می‌شود(mu با این حال تنها به جرم‌ها مربوط می‌شود اگر جرم اول تابع خروجی باشد همه یکسان و معادل هستند اگر نباشد برای مثال برخی از مثلث‌ها باریک هستند در حالی که دیگران ممکن است تروپیزویید گسترده یا مثلث شانه، سپس جرم یا محدوده عملکرد خروجی باید شناخته شود یا محاسبه شود. این جرمی است که مقیاس ان توسط mu و ضرب در موقعیت Xi می‌شود.
این سامانه را می‌توان در یک ریزپردازنده استاندارد اجرا کرد. اما در حال حاضر تراشه‌های فازی در دسترس هستند. به عنوان مثال منطق سازگاری INC از سان خوزه در کالیفرنیا یک تراشه فازی AL220 که می‌تواند که می‌تواند تولید چهار ورودی آنالوگ و چهار خروجی آنالوگ را قبول کند.
نمودار زیر یک بلوک تراشه را نشان می‌دهد:


```
+----+ +----+
 analog --4--&gt;| analog | | mux / +--4--&gt; analog
  in | mux | | SH | out
  +----+----+ +----+
  | ^
  V |
  +----+ +--+--+
  | ADC / latch | | DAC |
  +----+----+ +----+
  | ^
  | |
  ۸ +----+
  | | |
  | V |
  | +----+ +----+ |
  +--&gt;| fuzzifier | | defuzzifier +--+
  +----+----+ +----+
  | ^
  | +----+ |
  | | rule | |
  +-&gt;| processor +--+
  | (50 rules) |
  +----+----+
  |
  +----+----+
  | parameter |
  | memory |
  | 256 x ۸ |
  +----+

  ADC: analog-to-digital converter
  DAC: digital-to-analog converter
  SH: sample/hold
```


## ترمز ضد قفل
به عنوان مثال اول سامانه ترمز ضدقفل را در نظر بگیرید که به وسیله یک میکروکنترلر کنترل می‌شود میکروکنترلر ترمز ضدقفل باید براساس دما، سرعت و سایر ترمز تصمیم‌گیری کند.

متغیر دما در این سامانه را می‌توان به طیف وسیعی از حالت تقسیم کرد:سرد، خیلی سرد، ولرم، داغ، خیلی داغ، بسیار داغ.

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

راه این است که حالت‌ها را درهم بسازیماین بدین معناست که اجازه دهید آن‌ها را از یک حالت به حالت بعد تغییر دهند. برای این کار باید رابطه دینامیکی بین عامل‌های مختلف پویا باشد. ما با تعریف حالت دمای ورودی با استفاده از توابع عضویت شروع می‌کنیم:

پرونده:Fuzzy control - definition of input temperature states using membership functions.png

بااین طرح وضعیت متغیر ورودی دیگر از یک حالت به حالت دیگر به‌طور ناگهانی تغییر نمی‌کند و در عوض ان درجه حرارت تغییر می‌کند. مقادیر یک تابع عضویت ازبین می‌رود زمانی که مقادیر بهره در بعد باشد. به عبارت دیگر مرتبه در طبقه سرما کاهش می‌یابد در طبقه گرما مرتبه ان بیشتر می‌شود.
در نمونه زمانی(sampled time) مقادیر ویژه (صحیح) دمای ترمز را تقریباً همیشه در بعضی از قسمت‌های دوگانه عضویت است: ۰٫۶ مقدار جزئی و ۰٫۴ مقدار گرما یا۰٫۷ مقدار جزئی و ۰٫۳ مقدار سرما و غیره.
مثال فوق نشان می‌دهد یک برنامه ساده با استفاده از انتزاع مقدار از مقادیر مختلف را مقدار می‌کند. این تنها نوع داده را نشان می‌دهد. اگر چه در این نمونه دما نیز نشان داده شده‌است.
اضافه کردن پیچیدگی اضافی سامانه ترمز می‌تواند توسط عوامل اضافی مانند کشش، سرعت، اینرسی، تنظیم عملکردهای دینامیکی (پویا) با توجه به سامانه فازی طراحی شده اشاره کرد.

## تفسیر منطقی از کنترل فازی
چندین مشکل برای تفسیر منطقی از کنترل فازی دستورهای IF-THEN به رغم ظاهر آن‌ها وجود دارد.
به عنوان مثال یک دستور را به عنوان IF تنظیم کنید (درجه حرارت سرد است)THEN (گرما بالا است) با فرمول مرتبه اول سرد(X) به بالا(Y) و فرض کنید r یک ورودی است به طوری که سرد r نادرست است. سپس فرمول Cold (r) → High (t) برای هر t صادق است و بنابراین هر t به کنترل r صحیح می‌دهد. توجیه سختگیرانه کنترل فازی در کتاب Hájek(رجوع شود به فصل ۷) که در ان کنترل فازی یک نظریه اساسی بر مبنای منطق توسط Hájek ارائه شده‌است همچنین در سال 2005 Gerla یک رویکرد منطقی به کنترل فازی بر اساس منطق فازی برنامه‌نویسی پیشنهاد کرد. بدیهی است تابع ناشی از سامانه IF-THEN توسط فازی مشخص می‌شود سپس این دستورها را به یک برنامه فازی P حاوی یک سری از دستورها که سر خوب(x,y) است، ترجمه می‌کنیم. تفسیر این پیش فرض حداقل در مدل هربراند فازی با P شامل fهمخوانی دارد.

این ابزار در آینده برای کنترل فازی بسیار مفید خواهد بود.

## جستارهای وابسته
* استنباط بیزی
* پسماند (هیسترزیس)

## منابع

رده:منطق فازی
رده:مهندسی کنترل
رده:ویکی‌سازی رباتیک