首先來看一個實(shí)例,控制進(jìn)水閥S1和出水閥S2,使水箱水位保持在目標(biāo)水位O處。
按照日常操作經(jīng)驗(yàn),有以下規(guī)則:
1、 若當(dāng)前水位高于目標(biāo)水位,則向外排水,差值越大,排水越快;
2、 若當(dāng)前水位低于目標(biāo)水位,則向內(nèi)注水,差值越大,注水越快;
3、 若當(dāng)前水位和目標(biāo)水位相差很小,則保持排水速度和注水速度相等。
下面來設(shè)計一個模糊控制器
1、選擇觀測量和控制量
一般選擇偏差e,即目標(biāo)水位和當(dāng)前水位的差值作為觀察量,選取閥門開度u為控制量。
2、輸入量和輸出量的模糊化
將偏差e劃分為5個模糊集,負(fù)大(NB)、負(fù)小(NS)、零(ZO)、正小(PS)、正大(PB),e為負(fù)表示當(dāng)前水位低于目標(biāo)水位,e為正表示當(dāng)前水位高于目標(biāo)水位。設(shè)定e的取值范圍為[-3,3],隸屬度函數(shù)如下。
3、制定模糊規(guī)則
模糊規(guī)則的制定是模糊控制的核心內(nèi)容,控制性能的好壞很大程度上由模糊規(guī)則決定,目前主要是根據(jù)經(jīng)驗(yàn)來制定相應(yīng)的規(guī)則?!竞竺婵梢越Y(jié)合神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)模糊規(guī)則】
(1)若e負(fù)大,則u負(fù)大;
(2)若e負(fù)小,則u負(fù)小;
(3)若e為零,則u為零;
(4)若e正小,則u正小;
(5)若e正大,則u正大;
將上述用語言描述的規(guī)則轉(zhuǎn)化為’’IF A THEN B’’的語句如下:
4、求解模糊關(guān)系
根據(jù)制定的模糊規(guī)則,通過相應(yīng)的模糊集合運(yùn)算,可得到模糊關(guān)系集合R。
5、進(jìn)行模糊決策
我們最終需要獲得的控制量u即為模糊控制的輸出,u可由偏差矩陣e和模糊關(guān)系矩陣R合成得到。
6、控制量的反模糊化
我們模糊決策得到的控制量u是一個矩陣,并不能直接應(yīng)用在工程上,因此需要將u解釋為實(shí)際中的特定行為,即反模糊化操作。目前常用的反模糊化方法有以下幾種:
(1)最大隸屬度法----計算簡單控制要求不高場合
(2)重心法----輸出更平滑
(3)加權(quán)平均法----工業(yè)上應(yīng)用最廣泛
7、matlab實(shí)現(xiàn)
所幸的是,在matlab模糊控制工具箱中已經(jīng)幫我們實(shí)現(xiàn)了4-6步求解矩陣運(yùn)算的操作,只需要直接調(diào)用evalfis函數(shù)就可以得到相應(yīng)的決策控制量。
通過matlab集成的模糊控制模塊,我們能夠更加方便地對應(yīng)偏差e和控制量u的關(guān)系,并可以調(diào)節(jié)e在不同值下u的對應(yīng)輸出。