宋年云 宋元彬 劉康文


摘要:在對已有的電磁智能車循跡算法進行分析與總結的基礎上,最終設計出一套可行、穩定的電磁循跡三輪小車的控制策略。在方向控制方面,對已有的傳感器布局方式和偏差處理方式進行分析,得到了一種可以適應新型賽道元素—環島的循跡算法;在速度控制方面,改進了傳統PID算法,提出了一種針對速度控制的動態PD算法;最后介紹了三輪車電機串級控制策略。實驗證明,該循跡策略對電磁類的小車有很好的適應性。
關鍵字:三輪智能小車;動態PD算法;環島;串級控制
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)18-0206-03
如今,智能化在汽車電子領域有著廣闊前景[1]。本文是以第十三屆“恩智浦智能汽車”大賽為背景,設計并制作一輛基于電磁傳感器的自動循跡三輪車。電磁組競賽的軌道中心是帶有20 kHz,100mA可變交流電源的載流導線,智能車利用電磁感應原理檢測其產生的交變磁場來進行路徑判斷,通過計算前方導線偏離車體中心的距離來做出相應的方向控制,進而控制小車沿賽道尋線行駛[2]。本文基于現有的跟蹤算法,并根據自己的實際情況改進算法,使汽車對新的軌道元素-環島具有良好的適應性。
1 方向控制策略
1.1 電磁傳感器的設計及電感的擺放位置策略
智能車是根據道路中的電磁場信息完成自主導航的。在本研究中智能車導航的信號源是在軌道中心線處具有20mA交流電頻率為20kHz的漆包線,通電漆包線激發的電場和磁場根據一定的規律在空間傳播。根據畢奧-薩法爾定律,其周圍感應磁場的分布是一系列同心圓,圓上的磁場強度是相同的,且隨著半徑的增加而減小。
智能車采用傳統的電磁感應線圈,基于電磁感應原理作為電磁傳感器,因此選擇感應線圈尤為重要。標準化的“工字型”電感線圈感應面積大,靈敏度好。實踐證明這種電感線圈的綜合效果不錯。由于電流的頻率為20kHz,綜合考慮選擇10mH的工字型電感和6.8nF的電容相并聯后檢測磁場。
路徑信息能否快速準確地獲取和傳感器的布局有很大關系。電感是電磁車的眼睛,常見的擺放類型有:一字電感、豎直電感[3]等。
綜上所述,電感放置并不是單一的放置就能適應全程賽道,而是要多種方式相互補充,通過優化算法相互配合,才可以達到預期的效果。為了讓小車順利通過十字賽道,電感采用水平和豎直相結合的排布方式,即在雙水平排布的基礎上,兩側各增加了一個與水平電感垂直的豎直電感,結構圖如圖3所示,在計算時可以將兩電感視為在同一空間位置上。
1.2 電感偏差的處理
1.2.1 差比和法
1.2.2 開跟法
通過分析得到水平電感的差比和之所以存在極值,是因為當距離x大于其極值點時,分子的衰減速度大于分母的衰減速度,使得偏差值在極值點之外出現遞減趨勢。為此可以運用開根號法來降低中分子的衰減速率,使得偏差與距離成單調函數,從而反映實際偏差值。偏差計算公式如下:
1.2.3 環島的控制策略
環島賽道是由賽道左側或右側半徑在50cm至150cm的圓環組成,出入環形賽道的直線賽道與環島相切,且電磁線為并聯形式,如圖7所示。采用常規算法駛過環島時,由于左右電感的偏差很小導致不能準確及時地進行差速控制,此時小車可能會因入環狀態不同而出現不入環,入環擺頭而不入等幾種可能。可見及時提出一種新型智能車的位置算法,是正常進行后續調試的先決條件。
首先對圖7中的環島賽道元素進行分析,發現由于B點是雙線圈,導致電感在B點的最大值是其他賽道元素的兩倍。經測試,發現小車在B點的水平電感的偏差很小,不足以使小車過環島,而豎直電感存在偏差,但由于我們運用橫豎電感開跟方法計算的偏差,導致偏差過小。為此我們通過合理的排布電感位置,將環島劃分為四段,在上述開跟偏差計算的基礎上將水平電感和豎直電感按照一定的權重進行分配,提出設置橫豎電感權重分配分段處理的算法。
2 動態PD算法的提出與實現
2.1 傳統PID控制算法及其局限性
PID控制器是具有反饋功能的控制器。PID控制因其控制原理比較成熟,Kp/Ki/Kd各個參數易于調整,魯棒性強,使用簡單,所以具有很廣泛的應用。
在道路情況不是特別復雜的情況下,運用傳統PID算法就可以實現對智能車的精準控制,但是如果碰到如大S彎道、180度彎道、直角彎等復雜情況時,就會出現控制不穩定的情況,主要原因是傳統PID控制是一種線性控制算法,只在簡單的線性單變量系統中具有良好的控制效果,而在復雜多變控制系統中滿足不了人們的需求。
為了提高智能車在復雜道路環境控制的魯棒性,必須要結合道路的曲率來制定動態PID參數。
2.2 動態PD算法的分析與提出
為了改善傳統PID的缺點,提出了模糊PID算法,其主要實現思路是:根據實時采集的數據,計算出偏差和偏差的變化率,然后輸入到模糊PID控制器[4]中,經過模糊化和查找對應的模糊規則表,輸出三個參數的修正量Kp,Ki,Kd來確定PID的參數,再根據反模糊推理得出精確值。
該方法雖然可以實現參數自動調整的功能,然而,模糊控制規則表的制定過程比較復雜,且模糊控制的輸出是模糊集,需要運用相關清晰化方法來將輸出轉化成控制對象可以執行的特定量,而且對于剛參加比賽的新手來說難以理解。
為此我們從PID各個參數的作用入手,進行改進。
2.2.1 比例環節改進
對于比例系數Kp,當小車在直道上行駛時,小車的中心線和漆包線產生的偏差較小,給予較小的Kp值即可迅速回正,當小車在大彎道上行駛時,偏差相對較大,要給較大的Kp值才能削弱產生的偏差,但Kp值也不能過大,過大會造成車身抖動,甚至偏離跑道,當小車在小彎道上行駛時,Kp的取值介于直道和彎道之間。
為此我們在方向控制過程中可以采用基于方向偏差g_fDirError的二次動態P的方法控制。公式如下:
2.2.2 微分環節改進
對于微分系數Kd,當小車在直道上行駛時誤差變化率很小,給予較小的Kd值即可得到修正,如果Kd值過大,則意味著校正過度。當小車在大彎道上行進時,誤差變化率很大,要給予較大的Kd值進行超前修正,否則,會轉向不到位,很容易偏離跑道。當小車在小彎道上行駛時,Kd的取值介于直道和彎道之間。
對此,我們同樣基于方向偏差g_fDirError提出了二次動態D的算法,公式如下:
2.2.3 積分環節改進
積分作用的強度主要取決于積分時間Ti,Ti越大,積分作用越弱。
然而在調試的過程中,發現積分控制環節的引入在一定程度上會降低電機占空比的敏感度,還有可能會降低小車的響應速度,因此我們對偏差舍棄了積分控制,只用PD控制。故得到式7所示的動態PD算法。
為了驗證應用該算法后電磁小車系統的穩定性和快速性,我們在實驗室搭建了賽道,讓小車分別采用傳統PID算法和動態PD算法進行多次試跑。圖8為小車在同一速度下,經過小彎,90度彎道,180度彎道,270度彎道上的行駛路徑。
不難看出二次動態PD算法不僅可以克服小車出彎道或者直道或者過連續小曲率彎道震蕩的問題,而且算法相對比較簡單,具有很強的適應性。
3 電機的串級控制
電磁三輪車是雙電機系統,故小車真正速度g_fRealSpeed可以用左輪速度g_fLeftRealSpeed和右輪速度g_fRighRealSpeed和的一半來表示,如式8所示。
三輪智能車主要是通過電機PWM輸出不同實現后輪差速來進行轉向,所以速度控制和方向控制存在耦合關系,速度控制是在方向控制的基礎上進行的,所以無法用常規的速度負反饋進行疊加[5]。因此我們可以將方向控制和速度控制看作兩個控制器的線性疊加,對它們進行串級控制。
其中速度控制為外環,方向控制為內環。串級外環的控制周期要大于等于內環的控制周期,我們在程序PIT定時器中斷中,采用了 20ms進行一次速度處理,5ms進行一次方向處理的方案,經驗證,效果良好。
最終其左右輪電機的最終輸入如下:
4 總結
本文以電磁導航的智能三輪小車為對象,對小車的循跡算法進行了詳細的講解。對傳統PID算法進行改進,提出了基于偏差的二次動態PD算法,并且對于環島,提出了可行的解決方案。本文在做好所有硬件部分的基礎上,根據以上思路進行了程序設計及驗證,驗證了該套策略的可行性。
參考文獻:
[1] 蔡自興,徐光祐. 人工智能及其應用[M]. 北京:清華大學出版社,2004.
[2] 卓晴. 學做智能車:挑戰“飛思卡爾”杯[M]北京:北京航空航天大學出版社,2007.
[3] 陳國定,張曉峰,柳正揚.電磁智能車電感排布方案[A].浙江:浙江工業大學學報,2016.
[4] 王祥好. 模糊PID控制算法在智能小車中的研究與應用[D].合肥:合肥工業大學,2009.
[5] 衛劍梅. 串級控制系統的魯棒性分析與整定[D]. 北京: 華北電力大學,2005.
【通聯編輯:李雅琪】