T-S模糊系統(tǒng)結(jié)論參數(shù)的MATLAB仿真研究_第1頁
T-S模糊系統(tǒng)結(jié)論參數(shù)的MATLAB仿真研究_第2頁
T-S模糊系統(tǒng)結(jié)論參數(shù)的MATLAB仿真研究_第3頁
T-S模糊系統(tǒng)結(jié)論參數(shù)的MATLAB仿真研究_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、T-S模糊系統(tǒng)結(jié)論參數(shù)的MATLAB仿真研究    摘  要  介紹了應(yīng)用最小二乘法對T-S結(jié)論參數(shù)進行粗略辨識,確定參數(shù)的大致范圍,再應(yīng)用遺傳算法對前提參數(shù)和結(jié)論參數(shù)同時優(yōu)化的參數(shù)辨識方法。對非線性函數(shù)進行逼近實驗,給出了用MATLAB編程進行仿真的具體實現(xiàn)方法,結(jié)果證明該方法的可行性和有效性。     關(guān)鍵詞  最小二乘法;參數(shù)辨識;遺傳算法  0  引言    對T-S模糊系統(tǒng)參數(shù)辨識的過程大致分為結(jié)構(gòu)辨識和參數(shù)辨識,而參數(shù)辨識則是整個系統(tǒng)

2、辨識的關(guān)鍵所在。遺傳算法以其在解空間內(nèi)進行高效啟發(fā)式搜索,尋優(yōu)速度快,不易陷入局部最優(yōu)解等優(yōu)點成為近來應(yīng)用較多的優(yōu)化方法。將遺傳算法用于解決T-S模糊模型的參數(shù)辨識問題,在應(yīng)用最小二乘法進行粗略辨識的前提下,用遺傳算法對結(jié)論參數(shù)進行尋優(yōu),用MATLAB進行仿真,取得了較好的效果。 1  用最小二乘法對T-S模糊模型參數(shù)的初步辨識    T-S模糊模型辨識的過程一般分為以下幾個階段:前提結(jié)構(gòu)辨識;前提參數(shù)辨識;結(jié)論結(jié)構(gòu)辨識;結(jié)論參數(shù)辨識,直到模型滿足要求為止。結(jié)構(gòu)辨識的方法,在此不再詳細說明,只對結(jié)論參數(shù)辨識問題展開討論。   

3、0; 在確定了前提結(jié)構(gòu)和結(jié)論結(jié)構(gòu)之后,對模糊模型的結(jié)論參數(shù)進行粗略的辨識,以確定遺傳算法尋優(yōu)的范圍。在眾多的參數(shù)辨識方法中,最小二乘法是最基本的一種,Gauss于1795年就用最小二乘法,由觀測結(jié)果估算了行星的運行軌道。此后,這種方法被廣泛應(yīng)用,并根據(jù)實際問題提出了許多改進的最小二乘法,如正交最小二乘法,廣義最小二乘法,增廣最小二乘法等。這里所用的是線性最小二乘法,將前提結(jié)構(gòu)劃分的各個范圍中的輸入輸出數(shù)據(jù)擬合為一次多項式函數(shù)。從而得出粗略的結(jié)論參數(shù)。以此來大致確定遺傳算法要優(yōu)化的結(jié)論參數(shù)范圍。前提參數(shù)的大致范圍可根據(jù)所選的隸屬函數(shù)來確定。     為簡單起見,考慮

4、一維的單輸入非線性系統(tǒng)。對下列函數(shù)進行逼近1: 設(shè)定輸入范圍為-1,1,將它模糊分割為五個區(qū),隸屬度函數(shù)采用廣義的鐘形函數(shù),這里只有一個輸入變量,輸出為y = a x + b的線性方程,待優(yōu)化的結(jié)論參數(shù)有2×5 = 10個,用MATLAB編程來初步得出待優(yōu)化的結(jié)論參數(shù),主要代碼如下:     data_n=100;newdata_n=1001;x=linspace(-1,-0.6,data_n);     y=0.7*sin(pi*x)+0.3*sin(3*pi*x)+0.1*sin(5*pi*x);   

5、;  polyfit(x,y,1)     由上述方法仿真可得出的10個參數(shù),確定參數(shù)范圍,如表1中所示:表1 用最小二乘法估計的參數(shù)及優(yōu)化所選的參數(shù)范圍    參數(shù) a1 b1 a2 b2 a3 b3 a4 b4 a5 b5 估計參數(shù) -0.6499 -1.0459 0.9010 0.0518 8.3065 0.0000 0.9010 -0.0518 -0.6499 1.0459 參數(shù)范圍 -5,5 -5,5 -5,5 -5,5 -2,15 -5.5, 5.5 -5,5 -5, 5 -5.5, 5.5 -1,5

6、2 用遺傳算法來優(yōu)化T-S模型的結(jié)論參數(shù)    由于同時優(yōu)化的參數(shù)的數(shù)量較多,故采用實數(shù)編碼的方式對參數(shù)進行編碼。編碼過程是通過計算機產(chǎn)生所要優(yōu)化的參數(shù)范圍內(nèi)的隨機數(shù),對每一個參數(shù)進行編碼后,連接在一起形成一條染色體,然后就可以對它進行遺傳操作。用MATLAB編程,確定尋優(yōu)范圍的主要代碼如下: MinX(1)=-5.0*ones(1); MaxX(1)=5.0*ones(1); MinX(2)=-5.0*ones(1); MaxX(2)=5.5*ones(1); MinX(10)=-1*ones(1); MaxX(10)=5*ones(1); Kpar(:,1)=

7、MinX(1)+(MaxX(1)-MinX(1)*rand(Size,1); Kpar(:,2)=MinX(2)+(MaxX(2)-MinX(2)*rand(Size,1); Kpar(:,9)=MinX(9)+(MaxX(9)-MinX(9)*rand(Size,1); Kpar(:,10)=MinX(10)+(MaxX(10)-MinX(10)*rand (Size,1);     在產(chǎn)生大種群后,對個體進行初步篩選,去掉一些適應(yīng)度差的個體,剩下的作為初始種群進行遺傳操作,這種方法可以使種群在保持多樣性的同時,節(jié)省計算時間。進化代數(shù)的確定,一般是根據(jù)問題所要求

8、的精度來確定,精度低,進化的代數(shù)就可以少一些,反之則多一些。     適應(yīng)度函數(shù)是衡量個體優(yōu)劣的指標,為了達到尋優(yōu)的目標,適應(yīng)度函數(shù)一般是通過目標函數(shù)變換而來的,這里對T-S模型的參數(shù)進行辨識,采用的目標函數(shù)為均方誤差:        (1)     其中:t(k)為由辨識的模糊模型計算出的第k個采樣時刻的輸出值,(k)為第k 個采樣時刻的實際輸出值,Q為總的采樣次數(shù)。     在進行選擇操作時,是按照適應(yīng)度越大,被選擇的概率越大,所以

9、,這里選用的適應(yīng)度函數(shù)為:           (2)     其中是一個較小的正實數(shù),目的是為了避免除數(shù)為零的情況發(fā)生3。其主要代碼如下: for i=1:1:Size  %以下為初始篩選         cansu=Kpar(i,:);         code=cansu;    &

10、#160;    rmse=computeitae(code);%計算均方誤差;         BsJ=rmse;         BsJi(i)=BsJ;%將均誤差賦給BsJi     end         fi=1./BsJi;% 求適應(yīng)度的值     Oderfi,Indexfi=sort

11、(fi)%對適應(yīng)度值由小到大排列        sortrsa=Kpar(Indexfi(Size),:);     for s=2:1:selectsize          shuijirsa=Kpar(Indexfi(Size-s+1),:);         sortrsa=sortrsa  shuijirsa;   &

12、#160;      end          sortrsa          Kpar=sortrsa          Size=selectsize     遺傳操作一般包括選擇,交叉和變異。選擇方法采用蒙特卡羅法,按比例的適應(yīng)度分配。若某個個體i ,其適應(yīng)度為f i ,

13、 則其被選擇的概率表示為:                (3)     由于在進行遺傳操作前,已經(jīng)對個體進行了初步的篩選,所以為了避免對種群中優(yōu)良個體的破壞,這里采用單點交叉的方法,隨機選擇交叉點之后,將兩個個體的交叉點后面的基因進行交換。變異采用實值變異的方法,隨機選擇染色體的某個基因,由于用實數(shù)編碼的方法,每個基因就是一個要辨識的參數(shù)值,所以可以用一個函數(shù)實現(xiàn)在參數(shù)范圍內(nèi)適當改變該參數(shù)值的大小,從而達到保持種群

14、多樣性的目的。為了使尋優(yōu)不過早的收斂到次優(yōu)解,隨著進化代數(shù)的增加,需要適當增大變異率,其實現(xiàn)方法只需用一個函數(shù)來表示變異率: pm=0.1 + 1:1:G×0.1/G       (4)     式中:pm表示變異率,G代表進化代數(shù)。1:1:G表示一個數(shù)組,變化的范圍為1,G,步長為1。為了避免破壞優(yōu)良個體,變異率不宜取的過大。通過實驗得知,在第一代時,可取變異率 pm=0.1+1×0.1/G,第二代時,變異率pm=0.1+2×0.1/G,以此類推。這樣隨著進化代數(shù)的增加,p

15、m也隨著增加。     另外,為了防止遺傳操作對最優(yōu)個體的破壞,采取保留最優(yōu)個體的方法。將每一代產(chǎn)生的最優(yōu)個體放在該種群的最后,再繼續(xù)進行下一代的操作。整個算法的流程圖如圖所示。具體實現(xiàn)的遺傳操作的主要代碼如下: G=300;%進化的代數(shù) BsJ=0; for kg=1:1:G   time(kg)=kg;       %*step 1:計算誤差*        for i=1:1:Size     

16、60;   cansu1=Kpar(i,:);         selectcode=cansu1;         error=computeitae(selectcode);%計算均方誤差;         BsJ1=error;         BsJi1(i)=BsJ1;  

17、60;  end        OderJi,IndexJi=sort(BsJi1);    BestJ(kg)=OderJi(1);    BJ=BestJ(kg);     Ji=BsJi1+1e-10;%避免除零        fi=1./Ji;% 求適應(yīng)度的值     Oderfi,Indexfi=sort(fi)%對適應(yīng)度值由小到大排列  

18、0;  Bestfi=Oderfi(Size);     BestS=Kpar(Indexfi(Size),:)%保存最大適應(yīng)度值對應(yīng)的染色體(參數(shù))         %*step2:選擇和復(fù)制* 圖 算法流程圖 fi_sum=sum(fi);     fi_Size=(Oderfi/fi_sum)*Size;     fi_S=floor(fi_Size);     r=Size-sum(fi_

19、S);     Rest=fi_Size-fi_S;     RestValue,Index=sort(Rest);        for i=Size:-1:Size-r+1         fi_S(Index(i)=fi_S(Index(i)+1;     end        k=1;   

20、  for i=Size:-1:1         for j=1:1:fi_S(i)             TempE(k,:)=Kpar(Indexfi(i),:);             k=k+1;         e

21、nd     end         % step 3交叉率不能太大        Pc=0.7;     for i=1:2:(Size-1)         temp=rand;         if Pc>temp     &#

22、160;       alfa=rand; TempE(i,:)=alfa*Kpar(i+1,:)+(1-alfa)*Kpar(i,:); TempE(i+1,:)=alfa*Kpar(i,:)+(1-alfa)*Kpar(i+1,:);         end     end     TempE(Size,:)=BestS;     Kpar=TempE; 

23、0;      %*Step 4:變異*變異率不能太大     Pm=0.15+1:1:Size*(0.01)/Size;     Pm_rand=rand(Size,CodeL);     Mean=(MaxX+MinX)/2;     Dif=(MaxX-MinX)/2;        for i=1:1:Size      

24、;   for j=1:1:CodeL             if Pm(i)>Pm_rand(i,j)                TempE(i,j)=Mean(j)+Dif(j)*(rand- 0.4);             End         end     end     TempE(Size,:)=BestS;%保留最優(yōu)個體     Kpar=TempE;     end BestS Best_J=BestJ(G) figure(1); plot(time,BestJ); xlabel('T

溫馨提示

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

評論

0/150

提交評論