孫晶云,魯東麗,郭軍,高云,陳宇峰,向鄭濤
(1.湖北汽車工業(yè)學院 電氣與信息工程學院,湖北 十堰 442002;2.浙江鴻程計算機系統(tǒng)有限公司,浙江 杭州 311100;
3.東風汽車動力零部件有限公司,湖北 十堰 442000)
車輛在行駛過程中能量消耗會受工況影響,針對不同工況制定不同的車輛能量管理策略,可以達到節(jié)能減排的效果[1-2]。目前國內外不少學者對行駛工況識別算法進行了研究,王憲彬[3]等人分析了商用車在行駛過程中的工況特點,基于樸素貝葉斯分類器對高速公路行駛工況進行識別。Lin等人[4]采用K-means算法對工況進行聚類,通過學習向量量化神經網絡實時識別行駛工況。文獻[5]基于聚類理論對3類行駛工況進行識別,并制定了混動車能量管理策略。Xie 等人[6]和Hazal 等人[7]提出利用模糊控制器結合其他模型進行工況識別。上述方法中,傳統(tǒng)聚類算法對聚類中心敏感,中心值選取對識別結果影響大;使用傳統(tǒng)的神經網絡算法時,需要預先獲得大量訓練數據,在實際操作中有一定困難,如訓練時間過長、數據量小時訓練效果不佳等[8];傳統(tǒng)模糊識別方法對專家經驗依賴大,需要反復調整隸屬度函數。SVM通過更改重要參數影響識別精度[9],PSO算法可以快速搜索到最優(yōu)參數,但是有陷入局部最優(yōu)的可能性[10]。為避免以上問題,文中結合SVM和PSO算法的特點,提出了基于遺傳粒子群優(yōu)化支持向量機(genetic algorithm for particle swarm optimization support vector machine,GAPSO-SVM)模型的行駛工況識別算法,并將優(yōu)化后的GAPSO-SVM 模型與K-CV-SVM 模型、PSO-SVM模型進行對比分析。
傳統(tǒng)SVM 是經典的二分類算法,該算法將輸入的樣本特征參數變換至高維特征空間,使樣本線性可分,再求解尋找超平面,在保證識別精度的同時使該超平面與樣本間的間隔盡可能大[9]。假設給定訓練樣本:
式中:xi為輸入樣本;yi為對應樣本的標簽。超平面記作:
式中:w為超平面的法向量;b為超平面的截距。距離超平面最近的樣本點為支持向量,不同類別的支持向量間隔d為
構建Lagrange函數求解該約束優(yōu)化問題:
式中:ai為各樣本的Lagrange 乘子,是非負變量。分別對式(5)中的w和b求偏導數并置零,將該約束優(yōu)化問題轉為對偶問題,從樣本中得到超平面的決策函數:
在解決實際問題時,樣本通常是非線性可分的。針對非線性問題,SVM引入了核函數,同時定義松弛變量ξi≥0 和懲罰系數C>0。假定存在1 個非線性轉換φ(x),樣本通過該轉換可映射到高維特征空間,在新的特征空間中構造超平面。此時超平面的決策函數為
常用的核函數有線性核函數、多項式核函數和高斯核函數,由于高斯核函數可映射到無窮維度,且結構不復雜,文中使用經驗法選取常用的高斯核函數作為核函數[9-11]:
式中:g為核函數寬度。在SVM 求解過程中,參數C和g的選取對分類效果影響大。C越大表示容錯性越小,可能出現過擬合,C越小則可能欠擬合;g越大表示支持向量越少,g越小則支持向量越多。文中通過GAPSO算法對C和g進行參數尋優(yōu)。
標準PSO 算法中,各粒子進行信息傳遞,粒子記錄并更新個體極值pb和全局極值gb,根據個體和群體的經驗進行速度調整[12]:
式中:ω為慣性權重系數,ω越大則越傾向于全局搜索,反之則傾向于局部搜索;vti為第t次迭代時粒子i的速度;c1、c2為學習因子,是非負常數,分別調整粒子向pb和gb位置飛行的最大步長,學習因子越大粒子飛向目標區(qū)域的速度越快,存在越過目標區(qū)域的可能,反之速度越小,存在遠離目標區(qū)域的可能;r1、r2為[0,1]的隨機數。根據速度,粒子對自身位置xi進行更新:
PSO算法具有收斂速度快的特點,同時可能因為過早收斂陷入局部最優(yōu)。GAPSO算法通過引入GA 中的雜交和變異操作,允許粒子在過早收斂前跳出局部最優(yōu)搜尋其他區(qū)域[10]。雜交概率pc和變異概率pm為[0,1]的隨機數,隨機選取2個粒子xcr1、xcr2,根據pc決定該輪循環(huán)是否進行雜交操作,新粒子的位置更新公式為
若雜交后子代適應度高于父代,粒子位置更新為子代位置,否則位置不變。根據pm決定該輪循環(huán)是否進行變異操作,并隨機選取變量進行變異,新粒子的位置更新公式為
式中:隨機變量Y服從期望為0、方差為1的高斯分布,其概率密度函數為
若變異后子代適應度高于父代,粒子位置更新為子代位置,否則位置不變。GAPSO-SVM 算法中,將行駛工況識別精度作為適應度函數:
式中:n0為訓練集中正確分類樣本數;N0為訓練集樣本總數。GAPSO-SVM算法流程如圖1所示。
圖1 GAPSO-SVM算法流程
使用現有的標準工況構建典型工況數據庫,在MATLAB上完成GAPSO-SVM模型仿真,并使用該模型進行行駛工況識別。
根據不同工況的特點,選定城市、郊區(qū)、高速3類典型工況進行識別[10,13]。城市工況中紅綠燈多,交通流量相對較大,偶爾會出現道路擁堵的情況,車速偏低;郊區(qū)工況中車輛能夠保持一定速度穩(wěn)定行駛,與城市工況相比怠速及停車情況更少;高速工況中速度較高且整體波動較小,幾乎不存在擁堵情況。選取各國發(fā)布的標準輕型車行駛工況進行裁剪拼接,為避免過擬合,將每個標準行駛工況分別選取80%和20%構成訓練數據和測試數據,使用標準行駛工況WLTP 低速部分、NYCC、USA_CITY_II、UDDS 構成城市工況;WLTP 中速部分、ARTEMIS_ROAD、USA_CITY_I 構成郊區(qū)工況;WLTP 高速及超高速部分、USA_FTP_HIGHWAY、ARTEMIS_MOTORWAY 構成高速工況,對數據拼接處做平滑處理[14]。拼接后的3 類工況訓練數據見圖2a,3類工況測試數據見圖2b。
圖2 不同工況數據
考慮到拼接后每類工況的總時長不同,使用隨機數法抽取樣本。實驗時取連續(xù)數據片段120 s構成1 組樣本,從每類行駛工況的訓練數據中抽取160組樣本構成訓練集,從每類行駛工況的測試數據中抽取40組樣本構成測試集,共計600組樣本。各樣本的初始時刻為
式中:α為(0,1)的隨機數;T為某類工況數據的總時長;ΔT為樣本片段時長,取120 s。
行駛工況的特征值反應了不同工況的特點,根據文獻[10,15],盡可能多地考慮特征參數選取,綜合分析選取最大速度、平均速度、平均加/減速度、最大加/減速度、平均運行速度、速度標準偏差、加速度標準偏差、勻/加/減速比例作為特征參數。通過計算得到每組樣本的12 個特征參數,為了統(tǒng)一特征參數的數量級,將特征值進行歸一化處理:
式中:Xmax、Xmin分別為樣本中特征值X的最大值與最小值。車輛行駛過程中特征值會隨著工況的變化而變化,且特征參數之間存在一定關系,若考慮所有特征參數進行行駛工況識別會降低識別準確率。因此使用主成分分析法對特征參數進行預處理,主成分貢獻率及累計貢獻率見表1。
表1 主成分貢獻率及累積貢獻率
根據文獻[16],累計貢獻率達到80%以上且特征值大于1的主成分包含大部分信息。由表1可知前4個主成分的累計貢獻率為88.9021%,已超過80%,且前4個主成分的特征值均大于1,因此選取前4個主成分進行得分計算,根據排名選取最大速度、平均速度、平均加速度、平均減速度作為后續(xù)的識別模型輸入參數。
行駛工況識別仿真使用K-CV-SVM、PSOSVM和GAPSO-SVM分別進行模型訓練,再進行識別準確率對比。使用的行駛工況識別方法流程圖如圖3所示。
圖3 行駛工況識別方法流程圖
使用K-CV 對參數C和g進行網格尋優(yōu)時,最優(yōu)參數值為識別準確率最高時對應的參數值,設置C、g取以2為底的離散值,范圍為
根據文獻[17-19]選取3 組參數組合,分別標記為P1(ω=0.7298、c1=c2=1.49618)、P2(ω=0.6、c1=c2=1.7)、P3(ω=0.4、c1=c2=2)。最大迭代次數為100,種群數量為40,重復實驗10次,取實驗平均值作為識別結果。PSO 和GAPSO 在3 組參數組合下的實驗結果如圖4 所示。由圖4 可知,3 組參數對識別精度的影響都在1%內,并且GAPSO的識別精度都高于PSO,PSO 和GAPSO 在參數組合P2下均達到最高,因此選定P2組合作為后續(xù)實驗參數。
圖4 不同參數下PSO與GAPSO的識別精度
使用PSO模型進行參數尋優(yōu)時,設置最大迭代次數為100,種群數量為40,ω為0.6,c1、c2分別為1.7;使用GAPSO 模型進行參數尋優(yōu)時,設置最大迭代次數為100,種群數量為40,ω為0.6,c1、c2分別為1.7,Pm、Pc分別為0.3 和0.7。GAPSO 法尋優(yōu)過程見圖5。3 種模型的訓練結果對比見表2。使用GAPSO-SVM模型的訓練集最優(yōu)識別精度分別比KCV-SVM和PSO-SVM模型高出1.04%和0.21%。
圖5 GAPSO尋優(yōu)過程
表2 訓練結果對比
測試樣本共120組,城市工況、郊區(qū)工況、高速工況各40組,重復實驗20次,取實驗平均值作為識別結果,3 種模型的測試集識別結果見表3。使用K-CV-SVM、PSO-SVM 和GAPSO-SVM 的識別精度分別為78.79%、81.75%和84.38%,使用GAPSOSVM 模型的總識別精度相較于K-CV-SVM、PSOSVM分別提升了5.59%、2.63%。3種模型對測試集的郊區(qū)工況識別錯誤率最高,同時GAPSO-SVM模型的各工況識別精度要高于其他2種模型。
表3 不同算法的測試集工況識別精度
文獻[15]中采用PSO-SVM 算法進行識別,測試樣本識別率可達93.125%。若采用文獻[15]的樣本獲取方法,文中提出的GAPSO-SVM算法的識別率可達到97.5%。在樣本獲取階段直接采用隨機數法進行樣本抽取,訓練樣本和測試樣本重疊,識別過程中存在過擬合問題,導致識別率偏高。因此,文中提前劃分了訓練數據和測試數據,分別在訓練數據和測試數據中獲取樣本。
利用現有標準工況構建3類典型工況,對不同類別的工況進行特征參數提取,并使用歸一化、主成分分析進行數據預處理。建立GAPSO-SVM 識別模型,并在MATLAB 上進行仿真實驗。在測試集上分別用K-CV-SVM、PSO-SVM、GAPSO-SVM模型對比識別精度,實驗結果表明,GAPSO-SVM模型的識別精度分別比K-CV-SVM、PSO-SVM 高出5.59%、2.63%。由于各地區(qū)的道路交通規(guī)則不同,車輛行駛過程中行駛工況會受路況影響,后續(xù)研究將實際采集車輛行駛工況進行模型訓練,并結合路況信息對識別結果進行修正。