|
辛苦了大概兩個多月,之前一直都調(diào)不好。中間也遇到了很多的問題,但當(dāng)問題解決后每次都是重大的突破。現(xiàn)在就介紹一下,制作過程中遇到的問題。
1、關(guān)于加速度計的轉(zhuǎn)換系數(shù)
要制作自平衡車,角度和角速度的計算就很重要。關(guān)于加速度計和陀螺儀的使用就不多說了,他們一個用來測加速度計,一個用來測角速度。
把從加速度計讀出來的數(shù)據(jù)轉(zhuǎn)換成角度,要乘以一個比例系數(shù)。在轉(zhuǎn)換成角度角度的過程中,可以完全不用三角函數(shù)(因為車的傾角其實不會超過正負(fù)10度,后面會提到),直接把(最大值-最小值)/90(/2如果有正負(fù)的話)作為比例系數(shù)就可以了(這樣可以和真實角度比較)。其實理論上這個比例系數(shù)是什么都可以,因為后面陀螺儀轉(zhuǎn)換系數(shù)是根據(jù)加速度計的轉(zhuǎn)換比例系數(shù)跳出來的,所以加速度計的比例系數(shù)無論是什么值都沒有影響。
2、關(guān)于陀螺儀轉(zhuǎn)換系數(shù)
陀螺儀的轉(zhuǎn)換系數(shù)需要根據(jù)濾波的波形來調(diào)(我是在飛思卡爾公布的官方方案中看到的,經(jīng)實踐千真萬確),陀螺儀的轉(zhuǎn)換系數(shù)不用去算,只需要通過看波形去調(diào)就可以了,直到不超調(diào)也不滯后就可以了,具體的可以看附件官網(wǎng)方案中的93頁(第二版)。
3、關(guān)于濾波
角度濾波有很多方案,我所知道的是互補濾波、官網(wǎng)的方案和卡爾曼濾波,我的感想是什么濾波都不重要,重要的是參數(shù)要調(diào)好。
互補濾波:這是很簡單也很實用的方法,其實和官網(wǎng)的方案有一點類似的地方,在網(wǎng)上有一個很著名的20頁的PPT文件The Balance Filter,介紹的是互補濾波,相信大家看了之后都會明白的。在文件中,作者把高通濾波系數(shù)a和時間常數(shù)T(濤,不知道怎么打出來)及采樣周期dt用一個公式建立了聯(lián)系,而我的經(jīng)驗是,我們不要用這個公式去計算。高通濾波系數(shù)取0.98(不能比0.98再小了,會不平滑),采樣周期根據(jù)你程序的需要是多少就多少(5ms的效果會比10ms好很多,越小越好),濾波可以通過調(diào)陀螺儀的轉(zhuǎn)換系數(shù)達(dá)到很好的效果。也就是說,用互補濾波的關(guān)鍵調(diào)試參數(shù)是陀螺儀轉(zhuǎn)換系數(shù),把加速度計轉(zhuǎn)換系數(shù)、高通濾波系數(shù)和采樣周期定好之后,只需要調(diào)試陀螺儀轉(zhuǎn)換系數(shù)就可以達(dá)到滿意的效果了
PS:互補濾波的效果一定不差,我看過網(wǎng)上用互補濾波和單純的P控制達(dá)到很好的效果的。
官網(wǎng)濾波方案:我總覺得官網(wǎng)的和互補濾波有些相似,經(jīng)實驗,效果也是很好的。具體的公式在參考方案里面也有。調(diào)試的關(guān)鍵就是陀螺儀轉(zhuǎn)換系數(shù)。
卡爾曼濾波:一直沒用過,也不會用,主要是沒弄懂。我不喜歡用一知半解的東西,因為出現(xiàn)問題的時候排查不出來或者不知道怎么解決問題。網(wǎng)上也有很多卡爾曼濾波的程序,因為一直看不懂,就連試也沒試。如果會用的話,效果應(yīng)該是好的,但我不會用。如果有誰用興趣的話還請多多指教,互相交流一下。
4、關(guān)于控制
當(dāng)然有再好的角度和角速度控制不好的話也是站不好的。控制就用一般的PID控制,PWM=P*角度+D*角速度,這里沒用積分控制,效果已經(jīng)很好了。
在官網(wǎng)的方案中,還加上了死區(qū)電壓,我的最大的體會就是,這個死區(qū)電壓是可以不要的,而且不要更好(或者去一個小一點的值)。
這樣的話就要把P調(diào)的很大。具體是多大呢,至少是電機(jī)滿值的十分之一(五分之一甚至三分之一都是沒問題的),例如電機(jī)最大輸出是1的話,P取0.1、0.2、0.3都是沒問題的(官網(wǎng)的方案好像是取的0.3),如果點擊最大輸出是5000的話,那么P取500、1000、1500都是可以的,(當(dāng)然前提是加速度計轉(zhuǎn)換系數(shù)轉(zhuǎn)換出來的角度值和真實值相當(dāng),否則另當(dāng)別論)。所以車模的角度應(yīng)該不會超過正負(fù)十度,因為當(dāng)P=0.3的時候,車模有三度多的偏差時電機(jī)就滿電壓輸出了。我之前就是一直用一個很小的P去調(diào),原來所有的問題就在于把P調(diào)大就可以了。
至于D的話,大概在P的七十分之一或八十分之一之間都是可以有很好的效果的。這個關(guān)系就和加速度轉(zhuǎn)換系數(shù)沒有關(guān)系了。比如官網(wǎng)中P=0.3則D=0.3*1/75=0.004,在我這里P=1000,則D=1000*1/75=13.3,效果都是很好的。PS:這個關(guān)系只是在車模靜止平衡時的關(guān)系,行進(jìn)中的關(guān)系我還沒有實驗過。
5、說明
(1)陀螺儀的過沖是一個嚴(yán)重問題,高通濾波的那個電容是不可取的,要把它去掉才好。
(2)每一步都是關(guān)鍵,要真正理解原理才會知道怎么調(diào)
|
|