什么是歸一化
歸一化就是將所有數(shù)據(jù)都變成0-1之間的數(shù),將數(shù)據(jù)映射到0~1范圍之內(nèi)處理,使數(shù)據(jù)觀察更便捷快速。
在電磁車行駛過(guò)程中,由于需要通過(guò)分析各個(gè)電感采集值的情況來(lái)判定前方為何種路段。
所以更要求這些采集值有跡可循,歸一化便是一種很好的方法,先將所有采集到的值縮小到0-1范圍內(nèi),再適當(dāng)放大(常見(jiàn)的放大倍數(shù)為100)。
這樣既能更容易的由電磁值分析出路況,又不會(huì)因?yàn)閿?shù)據(jù)過(guò)小而失真。
歸一化的代碼實(shí)現(xiàn)
歸一化的公式如下:(x-Min)/(Max-Min)。
其中,x為實(shí)時(shí)檢測(cè)到的變量,Min與Max為標(biāo)定的電感采集最小與最大值。
具體代碼如下:
AD_M_Left[0] =(uint16)(99*(LeftAverage[0]-M_Left_min)/(M_Left_max[0]-M_Left_min)+1);
PID控制
在介紹PID算法前,我們可以試想一下,如果沒(méi)有某些特殊的算法,那么我們會(huì)如何控制舵機(jī)打角和電機(jī)轉(zhuǎn)速?
就舵機(jī)而言,其結(jié)論可能是,設(shè)定一個(gè)特定的值,當(dāng)左右電感的電磁值之差達(dá)到這個(gè)設(shè)定的值時(shí)。
便控制舵機(jī)向左或向右打一定的角度(或者多設(shè)值,分不同情況多段打角)。
實(shí)際上這也是我在剛接觸智能車時(shí)用的算法,這種算法雖然能夠讓賽車在賽道上行駛,但打角不夠順滑,反應(yīng)也不夠靈敏。
這時(shí)我們便需要將這個(gè)差值代入某個(gè)算法,令其與舵機(jī)打角關(guān)聯(lián)起來(lái),這樣便可以得到一個(gè)較為連貫與精確的舵機(jī)輸出值。
有利于賽車更完美的運(yùn)行,而這種將差值與最后輸出值關(guān)聯(lián)起來(lái)的算法便是我們常說(shuō)的PID控制算法。
什么是PID控制
比例(P)積分(I)微分(D)控制(PID控制),是應(yīng)用最為廣泛的一種自動(dòng)控制器。
它具有原理簡(jiǎn)單,易于實(shí)現(xiàn),適用面廣,控制參數(shù)相互獨(dú)立,參數(shù)的選定比較簡(jiǎn)單等優(yōu)點(diǎn)。
PID控制分為很多種,而智能車中常用增量式和位置式兩種算法對(duì)車身進(jìn)行控制,以保證賽車在賽道上完美運(yùn)行。
-
電磁
+關(guān)注
關(guān)注
15文章
1135瀏覽量
51845 -
檢測(cè)
+關(guān)注
關(guān)注
5文章
4492瀏覽量
91514 -
控制算法
+關(guān)注
關(guān)注
4文章
166瀏覽量
21733
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論