Fuzzy Systems with Matlab

Preview:

Citation preview

Mehrdad Rajabali Fardi

Faculty of control engineering

Special Thanks to Dr.Pourgholi

Fuzzy Systems with Matlab

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

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

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

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

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

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

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

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

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

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

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

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

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

فازی منطق

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

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

فازی محاسبات

برنامه نتیجه

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

برنامه نتیجه

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

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

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

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

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

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

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

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

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

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

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);

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

%% 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

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

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');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

با کار ANFISشروع

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

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

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

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

: داریم سپس و

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

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

: بینید می

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

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

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

Anfis. دهیم انجام

Recommended