智能控制模糊控制器設(shè)計(jì)_第1頁(yè)
智能控制模糊控制器設(shè)計(jì)_第2頁(yè)
智能控制模糊控制器設(shè)計(jì)_第3頁(yè)
智能控制模糊控制器設(shè)計(jì)_第4頁(yè)
智能控制模糊控制器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

★一.模糊控制器的設(shè)計(jì)步驟如下:1.確定模糊控制器的總體結(jié)構(gòu)2.實(shí)現(xiàn)清晰量的模糊化①定義輸入/輸出量對(duì)應(yīng)的論域及其模糊集②定義模糊集的隸屬函數(shù),確定論域內(nèi)元素對(duì)模糊集的隸屬度3.

編制模糊控制規(guī)則建立模糊控制規(guī)則表4.

模糊推理5.

清晰化1.基本論域與模糊論域(1)基本論域本次設(shè)計(jì)中要求系統(tǒng)在運(yùn)行時(shí),液位偏差能夠穩(wěn)定在

[-2m2m]之間,則:e的基本論域?yàn)閇-22]。根據(jù)實(shí)際經(jīng)驗(yàn)和模糊控制器設(shè)計(jì)情況:ec的基本論域定為:[-0.2,0.2]。1.確定模糊控制器的結(jié)構(gòu)二維2.實(shí)現(xiàn)清晰量的模糊化?(2)模糊論域偏差語(yǔ)言變量E所取的模糊集合的論域?yàn)椋篨={-n,-n+1,…,0,…,n-1,n},偏差變化率語(yǔ)言變量EC所取的模糊集合的論域?yàn)椋篩={-m,-m+1,…,0,…,m-1,m}

本次設(shè)計(jì)中液位偏差語(yǔ)言變量E所取的模糊集合的論域?yàn)椋篨={-3,-2,-1,0,1,2,3}。偏差變化率語(yǔ)言變量EC所取的模糊集合的論域?yàn)椋篩={-3,-2,-1,0,1,2,3}??刂崎y門開(kāi)度語(yǔ)言變量U所取的模糊集合的論域?yàn)椋篫={-4.5,-3,-1.5,0,1.5,3,4.5}(3).量化因子偏差、偏差變化率的量化因子分別用下面兩式確定:=n/,=m/在本次設(shè)計(jì)中:n=3,=2,則=3/2=1.5

m=3,=0.2,則=3/0.2=15

3.定義模糊集合及其隸屬度函數(shù)表(1)定義模糊集合考慮偏差、偏差變化及控制量的正負(fù)性,我們選取語(yǔ)言變量的語(yǔ)言值為7個(gè):PB(正大),PM(正中),PS(正小),Z(零),NS(負(fù)小),NM(負(fù)中),NB(負(fù)大)因此,模糊子集可表示為:

{

NB,NM,NS,Z,PS,PM,PB}。

(2)隸屬度函數(shù)語(yǔ)言變量論域上的模糊子集由其論域上的隸屬度函數(shù)μ(x)來(lái)描述其中偏差e與偏差的變化率ec的各個(gè)隸屬函數(shù)的參數(shù)分別為[–3,–1],[–3,–2,0],

[–3,–1,+1],[–2,0,+2],[–1,1,+3],

[0,+2,+3],[+1,+3]??刂屏縰的各個(gè)隸屬函數(shù)的參數(shù)分別為

[–4.5,–1.5],[–4.5,–3,0],[–4.5,–1.5,1.5],

[–3,0,+3],[–1.5,1.5,+4.5],[0,+3,+4.5],[+1.5,+4.5]控制量u的七個(gè)等級(jí)代表的意思分別是:NB:快速關(guān),NM:中速關(guān),NS:慢速關(guān),PS:慢速開(kāi),PM:中速開(kāi),PB:快速開(kāi),

Z:閥門不動(dòng)。-3-2-10123PB000000.51.0PM00000.51.00PS0000.51.00.50Z000..51.00.500NS00.51.00.5000NM01.00.50000NB1.00.500000e、ec的隸屬度函數(shù)表-4.5-3-1.501.534.5PB000000.51.0PM00000.51.00PS0000.51.00.50Z000.51.00.500NS00.501.00.5000NM01.00.50000NB1.00.5000000u的隸屬度函數(shù)表3.編制模糊控制規(guī)則,建立模糊控制規(guī)則表

e的語(yǔ)言值有7個(gè),ec的語(yǔ)言值也有7個(gè),若按排列組合來(lái)考慮,有7×7=49條模糊控制規(guī)則,將其整理成模糊控制規(guī)則表,如表4-3所示??刂屏縰偏差eNBNMNSZPSPMPB偏差變化量ecNBNBNBNMNMNSZZNMNBNBNMNSNSZPSNSNMNMNMNSZPSPSZNMNMNSZPSPMPMPSNSNSZPSPSPMPMPMNSZPSPMPMPMPBPBZZPMPMPMPBPB模糊控制規(guī)則表將模糊控制規(guī)則加入規(guī)則編輯器:模糊控制量的選取一般遵循如下原則:1).當(dāng)偏差大或者較大時(shí),模糊控制量的選擇應(yīng)以消除偏差為主;2).當(dāng)偏差較小時(shí),模糊控制量的選擇應(yīng)以系統(tǒng)的穩(wěn)定性為主,防止系統(tǒng)超調(diào)。因?yàn)樵诒驹O(shè)計(jì)中e=-3,ec=-3

根據(jù)前面模糊化結(jié)果,此時(shí)有:

=()?[()→]

=[?(→)][?(→)]

=()===[10.500000]=[10.500000]=[10.500000]С′=(

=()?×)?R×××

對(duì)于表4-3模糊控制規(guī)則表第一行第一列的模糊控制規(guī)則:若e為NBandec為NB,則u為NB,根據(jù)表4.1和表4.2可得:

=→=→

=∧[1.00.500000]==[10.500000]=[10.500000]=[10.500000]=(→)=[1.00.500000]?=[1.00.500000]=→=→

=∧

[1.00.500000]==?(→)=[10.500000]?

=[1.00.500000]==[1.00.500000]

?按如上同樣的方法即可依次求得最終求得:

==[10.500000]四.反模糊化加權(quán)平均法FuzzyControllerDesignclearall;closeall;a=newfis('fuzzf');f1=1;a=addvar(a,'input','e',[-3*f1,3*f1]);%Parameterea=addmf(a,'input',1,'NB','zmf',[-3*f1,-1*f1]);a=addmf(a,'input',1,'NM','trimf',[-3*f1,-2*f1,0]);a=addmf(a,'input',1,'NS','trimf',[-3*f1,-1*f1,1*f1]);a=addmf(a,'input',1,'Z','trimf',[-2*f1,0,2*f1]);a=addmf(a,'input',1,'PS','trimf',[-1*f1,1*f1,3*f1]);a=addmf(a,'input',1,'PM','trimf',[0,2*f1,3*f1]);a=addmf(a,'input',1,'PB','smf',[1*f1,3*f1]);f2=1;a=addvar(a,'input','ec',[-3*f2,3*f2]);%Parametereca=addmf(a,'input',2,'NB','zmf',[-3*f2,-1*f2]);a=addmf(a,'input',2,'NM','trimf',[-3*f2,-2*f2,0]);a=addmf(a,'input',2,'NS','trimf',[-3*f2,-1*f2,1*f2]);a=addmf(a,'input',2,'Z','trimf',[-2*f2,0,2*f2]);a=addmf(a,'input',2,'PS','trimf',[-1*f2,1*f2,3*f2]);a=addmf(a,'input',2,'PM','trimf',[0,2*f2,3*f2]);a=addmf(a,'input',2,'PB','smf',[1*f2,3*f2]);f3=1.5;a=addvar(a,'output','u',[-3*f3,3*f3]);%Parameterua=addmf(a,'output',1,'NB','zmf',[-3*f3,-1*f3]);a=addmf(a,'output',1,'NM','trimf',[-3*f3,-2*f3,0]);a=addmf(a,'output',1,'NS','trimf',[-3*f3,-1*f3,1*f3]);a=addmf(a,'output',1,'Z','trimf',[-2*f3,0,2*f3]);a=addmf(a,'output',1,'PS','trimf',[-1*f3,1*f3,3*f3]);a=addmf(a,'output',1,'PM','trimf',[0,2*f3,3*f3]);a=addmf(a,'output',1,'PB','smf',[1*f3,3*f3]);rulelist=[11111;%Editrulebase12111;13211;14211;15311;16411;17411;21111;22111;23211;24311;25311;26411;27511;31211;32211;33211;34311;35411;36511;37511;

41211;42211;43311;44411;45511;46611;47611;51311;52411;53411;54511;55511;56611;57611;

61311;62411;63511;64611;65611;66611;67711;71411;72411;73611;74611;75611;76711;77711];

a=addrule(a,rulelist);注:①addrule函數(shù)有兩個(gè)變量,第一個(gè)變量a為FIS的變量名,第二個(gè)變量rulelist表示規(guī)則的矩陣。②規(guī)則列表矩陣的格式有嚴(yán)格的要求:當(dāng)模糊系統(tǒng)有m個(gè)輸入、n個(gè)輸出時(shí),規(guī)則列表矩陣為m+n+2列,前m列表示系統(tǒng)的輸入,每列的數(shù)值表示輸入變量隸屬度函數(shù)的編號(hào);接著的n列表示系統(tǒng)的輸出,每列的數(shù)值表示輸出變量隸屬度函數(shù)的編號(hào);第m+n+1的內(nèi)容為該條規(guī)則的權(quán)值(0~1);第m+n+2列的值決定模糊操作符的類型1(and),2(or)%showrule(a)%Showfuzzyrulebase-4a1=setfis(a,'DefuzzMethod','mom');%Defuzzy(注:setfis設(shè)置模糊系統(tǒng)的特性)writefis(a1,'fuzzf');%savetofuzzyfile"fuzz.fis"whichcanbesimulatedwithfuzzytool注:①writefis可將Matlab工作空間中的FIS結(jié)構(gòu)變量

fismat保存到磁盤(pán)文件中。②writefis(fismat,'filename')可直接指定文件名

filename.fis,這時(shí)不會(huì)出現(xiàn)對(duì)話框,文件保存在當(dāng)前目錄中。③writefis(fismat,'filename','dialog')可打開(kāi)對(duì)話框,并且以filename.fis為省缺文件名)。a2=readfis('fuzzf');注:①

filename格式fismat=readfis(‘filename’)表示從磁盤(pán)的.fis文件(文件名為filename)中讀取模糊推理系統(tǒng),并保存在工作空間中。②格式fismat(結(jié)構(gòu)變量)=readfis(不帶輸入變量)將打開(kāi)讀取文件的對(duì)話框,以便輸入文件名及其路徑disp('-------------------------------------------------------');disp('fuzzycontrollertable:e=[-3,+3],ec=[-3,+3]');disp('-------------------------------------------------------');Ulist=zeros(7,7);fori=1:7forj=1:7e(i)=-4+i;ec(j)=-4+j;Ulist(i,j)=evalfis([e(i),ec(j)],a2);注:①格式output=evalfis(input,fismat)表示完成模糊推理計(jì)算。其中:input指定輸入的數(shù)值或矩陣。

②fismat為要計(jì)算的FIS結(jié)構(gòu)endendUlist=ceil(Ulist)(注:ceil表示對(duì)+∞方向取整數(shù))figure(1);plotfis(a2);figure(2);plotmf(a,'input',1);figure(3);plotmf(a,'input',2);figure(4);plotmf(a,'output',1);-------------------------------------------------------fuzzycontrollertable:e=[-3,+3],ec=[-3,+3]-------------------------------------------------------Ulist=-4-4-2-2-1-10-4-2-2-1-102-2-2-1-1022-2-1-10223-1-102233-10223350223355a1=setfis(a,'DefuzzMethod',‘centroid');%Defuzzy-------------------------------------------------------fuzzycontrollertable:e=[-3,+3],ec=[-3,+3]-------------------------------------------------------Ulist=-3-2-2-1-101-2-2-2-1011-2-2-10112-1-100122-100123301223331123334一.進(jìn)入FIS編輯器在Matlab的CommandWindow窗口的提示符下,鍵入Fuzzy可打開(kāi)FIS編輯器。二.建立初步的模糊推理系統(tǒng)

在FIS編輯器的界面上所需做的工作為:

(1)首先,由于本例有2個(gè)輸入變量,因此需要添加1個(gè)輸入變量,進(jìn)行的操作為:菜單Edit→Addvariable…→Input此時(shí),系統(tǒng)便有2個(gè)輸入變量,1個(gè)輸出變量。其次,給輸入、輸出變量命名:點(diǎn)輸入框(input1或input2)或輸出框(output1),在CurrentVariable組合框的Name編輯欄內(nèi)修改變量名。本例中,input1命名為e,input2命名為ec,output命名u。(3)第三,保存系統(tǒng):菜單File→Export→ToDisk…。這里,將我們創(chuàng)建的系統(tǒng)命名為YWControl。

三.建立各變量的隸屬函數(shù)打開(kāi)隸屬函數(shù)編輯器在FIS編輯器的GUI界面上雙擊變量E(或從FIS編輯器的View下拉菜單下選擇“Editmembershipfunctions...”,或在命令行鍵入“mfedit”),打開(kāi)隸屬函數(shù)編輯器。四.打開(kāi)模糊規(guī)則編輯器

雙擊FIS編輯器上部中央表示模糊推理系統(tǒng)的“YWCONTRSYS”白色方塊(或從FIS編輯器的View下拉菜單選中“Editrules...”),將打開(kāi)模糊規(guī)則編輯器。

加入模糊控制規(guī)則選擇模糊規(guī)則編輯器左邊輸入變量E的語(yǔ)言值為NB,E

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論