1. 程式人生 > 實用技巧 >智慧車電感差比和差加權演算法研究

智慧車電感差比和差加權演算法研究

▲ 李佳昊 王謝援 吳濤

▲ 李佳昊 王謝援 吳濤

在研究基於電感的智慧車方向控制時發現了彎道擬合度高的差比和差加權演算法。本文從演算法的發現、演算法原理出發對差比和差演算法進行描述,並使用MATLAB、Python建模對其彎道擬合度高的特點與其他優勢進行證明。

關鍵詞:智慧車;電感;MATLAB;

01引言

在研究基於電感的智慧車方向控制時,首先使用了較為普遍的電感差比和加權引導方案。除錯過程中,發現小車對於彎道的敏感度不理想,故多次嘗試修改橫縱電感權重,或將程式碼推翻重寫,尋求理想的結果。

進行數次程式碼推翻重寫後,偶然產生了一次期望之外的結果,小車繞賽道逆時針行駛(在調方案)時,其對於彎道的敏感性和擬合程度都在預期之上,成功進行速度測試後,開始精調引數。針對小車對彎道敏感度超出預期的現象,初步採取了降低方向比例控制係數(P)的措施,調整後,發現小車在一些順時針方向彎道上的行駛出現較大問題,針對問題進行排查、分析、數學論證後,產生了電感方向控制的差比和差加權演算法。本文從問題的發現與解決出發,詳細描述電感方向控制的差比和差加權演算法的發現、原理、引數除錯方法,並使用MATLAB建立模型解釋其工作原理。

02發現與構造

1.1 演算法的發現過程

電感差比和差加權演算法是在進行電感差比和加權演算法除錯時發現的。在除錯過程中,建立電感差比和演算法公式:

公式C1中,LM、RM是左中、右中兩個電感獲取電流經硬體、軟體放大後的輸出值,L、R是左、右兩個電感的輸出值,LIMIT是一個限幅係數,A、B是加權引數,電感的排布方式參考圖C1.1,由左到右分別是L,LM,M,RM,R。

▲ 圖C1.1 電感排布圖

▲ 圖C1.1 電感排布圖

將公式C1的輸出誤差輸入智慧車方向控制系統,發現小車對於彎道的擬合效果差,多次調節B引數、方向控制比例係數,彎道擬合效果有所上升,但仍然不理想。在當時初步判定是引數調節的思路錯誤,以及遍歷程度有所不足,故多次重新進行數學推演、引數遍歷,嘗試獲得更優的結果。

一次演算法推倒後的引數遍歷中偶然產生了逆時針行駛時彎道的敏感性、擬合程度高於預期的現象。為增強彎道擬合效果,適當的降低了比例係數,但調整後產生了順時針行駛困難、S型彎道難以擬合、大半徑彎道切外環行駛等問題。對問題進行排查,發現在複製、貼上時偶然將演算法公式寫成:


公式C2的左右不對稱性造成了小車於逆時針(LM>RM)賽道的適應性良好,卻對順時針賽道適應性差的現象。對於排查後產生的問題,沒有立刻進行修復處理,而是先對其逆時針賽道的良好適應性進行了分析。

首先嚐試對錯誤演算法逆時針賽道良好適應性的產生進行理論假設,當小車入彎時,電感差比和加權演算法中位於分子上加權的(LM+RM)增大,導致err產生減小趨勢,該減小趨勢導致電感差比和對於彎道的敏感度下降。而當把分母上的(LM+RM)改為(LM-RM)後,小車入彎時err的分母增大趨勢顯然下降,err產生的減小趨勢更弱。因此,小車對逆時針賽道的適應性增強了。

此外,由於在長直道上,LM和RM的值趨近於0,所以更改後的式子對小車在長直道上行駛時幾乎沒有影響。

1.2 演算法的構造

為進一步證實理論假設的合理性,對演算法進一步的修改,更改後公式為:


使用公式C3,小車順時針、逆時針分別發車,觀察其差別以及對彎道的擬合程度。測試結果表明,使用公式C3進行測試的小車,在順、逆時針行駛時效果幾乎相同,並且對於彎道的擬合程度和敏感性皆高於使用公式C1時的測試結果。

由於演算法的改變,分子與分母上(LM+RM)加權係數顯然不再需要保持一致。對演算法引數進行調整後得到了一套穩定的直道彎道行駛方案,使用公式C4。

公式C4即為差比和差加權演算法的最終式,由於原LIMIT係數不再起限幅作用,改作比例係數P。

03演算法優勢的數學證明

2.1 構造小車過彎電感值變化模型

欲對演算法進行建模證明,首先要對小車過彎時,左、右電感的變化函式進行建模。現將小車置於直道與彎道相接處,使其電感前瞻位於直道與彎道交線正上方,並將小車沿中線緩緩向前推,每隔相同距離記錄電感資料,直到左、右電感資料無明顯變化時為止。

測得小車四個電感值如下表:

▲ 表C2.1 電感取樣表

▲ 表C2.1 電感取樣表

分析、權衡,使用以下函式對四個電感數值變化進行擬合:


擬合效果如圖C2.1.1,C2.1.2。

▲ 圖C2.1.1 電感LM(左),RM(右)擬合效果

▲ 圖C2.1.1 電感LM(左),RM(右)擬合效果

▲ 圖C2.1.2 電感L(左),R(右)擬合效果

▲ 圖C2.1.2 電感L(左),R(右)擬合效果

2.2 進行不同演算法位於相同位置的內、外環反饋比較

由於採集電感值時,時刻保持小車位於賽道正中,故還需要研究小車位於內環與外環的差異。由於小車左、右水平電感(L,R)受到小車左、右位置影響不大,而受小車前、後位置影響較大,採取固定L、R值的方式來確認小車的位置,並研究輸出誤差err隨LM、RM變化規律。

由採集得到電感值可以得到小車入彎程度相同時,不同位置(L+R)、(L-R)的值變化不大,而LM、RM變化較大,所以固定L、R的值來表徵小車入彎的程度,根據公式建立以下函式模型:


分別取n=0情況下L-R=300,L+R=2400;L-R=500,L+R=2200;L-R=800,L+R=2000來表示小車剛剛開始入彎,小車基本進入彎道,小車完全進入彎道,並使用公式C5來計算(LM-RM),(LM+RM),使用MATLAB畫出輸出誤差與小車位置關係。

▲ 圖C2.2.1 入彎初期演算法比較

▲ 圖C2.2.1 入彎初期演算法比較

▲ 圖C2.2.2 入彎中期演算法比較
▲ 圖C2.2.2 入彎中期演算法比較

由圖2.2.1,2.2.2可以看出,小車剛剛入彎,雖然差比和差演算法所帶來的輸出誤差曲線的斜率較高,但是兩曲線之間沒有明顯的區別。小車初步進入彎道後,差比和演算法在內環的輸出誤差影象斜率驟降,系統缺乏魯棒性。

▲ 圖C2.2.3 彎道內演算法比較

▲ 圖C2.2.3 彎道內演算法比較

由圖C2.2.3可以看出,小車基本進入彎道內,此時差比和在外環的輸出曲線已經出現負斜率,難以維持負反饋,此時小車若是受到一定程度的擾動,很可能因超出演算法承受閾值產生過調抖動甚至衝出賽道。相反的,差比和差演算法的輸出誤差曲線和其他入彎階段的趨勢基本保持一致。

▲ 圖C2.2.4 理想假設

▲ 圖C2.2.4 理想假設

若是LM-RM繼續增大到一個實際難以達到的數值,可以看到差比和演算法已經崩潰,但是差比和差演算法仍然保持其原有特性不變。

由此可以證明,電感差比和差加權演算法,相較電感差比和加權演算法對彎道有著更高的擬合度,更加能夠適應外界干擾。

2.3 進行不同演算法動態入彎靈敏度比較

將公式C5變式,得:


代入入公式C6,C7,使用MATLAB對x,y,err進行三維建模,結果如圖C2.3.1。
▲ 圖C2.3.1 三維模型

▲ 圖C2.3.1 三維模型

在三維影象中,除差比和差加權演算法沒有差比和加權演算法所產生的邊緣上卷現象(對應圖C2.2.3,C2.2.4中斜率翻轉區域),沒有發現明顯特徵,故嘗試沿Y=X對三維影象抽樣,進一步進行分析,抽樣後如圖C2.3.2。

▲ 圖C2.3.2 抽樣後曲線

▲ 圖C2.3.2 抽樣後曲線

抽樣後即為小車持續沿中線走時的誤差反饋,發現差比和加權演算法與差比和差加權演算法的靈敏度差異並不明顯。結合C2.1的靜態分析,推斷差比和演算法對彎道有更高靈敏度的原因是小車入彎時往往有切外環的趨勢,差比和差演算法能夠提供更加穩定的負反饋所致。

C2.4 差比和差加權演算法對比差比和中間電感偏置演算法的優勢

未加比例係數時,差比和演算法會將輸出誤差限制在1以內,但是差比和差加權演算法顯然突破了這一限制,這也代表著差比和差加權演算法損失了一定的賽道適應性,每次更新賽道,在引數上都要進行一定程度的修改。也就是說,差比和差加權演算法不能像差比和一樣,因為其對於各種賽道適應性高的優勢規避與其他無此類優勢演算法的競爭。

這就不得不再談一下公式C6:

可以看到,分子和分母上都有(LM-RM)參與運算,不難看出(L-R)是一定小於(L+R)的,那麼理論上只要不出現k比k+n大到一定程度的情況下,該公式可以看作傳統的左右水平電感差比和加權,再加上一部分(LM-RM)的加權,那麼問題就產生了,為什麼我選擇電感差比和差加權演算法,而不是直接在水平電感差比和演算法後,加上一個帶比例係數的(LM-RM)來偏置呢?


首先,通過觀察可以得出第一個結論,公式C9的除錯過於複雜,差比和加權演算法在沒有比例係數的情況下,輸出是一個小於1的數,而(LM-RM)的值太大了,需要將其乘上一個非常小的數,或者將差比和運算後乘上一個非常大的數,才能使偏置項和差比和互相匹配。並且,這麼做又會產生一個更大的問題,即哪怕訊號源或賽道產生了一絲的變化,其影響都會在式子中被放大,演算法的穩定性哪怕比上將(LM-RM)、(L-R)直接乘以比例係數作為誤差輸出的演算法還要差得多。

其次,嘗試對水平電感差比和偏置演算法進行了建模,公式如下

將中間兩縱向電感的差值乘以1/3000才得到一條不錯的曲線。
▲ 圖C2.4 曲線對比

▲ 圖C2.4 曲線對比

圖C2.4中,差比和偏置演算法的內環區資料斜率要小於差比和差加權演算法,而曲率又更大,小車更難切內環行駛。如果想讓小車切內環行駛,就需要增加中間兩縱電感的權值,但是如果演算法的曲線出現了差比和加權演算法的內環區反增的趨勢,則會產生過調抖動,容易衝出賽道;若是出現了曲率過大的情況,那麼小車就更難切內環行駛。

差比和所輸出誤差值曲線更加貼合一次曲線,能夠支援小車入彎切內環行駛,而其他很多演算法無法做到這一點,這也是差比和差演算法出色的優勢之一。

2.5 小結

本章從不同角度入手,用各種方式證明了電感差比和差演算法對彎道道型有著良好的親和度,同時也具有很高的穩定性;證明了電感差比和差加權演算法相較於電感差比和加權演算法,水平電感差比和偏置演算法的優勢。

除此之外,電感差比和差演算法由於分母的減小,其輸出誤差所需的比例係數也有所下降,小車在長直道型上行駛時的抖動也會有所下降。需要注意的是電感差比和差相較於電感差比和加權演算法,賽道適應性有所下降,需要對各項引數投入更多關注。

04演算法除錯

3.1 調節電感差比和加權演算法

直接調節電感差比和差加權演算法,可能會因無法直觀的瞭解各引數而走彎路,故建議先調出一套相對穩定的電感差比和加權方案,然後將其改寫為電感差比和差加權演算法。這樣做的理論依據有二,其一,長直道上,縱向電感值接近於零,兩演算法差距不會太大。第二,由第二章所建立的模型中可以看出,小車沿中線行駛時,兩加權演算法的輸出誤差曲線相似,差比和差加權演算法的引數可由差比和加權演算法引數微調獲得。

3.2修復過調

以電感差比和加權演算法調試出一套慢速穩定的方案後,將算式改寫為差比和差加權演算法,此時由於分子的下降,小車在彎道道型出現小幅度過調。此時輕微降低比例係數(約為差比和加權演算法的0.7到0.8倍)即可完全擬合。

※ 參考文獻

[1]殷劍巨集,吳開亞.圖論及其演算法[M].中國科學技術大學出版社,2003.

[2]卓晴,黃開勝,邵貝貝.學做智慧車:挑戰"飛思卡爾"杯[M].北京:北京航空航天大學出版社,2007.

[3]王盼寶主編.智慧車製作[M].北京:清華大學出版社,2017.

[4]譚浩強著.C程式設計[M].北京:清華大學出版社,2003.

[5]張文春.汽車理論[M].北京:機械工業出版社.2005.