蔣明遠
(河海大學 機電工程學院,江蘇常州,213022)
柴油機不同運行工況下需要合適的控制參數才能使柴油機發揮出最優的性能,獲得最佳的動力性、燃油經濟性和滿足相關的排放法規。根據需要通過標定系統改變和優化這些數據的過程就是標定過程。
國外對電控柴油機標定系統的研究較早,功能比較完善,并得到了廣泛的應用。例如,美國ATI公司開發的VISION標定系統可以直接訪問和標定ECU,測量、記錄數據,標定數據管理等;德國FEV公司開發的VEGA標定系統是自動化標定系統的代表,該系統還結合了數據庫技術,能夠實現基于模型的自動化標定。國內對標定系統的研究起步較晚,標定平臺的通用性較差,且功能不完善,而使用國外的標定系統,價格又比較昂貴,所以自主開發標定系統很有必要。本文在對標定系統深入研究的情況下,將詳述利用VisualBasic軟件進行標定軟件的開發過程。
典型的標定系統主要由標定軟件、接口硬件和測量模塊等組成,能夠實現與ECU之間的通信和數據傳輸。標定軟件不僅能夠快速準確的與ECU進行通信,從而實時地反映轉速、噴油量、噴油正時等當前發動機工況信息,還應該具備在線標定功能從而縮短標定周期;最后,標定軟件應能夠保存相關的監控數據以便進行數據分析等。根據以上電控柴油機標定的要求,標定系統原理如圖1所示:

圖1 標定系統原理圖
本標定軟件采用Visual Basic進行開發設計。下圖2為本標定軟件的界面示意圖。
從本標定軟件的界面示意圖上來看主要包含:模擬量數據顯示區、輸入輸出開關量顯示區、圖形顯示區、MAP數據操作區等。
圖2上部的黑色區域為曲線顯示區,顯示區包括坐標、模擬量曲線顯示、開關量及故障顯示。該部分是利用Visual Basic的PictureBox控件進行設計,將PictureBox的左下角距離底邊和左邊線100的位置設置為坐標系的原點,曲線顯示區長度取若干等份點,用line方法根據這些點繪制所需顯示的曲線。添加Timer控件,在Timer事件中每隔一定時間就會觸發一次曲線更新函數(CurveRenew),向ECU發送指令,采集ECU中相關的數據,根據采集的數據實時地更新曲線。在非監控狀態下,按下鼠標左鍵,可以顯示當前點的序號和時刻。曲線顯示區的右側為坐標顯示區,可以顯示三種坐標系。每一種坐標系都對應一個Label控件,雙擊某一坐標,觸發DblClick事件,可以改變坐標系的類型,從而達到顯示多種曲線。
圖2的右側為模擬量和開關量顯示區,在啟動監控的狀態下用于實時顯示模擬量數值和開關量狀態。模擬量包括:轉速、油門、水溫、車速、EGR閥開度、共軌壓力、噴油量及噴油正時等。輸入開關量包括:啟動開關、定速巡航設定等。輸出開關量包括:預熱塞繼電器輸出、故障診斷輸出等。實時數據采集由Timer控件來實現。該區域對應一個Timer控件,在啟動通信后,Timer控件被使能,為了保證實時性,這里設置每隔100ms觸發一次Timer事件,即每隔100ms下位機ECU向上位機標定軟件上傳一次數據。

圖2 標定軟件界面示意圖
界面的左下部分為MAP數據操作區,在軟件啟動后,自動從數據庫調出所有MAP數據到界面的指定位置顯示。對MAP數據表的操作主要有:上載、下傳、恢復、保存、導入和導出,MAP數據表操作布局如圖3所示。每一張MAP表均需創建一個Frame控件作為容器,在Frame上放置MSFlexGrid控件用來顯示MAP表格。表格上方的TabStrip控件用來選擇所需要顯示的MAP表,TabStrip控件通過關鍵字與MAP表格右側SSTab控件中的MAP導航相互關聯,點擊MAP導航中任一MAP表的OptionButton按鈕,也可以顯示對應的MAP表。在監控狀態下,某一MAP當前使用的行與列將以不同于未使用行與列的顏色顯示。

圖3 MAP數據表操作布局
本標定系統的ECU采用的控制芯片是飛思卡爾32位單片機MPC5634m,通信協議采用KWP2000串行通信協議。K線本質上是一種半雙工串行通信總線,因其協議簡單,抗干擾性強而被許多汽車生產商廣泛使用。本系統的通信程序可分為下位機通信程序和上位機通信程序兩個部分。
下位機的通信處理主要包含三個方面的內容:主程序、串口接收數據校驗和串口中斷服務程序。
主程序COMM_PROCESS()對幀數據格式的校驗,接收數據字節數的判斷,經過和校驗正確后,由switch(command)語句根據命令字Sid執行相應的case情況,填充發送數組,并使能發送和發送中斷位。
串口接收數據校驗Verify_UART()主要是對除校驗和之外的信息中所有字節的8位簡單求和。根據幀數據的長度信息可分為兩種情況:1.長度信息在Fmt格式字節里(長度信息小于64字節);2.長度信息在Len長度字節里(長度信息可超過64字節)。當校驗正確后返回mRecErr =1,錯誤返回mRecErr=0.
串口中斷服務程序eSCIAISR()分為接受中斷服務程序和發送中斷服務程序。當上位機向下位機發送指令后,下位機進入接受中斷服務程序。當檢測到寄存器標志位RDRF置位且判斷接收中斷使能后,將接收的數據放入串口接收緩沖數組receTemp[receNum]。
當接收完所有數據并且校驗正確后,將進入主程序。主程序填充完發送數組后并將第一個數據發出從而進入發送中斷。發送中斷在檢測到標志位TDRE置位且中斷使能位使能后,執行發送中斷程序,發送下一個數據。當最后一個數據發出后,中斷程序將對一些參數初始化,寄存器復位等操作。
VisualBasic提供了具有強大功能的通信控件MSComm和調用WINDOWS API函數來實現串口通信。因為MSComm通信控件只能設定常用的波特率,而用API函數操作串口的bas可以任意設置波特率,所以本研究采用WINDOWS API函數來進行串口通信設計。
上位機通信程序的編制可分為兩個部分:首先,點擊相關按鈕填充發送數組;然后,進入發送及回應程序ECU_Reply()。上位機向下位機發送的命令或者數據進行填充發送緩沖數組分兩種情況,一是通過點擊按鈕執行填充程序;二是通過執行Timer事件,定時填充發送緩沖數組。
在完成發送緩沖數組填充后,進入發送及回應程序ECU_Reply()。首先,通過ClearRecBuffer清串口接收緩沖區;其次,根據已填充的發送數組通過WriteCOMM()向串口將數據進行發送;然后,等待ECU回應,通過ReadCOMM讀取串口接收到的數據;最后,對接收到的數據進行校驗并返回相應的變量值。

圖4 通信測試圖
將ECU與標定軟件連接,進行實時通信測。標定軟件圖形顯示區能夠實時地顯示監控的數據,實現了數據傳輸,并且通信良好。
一臺電控發動機匹配標定的結果直接影響發動機的運行狀態和工作性能,而標定工具設計的好壞則直接影響標定結果及標定周期。本文同過對標定系統的深入分析,從標定軟件的功能界面和通信模塊兩方面進行標定系統的開發,闡述了其設計過程和工作原理。