三、總結
模糊pid演算法近幾年被廣泛用於智慧型車競賽之中
博主將用最簡單的方式讓初學者明白如何使用
建議先理解基礎的pid演算法
根據經驗而來的,個人不建議更改
int rule[7]
[7]=
,//0
,//1
,//2
,//3
,//4
,//5
,//6};
//模糊規則表
eff:kp的取值分為7等份
dff:kd的取值分為7等份
uff:kp或者kd對應的誤差的取值範圍等分
e:此時的誤差
ec:誤差的誤差
說明:kp與kd的計算方式一樣,只需要更改uff的範圍即可,返回值即為kp\kd
計算完成以後即可帶入pid公式計算位置式pid或者增量式pid
float
fuzzy
(float e,
float ec)
;/*輸入量d語言值特徵點*/
float dff[7]
=;/*輸出量u語言值特徵點(根據賽道型別選擇不同的輸出值)*/
float uff[7]
=;float u=0;
/*偏差,偏差微分以及輸出值的精確量*/
float pf[2]
=,df[2]
=,uf[4]
=;/*偏差,偏差微分以及輸出值的隸屬度*/
int pn=
0,dn=
0,un[4]
=;float t1=
0,t2=
0,t3=
0,t4=
0,temp1=
0,temp2=0;
/*隸屬度的確定*/
/*根據pd的指定語言值獲得有效隸屬度*/
if(e>eff[0]
&& e)else
if(e<=eff[2]
)else
if(e<=eff[3]
)else
if(e<=eff[4]
)else
if(e<=eff[5]
)else
if(e<=eff[6]
)}else
if(e<=eff[0]
)else
if(e>=eff[6]
) pf[1]
=1-pf[0]
;//判斷d的隸屬度
if(ec>dff[0]
&&ec)else
if(ec<=dff[2]
)else
if(ec<=dff[3]
)else
if(ec<=dff[4]
)else
if(ec<=dff[5]
)else
if(ec<=dff[6]
)}//不在給定的區間內
else
if(ec<=dff[0]
)else
if(ec>=dff[6]
) df[1]
=1-df[0]
;/*使用誤差範圍優化後的規則表rule[7][7]*/
/*輸出值使用13個隸屬函式,中心值由uff[7]指定*/
/*一般都是四個規則有效*/
un[0]
=rule[pn+2]
[dn+2]
; un[1]
=rule[pn+3]
[dn+2]
; un[2]
=rule[pn+2]
[dn+3]
; un[3]
=rule[pn+3]
[dn+3]
;if(pf[0]
<=df[0]
)//求小
uf[0]
=pf[0]
;else
uf[0]
=df[0]
;if(pf[1]
<=df[0]
) uf[1]
=pf[1]
;else
uf[1]
=df[0]
;if(pf[0]
<=df[1]
) uf[2]
=pf[0]
;else
uf[2]
=df[1]
;if(pf[1]
<=df[1]
) uf[3]
=pf[1]
;else
uf[3]
=df[1]
;/*同隸屬函式輸出語言值求大*/
if(un[0]
==un[1]
)if(un[0]
==un[2]
)if(un[0]
==un[3]
)if(un[1]
==un[2]
)if(un[1]
==un[3]
)if(un[2]
==un[3]
) t1=uf[0]
*uff[un[0]
];t2=uf[1]
*uff[un[1]
];t3=uf[2]
*uff[un[2]
];t4=uf[3]
*uff[un[3]
];temp1=t1+t2+t3+t4;
temp2=uf[0]
+uf[1]
+uf[2]
+uf[3]
;//模糊量輸出
u=temp1/temp2;
return u;
}
第十五屆智慧型車競賽敗北有感
依稀記得,大一下學期被老師帶進實驗室,正值14屆智慧型車進行之際,從早到晚每個時間段,都會有學長學姐在調車,看到一輛輛智慧型車巡線飛奔,我想明年的我會不會也有自己的車,能不能站在省賽乃至國賽的賽場上,走向頒獎臺。2019年末,15屆智慧型車比賽的訊息依舊不確定,但在學長的帶領下,我們已經著手學習智慧...
第十四屆智慧型車培訓 數碼管
數碼管顯示原理 tec9607 數碼管驅動晶元字元表 led驅動器tec9607引腳功能簡介 數碼管的控制埠及時序 數碼管控制原理總結 微控制器通過三個io口來控制tec9607 led驅動器,從而來完成對5個數碼管的控制。傳輸資料方式 序列通訊 三個io口的作用 1 si 序列輸入資料,由微處理器...
第十五屆智慧型車賽比賽 比賽組織參考文件
第十五屆全國大學生智慧型車競賽 比賽組織參考文件 全國大學生智慧型車競賽秘書處 2020 07 27 monday 2020年由於全球新冠肺炎大流行的影響,使得第十五屆智慧型車競賽在組織比賽工作上出現了較大的影響。在8月份組織賽會制線下比賽的賽區包括有東北 華北 華東 西部 和浙江省賽區。華南賽區採...