李 萍, 蘭海龍
(中國(guó)重汽集團(tuán)大同齒輪有限公司, 山西 大同 037305)
現(xiàn)代汽車(chē)智能化控制進(jìn)程在逐步加快,汽車(chē)電子控制單元在逐漸增多,其控制系統(tǒng)的復(fù)雜度呈幾何式增長(zhǎng),而且隨著市場(chǎng)競(jìng)爭(zhēng)日趨激烈,對(duì)汽車(chē)電控單元軟件開(kāi)發(fā)的可靠性和時(shí)效性要求越來(lái)越高,而依靠傳統(tǒng)費(fèi)事費(fèi)力的手寫(xiě)C代碼,由于其開(kāi)發(fā)周期長(zhǎng),根本無(wú)法滿(mǎn)足需求[1-2]。基于MATLAB/Simulink模塊化設(shè)計(jì)語(yǔ)言和Targetlink C代碼自動(dòng)轉(zhuǎn)化工具的軟件開(kāi)發(fā)平臺(tái),極大地簡(jiǎn)化了開(kāi)發(fā)流程,縮短了項(xiàng)目周期,使得軟件開(kāi)發(fā)工程師能將更多的精力投放到控制流程的優(yōu)化上,目前已廣泛應(yīng)用于汽車(chē)控制領(lǐng)域。
AMT的核心控制單元是變速器電子控制單元,簡(jiǎn)稱(chēng)為T(mén)CU,其核心的控制處理算法是基于Simulink/Stateflow模塊化、流程化的設(shè)計(jì)語(yǔ)言按照一定的邏輯組合實(shí)現(xiàn)的,在MATLAB環(huán)境下嵌入TargetLink搭建代碼生成環(huán)境、對(duì)參數(shù)變量進(jìn)行統(tǒng)一管理并實(shí)現(xiàn)自動(dòng)生成C代碼。與TCU硬件直接相關(guān)的底層驅(qū)動(dòng)代碼仍然以手工編寫(xiě)C代碼實(shí)現(xiàn)。由CodeWarrior工具將兩部分C代碼集成編譯生成二進(jìn)制文件和map文件,最后由刷寫(xiě)工具將二進(jìn)制文件寫(xiě)入到TCU存儲(chǔ)單元中。Map文件經(jīng)Targetlink環(huán)境鏈接生成控制器的描述文件A2L文件,該文件包含下載到TCU中所有參變量的地址和類(lèi)型等信息,利用CANape等標(biāo)定工具鏈接A2L文件后,可以方便對(duì)運(yùn)行于TCU中的參變量數(shù)值進(jìn)行調(diào)整,在不改變策略的前提下,不用重新刷入代碼,就可以實(shí)現(xiàn)在線(xiàn)調(diào)整控制系統(tǒng)性能達(dá)到目標(biāo)要求。圖1為上述開(kāi)發(fā)流程簡(jiǎn)圖。
圖1 AMT控制系統(tǒng)軟件開(kāi)發(fā)流程
AMT控制器芯片選用的是飛思卡爾公司的16位MC9S12EP100,底層驅(qū)動(dòng)主要是對(duì)芯片上的I/O、定時(shí)、中斷、A/D等的寄存器進(jìn)行處理,以實(shí)現(xiàn)硬件信號(hào)的輸入輸出處理以及控制系統(tǒng)的動(dòng)作時(shí)序,傳統(tǒng)的手寫(xiě)代碼結(jié)構(gòu)緊湊、運(yùn)行效率高、占用內(nèi)容資源少,它們包括以下內(nèi)容。
1)I/O:處 理 D-N-R 旋 鈕 信 號(hào) 、UPSHIFT/DOWNSHIFT輸入信號(hào)、E/P、A/M按鍵輸入信號(hào)、輸出各執(zhí)行機(jī)構(gòu)電磁閥控制的驅(qū)動(dòng)信號(hào)。
2)A/D:采集選換擋執(zhí)行機(jī)構(gòu)和離合器執(zhí)行機(jī)構(gòu)位置傳感器信號(hào)、油門(mén)踏板和制動(dòng)踏板位移信號(hào)等。
3)轉(zhuǎn)速測(cè)量:采集變速器輸入和輸出傳感器模擬信號(hào)。
4)定時(shí)器:AMT控制系統(tǒng)任務(wù)調(diào)度的時(shí)序控制。
5)中斷:實(shí)現(xiàn)對(duì)各傳感器、按鍵輸入和CAN線(xiàn)信號(hào)等外部信號(hào)請(qǐng)求的響應(yīng)處理。
6)CCP(CAN Calibration Protocol) 驅(qū)動(dòng):實(shí)現(xiàn)CAN標(biāo)定協(xié)議,以CAN數(shù)據(jù)包的形式實(shí)現(xiàn)參變量的在線(xiàn)監(jiān)測(cè)與標(biāo)定。
7)J1939接口:按照SAE J1939協(xié)議組織CAN報(bào)文的發(fā)送與讀取,以實(shí)現(xiàn)與整車(chē)其他控制單元交互信息[3]。
硬件電路板接收到的硬件信號(hào)不可避免會(huì)受到外界環(huán)境電磁場(chǎng)的干擾,因此必須對(duì)硬件輸入信號(hào)進(jìn)行濾波、消抖處理,去除干擾,同時(shí)應(yīng)對(duì)其有效性進(jìn)行判定,這也是提高AMT系統(tǒng)故障診斷可靠性的必要環(huán)節(jié)。硬件輸入信號(hào)可分為模擬信號(hào)和數(shù)字信號(hào)兩大類(lèi)。
圖2為A/D口普遍采用的RC濾波處理電路,該電路可以有效去除干擾信號(hào)。應(yīng)用層軟件應(yīng)對(duì)處理后的信號(hào)進(jìn)行有效性判斷處理,比如轉(zhuǎn)速信號(hào)和位置信號(hào)。真實(shí)的物理信號(hào)都有一個(gè)最大最小的極限值即有效值,如果處理后的信號(hào)低于或高于有效值范圍邊界值,則可判斷該硬件輸入信號(hào)發(fā)生錯(cuò)誤,應(yīng)用軟件應(yīng)對(duì)異常的輸入信號(hào)進(jìn)行處理,以保證應(yīng)用軟件運(yùn)行的可靠性,同時(shí)還應(yīng)該對(duì)其進(jìn)行故障預(yù)警和診斷處理。
圖2 模擬輸入信號(hào)處理電路[4]
圖3為典型的I/O端輸入的數(shù)字信號(hào)處理電路,包括RC組合部分及光電耦合。輸入的數(shù)字信號(hào)經(jīng)過(guò)計(jì)數(shù)時(shí)間翻轉(zhuǎn)可以得到處理后的I/O信號(hào)。
圖3 I/O信號(hào)處理電路
利用Simulink/Stateflow可以實(shí)現(xiàn)處理電路算法,對(duì)模擬信號(hào)和數(shù)字信號(hào)進(jìn)行濾波處理。
根據(jù)司機(jī)的駕駛意圖,合理準(zhǔn)確決策出目標(biāo)檔位,并及時(shí)完成選換擋操作,是TCU控制策略的核心。完成一次選換擋操作,典型的控制流程是:請(qǐng)求發(fā)動(dòng)機(jī)降扭→分離合→摘空擋→選換擋→轉(zhuǎn)速同步→結(jié)合離合→請(qǐng)求發(fā)動(dòng)機(jī)還扭[5]。因此TCU控制策略主要是選換擋控制策略、離合器控制策略和發(fā)動(dòng)機(jī)控制策略開(kāi)發(fā)三大塊。
AMT系統(tǒng)開(kāi)發(fā)的核心在于換檔控制策略的開(kāi)發(fā),換檔策略的開(kāi)發(fā)是整個(gè)AMT開(kāi)發(fā)過(guò)程中耗時(shí)最長(zhǎng),投入人力、物力最多的階段。主要包括車(chē)輛起步控制策略、選換檔控制策略、換檔點(diǎn)調(diào)整策略以及起步和行駛選換檔期間的離合器控制策略、故障診斷功能的開(kāi)發(fā)。
AMT系統(tǒng)對(duì)發(fā)動(dòng)機(jī)控制的好壞直接影響換擋舒適性和AMT系統(tǒng)機(jī)械部件的壽命。所以必須開(kāi)發(fā)出良好的發(fā)動(dòng)機(jī)控制策略。簡(jiǎn)單的說(shuō),發(fā)動(dòng)機(jī)控制就是TCU在適當(dāng)?shù)臅r(shí)刻發(fā)起合適的控制請(qǐng)求,并實(shí)時(shí)對(duì)發(fā)動(dòng)機(jī)的扭矩、轉(zhuǎn)速進(jìn)行合適的控制,以實(shí)現(xiàn)最佳的換擋性能。
大多數(shù)重型商用車(chē)國(guó)Ⅳ發(fā)動(dòng)機(jī)都遵循SAEJ1939協(xié)議,TCU通過(guò)解析發(fā)動(dòng)機(jī)發(fā)出EC1報(bào)文得到發(fā)動(dòng)機(jī)的配置信息;對(duì)發(fā)動(dòng)機(jī)的短暫控制通過(guò)TSC1報(bào)文請(qǐng)求實(shí)現(xiàn),確認(rèn)發(fā)動(dòng)機(jī)已經(jīng)響應(yīng)TCU發(fā)出的請(qǐng)求是通過(guò)解析EEC1報(bào)文中的(發(fā)動(dòng)機(jī)控制設(shè)備地址)Source Address of Controlling Device for Engine Control的數(shù)值實(shí)現(xiàn),TCU的地址規(guī)定為3。
換擋離合器分離時(shí),TCU會(huì)請(qǐng)求發(fā)動(dòng)機(jī)將扭矩逐步降到最低(扭矩值為動(dòng)態(tài)值),以防止動(dòng)力中斷后發(fā)動(dòng)機(jī)超速。
通過(guò)TSC1準(zhǔn)確地實(shí)現(xiàn)了發(fā)動(dòng)機(jī)扭矩的逐步下降和逐步上升,上升用的是扭矩限值控制。
離合器接合扭矩控制流程如下:
1)控制離合器開(kāi)始接合。
2)當(dāng)離合器位置到達(dá)半聯(lián)動(dòng)點(diǎn)時(shí),通過(guò)發(fā)動(dòng)機(jī)扭矩控制,控制發(fā)動(dòng)機(jī)扭矩逐漸上升,保證發(fā)動(dòng)機(jī)扭矩的平穩(wěn)傳遞,同時(shí)防止發(fā)動(dòng)機(jī)熄火。
3)離合器起步及蠕動(dòng)控制;車(chē)輛起步時(shí),離合器需要通過(guò)半聯(lián)動(dòng)狀態(tài)時(shí)離合器片的滑磨來(lái)減小起步?jīng)_擊,保證起步的舒適性;車(chē)輛蠕動(dòng)行駛時(shí),AMT也需要通過(guò)半聯(lián)動(dòng)狀態(tài)時(shí)離合器片的滑磨來(lái)保證車(chē)輛低速可控行駛。另外,為了充分體現(xiàn)駕駛員意圖,AMT需要根據(jù)駕駛員踩下油門(mén)踏板的深度來(lái)制定離合器半聯(lián)動(dòng)工作的半聯(lián)動(dòng)深度值。即當(dāng)駕駛員淺踩油門(mén)時(shí),代表駕駛員需要更加平緩的起步和蠕動(dòng),半聯(lián)動(dòng)深度值則要更加接近半聯(lián)動(dòng)點(diǎn),通過(guò)減小傳遞扭矩的方式來(lái)減小沖擊;反之,當(dāng)駕駛員深踩油門(mén)時(shí),代表駕駛員并不注重起步?jīng)_擊,而是希望車(chē)輛快速起步提速,此時(shí)的半聯(lián)動(dòng)深度值則要更加接近離合器結(jié)合點(diǎn),通過(guò)增大傳遞扭矩的方式來(lái)加快起步提速。
利用Simulink/Stateflow完成TCU應(yīng)用層代碼的開(kāi)發(fā)后,需要將其轉(zhuǎn)化成標(biāo)準(zhǔn)的C代碼才能進(jìn)行集成編譯。相對(duì)于MATLAB自帶的代碼生成模塊,Targetlink具有明顯的優(yōu)勢(shì)。首先其數(shù)據(jù)字典可以方便對(duì)軟件中的變量存儲(chǔ)空間、類(lèi)型、定標(biāo)、聲明等進(jìn)行管理,其次是可以直接從Simulink/Stateflow圖形化的開(kāi)發(fā)環(huán)境中生成產(chǎn)品級(jí)的C代碼,其生成的代碼執(zhí)行效率可與手工編寫(xiě)的相媲美,并且支持AUTOSAR標(biāo)準(zhǔn),可對(duì)代碼進(jìn)行優(yōu)化處理。
自動(dòng)生成代碼前,必須對(duì)Simulink/Stateflow模型進(jìn)行前期處理,將其子模塊用Targetlink標(biāo)準(zhǔn)庫(kù)中的模塊替代,轉(zhuǎn)換后的應(yīng)用軟件模型應(yīng)進(jìn)行浮點(diǎn)型的模型在環(huán)路測(cè)試,以消除軟件中存在的大部分語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤。由于汽車(chē)行業(yè)的處理器只支持定點(diǎn)運(yùn)算,所以需要將軟件中的所有浮點(diǎn)類(lèi)型全部都轉(zhuǎn)化成定點(diǎn)類(lèi)型,利用Targetlink的數(shù)據(jù)字典就可以方便實(shí)現(xiàn)這一轉(zhuǎn)化,而且可以對(duì)變量進(jìn)行分類(lèi)管理,可以實(shí)現(xiàn)多變量同時(shí)修改其對(duì)象屬性。
Targetlink支持汽車(chē)領(lǐng)域的大部分嵌入式處理器,而且還有許多針對(duì)性的基礎(chǔ)包和優(yōu)化包,其數(shù)據(jù)字典文件可移植,可以實(shí)現(xiàn)公司內(nèi)局域網(wǎng)共享,提高了軟件開(kāi)發(fā)效率和可維護(hù)性。
TCU控制軟件可分為底層驅(qū)動(dòng)軟件和系統(tǒng)控制軟件,前者是手工編寫(xiě)的C代碼,后者是Targetlink自動(dòng)生成的C代碼,但是都不是可運(yùn)行與TCU硬件中的產(chǎn)品級(jí)目標(biāo)代碼,必須借助于第三方工具軟件,將兩者集成轉(zhuǎn)化成二進(jìn)制目標(biāo)代碼,本項(xiàng)目選用的是CodeWarrior工具軟件,將軟件集成編譯后生成了mot文件、ELF文件和map文件。
控制系統(tǒng)軟件經(jīng)過(guò)集成編譯刷寫(xiě)到控制器TCU后,就可以進(jìn)行樣車(chē)試驗(yàn)和標(biāo)定工作。項(xiàng)目采用的Vector公司的CANape標(biāo)定工具。控制策略中的一部分邏輯缺陷是軟件仿真階段中檢測(cè)不出來(lái)的,必須經(jīng)過(guò)反復(fù)的樣車(chē)試驗(yàn)和標(biāo)定才能夠發(fā)現(xiàn)并解決。圖4所示為車(chē)輛行駛過(guò)程中的實(shí)測(cè)參變量數(shù)值,能夠清晰地分析出車(chē)輛狀態(tài)。
圖4 實(shí)際測(cè)量分析
實(shí)踐證明:Matlab/Simulink模塊化圖像化的代碼開(kāi)發(fā)語(yǔ)言具有代碼實(shí)現(xiàn)簡(jiǎn)便、代碼可讀性高、代碼可維護(hù)性好、易于仿真測(cè)試等優(yōu)點(diǎn);dSPACE公司的Targetlink工具能夠與Matlab/Simulink進(jìn)行無(wú)縫鏈接,生成的代碼可靠性高、可移植性好、易于維護(hù),且參數(shù)變量管理方便,提高了軟件開(kāi)發(fā)效率,降低了維護(hù)成本。