久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1757|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

全國(guó)大學(xué)生智能汽車競(jìng)賽拉力組程序調(diào)試日志

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:651971 發(fā)表于 2022-5-25 14:48 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是去年參加的單車?yán)M代碼調(diào)試記錄,分享給大家

小車的調(diào)試日志
2020.11.6
簡(jiǎn)單的做了一下小車的尋跡,沒有加入PID控制,轉(zhuǎn)彎的方法為:檢測(cè)的一邊沒有邊線,就直接轉(zhuǎn)彎。這種方法只適合固定的賽道和固定的舵機(jī)電機(jī)的值,不具備智能特性。
發(fā)現(xiàn)單片給的底層驅(qū)動(dòng)代碼,不能滿足實(shí)際的要求,之后對(duì)底層代碼進(jìn)行了修改,修改的函數(shù)為PWM_UpdatePwmDutycycle,在修改之前,他的占空比只能在0-100之間,之后通過修改,使得它的可以調(diào)區(qū)間變大

2020.11.7
按照逐飛科技的教程,使用python3.7.3,簡(jiǎn)單的建立了一個(gè)模型,只訓(xùn)練了一次。同時(shí)將電機(jī)的參數(shù)傳到了上位機(jī)上,準(zhǔn)備開始調(diào)試PID,以及學(xué)習(xí)python。

2020.11.8
搭建了python+Pycharm的環(huán)境,簡(jiǎn)單的學(xué)習(xí)使用編譯器,開始學(xué)習(xí)tensorflow的庫(kù),爭(zhēng)取一個(gè)星期學(xué)會(huì)python+tensorflow。
學(xué)習(xí)了tensorflow圖的概念,簡(jiǎn)單的使用tensor進(jìn)行運(yùn)算。

2020.11.10
開始編寫pid控制代碼,P:當(dāng)前誤差乘以一個(gè)系數(shù)因子;I:積分項(xiàng),某個(gè)時(shí)段內(nèi),所有誤差之和乘以一個(gè)系數(shù)因子;D:微分項(xiàng),兩個(gè)誤差的差值,即兩個(gè)誤差之間的斜率乘以一個(gè)系數(shù)因子。
初步建立好了PID的模型,開始對(duì)轉(zhuǎn)向環(huán)進(jìn)行調(diào)節(jié),整體的效果不是特別理想。計(jì)算誤差的方法采用對(duì)中線進(jìn)行運(yùn)算,前后兩個(gè)點(diǎn)的差值,然后對(duì)整條直線的差值進(jìn)行累加,得到一個(gè)誤差值,當(dāng)誤差值為零時(shí),認(rèn)為這個(gè)是一條直線;這個(gè)誤差值為正或者負(fù)的時(shí)候,對(duì)應(yīng)右彎道和左彎道。但是最后的效果為,直線計(jì)算出來(lái)的誤差特別大,而彎道幾乎沒有誤差,這是剛好相反的結(jié)果。之后提出了一下的幾種解決方案:
方案一:在計(jì)算誤差的函數(shù)中,使用了三個(gè)一樣的循環(huán),增加了單片機(jī)的負(fù)擔(dān),做了重復(fù)的工作,之后可以考慮改成一個(gè)循環(huán)運(yùn)行。
方案二:在計(jì)算誤差時(shí),最后一次運(yùn)算的值不在那個(gè)數(shù)組中,可能會(huì)導(dǎo)致出現(xiàn)錯(cuò)誤,修改最后的值看情況。
方案三:推到之前的方案,采用計(jì)算中線均值的方法,來(lái)獲得誤差,具體還是要看最后的效果。

2020.11.11
今天驗(yàn)證了之前的方案一以及方案二,發(fā)現(xiàn)確實(shí)存在上述所提到的問題,多個(gè)for循環(huán)導(dǎo)致延時(shí)的情況,最后一次計(jì)算的數(shù)值不在這個(gè)數(shù)組里面,尤其是方案二涉及的問題,最整個(gè)的誤差計(jì)算有著非常大的影響,在更改了計(jì)算的次數(shù)之后,發(fā)現(xiàn)得到了我們想要的誤差,并且能夠很直觀的判斷出是直線還是彎道。
在這個(gè)程序的框架下存在的問題:車在快入彎道的時(shí)候,誤差會(huì)出現(xiàn)一次很強(qiáng)烈的跳變,導(dǎo)致車提前轉(zhuǎn)彎,加上車速過快,直接沖出賽道;還存在的問題,車在快出彎道的時(shí)候,會(huì)判斷成直線,舵機(jī)就自己回到直線的情況下,在查看攝像頭運(yùn)行的圖像中發(fā)現(xiàn),在車速達(dá)到一定的情況下,賽道有很大一部分信息不被采集到,導(dǎo)致判斷失誤。現(xiàn)在加入新的約束條件,看最后是否可以達(dá)到預(yù)期的效果值。
晚上結(jié)果與隔壁四輪組的討論,發(fā)現(xiàn)了我們小車現(xiàn)在存在的問題:對(duì)于我們之前使用的通過差值來(lái)計(jì)算中線誤差,存在很大的問題,我沒有給他一個(gè)標(biāo)準(zhǔn)的中線來(lái)定義小車的位置,使得小車在邊線的時(shí)候,還是不能察覺自己當(dāng)前的位置,再者就是過彎道的時(shí)候,會(huì)出現(xiàn)中線跳變的情況,導(dǎo)致整個(gè)誤差計(jì)算的過程會(huì)與實(shí)際產(chǎn)生偏離,不能達(dá)到實(shí)際想要的效果。
結(jié)果和他們的討論,對(duì)于圖像的處理的改進(jìn)做出了如下的方案:在屏幕正中間定義一條中線,并且以這條中線為參考基準(zhǔn),之后通過對(duì)中線上的點(diǎn)進(jìn)行加權(quán)求和,之后再與標(biāo)注中線進(jìn)行比較,通過比較判斷當(dāng)前車的位置。現(xiàn)在先嘗試使用中線求和的方法對(duì)誤差進(jìn)行計(jì)算,放棄之前的計(jì)算中線誤差的辦法。
在嘗試這個(gè)新的方法中,發(fā)現(xiàn)對(duì)于直線的效果很好,小車可以判斷當(dāng)前的位置,對(duì)車身進(jìn)行校正。但是對(duì)于彎道,隨著彎道的出現(xiàn),上面的中線像素點(diǎn)會(huì)丟失,到時(shí)算出來(lái)的平均誤差會(huì)偏小,導(dǎo)致判斷錯(cuò)誤,使得舵機(jī)打的角度不夠,不能夠順利的過彎,后期仍需要改進(jìn)。

2020.11.12
今天采用了均值的方法計(jì)算中線誤差,在之前的基礎(chǔ)上進(jìn)行了改進(jìn),之前是中線誤差減去中線之后再除以一個(gè)系數(shù),這樣導(dǎo)致的結(jié)果是整個(gè)系統(tǒng)對(duì)誤差的判斷不夠準(zhǔn)確,分的級(jí)數(shù)不夠。現(xiàn)在采用的是中線的誤差減去標(biāo)準(zhǔn)中線的值,在這樣的情況下,每一點(diǎn)的變化都可以被檢測(cè)出來(lái),這樣可以做到大彎道舵機(jī)打大角度,小彎道舵機(jī)打小角度。
現(xiàn)在遇到的問題是,由于轉(zhuǎn)彎時(shí)中線誤差會(huì)比較的大,導(dǎo)致還沒有到最佳的入彎時(shí)機(jī)時(shí),舵機(jī)就開始打了。對(duì)于這個(gè)問題,采用的解決辦法就是,對(duì)整個(gè)誤差中線上的點(diǎn)加一個(gè)加權(quán),使得越靠近車身到的點(diǎn)越有價(jià)值,遠(yuǎn)離車的點(diǎn)價(jià)值不大。
PID調(diào)試過程中,在只加P比例項(xiàng)的時(shí)候(P值為5.5,I和D為0),車最高可以跑到210的占空比,但是車的整體穩(wěn)定性會(huì)下降,左右搖擺會(huì)很嚴(yán)重,車子過右彎道的時(shí)候比較順利,左彎道的時(shí)候會(huì)出現(xiàn)提前入彎的情況,可能是圖像處理上的問題。之后開始加入微分項(xiàng)D,在純D值下,車子運(yùn)行比較穩(wěn)定,很少出現(xiàn)左右搖擺的情況,但是過彎角度有點(diǎn)大。最后嘗試P值和D值一起加入,正在試驗(yàn)一組比較完美的數(shù)據(jù)。實(shí)際測(cè)試過程,會(huì)發(fā)現(xiàn)加入P值后,即使在D值的作用下,還是會(huì)出現(xiàn)車左右搖擺,出彎角度不好等問題。

2020.11.13
今天計(jì)算了兩個(gè)輪胎需要的轉(zhuǎn)速差。

2020.11.14
開始電感的學(xué)習(xí)使用,初步了解電感的工作方式。采用中間一個(gè)、左右各一個(gè)的方式排布電感,對(duì)電感采集回來(lái)的數(shù)據(jù)進(jìn)行軟件處理,進(jìn)行軟件濾波。在經(jīng)過歸一化處理的電感數(shù)據(jù)后,之前的毛刺都會(huì)被濾掉,得到一個(gè)較為穩(wěn)定的曲線,之后用這個(gè)曲線進(jìn)行誤差的計(jì)算。


2020.11.15
采用差比和的辦法,對(duì)電感誤差曲線進(jìn)行擬合,因?yàn)椴杉碾姼兄凳且粋(gè)類似于正弦波的曲線,所以在進(jìn)行擬合的時(shí)候,不能采用之前的辦法進(jìn)行擬合。通過了解差比和的公式,設(shè)置幾個(gè)固定的參數(shù),通過調(diào)節(jié)各個(gè)參數(shù)的值,盡量的去擬合一條波動(dòng)較小的一條曲線,就現(xiàn)在擬合的曲線來(lái)說(shuō),上下波動(dòng)的誤差還是較大,在實(shí)際的應(yīng)用中可能會(huì)出現(xiàn)舵機(jī)搖擺大的問題。之后確定電磁尋跡的方案之后,開始進(jìn)行電磁尋跡,在這個(gè)過程中還要不斷的對(duì)誤差曲線以及電感值得歸一化曲線進(jìn)行進(jìn)一步的優(yōu)化擬合。

2020.11.18
記錄一下這幾天所做的事情。在對(duì)電感進(jìn)行操作的時(shí)候,遇到了很多問題,嘗試了各種的方法,最終采用的方法為利用左右電感的差值作為誤差,之后對(duì)這個(gè)誤差進(jìn)行PID的操作。整體的這個(gè)效果很不錯(cuò),車子在整個(gè)的運(yùn)行中沒有大的擺動(dòng),過彎還是很順利。但是會(huì)出現(xiàn)個(gè)別彎道過不去的情況,現(xiàn)在初步考慮為pid的值設(shè)定不是特別的適合,其次就是電機(jī)沒有做差速,轉(zhuǎn)彎的角度可能不夠。
現(xiàn)在賽道的環(huán)島還是不能過,車在過環(huán)島的時(shí)候會(huì)有明顯的標(biāo)志,可以作為判斷為環(huán)島的標(biāo)志,后續(xù)會(huì)加上對(duì)環(huán)島的處理,現(xiàn)在進(jìn)行電機(jī)的調(diào)速,做差速,使過彎更加的順滑。


2020.11.20
為了開始訓(xùn)練AI,加入長(zhǎng)前瞻電感進(jìn)行試車,發(fā)現(xiàn)在長(zhǎng)前瞻的情況下,車的運(yùn)行結(jié)果不是特別理想,經(jīng)常出現(xiàn)沖出賽道的情況,一方面是由于車速不夠快的原因,車子又提前打彎;另一方面是由于對(duì)整個(gè)誤差的處理不是很到位,這一方賣在觀察隔壁四輪組的車子舵機(jī)之后,發(fā)現(xiàn)一個(gè)問題,我們的車,即使在中間平衡的狀態(tài),我們車的舵機(jī)依舊會(huì)左右搖擺,而別的組沒有,對(duì)于這個(gè)問題,在觀察了我們的波形之后會(huì)發(fā)現(xiàn),最后輸出的誤差是一條類似于正弦波的曲線,所以在中間時(shí)刻,它還是一條正弦波,所以舵機(jī)會(huì)來(lái)回震蕩。對(duì)于這個(gè)問題還在嘗試新的解決辦法,就是左右兩個(gè)電感進(jìn)行相加減的運(yùn)算,因?yàn)椴杉貋?lái)的左右電感值相位基本是相同的,所以做減法會(huì)使一部分的誤差會(huì)消掉,從而得到一條更加穩(wěn)定的曲線。
在今天的調(diào)試過程中,電感的運(yùn)放電路不知道什么原因,輸出的電壓非常的大,超過了AD采樣口的額定電壓,會(huì)對(duì)單片機(jī)有一定的損傷,具體是什么原因?qū)е碌模壳斑沒有找出,后續(xù)可能還會(huì)出現(xiàn)類似的問題,有待排查。
現(xiàn)在以為沒有電感采樣口,不能進(jìn)行下去。

2020.11.21
今天調(diào)試了電機(jī)的PID,觀察看各個(gè)參數(shù)P、I、D對(duì)整個(gè)系統(tǒng)的影響,通過上位機(jī)進(jìn)行觀察,至于后面各個(gè)參數(shù)的設(shè)置以及差速的設(shè)置,需要在后續(xù)發(fā)車的過程中不斷總結(jié)。

2020.11.22
今天完成了LQ的串口移植,能夠通過上位機(jī)接收到單片機(jī)發(fā)出的數(shù)據(jù),但是只能發(fā)送ASCII碼,具體應(yīng)用時(shí)不是特別的方便,整體下來(lái)的使用下過不是特別好,目前還沒有找到很好的解決辦法。

2020.11.24
在運(yùn)放打板期間,沒有進(jìn)行太多的實(shí)際操作,就對(duì)整體的方案進(jìn)行了思考,提出了以下的一個(gè)觀念:對(duì)于電感尋跡,很難做到預(yù)判前方很遠(yuǎn)的賽道情況,這就要求我們對(duì)整個(gè)車的控制更加的精確,對(duì)誤差的獲取也要更加的精確,否則整個(gè)車的運(yùn)行會(huì)十分不穩(wěn)定,所以對(duì)于PID控制,舵機(jī)依舊采用PD控制,電機(jī)采用PID控制,電機(jī)全程一直按照一個(gè)速度進(jìn)行運(yùn)行,過彎道時(shí),根據(jù)舵機(jī)打的角度進(jìn)行運(yùn)動(dòng)學(xué)分析,然后為了保證順利的過彎,同時(shí)要適當(dāng)?shù)慕档蛙嚨乃俣龋赃@里暫時(shí)通過前后獲得的誤差值得差值作為衡量這個(gè)的標(biāo)準(zhǔn),前后相差越大,說(shuō)明車偏移軌跡的距離就越大,這個(gè)時(shí)候減低速度。
這段時(shí)間還閱讀了一些國(guó)賽隊(duì)伍的技術(shù)文檔,獲得了很大的啟發(fā),對(duì)于電感的尋跡,主要還是采用差比和的方法,嘗試不同的差和組合,觀察車在順時(shí)針逆時(shí)針的運(yùn)行情況,考察代碼的對(duì)稱性。

2020.12.09
轉(zhuǎn)做單車組,開始的時(shí)候調(diào)試的是STC8A8K的芯片,之后會(huì)使用STC16F系列的芯片,現(xiàn)在還是在調(diào)試8A的芯片。外圍電路的調(diào)試基本完成,蜂鳴器、按鍵、編碼開關(guān)、編碼器等。
作為單車平衡重要部分的陀螺儀,我們采用的是ICM20602陀螺儀,濾波的算法采用的是卡爾曼濾波,因?yàn)镮C不帶DMP的姿態(tài)解析,所以這部分代碼是借鑒網(wǎng)上的卡爾曼濾波寫的,從最終的效果來(lái)看,角速度計(jì)部分基本已經(jīng)完成,可以轉(zhuǎn)化成角度使用,而陀螺儀部分(也就是)角速度這一環(huán)還沒有調(diào)試好,之前本來(lái)是調(diào)試好的了,后面突然出現(xiàn)了問題,這一部分代碼不能使用,后面還會(huì)繼續(xù)調(diào)試陀螺儀。
接下來(lái)要完成四輪PID代碼的移植,轉(zhuǎn)化到單車上去,寫一套切換PID的代碼。

2020.12.11
今天發(fā)現(xiàn)陀螺儀的一個(gè)問題,在使用卡爾曼濾波進(jìn)行濾波解算姿態(tài)的時(shí)候,隨著時(shí)間的增加,會(huì)發(fā)現(xiàn)解算的速度越來(lái)越慢,單片機(jī)解算出來(lái)的姿態(tài)與實(shí)際的姿態(tài),出現(xiàn)了延時(shí)現(xiàn)象,而且隨著時(shí)間的推移,這個(gè)現(xiàn)象越來(lái)越明顯。初步估計(jì)是隨著時(shí)間的推移,對(duì)傳感器數(shù)據(jù)的數(shù)據(jù)積分越來(lái)越大,導(dǎo)致計(jì)算量增大,最終與實(shí)際有一定的偏差。后面查閱一些資料發(fā)現(xiàn),卡爾曼濾波的計(jì)算量,需要MCU有較強(qiáng)的計(jì)算能力,所以就目前STC的單片機(jī)來(lái)看,卡爾曼濾波的方案可能會(huì)被擯棄掉。
后續(xù)將采用另外一種的方法進(jìn)行姿態(tài)解算,互補(bǔ)融合算法。首先,陀螺儀的噪聲基本在低頻中,加速度計(jì)的噪聲大多位于高頻中,這兩個(gè)信號(hào)都帶有偏轉(zhuǎn)角的信息,所以,現(xiàn)在對(duì)這兩個(gè)分別過高通濾波器和低通濾波器,之后對(duì)這兩個(gè)進(jìn)行互補(bǔ)融合,首先嘗試一階濾波器,之后看實(shí)際的效果,再采用二階濾波器。

2020.12.14
對(duì)于之前卡爾曼濾波,出現(xiàn)的隨著時(shí)間的推移,計(jì)算量越來(lái)越大的問題,在參考16級(jí)學(xué)長(zhǎng)的卡爾曼濾波代碼之后,找到了問題所在。參數(shù)C_t的初始化定義出現(xiàn)了一點(diǎn)問題,在改成float之后,程序整個(gè)的運(yùn)行過程變得正常,解算的效果與實(shí)際的效果基本符合。在只解算陀螺儀姿態(tài)的時(shí)候,解算一次的時(shí)間大概在1.3ms左右,加上切換PID之后,控制舵機(jī)的解算速度在1.8ms左右,解算速度基本滿足要求。

2020.12.15
在進(jìn)行卡爾曼濾波之后,還是會(huì)出現(xiàn)偶然的跳變點(diǎn),對(duì)于單車這種平衡姿態(tài)解算要求高的系統(tǒng),這種大的偶然的跳變可能是危險(xiǎn)的,會(huì)單片做出錯(cuò)誤的判斷,可以采用加一個(gè)低通濾波器來(lái)解決這個(gè)問題。
加入低通濾波器,需要對(duì)權(quán)重系數(shù)進(jìn)行調(diào)試,低通濾波器會(huì)存在相位滯后的情況,所以要對(duì)尋找一個(gè)合適的權(quán)重參數(shù)。
再反觀切換PID系統(tǒng),當(dāng)出現(xiàn)跳變的時(shí)候,此時(shí)前后誤差會(huì)很大,切換到加速度環(huán)進(jìn)行調(diào)節(jié),一定作用上對(duì)這種跳變情況有緩解作用。
不過還是會(huì)嘗試經(jīng)過一個(gè)低通濾波器看最后的效果。

2020.12.17
在加入低通濾波器之后,之前出現(xiàn)的偶爾跳變的情況得到了改善,曲線變得更加的平滑,但是會(huì)存在相位滯后的情況,后續(xù)會(huì)根據(jù)實(shí)際的情況,對(duì)濾波的頻率進(jìn)行調(diào)整。

2020.12.19
開始寫模糊控制算法,在這個(gè)過程中,要盡量的較少代碼的運(yùn)行時(shí)間,空出更多的時(shí)間去做別的事情。

2020.12.25
打了第一版的核心板,發(fā)現(xiàn)如下的問題:1.芯片的地沒有接上,原因是不能通過鋪銅去把所有的地接在一起,必須通過手動(dòng)連線的方式,讓地全部接在一起;2.STC16F芯片是低電平復(fù)位,復(fù)位引腳懸空,通過萬(wàn)用表測(cè)量,是低電平,所以單片機(jī)可以下載程序,但是不能正常的工作,因?yàn)橐恢痹趶?fù)位的條件下,通過外接10K電阻與5V電相接,可以工作。
對(duì)于其他引腳的測(cè)試,引腳都可以置高低電平,可以正常使用。后面根據(jù)之前遇到的問題,開始第二版的核心板的制作,并制作第一版的母板。
目前把所有的代碼整合到一起,代碼的初步架構(gòu)已經(jīng)全部完成,在模擬車的運(yùn)行過程中,符合控制目標(biāo)。

2020.12.28
單車車模到了之后,開始調(diào)車。發(fā)現(xiàn)如下幾個(gè)問題:1.單片機(jī)莫名的會(huì)跑死,不工作,原因待查明;2.之前沒有考慮PWM輸出的問題,所以在打板的時(shí)候,沒有留意這個(gè)問題,舵機(jī)和電機(jī)的PWM輸出都用的PWMA,所以不能輸出不同的頻率,之后要使用PWMA和PWMB分別控制電機(jī)和舵機(jī)。
對(duì)于單片機(jī)跑死的原因,后面采用定時(shí)器中斷來(lái)檢測(cè)。
在調(diào)試單車平衡的過程中,車子想跑起來(lái)平衡,還是有很多的困難。

2020.12.29
對(duì)于昨天出現(xiàn)單片機(jī)死機(jī)的問題,最后查明是單車車身導(dǎo)電,導(dǎo)致單片機(jī)死機(jī)。
PWM的問題,目前還沒有解決。
近期軟件部分所要完成的任務(wù):
1.    確定單車的臨界傾斜角度
2.    確定單車的臨界行駛速度
3.    將單車舵機(jī)的打角和單車的傾角關(guān)聯(lián)起來(lái)
4.    驗(yàn)證切換PID的可行性,確定切換的閾值

2020.12.30
在整個(gè)陀螺儀姿態(tài)解析的過程中,解析出來(lái)的是90度的角,但是,這部分的數(shù)據(jù),只有在車身閾值角度的范圍內(nèi)是有用的信息,超出這個(gè)范圍,車身可能就會(huì)傾倒,此時(shí)再想控制車身平衡,已經(jīng)無(wú)法使其平衡了。所以,就使用閾值范圍內(nèi)的值,其余的值不予討論。

2021.1.4
制作了第二版的核心板、母板以及各種驅(qū)動(dòng)模塊,發(fā)現(xiàn)問題如下:
1.    核心板上依舊不能使用USB進(jìn)行下載,而且復(fù)位按鍵不能使用;
2.    母板上存在一些問題,如部分模塊排布過于緊密,不好插模塊使用,后期還要調(diào)整布局;
3.    電機(jī)驅(qū)動(dòng)板不能使用;
4.    運(yùn)放模塊沒有驗(yàn)證是否可以使用;
車的整體框架基本已經(jīng)完成,后期將開始調(diào)試代碼,驗(yàn)證方案的正確性。
2021.3.1
開學(xué)第一天。寒假簡(jiǎn)單的完成單車代碼的編寫,采用傳統(tǒng)的PID,在舵機(jī)的控制中加入了積分項(xiàng)I,目前情況來(lái)看,單車平衡跑的距離大概半米左右。由于左邊比右邊重一些,所以機(jī)械平衡還沒有調(diào)好。之后還要尋求PID三個(gè)參數(shù)之間的平衡,達(dá)到直立的最佳效果。
單車PCB板子以及機(jī)械機(jī)構(gòu)還要進(jìn)一步的優(yōu)化。

2021.3.10
記錄單車直立的第一天,在直立的過程中,發(fā)現(xiàn)了很多問題,發(fā)現(xiàn)的問題如下:1.車身整體結(jié)構(gòu)左右不是十分對(duì)稱,車把手位置中間的大螺絲的松緊需要調(diào)整,建議是緊一點(diǎn)的,不然車身會(huì)存在抖的問題;2.陀螺儀濾波問題,陀螺儀本身采集的數(shù)據(jù)存在很大的噪聲,需要進(jìn)行互補(bǔ)融合盡量的解算出實(shí)際的角度偏差,后面調(diào)試的過程中最大的問題是解算出的角度會(huì)超過實(shí)際值,之后再回到實(shí)際值,這個(gè)問題需要引起重視,這樣會(huì)導(dǎo)致舵機(jī)打兩次角度,會(huì)影響平衡;3.PID參數(shù)調(diào)節(jié)過程中,PID三個(gè)參數(shù)都引入,P稍微大一點(diǎn)30——50,累計(jì)誤差需要進(jìn)行限幅度,不然退耦過程時(shí)間過長(zhǎng),且建議I給小一點(diǎn)0.05——0.0001,對(duì)于參數(shù)D是穩(wěn)定整個(gè)系統(tǒng)的關(guān)鍵部分,直接采用陀螺儀采集的角速度值,乘以系數(shù)K(0.1左右)進(jìn)行處理,防止過大影響整個(gè)控制,參數(shù)D在1——5之間。
總體歸結(jié)下來(lái),數(shù)據(jù)的處理很關(guān)鍵,直接影響車是否平衡,之后調(diào)節(jié)PID參數(shù)。

2021.3.18
在之前的代碼上進(jìn)行了優(yōu)化,采用卡爾曼濾波,對(duì)濾波的幾個(gè)系數(shù)進(jìn)行搭配,主要是噪聲協(xié)方差(Q_angle)和采樣時(shí)間(dt),通過搭配這兩個(gè)參數(shù),是解算出來(lái)的數(shù)據(jù)更加的貼近實(shí)際的值并且盡量的減少噪聲。同時(shí)對(duì)整個(gè)車身進(jìn)行配重,適當(dāng)?shù)脑黾佑疫叺闹亓浚沁是會(huì)發(fā)現(xiàn)左邊會(huì)比右邊重一點(diǎn),這個(gè)問題留到后面的一版板子中進(jìn)行處理。
在現(xiàn)在的控制系統(tǒng)中,放在1MS中斷函數(shù)中進(jìn)行處理,對(duì)應(yīng)的參數(shù)為P =  41,I = 0.001,D = 0.2,同時(shí)微分項(xiàng)誤差的引進(jìn)為陀螺儀直接采集的加速度值(為經(jīng)過濾波處理)。在這個(gè)控制系統(tǒng)下,可以看到,比之前的控制系統(tǒng)更加的穩(wěn)定,很少出現(xiàn)在中間平衡位置抖動(dòng)的情況,并且車可以直立的更加久。
后續(xù)進(jìn)行單車的循跡以及電機(jī)閉環(huán),如果運(yùn)算能力達(dá)不到預(yù)期的效果,可能會(huì)采用偽雙核的方案,專門的有一個(gè)CPU進(jìn)行數(shù)據(jù)的處理,然后發(fā)送個(gè)決策的CPU,提高整個(gè)控制的效率。

2021.3.26
昨天發(fā)現(xiàn)引用逐飛的驅(qū)動(dòng)庫(kù)時(shí),角速度的引入存在問題,導(dǎo)致濾波出來(lái)的結(jié)果時(shí)錯(cuò)誤的,這就解釋了之前一些不能解釋的現(xiàn)象,在解決這個(gè)問題之后,車的穩(wěn)定性得到了很大的提高,可以跑更久的直線。
但是現(xiàn)在又出現(xiàn)了新的問題,就是更換電池盒之后,參數(shù)調(diào)配一直到不了一個(gè)很耦合的狀態(tài),PID參數(shù)的設(shè)置存在問題,整個(gè)系統(tǒng)的抗干擾能力不強(qiáng)。

2021.3.29
基本完成車的直立,可以維持較久的平衡。之前沒有對(duì)積分項(xiàng)進(jìn)行清零,并且之前使用的微分項(xiàng)存在方向問題,寫反了。
后面繼續(xù)優(yōu)化參數(shù),增加平衡的抗干擾性。
后續(xù)開始循跡調(diào)試。

2021.3.30
單車的平衡直立基本完成,總結(jié)的經(jīng)驗(yàn)如下:
1.    在PID的三個(gè)參數(shù)中,P的作用的是主導(dǎo)整個(gè)的系統(tǒng)的左右偏移量,P要足夠的大,才能保持單車的直立;I的作用是車的慣性量,建議給小小一點(diǎn),大了之后會(huì)影響車回正的速度,而且要對(duì)總的誤差進(jìn)行限幅,最后還要對(duì)總的誤差進(jìn)行清零(每次過零點(diǎn)的時(shí)候,防止出現(xiàn)車突然倒地的情況);D的作用是阻礙車的運(yùn)動(dòng),減少超調(diào)現(xiàn)象的出現(xiàn)。
2.    整個(gè)車的機(jī)械結(jié)構(gòu)盡量的穩(wěn)定,每次更改結(jié)構(gòu)之后就要重新更改參數(shù),增加工作量,且之前的參數(shù)不具備太大的參考意義。車的整體重心盡量保持一致。
3.    在陀螺儀濾波時(shí),分清楚底層驅(qū)動(dòng)變量。后面才發(fā)現(xiàn)之前的一個(gè)變量使用錯(cuò)誤,導(dǎo)致前面調(diào)試了一個(gè)錯(cuò)誤的方向,參數(shù)沒有太大的參考意義。
4.    電機(jī)盡量的實(shí)現(xiàn)閉環(huán),這樣會(huì)增加發(fā)車以及車運(yùn)行過程中的穩(wěn)定性。
5.    陀螺儀濾波很重要,這個(gè)會(huì)直接影響整個(gè)系統(tǒng)的正確判斷,濾波后的曲線盡量的光滑,沒有較大的突變點(diǎn),在單車的控制系統(tǒng)中,一個(gè)較大的突變點(diǎn)就會(huì)導(dǎo)致單車倒地。尤其要注意靜止時(shí)突然出現(xiàn)的方向尖峰,及其致命。
6.    要是濾波算法沒有問題的情況下,會(huì)存在一套與之較為耦合的參數(shù),所以,濾波參數(shù)確定之后,要精細(xì)的調(diào)節(jié)PID參數(shù),先P再I最后D。

蜂鳴器    P43
按鍵    P42 P41
編碼器    DIR=P35     A=P34
撥碼開關(guān)    P72 P73
ADC    P00 P01 P14 P15 P16
無(wú)線串口    UART4_TX_P03  UART4_RX_P02  SET_P04_RTS
舵機(jī)    P74
電機(jī)    P60 P62

ICM20602    (陀螺儀)SCL-P25
        SDA-P23
        SA0-P24
        CS-P26

ISP(顯示屏)    SCL-P25
        SDA-P23
        RST-P20
        DC-P21(液晶命令位引腳定義)
        CS-P22
        BL-P27(液晶背光引腳定義)

單車組調(diào)試規(guī)范
在整個(gè)車的框架搭好之后,開始整個(gè)的調(diào)試,小組三個(gè)人,一天三班倒。為了更好的調(diào)車,方便交流,采用如下的規(guī)則:
1.    調(diào)試參數(shù)時(shí),需記錄下每個(gè)參數(shù)對(duì)應(yīng)的數(shù)值,以及該參數(shù)下的效果
2.    組員在使用框架代碼時(shí),如果有改動(dòng),則需要表明改動(dòng)的日期、姓名、改動(dòng)的地方。
3.    如有添加新的代碼,則也需要注明編寫的時(shí)間、姓名、以及簡(jiǎn)單的介紹一下該函數(shù)的大概用途。
4.    在整個(gè)代碼框架搭好之后,就在這個(gè)框架上進(jìn)行修改,每個(gè)人在完成自己工作后,將文件名改成日期+姓名+上午/下午/晚上,下一個(gè)人在此代碼上繼續(xù)修改。
5.    每個(gè)小組成員,在完成自己當(dāng)天任務(wù)后,寫一個(gè)簡(jiǎn)短的日記,記錄自己今天所作的事情以及遇到的問題。

程序下載(代碼不完整,僅供參考): 16F代碼(帶DFP).7z (332.89 KB, 下載次數(shù): 13)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:514317 發(fā)表于 2022-5-25 19:18 | 只看該作者
這樣的調(diào)試才能使能力不斷的提高   過程中不斷的解決問題   
實(shí)際工程項(xiàng)目中   還是對(duì)方案算法系統(tǒng)整合等要求更多
回復(fù)

使用道具 舉報(bào)

板凳
ID:262 發(fā)表于 2022-5-27 04:20 | 只看該作者
完整代碼能分享一下嗎?這個(gè)缺少文件
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品一级| 中文av电影 | 久久人体 | 国产精品中文字幕一区二区三区 | 在线观看电影av | 妖精视频一区二区三区 | 国产精品成人一区二区三区 | 成人福利在线视频 | 亚洲精品乱码久久久久久按摩 | 免费观看一级黄色录像 | 日韩精品在线观看免费 | 能看的av | 欧美精产国品一二三区 | 国产精品三级 | 国产清纯白嫩初高生视频在线观看 | www国产精品| 一区二区三区高清不卡 | 欧美一区二| 99精品视频在线 | 欧美精品乱码久久久久久按摩 | 久久精品视频免费观看 | 亚洲精品日韩一区二区电影 | 中文字幕一区在线观看视频 | www.yw193.com | 精品国产一区二区三区久久久蜜月 | 亚洲黄色高清视频 | 国产超碰人人爽人人做人人爱 | 华丽的挑战在线观看 | 成人黄色av网站 | 免费一级欧美在线观看视频 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 日韩欧美一区二区三区四区 | 999久久久久久久久6666 | 孕妇一级毛片 | 国产午夜久久久 | 久久久久久久久久久蜜桃 | 久久精品99 | 久久新| 日韩欧美国产一区二区三区 | 国产成人一区二区 | 羞羞在线观看视频 |