آخرین خبر

نرم افزار

استفاده از کنترل کننده فازي براي کنترل يک سروموتور در محيط سيمولينک

نویسنده: مهندس محمد كريمي مريداني دانشجوي دكتري مهندسي پزشكي (بيوالكتريك)، دانشگاه آزاد اسلامي واحد علوم و تحقيقات

 

در اين شماره باچگونگي طراحي يک کنترل کننده فازي با Matlab براي کنترل يک سروموتور DC  آشنا مي شويم.

ﮐﻨﺘﺮل ﻓﺎزي از ﻗﻮاﻧﯿﻦ ﻣﻨﻄﻖ ﻓﺎزي ﺑﺮاي ﺑﻪدﺳﺖآوردن ﮐﺎرﺑﺮدﻫﺎي ﮐﻨﺘﺮﻟﯽ اﺳﺘﻔﺎده ﻣﯽﺷﻮد. ﻗﻮاﻧﯿﻦ ﻓﺎزي ﺑﺮﭘﺎﯾﻪ ﻗﻮاﻧﯿﻦ ﮐﻨﺘﺮﻟﯽ است. ﻃﺮاﺣﯽ ﺳﯿﺴﺘﻢ ﻣﻨﻄﻖ ﻓﺎزي ﺑﺮﭘﺎﯾﻪ ﻣﺪل رﯾﺎﺿﯽ نيست. ﮐﻨﺘﺮلﮐﻨﻨﺪهﻫﺎي ﻓﺎزي ﺑﺎ اﺳﺘﻔﺎده از ﻣﻨﻄﻖﻓﺎزي، ﻣﻨﻄﻖ ﺑﺸﺮي را ﭘﯿﺎده ﮐﺮده اﺳﺖﮐﻪ ﺑﺎ ﺗﻮاﺑﻊ ﻋﻀﻮﯾﺖ، ﻗﻮاﻧﯿﻦ ﻓﺎزي و ﻗﻮاﻧﯿﻦ ﻋﻀﻮﯾﺖ ﺑﺮﻧﺎﻣﻪرﯾﺰي ﺷﺪه اﺳﺖ. ﮐﻨﺘﺮلﮐﻨﻨﺪهﻫﺎي ﻓﺎزي، ﺧﻄﺎ و ﺗﻐﯿﯿﺮات ﺧﻄﺎ را ﺑﻪﻋﻨﻮان ﺗﻐﯿﯿﺮات ورودي درﻧﻈﺮ ﮔﺮﻓﺘﻪ اﺳﺖ. در اﺑﺘﺪا، ﺳﺎﺧﺘﺎر ﮐﻨﺘﺮل ﮐﻨﻨﺪه ﻓﺎزي و اﻧﺘﺨﺎب ﭘﺎراﻣﺘﺮﻫﺎ ﻻزم اﺳﺖ. ﻃﺮاﺣﯽواﺟﺮاي ﮐﻨﺘﺮلﮐﻨﻨﺪه ﻣﻨﻄﻖﻓﺎزي اﻏﻠﺐ ﺑﻪداﻧﺶ وﺗﺠﺮﺑﻪ ﻣﺘﺨﺼﺼﺎن و ﯾﺎ ﺑﯿﻨﺶ و ﺣﺮﻓﻪ ﮐﺎرﺷﻨﺎﺳﺎن ﺑﺴﺘﮕﯽ دارد. اﯾﻦ روﯾﮑﺮد ﻣﯽﺗﻮاﻧﺪ ﺑﻪ ﺳﺎﺧﺖ ﯾﮏ ﻣﺪل ﻓﺎزي ﯾﺎ ﻣﺪلاوﻟﯿﻪ ﯾﮏ ﮐﻨﺘﺮلﮐﻨﻨﺪه ﻓﺎزي ﮐﻤﮏ ﮐﻨﺪ. روﯾﮑﺮد ﺑﻌﺪي ﮐﺎرﺑﺮد ﻣﻬﻨﺪﺳﯽﮐﻨﺘﺮل وﻃﺮاﺣﯽﮐﻨﺘﺮلﮐﻨﻨﺪه ﻓﺎزي درﺑﻌﻀﯽﺟﻨﺒﻪﻫﺎ ﺷﺒﯿﻪ ﻃﺮاﺣﯽﻫﺎي ﻣﻌﻤﻮﻟﯽ ﺑﺎ اﻧﺘﺨﺎب ﭘﺎراﻣﺘﺮﻫﺎ ﺑﺴﺘﮕﯽ ﺑﻪﮐﺎراﯾﯽ ﮐﻨﺘﺮلﮐﻨﻨﺪه دارد.
فرض کنيد تابع تبديل يک سروموتور DC به صورت زيراست:

قبل از اين که وارد طراحي شويم ابتدا بايد نحوه ايجاد کنترل کننده فازي در Matlab آموزش داده شود.براي اين کار هم مي توان از دستورات Matlab استفاده کرد و هم مي توان از جعبه ابزاري که در Matlab قرار دارد استفاده کرد که در اينجا کار جعبه ابزارFuzzy Logic Design را آموزش مي دهيم.براي وارد شدن به اين جعبه ابزارابتدا دستور fuzzy را درمحيط command window بنويسيد تا پنجره اي به صورت شکل (1) ظاهر شود.
همان طور که در شکل (1) مشاهده مي کنيد اين صفحه از قسمت هاي زير تشکيل شده است:
 input: در اين قسمت ورودي هاي سيستم مشخص مي شود که براي کار ما دو ورودي خطاي سرعت و تغييرات خطاي سرعت است.

  Untitled: در اين قسمت قوانين نوشته مي شود.

  output : در اين قسمت خروجي هاي سيستم تعيين مي شود که براي کار ما ولتاژ موتور است.
 Current Variable: در اين قسمت اطلاعات مربوط به متغيري که انتخاب شده نشان داده مي شود.سعي کنيد براي هر متغير نام مناسبي انتخاب کنيد تا زماني که قوانين را طراحي مي کنيم دچار مشکل نشويم.قسمت پايين سمت چپ که در اين قسمت نحوه استدلال و استنتاج کردن قوانين و روابط فازي مشخص مي شود.بهتر است اين قسمت ها را تغيير ندهيم.براي اضافه کردن ورودي و خروجي مي توان مانند شکل (2) عمل كنيم.

 ابتدا دو ورودي با نام هاي e وdeltaeو يک خروجي با نام Vساخته مي شود. سپس روي ورودي e دو بار کليک کرده تا وارد صفحه اي به صورت شکل(3) شويد.
ابتدا با کليک بر روي هر متغير محدوده تغييرات آن (گوشه پايين سمت چپ) را مشخص مي کنيم که براي اين کار محدوده تغييرات هر سه متغير [3,3-] انتخاب شده است. حال بايد توابع عضويت ها طراحي شود.از قسمت Type توابع مختلفي را مي توان انتخاب کرد (مثلثي  ،ذوزنقه اي  ،زنگوله اي و …) ودرقسمت Params مي توان پارامتر هاي يک تابع را مشخص کرد (مثلا در مورد تابع مثلثي پارامترها عبارت اند از: نقطه شروع ،نقطه ارتفاع و نقطه انتهايي). براي طراحي ما روي mf1 کليک کرده و در قسمت Name حرف n را و از قسمت Type گزينهtrapmfرا انتخاب و در قسمتParamsاعداد [-Inf -3 -2 0]  بنويسيد.مي توان توابع عضويت دلخواه نيز ايجاد کرد.براي اين کار از سربرگ Edit گزينه Add Custom MF را انتخاب کنيد.به همين ترتيب توابع عضويت هاي ديگرp,z,any را تشکيل داده و همين کار را براي متغيرهاي ديگر انجام دهيد.حال بايد قوانين طراحي شود ،براي اين کار روي گزينه Untitled کليک کرده و وارد صفحه مورد نظرشويد و سپس قوانين زير را در آن ايجاد مي کنيم:

1-     If (e is n) and (deltae is any) then (output1 is n)
2-    If (e is p) and (deltae is any) then (output1 is p)
3-    If (e is z) and (deltae is any) then (output1 is n)
4-    If (e is z) and (deltae is any) then (output1 is p)
5-    If (e is z) and (deltae is any) then (output1 is z)

توجه کنيد که پس از انتخاب هر کدام از پارامترها گزينه Add rule را زده تا قانون ثبت شود و براي حذف قانوني ،ابتدا روي آن کليک کرده و سپس گزينه Delete rule را بزنيد. براي مشاهده خروجي از سربرگ View گزينه Rule را انتخاب کنيد و با تغيير دادن ورودي ها تغييرات خروجي را مشاهده کنيد (شکل5).

 براي ذخيره فايل طراحي از سربرگ File گزينه Export To File را انتخاب کرده و فايل را با پسوندfisذخيره کنيد. براي استفاده از اين فايل در سيمولينک Matlabبايد بلوک Fuzzy Logic Controller را از کتابخانه Fuzzy Logic Toolboxانتخاب کنيد. شکل (6) بلوک فازي به همراه پنجره تنظيمات آن را که بايد فايل فازي با پسوند fis به آن اعمال شود را نشان مي دهد.

 توجه کنيد که چون فايلfis ما يک ساختار است بايد نام فايل را داخل    قرار داد. شکل (7) نحوه استفاده از بلوک کنترل فازي را نشان مي دهد.
براي اينکه مقايسه اي بين کنترل کننده فازي با کنترل کننده PID انجام شود به شکل موج هاي (8) توجه کنيد. همان طور که مشخص است پاسخ کنترل کننده فازي سريع تر بوده است.

منابع
[1]- www.motodrive.ir
ﻣﻬﺮداد اﺣﻤﺪي ﮐﻤﺮﭘﺸﺘﯽ، ﻫﺪي ﮐﺎﻇﻤﯽ ﻃﺮاﺣﯽ و ﺗﺠﺰﯾﻪ و ﺗﺤﻠﯿﻞ ﮐﻨﺘﺮلﮐﻨﻨﺪه ﻣﻨﻄﻖ ﻓﺎزيﺑﺮايﮐﻨﺘﺮلﻓﺮﮐﺎﻧﺲﺑﺎردرﺳﯿﺴﺘﻢﻫﺎيﻗﺪرت، اولين کنفرانس ملي ايده هاي نو در مهندسي برق

0/5 (0 دیدگاه)

دیدگاه ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

گزارش ویژه‌ی این ماه

wfn_ads

گزارش های کوتاه ماهنامه

wfn_ads
ماهنامه مهندسی پزشکی

خوش آمدید

ورود

ثبت نام

بازیابی رمز عبور