李 萍, 蘭海龍
(中國重汽集團大同齒輪有限公司, 山西 大同 037305)
現代汽車智能化控制進程在逐步加快,汽車電子控制單元在逐漸增多,其控制系統的復雜度呈幾何式增長,而且隨著市場競爭日趨激烈,對汽車電控單元軟件開發的可靠性和時效性要求越來越高,而依靠傳統費事費力的手寫C代碼,由于其開發周期長,根本無法滿足需求[1-2]。基于MATLAB/Simulink模塊化設計語言和Targetlink C代碼自動轉化工具的軟件開發平臺,極大地簡化了開發流程,縮短了項目周期,使得軟件開發工程師能將更多的精力投放到控制流程的優化上,目前已廣泛應用于汽車控制領域。
AMT的核心控制單元是變速器電子控制單元,簡稱為TCU,其核心的控制處理算法是基于Simulink/Stateflow模塊化、流程化的設計語言按照一定的邏輯組合實現的,在MATLAB環境下嵌入TargetLink搭建代碼生成環境、對參數變量進行統一管理并實現自動生成C代碼。與TCU硬件直接相關的底層驅動代碼仍然以手工編寫C代碼實現。由CodeWarrior工具將兩部分C代碼集成編譯生成二進制文件和map文件,最后由刷寫工具將二進制文件寫入到TCU存儲單元中。Map文件經Targetlink環境鏈接生成控制器的描述文件A2L文件,該文件包含下載到TCU中所有參變量的地址和類型等信息,利用CANape等標定工具鏈接A2L文件后,可以方便對運行于TCU中的參變量數值進行調整,在不改變策略的前提下,不用重新刷入代碼,就可以實現在線調整控制系統性能達到目標要求。圖1為上述開發流程簡圖。

圖1 AMT控制系統軟件開發流程
AMT控制器芯片選用的是飛思卡爾公司的16位MC9S12EP100,底層驅動主要是對芯片上的I/O、定時、中斷、A/D等的寄存器進行處理,以實現硬件信號的輸入輸出處理以及控制系統的動作時序,傳統的手寫代碼結構緊湊、運行效率高、占用內容資源少,它們包括以下內容。
1)I/O:處 理 D-N-R 旋 鈕 信 號 、UPSHIFT/DOWNSHIFT輸入信號、E/P、A/M按鍵輸入信號、輸出各執行機構電磁閥控制的驅動信號。
2)A/D:采集選換擋執行機構和離合器執行機構位置傳感器信號、油門踏板和制動踏板位移信號等。
3)轉速測量:采集變速器輸入和輸出傳感器模擬信號。
4)定時器:AMT控制系統任務調度的時序控制。
5)中斷:實現對各傳感器、按鍵輸入和CAN線信號等外部信號請求的響應處理。
6)CCP(CAN Calibration Protocol) 驅動:實現CAN標定協議,以CAN數據包的形式實現參變量的在線監測與標定。
7)J1939接口:按照SAE J1939協議組織CAN報文的發送與讀取,以實現與整車其他控制單元交互信息[3]。
硬件電路板接收到的硬件信號不可避免會受到外界環境電磁場的干擾,因此必須對硬件輸入信號進行濾波、消抖處理,去除干擾,同時應對其有效性進行判定,這也是提高AMT系統故障診斷可靠性的必要環節。硬件輸入信號可分為模擬信號和數字信號兩大類。
圖2為A/D口普遍采用的RC濾波處理電路,該電路可以有效去除干擾信號。應用層軟件應對處理后的信號進行有效性判斷處理,比如轉速信號和位置信號。真實的物理信號都有一個最大最小的極限值即有效值,如果處理后的信號低于或高于有效值范圍邊界值,則可判斷該硬件輸入信號發生錯誤,應用軟件應對異常的輸入信號進行處理,以保證應用軟件運行的可靠性,同時還應該對其進行故障預警和診斷處理。

圖2 模擬輸入信號處理電路[4]
圖3為典型的I/O端輸入的數字信號處理電路,包括RC組合部分及光電耦合。輸入的數字信號經過計數時間翻轉可以得到處理后的I/O信號。

圖3 I/O信號處理電路
利用Simulink/Stateflow可以實現處理電路算法,對模擬信號和數字信號進行濾波處理。
根據司機的駕駛意圖,合理準確決策出目標檔位,并及時完成選換擋操作,是TCU控制策略的核心。完成一次選換擋操作,典型的控制流程是:請求發動機降扭→分離合→摘空擋→選換擋→轉速同步→結合離合→請求發動機還扭[5]。因此TCU控制策略主要是選換擋控制策略、離合器控制策略和發動機控制策略開發三大塊。
AMT系統開發的核心在于換檔控制策略的開發,換檔策略的開發是整個AMT開發過程中耗時最長,投入人力、物力最多的階段。主要包括車輛起步控制策略、選換檔控制策略、換檔點調整策略以及起步和行駛選換檔期間的離合器控制策略、故障診斷功能的開發。
AMT系統對發動機控制的好壞直接影響換擋舒適性和AMT系統機械部件的壽命。所以必須開發出良好的發動機控制策略。簡單的說,發動機控制就是TCU在適當的時刻發起合適的控制請求,并實時對發動機的扭矩、轉速進行合適的控制,以實現最佳的換擋性能。
大多數重型商用車國Ⅳ發動機都遵循SAEJ1939協議,TCU通過解析發動機發出EC1報文得到發動機的配置信息;對發動機的短暫控制通過TSC1報文請求實現,確認發動機已經響應TCU發出的請求是通過解析EEC1報文中的(發動機控制設備地址)Source Address of Controlling Device for Engine Control的數值實現,TCU的地址規定為3。
換擋離合器分離時,TCU會請求發動機將扭矩逐步降到最低(扭矩值為動態值),以防止動力中斷后發動機超速。
通過TSC1準確地實現了發動機扭矩的逐步下降和逐步上升,上升用的是扭矩限值控制。
離合器接合扭矩控制流程如下:
1)控制離合器開始接合。
2)當離合器位置到達半聯動點時,通過發動機扭矩控制,控制發動機扭矩逐漸上升,保證發動機扭矩的平穩傳遞,同時防止發動機熄火。
3)離合器起步及蠕動控制;車輛起步時,離合器需要通過半聯動狀態時離合器片的滑磨來減小起步沖擊,保證起步的舒適性;車輛蠕動行駛時,AMT也需要通過半聯動狀態時離合器片的滑磨來保證車輛低速可控行駛。另外,為了充分體現駕駛員意圖,AMT需要根據駕駛員踩下油門踏板的深度來制定離合器半聯動工作的半聯動深度值。即當駕駛員淺踩油門時,代表駕駛員需要更加平緩的起步和蠕動,半聯動深度值則要更加接近半聯動點,通過減小傳遞扭矩的方式來減小沖擊;反之,當駕駛員深踩油門時,代表駕駛員并不注重起步沖擊,而是希望車輛快速起步提速,此時的半聯動深度值則要更加接近離合器結合點,通過增大傳遞扭矩的方式來加快起步提速。
利用Simulink/Stateflow完成TCU應用層代碼的開發后,需要將其轉化成標準的C代碼才能進行集成編譯。相對于MATLAB自帶的代碼生成模塊,Targetlink具有明顯的優勢。首先其數據字典可以方便對軟件中的變量存儲空間、類型、定標、聲明等進行管理,其次是可以直接從Simulink/Stateflow圖形化的開發環境中生成產品級的C代碼,其生成的代碼執行效率可與手工編寫的相媲美,并且支持AUTOSAR標準,可對代碼進行優化處理。
自動生成代碼前,必須對Simulink/Stateflow模型進行前期處理,將其子模塊用Targetlink標準庫中的模塊替代,轉換后的應用軟件模型應進行浮點型的模型在環路測試,以消除軟件中存在的大部分語法錯誤和邏輯錯誤。由于汽車行業的處理器只支持定點運算,所以需要將軟件中的所有浮點類型全部都轉化成定點類型,利用Targetlink的數據字典就可以方便實現這一轉化,而且可以對變量進行分類管理,可以實現多變量同時修改其對象屬性。
Targetlink支持汽車領域的大部分嵌入式處理器,而且還有許多針對性的基礎包和優化包,其數據字典文件可移植,可以實現公司內局域網共享,提高了軟件開發效率和可維護性。
TCU控制軟件可分為底層驅動軟件和系統控制軟件,前者是手工編寫的C代碼,后者是Targetlink自動生成的C代碼,但是都不是可運行與TCU硬件中的產品級目標代碼,必須借助于第三方工具軟件,將兩者集成轉化成二進制目標代碼,本項目選用的是CodeWarrior工具軟件,將軟件集成編譯后生成了mot文件、ELF文件和map文件。
控制系統軟件經過集成編譯刷寫到控制器TCU后,就可以進行樣車試驗和標定工作。項目采用的Vector公司的CANape標定工具。控制策略中的一部分邏輯缺陷是軟件仿真階段中檢測不出來的,必須經過反復的樣車試驗和標定才能夠發現并解決。圖4所示為車輛行駛過程中的實測參變量數值,能夠清晰地分析出車輛狀態。

圖4 實際測量分析
實踐證明:Matlab/Simulink模塊化圖像化的代碼開發語言具有代碼實現簡便、代碼可讀性高、代碼可維護性好、易于仿真測試等優點;dSPACE公司的Targetlink工具能夠與Matlab/Simulink進行無縫鏈接,生成的代碼可靠性高、可移植性好、易于維護,且參數變量管理方便,提高了軟件開發效率,降低了維護成本。