侯一民 朱志超
(東北電力大學自動化工程學院,吉林 吉林 132000)
智能車即無人駕駛車輛,涉及環(huán)境感知、路徑規(guī)劃、駕駛行為智能決策、車輛導航定位及車輛自動控制等技術領域,作為智能交通系統(tǒng)中許多高新技術的載體而受到廣泛關注。對于智能車的研究,控制部分作為最底層和最重要的環(huán)節(jié),是智能車的核心部分[1]。
PID算法作為典型的傳統(tǒng)反饋控制,以結構簡單、魯棒性好及穩(wěn)定性高等優(yōu)點而廣泛應用。肖建文和李永科運用增量型PID控制算法對舵機和電機進行控制,但在環(huán)境變化時,該算法不能及時自整定控制參數,小車的行駛易受干擾而出現(xiàn)振蕩[2]。針對這一缺點,林煥新等提出了模糊PID控制算法,該方法克服了PID參數不能自整定的缺點,但模糊控制規(guī)則是根據研究者的先驗知識和實踐經驗確定的,具有不完整和主觀性強的缺點[3]。黃志強提出了分段PID控制算法,該算法需對路徑進行分段,降低了控制器的運行速度,從而影響小車的行駛速度[4]。為此,筆者嘗試將具有自學習、魯棒性強及不需建立具體的數學模型等優(yōu)點的單神經元算法與經典PID算法相結合實現(xiàn)對智能車的控制。
智能車能否平穩(wěn)快速行駛,取決于小車系統(tǒng)的路徑識別、判斷及反應能力等,這都與小車的硬件系統(tǒng)有關,因此設計時要充分考慮其合理性。智能車硬件整體結構如圖1所示。
圖1 智能車硬件整體結構框圖
由壽命長、污染小的額定電壓為7.2V的鎳鎘充電電池為智能車各系統(tǒng)提供特定電源,以MK60DN512ZALQ10單片機為控制核心[5],經線陣CCD鏡頭采集的賽道信息成像在感光元件上,量化后得到128個電壓值,經運算放大器傳給單片機的A/D轉換器,并進行圖像處理,將結果傳給控制器,輸出結果:
a. 經單片機FTM模塊產生方波,傳給BTN7960模塊,根據輸入的占空比控制輸出電壓,進而控制電機轉速,最終的控制目的是使智能車以最快的速度沿賽道中心線穩(wěn)定運行;
b. 單片機FTMPW模塊產生PWM方波,方波的脈寬決定了舵機的輸出轉角,用于控制車輪沿賽道中心線行駛,最終的控制目的是使智能車能夠做半圓周運動,即駛過彎道。
智能車在直道行駛時,經BTN7960芯片輸出的電壓與電機轉速成正比,因此只需對舵機建立運動學模型。智能車的舵機安裝在前軸中心處,所以舵機驅動角度與前輪轉向角度成正比關系,因此只需證明智能車在轉彎時是圓周運動,控制器即可實現(xiàn)對舵機的轉彎控制[6]。智能車舵機運動力學分析如圖2所示,智能車從M點出發(fā)以速率vA行駛t時刻后走過弧長S到達N點,vD為車前輪轉過一定角度后的行駛速率;O′為瞬時轉向中心。
圖2 智能車舵機運動力學分析
由圖2可知,智能車運行弧長S對應的半徑R為:
(1)
式中L——車前輪與后輪間的距離;
β——前輪行駛方向偏離軸中心線的角度。
角度ψ對時間的積分公式為:
(2)
其中,vA為車后輪行駛速率;ψ為車后輪行駛方向偏離國際坐標軸x軸的角度。
圖2中令M點坐標為(xM,yM),將其對時間進行積分可得:
(3)
(4)
將式(2)代入式(3)、(4)并對其進行積分,可得:
(5)
(6)
化簡消掉ψ可得:
(7)
式(7)中,a、b和L均為常數,因此其結果只與β有關,當β確定時,M點的運行軌跡為圓。所以可以確定智能車在轉彎過程中做的是圓周運動,繼而可以應用控制器對智能車的舵機在彎道中進行控制。筆者引入單神經元PID控制器實現(xiàn)對智能車舵機的控制。
對于智能車控制系統(tǒng),若把跑道的路徑變化看作系統(tǒng)的輸入,那么此系統(tǒng)可以看作一個隨動系統(tǒng),智能車應跟隨道路變化而運行;若把跑道的路徑變化看作對智能車控制系統(tǒng)的擾動,那么此系統(tǒng)可看作一個恒值控制系統(tǒng),智能車應能夠適應道路曲變而更加平穩(wěn)快速地運行。因此要選擇合適的控制算法,既要滿足跟隨系統(tǒng)的動態(tài)特性,又要滿足恒值控制系統(tǒng)的穩(wěn)定性。
運行中,智能車的行駛環(huán)境會受光照等因素影響,針對電機和舵機的控制,應能實時準確地跟蹤多變的賽道。
采用傳統(tǒng)PID控制算法時,智能車的行駛方向和道路中心線之間的距離偏差,經過PID控制器的積分和微分環(huán)節(jié)處理后,分別計算出積分值和微分值,再將積分值、微分值和偏差按一定的線性規(guī)律組合,在比例環(huán)節(jié)作用下得到實際輸出,由于CCD傳感器是按一定周期獲取道路信息的,因此必須將連續(xù)的PID控制算法離散化,得到增量型PID算法:
(8)
3個系數在控制過程中分別起著重要的作用,因此對3個系數的在線實時整定非常必要。經典PID本身不具備參數自整定功能,很難控制智能車實時適應環(huán)境變化。
在此,筆者將魯棒性強的經典PID算法與自適應能力強的單神經元算法相結合,實現(xiàn)對智能車系統(tǒng)的控制。神經元網絡是智能控制的重要組成部分,是本質性的非線性系統(tǒng)。單神經元作為構成神經網絡的基本單位,具有自學習和自適應能力,且結構簡單易于計算,將其與PID算法相結合,通過修改神經元的權值系數ωi(t)實現(xiàn)其性能。也可以在一定程度上解決傳統(tǒng)PID調節(jié)器不宜在線實時整定參數,難以對一些過程復雜、參數時變、非線性和強耦合系統(tǒng)進行有效控制的不足。
單神經元的結構示意如圖3所示。
圖3 神經元數學模型結構
神經元的數學模型[7]如下:
(9)
式中u——神經元外部狀態(tài)輸出值;
xi(t)——t時刻單神經元的外部狀態(tài)輸入信號,即t時刻智能車的行駛方向和道路中心線間的距離偏差;
ωi(t)——t時刻神經元外部輸入信號xi(t)的權值系數;
θ——神經元狀態(tài)閾值。
單神經元PID控制器的結構框圖[8]如圖4所示。
圖4 單神經元PID控制器結構
取n=3、θ=0,則單神經元PID的外部狀態(tài)輸入即t、t-1和t-2時刻智能車的行駛方向和道路中心線間的距離偏差分別為:
x1(t)=R(t)-y=e(t)
(10)
x2(t)=e(t)-e(t-1)
(11)
x3(t)=e(t)-2e(t-1)+e(t-2)
(12)
單神經元PID的狀態(tài)輸出為:
(13)
由式(11)~(13)知,式(14)~(16)具有按偏差的比例、積分和微分輸入項,故ωi(t)可以看作是增量式PID的比例、積分和微分系數:
ω1(t)=ω1(t-1)+ηiz(t)u(t)x1(t)
(14)
ω2(t)=ω2(t-1)+ηpz(t)u(t)x2(t)
(15)
ω3(t)=ω3(t-1)+ηdz(t)u(t)x3(t)
(16)
其中,K為神經元比例系數,K的大小決定系統(tǒng)的快速性,但過大會使系統(tǒng)的超調量加大引起系統(tǒng)不穩(wěn)定,過小會使快速性變差,因此K值的選取要適中;ηp、ηi、ηd分別為比例、積分和微分學習速率;z(t)為性能指標或神經元遞推信號,z(t)=e(t)。
對于學習速率ηp、ηi和ηd的整定,可先取較小值。如果此時過程從超調趨向平穩(wěn)的時間偏長,可適當地增加ηp和ηd;反之則減小。如果響應特性出現(xiàn)上升時間短、超調過大的現(xiàn)象,應減小ηp;反之增大。權值系數ωi(t)的整定,采用有監(jiān)督的Hebb學習規(guī)則[9],學習規(guī)則又是通過計算算法來實現(xiàn)的。
有監(jiān)督的Hebb學習規(guī)則如下:
a. 選定權值系數ωi(t)的初值為ωi(0);
b. 由式(14)~(16)求得xi(t);
d. 計算y;
e. 調整ωi(t),若實際輸出與設定值相符,ωi(t)穩(wěn)定不變;否則返回步驟b,直到ωi(t)達到設定值。
有監(jiān)督的Hebb學習算法如下:
(17)
(18)
ωi(t)=ωi(t-1)+ηie(t)u(t)xi(t)
(19)
對于單神經元PID控制算法,不需要建立受控對象的精確數學模型,可由系統(tǒng)偏差來調整控制量,從而使系統(tǒng)達到期望輸出,對于PID和模糊PID控制算法所建立的傳遞函數[10]為:
(20)
取舵機的周期為0.200ms,經測試,智能車的單片機FTMPW模塊產生PWM方波的脈寬為0.005~0.025ms,對應舵機的輸出轉角為0~180°,將舵機左打死即將車輪擺正,可求得舵機偏差約為640份。又因線陣CCD感光元件是一條由128個點構成的直線,因此圖像的最大偏差為128份,控制器中的比例系數P可近似由下式求取:
(21)
采用試湊法分別求取Ki=3.0、Kd=0.0001。
采用PID、模糊PID和單神經元PID 3種控制算法的輸出響應曲線對比如圖5所示。
圖5 3種控制算法的輸出響應曲線對比
3條響應曲線的性能指標比較見表1,Tp為系統(tǒng)的響應速度;Ts為系統(tǒng)達到給定值的所需時間;超調量σ反映了調整過程中系統(tǒng)輸出最大值與穩(wěn)態(tài)值的偏差;振蕩次數N反映了響應曲線在調節(jié)時間范圍內圍繞穩(wěn)態(tài)值振蕩的次數。穩(wěn)態(tài)誤差ess是反映系統(tǒng)準確性的性能指標,當時間趨于無窮大時,系統(tǒng)響應的期望值與實際值之差。
表1 3條響應曲線的性能指標比較
綜上所述,采用單神經元PID控制算法對智能車進行控制,在穩(wěn)定性、準確性和快速性方面都取得了較好的控制效果。
分別用PID、模糊PID和單神經元PID 3種控制算法對智能車的舵機和電機進行控制,使其分別在相同環(huán)境的30m帶有不同彎道和直道、4m彎道和10m長直道中進行3次運行試驗,表2為所用時間與速度的對比。
表2 智能車在3種跑道上所用時間與速度的對比
從表2數據中可以看出:智能車在帶有不同彎道和直道的30m長賽道自主行駛時,采用單神經元PID控制算法時的平均用時最短,平均速度最快;在同彎度的4m長彎道中自主行駛,采用單神經元PID控制算法時的平均用時最短,平均速度最大;在10m長直道中自主行駛,采用單神經元PID控制算法時的平均用時最短,平均速度最大。證實了智能車在同等條件的賽道中自主運行,采用單神經元PID控制算法對智能車的電機和舵機進行控制,行駛速度最快、所用時間最短,能達到更好的控制效果。
筆者提出了應用單神經元PID控制算法對智能車進行控制,根據PID、模糊PID和單神經元PID 3種控制算法的Matlab仿真結果,以及分別應用于實際智能車控制實驗中的實測數據比較可知:由于單神經元PID控制算法的自學習自適應能力強,將其應用在智能車的舵機和電機控制后,智能車的運行速度更快、魯棒性更強、效果更好。
[1] 趙盼.城市環(huán)境下無人駕駛車輛運動控制方法的研究[D].合肥:中國科學技術大學,2012.
[2] 肖文健,李永科.基于增量式PID控制算法的智能車設計[J].信息技術,2012,(10):125~127.
[3] 林煥新,胡躍明,陳安.基于自適應模糊控制的智能車控制系統(tǒng)研究[J].計算機測量與控制,2011,19(1):78~80.
[4] 黃志強.基于CCD攝像頭智能車分段PID控制算法設計[J].電子設計工程,2011,19(2):55~57.
[5] 卓晴,黃開勝,邵貝貝,等.學做智能車——挑戰(zhàn)“飛思卡爾”杯[M].北京:北京航空航天大學出版社,2007:128.
[6] Liu Q Q,Wang B,Ma X W.The Research of Intelligent Vehicle’s Steering Control System Based on Fuzzy Control[C]. Advanced Computational Intelligence(ICACI).Nanjing:IEEE,2012:474~478.
[7] 王振臣,趙莎,楊康.汽車主動懸架單神經元PID控制器設計[J].機械設計與制造,2013,(11):29~32.
[8] 任俊杰.基于PLC的單神經元PID控制器的設計與實現(xiàn)[J].制造業(yè)自動化,2012,34(7):11~13.
[9] Zhang C N,Zhao M,Wang M.Single Neuron Rational Model of Arithmetic and Logic Operations[J].IEEE Transactions on Neural Networks,2011,3(11):739~747.
[10] 嚴大考,李猛,鄒棟,等.基于MC9S12XS128單片機的智能車控制系統(tǒng)的設計[J].華北水利水電學院學報,2013,34(1):106~110.