刁勤晴,張雅妮,朱凌云
(重慶理工大學 計算機科學與工程學院, 重慶 400054)
智能車在減少交通事故、交通堵塞和環境污染等問題上具有突出的優勢,受到了國內外專家學者的高度關注[1-4]。目前,在智能車的環境感知、信息融合、路徑規劃及運動控制等方面,已有大量研究,并取得了較多的理論與應用成果[5-8]。運動控制是智能車的核心部分之一,是指車載控制器依據當前周圍環境和車體位移及姿態等信息,按照一定的邏輯做出決策,繼而分別向驅動/制動及轉向等執行機構發出控制指令[9]。按照不同的要求與目標,智能車的運動控制可分為兩類:①將跟蹤預期巡航速度作為目標的運動控制稱為縱向控制;② 以跟蹤期望路徑為目標的運動控制稱為橫向控制。
為了確保車輛對道路的穩定準確跟蹤,現有的橫向控制研究中大多數將速度視為恒值,采用經典PID、最優控制、滑模、預測、模糊等控制策略,實現了車輛對直道及小曲率彎道(彎道半徑不小于100 m)的較高精度跟蹤[10-12]。然而,對于大曲率道路(彎道半徑不大于50 m),例如城市道路及山區公路,上述相關文獻中所提出方案的道路跟蹤精度不高。
針對大曲率道路的橫向控制問題,文獻[13]提出了一種基于旋轉投影雙切線的彎道曲率檢測方法,并給出了轉向角的控制策略。文獻[14]分析了在大曲率彎道下駕駛員的轉向操作規律,設計了一種基于模糊邏輯的雙并聯控制策略。文獻[15]建立了一種基于兩點預瞄的智能駕駛員模型,實現了不同橫向偏差下前輪轉向角的自適應調節。文獻[16]提出了一種采用三預瞄點檢測方法的智能車橫向控制策略,通過3個預瞄點實時獲取道路的曲率并據此調節轉向角。
上述4種控制方案均能實現車輛在大曲率彎道下的跟線行駛。然而,經過研究發現,上述跟蹤方式只要檢測到預瞄點的道路曲率發生變化,控制系統即刻做出轉向響應。對于預瞄距離比較大的情況,會造成轉向機構過早響應的問題。另外,不管是直道還是彎道路況,現有方案均基于恒定的車速進行控制。然而,在行車過程中直道的車速比較高,如果以直道的車速跟蹤大曲率彎道,那么就會導致車輛出現較大的離心力從而引發較大幅度的側傾。
為了避免智能車在大曲率彎道中轉向機構過早響應,提高車輛的行駛安全性及跟線精度,保證彎道中的車速在預定的控制范圍內,本文提出了一種雙點預瞄式智能車大曲率路徑的橫向模糊控制方法,建立了車輛控制系統模型、動力學模型及視覺預瞄模型,介紹了雙預瞄點的調節策略及其參數設計方法,在此基礎上給出了兩個預瞄距離的確定方法以及二維模糊控制器的設計方法,并采用遺傳算法優化了模糊控制器的控制規則。
本文以某輛改裝過的后驅式電動汽車作為試驗平臺,在其原有的組成和結構基礎上配備了多種功能模塊,如圖1所示。根據各個模塊的功能,將智能車控制系統分為感知層、決策層及執行層[9]。其中,感知層由各類位置、角度、視覺及姿態傳感器組成,主要用以檢測車輛自身及環境信息;決策層包括車載工控機及相關模塊,用以將各類傳感信息融合,并按照設定的邏輯制定出相應的控制策略;執行層主要包括轉向、驅動及制動伺服機構,用以執行決策層的控制指令。
本文構建了智能車的橫向控制系統(如圖2所示)。預瞄距離調節模塊的作用是依據車輛當前的位姿和道路信息來動態調節雙預瞄點的預瞄距離;視覺預瞄模型可獲得車輛在預瞄點處相對于目標路徑的橫向偏差yL和方位角偏差εL;橫向模糊控制器采用2輸入2輸出的結構,輸入變量為2個偏差yL和εL,輸出變量為前輪轉角δf和車輛受到的驅動/制動力矩Te。

圖1 實驗樣車

圖2 智能車橫向控制系統框圖
為了簡化分析,忽略車輛在垂向上的俯仰、繞縱向的側傾以及左右輪胎側偏特性的差異,僅考慮縱向、橫向及橫擺3個自由度,車輛的簡化模型如圖3所示。圖中:υx和υy分別為車輛的縱向及橫向速度;φ、δf和β分別為橫擺角、前輪轉向角及質心側偏角;lf和lr分別為質心與前輪和后輪的間距;αf和αr分別為前后輪的側偏角;Fyf和Fyr、Fxf和Fxr分別為前后輪胎的側向力和縱向力。

圖3 車輛簡化模型
根據牛頓力學方程,由圖3可建立車輛的動力學微分方程,如式(1)所示。
(1)
式中:kf和kr分別為前后輪胎的側偏剛度;Iz和m分別為車輛的轉動慣量及質量;fR、cx、cy分別為滾動阻力系數、縱向和橫向的空氣阻力系數;rω和Te分別為車輪半徑及驅動/制動力矩。
本文的樣車由安裝在車輛上方的CCD攝像機來采集前方道路信息,利用圖像處理算法得到車輛在預瞄點LA1處的道路曲率、橫向偏差和方位偏差以及預瞄點LA2處的道路曲率。假設樣車的質心與視覺傳感器安裝點重合,車輛與目標路徑的幾何關系如圖4所示。

圖4 車輛及目標路徑的幾何關系
圖4中:Xc-Yc為以質心為原點的參考系;LA1和LA2為2個預瞄點,預瞄距離分別表示為L1和L2,且兩者間距為ΔL;κ1和κ2為對應預瞄點的道路曲率;yL和εL分別為在預瞄點LA1處Xc軸與目標路徑的橫向偏差、預瞄點LA1處Xc軸與目標路徑切線的夾角。另外,前輪轉角和方位角偏差均以Xc軸為起始方向,逆時針為正,順時針為負;當目標路徑處于Yc軸正半平面時,yL為正,反之為負;Xc軸的正方向為車輛行駛的參考方向。
根據車輛的運動學方程,結合圖4可得到視覺模型:
(2)
聯合式(1)(2),即可得到車輛控制系統的數學模型,其中系統的狀態變量為υx、υy、φ、yL及εL,控制量為δf和Te。
本文采用LA1和LA2兩個預瞄點來獲取前方道路信息。檢測預瞄點LA1的作用是獲取前方道路的曲率κ1以及車輛相對于目標路徑的橫向偏差yL及方位角偏差εL,進而將偏差作為橫向模糊控制器的輸入量;預瞄點LA2的位置相對較遠,作用是實時檢測LA2點的曲率并結合LA1點的曲率來調節預瞄距離L1和L2。
為說明2個預瞄距離的取值方法,設定車輛先行駛在直道上,行駛一段路程后進入彎道,最后駛出彎道,其間2個預瞄點的道路曲率κ1和κ2共有4種組合方式,κ0為設定路徑的曲率。各個路段的預瞄距離與道路曲率如圖5所示。

圖5 預瞄距離與設定道路曲率的關系
在s0~s1路段,κ1和κ2始終為零,表明車輛行駛在直道。對于這類情況,L2依據關系L2=L1+ΔL選取,預瞄距離L1則根據車速取值,L1與車速的關系為:
(3)
式中:Ls_max、Ls_min分別為直道路況下預瞄點LA1的最大和最小預瞄距離;υ為車輛當前的速度;υmax和υmin分別為最大和最小車速。這4個參數共同決定了系數a1和a2。其中,Ls_max和Ls_min的取值需要考慮控制系統的阻尼特性及超調響應、視覺系統的可視范圍[9]。本文中,Ls_max=15.5 m,Ls_min=4.5 m,υmax=16 m/s,υmin=7 m/s,a1=1.22,a2=-4.04,ΔL=2 m。
當車輛在s1處,κ1=0且κ2≠0,說明道路前方存在彎道。此種情況下,為了避免L1過大而導致控制器過早響應,L2保持在s1處的取值,而L1根據曲率κ2進行調整,L1與κ2的關系表示為:
(4)
與式(3)類似,式(4)中Lc_max、Lc_min分別為彎道路況下預瞄點LA1的最大和最小預瞄距離,兩者與Ls_max和Ls_min類似,同樣要依據車輛的控制系統及視覺系統的特性來進行取值;κ2_max和κ2_min分別為預瞄點L2A檢測到的最大和最小曲率。對于本文,Lc_max=4 m,Lc_min=2 m,κ2_max=0.05 m-1,κ2_min=0.01 m-1,b1=-50,b2=4.5。
在s2~s3路段,κ1和κ2始終不為零,說明車輛行駛在彎道。預瞄距離L1同樣依據式(4)取值,同時L2=L1+ΔL。當車輛在s3處,κ1≠0且κ2=0,表明車輛即將駛離彎道進入直道。對于這種情況,L1和L2的取值保持在s3處的取值不變,直至車輛行駛至s4處。
模糊控制能克服非線性系統的參數不確定性,具有不依賴于精確的系統數學模型且魯棒性高等特點,能夠模擬駕駛員的操縱行為,因而適用于車輛的運動控制系統[9]。模糊控制器結構主要包括模糊化、隸屬度函數、規則庫、模糊推理及解模糊化。
為了降低控制算法的復雜度從而獲得轉向及驅動/制動機構的快速響應,本文模糊控制器的結構為2維輸入2維輸出,橫向偏差yL和方位角偏差εL作為控制器的輸入變量,輸出變量為前輪轉角δf和驅動/制動力矩Te。當Te對車輛起到牽引力的作用時,Te為正值,反之為負值。
根據樣車的特性參數及實際跟線效果,將yL和εL的基本論域設置為[-1.2 m,1.2 m]、[-30°,30°],而δf和Te分別為[-34.5°,34.5°]、[-220 N·m,220 N·m]。輸入變量和輸出變量的模糊集論域均為[-3,3],且輸入變量的量化轉換式及輸出變量的比例因子kz分別為:
(5)
(6)
其中:xin和xc、yout和yc依次對應輸入變量的精確值和模糊值、輸出變量的精確值和模糊值,Xup和Xlow、Yup和Ylow依次為輸入變量及輸出變量基本論域的上下限值。
為了確??刂频木群挽`敏性,以及控制器的響應速度,輸出變量的模糊子集包含了7個語言變量{NB,NM,NS,ZE,PS,PM,PB},每個變量的含義分別為“負大”、“負中”、“負小”、“零”、“正小”、“正中”、“正大”;輸入變量的模糊子集語言變量設置為{NB,NS,ZE,PS,PB},且輸入與輸出模糊子集的隸屬度函數采用三角函數和梯形函數,如圖6所示。

圖6 輸入與輸出變量的隸屬度函數
控制規則的確定是模糊控制器設計的關鍵,它直接影響控制器的性能。本文以若干名駕駛員作為對象,操縱樣車在實際路道中行駛,并記錄道路信息及車輛的狀態數據,繼而得到橫向偏差和方位角偏差與前輪轉角及驅動/制動力矩的關系。在此基礎上建立模糊控制規則庫R={R1…R25},其中每條規則均采用“IF-THEN”判斷語句,即
Ri:IFyL_cisYWiandεL_cisEWi
THENδf_cis ΔWiandTe_cisTWi
其中:YWi、ΕWi、ΔWi、TWi分別為yL_c、εL_c、δf_c和Te_c的模糊集語言變量。橫向模糊控制器的25條控制規則如表1所示。
綜合考慮推理的運算時間及精度,所設計的控制器采用了Mamdani模糊推理法。經模糊推理之后,還需要對控制器輸出的模糊量進行解模糊化。為了獲得相對連續的控制輸出,本文選擇了直觀且運算量相對較小的重心法[17]。該方法以隸屬度函數及其橫軸所包圍面積的中心橫坐標作為模糊量的精確值,即
(7)
式中:zi表示模糊控制器的輸出變量在其論域中的數值;μzi為zi的隸屬度函數取值;z表示控制器的輸出經過解模糊化后的精確值。

表1 控制器的模糊規則
基于駕駛員實地行車試驗及操控數據,經過反復試湊可建立初始的模糊規則庫。由此得到的初始規則庫能實現較好的跟線效果,但存在一定的主觀性。為使模糊控制器的控制規則達到全局最優,進一步提高控制的精度和平穩性,結合遺傳算法的全局優化特性,本文在初始規則庫的基礎上采用遺傳算法進行了模糊控制規則的優化。
為了提升運算效率和精度,同時避免產生不可行解,本文采用十進制整數對控制規則進行編碼。由于模糊控制器為2維輸入2維輸出的結構,2個輸入均有5種語言變量,因而控制規則Ri(i=1,…,25)相對應的1維染色體為50位數的碼串,即(rΔ1,rt1,rΔ2,rt2,…rΔ25,rt25)∈[1,7]。其中,編碼rΔi(i=1…25)的數值1~7依次對應于輸出變量δf_c的模糊子集{NB,NM,NS,ZE,PS,PM,PB};編碼rti(i=1,…,25)則對應于輸出變量Te_c的模糊子集。如表1所示的控制規則對應的染色體碼串可表示為(1,1,2,3,2,2,2,1,1,1,… 6,1,7,1)。
本文中控制策略的優化目標是:在確保橫向偏差和方位角偏差最小的情況下,采用盡可能小的轉向角以獲得較好的駕駛平順性,同時采用盡可能大的驅動/制動力矩來提升行駛和制動速度。針對該目標,本文采用的適應度函數為
(8)
式中:α1、α2、α3、α4為對應項在適應度函數中的權重,且α1=α2=0.35,α3=0.2,α4=0.1。適應度函數的數值反映了控制規則的優越性,適應度數值越高,說明采用該控制規則的系統響應特性越好。
遺傳操作模擬了生物基因遺傳的做法,對群體中的個體依據個體適應度的大小按照一定的概率進行操作,從而實現優勝劣汰的進化作用。本文采用選擇、交叉與變異3種遺傳算子[17]。
選擇算子的作用是從當前代的群體中選出優良的個體,并將其復制到下一代群體中。本文采用輪盤賭方法,該方法首先計算群體中所有個體適應度的總和,再分別計算每個個體的適應度所占的比例,最后以該值作為對應個體的選擇概率Psi。對于具有M個個體的種群,個體i被選中的概率Psi見式(9),式中i=1,2,…,M,Fi為個體i的適應度。
(9)
交叉又稱重組,是產生新個體、增大搜索空間的重要手段。本文的交叉算子采用兩點交叉法,該方法在相互配對的2個個體編碼串中隨機設置2個交叉點,然后依據交叉概率Pc交換2個交叉點之間的部分染色體,如圖7所示。

圖7 雙點交叉遺傳操作的示意圖
變異運算是產生新個體的輔助方法。本文的變異算子采用基本位變異方法,該方法首先對個體編碼串以變異概率Pm隨機設定1位基因座,然后該基因座的基因值用其他等位基因值來代替。
遺傳算法的具體流程如圖8所示。首先,初始化種群個體數M=100,遺傳代數n=100,交叉概率Pc=0.7,變異概率Pm=0.1;進而,建立生成初始種群,依據前述的模糊控制器設計方法來建立模糊推理系統并導入Simulink文件;繼而計算出每個個體的適應度值Fi、執行選擇、交叉及變異操作,直至達到設定的遺傳代數后獲得最優的控制規則。優化后控制器的輸入與輸出變量的曲面見圖9、10。

圖8 遺傳算法流程

圖9 yL_c、εL_c和輸出變量δf_c的關系曲面

圖10 yL_c、εL_c和輸出變量Te_c的關系曲面
為了驗證控制器的有效性及準確性,根據前述的車輛控制系統模型和控制器設計方法,以及表2的樣車參數,本文在Matlab/Simulink平臺上搭建了系統的仿真模型。其中,目標路徑共包含4個彎道,彎道1和彎道2的曲率分別為-0.01 m-1和0.02 m-1,彎道3和彎道4的曲率相對較大,分別為-0.04 m-1及0.05 m-1,目標路徑如圖11所示。

表2 樣車主要參數

圖11 目標路徑
為了分析對比遺傳算法優化前后控制系統對偏差的響應速度,設定車輛相對于目標路徑的初始橫向偏差和方位角偏差分別為0.5 m和10°,車速為10 m/s,可得到yL和εL的響應曲線(見圖12)。由圖12(a)可見,控制器消除橫向偏差的響應時間由優化前的1.3 s減小為0.7 s,而且優化后的超調量僅為優化前的20%;由圖12(b)可見,優化后控制器對方位角偏差的響應過程更加迅速,且變化相對平緩。
圖13表示車輛在180~280 m的行程中2個預瞄距離L1和L2的調節過程,該行程由2個彎道及1個直道組成。由圖可以看到:在路段1、路段2和路段3中,2個預瞄點的曲率κ1和κ2均相等,而且都滿足關系L2=L1+ΔL,其中:路段2為直道,L1和L2呈線性增加的趨勢;路段1和路段3為彎道,而且路段1的曲率小于路段3,2個路段對應的預瞄距離分別為4 m和3.5 m。
另外,在圖13的201.2~203.1 m路段中,κ1=-0.01 m-1,κ2=0,說明車輛將駛離彎道進入直道,在此期間L1和L2均保持在201.2 m處的數值不變;在247.5~253.7 m路段,κ1=0,κ2=0.02 m-1,表明車輛將由直道轉入彎道,此間L2保持數值9.6 m不變,而L1由7.6 m減小到3.5 m后保持在該值。此結果與預瞄距離的理論設計相吻合,表明所設計的控制系統的預瞄距離能夠依據道路曲率和車速做相應的調節,而且當道路曲率發生跳變時,預瞄距離L1能夠提前做出調整,從而避免控制器過早響應的問題。

圖12 遺傳優化前后的控制器響應對比

圖13 預瞄距離L1和L2的調節過程
圖14反映了車輛相對于目標路徑的跟蹤精度和控制效果,圖中的橫軸表示車輛相對參考原點行駛過的距離。其中,圖14(a)表示LA1預瞄點檢測到的曲率κ1。

圖14 跟線效果與控制輸出
圖14(b)(c)反映了行駛過程中車輛相對于道路的偏差情況??梢钥吹?,橫向偏差yL在整個行駛過程中始終在±3 cm的范圍以內。由圖(c)可見,車輛在彎道1和彎道2中的方位角偏差εL均不高于1°,在彎道3和彎道4中εL分別為-2.3°和3.1°,而所有直道的εL均為0。
圖14(d)(e)分別表示行駛過程中的車速及車輛受到的驅動/制動力矩??梢钥吹剑谥钡乐蠺e為正值,車輛受到牽引力的作用,處于勻加速的狀態;在曲率為-0.01 m-1的彎道時,Te接近于0,車速維持基本不變;在曲率較大的彎道2、3、4中,Te為負值,車輛受到制動力而減速,而且制動力矩的大小與彎道曲率呈正相關。
圖14(f)為行駛過程中車輛前輪轉角的調節過程??梢钥吹剑斍师?發生變化時,前輪轉角均能做出相對應的調整,而且每一次調整中的上升時間均不超過0.5 s。需要特別指出的是,在大曲率彎道的轉向中,轉向角的幅值出現了±7%左右的振蕩。這是由于曲率的較大幅度跳變導致了控制器輸出的超調響應,這一部分超調量需要經過一定時間的振蕩衰減才能達到穩定值。
綜上可以看到,所設計的控制器能夠依據道路曲率對車速進行有效的調節,在大曲率道路上車輛具有較高精度的跟線效果,達到了理論設計的控制效果。
本文提出了適用于大曲率路徑的雙點預瞄式智能車橫向模糊控制方法,給出了2個預瞄距離的確定方法以及模糊控制器的設計方法,并采用遺傳算法優化了控制規則。結果表明:① 所設計的控制系統能夠根據前方道路的曲率和車速對預瞄距離做出相適應的調節;② 控制器能夠依據車輛與目標路徑的偏差以及道路曲率的大小對車速進行有效的調節,同時車輛的前輪轉向角能夠以較高精度跟蹤目標路徑。
需要說明的是,由于隸屬度函數的選擇主要依據經驗性知識,存在一定的主觀性,因而所設計的控制器存在一定的穩態誤差。為了進一步提升控制精度,則需要同時優化隸屬度函數和控制規則。這部分內容將在后續的研究中開展。