在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 神經網絡用于智能車控制的一點心得

            神經網絡用于智能車控制的一點心得

            作者: 時間:2016-11-25 來源:網絡 收藏
            對于小車的控制算法,神經網絡應該是不錯的選擇。但是很多人沒有用,我想是計算量和收斂特征的問題導致大家在研究算法時不敢越雷池。神經網絡的研究一般是基于OFF-LINE的,而飛思卡爾比賽用的只是MCU的ON-LINE模式的,這似乎就有了矛盾;另外,神經網絡無論在分類還是擬合作用上,計算精確性并不是100%,這也是航空技術不用神網的原因。
            此篇博文主要討論神經網絡用在小車控制算法上的可能性以及如何利用神經網絡于小車控制算法。
            想必自動化的學生都對控制模型的建模有很深的印像,有的碩士論文就是研究這些模型。一般用機理分析法和系統(tǒng)辨識法對實驗數據建模,得到傳遞函數,然后通過調試實際系統(tǒng),從開環(huán)到閉環(huán),不斷調整參數和控制參數。舉個例子:要建立小車直線、弧線行走的控制模型,即通過實測數據建立驅動控制和小車轉彎偏移量的關系,那么輸入的參數是當前速度,曲率大小,轉彎弧度,最大安全速度,目前偏移角度等等參數,而輸出的就是目標速度,目標角度。這個輸入和輸出之間的關系就是控制模型,一般也叫控制器。小車跑得快,跑得穩(wěn),主要就是這個”控制器“,控制器擬合得好,適應性強,OK,成績就不差。
            說了半天,小車控制算法要解決的問題是: 輸入——>控制模型——>輸出控制參數。
            按一般的方法,控制模型的建立需要大量數據,離線在線都必需調試多遍,系統(tǒng)的適應性不佳。而嘗試神經網絡,這些問題就都可以很大程度地避免了。
            1 首先,有必要介紹一下神經網絡,到底神經網絡是干什么用的,如何用。神經網絡的理論并不復雜,我想是有些書或論文把簡單問題復雜化了。大家不要對它恐懼。一堆數據A,通過一個NET不斷調整,得到另一堆數據B。而A和目標結果數據C都是已知的,NET是未知的,這個調整NET的過程就是訓練,NET訓練好的結果是使B和C的誤差最小,誤差合理就收斂。收斂完了,這個NET就可以用了。神經網格的核心就是得到一個NET??刂颇P途褪且粋€NET,NET包含很多參數,如權值,隱含層數,訓練方法,神經元模型,傳遞函數等,只要建立一個NET,那么輸入和輸出的關系就建立起來了。
            神經網絡主要有兩個作用:一個是分類,另一個是回歸(擬合)。如果把它運用于小車控制算法,毫無疑問是用于回歸擬合的功能。回歸什么呢?對,回歸上面所說的控制模型,這個NET就是控制器。
            神經網絡用于小車控制算法上的優(yōu)勢比較明顯,模型可以隨時調整,而且模型不是通過公式表示,只是一個NET來表達,避免復雜的參數調整和試算過程。通過新的環(huán)境參數得到新的NET,增強系統(tǒng)的適應性。
            為什么有些車在自己的場地上跑得好好的,在其它的場地上就不行呢?
            為什么有些車不斷地調整控制模型,控制效果卻不好呢?
            如何選擇控制器的輸入參數,參數的權重如何介定呢?
            。。。。。。。。
            一系列的問題,神經網絡可以給大家答案。
            2 WJ本人對神經網絡用于小車控制的一點思考。
            神經網絡常用的一般有:感知器,BP,HOPFILED,RBF,ANN,ART和Kohonen網絡。如果不用工具箱函數(即MATLAB的API函數),自己寫的話,無所謂,說不定自己可以創(chuàng)造一種網絡。只要收斂快,計算量小,泛化性能好,網絡耗費資源小就行,話說起來簡單,卻有一定難度。但是小車的需求低,精度無需太高,因此應該來說比較容易實現。
            神經網絡比PID,模糊控制,遺傳算法,bangbang等算法,更宏觀,可以理解為從系統(tǒng)整體入手建模。但是正如本博文開頭所說:計算量和收斂性必需保證,神經網絡才有運用的可能性。WJ建議從以下幾個方面解決這兩個問題:
            (1)不要指望神經網絡的實時性。神經網絡最要命的耗費時間是訓練,神經網絡在車運行時進行一兩次成功的訓練即可。在小車跑直線時通過獲得的數據訓練,因為直線時CPU會有空閑時間。另外,相信大家經常用撥碼開關去選擇多種控制決策,這不失一種方法。但是,這個控制決策是死的,也是事先規(guī)劃好的,必定不能適應新的KT板的各種路徑。
            (2)最好用片內FLASH或SD卡,數據的處理是很重要的,數據也非常寶貴的,把數據存起來,傳給PC,OFFLINE時研究神經網絡的算法(有無數種訓練算法),這是其一。其二,訓練好的網絡存在SD卡里,下次如果需要再訓練,從老的網絡開始(一般網絡權值是隨機開始),效率會高很多。
            (3)正如數據融合一樣,有決策層和數據層的融合,神經網絡也一樣,有決策層和數據層的運用。由于小車的路徑是連續(xù)的,那么數據層的神經網絡肯定是用得著的。在圖像采集里,一般是40mS采集一次路徑并做控制判決,那么這40mS的時間不夠用怎么辦?大家常用的一種方法是干脆80mS采集一次。我的建議是前60ms采集一次圖像并作控制決策。后20ms運用前4Oms提取的路徑信息并用神網預測路徑的變化,這么一來相當于在20ms的時間里采集了一次圖像??上攵?,效率提高了。
            (4)上面是從數據層采用神經網絡,這里講一下從決策層采作神經網絡。舉個例子,假如控制器的輸出-3 -2 -1 0 1 2 3分別代表舵機左偏30,左偏20,左偏10,直行,右偏10,右偏20,右偏30,而小車前7次的控制決策是:直行,右偏10,直行,左偏10,直行,右偏10,直行,(0 1 0 -1 0 1 0 )。。。。,那么第8次的決策通過神網應該就是左偏(-1)。如果實際需要的不是左偏的話,就應該把神網“懲罰”一下。
            (5)尋找合適的誤差閾值。小車尋跡不像激光切割,精度要求并不高。其訓練的誤差值可以“商量”的。
            (6)神網的訓練數據不是抓到一個就可以的,是要選擇的。但這個選擇也是要耗時間的,如果是在PC上,FCM(模糊聚類)是不錯的選擇。但是MCU是扛不起這個重任的,于是選擇合適的訓練數據和目標數據也是一個重要的研究話題。這里,如何優(yōu)化神網輸入不是重點,略過。
            (7)重視歸一化處理和神經網絡訓練算法。這兩點很重要,歸一化可以理解為把(100 45 -67 90)歸一化為(1 0.45 -0.67 0.9),好處是改進數據的規(guī)范性,加快收斂。另外訓練算法的重要性不言而喻,如用梯度下降法訓練法使誤差達到最小,什么是梯度下降法呢?打個比方,你要下山,山前的坡度是30度,山后是懸崖坡度是90度,要下山快,當然是找坡度大的直接跳。這個下山坡度和訓練梯度是同一個含義
            (8)個人覺得利用神經網絡進行速度控制有較大優(yōu)勢,比PID控制起來精度會有些缺陷,但速度快。由于摩阻力,小車動力性能,小車驅動性能,電池等原因,需要對速度閉環(huán)控制。假如:小車以單位時間10ms為節(jié)拍,速度從X1m/s->Y1m/s,需要PWM為d1%占空比,速度從X2m/s->Y2m/s,需要PWM為d2%占空比.......速度從Xn m/s->Yn m/s,需要PWM為dn%占空比,那么以(X,Y)為訓練輸入,(D)為訓練輸出,建立神經網絡并訓練,那么建立起PWM和速度控制之間的關系是非常輕易的事。


            評論


            技術專區(qū)

            關閉