Notice: Trying to access array offset on value of type bool in /home/rksana/domains/abuzargurakani.com/public_html/wp-content/plugins/best-editor/best-editor.php on line 202

Notice: Trying to access array offset on value of type bool in /home/rksana/domains/abuzargurakani.com/public_html/wp-content/plugins/best-editor/best-editor.php on line 207
کنترل کننده های صنعتی - FUZZY CONTROL - وب سایت شخصی مهندس ابوذر گورکانی -
مهندس ابوذر گورکانی

پژوهشگر

محقق

مخترع

عضو نخبگان علمی کشور

مشاور علمی و کسب و کار

مهندس ابوذر گورکانی

پژوهشگر

محقق

مخترع

عضو نخبگان علمی کشور

مشاور علمی و کسب و کار

نوشته های بلاگ

کنترل کننده های صنعتی – FUZZY CONTROL

۴ اردیبهشت ۱۴۰۰ مقالات
کنترل کننده های صنعتی – FUZZY CONTROL

پروژه درس کنترل کننده های صنعتی

استاد : آقای مهندس روشن شاه

موضوع:

FUZZY CONTROL

تهیه کننده:  ابوذر گورکانی  

 

مقدمه

 

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

تئوري فازي بوسيله پروفسور لطفي‌ زاده در سال ۱۹۶۵ در مقاله‌ اي به نام “مجموعه‌هاي فازي” معرفي گرديد. قبل از كار بر روي تئوري فازي لطفي ‌زاده يك شخص برجسته در تئوري كنترل بود. او مفهوم “حالت” كه اساس تئوري كنترل كلاسيك بيش از حد بر روي دقت تأكيد داشته و از اين رو با سيستم‌هاي پيچيده نمي ‌تواند كار كند. در سال ۱۹۶۲ چيزي را بدين مضمون براي سيستم‌هاي بيولوژيك نوشت: “ما اساساً به نوع جديدي رياضيات نيازمنديم، رياضيات مقادير مبهم يا فازي كه توسط توزيع‌هاي احتمالات قابل توصيف نيستند”. پس از آن وي ايده‌اش را در مقاله “مجموعه‌هاي فازي” تجسم بخشيد. اگر بگوييم پذيرفته شدن تئوري فازي بعنوان يك زمينه مستقل بواسطة كارهاي برجستة پروفسور لطفي‌زاده بوده، سخن به گزاف نگفته‌ ايم. بسياري از مفاهيم بنيادي تئوري فازي بوسيله وی در اواخر دهه ۶۰ و اوائل دهه ۷۰ مطرح گرديد. پس از معرفي مجموعه‌هاي فازي در سال ۱۹۶۵ ، او مفاهيم الگوريتم‌هاي فازي در سال ۱۹۶۸ ، تصميم‌گيري فازي در سال ۱۹۷۰ و ترتيب فازي را در سال ۱۹۷۱ مطرح نمود. در سال ۱۹۷۳ او مقاله ديگري را منتشر كرد به نام : “طرح يك راه حل جديد براي تجزيه و تحليل سيستم‌هاي پيچيده و فرايندهاي تصميم‌گيري”. اين مقاله اساس كنترل فازي را بنا كرد. او در اين مقاله مفهوم متغيرهاي زباني و استفاده از قواعد اگر ـ آنگاه را براي فرموله كردن دانش بشري معرفي نمود.

رخداد بزرگ در دهه ۱۹۷۰ ، تولد كنترل‌ كننده‌هاي فازي براي سيستم‌هاي واقعي بود. در سال ۱۹۷۵ ، ممداني و آسيليان چهارچوب اوليه‌اي را براي كنترل كننده فازي مشخص كردند و كنترل كننده فازي را به يك موتور بخار اعمال نمودند. نتايج در مقاله‌اي تحت عنوان “آزمايشي در سنتز زباني با استفاده از يك كنترل كننده فازي” منتشر گرديد. آنها دريافتند كه ساخت كنترل ‌كننده فازي بسيار ساده بوده و بخوبي نيز كار مي‌كند. در سال ۱۹۷۸ ، هولمبلاد و اوسترگارد اولين كنترل كننده فازي را براي كنترل يك فرآيند صنعتي كامل بكار بردند، كنترل فازي كوره سيمان .

مهندسان ژاپني (با حساسيتي كه نسبت به فن آوري‌هاي جديد دارند) به سرعت دريافتند كه كنترل ‌كننده‌هاي فازي بسهولت قابل طراحي بوده و در مورد بسياري مسائل مي‌توان از آنها استفاده كرد. به دليل اينكه كنترل فازي به يك مدل رياضي نياز ندارد، آنرا مي‌توان در مورد خيلي از سيستم‌ هايي كه بوسيله تئوري كنترل متعارف قابل پياده سازي نيستند، بكار برد. در سال ۱۹۸۰ سوگنو شروع به ساخت اولين كاربرد ژاپني فازي نمود، كنترل سيستم تصفيه آب فوجي، در سال ۱۹۸۳ او مشغول كار بر روي يك ربات فازي شد. ماشيني كه از راه دور كنترل شده و خودش به تنهايي عمل پارك را انجام مي‌داد. در اين سالها ياشونوبو و مياموتو از شركت هيتاچي كار روي سيستم كنترل قطار زيرزميني سندايي را آغاز كردند. بالاخره در سال ۱۹۸۷ پروژه به ثمر نشست و يكي از پيشرفته‌ترين سيستم‌هاي قطار زيرزميني را در جهان بوجود آورد. در جولاي ۱۹۸۷ ، دومين كنفرانس سيستم‌هاي فازي در توكيو برگزار گرديد. اين كنفرانس درست سه روز پس از افتتاح قطار زيرزميني سندايي آغاز به كار كرد. در اين كنفرانس هيروتا يك روبات فازي را به نمايش گذارد كه پينگ‌پنگ بازي مي‌كرد. ياماكاوا نيز سيستم فازی را نشان داد كه يك پاندول معكوس را در حالت تعادل قرار مي‌داد.

سيستم‌هاي فازي چگونه سيستم‌هايي هستند؟

سيستم‌هاي فازي ،  سيستم ‌هاي مبتني بر دانش يا قواعد مي‌ باشند. قلب يك سيستم فازي يك پايگاه دانش بوده كه از قواعد  (اگر ـ آنگاه) فازي تشكيل شده است. يك قاعده (اگر ـ آنگاه) فازي يك عبارت (اگر ـ آنگاه) بوده كه بعضي كلمات آن بوسيله توابع تعلق پيوسته مشخص شده‌اند.

به یک مثال در این باره توجه کنید

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

در صحبت‌هاي عاميانه راننده‌ها در شراط طبيعي از سه قاعده زير در حين رانندگي استفاده مي‌كنند:

_اگر سرعت پايين است، آنگاه نيروي بيشتري به پدال گاز وارد كنيد.

_ اگر سرعت متوسط است، آنگاه نيروي متعادلي به پدال گاز وارد كنيد.

_ اگر سرعت بالا است، آنگاه نيروي كمتري به پدال گاز وارد كنيد.

كه كلمات “كم”، “اندكي”، “زياد” و .. بوسيله توابع تعلقي مشابه شكل زیر مشخص مي‌شوند.

بطور خلاصه، نقطه شروع ساخت يك سيستم فازي بدست آوردن مجموعه ‌اي از قواعد (اگر ـ آنگاه) فازي از دانش افراد خبره يا دانش حوزه مورد بررسي مي ‌باشد. مرحله بعدي تركيب اين قواعد در يك سيستم واحد است. سيستم ‌هاي فازي مختلف از اصول و روشهاي متفاوتي براي تركيب اين قواعد استفاده مي ‌كنند.

انواع سیستم های فازی

۱_سیستم های فازی خالص:

پايگاه قواعد فازي مجموعه‌اي از قواعد (اگر ـ آنگاه) فازي را نشان مي‌دهد.

 

موتور استنتاج فازي اين قواعد را به يك نگاشت از مجموعه‌ هاي فازي در فضاي ورودي به مجموعه‌ هاي فازي در فضاي خروجي بر اساس اصول منطق فازي تركيب مي‌كند.

مشكل اصلي سيستم هاي فازي خالص اين است كه ورودي‌ ها و خروجي ‌هاي آن مجموعه ‌هاي فازي مي ‌باشند. در حالي كه در سيستم هاي مهندسي، ورودي‌ها و خروجي‌ها متغيرهايي با مقادير حقيقي مي‌باشند. براي حل اين مشكل نوع ديگري از سيستم‌ هاي فازي را معرفي كرده ‌اند كه ورودي‌ ها و خروجي‌ هاي آن متغيرهايي با مقادير واقعي هستند.

۲_سیستم های فازی TSK:

سيستم TSK بجاي استفاده از قواعدي به شكل ۱.۱ از قواعدي بدين صورت استفاده مي‌كند:

اگر سرعت اتومبيل (x) بالا است، آنگاه نيروي وارد بر پدال گاز برابر است با  كه  يك عدد ثابت مي‌باشد. بخش آنگاه قاعده فازي از يك عبارت توصيفي با مقادير زباني به يك رابطه رياضي ساده تبديل شده است. اين تغيير، تركيب قواعد فازي را ساده‌تر مي‌سازد.

مشكلات عمده سيستم فازي TSK عبارتند از:

۱)بخش آنگاه قاعده يك فرمول رياضي بوده و بنابراين چهارچوبي را براي نمايش دانش بشري فراهم نمي‌كند.

۲)اين سيستم دست ما را براي اعمال اصول مختلف منطق فازي باز نمي‌گذارد و در نتيجه انعطاف‌پذيري سيستم‌هاي فازي در اين ساختار وجود ندارد.

 

۳_ سيستم‌هاي با فازي ساز و غيرفازي ساز:

 

به منظور استفاده از سيستم‌هاي فازي خالص در سيستم‌هاي مهندسي، يك روش ساده، اضافه كردن يك فازي ساز در ورودي كه متغيرهاي با مقادير حقيقي را به يك مجموعه فازي تبديل كرده و يك غيرفازي ساز كه يك مجموعه فازي را به يك متغير با مقدار حقيقي در خروجي تبديل مي‌كند، مي‌باشد.

اين سيستم فازي معايب سيستم فازي خالص و سيستم فازي TSK را مي‌پوشاند.

 

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

خروجی سیستم توسط (y (t و ورودی آن توسط (u (t و ورودی مرجع فازی کنترل توسط (r (t نشان داده شده است.

کنترل فازی دارای چهار قسمت اصلی است:

۱_ rule-base”قانون پایه” (مجموعه ای قوانین  IF-THEN) که حاوی کمیتی منطق فازی که برای توضیحات زبانی چگونه رسیدن به کنترل خوب است.

۲_ inference mechanism”موتور استنتاج” یا “استنتاج فازی” که تقلید تصمیم متخصص در تفسیر و استفاده از دانش در مورد چگونه به بهترین وجه کنترل سیستم است.

۳_ fuzzification ” فازی ساز” که ورودی کنترل تبدیل به اطلاعات می شود که موتور استنتاج به راحتی می تواند برای فعال کردن و استفاده از قوانین از ان استفاده کنید.

۴_ defuzzification “غیر فازی ساز” که نتیجه گیری از مکانیسم استنتاج تبدیل به ورودی واقعی برای فرایند می شود.

در واقع، شما باید کنترل کننده فازی را به عنوان یک تصمیم ساز مصنوعی ببینید که در عمل در یک سیستم حلقه بسته کار میکند. این سیستم جمع آوری می کند خروجی فرایندy(t)  را و مقایسه می کند آن را با مرجع ورودی r(t) و سپس تصمیم میگیرد که چه ورودی u(t) به فرایند برسد.

برای طراحی کنترل فازی، مهندس کنترل باید اطلاعاتی درباره چگونه تصمیم ساز مصنوعی در سیستم حلقه بسته جمع آوری کند. این اطلاعات می تواند از یک تصمیم گیرنده انسان کنترل شود در حالی که در زمان های دیگر مهندس کنترل می توانند با درک سیستم و نوشتن مجموعه ای از قوانین در مورد چگونگی کنترل سیستم باشد. این “قوانین” اساسا می گویند، “(اگر) خروجی سیستم و ورودی مرجع به شیوه ای خاص رفتار کنند (انگاه) ورودی سیستم باید مقداری خاص باشد. ” مجموعه ای کامل از قوانین “IF-THEN” به قانون پایه اعمال می شود و موتور استنتاج انها را با شیوه خاصی انتخاب میکند.

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

(۱) انتخاب مقدار ورودی و خروجی های کنترل فازی

(۲) انتخاب پردازش که برای کنترل ورودی و احتمالا بعد از فرآیندی برای خروجی مورد نیاز است.

(۳) طراحی هر یک از چهار جزء از کنترلر فازی

در اینجا یک مشکل ساده توازن پاندول معکوس را در یک سبد (همانطور که در شکل ۲.۲ نشان داده شده است) را مثال می زنیم:

 

در اینجا y بیانگر زاویه ای است که آونگ با محور عمودی (بر حسب رادیان) می سازد، L طول نیمه آونگ است (به متر) ، و u نیروی ورودی است که سبد خرید حرکت می کند (در نیوتن). ما از r به معنی زاویه ای و موقعیت مورد نظر آونگ استفاده می کنیم. هدف این است که به تعادل آونگ در وضعیت عمودی (یعنی ۰ = r) برسیم زمانی که در ابتدا با مقداری زاویه غیر صفر عمودی (y ≠ ۰) شروع می شود.

فرض کنید که در آونگ معکوس  کارشناس از موارد زیر برای کنترل استفاده خواهد کرد:

 

هنگامی که ورودی و خروجی های کنترل فازی انتخاب شد، شما باید تعیین کنید کدام ورودی مرجع است. برای پاندول معکوس، انتخاب ورودی مرجع r = 0 است.

قرار دادن دانش کنترل به قانون پایه(Rule-Bases)

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

 

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

 

فرض کنید که” error” ، ” change-in-error” و ” force” را در مقادیر زیر هستند:
“neglarge”
“negsmall”
“zero”
“possmall”
“poslarge”
توجه داشته باشید که ما در حال استفاده از “negsmall” به عنوان مخفف ” اندازه کوچک منفی” در و به همین ترتیب برای متغیرهای دیگر. برای توصیف کوتاه تر ما می توانیم از اعداد صحیح استفاده کنیم:
“-۲” به نمایندگی “neglarge”
“-۱” به نمایندگی “negsmall”
“۰” به نمایندگی از “zero”
“۱” به نمایندگی “possmall”
“۲” به نمایندگی “poslarge”

برای مثال، “-۱” میتواند یک مقدار خاصی از خطا در رادیان باشد.

  • “error is poslarge” می تواند نشان دهنده وضعیتی باشد که در آن آونگ در یک زاویه قابل توجهی به سمت چپ محور عمودی است.
  • “error is negsmall” می تواند نشان دهنده وضعیتی باشد که در آن آونگ فقط کمی به سمت راست محور عمودی است، اما نه در حد نزدیک به محورعمودی “zero” و نه چندان دور که “neglarge” باشد.
  • “error is zero” می تواند موقعیتی که در آن آونگ بسیار نزدیک به موقعیت عمودی (یک کمیتی زبانی در حدود e(t) = ۰. مقدار زبانی “صفر” را می توان به عنوان کمیتی بهتر از “possmall” یا “negsmall” در نظر گرفت.
  • “error is poslarge and change-in-error is possmall” می تواند نشان دهنده موقعیتی که در آن آونگ به سمت چپ محور عمودی و dy/dt < 0 است و آونگ در حال دور شدن از موقعیت عمودی (توجه داشته باشید که در این مورد آونگ در حال حرکت عقربه های ساعت).
  • “error is negsmall and change-in-error is possmall” می تواند نشان دهنده موقعیتی که در آن آونگ کمی به سمت راست محور عمودی و dy/dt < 0 است و آونگ در حال حرکت به سمت موقعیت عمودی (توجه داشته باشید که در این مورد آونگ نیز در حال حرکت عقربه های ساعت).

قوانین:

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

۱- If error is neglarge and change-in-error is neglarge Then force is poslarge
این قانون برای وضعیت در شکل ۲.۵ (a) است که در آن آونگ زاویه مثبت و بزرگ در حال حرکت عقربه های ساعت دارد و از این رو روشن است که ما باید یک نیروی مثبت قوی (به سمت راست) اعمال کنیم به طوری که سعی شود برای به حرکت درآوردن آونگ در جهت مناسب.

۲- If error is zero and change-in-error is possmall Then force is negsmall
این قانون  برای وضعیت در شکل ۲.۵ (b) است که در آن آونگ نزدیک به یک زاویه نزدیک به صفر با محور عمودی و در حال حرکت پادساعتگرد است، از این رو ما باید یک نیروی منفی کوچک (به سمت چپ) برای مقابله با جنبش اعمال کنیم به طوری که آن را به سمت صفر حرکت دهد (یک نیروی مثبت می تواند باعث فراجهش آونگ در موقعیت مورد نظر شود).

۳-  If error is poslarge and change-in-error is negsmall Then force is negsmall
این قانون  برای وضعیت در شکل ۲.۵ (c)است که در آن آونگ دور از سمت چپ محور عمودی و در جهت عقربه های ساعت در حال حرکت است، از این رو ما باید نیروی منفی کوچک (به سمت چپ) برای کمک به حرکت اعمال کنیم، اما نه بزرگ زیرا آونگ در حال حاضر در مسیر مناسب در حال حرکت است.

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

یک راه مناسب لیست کردن تمام قوانین ممکن برای موردی که در آن بیش از حد ورودی برای کنترل فازی وجود ندارد (کمتر یا مساوی به دو یا سه) استفاده از نمایش جدولی است. نمایش جدولی از یک مجموعه ای از قوانین برای پاندول معکوس در جدول ۲.۱ نشان داده شده است.

 

 

تابع تعلق:

میتوان ارزش های زبانی را به صورت تابع تعلق نشان داد و سپس اعمال ریاضی را بر روی انها انجام داد.

  • If e(t) = π/۲ then μ(π/۲) = ۰، نشان می دهد که مسلما e(t) = π/۲ “possmall.” نمی باشد.
  • If e(t) = π/۸ then μ(π/۸) = ۰.۵، نشان می دهد که به طور نیمه معین e(t) = π/۸ “possmall” است.
  • If e(t) = π/۴ then μ(π/۴) = ۱.۰، نشان می دهد که ما کاملا در مقداری هستیم که e(t) = π/۴ همان چیزی است که معنی “possmall.” را می دهد.
  • If e(t) = π then μ(π) = ۰، نشان می دهد که e(t) = π “possmall” نیست (در واقع، آن “poslarge” است).

در زیر چند نمونه تابع تعلق را در “error is possmall”  می بینید:

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

 

 

 

 

 

 

 

 

کنترل سطح مخزن:

ابتدا سه قانون زیر را برای ان در نظر می گیریم:

  1. If (level is okay) then (valve is no_change)
  2. If (level is low) then (valve is open_fast)
  3. If (level is high) then (valve is close_fast)

 

 

خروجی به ازای این دستورات بدین صورت است:

دراین حالت به ازای قوانین کم پاسخ خروجی مطلوب نیست. به همین دلیل دو قانون دیگر به ان اضافه می کنیم:

  1. If (level is good) and (rate is negative), then (valve is close_slow)
  2. If (level is good) and (rate is positive), then (valve is open_slow)

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

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

برچسب:
یک دیدگاه بنویسید