劉凌,宋超,謝勇波(湖南中車時(shí)代電動(dòng)汽車股份有限公司,湖南株洲412007)
基于MATLAB全模型方法的AMT控制系統(tǒng)開發(fā)
劉凌,宋超,謝勇波
(湖南中車時(shí)代電動(dòng)汽車股份有限公司,湖南株洲412007)
現(xiàn)有AMT控制軟件開發(fā)普遍采用手寫代碼或單個(gè)模型方法,開發(fā)周期長(zhǎng)、研發(fā)維護(hù)費(fèi)用高。本文提出一種基于MATLAB全模型的軟件開發(fā)方法,通過(guò)構(gòu)建全功能覆蓋的模型架構(gòu)、基于時(shí)間調(diào)度的代碼生成策略、底層信號(hào)到模型參數(shù)的自動(dòng)映射、數(shù)據(jù)接口的統(tǒng)一管理、腳本控制的模型代碼自動(dòng)集成與編譯等,實(shí)現(xiàn)了控制模型的高效開發(fā)與可靠集成,并得到應(yīng)用驗(yàn)證。
全模型;AMT;控制系統(tǒng);生成代碼
現(xiàn)階段,我國(guó)AMT自動(dòng)變速器控制系統(tǒng)開發(fā)能力較為薄弱,僅限于少數(shù)與高校合作的企業(yè),所開發(fā)的產(chǎn)品只能應(yīng)用于舒適性要求較低的車型[1-2]。國(guó)內(nèi)自動(dòng)變速器的發(fā)展不僅需要精確的機(jī)械加工工藝,也需要復(fù)雜和先進(jìn)的控制算法模型保證開發(fā)效果。
傳統(tǒng)AMT控制軟件的開發(fā)經(jīng)歷了兩代。最開始是手寫代碼編程,控制算法、任務(wù)調(diào)度、數(shù)據(jù)管理等模塊需要手動(dòng)編碼實(shí)現(xiàn),對(duì)開發(fā)人員數(shù)量、編程功底有較高要求,同時(shí)手寫過(guò)程難以保證代碼品質(zhì),測(cè)試過(guò)程耗時(shí)較長(zhǎng),最終整個(gè)產(chǎn)品開發(fā)、測(cè)試、維護(hù)周期長(zhǎng)、費(fèi)用高,不能滿足汽車電控軟件快速開發(fā)需要。
為改善傳統(tǒng)軟件開發(fā)方式的效率與自動(dòng)化程度,本文提出基于MATLAB全模型的AMT控制軟件開發(fā)方法,除基礎(chǔ)軟件外,所有的調(diào)度、應(yīng)用與數(shù)據(jù)都通過(guò)圖形化的MATLAB模型進(jìn)行管理,利用模型開發(fā)的低門檻要求,以及可視化與易操作的特點(diǎn),同時(shí)結(jié)合工具自身所提供的函數(shù)庫(kù)與測(cè)試環(huán)境,實(shí)現(xiàn)復(fù)雜功能的快速開發(fā)與軟件模塊的仿真驗(yàn)證。
在傳統(tǒng)的控制系統(tǒng)開發(fā)中,不管是純手工代碼的程序開發(fā)還是基于單個(gè)模型的算法開發(fā)方法,都會(huì)遵循如圖1所示的流程開發(fā)。從圖1可以看出,每一項(xiàng)設(shè)計(jì)工作需要等待上一步的完成,如果一次開發(fā)沒(méi)有達(dá)到要求,需要反復(fù)修改軟件、硬件結(jié)構(gòu),耗時(shí)耗力且不利于控制系統(tǒng)開發(fā)的發(fā)展[3]。
圖1傳統(tǒng)控制系統(tǒng)開發(fā)流程
圖2 是全模型開發(fā)流程,其軟件的開發(fā)與硬件的開發(fā)同時(shí)進(jìn)行,在早期開發(fā)階段就可以通過(guò)仿真測(cè)試發(fā)現(xiàn)功能缺失與錯(cuò)誤,減少由于設(shè)計(jì)問(wèn)題導(dǎo)致的項(xiàng)目返工;同時(shí)全模型的設(shè)計(jì)也大大提高軟件的可讀性與通用性,自動(dòng)代碼生成技術(shù)能夠確保模型轉(zhuǎn)換成符合功能安全要求的高效代碼,產(chǎn)品的開發(fā)品質(zhì)得到保證。
圖2 全模型控制系統(tǒng)開發(fā)流程
AMT控制系統(tǒng)的開發(fā)基于通用的硬件平臺(tái),控制軟件由包含底層驅(qū)動(dòng)與系統(tǒng)服務(wù)在內(nèi)的基礎(chǔ)軟件、以及面向各種控制任務(wù)的應(yīng)用軟件組成。
基于MATLAB的全模型方法即是將AMT控制軟件的應(yīng)用功能開發(fā)、代碼集成、工程編譯鏈接等步驟都集中在模型開發(fā)工具完成,屏蔽開發(fā)人員對(duì)底層代碼的使用,實(shí)現(xiàn)當(dāng)前工程下所有模型的一鍵式編譯與二進(jìn)制目標(biāo)文件生成。
基于MATLAB的全模型方法需要增加額外設(shè)計(jì)過(guò)程以保證模型包括所有的控制功能、模型自動(dòng)集成編譯等,具體內(nèi)容包括:控制任務(wù)的模型開發(fā)、多個(gè)控制任務(wù)被基礎(chǔ)軟件調(diào)用的時(shí)間調(diào)度機(jī)制實(shí)現(xiàn)、基礎(chǔ)軟件內(nèi)部數(shù)據(jù)與模型的交互、模型的自動(dòng)代碼生成控制等。
2.1 控制任務(wù)的模型開發(fā)
AMT控制器通過(guò)方向、踏板、車速、坡度等信息,解析出目標(biāo)擋位;通過(guò)選/換擋電機(jī)、離合電機(jī)的角度旋轉(zhuǎn),實(shí)現(xiàn)執(zhí)行機(jī)構(gòu)到目標(biāo)擋位的位置移動(dòng)。車輛運(yùn)行過(guò)程的擋位切換與離合控制,需要協(xié)調(diào)發(fā)動(dòng)機(jī)、電機(jī)的目標(biāo)扭矩與轉(zhuǎn)速,完成扭矩卸載、恢復(fù)與速度跟隨,確保變速器、離合器位置與動(dòng)力總成其他部件狀態(tài)保持同步。
構(gòu)建通暢的信息交流渠道。政府等相關(guān)部門應(yīng)該及時(shí)有效地對(duì)食品企業(yè)進(jìn)行安全教育培訓(xùn)及指導(dǎo),鼓勵(lì)社會(huì)力量和企業(yè)積極參與到食品安全建設(shè)的工作中,從而有效構(gòu)建信息披露途徑。同時(shí),企業(yè)在政府、社會(huì)企業(yè)的監(jiān)督和管理之下,需要向社會(huì)公眾和監(jiān)督部門及時(shí)披露食品安全信息,一旦發(fā)生安全問(wèn)題應(yīng)該及時(shí)利用媒介向公眾道歉,做好公關(guān)處理和善后工作。
AMT控制器的應(yīng)用功能一般包括:方向、踏板等信號(hào)的采集;目標(biāo)擋位及位置換算;離合過(guò)程發(fā)動(dòng)機(jī)目標(biāo)轉(zhuǎn)速、目標(biāo)扭矩的計(jì)算;換擋過(guò)程電機(jī)目標(biāo)轉(zhuǎn)速、目標(biāo)扭矩的計(jì)算;離合過(guò)程與換擋過(guò)程的狀態(tài)切換;選、換擋電機(jī)位置控制;離合器電機(jī)位置控制等。
全模型方式采用MATLAB/Stateflow工具為所有功能建模,將上述功能分解成駕駛員接口模型、換擋策略模型、變速器控制主管理模型、離合器控制模型、發(fā)動(dòng)機(jī)管理模型、車輛行駛模式識(shí)別模型、信號(hào)接口模型、安全診斷模型以及執(zhí)行機(jī)構(gòu)驅(qū)動(dòng)模型等,這些模型通過(guò)信號(hào)的相互傳遞可以完成整個(gè)AMT控制系統(tǒng)的功能仿真[4-5]。
2.2 調(diào)度機(jī)制實(shí)現(xiàn)
對(duì)于AMT控制系統(tǒng)的開發(fā),國(guó)外控制器一般采取攜帶操作系統(tǒng)的方法以便能夠?qū)崿F(xiàn)任務(wù)調(diào)度,而國(guó)內(nèi)由于受到資源和平臺(tái)的限制,多數(shù)企業(yè)開發(fā)的控制器并沒(méi)有操作系統(tǒng),但是無(wú)論采取什么樣的方式開發(fā),控制器里面的程序都會(huì)按照任務(wù)調(diào)度的方式運(yùn)行,比如2 ms的任務(wù)2 ms執(zhí)行一次,10 ms的任務(wù)10 ms執(zhí)行一次。在全模型的開發(fā)方法中,將一個(gè)任務(wù)作為一個(gè)原子系統(tǒng),建立的模型可以通過(guò)原子系統(tǒng)的設(shè)置,將所有2 ms等其他任務(wù)的代碼生成一個(gè)函數(shù),比如CRRCAMT _Step2 ms()就是一個(gè)2 ms任務(wù)函數(shù)。在控制器的2 ms任務(wù)調(diào)度中,只需要增加這樣一個(gè)函數(shù),所有的2 ms任務(wù)就可以按照制定的策略執(zhí)行。由于在MATLAB生成的代碼中,配置好的函數(shù)名字不會(huì)隨著模型策略的修改而發(fā)生更改,因此控制器中所有任務(wù)調(diào)度的函數(shù)不需要手動(dòng)做任何修改,只要在MATLAB環(huán)境中調(diào)用編譯的腳本文件就可以完成整個(gè)工程的代碼生成、編譯,從而減少了軟件工程師的工作量[6-8]。
2.3 基礎(chǔ)軟件與模型的數(shù)據(jù)交互
在傳統(tǒng)的基于單個(gè)算法模型生成的代碼中,可以發(fā)現(xiàn)需要引入的輸入輸出信號(hào)都為結(jié)構(gòu)體的形式,這樣生成的代碼與底層信號(hào)交互,不但配置不方便,而且可讀性也不好。
MATLAB全模型方法為與底層信號(hào)互聯(lián)的輸入輸出端口定義信號(hào)屬性,配置“mpt”代碼生成包與“ImportedExtern”儲(chǔ)存類,實(shí)際代碼生成時(shí)所配置信號(hào)僅進(jìn)行全局聲明,模型實(shí)際調(diào)用的基礎(chǔ)軟件定義的同名全局變量,即直接訪問(wèn)底層信號(hào)。
對(duì)于某些模型變量,對(duì)儲(chǔ)存位置有特殊要求,如非易失性數(shù)據(jù)必須定義在EEPROM儲(chǔ)存區(qū)。MATLAB全模型方法為這類數(shù)據(jù)創(chuàng)建自定義儲(chǔ)存類,變量定義時(shí)可靈活添加儲(chǔ)存塊的預(yù)編譯指令,模型可以直接生成位于歷史數(shù)據(jù)區(qū)、標(biāo)定數(shù)據(jù)區(qū)的變量。
MATLAB全模型方法采用數(shù)據(jù)字典方式管理模型的特殊數(shù)據(jù)。AMT控制系統(tǒng)參數(shù)眾多,模型包含大量標(biāo)定量、信號(hào)量以及常量,MATLAB全模型方法為這些數(shù)據(jù)建立了統(tǒng)一的數(shù)據(jù)字典文件(見圖3)。
圖3 數(shù)據(jù)字典中的數(shù)據(jù)
數(shù)據(jù)字典還具有導(dǎo)入導(dǎo)出數(shù)據(jù)功能。當(dāng)模型策略需要修改時(shí),不可避免地需要增加一些數(shù)據(jù)和信號(hào),對(duì)于新增的信號(hào)或者數(shù)據(jù),如果由一個(gè)工程師維護(hù)就可以在同一個(gè)數(shù)據(jù)字典中新增,如果由多名軟件工程師開發(fā)維護(hù),就可以將這些數(shù)據(jù)全部集成在一個(gè)數(shù)據(jù)字典文件中。例如某一工程師開發(fā)AMT的接口模塊,一工程師開發(fā)AMT離合器控制模塊,他們各有一個(gè)數(shù)據(jù)字典文件,最后對(duì)于總模塊中就可以合成一個(gè)數(shù)據(jù)字典文件而方便管理[6-8]。
2.4 模型的自動(dòng)代碼生成控制
MATLAB支持代碼自動(dòng)生成,但上述過(guò)程需要用戶手動(dòng)完成,且生成的文件不能自動(dòng)嵌入集成開發(fā)環(huán)境進(jìn)行編譯、鏈接。MATLAB在代碼生成過(guò)程會(huì)分階段進(jìn)行用戶鉤子(hook)腳本的檢測(cè),從而實(shí)現(xiàn)外部對(duì)代碼生成過(guò)程的自定義控制?;贛ATLAB的全模型方法利用該特點(diǎn)設(shè)計(jì)用戶鉤子腳本,在代碼生成完成后進(jìn)行代碼文件的復(fù)制,將文件直接拷貝到工程的目標(biāo)路徑;根據(jù)MATLAB提供的activeX組件調(diào)用集成開發(fā)環(huán)境,實(shí)現(xiàn)工程文件添加、打開、編譯等操作[9]。
2.5 全模型開發(fā)方法的驗(yàn)證
AMT控制軟件變速器控制主管理模塊被配置為10 ms的原子系統(tǒng),模型自動(dòng)代碼生成后可以得到函數(shù)CRRCAMT_Step10 ms(),將此函數(shù)加入到10 ms任務(wù)中,而且后期維護(hù)過(guò)程中也只需要在MATLAB維護(hù)控制模型中10 ms的原子系統(tǒng)就可以完成程序的升級(jí)。針對(duì)全模型的開發(fā),生成代碼并編譯后,最后實(shí)測(cè)采集到數(shù)據(jù)如圖4所示。
圖4實(shí)測(cè)AMT升擋過(guò)程曲線
圖4 顯示的是變速器擋位從1擋切換到2擋時(shí)AMT執(zhí)行機(jī)構(gòu)輸出、傳感器位置反饋、變速器輸入軸轉(zhuǎn)速變化的數(shù)據(jù)曲線;目標(biāo)擋位由1變成2時(shí),圖中實(shí)際擋位位置從起始1擋位置點(diǎn)快速退至空擋,然后進(jìn)入滑磨點(diǎn)進(jìn)行短時(shí)間機(jī)械擠同步(此過(guò)程變速器輸入軸轉(zhuǎn)速也在進(jìn)行主動(dòng)同步跟隨),最后快速掛入目標(biāo)擋位。由圖4可以得出,基于MATLAB全模型的開發(fā)方法開發(fā)的AMT控制系統(tǒng)具備較好的控制性能與實(shí)時(shí)效果,整個(gè)換擋過(guò)程在短時(shí)間內(nèi)完成,換擋平順性較好,變速器輸出軸轉(zhuǎn)速?zèng)]有出現(xiàn)較大波動(dòng),能夠滿足車輛實(shí)際運(yùn)行需要。
和傳統(tǒng)開發(fā)方式相比,基于MATLAB全模型的AMT控制軟件開發(fā)方法在人員技術(shù)要求、工具鏈掌握等方面的限制都得到較大的改善;開發(fā)人員可以將更多的精力集中在算法的實(shí)現(xiàn),擁有更多的時(shí)間來(lái)設(shè)計(jì)更加完善和可靠的控制模塊與功能;同時(shí)全模型的功能開發(fā)更容易實(shí)現(xiàn)新增功能的聯(lián)合測(cè)試,可以減輕軟件集成測(cè)試階段的測(cè)試驗(yàn)證任務(wù),確保實(shí)現(xiàn)整個(gè)軟件開發(fā)過(guò)程的精簡(jiǎn)和高效。
[1]張會(huì)群.基于dSPACE的全電AMT控制策略的制定與仿真[D].衡陽(yáng):南華大學(xué),2014.
[2]韓鵬.基于扭矩輔助特性的商用車扭矩輔助型AMT控制技術(shù)研究[D].長(zhǎng)春:吉林大學(xué),2015.
[3]李根,唐臻宇,耿海翔,等.基于Matlab/RTW的控制系統(tǒng)一體化新型設(shè)計(jì)方法[J].中國(guó)測(cè)試,2010,36(1):75-77.
[4]宋超,席力克,羅銳,等.基于AMT并聯(lián)混合動(dòng)力系統(tǒng)的CAN通信設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2015,34(13):59-61.
[5]張會(huì)群,趙立宏.全電AMT升擋與發(fā)動(dòng)機(jī)協(xié)調(diào)控制研究[J].電源技術(shù),2015,39(1):130-132.
[6]劉杰.基于模型的設(shè)計(jì)及其嵌入式實(shí)現(xiàn)[M].北京:北京航空航天大學(xué)出版社,2010.
[7]孫忠蕭.Simunlink仿真及代碼生成技術(shù)入門到精通[M].北京:北京航空航天大學(xué)出版社,2015.
[8]陳杰.MATLAB寶典[M].3版.北京:電子工業(yè)出版社,2011.
[9]MathWorks Inc.Code Generation from MATLAB User's Guide,2011-09.
修改稿日期:2017-05-22
Development of AMT ControlSystem Based on MATLAB FullModelMethod
Liu Ling,Song Chao,Xie Yongbo
(Hunan CRRCTimes Electric Vehicle Co.,Ltd,Zhuzhou 412007,China)
Now,the method ofhandwritten code orindividualmodelis generally used in AMT controlsoftware development,which causes longer developmentcycle and higher developmentmaintenance cost.The authors propose a type of software development method based on MATLAB full model,by building the fully functional coverage of model architecture,a code generation strategy based on time scheduling,the automatic mapping from underlying signals to modelparameters,the unified managementofdata interfaces,the automatic integrating and compiling of model codes for scripts control,etc.,which realizes the efficient development and reliable integration of the control models.Finally,the method isapplied and verified.
fullmodel;AMT;controlsystem;code generation
U463.212
B
1006-3331(2017)04-0019-03
劉凌(1974-),男,碩士;副高級(jí)工程師;主要從事電動(dòng)汽車控制與動(dòng)力系統(tǒng)集成。