C語言實(shí)現(xiàn)模糊控制算法_第1頁
C語言實(shí)現(xiàn)模糊控制算法_第2頁
C語言實(shí)現(xiàn)模糊控制算法_第3頁
C語言實(shí)現(xiàn)模糊控制算法_第4頁
C語言實(shí)現(xiàn)模糊控制算法_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語言實(shí)現(xiàn)模糊控制算法C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)標(biāo)題文本預(yù)設(shè)模糊控制器結(jié)構(gòu)泥污的模糊集表示為:SD(泥污少)、MD(泥污中)、LD(泥污多);油污的模糊集表示為:NG(油污少)、MG(油污中)、LG(油污多);洗滌時(shí)間的模糊集為:VS(很短)、S(短)、M(中)、L(長(zhǎng))、VL(很長(zhǎng))。選用兩輸入單輸出模糊控制器。控制器的輸入為衣物的泥污和油污,輸出為洗滌時(shí)間。定義輸入、輸出模糊集說明:PPT中,文字前加的部分為C語言程序,按順序粘貼在一起即是完整的程序,申明該函數(shù)后調(diào)用即可C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)標(biāo)題文本預(yù)設(shè)定義隸屬函數(shù)選用三角形隸屬函數(shù)實(shí)現(xiàn)泥污和油污的模糊化C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)標(biāo)題文本預(yù)設(shè)定義隸屬函數(shù)選用三角形隸屬函數(shù)實(shí)現(xiàn)洗滌時(shí)間的模糊化C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)標(biāo)題文本預(yù)設(shè)建立模糊規(guī)則根據(jù)人的操作經(jīng)驗(yàn)設(shè)計(jì)模糊規(guī)則,模糊規(guī)則設(shè)計(jì)的標(biāo)準(zhǔn):“泥污多,油污多,洗滌時(shí)間長(zhǎng);泥污中,油污中,洗滌時(shí)間中;泥污少,油污少,洗滌時(shí)間短”。根據(jù)模糊規(guī)則的設(shè)計(jì)標(biāo)準(zhǔn)建立模糊規(guī)則表。洗滌時(shí)間Z泥污XSDMDLD油污YNGVSMLMGSMLLGMLVLC語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)標(biāo)題文本預(yù)設(shè)變量定義float

XF[3]={0,50,100};//污泥X隸屬函數(shù)劃分區(qū)間float

YF[3]={0,50,100};//油脂Y隸屬函數(shù)劃分區(qū)間float

ZF[5]={0,10,25,40,60};//洗滌時(shí)長(zhǎng)Z隸屬函數(shù)劃分區(qū)間//污泥X0,1,2//油脂YintRule[3][3]={{0,2,3},//0

{1,2,3},//1

{2,3,4}};//2floatFuzzy(floatXIN,floatYIN)//污泥輸入X,油脂輸入Y{floatXU[2],YU[2],ZU[4];//隸屬度

int

Xn,Yn;//隸屬度對(duì)應(yīng)的下標(biāo)intZn[4];//4條有效推理結(jié)果floatTemp[4];inti,j,iu;floatZij,ZUmax[4];//輸出隸屬度最大值洗滌時(shí)間Z泥污XSDMDLD油污YNGVSMLMGSMLLGMLVLC語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)標(biāo)題文本預(yù)設(shè)計(jì)算污泥X的隸屬度if(XIN<=XF[1])//0<=XIN<=50{Xn=0;//隸屬度對(duì)應(yīng)的下標(biāo)XU[0]=(XF[1]-XIN)/(XF[1]-XF[0]);XU[1]=1-XU[0];}elseif(XIN<=XF[2])//50<XIN<=100{Xn=1;//隸屬度對(duì)應(yīng)的下標(biāo)XU[0]=(XF[2]-XIN)/(XF[2]-XF[1]);XU[1]=1-XU[0];//XU[1]=(XIN-XF[1])/(XF[2]-XF[1]);}Rule[3][3]={{0,2,3},

{1,2,3},

{2,3,4}};C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)標(biāo)題文本預(yù)設(shè)計(jì)算油脂Y的隸屬度if(YIN<=YF[1])//0<=YIN<=50{Yn=0;//隸屬度對(duì)應(yīng)的下標(biāo)YU[0]=(YF[1]-YIN)/(YF[1]-YF[0]);YU[1]=1-YU[0];}elseif(YIN<=YF[2])//50<YIN<=100{Yn=1;//隸屬度對(duì)應(yīng)的下標(biāo)YU[0]=(YF[2]-YIN)/(YF[2]-YF[1]);YU[1]=1-YU[0];}Rule[3][3]={{0,2,3},

{1,2,3},

{2,3,4}};C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)標(biāo)題文本預(yù)設(shè)模糊推理假定傳感器測(cè)得信息:X(泥污)=60,Y(油污)=70,那么求得其隸屬度為:μSD(60)=0,μMD(60)=4/5,μLD(60)=1/5μN(yùn)G(70)=0,μMG(70)=3/5,μLG(70)=2/5可以得到四條相匹配的模糊規(guī)則

//根據(jù)Rule[3][3]規(guī)則表得出4條有效推理結(jié)果

Zn[0]=Rule[Xn][Yn];Zn[1]=Rule[Xn+1][Yn];Zn[2]=Rule[Xn][Yn+1];Zn[3]=Rule[Xn+1][Yn+1];洗滌時(shí)間Z泥污XSDMDLD油污YNG000MG0μM(z)μL(z)LG0μL(z)μVL(z)C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例標(biāo)題文本預(yù)設(shè)模糊推理

在同一條規(guī)則內(nèi),先通過取小運(yùn)算得到每一條規(guī)則前提的可信度,可得每條規(guī)則總的可信度分別為:min(4/5,3/5)=3/5、min(4/5,2/5)=2/5、min(1/5,3/5)=1/5、min(1/5,2/5)=1/5。

if(XU[0]<=YU[0])//規(guī)則前提的可信度取小運(yùn)算ZU[0]=XU[0];elseZU[0]=YU[0];if(XU[1]<=YU[0])//規(guī)則前提的可信度取小運(yùn)算ZU[1]=XU[1];elseZU[1]=YU[0];if(XU[0]<=YU[1])//規(guī)則前提的可信度取小運(yùn)算ZU[2]=XU[0];elseZU[2]=YU[1];if(XU[1]<=YU[1])//規(guī)則前提的可信度取小運(yùn)算ZU[3]=XU[1];elseZU[3]=YU[1];μMD(60)=4/5,μLD(60)=1/5μMG(70)=3/5,μLG(70)=2/5C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例標(biāo)題文本預(yù)設(shè)模糊推理可得到洗衣機(jī)的規(guī)則前提可信度表規(guī)則前提泥污XSDMDLD油污YNG000MG0min(3/5,μM(z))min(1/5,μL(z))LG0min(2/5,μL(z))min(1/5,μVL(z))模糊系統(tǒng)總的可信度μ(z)為各條規(guī)則可信度的并集,即μ(z)=max{min(3/5,μM(z)),min(2/5,μL(z)),min(1/5,μL(z)),min(1/5,μVL(z))}=max{min(3/5,μM(z)),min(2/5,μL(z)),min(1/5,μVL(z))}C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)模糊推理

//同隸屬函數(shù)總規(guī)則的可信度取大運(yùn)算

if(Zn[0]==Zn[1]

{if(ZU[0]>ZU[1])ZU[1]=0;else ZU[0]=0;

}

if(Zn[0]==Zn[2])

{if(ZU[0]>ZU[2])ZU[2]=0;elseZU[0]=0;

}

if(Zn[0]==Zn[3])

{if(ZU[0]>ZU[3])ZU[3]=0;elseZU[0]=0;

}

if(Zn[1]==Zn[2])

{if(ZU[1]>ZU[2])ZU[2]=0;elseZU[1]=0;

}

if(Zn[1]==Zn[3]

{if(ZU[1]>ZU[3])ZU[3]=0;elseZU[1]=0;

}

if(Zn[2]==Zn[3])

{if(ZU[2]>ZU[3])ZU[3]=0;elseZU[2]=0;

}C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)重心法反模糊

模糊系統(tǒng)的總輸出實(shí)際是3個(gè)規(guī)則推理結(jié)果的并集,需要進(jìn)行反模糊化,才能得到精確的結(jié)果。采用最大隸屬度平均法進(jìn)行反模糊化。由上述推理過程可得洗滌時(shí)間隸屬度最大值為μ=3/5。將其代入到洗滌時(shí)間隸屬度函數(shù)中的μM(z),得μM(z)=(z-10)/15=3/5,μM(z)=(40-z)/15=3/5,得z1=19,z2=31。采用最大平均法可得z=(z1+z2)/2=25。即洗滌時(shí)間為25分鐘。洗滌時(shí)間Z泥污XSDMDLD油污YNG000MG0μM(z)ZU[0]μL(z)ZU[1]LG0μL(z)ZU[2]μVL(z)ZU[3]C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例重心法反模糊for(i=0;i<4;i++)ZUmax[i]=ZU[i];for(j=0;j<3;j++)//冒泡法排序從小到大排for(i=0;i<3-j;i++)if(ZUmax[i]>=ZUmax[i+1]){Zij=ZUmax[i];ZUmax[i]=ZUmax[i+1];ZUmax[i+1]=Zij;}if(ZUmax[3]>ZUmax[2])//最大隸屬度只有一個(gè)

{ //找最大隸屬度對(duì)應(yīng)的隸屬函數(shù)

for(i=0;i<4;i++)if(ZUmax[3]==ZU[i])

{iu=i;break;}C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)重心法反模糊if(Zn[iu]==0)//VS

{Temp[0]=ZF[0];Temp[1]=ZF[1]-(ZU[iu]*(ZF[1]-ZF[0]));

}elseif(Zn[iu]==1)//S

{Temp[0]=ZU[iu]*(ZF[1]-ZF[0]);Temp[1]=ZF[2]-(ZU[iu]*(ZF[2]-ZF[1]));

}elseif(Zn[iu]==2)//M

{Temp[0]=ZU[iu]*(ZF[2]-ZF[1])+ZF[1];Temp[1]=ZF[3]-(ZU[iu]*(ZF[3]-ZF[2]));

}elseif(Zn[iu]==3)//L{Temp[0]=ZU[iu]*(ZF[3]-ZF[2])+ZF[2];Temp[1]=ZF[4]-(ZU[iu]*(ZF[4]-ZF[3]));}elseif(Zn[iu]==4)//VL

{Temp[0]=ZU[iu]*(ZF[4]-ZF[3])+ZF[3];Temp[1]=ZF[4];}return(Temp[0]+Temp[1])/2;}

C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容作為文字排版占位顯示

(建議使用主題字體)重心法反模糊if(ZUmax[3]==ZUmax[2])//最大隸屬度有2個(gè){//找最大隸屬度對(duì)應(yīng)的隸屬函數(shù)for(i=0;i<4;i++)if(ZUmax[3]==ZU[i]){iu=i;break;}if(Zn[iu]==0)//VS+S{Temp[0]=ZF[0];Temp[1]=ZF[1]-(ZU[iu]*(ZF[1]-ZF[0]));Temp[2]=ZU[iu]*(ZF[1]-ZF[0]);Temp[3]=ZF[2]-(ZU[iu]*(ZF[2]-ZF[1]));}elseif(Zn[iu]==1)//S+M{Temp[0]=ZU[iu]*(ZF[1]-ZF[0]);Temp[1]=ZF[2]-(ZU[iu]*(ZF[2]-ZF[1]));Temp[2]=ZU[iu]*(ZF[2]-ZF[1])+ZF[1];Temp[3]=ZF[3]-(ZU[iu]*(ZF[3]-ZF[2]));}C語言實(shí)現(xiàn)模糊控制算法--以洗衣機(jī)的模糊控制為例此部分內(nèi)容

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論