模糊控制算法c程序_第1頁(yè)
模糊控制算法c程序_第2頁(yè)
模糊控制算法c程序_第3頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、由于項(xiàng)目需要,需要模糊控制算法,之前此類(lèi)知識(shí)為 0,經(jīng)過(guò)半個(gè)多月 的研究, 終于有的小進(jìn)展。 開(kāi)始想從強(qiáng)大的互聯(lián)網(wǎng)上搜點(diǎn) c 代碼來(lái)研究下, 結(jié)果 搜遍所有搜索引擎都搜不到, 以下本人從修改的模糊控制代碼, 經(jīng)過(guò)自己修改后 可在 vc6.0 ,運(yùn)行!輸入 e 表示輸出誤差, ec 表示誤差變化率,經(jīng)過(guò)測(cè)試具有很 好的控制效果,對(duì)于非線性系統(tǒng)和數(shù)學(xué)模型難以建立的系統(tǒng)來(lái)說(shuō)有更好的控制效 果!現(xiàn)將其公開(kāi)供大家學(xué)習(xí)研究!#include <stdio.h>#include"math.h"#define PMAX100#define PMIN-100#define DMA

2、X100#define DMIN-100#define FMAX100/* 語(yǔ)言值的滿(mǎn)幅值 */int PFF4=0,12,24,48;/*輸入量D語(yǔ)言值特征點(diǎn)*/int DFF4=0,16,32,64;/* 輸出量 U 語(yǔ)言值特征點(diǎn) */int UFF7=0,15,30,45,60,75,90;/* 采用了調(diào)整因子的規(guī)則表 ,大誤差時(shí)偏重誤差 ,小誤差時(shí)偏重誤差變化 */*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-5,-4,-4

3、,-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, / 1 1, 2, 2, 3, 4, 4, 5, / 2 4, 5, 5, 5, 6, 6, 6; / 3int Fuzzy(int P,int D) /* 模糊運(yùn)算引擎 */int U; /* 偏差 ,偏差微分以及輸出值的精確量 */unsigned int PF2,DF2,UF4; /* 偏差 ,偏差微分以及輸出值的隸屬度 */int Pn,Dn,Un4;long temp1,temp2;/*隸屬度的確定 */*

4、根據(jù)PD的指定語(yǔ)言值獲得有效隸屬度*/if(P>-PFF3 && P<PFF3)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);Pn=0;PF0=FMAX*(float)(-PFF0-P)/(PFF1-PFF0);else if(P<=PFF1)Pn=1; PF0=FMAX*(float)(PFF1-P)/(PFF1-PFF0);else if(P<=PFF2

5、)Pn=2; PF0=FMAX*(float)(PFF2-P)/(PFF2-PFF1);else if(P<=PFF3)Pn=3; PF0=FMAX*(float)(PFF3-P)/(PFF3-PFF2);else if(P<=-PFF3)Pn=-2; PF0=FMAX;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<=-DFF1)Dn=-1;DF0=FMAX*(flo

6、at)(-DFF1-D)/(DFF2-DFF1);else if(D<=DFF0)Dn=0;DF0=FMAX*(float)(-DFF0-D)/(DFF1-DFF0);else if(D<=DFF1)Dn=1;DF0=FMAX*(float)(DFF1-D)/(DFF1-DFF0);Dn=2; DF0=FMAX*(float)(DFF2-D)/(DFF2-DFF1);else if(D<=DFF3)Dn=3; DF0=FMAX*(float)(DFF3-D)/(DFF3-DFF2);else if(D<=-DFF3)Dn=-2;DF0=FMAX;else if(D>

7、;=DFF3)Dn=3;DF0=0;DF1=FMAX-DF0;/* 使用誤差范圍優(yōu)化后的規(guī)則表 rule77*/*輸出值使用13個(gè)隸屬函數(shù),中心值由UFF7指定*/ /* 一般都是四個(gè)規(guī)則有效 */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;elseUF0=DF0;if(PF1<=DF0)UF1=PF1;elseUF1=DF0;if(PF0<=DF1)UF2=PF0;elseUF2=DF1;if(PF1<=DF1)UF3=P

8、F1;elseUF3=DF1;整理文本/* 同隸屬函數(shù)輸出語(yǔ)言值求大 */if(Un0=Un1)if(UF0>UF1)UF1=0;elseUF0=0;if(Un0=Un2)if(UF0>UF2)UF2=0;elseUF0=0;if(Un0=Un3)if(UF0>UF3)UF3=0;elseUF0=0; if(Un1=Un2)if(UF1>UF2)UF2=0;elseUF1=0; if(Un1=Un3)if(UF1>UF3)UF3=0;elseUF1=0; if(Un2=Un3)if(UF2>UF3)UF3=0;elseUF2=0;/* 重心法反模糊 */*U

9、n 原值為輸出隸屬函數(shù)標(biāo)號(hào),轉(zhuǎn)換為隸屬函數(shù)值 */ if(Un0>=0)Un0=UFFUn0;elseUn0=-UFF-Un0;if(Un1>=0)Un1=UFFUn1;elseUn1=-UFF-Un1;if(Un2>=0)Un2=UFFUn2;elseUn2=-UFF-Un2;if(Un3>=0)Un3=UFFUn3;elseUn3=-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;/*i

10、nt nowpoint,p1,p2=1;FILE *in,*out;in=fopen("in.txt","r");out=fopen("out.txt","w");*/while(!feof(in)while(1)/fscanf(in,"%d",&nowpoint);/p1=nowpoint;/e=0-nowpoint;/ec= p1-p2;printf(" 請(qǐng)輸入 e:");scanf("%d",&e);printf(" 請(qǐng)輸入 ec:");scanf("%d",&ec);a=Fuzzy(e,ec);/fprintf(out,"%d ",a);

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論