• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    ABB
    關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
    CAIAC 2025
    2025工業(yè)安全大會(huì)
    OICT公益講堂
    當(dāng)前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

    案例頻道

    自適應(yīng)模糊神經(jīng)控制系統(tǒng)及其MATLAB實(shí)現(xiàn)
    • 企業(yè):控制網(wǎng)     領(lǐng)域:儀器儀表     行業(yè):綜合    
    • 點(diǎn)擊數(shù):7053     發(fā)布時(shí)間:2009-11-27 15:55:47
    • 分享到:
        摘  要:本文介紹了自適應(yīng)神經(jīng)模糊網(wǎng)絡(luò)控制系統(tǒng)的結(jié)構(gòu),并在此基礎(chǔ)上重點(diǎn)介紹了自適應(yīng)神經(jīng)模糊系統(tǒng)及其MATLAB實(shí)現(xiàn)。

        關(guān)鍵詞
    :自適應(yīng);神經(jīng)模糊系統(tǒng);MATLAB

        Abstract: This text has introduced the structure of the fuzzy network control system of adaptive nerve ,and has recommended especially fuzzy system and MATLAB of the adaptive nerve are realized on this basis.

        Key woeds:
    adaptive;neuro_fuzzy system;MATLAB

         1  引言

        模糊神經(jīng)網(wǎng)絡(luò)控制在控制領(lǐng)域里目前已經(jīng)成為一個(gè)研究的熱點(diǎn),其原因在于神經(jīng)網(wǎng)絡(luò)和模糊系統(tǒng)兩者之間的互補(bǔ)關(guān)系。盡管模糊推理系統(tǒng)的設(shè)計(jì)(隸屬度函數(shù)和模糊規(guī)則的建立)不主要依靠對(duì)象的模型,但是它卻相當(dāng)依靠專家或操作人員的經(jīng)驗(yàn)和知識(shí)。若缺乏這樣的經(jīng)驗(yàn)和知識(shí),則很難期望它能獲得滿意的控制效果。而神經(jīng)網(wǎng)絡(luò)的一大特點(diǎn)就是其自學(xué)習(xí)功能,將這種自學(xué)習(xí)的方法應(yīng)用于對(duì)模型特征的分析與建模上,產(chǎn)生自適應(yīng)的神經(jīng)網(wǎng)絡(luò)技術(shù)。這種自適應(yīng)的神經(jīng)網(wǎng)絡(luò)技術(shù)對(duì)于模糊系統(tǒng)的模型建立(模糊規(guī)則庫(kù)的建立)是非常有效的工具。而自適應(yīng)神經(jīng)模糊系統(tǒng)就是基于數(shù)據(jù)的建模方法,該系統(tǒng)中的模糊隸屬度函數(shù)及模糊規(guī)則是通過(guò)大量的已知數(shù)據(jù)的學(xué)習(xí)得到的,而不是基于經(jīng)驗(yàn)和直覺(jué)任意給定的,這對(duì)于那些特性還不被人們所完全了解或者特性非常復(fù)雜的系統(tǒng)尤為重要。

        2  自適應(yīng)神經(jīng)模糊網(wǎng)絡(luò)控制系統(tǒng)的結(jié)構(gòu)

        自適應(yīng)神經(jīng)模糊網(wǎng)絡(luò)系統(tǒng)的定義是指具有學(xué)習(xí)算法的神經(jīng)模糊網(wǎng)絡(luò)系統(tǒng),這里的神經(jīng)模糊網(wǎng)絡(luò)系統(tǒng)是由服從模糊邏輯規(guī)則的一系列“如果—?jiǎng)t”規(guī)則所構(gòu)造的;而學(xué)習(xí)算法則依靠數(shù)據(jù)信息來(lái)對(duì)神經(jīng)模糊系統(tǒng)的參數(shù)進(jìn)行調(diào)整。自適應(yīng)模糊神經(jīng)系統(tǒng)被認(rèn)為是通過(guò)學(xué)習(xí)能自動(dòng)產(chǎn)生模糊規(guī)則的神經(jīng)模糊網(wǎng)絡(luò)系統(tǒng)。神經(jīng)模糊網(wǎng)絡(luò)控制系統(tǒng)的結(jié)構(gòu)圖如圖1所示。其中NFNC為神經(jīng)模糊網(wǎng)絡(luò)控制器;R為輸入信號(hào);E、EC分別為誤差及誤差變化量化后的模糊量;Ke、Kc為量化因子。

                     

    圖1 自適應(yīng)神經(jīng)模糊網(wǎng)絡(luò)控制系統(tǒng)結(jié)構(gòu)圖

        因此可以說(shuō)神經(jīng)模糊網(wǎng)絡(luò)是具有自適應(yīng)性的, 并能夠根據(jù)被控對(duì)象和環(huán)境的變化來(lái)調(diào)整控制規(guī)則和控制器的參數(shù)。

        3  模糊推理系統(tǒng)生成方式

        (1)在MATLAB模糊邏輯工具箱中,提供了有關(guān)對(duì)自適應(yīng)神經(jīng)模糊推理系統(tǒng)的初始化和建模函數(shù),如表1所示。

    表1 模糊神經(jīng)系統(tǒng)函數(shù)

    函數(shù)名       
    功能
    genfis1( )
    anfis ( )
    采用網(wǎng)格分割方式生成模糊推理函數(shù)
    自適應(yīng)神經(jīng)模糊系統(tǒng)的建模函數(shù)


         (2)采用網(wǎng)格分割方式生成模糊推理系統(tǒng)

         函數(shù)genfis1( )可為訓(xùn)練自適應(yīng)神經(jīng)模糊推理系統(tǒng)(Adaptive Neuro-Fuzzy Inference System,簡(jiǎn)稱ANFIS)產(chǎn)生Takagi-Sugeno型模糊推理系統(tǒng)(Fuzzy Inference System,簡(jiǎn)稱FIS)結(jié)構(gòu)的初值(隸屬度函數(shù)參數(shù)的初值),它采用網(wǎng)格分割的方式,根據(jù)給定數(shù)據(jù)集生成一個(gè)模糊推理系統(tǒng),一般與函數(shù)anfis ( )配合使用。由genfis1( )生成的模糊推理系統(tǒng)的輸入和隸屬度函數(shù)的類型、數(shù)目可以在使用時(shí)指定,也可以采用默認(rèn)值。該函數(shù)的調(diào)用格式為

                                fisMat=genfisl(data)

    fisMat= genfisl(data,numMFs,inMFType,outMFType)

        其中,data為給定的輸入/輸出數(shù)據(jù)集合,除了一系列為輸出數(shù)據(jù)外,其余列均表示輸入數(shù)據(jù);numMFs為一向量,其各個(gè)分量用于指定每個(gè)輸入語(yǔ)言變量的隸屬度函數(shù)的數(shù)量,如果每個(gè)輸入的隸屬度函數(shù)的數(shù)量相同,則只需輸入標(biāo)量值;inMFType為一字符串陣列,其每一列指定一個(gè)輸入變量的隸屬度類型,如果類型相同,則該參數(shù)將變成一個(gè)一維的字符串;outMFType指定輸出隸屬度類型的字符串,由于只能采用Takagi-Sugeno型系統(tǒng),因此系統(tǒng)只能有一個(gè)輸出,其類型僅取linear或constant;fisMat為生成的模糊推理系統(tǒng)矩陣。當(dāng)僅使用一個(gè)輸入?yún)?shù)而不指定隸屬度函數(shù)的個(gè)數(shù)和類型時(shí),將使用默認(rèn)值,即輸入隸屬度函數(shù)個(gè)數(shù)為2,輸入隸屬度函數(shù)類型為鐘形(gbellmf)曲線,輸出隸屬度函數(shù)為線行(linear)曲線。

        我們可以利用函數(shù)genfis1( )產(chǎn)生一個(gè)兩輸入—單輸出的模糊推理系統(tǒng)。其中要求輸入隸屬度函數(shù)分別為π形(pimf)和三角形(trimf),分割數(shù)分別為5和7。編程MATLAB為:

    data=[rand(10,1) 10*rand(10,1)-5 rand(10,1)];
    numMFs = [5 7];
    imfType=str2mat('pimf','trimf');
    omfType=str2mat('linear');
    fisMat=genfis1(data,numMFs,imfType,omfType);%生成模糊推理系統(tǒng)
    subplot(2,1,1);plotmf(fisMat,'input',1);
    subplot(2,1,2);plotmf(fisMat,'input',2);
         根據(jù)以上MATLAB程序,可以得到由函數(shù)genfis1( )生成的ANFIS系統(tǒng)訓(xùn)練前的初始隸屬度函數(shù)曲線,如圖2所示。

                
    圖2 由函數(shù)genfis1( )生成的隸屬度函數(shù)曲線

        由圖2可以看出,根據(jù)函數(shù)genfis1( )生成的模糊推理系統(tǒng)的輸入/輸出隸屬度函數(shù)的曲線,在確保覆蓋整個(gè)輸入/輸出空間的基礎(chǔ)上對(duì)其進(jìn)行了均勻分割。

        (3)自適應(yīng)神經(jīng)模糊系統(tǒng)的建模

        在MATLAB模糊邏輯工具箱中,提供了對(duì)基于Takagi-Sugeno型模型的自適應(yīng)神經(jīng)模糊推理系統(tǒng)ANFIS的建模方法,該模糊推理系統(tǒng)利用BP反向傳播算法和最小二乘算法來(lái)完成對(duì)輸入/輸出數(shù)據(jù)對(duì)的建模。該系統(tǒng)為模糊建模的過(guò)程,提供了一種能夠從數(shù)據(jù)集中提取相應(yīng)信息(模糊規(guī)則)的學(xué)習(xí)方法。這種學(xué)習(xí)方法與神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法非常相似,通過(guò)學(xué)習(xí)能夠有效的計(jì)算出隸屬度函數(shù)的最佳參數(shù),使得設(shè)計(jì)出來(lái)的Takagi-Sugeno型模糊推理系統(tǒng)能夠最好地模擬出希望的或是實(shí)際的輸入/輸出關(guān)系。相應(yīng)的函數(shù)為anfis(),該函數(shù)的輸出為一個(gè)三維或五維向量。當(dāng)未指定檢驗(yàn)數(shù)據(jù)時(shí),輸出向量為三維。Anfis()支持采用輸出加權(quán)平均的一階或零階Takagi-Sugeno型模糊推理。該函數(shù)的調(diào)用格式為

    [ Fis,error,stepsize ]=anfis (trnData)
    [ Fis,error,stepsize ]=anfis (trnData,initFis)
    [ Fis,error,stepsize ]=anfis (trnData,initFis,trnOpt,disOpt)
    [ Fis,error,stepsize,chFis,chkEr ]=anfis (trnData,initFis,trnOpt,disOpt.chkData)
    [ Fis,error,stepsize,chFis,chkEr ]=anfis (trnData,initFis,trnOpt,disOpt.chkData,optMethod)
        其中,

        1)  trnData為訓(xùn)練學(xué)習(xí)的輸入/輸出數(shù)據(jù)矩陣,該矩陣的每一行對(duì)應(yīng)一組輸入/輸出數(shù)據(jù),其中最后一列為輸出數(shù)據(jù)(該函數(shù)僅支持單輸出的Takagi-Sugeno型模糊系統(tǒng));

        2)  initFis是指定初始的模糊推理參數(shù)(包括隸屬度函數(shù)的類型和參數(shù))的矩陣,該矩陣可以使用命令fuzzy通過(guò)模糊推理系統(tǒng)編輯器生成,也可使用函數(shù)genfisl()由訓(xùn)練數(shù)據(jù)直接生成。函數(shù)genfisl()的功能是采用網(wǎng)格分割法生成模糊推理系統(tǒng)。如果沒(méi)有指明該參數(shù),則函數(shù)anfis()會(huì)自動(dòng)調(diào)用genfisl()來(lái)按照輸入/輸出數(shù)據(jù)生成一個(gè)默認(rèn)初始FIS推理系統(tǒng)參數(shù)。這里使用函數(shù)genfisl()的作用是先根據(jù)一定的專家經(jīng)驗(yàn)給出一個(gè)初始模糊系統(tǒng)的合適結(jié)構(gòu),在使用函數(shù) anfis()的訓(xùn)練過(guò)程中,已經(jīng)給定的初始模糊系統(tǒng)的結(jié)構(gòu)(隸屬度函數(shù)的個(gè)數(shù)、模糊規(guī)則數(shù)目)不會(huì)改變,只是對(duì)相應(yīng)的結(jié)構(gòu)參數(shù)進(jìn)行調(diào)整和優(yōu)化;

        3)  trnOpt指定訓(xùn)練的有關(guān)選項(xiàng),參數(shù)trnOpt為一個(gè)五維向量,其各個(gè)分量的定義如下:trnOpt(1)為訓(xùn)練的次數(shù),默認(rèn)值為10;trnOpt(2)為期望誤差,默認(rèn)值是0;trnOpt(3)為初始步長(zhǎng),默認(rèn)值是0.01;trnOpt(4)為步長(zhǎng)遞減速率,默認(rèn)值是0.9;trnOpt(5)為步長(zhǎng)遞增速率,默認(rèn)值為1.1。如果trnOpt的任一個(gè)分量為NaN(非數(shù)值,IEEE的標(biāo)準(zhǔn)縮寫(xiě))或被省略,則訓(xùn)練采用默認(rèn)參數(shù)。學(xué)習(xí)訓(xùn)練的過(guò)程在參數(shù)得到指定值或訓(xùn)練誤差得到期望誤差時(shí)停止。訓(xùn)練過(guò)程中的步長(zhǎng)調(diào)整采用以下的策略:當(dāng)誤差連續(xù)四次減小時(shí),則增加步長(zhǎng);當(dāng)誤差變化連續(xù)兩次出現(xiàn)震蕩,即一次增加和一次減少交替發(fā)生時(shí),則減小步長(zhǎng)。trnOpt的第四個(gè)和第五個(gè)參數(shù)分別按照上述策略控制訓(xùn)練步長(zhǎng)的調(diào)整;

        4)  disOpt用于控制訓(xùn)練過(guò)程中MATLAB命令窗口的顯示內(nèi)容,參數(shù)disOpt為一個(gè)四維向量,各分量分別定義如下:

          disOpt(1)顯示ANFIS的信息,如輸入/輸出隸屬度函數(shù)的次數(shù),默認(rèn)值為1;disOpt(2)顯示誤差測(cè)量,默認(rèn)值為1;

          disOpt(3)顯示訓(xùn)練步長(zhǎng),默認(rèn)值為1;disOpt(4)顯示最終結(jié)果,默認(rèn)值為1。當(dāng)disOpt的一個(gè)分量為0時(shí)不顯示相應(yīng)內(nèi)容,如果為1或NaN或省略則顯示相應(yīng)內(nèi)容;

        5)  chkData參數(shù)為一個(gè)與訓(xùn)練數(shù)據(jù)矩陣有相同列數(shù)的矩陣,用于提供檢驗(yàn)數(shù)據(jù),當(dāng)提供檢驗(yàn)數(shù)據(jù)時(shí),anfis()返回對(duì)檢驗(yàn)數(shù)據(jù)具有最小均方根誤差的模糊推理系統(tǒng)chkFis;

        6)  optMethod為隸屬度函數(shù)參數(shù)訓(xùn)練中的可選最優(yōu)化方法,其中1表示混合方法(BP算法和最小二乘法的組合),0表示BP方法,默認(rèn)值為1;

        返回參數(shù)Fis為學(xué)習(xí)完成后得到的對(duì)應(yīng)訓(xùn)練數(shù)據(jù)具有最小均方根誤差的模糊推理系統(tǒng)矩陣;

        7)  error為訓(xùn)練數(shù)據(jù)對(duì)應(yīng)的最小根誤差向量;

        8)  stepsize為訓(xùn)練步長(zhǎng)向量(當(dāng)指定檢驗(yàn)數(shù)據(jù)后,輸出向量為五維參數(shù)向量);

        9)  chkFis為對(duì)檢驗(yàn)數(shù)據(jù)具有最小均方根誤差的模糊推理系統(tǒng);

        10) chkEr為檢驗(yàn)數(shù)據(jù)對(duì)應(yīng)的最小均方根誤差。

        利用anfis()函數(shù)進(jìn)行自適應(yīng)模糊系統(tǒng)建模,除了給定系統(tǒng)期望的輸入/輸出數(shù)據(jù)之外,還必須提供一個(gè)初始模糊推理系統(tǒng)(包括隸屬度函數(shù)的類型和參數(shù)),否則函數(shù)anfis()會(huì)自動(dòng)調(diào)用genfisl()來(lái)按照輸入/輸出數(shù)據(jù)生成一個(gè)默認(rèn)的系統(tǒng)。我們對(duì)于這樣一個(gè)非線性函數(shù) , 建立一個(gè)自適應(yīng)神經(jīng)模糊推理系統(tǒng),對(duì)其進(jìn)行逼近。編寫(xiě)MATLAB程序如下:
    X=0:0.1:10;y=sin(2*x)./exp(x/5);trnData=[x'y'];%訓(xùn)練學(xué)習(xí)的輸入/輸出數(shù)據(jù)

    numMFs =5;mfType='gbellmf';
    initFis= genfis1(trnData,numMFs, mfType);
    epoch_n=30;
    fisMat=anfis(trnData, initFis, epoch_n);
    plot(x,y,'-',x,evalfis(x, fisMat),':');
    legend('Training Data','ANFIS Output')

    由此可以得到如圖2所示的函數(shù)實(shí)際輸出和模糊推理系統(tǒng)輸出曲線。       


    圖3  實(shí)際輸出和ANFIS輸出曲線

        從圖中可以看出,經(jīng)過(guò)訓(xùn)練的模糊推理系統(tǒng)基本能夠模擬原函數(shù)。

        4 結(jié)論

        隨著計(jì)算機(jī)及其相關(guān)技術(shù)的發(fā)展,模糊控制也由最初的經(jīng)典模糊控制發(fā)展到自適應(yīng)模糊控制,對(duì)一些非線性,大延時(shí),強(qiáng)耦合,時(shí)變參數(shù)等復(fù)雜的工業(yè)過(guò)程有很好的控制過(guò)程。MATLAB工具箱提供了許多進(jìn)行神經(jīng)網(wǎng)絡(luò)和模糊邏輯設(shè)計(jì)和分析的工具函數(shù),即使不了解算法的本質(zhì),也可以直接應(yīng)用功能豐富的函數(shù)來(lái)實(shí)現(xiàn)自己的目的。
     
     
     
        參考文獻(xiàn)
     
         [1] 李士勇。模糊控制神經(jīng)控制和智能控制論。哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1998

         [2] Kevin M.Passino,Stephen Yurkovich.Fuzzy control. July 1997

         [3] 涂承宇,涂承媛,楊曉萊,賀佳。模糊控制理論與實(shí)踐。地震出版社,1998

         [4] 吳曉莉,林哲輝等。MATLAB輔助模糊系統(tǒng)設(shè)計(jì)。西安:西安電子科技大學(xué)出版社,2002

     

    熱點(diǎn)新聞

    推薦產(chǎn)品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細(xì)的需求:
    姓名:
    單位:
    電話:
    郵件: