雙容水箱液位模糊控制_第1頁(yè)
雙容水箱液位模糊控制_第2頁(yè)
雙容水箱液位模糊控制_第3頁(yè)
雙容水箱液位模糊控制_第4頁(yè)
雙容水箱液位模糊控制_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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)介

1、雙容水箱液位模糊控制一、實(shí)驗(yàn)?zāi)康?    熟悉雙容液位控制系統(tǒng)的組成原理。    通過(guò)實(shí)驗(yàn)進(jìn)一步掌握模糊控制原理及模糊控制規(guī)則的生成。    了解量化因子和比例因子對(duì)控制效果的影響。    掌握解模糊方法及實(shí)現(xiàn)。二、實(shí)驗(yàn)設(shè)備 實(shí)驗(yàn)對(duì)雙象為TKGK-1雙容液位系統(tǒng)TKGK-1型實(shí)驗(yàn)裝置:GK-06、GK-07-2    萬(wàn)用表一只    計(jì)算機(jī)系統(tǒng)三、實(shí)驗(yàn)原理圖1 雙容

2、水箱液位模糊控制系統(tǒng)方框圖    圖1為雙容水箱液位控制系統(tǒng)??刂频哪康氖鞘瓜滤涞囊何坏扔诮o定值,并能克服來(lái)自系統(tǒng)內(nèi)部和外部擾動(dòng)的影響。雙容水箱液位系統(tǒng)如圖2,該被控對(duì)象具有非線性和時(shí)滯性,建立精確的數(shù)學(xué)模型比較困難;模糊控制不僅可以避開(kāi)復(fù)雜的數(shù)學(xué)模型,通常還能得到比較好性能指標(biāo)。模糊控制器的結(jié)構(gòu)圖如圖3。    模糊控制器的輸入為誤差和誤差變化率:誤差e=r-y,誤差變化率ec=de/dt,其中r和y分別為液位的給定值和測(cè)量值。把誤差和誤差變化率的精確值進(jìn)行模糊化變成模糊量E和EC,從而得到誤差E和誤差變化率E

3、C的模糊語(yǔ)言集合,然后由E和EC模糊語(yǔ)言的的子集和模糊控制規(guī)則R(模糊關(guān)系矩陣)根據(jù)合成推理規(guī)則進(jìn)行模糊決策,這樣就可以得到模糊控制向量U,最后再把模糊量解模糊轉(zhuǎn)換為精確量u,再經(jīng)D/A轉(zhuǎn)換為模擬量去控制執(zhí)行機(jī)構(gòu)動(dòng)作。圖3 模糊控制器組成原理圖模糊量化:根據(jù)精確量實(shí)際變化范圍a,b,合理選擇模糊變量的論域?yàn)?n,n,通過(guò)量化因子k=,將其轉(zhuǎn)換成若干等級(jí)的離散論域,如七個(gè)等級(jí)為負(fù)大,負(fù)中,負(fù)小,零,正小,正中,正大,簡(jiǎn)寫(xiě)為NB,NM,NS,O,PS,PM,PB。確定模糊子集的隸屬函數(shù)曲線。一般常采用三角形、梯形和正態(tài)分布等幾種曲線。然后由隸屬函數(shù)曲線得出模糊變量E、EC、U的賦值表。  

4、;   根據(jù)經(jīng)驗(yàn),E模糊子集的隸數(shù)度函數(shù)取正態(tài)分布曲線,則賦值表見(jiàn)表一:表一:變量E隸屬函數(shù)賦值表 E -6-5-4-3-2-10123456NBNMNSOPSPMPB1.00.3000000.70.60.100000.41.00.200000.20.60.500000.10.31.00.100000.10.50.40.100000.21.00.200000.10.40.50.100000.11.00.30.100000.50.60.200000.21.00.400000.10.60.7000000.31.0模糊控制規(guī)則:模糊控制規(guī)則是操作經(jīng)驗(yàn)和專家知識(shí)的總結(jié),是

5、進(jìn)行模糊推理的依據(jù)。在設(shè)計(jì)模糊控制規(guī)則時(shí),必須考慮控制規(guī)則的完備性、交叉性和一致性。既保證對(duì)于任意給定的輸入,均有相應(yīng)的控制規(guī)則起作用;控制器的輸出值總是由數(shù)條控制規(guī)則來(lái)決定;控制規(guī)則中不存在相互矛盾的規(guī)則。在總結(jié)專家經(jīng)驗(yàn)和過(guò)程知識(shí)的基礎(chǔ)上,可以得到如表二的控制規(guī)則表:     模糊推理:模糊推理是模糊控制器的核心,模糊控制系統(tǒng)目前常采用的有:CRI推理的查表法、CRI推理的解析法、Mamdani直接推理法、后件函數(shù)法等。本實(shí)驗(yàn)可采用Mamdani直接推理法。Mamdani推理法是先求出模糊關(guān)系R,再根據(jù)輸入求出控制量,把控制量清晰化,可得控制查詢表.&

6、#160;    本試驗(yàn)設(shè)計(jì)了容量為7×7條控制規(guī)則表,這個(gè)規(guī)則表可以用27條模糊條件語(yǔ)句來(lái)描述:     如:if El=NB and Ef=NB then U=PS,對(duì)應(yīng)的模糊關(guān)系:R1=A1×B1×C5    根據(jù)Ri(i=1,2,27)可以得到綜合模糊矩陣R。如下計(jì)算模糊關(guān)系矩陣R:    R=R1R2R27     E和EC對(duì)應(yīng)的模糊變量為和,此時(shí)可由下式求

7、出:U*=( A* ×B*)R    式中: 表示求合成運(yùn)算.    解模糊:可采用常用的重心法進(jìn)行解模糊運(yùn)算。表二 控制規(guī)則表  NB NM NS O PS PM PBNBNMNSOPSPMPBPSNSNMNBNBNBNBPSPSNSNMNMNBNBPSPSONSNSNMNMPSPSOOONSNSPMPMPSPSONSNSPBPMPMPMPSPSNSPBPBPMPMPMPSNS四、實(shí)驗(yàn)步驟     1.

8、按圖1連成控制系統(tǒng)圖。其中被控對(duì)象為下水箱,被控制量為液位高度,控制器由計(jì)算機(jī)系統(tǒng)組成,接口的驅(qū)動(dòng)已在“計(jì)算機(jī)控制系統(tǒng)”試驗(yàn)中完成,這里不再贅述。    2.啟動(dòng)工藝流程并開(kāi)啟相關(guān)儀器,調(diào)整傳感器輸出的零點(diǎn)與增益。    3.運(yùn)行模糊控制程序,并輸入?yún)?shù),記錄試驗(yàn)數(shù)據(jù)和控制曲線。     4.修改模糊控制規(guī)則,重復(fù)步驟3。     5.待系統(tǒng)穩(wěn)定后,加手動(dòng)擾動(dòng),觀察系統(tǒng)的動(dòng)態(tài)變化,并記錄結(jié)果。 五、實(shí)驗(yàn)報(bào)告要求     1.給出模糊控制器的設(shè)計(jì)過(guò)

9、程和程序清單    2.建立EC的隸數(shù)度函數(shù)賦值表     3.建立控制查詢表     4.記錄試驗(yàn)數(shù)據(jù)和曲線     5.分析試驗(yàn)結(jié)果 六、思考題     1如果輸入變量離散論域分為五個(gè)等級(jí),對(duì)計(jì)算和控制效果有什么影響?     2模糊控制達(dá)到穩(wěn)態(tài)后,靜差是否為零?為什么?附:雙容水箱液位模糊控制的C語(yǔ)言程序#include "graphics.h"#include &quo

10、t;conio.h"#include "math.h"#include "time.h"#include "stddef.h"#include "dos.h"#include "stdio.h" #include "process.h" #include "bios.h"int sampt,key,v;static float cy600,cx600,cs6;float datain,u,u1,e2,xset,i,Ku;time_t start,

11、end; unsigned char dat6,data_in54;unsigned char stat,data,data1;int i1,j1;main( )int j,m,ntr,T,NUM;float adin( ),fuzzycontrol(),max,tr,t0;void daout( ),wct( ),wtp( ),wait( );int gdriver,gmode,kk;float x1,x2,x3;char *t="sampled value:","seted value:"char *tt1="L","t

12、" gdriver=VGA;gmode=VGAHI;initgraph(&gdriver,&gmode,"d:tc");wait(); /*com init*/ outportb(0x3fb,0x80); /*SETB 0x3fb.7=1*/outportb(0x3f8,0x0C); /* LSB=0CH BPS=9600*/outportb(0x3f9,0x00); /* MSB=00H*/outportb(0x3fb,0x03); /* 8DATA 1STOP NO*/outportb(0x3fc,0x03); /*SETB DTR=0 RTS

13、=0*/outportb(0x3f9,0x00); /*SET IE=0*/star: inportb(0x3f8);while(!(0x20&inportb(0x3fd)=0x20); f_f5:while(!(0x20&inportb(0x3fd)=0x20);outportb(0x3f8,0x66);while(!(inportb(0x3fd)&0x01);data1=inportb(0x3f8);while(!(inportb(0x3fd)&0x01);data=inportb(0x3f8);if(data!=0x35) goto star; a_d:w

14、hile(!(0x20&inportb(0x3fd)=0x20);outportb(0x3f8,0x61);while(!(inportb(0x3fd)&0x01);data=inportb(0x3f8);if(data!=0x64) exit(1); adin( );daout(0);printf("Please Input.n");printf("nSampt(3,4,5,6)=");scanf("%d",&sampt);printf("nXset=");scanf("%f&q

15、uot;,&xset); printf("nKu=");scanf("%f",&Ku);NUM=500;setviewport(0,0,640,350,0);clearviewport( );setbkcolor(3);setcolor(1);cleardevice();settextjustify(LEFT_TEXT,TOP_TEXT);settextstyle(1,0,2);settextjustify(0,2);settextstyle (0,0,1);outtextxy(410,20,t1);outtextxy(410,40,t0

16、);line(37,85,40,80);line(43,85,40,80);line(585,287,590,290);line(585,293,590,290); for (j=1;j<9;j+) line(40,290-j*25,45,290-j*25);line(40+j*50,285,40+j*50,290); line(490,285,490,290);line(540,285,540,290);setlinestyle(0,0,3);line(40,80,40,295);line(35,290,590,290);settextjustify(0,2);settextstyle

17、(1,0,1);outtextxy(25,70,tt10);outtextxy(590,290,tt11);setcolor(4);setlinestyle(0,0,1);line(536,48,558,48);wct(3,200.,14,88);wct(3,150.,14,138);wct(3,100.,14,188);wct(3,xset*10.,14,288-(int)(xset*10.);wct(3,50.,14,238);wct(3,100.,135,300);wct(3,200.,235,300);wct(3,300.,335,300);wct(3,400.,435,300);wc

18、t(3,500.,535,300);wtp("Xset=",xset,5,23);wtp("Ku=",Ku,25,23);/*wtp("I=",ki,45,23);wtp("D=",kd,60,23);*/max=0.0;ntr=0;for(i=0;i<NUM;i+) cxi=xset; start=time(NULL);t0=i*sampt;x1=adin();x2=adin();x3=adin();cyi=(x1+x2+x3)/3;e2=xset-cyi;u=fuzzycontrol(e2);daout(

19、int)(u);putpixel(42+i,290-cxi*10,62); putpixel(42+i,290-cyi*10,4);putpixel(42+i,290-u*0.29,1);wtp("cyi=",cyi,5,21);wtp("Time=",t0,60,21);wtp("u=",u,45,21);wtp("Num=",i+1.0,25,21); if (i>=2) if(cyi>max) max=cyi; wtp("max=",max,5,25); if(ntr=0) i

20、f(cyi>=xset) tr=i*sampt; wtp("tr=",tr,25,25); ntr=1; if(kbhit()!=0) key=bioskey(0); key=(key>>8)&0xff; if(key=44) goto loop2; loop1: end=time(NULL);if(difftime(end,start)<sampt) goto loop1; getch();loop2:daout(0);outportb(0x3fc,0x01);closegraph(); exit(0);float adin ( ) b_d

21、:while(!(0x20&inportb(0x3fd)=0x20);outportb(0x3f8,0x62);while(!(inportb(0x3fd)&0x01);data=inportb(0x3f8);for(i1=0;i1<5;i1+) for(j1=0;j1<4;j1+) while(!(inportb(0x3fd)&0x01); data_ini1j1=inportb(0x3f8); for(i1=0;i1<5;i1+) for(j1=0;j1<4;j1+) data_ini1j1=data_ini1j1-0x30; if(data

22、!=0x64) goto b_d;datain=data_in00*10+data_in01+data_in02*0.1+data_in03*0.01;return(datain); float fuzzycontrol(e2)float e2;float Xec,Yu,e20,Ke,Kec;int E,EC,U,a1313;int m0=6,n=6; int out1313= 7, 7, 7, 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 7, 6, 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 6, 5, 4, 4, 4, 4, 4, 4, 4, 4

23、, 4, 4, 6, 5, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 5, 4, 4, 4, 4, 4, 4, 2, 0, 0, 0, 0, 0, 4, 4, 4, 2, 2, 2, 2, 2, 0, 1, 1, 1, 1, 4, 4, 4, 2, 0, 0, 0, 0, 0,-1, 1, 1, 1, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,-1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2, 1, 1, 1, 2, 2, 2,

24、2, 2, 2, 2, 2, -2, -2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, -2, -2, -2, 4, 4, 4, 4, 4, 4, 4, 4, 0, -2, -2, -2, -2; e20=xset-cyi-1;Xec=(e2-e20)/sampt;Ke=n/2;Kec=m0/1; if(e2>2) e2=2; if(e2<-2) e2=-2;if(Xec>1) Xec=1;if(Xec<-1) Xec=-1;E=Ke*e2;EC=Kec*Xec; U=outE+6EC+6; /*printf("U=%d",U);*

25、/ Yu=Ku*U; if(Yu>255.0) Yu=255.0; if(Yu<-255.0) Yu=-255.0; /*printf("Yu=%f",Yu);*/ /*Yu=abs(Yu)*/; return(Yu); void daout(x)int x;int x1,x2,x3;c_d:x1=(int)(x/100.0);x2=(int)(x-x1*100)/10.0);x3=(int)(x-x1*100-x2*10);dat0=x1;dat1=x2;dat2=x3;dat3=0;dat4=0;dat5=0;for(i1=0;i1<6;i1+) dati1=dati1+0x30;while(!(0x20&inportb(0x3fd)=0x20);outportb(0x3f8,0x63);while(!(inportb(0x3fd)&0x01);data=inportb(0x3f8);if(data!=0x64) exit(1);while(!(0x20&inportb(0x3fd)=0x20);outportb(0x3f8,0x64);for(i1=0;i1<6;i1+) while(!(0x20&inportb(0x3fd)=0x20); outportb(0x3f8,dati1

溫馨提示

  • 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)論