資源簡介
根據偏差與斜率構建模糊規則表,確定P,D參數,用于舵機轉向與電機控速。獲得智能車國一
代碼片段和文件信息
#include?“include.h“
/******此處將P改為中線的err?,D改為中線的斜率即可*********/
float?Fuzzy(float?Pfloat?D)
{
/*輸入量P語言值特征點*/?
float?PFF[7]={-15-10-5051015};
/*輸入量D語言值特征點*/?
float?DFF[5]={-13-60613};
/*輸出量U語言值特征點(根據賽道類型選擇不同的輸出值)*/
float?UFF[7]={01520355080120};
int?rule[7][5]={
//??-2??-1???0???1???2?ec????e
??{?1??1??1??0??0}?//??-3
??{?4??2??1??0??0}?//??-2
??{?6??4??1??1??0}?//??-1
??{?3??3??0??3??3}?//???0
??{?0??1??1??4??6}?//???1
??{?0??0??1??2??4}?//???2
??{?0??0??1??1??1}??//???3
};
float?U=0;??/*偏差偏差微分以及輸出值的精確量*/?
float?PF[2]={0}DF[2]={0}UF[4]={0};
?/*偏差偏差微分以及輸出值的隸屬度*/?
int?Pn=0Dn=0Un[4]={0};
float?t1=0t2=0t3=0t4=0temp1=0temp2=0;
/*隸屬度的確定*/?
/*根據PD的指定語言值獲得有效隸屬度*/?
?if(P>PFF[0]?&&?P {
?if(P<=PFF[1])
?{
??Pn=-2;
??PF[0]=(PFF[1]-P)/(PFF[1]-PFF[0]);
?}
?else?if(P<=PFF[2])
?{
??Pn=-1;
??PF[0]=(PFF[2]-P)/(PFF[2]-PFF[1]);
?}
?else?if(P<=PFF[3])
?{
??Pn=0;
??PF[0]=(PFF[3]-P)/(PFF[3]-PFF[2]);
?}
?else?if(P<=PFF[4])
?{
??Pn=1;
??PF[0]=(PFF[4]-P)/(PFF[4]-PFF[3]);
?}
?else?if(P<=PFF[5])
?{
??Pn=2;
??PF[0]=(PFF[5]-P)/(PFF[5]-PFF[4]);
?}
?else?if(P<=PFF[6])
?{
??Pn=3;
??PF[0]=(PFF[6]-P)/(PFF[6]-PFF[5]);
?}
}
?
?else?if(P<=PFF[0])
?{
??Pn=-2;
??PF[0]=1;
?}
?else?if(P>=PFF[6])
?{
??Pn=3;
??PF[0]=0;
?}
PF[1]=1-PF[0];
//判斷D的隸屬度
?if(D>DFF[0]&&D ?{
??if(D<=DFF[1])
??{
???Dn=-2;
???DF[0]=(DFF[1]-D)/(DFF[1]-DFF[0]);
??}
- 上一篇:中國聯通光纖分布系統網管技術規范V2.0
- 下一篇:操作系統期末試卷與答案
評論
共有 條評論