معرفی سیستمهای فازی و طراحی آنها در محیط MATLAB
سیستمهای فازی (Fuzzy Systems) یکی از ابزارهای قدرتمند در هوش مصنوعی و محاسبات نرم (Soft Computing) هستند که برای مدلسازی سیستمهایی با عدم قطعیت یا دادههای زبانی استفاده میشوند. این سیستمها از منطق فازی برای شبیهسازی استدلال انسانی بهره میبرند و معمولاً برای کنترل سیستمها، پیشبینی، و طبقهبندی بهکار میروند.
مراحل طراحی سیستم فازی
1. تعریف مسئله و ساختار سیستم فازی
برای طراحی یک سیستم فازی، ابتدا باید مسئلهای که قرار است حل شود، مشخص شود. سیستمهای فازی شامل سه مؤلفه اصلی هستند:
- ورودیها (Inputs): متغیرهایی که وضعیت سیستم را تعریف میکنند.
- خروجیها (Outputs): مقادیری که سیستم باید تولید کند.
- قوانین فازی (Fuzzy Rules): روابط بین ورودیها و خروجیها.
مثال: طراحی یک سیستم فازی با دو ورودی (دمای محیط و سرعت باد) و یک خروجی (تنظیم دمای سیستم گرمایشی).
2. تعیین محدوده متغیرهای ورودی و خروجی
- محدوده (Range) مقادیر هر ورودی و خروجی باید بر اساس دانش مسئله مشخص شود.
- مقادیر باید به مجموعههای فازی تقسیم شوند که هر مجموعه، یک مفهوم زبانی را نمایش دهد (مانند سرد، گرم، بسیار گرم).
3. انتخاب توابع عضویت (Membership Functions)
توابع عضویت، نشاندهنده میزان تعلق یک مقدار به مجموعههای فازی هستند. انتخاب نوع و تعداد توابع عضویت بستگی به پیچیدگی مسئله دارد.
انواع توابع عضویت متداول:
- مثلثی (Triangular): ساده و مناسب برای مسائل عمومی.
- گوسی (Gaussian): برای سیستمهای حساس به تغییرات نرم و روان.
- ذوزنقهای (Trapezoidal): برای نمایش محدودههای ثابتتر.
- توابع عمومی (Generalized): برای کاربردهای خاص.
4. تعریف قوانین فازی (Fuzzy Rules)
قوانین فازی، بیانگر روابط بین ورودیها و خروجیها هستند و معمولاً بهصورت جملات شرطی نوشته میشوند.
مثال:
- اگر دما سرد است و سرعت باد زیاد است، آنگاه سیستم گرمایشی باید زیاد کار کند.
- اگر دما راحت است و سرعت باد کم است، آنگاه سیستم گرمایشی باید خاموش باشد.
5. موتور استنتاج فازی (Fuzzy Inference Engine)
موتور استنتاج فازی با استفاده از قوانین فازی و توابع عضویت، خروجی مناسب را بر اساس ورودیها محاسبه میکند. دو روش استنتاج متداول:
- مامدانی (Mamdani): برای مسائل کنترلی.
- سوجنو (Sugeno): برای مسائل پیشبینی و ریاضیاتی.
استفاده از تولباکس فازی در MATLAB
MATLAB ابزارهای قدرتمندی برای طراحی سیستمهای فازی ارائه میدهد:
- Fuzzy Logic Designer: محیط گرافیکی برای طراحی سیستمهای فازی.
- دسترسی:
fuzzyدر Command Window.
- دسترسی:
- Functions: توابع از پیشتعریفشده مانند
mamfis,sugfis,genfis,evalfis. - Simulink: امکان شبیهسازی سیستم فازی با بلوکهای آماده.
معرفی سیستمهای فازی برای کنترل با دو ورودی (خطا و مشتق خطا)
سیستمهای فازی بهویژه در طراحی کنترلرها (Controllers) کاربرد فراوانی دارند، چرا که میتوانند رفتار سیستمهای پیچیده و غیرخطی را با استفاده از قوانین زبانی مدلسازی کنند. یکی از کاربردهای رایج، استفاده از کنترلر فازی برای تنظیم سیستم بر اساس خطا (Error) و مشتق خطا (Derivative of Error) است.
ساختار سیستم کنترلی فازی با دو ورودی
1. ورودیها
- خطا (Error): تفاوت بین مقدار واقعی سیستم و مقدار مرجع یا مطلوب (Desired Value).
- مشتق خطا (Derivative of Error): نرخ تغییر خطا در طول زمان که نشاندهنده دینامیک سیستم است.
این دو ورودی اطلاعات کاملی از وضعیت سیستم و روند تغییرات آن ارائه میدهند.
2. خروجی
- عمل کنترلی (Control Action): مقدار اصلاحی که باید اعمال شود تا سیستم به مقدار مطلوب برسد (مانند گشتاور موتور یا مقدار گرمایش).
مراحل طراحی کنترلر فازی
1. تعیین محدوده مقادیر ورودی و خروجی
- محدوده خطا و مشتق خطا باید بر اساس رفتار سیستم مشخص شود.
- محدوده خروجی بر اساس دامنه کنترل تعیین میشود.
2. طراحی توابع عضویت (Membership Functions)
- برای ورودیها (خطا و مشتق خطا) و خروجی، توابع عضویت انتخاب میشوند.
- نوع توابع عضویت میتواند مثلثی (Triangular)، گوسی (Gaussian)، یا ذوزنقهای (Trapezoidal) باشد.
- تعداد و نوع مجموعههای فازی به پیچیدگی سیستم و دقت موردنظر بستگی دارد.
مثال برای توابع عضویت خطا و مشتق خطا:
- خطا: “منفی زیاد”، “منفی کم”، “صفر”، “مثبت کم”، “مثبت زیاد”
- مشتق خطا: “کاهش سریع”، “کاهش”، “ثابت”، “افزایش”، “افزایش سریع”
3. تعریف قوانین فازی (Fuzzy Rules)
قوانین فازی، روابط بین ورودیها و خروجی را تعریف میکنند. این قوانین معمولاً بهصورت زبانی بیان میشوند.
مثال:
- اگر خطا “زیاد مثبت” و مشتق خطا “افزایش سریع” باشد، خروجی باید “کم” باشد.
- اگر خطا “صفر” و مشتق خطا “ثابت” باشد، خروجی باید “هیچ” باشد.
- اگر خطا “منفی زیاد” و مشتق خطا “کاهش” باشد، خروجی باید “زیاد مثبت” باشد.
4. موتور استنتاج فازی (Fuzzy Inference Engine)
- از قوانین فازی برای محاسبه خروجی استفاده میکند.
- دو نوع روش استنتاج متداول: مامدانی (Mamdani) و سوجنو (Sugeno).
- مامدانی برای سیستمهای کنترلی مناسبتر است.
استفاده از MATLAB برای طراحی کنترلر فازی
MATLAB ابزارهایی برای طراحی و شبیهسازی سیستمهای فازی در اختیار میگذارد:
- Fuzzy Logic Designer: محیط گرافیکی برای طراحی سیستمهای فازی.
- Simulink: شبیهسازی سیستمهای کنترلی با ترکیب بلوکهای فازی.
- توابع MATLAB: شامل توابعی مانند
addInput,addOutput,addRuleبرای تعریف سیستم.
نکات مهم در طراحی کنترلر فازی
- انتخاب صحیح توابع عضویت: نوع و تعداد توابع عضویت باید تعادلی میان سادگی و دقت ایجاد کند.
- تنظیم قوانین: قوانین باید از دانش مسئله استخراج شوند و امکان اصلاح و آزمایش فراهم باشد.
- اعتبارسنجی سیستم: عملکرد سیستم باید با دادههای واقعی بررسی شود.
- شبیهسازی: با استفاده از ابزارهای شبیهسازی MATLAB، رفتار کنترلر در سناریوهای مختلف ارزیابی شود.
نتیجهگیری
کنترلرهای فازی با استفاده از ورودیهای خطا و مشتق خطا میتوانند در سیستمهای پیچیده و غیرخطی عملکرد موثری داشته باشند. این کنترلرها در کاربردهایی مانند تنظیم دما، کنترل سرعت موتورها، و سیستمهای روباتیک به کار گرفته میشوند و MATLAB ابزار کاملی برای طراحی و شبیهسازی این سیستمها فراهم میکند.
- هستند.
مدرس: حسن سعادتمند
- بیش از 250 دوره آموزشی در MATLAB و پایتون.
- بیش از 15 سال تجربه در زمینه مهندسی کنترل و بهینهسازی.
اطلاعات تماس:
- تلگرام: t.me/matlabanyone
- ایمیل: h.saadatmand22@yahoo.com
- وبسایت: matlablearning.com
- تلفن: 09155137038
مدت زمان دوره: حدود 40 دقیقه





نقد و بررسیها
هنوز بررسیای ثبت نشده است.