王琳,劉偉建,裴永琪,馮捷
(陜西重型汽車有限公司,陜西 西安 710200)
基于MATLAB GUI的汽車動力性試驗數據分析軟件設計
王琳,劉偉建,裴永琪,馮捷
(陜西重型汽車有限公司,陜西 西安 710200)
文章對基于MATLAB GUI的汽車動力性軟件開發特點進行了詳細說明,并給出本課題主要流程圖。從軟件開發的流程、界面設計方法、回調函數編寫、常用函數應用等方面介紹了汽車動力性實驗數據分析軟件開發的過程,給出了軟件設計的界面,將軟件計算結果與人工數據處理結果進行了比對,進行了差異分析和精確度校核。最后附上了試驗結果記錄表格,并對研究過程進行了總結,提出了可行的改進方法。汽車動力性試驗數據分析軟件的完成,極大提高試驗數據的處理速度,達到了預期目標。
MATLAB;汽車動力性試驗;GUI;界面設計;軟件開發
汽車的動力性是指汽車在良好的路面上直線行駛時由汽車受到的縱向外力決定的、所能達到的平均行駛速度。汽車的動力性是發動機和底盤傳動系等總成及部件工作能力量化的體現。發動機和傳動系固有的工作能力由設計者確定,由制造形成,而在使用過程中逐漸喪失。本文主要結合對某型號車的動力性試驗,對試驗數據進行分析處理,從直接檔最低穩定車速、直接檔加速、起步換擋加速、滑行試驗(往、返)、最高車速等方面來評價汽車的動力性能,從而為汽車動力性的評價和改進提供可靠的依據。數據處理與分析依托于MATLAB/GUI編寫的可視化人機交互界面,可以方便的進行數據讀取、計算、圖形生成、結果保存與圖片保存,降低了后期試驗數據處理難度,大大縮短了試驗報告的書寫難度,縮短研究周期,對于后續的研究工作提供了便利。
數據校正方法:用實測初速度和實測滑行距離,按式(1)算出標準初速度V0=50km/h的滑行距離。

其中:S—初速度為50km/h時的滑行距離,m;a—計算系數,1/s2;
V0—實測滑行初速度 m/s2;b—常數,m2/s2(b=0.2;當車重≤40000N且滑行距離≤600m時,b=0.3);S’—實測滑行距離,m;C—常數,m2/s2(c=771.6)。
該方法適用于M類和N類汽車。數據處理:計算所有有效試驗數據的算術平均值、標準偏差和變化系數(標準偏差/算術平均值)。

其中:μ為算術平均值;i為第i次試驗;Ti為第i次試驗數據;n為試驗總次數;SD為標準偏差;k 為變化系數。
試驗結果按式6計算:

其中:V—汽車最高車速,km/h;t—往返試驗所測時間的算術平均值,s。

圖1 汽車動力性試驗數據分析軟件開發流程
MATLAB圖形用戶界面程序的前臺界面由一系列交互組件組成,主要包括按鈕、單選按鈕、框架、復選框、文本標簽、編輯文本框、滑動條、下拉菜單、列表框和雙位按鈕等。用戶以某種方式選擇或激活這些對象,通常引起動作或發生變化。最常見的激活方法是用鼠標或其他單擊設備去控制屏幕上鼠標指針的運動。按下鼠標按鈕,標志著對象的選擇或其他動作。MATLAB把實現程序功能的內核代碼和這些交互組件的鼠標或鍵盤事件關聯起來,即通過設置這些交互組件的回調函數來完成特定交互事件下后臺程序完成的功能。

圖2 項目子程序編寫流程
首先應實現數據文檔的導入,并將導入的數據保存為數據庫data文件,為后續計算程序提供調用數據的數據庫。其次,根據國家標準的相關規定,編寫數據算法,將數據進行有序的遍歷,找到符合條件的數據點進行計算。最后,將計算結果保存并輸出到GUI界面對應的文本框中,同時生成速度曲線、路程曲線圖。考慮到具體的試驗操作方法,試驗項目的具體算法與國標的規定略有不同,應靈活調整,使計算方法最符合試驗的具體情況。

圖3 動力性主界面設計效果圖
在直接檔最低穩定車速試驗中,利用V-Box進行數據采集。將汽車掛入直接檔,行駛穩定后,設為0時刻,行駛距離設為0,保持車輛勻速行駛。當行駛距離S等于100m時,記錄下此時時間和車速。如此重復若干次,得到試驗原始數據。導入試驗數據,編寫判定算法,判定行駛距離是否等于100m。將符合條件的點存入數據庫等待調用,將不滿足條件的點剔除。最低穩定車速計算結果如表1所示,表中同時列出了程序計算結果與人工計算結果。

表1 最低穩定車速試驗結果
直接檔最低穩定車速計算算法:

其中,V是直接檔最低穩定車速,S代表路程為100m,Vi是路程為100m時對應的車速,n是符合條件的試驗的次數。乘以3.6進行單位換算,將km/h換算為國際單位m/s。
由人工選點計算得到本次試驗最低穩定車速為 37.42km/h,而程序計算得到最低穩定車速為 37.0737km/h,均符合國家標準規定的最低穩定車速小于等于40km/h。由于MATLAB編程采用全局數據遍歷法,與人工數據處理結果相比,更加精確。
用MATLAB導入數據后,進行數據的有序遍歷。運用一次for循環語句,依次遍歷速度值為10-100km/h的點,正負誤差控制在0.2之內。將順序遍歷后,符合條件的點求和、再求平均值,如此循環10次,并輸出結果。根據國標的相關規定,還應該計算加速到100km/h過程中所用的時間(國標規定時間應小于等于60s)和加速至400m時所用的時間(國標規定時間應小于等于40s)。該計算過程仍采用數據的有選擇遍歷,尋找速度等于100km/h附近的點,正負誤差控制在0.1。類似的,尋找位移等于400m附近的點,正負誤差控制在0.2,將符合條件的點求和再求平均,并輸出結果。
起步換擋加速試驗計算結果如表2、表3所示。表2為程序計算結果,表3-3為人工計算結果。將表2,表3對比可得,由于程序采用全局遍歷的算法,計算精度高于人工選點計算算法。MATLAB程序基于高效的科學計算算法,速度快,大大縮短試驗后數據處理時間,為數據分析提供了高效的平臺。

表2 起步換檔加速0→100km/h試驗結果(程序計算)
起步換擋加速曲線如圖4,圖5,圖6所示。其中,圖4,圖5為Excel利用描點法繪制的加速時間曲線圖與加速距離曲線圖。圖6為利用MATLAB/GUI編寫程序的繪制圖,即將所有試驗數據進行遍歷后,描點繪制出曲線圖。由于Excel依賴于人工選取少數點進行描點繪圖,而程序則是將所有符合點進行平滑曲線連接繪圖,因此利用Excel進行繪圖不僅耗時長,而且圖形粗糙,精度低,而MATLAB/GUI程序繪圖速度快,精度高,并支持圖片的保存,利于數據圖形的后續分析。

表3 起步換檔加速0→100km/h試驗結果(人工計算)
動力滑行試驗。觸發V-Box,記錄車速減到0過程中,車速、位移、時間的一系列瞬時值。該試驗需進行往返兩次試驗,得到兩組數據。計算方法采用全局遍歷求平均值的方法。導入數據到MATLAB,遍歷,找到速度值為0的所有點,這些點對應的位移求和,再取平均值。將往、返兩組試驗所得平均位移相加求平均,根據國標的要求,應大于等于1200m。滑行試驗程序計算結果如表4所示,人工計算結果如表5所示。

圖4 0→100 km/h加速時間曲線圖

圖5 0→100 km/h加速 距離曲線圖

圖6 起步換擋加速曲線圖
由上述計算結果對比可知,由于程序計算方法采用數據全局遍歷,計算結果比人工計算更加精確,整體精度較高,且計算迅速便捷。

表4 滑行試驗結果(程序計算)

表5 滑行試驗結果(人工計算)
數據采集器V-Box在汽車加速過程中,選定某一時刻,設為時間零點與位移零點。采集汽車在最高檔加速過程中,加速至相對位移0點走過200m過程中,一系列時間點、瞬時速度點、瞬時位移點。
國家標準規定,在此過程中汽車的最高車速應大于等于125km/h。計算方法仍采用全局遍歷法。首先將V-Box采集的數據導入到MATLAB,進行全局遍歷,找到位移值為200m的點。將所有符合條件的點進行求和,然后用mean函數取平均值,得到最高車速平均值。程序計算得到的最高車速值為129.71km/h,由人工計算方法得到的最高車速值為 139.94 km/h。由于程序采用全局遍歷法,因而計算精度高于人工計算法。并且其計算速度,可重復操作性均優于人工計算。
當試驗車輛的行駛速度到達 50km/h時關閉發動機切斷動力傳遞,開始無動力滑行試驗。觸發 V-Box,記錄車速減到0過程中,車速、位移、時間的一系列瞬時值。該試驗需進行往返兩次試驗,得到兩組數據。計算方法采用全局遍歷求平均值的方法。導入數據到MATLAB,遍歷,找到速度值為0的所有點,這些點對應的位移求和,再取平均值。將往、返兩組試驗所得平均位移相加求平均,根據國標的要求,應大于等于1200m。滑行試驗程序計算結果如表6所示,人工計算結果如表3-7所示。

表6 滑行試驗結果(程序計算)

表7 滑行試驗結果(人工計算)
由上述計算結果對比可知,由于程序計算方法采用數據全局遍歷,計算結果比人工計算更加精確,整體精度較高,且計算迅速便捷。
(1)數據導入函數:本軟件的開發建立在試驗的基礎上,因此數據導入是軟件開發過程首要的一步,也是非常重要的一步。數據的正確導入,保證了后續計算算法正確調用數據。考慮到人機交互性,應導入由用戶指定路徑名pathname下的文件名filename。本軟件采用uigetfile函數導入數據。其語法格式為:uigetfile[FileName,PathName,FilterIndex]。本次試驗中,V-Box采集的數據格式為.xls,相應的讀數據函數為 xlsread,寫數據函數為 xlswrite。實際上,數據格式可能變為.xlsx或.txt,uigetfile('*.xls')改為uigetfile('*.'),可顯示某一路徑下所有后綴的文件。相應讀數據函數改為xlsxread,寫數據函數改為xlsxwrite。MATLAB數據導入流程如圖7所示。
為了更好的體現人機交互性,在數據導入程序中加入判斷命令,判斷用戶是否選擇了符合條件的文件。若沒有正確選擇或未進行文件選取,則彈出警告對話框。
(2)msgbox函數:是MATLAB中一個可實現彈出窗口的函數。在對話框中顯示消息,等待用戶單擊按鈕,并返回一個 integer告訴用戶單擊哪一個按鈕。其語法格式為:msgbox(prompt,[buttons],[title],[helpfile],[context])。這種人機交互式的窗口極大的提高了軟件的可操作性。msgbox在本軟件中應用較多,常用于數據導入完成,數據計算完成,繪圖完成等的說明。

圖7 MATLAB數據導入流程
(3)size函數:可以返回數據的尺寸,語法格式為[m,n]= size(X),返回矩陣 X的尺寸信息,并存儲在 m、n中。其中m中存儲的是行數,n中存儲的是列數。將數據導入MATLAB中時,size用于計算導入文件的數據矩陣,并將該數據矩陣暫時保存。
(4)mean函數:其語法格式為mean(A),是MATLAB中的求平均函數。可將不同維度矩陣中的元素求平均值。用mean函數求平均前不用sum求和。
(5)handle函數句柄:是包含了函數的路徑、函數名、類型以及可能存在的重載方法。本課題中,所有輸出到 GUI界面上的數據都使用了函數句柄。將MATLAB程序計算的結果輸出到GUI界面對應的文本框中,實現了人機交互。另外,本課題中所有的清空的命令均使用了函數句柄,即:將所有GUI界面下的文本框設置為空。實際應用中,常將set與get函數與 handle配合使用。如:set(handles.edit23,'string','')。

(7)questdlg函數:button = questdlg('qstring') 顯示一個模式的詢問對話框,提示信息為'qstring'。該對話框有三個默認的按鈕Yes、No和Cancel。如果用戶按下三個按鈕中任何一個,button返回被按下的按鈕的名稱。如果用戶按下回車鍵,button被賦值'Yes'。'qstring'可以是一個元胞數組或字符串。本課題中,“數據保存”和“退出程序”使用了questdlg函數。語法格式為questdlg('qstring','title','str1','str2','str3',default)。

圖8 msgbox函數

圖9 questdlg函數
(8)printpreview函數:可以實現當前界面的打印,提供打印的相關選項修改、設置。printpreview界面如圖10所示。

圖10 printpreview應用實例
(9)放大、縮小函數:zoom on實現圖形放大,zoom off實現圖形縮小。本課題中,速度曲線和位移曲線均使用了該函數。
(10)grid on/off函數:繪圖時,用于劃分網格。
(11)close函數:用于關閉指定的GUI界面。
(12)plot函數:用于繪制線性二維圖,語法格式為:plot(X,Y)。
(13)添加繪圖標簽:xlabel,ylabel分別用于添加X軸、Y軸方向的顯示標簽。該標簽為字符串string。語法格式為xlabel(‘string’)。title函數為當前坐標系添加標題。語法格式:title(‘string’)。在當前坐標系上方居中輸出標題'string',其中string是自定義的內容。本課題中速度曲線與位移曲線的繪制程序用到了上述函數。
本文概括總結了汽車動力性試驗數據分析軟件的開發過程,從試驗依據的標準、試驗項目的確定、試驗方法、試驗數據的收集等方面論述了汽車動力性試驗的過程,指出了傳統手工進行數據篩選與結果分析的不足,即數據處理周期長,結果精確度較低,試驗可重復性差,結論等待時間長。針對當前數據分析的現狀,開發基于MATLAB GUI的汽車動力性試驗數據分析軟件,得出關于試驗車輛較為準確和權威的評價結論。
[1] 陳垚光,毛濤濤,王正林,王玲. 精通 MATLAB GUI設計[M].2版.北京:電子工業出版社,2011.
[2] 陳蔭三,余強. 汽車動力學[M].清華大學出版社,2009.
[3] 吳憲明. GB/T12534-1990,汽車道路試驗方法通則[S].北京:國家技術監督局,1990.
[4] 余志生. 汽車理論[M].北京:機械工業出版社,2006.
Design of the Automobile Power Performance Test Data Analysis Software Based on Matlab GUI
Wang Lin, Liu Weijian, Pei Yongqi, Feng Jie
( Shaanxi Heavy Duty Automobile Co., Ltd, Shaanxi Xi'an 710200 )
Firstly, the paper showed the detailed explanations and flow charts of software development which are based on MATLAB GUI. Then it introduced the steps of software development, way of GUI design, callback functions compiling, and application of functions in common use. As follow showed the main GUI and compared results calculated by the program to that’s by hands. Then the paper analyzed the differences between the two ways above. The last chapter concluded the whole paper, and made some useful suggestions.Finally, the software development met with success while the speed of calculating experimental data is significantly improved as expected.
MATLAB; Car power test; GUI; Interface design; software development
CLC NO.: U467.4 Document Code: A Article ID: 1671-7988 (2017)12-197-05
U467.4 文獻標識碼:A 文章編號:1671-7988 (2017)12-197-05
10.16638/j.cnki.1671-7988.2017.12.066
王琳,就職于陜西重型汽車有限公司。