模糊控制算法c程序_第1頁
模糊控制算法c程序_第2頁
模糊控制算法c程序_第3頁
模糊控制算法c程序_第4頁
模糊控制算法c程序_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上    由于項目需要,需要模糊控制算法,之前此類知識為0,經過半個多月的研究,終于有的小進展。開始想從強大的互聯網上搜點c代碼來研究下,結果搜遍所有搜索引擎都搜不到,以下本人從修改的模糊控制代碼,經過自己修改后可在vc6.0,運行!輸入e表示輸出誤差,ec表示誤差變化率,經過測試具有很好的控制效果,對于非線性系統和數學模型難以建立的系統來說有更好的控制效果!現將其公開供大家學習研究!#include <stdio.h>#include"math.h" #define PMAX  

2、0; 100    #define PMIN    -100   #define DMAX    100     #define DMIN    -100           #define FMAX    100       /

3、*語言值的滿幅值*/ int PFF4=0,12,24,48;/*輸入量D語言值特征點*/ int DFF4=0,16,32,64;/*輸出量U語言值特征點*/ int UFF7=0,15,30,45,60,75,90;/*采用了調整因子的規則表,大誤差時偏重誤差,小誤差時偏重誤差變化*/ /*a0=0.3,a1=0.55,a2=0.74,a3=0.89   */   int rule77= /誤差變化率 -3,-2,-1, 0, 1, 2, 3     / 誤差     &

4、#160;     -6,-6,-6,-5,-5,-5,-4,   /   -3         -5,-4,-4,-3,-2,-2,-1,   /   -2       -4,-3,-2,-1, 0, 1, 2,   /   -1       -4,-3,-1, 0,

5、 1, 3, 4,   /    0       -2,-1, 0, 1, 2, 3, 4,   /    1       1, 2, 2, 3, 4, 4, 5,   /    2       4, 5, 5, 5, 6, 6, 6;   /   

6、 3/*/int   Fuzzy(int P,int D)   /*模糊運算引擎*/ int    U;           /*偏差,偏差微分以及輸出值的精確量*/ unsigned int   PF2,DF2,UF4;   /*偏差,偏差微分以及輸出值的隸屬度*/ int    Pn,Dn,Un4; long   temp1,temp

7、2;       /*隸屬度的確定*/ /*根據PD的指定語言值獲得有效隸屬度*/ if(P>-PFF3 && P<PFF3)     if(P<=-PFF2)        Pn=-2;   PF0=FMAX*(float)(-PFF2-P)/(PFF3-PFF2);     else if(P<=-PFF1)    

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

9、         Pn=1; PF0=FMAX*(float)(PFF1-P)/(PFF1-PFF0);       else if(P<=PFF2)        Pn=2; PF0=FMAX*(float)(PFF2-P)/(PFF2-PFF1);       else if(P<=PFF3)        &#

10、160; Pn=3; PF0=FMAX*(float)(PFF3-P)/(PFF3-PFF2);                         else if(P<=-PFF3)          Pn=-2;   PF0=FMAX;   else if(P&g

11、t;=PFF3)          Pn=3;   PF0=0;   PF1=FMAX-PF0;  if(D>-DFF3 && D<DFF3)     if(D<=-DFF2)        Dn=-2;DF0=FMAX*(float)(-DFF2-D)/(DFF3-DFF2);     else if(D<

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

13、#160; else if(D<=DFF1)          Dn=1;    DF0=FMAX*(float)(DFF1-D)/(DFF1-DFF0);       else if(D<=DFF2)          Dn=2; DF0=FMAX*(float)(DFF2-D)/(DFF2-DFF1);      

14、; else if(D<=DFF3)          Dn=3; DF0=FMAX*(float)(DFF3-D)/(DFF3-DFF2);          else if(D<=-DFF3)          Dn=-2;     DF0=FMAX;   else if(D>=DFF3)   &

15、#160;     Dn=3;   DF0=0;   DF1=FMAX-DF0;/*使用誤差范圍優化后的規則表rule77*/ /*輸出值使用13個隸屬函數,中心值由UFF7指定*/ /*一般都是四個規則有效*/ 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(

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

17、160;   UF0=0; if(Un0=Un2)   if(UF0>UF2)    UF2=0;   else     UF0=0; if(Un0=Un3)   if(UF0>UF3)    UF3=0;   else    UF0=0; if(Un1=Un2)   if(UF1>UF2)    UF2=0;

18、   else    UF1=0; if(Un1=Un3)   if(UF1>UF3)    UF3=0;   else     UF1=0; if(Un2=Un3)   if(UF2>UF3)    UF3=0;   else     UF2=0; /*重心法反模糊*/ /*Un原值為輸出隸屬函數標號,轉換為隸屬函數值*/ if(Un

19、0>=0)   Un0=UFFUn0;else    Un0=-UFF-Un0; if(Un1>=0)   Un1=UFFUn1;else    Un1=-UFF-Un1; if(Un2>=0)   Un2=UFFUn2;else   Un2=-UFF-Un2; if(Un3>=0)   Un3=UFFUn3;else    Un3=-UFF-Un3;    temp1=UF0*Un0+UF1*Un1+UF2*Un2+UF3*Un3; temp2=UF0+UF1+UF2+UF3; U=temp1/temp2;return U; void main() int a=0,e,ec;/*int nowpoint,p1,p2=1;FILE *in,*out;in=fopen("in.txt","r");out=fopen("out.txt","w");*/while(!feof(in)while(1)     /fscanf(in,"

溫馨提示

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

最新文檔

評論

0/150

提交評論