fuzzy systems with matlab

31
Mehrdad Rajabali Fardi Faculty of control engineering Special Thanks to Dr.Pourgholi Fuzzy Systems with Matlab

Upload: mehrdad-fardi

Post on 14-Aug-2015

79 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Fuzzy Systems with Matlab

Mehrdad Rajabali Fardi

Faculty of control engineering

Special Thanks to Dr.Pourgholi

Fuzzy Systems with Matlab

Page 2: Fuzzy Systems with Matlab

سیستم به افزاری نرم نگاهفازی های

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

با فازی کار نحوه صرفا و Matlabبودهاست گرفته قرار بررسی مورد

Page 3: Fuzzy Systems with Matlab

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

: کنیم می استفاده زیر دستور از آن فراخوانی دستور trimfاز :با را حسابی تصاعد نکتهLinspace. کردیم ایجاد

1. عضویت توابع نمایش

Page 4: Fuzzy Systems with Matlab

گوسی عضویت تابع پرکاربرد عضویت توابع از دیگر یکیاست

: است زیر صورت به آن فراخوانی نحوه

گوسی عضویت تابع

Page 5: Fuzzy Systems with Matlab

و ریاضیات به فازی های سیست سازی پیاده برایواقه در که داریم نیاز فازی منطق نام به جدیدی منطق

. از هم اینج در است کالسیک منطق ی یافته تعمیمشکل ولی کنیم می استفاده مکمل و اشتراک و اجتماع

. بحث در مثال عنوان به است متفاوت کمی ها آن کلی: کنیم می تعریف مکمال نوع چند ما ها مکمل. 1مکمل

C(a)=1-aجبری 2 .سوگنو C(a)=1-a/1+waمکمل3 .یاگر C(a)=(1-a.^w).^1/wممکل

فازی منطق

Page 6: Fuzzy Systems with Matlab

یاگر مکمل سازی پیاده

Page 7: Fuzzy Systems with Matlab

استفاده زیر برنامه از فازی مجموعه دو کردن جمع برای: کنیم می

فازی محاسبات

Page 8: Fuzzy Systems with Matlab

برنامه نتیجه

Page 9: Fuzzy Systems with Matlab

مثلثی عضویت تابع با مثال همین

Page 10: Fuzzy Systems with Matlab

برنامه نتیجه

Page 11: Fuzzy Systems with Matlab

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

سیستم سازی مدل به نسبت خودمان باید ما چیست؟لذا تکلیف . جعبه یک کلی حالت در است دسترس در که سیستمی کنیم اقدام

است سیاه در ریاضی های مدل با که وگرنه نداریم دسترسی آن داخل به که

که اکنون اما رسیدیم می فاری به نسبت بهتری نتایج به دسترس . و ها ورودی تعداد در محدودیت دیگر مهم نکته نداریم دسترسی

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

طراحی شروع برای ولی دارد پی در را بودن گیر وقت مثل هم. است مناسب

های سیستم طراحی های روشفازی

Page 12: Fuzzy Systems with Matlab

: است زیر مراحل شامل ش رو این الگوریتم1 .ورودی برای فازی های مجموعه تعریف و بندی تقسیم

خروجی و ها2 .ممکن قواعد تمام تشکیل3 .قواعد از هرکدام امتیاز محاسبه4 .تر ضعیف متضاد قواعد حذف

look up table 1. ارجاع جدول بر مبتنی طراحی

Page 13: Fuzzy Systems with Matlab

clc; clear; close all; %% 0: Generate Data f=@(x) sin(x); xmin=0; xmax=2*pi; P=40; x=linspace(xmin,xmax,P)'; y=f(x);

با سینوس تابع سازی پیادهارجاع جدول

Page 14: Fuzzy Systems with Matlab

%% 1: Create Membership Functions nA=20; A=CreateMembershipFunctions(x,nA,'gaussmf'); nB=10; B=CreateMembershipFunctions(y,nB,'gaussmf'); %% 2: Create Rules Matrix S=zeros(nA,nB); %% 3: Calculate Rank of Rules for ai=1:nA amf=A{ai,1}; aparam=A{ai,2}; for bi=1:nB bmf=B{bi,1}; bparam=B{bi,2}; s=zeros(1,P); for p=1:P s(p)=feval(amf,x(p),aparam)*feval(bmf,y(p),bparam); end

Page 15: Fuzzy Systems with Matlab

S(ai,bi)=max(s); % S(ai,bi)=sum(s); end end %% 4: Delete Extra Rules [~, ind]=max(S,[],2); Rules=[(1:nA)' ind]; Rules(:,3)=1; Rules(:,4)=1; %% 5: Create FIS fis=newfis('Lookup Table FIS','mamdani'); fis=addvar(fis,'input','x',[min(x) max(x)]); for ai=1:nA fis=addmf(fis,'input',1,['A' num2str(ai)],A{ai,1},A{ai,2}); end fis=addvar(fis,'output','y',[min(y) max(y)]); for bi=1:nB

Page 16: Fuzzy Systems with Matlab

fis=addmf(fis,'output',1,['B' num2str(bi)],B{bi,1},B{bi,2}); end fis=addrule(fis,Rules); %% Test FIS % fuzzy(fis); xx=linspace(xmin,xmax,1000)'; yy=f(xx); yyhat=evalfis(xx,fis); ee=yy-yyhat; figure; subplot(2,2,[1 2]); plot(xx,yy,'b'); hold on; plot(xx,yyhat,'r'); xlabel('x'); ylabel('y'); legend('Target Values','Output Values');

Page 17: Fuzzy Systems with Matlab

subplot(2,2,3); plot(xx,ee); xlabel('x'); ylabel('e'); subplot(2,2,4); histfit(ee,100);

Page 18: Fuzzy Systems with Matlab

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

Page 19: Fuzzy Systems with Matlab

می انجام کوادراتیک تابع برای را باال مراحل تمام اکنون:دهیم

Page 20: Fuzzy Systems with Matlab

در باال توابع از کدام هر در اگر متلب PROMPT کهfuzzy(fis) رسیم می زیر نتایج به کنیم تایپ :را

Page 21: Fuzzy Systems with Matlab

رسیم می زیر نتیجه به کوادراتیک تابع برای : و

Page 22: Fuzzy Systems with Matlab

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

Page 23: Fuzzy Systems with Matlab

رسیم می زیر نتیجه :به

Page 24: Fuzzy Systems with Matlab

سینوس برای مثال : یا

Page 25: Fuzzy Systems with Matlab

سال در که طراحی روش مقاالت 1993این از یکی درIEEE طراحی در پرکاربرد های روش از یکی شد مطرح

ساده عصبی؟خوب چرا اما است فازی های سیستمشبکه یک شبیه سیتم این ریاضی بلوک چون است

آموزش با سیستم این ؟چون تطبیقی چرا و است عصبیاعمال های ورودی با را خود مرور به بیند می که هایی . توسط تطبیق کار این ضمن در دهد می تطبیق شده

الگوریتم نظیر سازی بهینه خاص های الگوریتم بعضیرفته رفته سیستم که گیرد می صورت نزولی گرادیان

ترین کم به تا دهد می تطبیق ورودی های داده با را خود. برسیم سیستم از تقریبی مدل در خطا میزان

استنتاج .2 سیستم اساس بر طراحیتطبیقی _ فازی عصبی

Page 26: Fuzzy Systems with Matlab

کنیم تایپ دستور پنجره در است کافی شروع برای >> anfisedit

می داده نمایش زیر گرافیکی پنجره صورت این در کهشود:

با کار ANFISشروع

Page 27: Fuzzy Systems with Matlab

پنجره در را سینوس تابع ابتدا سادگی به جا این درکنیم می فراخوانی دستور

>> x=linspace(0,2.*pi,1000); >> y=sin(x); >> plot(x,y)

ANFIS با سینوس تابع تخمین

Page 28: Fuzzy Systems with Matlab

گزینه انفیس در کنیم Loadابتدا می workspانتخاب[: کنیم می تایپ و آید می زیر پنجره [x yسپس

: داریم سپس و

با ما را anfisاما تابع این خواهیم میبزنیم تقریب

Page 29: Fuzzy Systems with Matlab

گزینه چند Trainسپس توان می و کنیم می انتخاب رارا کار این نحوه زیر در داد آموزش را فازی سیستم بار

: بینید می

Page 30: Fuzzy Systems with Matlab

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

. عمل آزادی ما و دارد هم هایی محدودیت روشدر . کدنویسی سراغ به ما مواقع این در Mfileنداریم

. با مه کاری کردیم سعی بعدی اسالید در رویم میبرای بار این دادیم انجام ارجاع جدول در کدنویسی

Anfis. دهیم انجام

Page 31: Fuzzy Systems with Matlab