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

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

مرور

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

ساخت یک کنترل کننده فازی

یک اجرا با یک میکروکنترلر با یک فیدبک ساده در نظر بگیرید:
یک مجموعه فازی برای خطای ورودی تعریف شده‌است. متغیر 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
محاسبه مرکزی بدست می آید:
  
  
  —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هر جرمی است پس می‌دهد:
  
  
  
  
در مثال ما مقادیر mu به جرم‌ها و مقادیر از x به جرم‌ها مربوط می‌شود(mu با این حال تنها به جرم‌ها مربوط می‌شود اگر جرم اول تابع خروجی باشد همه یکسان و معادل هستند اگر نباشد برای مثال برخی از مثلث‌ها باریک هستند در حالی که دیگران ممکن است تروپیزویید گسترده یا مثلث شانه، سپس جرم یا محدوده عملکرد خروجی باید شناخته شود یا محاسبه شود. این جرمی است که مقیاس ان توسط mu و ضرب در موقعیت Xi می‌شود.
این سیستم را می‌توان در یک ریزپردازنده استاندارد اجرا کرد. اما در حال حاضر تراشه‌های فازی در دسترس هستند. به عنوان مثال منطق سازگاری INC از سان خوزه در کالیفرنیا یک تراشه فازی AL220 که می‌تواند که می‌تواند تولید چهار ورودی آنالوگ و چهار خروجی آنالوگ را قبول کند.
نمودار زیر یک بلوک تراشه را نشان می‌دهد:
  +----+ +----+
 analog --4-->| analog | | mux / +--4--> analog
  in | mux | | SH | out
  +----+----+ +----+
  | ^
  V |
  +----+ +--+--+
  | ADC / latch | | DAC |
  +----+----+ +----+
  | ^
  | |
  ۸ +----+
  | | |
  | V |
  | +----+ +----+ |
  +-->| fuzzifier | | defuzzifier +--+
  +----+----+ +----+
  | ^
  | +----+ |
  | | rule | |
  +->| processor +--+
  | (50 rules) |
  +----+----+
  |
  +----+----+
  | parameter |
  | memory |
  | 256 x ۸ |
  +----+

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

ترمز ضد قفل

به عنوان مثال اول سیستم ترمز ضدقفل را در نظر بگیرید که به وسیله یک میکروکنترلر کنترل می‌شود میکروکنترلر ترمز ضدقفل باید براساس دما، سرعت و سایر ترمز تصمیم‌گیری کند.
متغیر دما در این سیستم را می‌توان به طیف وسیعی از حالت تقسیم کرد:سرد، خیلی سرد، ولرم، داغ، خیلی داغ، بسیار داغ.
انتقال از یک حالت به حالت بعدی برای تعریف کردن سخت است. یک آستانه استاتیک دلخواه ممکن است برای تقسیم داغ تا خیلی داغ تعیین شود. مثلاً در دقیقاً در ۹۰ درجه خیلی داغ و بسیار داغ شروع می‌شود. اما این یک تغییر نامحدود زمانی که مقادیر ورودی گذشته را در برمی‌گیرد بیش از این آستانه باعث می‌شود این انتقال می‌تواند صاف و ملایم نباشد همان‌طور که در شرایط مورد نیاز ترمز می‌شود.
راه این است که حالت‌ها را درهم بسازیماین بدین معناست که اجازه دهید آن‌ها را از یک حالت به حالت بعد تغییر دهند. برای این کار باید رابطه دینامیکی بین عامل‌های مختلف پویا باشد. ما با تعریف حالت دمای ورودی با استفاده از توابع عضویت شروع می‌کنیم:
بااین طرح وضعیت متغیر ورودی دیگر از یک حالت به حالت دیگر به‌طور ناگهانی تغییر نمی‌کند و در عوض ان درجه حرارت تغییر می‌کند. مقادیر یک تابع عضویت ازبین می‌رود زمانی که مقادیر بهره در بعد باشد. به عبارت دیگر مرتبه در طبقه سرما کاهش می‌یابد در طبقه گرما مرتبه ان بیشتر می‌شود.
در نمونه زمانی(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همخوانی دارد.
این ابزار در آینده برای کنترل فازی بسیار مفید خواهد بود.