سامانه کنترل فازی
سامانه کنترل فازی یک سامانه کنترل مبتنی بر منطق فازی است - سامانه‌ای ریاضی که مقادیر ورودی آنالوگ را به عنوان متغیرهای منطقی تحلیل می‌کند، یعنی برروی مقادیری پیوسته در بازه بین ۰ و ۱. برخلاف منطق کلاسیک یا دیجیتال، که بر روی مقادیر گسسته‌ ۱ یا ۰ (درست یا نادرست) عمل می‌کند.
منطق فازی به‌ طور گسترده در سامانه‌های کنترلی استفاده می‌شود. اصطلاح "فازی" یا مبهم به این واقعیت اشاره دارد که منطق حاکم بر سامانه می‌تواند با مفاهیمی برخورد کند که نمی‌توانند به عنوان "درست" یا "نادرست" بیان شوند، بلکه به عنوان "تا حدی درست" بیان می‌شوند.
اگر چه رویکردهای دیگری مانند الگوریتم ژنتیک و شبکه‌های عصبی می‌توانند در بسیاری از موارد مانند منطق فازی عمل کنند، اما منطق فازی این مزیت را دارد که راه حل مسئله را می‌توان به‌ گونه‌ای که اپراتورهای انسانی آن را درک کرده‌اند، ارائه و پیاده‌سازی کرد. به این ترتیب از تجربه آن‌ها برای طراحی کنترل کننده، بدون داشتن مدل ریاضی دقیقی برای سامانه، استفاده نمود. این خصوصیت باعث می‌شود تا مکانیزه کردن کارهایی که قبلاً توسط انسان با موفقیت انجام شده‌اند، آسان‌تر شود.
منطق فازی توسط لطفی زاده در دانشگاه کالیفرنیا، برکلی در مقاله‌ای در سال ۱۹۶۵ ارائه گردید. وی در مقاله‌ای در سال ۱۹۷۳ ایده‌های خود را در خصوص مفهومی بنام "متغیرهای زبانی" - به عنوان متغیری که در یک مجموعه فازی تعریف شده‌است - معرفی کرد. اولین کاربرد آن در صنعت، به یک کوره سیمان ساخته شده در دانمارک و در سال ۱۹۷۵ بر می‌گردد.
سامانه‌های فازی بطور گسترده در ابتدا در ژاپن پیاده سازی شدند.کار بر روی سامانه‌های فازی در ایالات متحده و اروپا نیز ادامه دارد، اگرچه در مقیاس کمتری نسبت به ژاپن انجام می‌شود. تحقیق و توسعه همچنان بر روی کاربردهای سامانه فازی، از جمله برروی سامانه‌های خبره فازی و ادغام منطق فازی با شبکه‌های عصبی مصنوعی و الگوریتم‌های ژنتیک، با هدف پیاده‌سازی سامانه‌های کنترلی خودآموز فازی ادامه دارد. این سامانه‌ها می‌توانند برای کنترل مجموعه‌ها و سامانه‌های دینامیکی غیرخطی، به عنوان مثال بدن انسان، استفاده شوند.
متغیرهای ورودی در یک سامانه کنترل فازی به طورکلی توسط مجموعه ای از نقشه‌های تابع عضویت کنترل می‌شوند که به عنوان مجموعه‌های فازی شناخته می‌شوند فرایند تبدیل یک مقدار ارزش ورودی به یک موجدار به یک مقدار ارزش فازی، فازی سازی نامیده می‌شود. در یک سامانه کنترل، نوع سوئیچ یا on/off ورودی‌های همراه با ورودی‌های آنالوگ و همچنین سوئیچ در ورودی‌ها همواره یک ارتباط (حقیقت) مجموعه فازی دارند که ارزش ان برابر۱ یا ۰ است ام این طرح می‌تواند با آن‌ها به سادگی برخورد کند زمانی که توابع فازی یک مقدار با مقدار دیگری اتفاق می‌افتد. با توجه به نمایش متغیرهای ورودی به توابع عضویت و مقادیر حقیقی، میکروکنترلر براساس اقدامات، برمبنا دستورها تصمیم می‌گیرد.
در این مثال دو متغیر دمای ترمز و سرعت ورودی هستند که به عنوان مجموعه فازی تعریف می‌شوند. خروجی متغیر نیز، فشار ترمز تعریف شده‌است که همچنین مجموعه فازی تعریف می‌شود که می‌تواند مقداری چون استاتیک یا افزایش تدریجی یا کاهش تدریجی و غیره تعریف شود. این دستور به تنهایی بسیار گیج‌کننده است زمانی که به نظر می‌رسد می‌توان بدون مزاحم از منطق فازی استفاده کرد اما به یاد داشته باشید این تصمیم بر مبنای دستورهای مجموعه است.
ترکیب عملیات فازی و نتیجه‌گیری برمبتنی بر قاعده فازی سامانه تخصصی را توصیف می‌کند. سامانه‌های کنترل کلاسیک مبتنی بر مدل‌های ریاضی است که کنترل می‌کند یک یا چند سامانه با استفاده از یک یا چند معادله دیفرانسیل که به وسیله ورودی‌های سامانه تعریف می‌شود. چنین سامانه‌های اغلب به عنوان سامانه‌های PID که کنترل کننده‌ها متناسب با انتگرال گیر کنترل‌کننده هستند اجرا می‌شوند. آن‌ها در توسعه و تجزیه و تحلیل سامانه‌های بسیار مؤثر هستند.
اگر PID و دیگر سامانه‌های کنترل کلاسیک بسیار توسعه یافته‌اند چرا با کنترل فازی در تضادند؟ این چند مزیت دارد. در بسیاری از موارد، مدل ریاضی کنترل فرایند ممکن است وجود نداشته باشد یا ممکن است خیلی گران از نظر پردازش قدرت رایانه و حافظه باشد و یک سامانه ممکن است براساس قوانین تجربی مؤثرتر باشد.
علاوه بر این، منطق فازی برای پیاده‌سازی کم هزینه بر روی سنسورها، تبدیل آنالوگ به دیجیتال ویک تراشه ۴بیتی یا ۸ بیتی در میکروکنترلرها می‌تواند مناسب باشد. چنین سامانه‌ای را می‌توان به راحتی ارتقا داد تنها با اضافه کردن دستور جدید برای بهبود اجرا یا اضافه کردن یک ویژگی جدید. در بسیاری از موارد از کنترل فازی می‌توان در بهبود کنترل کننده‌های کلاسیک یا اضافه کردن یک لایه اضافی از روش هوشمند به روش کنترل کنونی استفاده کرد.
کنترل کننده‌های فازی از لحاظ مفهومی بسیار ساده هستند. آن‌ها از یک مرحله ورودی، یک مرحله پردازش و یک مرحله خروجی تشکیل شده‌اند. در مرحله ورودی طراحی سنسور (جایابی سنسورها در سامانه) یا ورودی‌های دیگر مانند سوئیچ‌ها، انگشت شست و غیره مطرح است، تابع تبدیل و مقادیر حقیقی بایستی مناسب باشد. در مرحله پردازش هر دستور در جای مناسب خود یک نتیجه می‌دهد، سپس نتایج را ترکیب می‌کند تا دستور نهایی را بدست آورد. در مرحله خروجی نتیجه ترکیبی را به یک مقدار کنترل خروجی ویژه برمی‌گرداند.
شایع‌ترین شکل تابع عضویت، توابع مثلثی استهرچند منحنی‌های تراپزی و زنگ نیز استفاده می‌شوند، اما شکل تغییر سطح و جایابی‌ها به طورکلی اهمیت کمتری دارد. از سه تا هفت منحنی برای پوشش موردنیاز محدوده ورودی مناسب است یا جهان گفتمان در اصطلاحات فازی.
همان‌طور که قبلاً مورد بحث قرار گرفت، مرحله پردازش براساس مجموعه ای از قوانین منطق در فرم حالت IF-THEN شکل گرفته‌است. جایی که بخش IF به عنوان پیشخور (پیشین) و بخش THEN به عنوان پسخور(نتیجه) نامیده می‌شوند. سامانه‌های کنترل فازی معمولاً ده‌ها دستور دارند. یک قانون برای یک ترموستات را در نظر بگیرید: این دستور از مقدار حقیقی دمای ورودی استفاده می‌کند زمانی که برخی از مقادیر حقیقی در سرما، نتیجه را در مجموعه فازی خروجی گرم برای برخی از مقادیر بالا تولید می‌کند، این نتیجه با نتایج دیگر در قوانین نهایی برای خروجی کامپوزیت ترد استفاده می‌شود بدیهی است بیشترین مقدار حقیقی از سرما، بالاترین مقدار حقیقی از گرما است هرچند لزوماً به این معنا نیست که خروجی خود را به بالا تنظیم می‌کند از آنجا که این تنها یک قاعده در میان بسیاری است. در برخی موارد تابع عضویت می‌تواند با تغییر دادن به قاعده هود به مقداری معین مساوی شود. معمولاً هود شامل درباره، نزدیک تقریباً، بیش از حد، تا حدودی، بسیار، همچنین، بشدت، است. این عملیات ممکن است تعاریف دقیقی داشته باشند، هرچند تعاریف می‌توانند به‌طور قابل توجهی متفاوت باشند برای یک مثال توابع عضویت مربعی از آن جا که مقادیر عضویت همیشه کمتر از یک است تابع عضویت محدود برای بدست آوردن مقادیر در محدوده بزرگتر بشدت می‌شود در حالی که تاحدودی ریشه تابع را با مربع گسترش می‌دهد.
در عمل، در مجموعه قوانین فازی چند پیش فرض ترکیب شده وجود دارد که از عملکرد فازی استفاده می‌کند مانند AND وOR وNOT هرچند تعاریف برای تغییر دوباره تمایل دارندو در یک تعریف عمومی از همه حداقل وزن استفاده می‌کنند زمانی کهOR از بیشترین مقدار استفاده می‌کند. همچنین یک تابع تبدیل از ۱ برای عملگر NOT وجود دارد تا تابع مکمل بدهد.
چند راه برای تعریف نتیجه دستور وجود دارد اما یکی از رایج‌ترین و ساده‌ترین استنتاج روش MAX/MIN است در این روش تابع خروجی مقادیر حقیقی تولید شده را به وسیله فرض قبلی به ما می‌دهد.
دستورها می‌توانند به صورت موازی در سخت‌افزار یا به صورت پیوسته در نرم‌افزار حل شوند نتایج حاصل از همه دستورها تأکید بر روش دی فازی برای رسیدن به مقادیر یکنواخت از چندین روش دارد. چندین روش وجود دارد، در تئوری، هرکدام با مزایا و اشکالات مختلفی است. روش Centroid بسیار محبوب است، مرکز جرم نتیجه مقادیر موجی است. رویکرد دیگر روش قد است که ارزش بزرگترین مشارکت‌کننده طول می‌کشد. روش centroid دستورهای بزرگترین منطقه از خروجی در حالی که ارتفاع روش به‌طور پیوسته به بزرگترین مقدار خروجی حکم می‌کند. نمودار زیر ماکزیمم defuzzification را برای یک سامانه با ورودی‌های متغیر x و y و z و یک خروجی متغیر n است. توجه داشته باشید که mu یک استاندارد منطق فازی برای مقادیر حقیقی است. توجه کنید که هر دستور یک نتیجه از مقادیر حقیقی در یک عضو خاص را برای خروجی متغیر می‌دهد در مرکز دفازیکیشن مقدار OR’D است یعنی حداکثر مقدار استفاده می‌شود و مقادیر اضافه نشده هستندو نتایج پس از ترکیب بااستفاده از محاسبات داخلی طراحی سامانه کنترل فازی سامانه‌های تجربی اساساً روش‌شناسی است. رویکرد به تشخیص و خطا به صورت زیر است:
به عنوان مثال طراحی یک کنترل‌کننده فازی برای توربین بخار را در نظر بگیرید. بنظر می‌رسد به شرح زیر است:متغیر ورودی و خروجی را به نقشه وارد کنید. مجموعه فازی زیر: که در آن:
و قوانین عبارتند از:
در عمل کنترل‌کننده ورودی‌ها و نقشه آن‌ها را در توابع عضویت مقادیر حقیقی می‌پذیرد. سپس این نقشه بندی‌ها به داخل دستور وارد می‌شوند. اگر دستورهای خاص یک AND رابطه بین نقشه (طراحی) بین دو متغیر ورودی را مشخص می‌کند به عنوان مثال حداقل دو مورد از مقادیر حقیقی ترکیبی استفاده می‌شود. اگر یک OR مشخص باشد، از حداکثر استفاده می‌شود. این حالت خروجی مناسب انتخاب می‌شود؛ و یک مقدار ویژه حقیقی را به خود اختصاص در سطح پیش فرض داده‌است. ابتدا مقادیر حقیقی است و سپس دیفازیکیشن می‌شود. برای مثال فرض کنید درجه حرارت در وضعیت سرما قرار دارد و فشار در حالت کم و خوب است. از مقادیر فشار اطمینان حاصل می‌شود که تنها قوانین ۲ و ۳ گرما است.
سپس دو خروجی از طریق تخریب زایی درونی از هم جدا می‌شوند:
مقدار خروجی گشتاور را تنظیم می‌کند و سپس برای تولید مقدار بعدی چرخه کنترل دوباره شروع خواهد شد.
یک اجرا با یک میکروکنترلر با یک فیدبک ساده در نظر بگیرید:
یک مجموعه فازی برای خطای ورودی تعریف شده‌است. متغیر e و متغیر مشتق خطا، دلتا، و همچنین خروجی از ان پیروی می‌کند:
اگر محدوده خطا از -۱ به ۱ با یک مبدل آنالوگ به دیجیتال باشد وضوح ۰٫۲۵ استفاده شده‌است. سپس متغیر ورودی دستگاه (که در متغیر خروجی در این مورد نیز اعمال می‌شود) می‌توان به سادگی به عنوان یک جدول با خطا /مقدار دلتا/خروجی در ردیف بالا و مقادیر حقیقی برای هر عضویت تابع مرتب شده در ردیف زیر توصیف کرد.
فرض می‌کنیم سامانه فازی از دستور مبنا پیروی می‌کند: این قوانین معمولی برای برنامه‌های کاربردی کنترل شامل ترکیب منطقی از خطا و سیگنال خطا دلتا است، در حالی که نتیجه یک خروجی فرمان کنترل است. خروجی‌های دستوری را می‌توان با دی فازی محاسبه کرد.
یک محاسبه مرکزی گسسته برابر است با: حال فرض می‌کنیم در یک زمان خاص داریم: که می‌دهد:
از این رابطه با توجه به قاعده ۱ داریم:
Mu :نتیجه مقادیر حقیقی تابع عضویت برای دستور ۱. در شرایط محاسبه درونی این توده برای نمونه گسسته نتیجه می‌شود.
خروجی ۱:مقدار (برای دستور ۱) که در ان نتیجه تابع عضویت ماکزیمم در محدوده متغیر خروجی مجموعه فازی است. یعنی محاسبه محل مرکز جرم برای این نتیجه، واحد است. این مقدار مستقل از مقدار mu استZE در محدوده خروجی به سادگی موقعیت مکانی را مشخص می‌کند.
دستورهای دیگر عبارت است از:
محاسبه مرکزی بدست می آید: اگر مشکلی در فهمیدن معادله داخلی دارید به یاد داشته باشید که Centroid توسط summing all تعریف می‌شود. لحظات (موقعیت زمانی جرم) در اطراف مرکز ثقل و معادله مجموع به صفر میل می‌کند؛ بنابراین اگرXo مرکز جاذبه باشد Xi محل هر جرم وMiهر جرمی است پس می‌دهد: این سامانه را می‌توان در یک ریزپردازنده استاندارد اجرا کرد. اما در حال حاضر تراشه‌های فازی در دسترس هستند. به عنوان مثال منطق سازگاری INC از سان خوزه در کالیفرنیا یک تراشه فازی AL220 که می‌تواند که می‌تواند تولید چهار ورودی آنالوگ و چهار خروجی آنالوگ را قبول کند. نمودار زیر یک بلوک تراشه را نشان می‌دهد:
به عنوان مثال اول سامانه ترمز ضدقفل را در نظر بگیرید که به وسیله یک میکروکنترلر کنترل می‌شود میکروکنترلر ترمز ضدقفل باید براساس دما، سرعت و سایر ترمز تصمیم‌گیری کند.
متغیر دما در این سامانه را می‌توان به طیف وسیعی از حالت تقسیم کرد:سرد، خیلی سرد، ولرم، داغ، خیلی داغ، بسیار داغ.
انتقال از یک حالت به حالت بعدی برای تعریف کردن سخت است. یک آستانه استاتیک دلخواه ممکن است برای تقسیم داغ تا خیلی داغ تعیین شود. مثلاً در دقیقاً در ۹۰ درجه خیلی داغ و بسیار داغ شروع می‌شود. اما این یک تغییر نامحدود زمانی که مقادیر ورودی گذشته را در برمی‌گیرد بیش از این آستانه باعث می‌شود این انتقال می‌تواند صاف و ملایم نباشد همان‌طور که در شرایط مورد نیاز ترمز می‌شود.
راه این است که حالت‌ها را درهم بسازیماین بدین معناست که اجازه دهید آن‌ها را از یک حالت به حالت بعد تغییر دهند. برای این کار باید رابطه دینامیکی بین عامل‌های مختلف پویا باشد. ما با تعریف حالت دمای ورودی با استفاده از توابع عضویت شروع می‌کنیم:
بااین طرح وضعیت متغیر ورودی دیگر از یک حالت به حالت دیگر به‌طور ناگهانی تغییر نمی‌کند و در عوض ان درجه حرارت تغییر می‌کند. مقادیر یک تابع عضویت ازبین می‌رود زمانی که مقادیر بهره در بعد باشد. به عبارت دیگر مرتبه در طبقه سرما کاهش می‌یابد در طبقه گرما مرتبه ان بیشتر می‌شود. در نمونه زمانی(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همخوانی دارد.
این ابزار در آینده برای کنترل فازی بسیار مفید خواهد بود.