模糊算法的研究和C語言實現--包宇驊_第1頁
模糊算法的研究和C語言實現--包宇驊_第2頁
模糊算法的研究和C語言實現--包宇驊_第3頁
模糊算法的研究和C語言實現--包宇驊_第4頁
模糊算法的研究和C語言實現--包宇驊_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、模糊算法的研究和C語言實現- 模糊算法是通過對現實對象的分析,處理數據并構建模糊型數學模型。用隸屬關系將數據元素集合靈活成模糊集合,確定隸屬函數,進行模糊統計多依據經驗和人的心理過程,它往往是通過心理測量來進行的,它研究的是事物本身的模糊性。 近年來,智能控制理論和方法的研究受到國內外眾多專家和學者的高度重視,并取得了許多成功的實例。目前,對于工業過程控制,實用的智能控制方法主要有兩種:專家式控制和模糊控制,它們的特點是基于“專家”經驗設計控制器,而無需考慮工業對象具體物理模型,尤其是后一種方法,由于它利用了模糊推理,已形成了一套較為規范的設計程序,且成功實例較多,故目前模糊控制算法的研究較為

2、活躍。模糊控制的特點適用于不易獲得精確數學模型的被控對象;是一種語言變量控制器;從屬于智能控制的范疇。該系統尤其適于非線性,時變,滯后系統的控制;抗干擾能力強,響應速度快,并對系統參數的變化有較強的魯棒性。模糊控制的原理把由各種傳感器測出的精確量轉換成為適于模糊運算的模糊量,然后將這些量在模糊控制器中加以運算, 最后再將運算結果中的模糊量轉換為精確量, 以便對各執行器進行具體的操作控制,在模糊控制中, 存在著一個模糊量和精確量之間相互轉化的問題。 s:系統的設定值;x1, x2:模糊控制的輸入(精確量);X1 , X2:模糊量化處理后的模糊量;U:經過模糊控制規則和近似推理后得出的模糊控制量;

3、u:經模糊判決后得到的控制量(精確量);y:對象的輸出。也可以表示成:工作步驟:輸入量模糊化、建立模糊規則、進行模糊推理、輸出量反模糊。模糊控制的優點:傳統的自動控制控制器的綜合設計都要建立在被控對象準確的數學模型(即傳遞函數模型或狀態空間模型)的基礎上,但是在實際中,很多系統的影響因素很多,油氣混合過程、缸內燃燒過程等) ,很難找出精確的數學模型。這種情況下,模糊控制的誕生就顯得意義重大。因為模糊控制不用建立數學模型不需要預先知道過程精確的數學模型。模糊算法的應用基于遺傳算法的模糊滑模控制器設計及其在直流伺服系統中的應用 滑模控制因其設計簡單,對控制對象參數變化及外擾動的不變性等優點而被廣泛

4、用于工業生產過程,尤其在伺服系統的控制中取得了成功的應用13,但是傳統滑模控制存在一個突出的缺點,即抖振。為解決這一問題出現了模糊滑模控制4,5,通過在邊界層內根據滑動模變量s的模糊量,決定控制量u,進而實現對u的“柔化”,以消弱抖動。但是上述模糊滑模控制方案難以保證邊界層內滑動模態的可達性,因而也就失去了滑模控制不變性的優點6。本文提出一種新的模糊滑模控制器設計方法,可充 分保證滑動模態的可達性。由于模糊控制量與滑模變量之間無直接對應關系,按照專家經驗采用啟發式設計方案難度較大,而且難以保證設計參數的最優性,為此,本文通過采用遺傳算法對控制器模糊項參數進行尋優設計。考慮如下動態系統x(n)=

5、f(x,,,x(n-1))+bub>0(1)其中狀態向量(x,,,x(n-1))=XT,假設f(.)=(.)+f(.)(2)其中是f的估計值,f為模型的不確定性,F是f的上界函數,即f(.)F(.)(3)為討論方便,先假設b=1,u為系統輸入,控制目標是在系統存在不確定性的情況下,使系統狀態向量跟蹤預先選定的軌跡Xr,XTr=(xr,r,,x(n-1)r)。定義誤差向量(4)于是系統(1)可以表示成如下狀態方程(5)在傳統SMC設計中,首先定義一個滑動平面(6)這里CT=(c1,c2,cn)是滑動平面系數,滿足霍爾維茲多項式,不失一般性,取cn=1。滑模控制的一個基本思想是要求通過等價控

6、制量ueq保持狀態在滑動平面上,由Te-f(xTr-eT)-u+x(n)r=0(7)這里=(0,c1,c2,cn-1),得到等價控制量ueq(8)可以保證系統狀態到達滑動平面后,保持在滑動平面上,為實現滑動模態的存在及可達,還要求存在一不連續控制分量(9)以實現s.<0,即滿足可達性條件,因此整個控制量為u=ueq+ud(10)然而,由于系統具有不確定性,ueq難以精確獲得,因此考慮不確定性后有ueq=Te-(xTr-eT)+x(n)r(11)把式(9),式(11)代入式(6)得(12)由s.<0,得ud=(F(.)+)sgn(s)>0(13)考慮一般性,b1,且b具有不確定

7、性,假設-1/b(14)其中為b的估計值,大于或等于1,那么取式(10)控制律為u=-1(ueq+ud)=eq+d(15)進而得到ud=(F(.)+)+(-1)eqsgn(s)(16)令Q=(F(.)+)+(-1)eq,由前面有關參數的定義可知Q>0,若不考慮參數的不確定性,即=1,F(.)=0,則Q=。由分析可知,Q過小將影響非滑動模態到滑動模態的過渡時間或難以滿足可達性條件;Q過大,將導致大的抖振。考慮參數不確定性,在僅知道參數上下界的情況下,會使Q取值過大,不可避免產生大的抖振。為盡量消除抖振現象,文獻4,5提出在邊界層內根據s的模糊值對Q值進行模糊調節,這一方法雖可以在邊界層內起

8、到柔化控制量u的作用,但由于參數的不確定性,對Q值的調節難以保證s.<0在邊界層內成立,因為此時沒有考慮的變化情況。本文提出一種模糊滑模控制器,該控制器根據滑模函數s及其導數的模糊值決定Q的變化量Q。當s與符號相反時Q取值小于或等于零,當s與同號時,Q適當取正以使s.<0成立。Q的模糊取值根據如下規則。RiIf s is Ai and is Bi then Qi is yi規則中Ai,Bi表示模糊集,則規則集輸出Q與模糊規則之間可通過模糊推理機建立如下關系。(17)Ri表示第i條模糊規則,m表示模糊規則數,且有i=Ai(s)Bi()(18)(19)Ai、Bi是s、的隸屬度函數,定義

9、如下(20)對i、i、i有如下定義(21)式中i0,i0,i0表示i、i、i的初值,可結合一定的經驗知識給出。從以上對模糊控制器的結構分析可以發現,s和的隸屬度函數參數i、i、i與規則輸出參數yi影響著模糊量Q的值。而由式(21)可知,在i0,i0,i0等初值給定情況下,i,i,i是由i, i決定的。所以對i, i,yi尋優即可以實現模糊控制器參數優化設計。但是僅進行參數優化設計還難以實現真正的控制器優化,因為參數優化是在模糊集劃分一定的情況下進行的,過多的模糊集劃分將造成規則冗余,冗余的模糊規則必然會占用過多的存儲空間,增大控制器決策時間。因此,對模糊集的劃分同樣需要尋優,以實現模糊控制器從

10、結構到參數的最優設計。2.柴油機轉速模糊控制的一種算法及其實現轉速模糊控制算法及實現僅考慮轉速閉環時,柴油機轉速模糊控制系統框圖如圖1 所示.圖1 中, R 為轉速給定值; Y 為系統輸出(實際轉速值) ; E = Y - R 為轉速偏差; EC 為轉速偏差的變化率; A 為E 經模糊化處理后,論域為X 的模糊集; B 為EC 經模糊化處理后,論域為Y 的模糊集; C為論域為Z 的控制量模糊集;u 為C 經模糊判決后的控制增量;u*為清晰化計算出的實際控制增量.2. 1 輸入變量的模糊化考慮到本文研究的轉速控制系統被控對象是一臺6135 型柴油機,最高轉速為1 500 r/ min ,最低穩定

11、轉速為750 r/ min ,因此X 的論域可取為 - 1 500 ,1 500 , y = - 1 500 ,1 500 . 取轉速偏差E 的論域為 - 750 ,750 ,隸屬函數取梯形2三角形式(見圖2) .轉速偏差的語言變量E 在X 中取11 個語言值. 由圖2 可見,每個模糊子集均可用以下兩式表示:( x) = ax + b (1)( x ) = - cx + d (2)顯然,對任意轉速偏差輸入,在進行模糊化過程中,只屬于兩個模糊子集,對其它模糊子集的隸屬度為零,如此處理可簡化計算,減少內存和時間開銷. 其中,轉速偏差分為5 個區域,即0 , 10 , 10 , 110 ,110 ,

12、210 , 210 ,310 , 310 ,750 ,每個區域的隸屬度按(1) 式和(2) 式計算,區別僅在于系數a , b , c , d各不相同,由于( x) 軸的左半部曲線與右半部取為完全軸對稱,因此當轉速偏差為負值時,其計算程序上與上述程序相同.2. 2 模糊規則及模糊推理考慮最簡單的情況,模糊控制器采用一維結構時,其控制規則如下:If E is ZE then u is ZEIf E is PS then u is PSIf E is PM then u is PMIf E is PB then u is PBIf E is PVB then u is PVB其中: u 為模糊控制量

13、的增量值, 當轉速偏差E 為負值時, 規則同上, 只是u 的符號相應改變(u的符號與E 的符號一致) ; ZE ,S ,M ,B ,VB 分別表示輸出增量u 為“零, 小, 中等, 大, 很大”, P 表示“Positive”,N 表示“Negative”.由以上分析可見,雖然模糊控制規則共有9 條,但由于轉速偏差E 符號不同時,其控制規則是對稱的,因此在實施模糊推理時,只用到了5 條規則. 此外,由于任意轉速偏差E 只可能屬于兩個模糊子集,因此在實際運算時,對應每個采樣周期的轉速偏差輸入只可能激活兩條規則,這樣處理的結果是大大簡化了計算,保證了實時控制對微處理器運算速度的需要.模糊推理采用近

14、似推理法則. 對于一條被激活的規則, 控制增量u 的隸屬度按Mamdani 合成推理方法計算,即由于此處只考慮轉速誤差E 作為模糊輸入變量,因此輸出增量u 的隸屬度與輸入變量的隸屬度相同.2. 3 清晰化計算對應于每個采集周期的轉速偏差值E ,由上述模糊決策過程激活2 條控制規則(當E 小于10 r/min 時僅激活一條規則) , 并可求出每條規則中模糊輸出增量u 的隸屬度值. u*的隸屬函數取單值線函數, 即一系列的離散值(見圖3) .輸出控制量是執行器閉環控制的給定值, 其論域為0 , 100 % , 則輸出增量u*的論域取值為 - 100 % ,100 % .對于求出的模糊輸出增量,采用

15、重心法計算其精確輸出增量值,即:當采用一維模糊控制器時,對于上述的輸入變量模糊隸屬度函數的模糊推理方法,不難證明因此上式的計算量很小,易于在單片機中實現.結論在以80C196 KC 嵌入式16 位單片機為核心的柴油機數字調速系統中,根據上述算法設計了控制軟件,并在6135 型柴油機上進行了實機試驗. 圖4 和圖5 表示了柴油機低速空車接排時轉速和齒桿位移變化的動態過程. 由圖可見,在接排的瞬間,柴油機的轉速急劇下降,與此同時,齒桿位移量幾乎是呈直線增加到100 % ,說明控制器控制動作的快速性已達到極限. 事實上,通過一系列性能測試,以本文提出的模糊控制算法為基本控制策略的柴油機轉速控制系統具

16、有良好的動態性能,但若僅采用模糊控制,系統的穩態性能達不到一級調速精度. 可采用多種控制策略來改善系統的穩態性能,其中Fuzzy- PID 復合控制是提高系統控制精度的有效途徑。模糊控制算法的C語言實現#include <stdio.h>#include"math.h" #define PMAX    100    #define PMIN    -100   #define DMAX    100  &

17、#160;  #define DMIN    -100           #define FMAX    100       /*語言值的滿幅值*/ int PFF4=0,12,24,48;/*輸入量D語言值特征點*/ int DFF4=0,16,32,64;/*輸出量U語言值特征點*/ int UFF7=0,15,30,45,60,75,90;/*采用了調整因子的

18、規則表,大誤差時偏重誤差,小誤差時偏重誤差變化*/ /*a0=0.3,a1=0.55,a2=0.74,a3=0.89   */   int rule77= /誤差變化率 -3,-2,-1, 0, 1, 2, 3     / 誤差           -6,-6,-6,-5,-5,-5,-4,   /   -3       

19、60; -5,-4,-4,-3,-2,-2,-1,   /   -2       -4,-3,-2,-1, 0, 1, 2,   /   -1       -4,-3,-1, 0, 1, 3, 4,   /    0       -2,-1, 0, 1, 2, 3, 4,   / 

20、0;  1       1, 2, 2, 3, 4, 4, 5,   /    2       4, 5, 5, 5, 6, 6, 6;   /    3/*/int   Fuzzy(int P,int D)   /*模糊運算引擎*/ int    U;     

21、60;     /*偏差,偏差微分以及輸出值的精確量*/ unsigned int   PF2,DF2,UF4;   /*偏差,偏差微分以及輸出值的隸屬度*/ int    Pn,Dn,Un4; long   temp1,temp2;       /*隸屬度的確定*/ /*根據PD的指定語言值獲得有效隸屬度*/ if(P>-PFF3 && P<PFF3)   

22、  if(P<=-PFF2)        Pn=-2;   PF0=FMAX*(float)(-PFF2-P)/(PFF3-PFF2);     else if(P<=-PFF1)          Pn=-1;    PF0=FMAX*(float)(-PFF1-P)/(PFF2-PFF1);       els

23、e if(P<=PFF0)          Pn=0;    PF0=FMAX*(float)(-PFF0-P)/(PFF1-PFF0);       else if(P<=PFF1)          Pn=1; PF0=FMAX*(float)(PFF1-P)/(PFF1-PFF0);       else i

24、f(P<=PFF2)        Pn=2; PF0=FMAX*(float)(PFF2-P)/(PFF2-PFF1);       else if(P<=PFF3)          Pn=3; PF0=FMAX*(float)(PFF3-P)/(PFF3-PFF2);             

25、;            else if(P<=-PFF3)          Pn=-2;   PF0=FMAX;   else if(P>=PFF3)          Pn=3;   PF0=0;   PF1=FMAX-PF0;  if(D&

26、gt;-DFF3 && D<DFF3)     if(D<=-DFF2)        Dn=-2;DF0=FMAX*(float)(-DFF2-D)/(DFF3-DFF2);     else if(D<=-DFF1)          Dn=-1;    DF0=FMAX*(float)(-DFF1-D)/(DFF2-DFF1); 

27、;      else if(D<=DFF0)          Dn=0;     DF0=FMAX*(float)(-DFF0-D)/(DFF1-DFF0);       else if(D<=DFF1)          Dn=1;    DF0=FMAX*(float)(DFF1-D)/(

28、DFF1-DFF0);       else if(D<=DFF2)          Dn=2; DF0=FMAX*(float)(DFF2-D)/(DFF2-DFF1);       else if(D<=DFF3)          Dn=3; DF0=FMAX*(float)(DFF3-D)/(DFF3-DFF2);  

29、;        else if(D<=-DFF3)          Dn=-2;     DF0=FMAX;   else if(D>=DFF3)         Dn=3;   DF0=0;   DF1=FMAX-DF0;/*使用誤差范圍優化后的規則表rule77*/ /*輸出值使用13個隸屬函數,中心值由UF

30、F7指定*/ /*一般都是四個規則有效*/ Un0=rulePn-1+3Dn-1+3; Un1=rulePn+3Dn-1+3; Un2=rulePn-1+3Dn+3;   Un3=rulePn+3Dn+3; if(PF0<=DF0)   UF0=PF0;else    UF0=DF0; if(PF1<=DF0)   UF1=PF1;else    UF1=DF0; if(PF0<=DF1)   UF2=PF0; else    UF2=D

31、F1; if(PF1<=DF1)   UF3=PF1; else    UF3=DF1;/*同隸屬函數輸出語言值求大*/    if(Un0=Un1)   if(UF0>UF1)    UF1=0;   else     UF0=0; if(Un0=Un2)   if(UF0>UF2)    UF2=0;   else   

32、60; UF0=0; if(Un0=Un3)   if(UF0>UF3)    UF3=0;   else    UF0=0; if(Un1=Un2)   if(UF1>UF2)    UF2=0;   else    UF1=0; if(Un1=Un3)   if(UF1>UF3)    UF3=0;   e

33、lse     UF1=0; if(Un2=Un3)   if(UF2>UF3)    UF3=0;   else     UF2=0; /*重心法反模糊*/ /*Un原值為輸出隸屬函數標號,轉換為隸屬函數值*/ if(Un0>=0)   Un0=UFFUn0;else    Un0=-UFF-Un0; if(Un1>=0)   Un1=UFFUn1;else    Un1=-UFF-Un1; if(Un2>=0)   Un2=UFFUn2;else &#

溫馨提示

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

評論

0/150

提交評論