馬榮影,儲江偉,艾曦鋒,李宏剛,韓 銳
(東北林業(yè)大學 交通學院,黑龍江 哈爾濱 150040)
在不斷開發(fā)應用先進的汽車節(jié)能技術(shù)的同時,深入研究分析汽車駕駛行為對汽車運行能耗的影響,改善不良駕駛習慣,是提高燃油利用率降低油耗的行之有效的方法。針對汽車駕駛行為對運行燃料消耗影響的研究,目前已開展的主要工作有:分析影響油耗的主要因素,提出減少油耗的措施[1];根據(jù)汽車實際運行工況建立數(shù)據(jù)庫,構(gòu)建試驗工況,分析汽車的燃油經(jīng)濟性[2];通過分析各工況的時間特征參數(shù)、速度特征參數(shù)和加速度特征參數(shù)對燃油消耗的影響[3];利用k-均值聚類方法對行駛工況的構(gòu)建方法進行研究[4,10-11];以曼谷某試驗車輛在標準底盤測功機上行駛的實測數(shù)據(jù)為基礎,研究不同駕駛周期對汽油客車尾氣排放和油耗率的影響[5];依托自然駕駛設備設計自然駕駛實驗,研究測試者行駛工況與車輛能耗間的作用關(guān)系,發(fā)現(xiàn)不同運行工況會導致顯著的油耗差異,測試者頻繁地加減速會增大油耗水平[6];以合肥市典型道路為研究對象,利用粒子群優(yōu)化的模糊 C 均值聚類方法對運動學片段分類,建立基于運動學片段的工況構(gòu)建模型[7];對典型道路上采集的百公里燃油消耗和行駛工況數(shù)據(jù)進行劃分,獲得大量行駛片段,采用主成分分析和神經(jīng)網(wǎng)絡相結(jié)合的燃油消耗預測模型[8];針對采集的不同駕駛員所駕駛的商用車和乘用車的行駛數(shù)據(jù),基于 K-means 聚類,將駕駛風格聚為 3 類具有較好的分類效果[9]。
上述研究主要是基于車輛行駛工況對車輛油耗的影響進行分析,本文則不僅僅運用車輛的行駛工況數(shù)據(jù)且基于發(fā)動機工作狀態(tài)參數(shù)數(shù)據(jù)對車輛運行油耗進行聚類分析。定義車輛從行車開始至行車結(jié)束為一個行程片段。利用同一個駕駛員駕駛同一輛汽車采集的89個行程片段,近20萬條的車輛運行狀態(tài)參數(shù)數(shù)據(jù),基于每個行程的平均油耗,使用可代表每個行程的運行特征參數(shù)數(shù)據(jù),將行程片段進行聚類,進而找出汽車運行狀態(tài)參數(shù)對油耗的影響。
本文研究所用數(shù)據(jù)樣本是通過OBD檢測儀獲取的車輛運行的89個行程片段共190 173條數(shù)據(jù)集,平均采樣間隔為1.1 s;采集的發(fā)動機工作狀態(tài)參數(shù)和車輛行駛特征參數(shù)有:怠速時間(TI)、節(jié)氣門位置(TP)、發(fā)動機轉(zhuǎn)速(ne)、熱車時間(TH)、車速(v)、加速度(a)與平均油耗(FA)等。
將車輛行駛特征參數(shù)處理成可代表每個行程狀態(tài)屬性的數(shù)據(jù),即怠速比例(IR)、勻速比例(CR)、加速比例(AR)、減速比例(RR)、平均速度(vA)、平均轉(zhuǎn)速(NA)、熱車時間(TH)、平均節(jié)氣門開度變化率(PA)、平均節(jié)氣門開度(TA)和平均油耗(FA),數(shù)據(jù)樣本的行程狀態(tài)屬性見表1。
表1 數(shù)據(jù)樣本的行程狀態(tài)屬性
因每個行程片段的類別屬性未知,所以使用聚類,即在沒有給定劃分類別情況下的分類方法。本文中使用的聚類算法是基于Python的機器學習函數(shù)庫(Scikit-learn)中的K-means算法。K-means算法實現(xiàn)簡單、計算速度快、原理易于理解、具有理想的聚類效果。該算法的基本思想是以空間中K個點為中心進行聚類,對最靠近它們的對象歸類。通過迭代的方法,逐次更新各聚類中心的值,直至得到最理想的聚類效果。
聚類首先要確定的是聚類數(shù)K,其選取應以簇內(nèi)的稠密程度和簇間的離散程度為依據(jù),并以此來評估聚類效果。本文采取聚類評價指標是肘部法。
K值的確定,通常是需要根據(jù)具體的問題由人工進行選擇,為了確定最優(yōu)聚類數(shù)K,使用“肘部法”。如圖1所示,使用數(shù)據(jù)點與聚類質(zhì)心的平均距離作為K值的度量,增加聚類數(shù)量總是會減少聚類點的距離,根據(jù)距離函數(shù)與K值的變化曲線,再選擇變化率急劇下降的“肘點”,即可用來確定理論的最優(yōu)K值[12]。因此,聚類效果可采用所有樣本的聚類誤差SSE來表達:
(1)
式中:Ci為第i個簇;P為Ci中的樣本點;mi為Ci的質(zhì)心(Ci中所有樣本的均值)。
隨著聚類數(shù)K的增大,樣本劃分會更加精細,每個簇的聚合程度會逐漸提高,那么誤差平方和SSE自然會逐漸變小。當K小于真實聚類數(shù)時,由于K的增大會大幅增加每個簇的聚合程度,故SSE的下降幅度會很大,而當K到達真實聚類數(shù)時,再增加K所得到的聚合程度回報會迅速變小,所以SSE的下降幅度會驟減,然后隨著K值的繼續(xù)增大而趨于平緩,也就是說SSE和K的關(guān)系圖是一個手肘的形狀,而這個肘部對應的K值就是數(shù)據(jù)的真實聚類數(shù)。
使用plt.plot()函數(shù)繪出K值與其相對應的SSE值,如圖1所示。從圖1中可看出K取值為2時,聚類效果最優(yōu)。
圖1 基于肘部法K值的確定
調(diào)用Python語言平臺使用K-means算法,基于手肘法可知,設置聚類數(shù)n_clusters=2,設置n_init=10,10個不同的初始化質(zhì)心即運行算法的次數(shù),最大迭代次數(shù)max_iter設置為300,algorithm設置為傳統(tǒng)的K-means 算法“full”。將車輛運行狀態(tài)參數(shù)中的汽車運行工況與其相對應的平均油耗進行聚類。聚類結(jié)果見表2。
表2 基于工況聚類行駛片段的結(jié)果
由表2可看出,在簇1中油耗均值較整體均值低13.86%,在簇2中油耗均值相對總體油耗均值增加了25.93%,在簇2 中怠速比例占總工況比例的28.6%,相比簇1中增加了53.8%,可說明在簇2中所采集的數(shù)據(jù)是車輛可能處于交通狀況不順暢的路段,在整個行程中28.6%的時間車輛處于怠速工況下。
將車輛運行狀態(tài)參數(shù)中的發(fā)動機工作狀態(tài)參數(shù)與其相對應的平均油耗進行聚類,其聚類參數(shù)的設置與汽車運行工況一組聚類中相同。得到表3的聚類結(jié)果。
表3 基于發(fā)動機工作狀態(tài)參數(shù)聚類行駛片段的結(jié)果
由表3可看出,在簇1中油耗均值較整體油耗均值低13.93%,在簇2中油耗均值較整體油耗均值增加了13.61%。在簇2中的平均速度相比整體的平均速度減少了24.62%,平均轉(zhuǎn)速相比整體的平均轉(zhuǎn)速降低了10.83%。
本文基于Python編程語言平臺的K-means算法對含有車輛運行狀態(tài)參數(shù)數(shù)據(jù)的車輛運行片段進行聚類分析,找出影響油耗的汽車運行工況和發(fā)動機工作狀態(tài)參數(shù),得到以下結(jié)論:
1)將車輛運行工況與其對應的油耗數(shù)據(jù)進行聚類時,在平均油耗值高的簇中,怠速比例較大,勻速工況所占比例較小,即車輛處于勻速狀態(tài)下行駛比例較少,車輛處于頻繁的加減速行駛,使一部分能量轉(zhuǎn)化為加速阻力和或制動時的熱能消失了。
2)在發(fā)動機工作狀態(tài)參數(shù)與其對應的油耗一組聚類中,油耗高的簇中主要是由于平均車速較低時,平均速度越小,相應的車輛發(fā)動機處于低負荷率運行狀態(tài),導致燃油消耗上升。