Fuzzy Control and Fuzzy Logic(منطق فازی&کنترل فازی)

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

منطق فازی و تئوری Fuzzy set:

 منطق فازی و تئوری Fuzzy set نقش محوری در رسیدگی و کنترل چنین سیستمهایی را بازی می کند.   مسئله اصلی در تئوری کنترل فازی استفاده از منطق فازی برای برطرف کردن مشکلات عملی است که       نمی توانند بصورت مناسب توسط تئوری کنترل کلاسیک و تکنیکهای آن حل شود. البته نتایج کنترل فازی          زمانیکه سیستم تحت کنترل را از فضای فازی به غیر فازی کاهش می دهیم با کنترل کلاسیک سازگار می باشد.

 

 

کنترل فازی:

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

هر چند که کنترل فازی برای سیستمهایی است که تعریف مبهمی دارند اما تئوری آن مبهم نیست و بر عکس بسیار محکم و پایدار است و منطق فازی یک نوع خاص از منطق، و ریاضیات فازی یک شاخه از ریاضیات است. در ادامه نشان داده می شود که منطق کنترل فازی یک تکنیک کنترل منطقی است که کنترل کننده های منطقی برنامه پذیر (PLC) که منطق کلاسیک دو مقداره و دیجیتال را بکار می گیرد از عبارت منطقی ساده فازی بهره می گیرد.

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

 

سیستم حلقه بسته:

 در شکل زیر یک سیستم حلقه بسته شامل یک Plant که مدل ریاضی آن در دست نیست آمده است ، مسئله مطرح این است که این حلقه بسته باید کنترلر داشته باشد که در نهایت عمل ردیابی ورودی توسط خروجی انجام شود، یعنی :

 حال به جای طراحی یک کنترلر کلاسیک یک کنترلر فازی طراحی خواهیم کرد. لازم به ذکر است که برای طراحی کنترلر کلاسیک ذکر فرمول ریاضی مدل سیستم ضروری است اما در این جا در طراحی کنترلر فازی فرض می شود که فرمولاسیون ریاضی Plant کاملاً ناشناخته است ! اما چگونه می توان برای چنین سیستمی کنترلر طراحی کرد ؟

 

ساختار کلی یک کنترلر فازی:

 ابتدا برخی مفاهیم و اصلاحات را معرفی می کنیم. ساختار کلی یک کنترل کننده با منطق فازی (FLC) یا یک کنترلر فازی (FC) به طور خلاصه از سه قسمت پایه ای تشکیل می شود : 1- فازی کردن ( بخشی که با ورودیها ارتباط دارد) 2- موتور استنتاج که مبتنی بر قواعد فازی است 3- غیر فازی کردن ( بخشی که با خروجیها ارتباط دارد). این 3 مرحله در شکل زیر آمده است :

 

ماژول فازی سازی مقادیر فیزیکی سیگنالهای پروسه، که در اینجا سیگنال e به عنوان ورودی می باشد را به مقادیر فازی نرمالایز شده در رنج تغییرات ورودی به همراه یکسری توابع عضویت که درجه عضویت ( میزان تعلق این ورودی به این رنج تغییرات) این مقادیر در رنج تغییرات را نشان می دهد تبدیل می کند. موتور استنتاج یک FLC نقش کلیدی در عملکرد آن دارد که توسط یک سری قوانین اگر- آنگاه به فرم زیر عمل می کند :

 

این m قاعده، m خروجی کنترلر  (u1,u2,...,um)را تولید می کنند که البته ممکن است با هم تداخل هم داشته باشند و گاهی یک قاعده 2 فرمان کنترلی نتیجه می دهد. پایه ریزی این قوانین پایه به تجربه طراح بسیار وابسته است که لازمه آن دانش کافی در مورد پروسه، آنالیز و مهارتهای طراحی می باشد. یک طراحی خوب باعث می شود که کنترلر کار کند و یک طراحی بهتر باعث می شود که با بازدهی بیشتری کار کند. البته یک سری قواعد عمومی و روتین طراحی وجود دارد که در ادامه صحبت خواهیم کرد.

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

 

اصول طراحی کنترل کننده های فازی:

 سیگنال مرجع اسکالر r را تصور کنید که به عنوان نقطه کار به یک پروسه ای که روابط ریاضی ناشناخته ای دارد وارد می شود. هدف طراحی کنترلر فازی است که رابط بین این سیگنال و پروسه قرار گیرد (شکل 1 ) برای ردیابی و رساندن خروجی سیستم به مقدار نهایی نقطه کار که توسط مرجع مشخص شده است، یعنی برای t → ∞ داشته باشیم :

c(t) = r – y(t) →0

 در زیر نحوه دستیابی به این طراحی به صورت عمومی آمده است .

 

ماژول فازی ساز :

  این ماژول همانطور که ذکر شد عمل تبدیل متغیرهای فیزیکی را به عبارت فازی نرمالایز شده روی رنج تغییرات ورودی و یکسری توابع عضویت نرمال شده که درجه عضویت عناصر رنج ورودی را به مجموعه مقادیر ورودی نشان می دهد.

 

توابع عضویت:

 فرض کنید که سیگنال خطایی از نوع دما با رنج تغییرات [- 25 , 45 ] در یک سیستم که بصورت فازی کنترل می شود داریم و هدف کنترلر رساندن خطای حالت ماندگار به تلرانس  است . در این حالت مقیاس  برای اندازه گیری خطای در حد  خیلی بزرگ است . به همین دلیل می توان ابتدا رنج سیگنال خطا را به [- 2500 , 4500] تغییر داد که هر واحد آن  است . که این انتخاب محاسبات توابع عضویت را ساده تر می سازد. اگر مصالحه ای در انتخاب مقیاس انجام دهیم انتخاب بهتر می تواند ترکیبی از 2 مقدار مختلف مقیاس مشابه شکل 3 باشد که در آن :

 

این ماژول منجر به انتخابی خوب، مستدل، ایده آل و بهینه توابع عضویت ، تحت معیارها و ضوابط مناسب که برای به دست گرفتن فرآیند پرمعنا هستند می شود.

همانطور که ذکر شد در مثال کنترل دمای فوق طراح توابع عضویت را با شکل 3 نشان داد که زمانی که سیگنال خطا مقدار مثبت بزرگ دارد را با(Positive  Large) PL  و زمانی که مقدار منفی بزرگ دارد را با NL (Negative Large) نشان داده است و تابع در 2 مقیاس   و  بیان شده است و طراح دیگر ممکن است فرم دیگری را انتخاب کند اما در این مثال هدف رسیدن به یکسری ایده های طراحی به صورت عمومی در تشکیل این توابع است نه نوع خاصی از آن.

 

قوانین پایه ای کنترل کننده فازی (Fuzzy Logic Rule):

 طراحی قوانین فازی کلید رسیدن به کنترلر رضایت بخش برای کاربرد مورد نظر است. آنالیزهای کلاسیک و استراتژی های کنترلی بایستی ترکیب شوند تا این قوانین تهیه شوند. روند عمومی طرح این قوانین به صورت زیر است :

شناسایی متغیرهای پروسه:

در مثال قبل فرض کنید که نقطه کار r ، دمای نهایی مورد نظر برای سیستم است و برابر   می باشد. متغیر تحت کنترل خروجی (y (t است که آن هم از نوع دما است و نهایتاً سیگنال خطا عبارت است از :

c(t) = r – y(t)

 

شناسایی متغیرهای ورودی کنترلر:

 سیگنال ردیاب خطای (c (t متغیر ورودی کنترلر است که البته گاهی ممکن است یک فرد نیاز به یکسری متغیرهای کمکی دیگری داشته باشد تا قوانین کاملتر و کاراتری را تهیه کند.

در این مثال به راحتی دیده می شود که تنها سیگنال خطا به عنوان ورودی نمی تواند برای نوشتن قوانین اگر – آنگاه  کافی باشد. حال فرض کنید برای لحظه ای داشته باشیم c > 0 ، پس :

e = r – y > 0 → r > y

 یعنی خروجی در این لحظه از نقطه کار مطلوب کمتر است که شکل 4 نشان می دهد خروجی در موقعیتهای a یا d قرار دارد. اما این اطلاعات نیز منجر به رسیدن y  به مقدار r  نمی شود. اگر y  در ناحیه a باشد کنترلر بایستی مسیر افزاینده خود را ادامه دهد ؛ اگر y  در وقعیت d باشد کنترلر بایستی مسیر خود را به جهت مثبت تغییر دهد ( از حرکت نزولی به صعودی تغییر کند.) بنابراین بیش از یک ورودی برای متمایز ساختن این دو حالت لازم است .

متغیرهای بیشتر می توانند مشتق دوم (ё ) یا مجموع (انتگرال)  e ∑ سیگنال خطا باشد تا کنترلر کاراتر و بهتر عمل کند که البته این طراحی را پیچیده می کند و طراح بایستی مصالحه ای بین آنها برقرار کند.

 

 

نوشتن قوانین اگر – آنگاه:

 در شکل 4 واضح است که یک فرد اساساً 4 حالت را می تواند متصور باشد : زمانی که دمای خروجی y(t) در موقعیتهای a ،b ،c وd باشند. بنابراین حداقل 4 قانون برای این سیستم کنترلی لازم است که یک انتخاب به صورت زیر است :

 

در اینجا البته ساده ترین انتخاب ∆U = C که به عنوان ورودی ثابت است می باشد ، اگر سیستم کار کند! در ادامه خواهیم دید که این انتخاب عمل خواهد کرد هرچند که خیلی بهینه نیست . در شکل 4 خیلی مهم است که بفهمیم :

 

قوانین R1  تا R4  متناسب با موقعیتهای a تا d بوده و در این قواعد عبارت :

u(t+) = u(t) + ∆u(t)

 به معنای این است که کنترلر عملکرد کنترلی خود را بدون تغییر ادامه دهد در حالیکه :

u(t+) = u(t) - ∆u(t)

 به معنای آن است که کنترلر در عمل کنترلی خود تغییر جهت دهد ( از مثبت به منفی ). در مورد مقدار این تغییرات در ادامه صحبت خواهیم کرد .

پس حداقل بطور اصولی در این مرحله متوجه می شویم که با قوانین چهارگانه ذکر شده این کنترلر می تواند دمای خروجی را به نقطه کار مطلوب برساند.

برای مثال اگر> 0  e  باشد و ė < 0 آنگاه r > y  و > 0   که به معنای قرار داشتن منحنی y در موقعیت a شکل4 است و در این حالت قانون اول R1  بیان می کند که کنترلر بایستی فعالیت فعلی خود را حفظ کند، 3 قانون دیگر هم مشابهاً قابل آنالیز هستند.

 

اما برخی مشکلات تکنیکی باقی ماند مثلاً اگر y در موقعیت a باشد و ورودی کنترلر مقدار کوچک u باشد و آن را حفظ کند زمان زیادی طول می کشد تا به ناحیه b برسد و اگر هم u بزرگ باشد منجر به بوجود آمدن Overshoot می شود. کلاً نتیجه می گیریم خروجی حالت نوسانی خالص پیدا خواهد کرد و هیچگاه به نقطه نشست در مقدار ورودی نخواهد رسید و یا خیلی طول خواهد کشید. پس بایستی این 4 قانون را بهبود بخشید.

 اولین ایده ای که به نظر می رسد استفاده از توابع عضویتی است که به عملیات کنترلی وزن ببخشد. در یک توضیح ساده تنها تابع عضویت ساده ای نسبت به آنچه در شکل 3 برای e و ė آمده بود استفاده شده است که در شکل 5 آمده است.

 در یک کاربرد واقعی طراح می تواند (تقریباً بایستی) توابع عضویت بیشتری را به کار بگیرد.

با استفاده از این توابع عضویت اگر y  از مقدار r خیلی فاصله داشته باشد آنگاه عمل کنترلی بزرگ خواهد بود اما اگر نزدیک r  باشد عمل کنترل آرام و کوچکتر خواهد بود . با این توضیحات قوانین بهبود یافته به صورت زیر خواهند بود:

 

که در آن عبارت “ = PL “  به معنای " اگر برابر PL باشد " می باشد.

برای بیان این قوانین به یک کامپیوتر دیجیتال بایستی شکل گسسته این قوانین را بکار بریم :

 u( (k+1)T ) = u( kT ) + ∆u( kT )

 

with

 

∆u(t) = ∆u(kT)  and  ∆u(t+) = ∆u((k+1)T)

 

که T  فاصله نمونه برداری است و u(kT) مقدار با تغییر جدید کنترلر است . بنابراین قوانین اجرایی که برای کامپیوتر بیان می شوند به شکل زیر هستند :

 در اینجا فرمان سادة آخر که مقدار u((k+1)T)  را به ازای کلیه مقادیر k  زمانیکه هیچکدام از شرایط R1   تا R8   برقرار نباشد صفر می کند، برای این اضافه شده است تا قوانین پایه مؤثرتر واقع شود. که در مثالهای شبیه سازی شده زیر نشان داده شده است.

اینک  با شبیه سازی ساده ، صحت قوانین بالا و کارایی آنها را نشان می دهیم. در این مثال توابع عضویت شکل 5 به همراه ورودی ثابت کنترل  بکار گرفته شده است . ابتدا پارامتر های زیر را معرفی می کنیم:

C1 : مقدار ورودی ثابت برای قوانین 1، 3، 5 و 7 زمانیکه خطا خارج از محدودة H  و –H در شکل 5 باشد .

C2 : مقدار ورودی ثابت برای قوانین 2، 4، 6 و 8 زمانیکه خطا درون  محدودة H  و –H در شکل 5 باشد .

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

 در اینجا همواره C1 و C2 را طوری انتخاب می کنیم که C1 > C2 > 0 .

یک نمونه از پاسخ زمانی ردیابی خطا در این سیستم کنترل دما در شکل6  نشان داده شده است که در آن دمای مرجع   و T = 1 ، H = 5 ، C1 = 2 و C2 = 2 .

 

* -  تشکیل Look-up Table  :

 در اینجا لازم به توجه است که جهت شناسایی مقادیر u(t) ارزشهای PL ، PS ، NLیا NS  را برای حالتهای Positive Large ، Positive Small، Negative Large و Negative Small در نظر می گیریم . همچنین می توان قوانین فوق را در جدولی مثل جدول نشان داده شده در زیر نشان داد.

 

جدول 1  که Look-up Table نامیده می شود و توسط آن می توان حالات مختلف e و ė را نشان داد.در دو جدول زیر داریم :

 

∆u((k+1)T) = k . ∆u(kT)

 

که در آن ن مقادیر علامت دار اولیه را اختیار می کند (PL, PS, NL, NS) که در آن عبارتهای NM و ZO  به ترتیب به معنای “Negative Medium “ و “Zero” می باشد و عبارتهای دیگر نیز مشاباً قابل فهم هستند.

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

 در این قانون e(kT) = PL یک تابع عضویت μPL(e(kT)) دارد که در شکل 5 نشان داده شده است.(kT)N(ė (kT)) است و ∆u((k+1)T) ، 3 تابع عضویت دارد که در شکل 2  نشان داده شده است . برای بدست آوردن خروجی نهایی معمول آن است که یک تابع عضویت مشابه شکل 7  اختیار می شود که توسط فرمول میانگین وزنی با جمله عمومی رابطه زیر  بیان شده است :

 

 

ماژول غیر فازی کننده :

 ماژول غیر فازی کننده (defuzzification) در واقع عکس عمل ماژول فازی کننده را انجام می دهد و تمام روابط فازی ایجاد شده توسط قواعد پایه را به روابطی با مقادیر عددی تبدیل می کند و سپس آنها را به منظور پیاده کردن عمل کنترل به پروسه می فرستند.

 

ماژول غیر فازی کننده عملیات زیر را انجام می دهد :

 این ماژول با ترکیب تمام خروجیهای کنترلی ممکن که از قواعد پایه حاصل می شوند حلقه ای ایجاد توسط یک عمل کنترلی بازگشتی با فرمول میانگین وزنی زیر  ایجاد می کند :

u((k+1)T) = u(kT) + ∆u(kT)

 که در آن :

 

و در این رابطه μi  ، بیانگر مقدار خروجی توابع عضویت که از توابع μp و μZOوN  μ    که در شکل 6  نشان داده شده است بدست می آیند می باشد که بطور ساده بیان شده اند و در آن H یک عدد حقیقی است.

در فرمول میانگین وزنی اگر برای یک لحظه داشته باشیم : u1(kT) = .5H در قاعده R1 سپس 3 تابع عضویت خروجی خواهیم داشت با مقادیر زیر :

 

بنابراین :

 درست مانند ماژول فازی سازی در این مرحله از غیر فازی کردن، تبدیلی بر روی تمام خروجی های کنترلی u که  در مرحله قبل بدست آمد صورت گرفته و منجر به حاصل شدن مقادیر فیزیکی (موقعیت، سرعت، ولتاژ و ... ) می شود که سیستم اصلی می تواند آنها را بپذیرد و قبول کند. شمای کلی یک کنترل کننده فازی که ترکیب آن به فرم " فازی سازی، قواعد پایه، غیر فازی سازی" بود در شکل 2  نشان داده شد که یک بلوک کنترل کننده در حلقه بسته سیستم کنترلی شکل 1  بود.

 

به عنوان مثال سادة دیگر، یک شکل کنترل دمای دیگری را در نظر بگیرید که در شکل 4  نشان داده شده است و در نظر بگیرید که سیستم کنترل دمای پروسه که در شکل 1 نشان داده شده است توسط رابطه زیر داده شده است :

 

y((k+1)T) = y(kT) + a . u(kT)

 

که در آن a یک مقدار ثابت و شرط اولیه نیز y(0) = 0 می باشد . این مثال خطی ساده برای بدست آوردن اطلاعات لازم در شبیه سازی استفاده می شود. قواعد اجرایی نوشته شده در بالا را با تغییری در عمل کنترل به فرم زیر بکار می بریم:

∆u(kT) = sign(∆ukT)) . C

 که در آن C > 0 و یک ورودی کنترلی ثابت است. نتایج شبیه سازی در شکل 8  (a) آمده است که در آن برای سادگی کار T = 1 در نظر گرفته شده است. به روشنی از این نتایج مشخص است که عمل کنترل دما به خوبی کار می کند. و این بدون دانستن مدل ریاضی پروسه صورت گرفته است.

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

 

http://www.elmicro.ir


مطالب مشابه :


جزوه کنترل فازی

گروه کنترل دانشگاه تهران - جزوه کنترل فازی - جزوات،کتاب،مراجع و مقالات کنترلی،پایان نامه




سیستم های فازی

سیستم‌های فازی که شامل کنترل فازی و راه‌حل‌هایی در زمینة پردازش سیگنال و مخابرات می‌باشد.




آشنایی با سیستم های کنترل فازی:

Electrical Power - آشنایی با سیستم های کنترل فازی: - وبسایت و وبلاگ تخصصی برق قدرت




جزوه کنترل فازی

وبلاگ تخصصی برق كنترل - جزوه کنترل فازی - مشاوره كاملاً رايگان براي پروژه های دانشجویی مقالات




کنترل فازی

مهندس قدرت - کنترل فازی - در میان گذاشتن نظرات با دیگران در زمینه برق-قدرت و ارائه مراجع مناسب




کنترل فازی چیست؟

منطق فازی و تئوری Fuzzy set: منطق فازی و تئوری Fuzzy set نقش محوری در رسیدگی و کنترل چنین سیستمهایی




کتاب کنترل فازی

Description: An introduction to the field of fuzzy control with a broad treatment of topics including direct fuzzy control, nonlinear analysis, identification




Fuzzy Control and Fuzzy Logic(منطق فازی&کنترل فازی)

مهندسی مکانیک بیوسیستم - Fuzzy Control and Fuzzy Logic(منطق فازی&کنترل فازی) - نگرشی جدید در عرصه مهندسی




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

اسلاید فصل ۱تا ۱۳ سیستم فازی و کنترل فازی نوشته : لی وانگ با ترجمه:محمد تشنه لب و




برچسب :