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

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

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

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

34

قبل از اینکه وارد طراحی کنترل کننده فازی شویم ابتدا باید نحوه ایجاد کنترل کننده فازی در متلب را آموزش بدهیم. برای این کار هم می توان از دستورات متلب استفاده کرد و هم می توان از تولباکسی که در متلب قرار دارد استفاده کرد که ما کار با تولباکس Fuzzy Logic Design را آموزش می دهیم.برای وارد شدن به این تولباکس ابتدا دستور fuzzy را در command window بنویسید تا صفحه زیر آشکار شود:

Fis Editor 1

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

1) input: در این قسمت ورودی های سیستم مشخص می شود که برای کار ما دو ورودی خطای سرعت و تغییرات خطای سرعت می باشد.

2) Untitled: در این قسمت قوانین نوشته می شود.

3) output: در این قسمت خروجی های سیستم تعیین می شود که برای کار ما ولتاژ موتور می باشد.

4) Current Variable: در این قسمت اطلاعات مربوط به متغیری که انتخاب شده نشان داده می شود.سعی کنید برای هر متغیر نام مناسبی انتخاب کنید تا زمانی که قوانین را طراحی می کنیم دچار مشکل نشویم.

5) قسمت پایین سمت چپ که در این قسمت نحوه استدلال و استنتاج کردن قوانین و روابط فازی مشخص می شود.بهتر است این قسمت ها را تغییر ندهید.

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

Fis Editor 2

ابتدا ما دو ورودی با نام های e و deltae و یک خروجی با نام V می سازیم.حال روی ورودی e دو بار کلیک کرده تا وارد صفحه زیر شویم:

Fis Editor 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)

Fis Editor 4

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

Fis Editor 5

برای ذخیره فایل طراحی از سربرگ File گزینه Export To File را انتخاب کرده و فایل را با پسوند fis ذخیره کنید. برای استفاده از این فایل در سیمولینک متلب باید بلوک Fuzzy Logic Controller را انتخاب کنید.

Block Fuzzy logic controller

توجه کنید که چون فایل fis ما یک استراکچر می باشد باید نام فایل را داخل ‘ ‘ قرار دهیم.

شکل زیر نحوه کنترل را نشان می دهد:

control of servo

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

compare FLC & PID

همان طور که مشخص است پاسخ کنترل کننده فازی سریع تر بوده است.

شکل زیر یک تفاوت دیگر این دو کنترل کننده را نشان می دهد:

compare FLC & PID

همان طور که می دانید خروجی کنترل کننده ها نباید به اشباع برود ولی کنترل کننده PID به اشباع رفته است.

برای دانلود این پروژه بر روی عکس زیر کلیک کنید.

Download

یک امتیازدو امتیازسه امتیازعالی بودخیلی عالی بود (7 votes, average: 3٫14 out of 5)
Add Custom MFAdd ruleCurrent VariableDelete rulefisfis editorfuzzyfuzzy logicFuzzy Logic ControllerFuzzy Logic designinputMatlaboutputRuletrapmfبلوک Fuzzy Logic Controllerپخش بار با متلبتوابع عضویتتوابع عضویت ذوزنقه ایتوابع عضویت زنگوله ایتوابع عضویت مثلثیتولباکستولباکس Fuzzy Logic Designسروموتورسروموتور DCطراحی کنترل کننده فازی
رائه یک سیستم کنترل فازی برای تخمین زمان ختم پروژه در شبکه‌های گرت
چکیده:   (۹۴۱۶ مشاهده)

زمانبندی پروژه از اصلی­ترین پایه­های مدیریت پروژه است و به همین دلیل روش­هایی که بتواند محدودیت­های حاکم بر پروژه را بیشتر پوشش دهد، بسیار با ارزش می­باشند. فن ارزیابی و بازنگری پروژه، روش آنالیز شبکه­ای است که از قابلیت­های بالایی در مقایسه با دیگر روش­های برنامه ریزی و کنترل پروژه برخوردار می­باشد. از سوی دیگر در دنیای واقعی، در اکثر موارد، تطابق کامل میان برنامه­ریزی و اجرا مشاهده نمی­شود. بنابراین محیط اجرای پروژه همواره با عدم قطعیت همراه است. در این تحقیق به منظور کاهش ­محدودیت­های مربوط به عدم قطعیت در برنامه­ریزی و اجرای پروژه، منطق و سیستم کنترل فازی پیشنهاد و در آن میانگین، واریانس، ارزش و تعداد حلقه­های شبکه گرت و همچنین عوامل تأثیرگذارِ محیطی بر اجرای پروژه به صورت فازی در نظر گرفته شده اند. بدین ترتیب برای اولین بار، با استفاده از قابلیت­های موجود در ­شبکه­های گرت و همچنین منطق­ و سیستم فازی، سیستم کنترل فازی طراحی شده و در آن سعی گردیده تا تمامی حالت­های موجود در اجرای یک پروژه تحلیل شود. مطابق با نتایج بدست آمده از 15 آزمایش مختلف بر روی پروژه های با ابعاد متوسط که عمدتاً در حوزه احداث واحدهای صنعتی بوده اند، می توان گفت که با استفاده از روش پیشنهادی، زمانبندی فعالیت­ها منطقی­تر و دقیق­تر بدست خواهد آمد.

واژه‌های کلیدی: زمانبندی پروژه، فن ارزیابی و بازنگری پروژه، سیستم کنترل فازی، منطق فازی
متن کامل [PDF 3586 kb]   (۴۶۸۰ دریافت) 
نوع مطالعه: پژوهشي | موضوع مقاله: سایر موضوعاتی که به مرزهای دانش در مهندسی صنایع و تولید کمک می کند
دریافت: ۱۳۹۱/۵/۱