邱美涵,王曉琳,卞 皓
(南京航空航天大學(xué)自動(dòng)化學(xué)院,南京 210016)
隨著新能源汽車產(chǎn)業(yè)的快速發(fā)展,越來(lái)越多的功能需求如安全可靠性、環(huán)境友好性、智能舒適性和汽車本身的性能(如動(dòng)力性、操縱性等)被集成在汽車上,這些功能集成所需的控制單元越來(lái)越多,增加了整車控制系統(tǒng)開發(fā)的復(fù)雜度,并且不同的控制單元之間可能存在耦合,傳統(tǒng)的開發(fā)流程難以滿足軟件可靠性要求。各大汽車廠商對(duì)軟件的開發(fā)都有自己的標(biāo)準(zhǔn),不同的開發(fā)平臺(tái)使軟硬件在集成時(shí)不兼容,造成開發(fā)成本增加,可移植性差,同時(shí)還可能由于兼容性問題導(dǎo)致軟件存在潛在的風(fēng)險(xiǎn)。為了解決這些問題,全球汽車廠商、零部件供應(yīng)商和半導(dǎo)體與軟件開發(fā)公司聯(lián)合推出了汽車開放系統(tǒng)架構(gòu)標(biāo)準(zhǔn)AUTOSAR(automotive open system architecture)。其目標(biāo)是為汽車電子軟件的開發(fā)提供一個(gè)開放式架構(gòu)和標(biāo)準(zhǔn),以提高產(chǎn)品在不同汽車平臺(tái)的可擴(kuò)展性、軟件的安全可靠性、可移植性與實(shí)用性和整個(gè)產(chǎn)品生命周期的可維護(hù)性,是汽車行業(yè)發(fā)展的一次重大變革。
在電動(dòng)汽車的3大電控單元(電機(jī)控制、電池管理、整車控制)中,驅(qū)動(dòng)電機(jī)控制作為其中的重中之重,其性能的優(yōu)劣直接影響汽車的動(dòng)力性和操縱性。與傳統(tǒng)調(diào)速電機(jī)系統(tǒng)和伺服電機(jī)系統(tǒng)不同,車用驅(qū)動(dòng)電機(jī)系統(tǒng)的開發(fā)除了高功率密度、寬調(diào)速范圍等性能需求外,對(duì)于安全性和可靠性也有更高的要求。目前,國(guó)內(nèi)外對(duì)于提高車用電機(jī)控制可靠性的研究除了各種電機(jī)本體設(shè)計(jì)和容錯(cuò)控制策略之外[1-7],還側(cè)重于對(duì)高性能的電機(jī)ECU(electronic control unit)軟件系統(tǒng)的開發(fā)。因此,研究基于AUTOSAR分層架構(gòu)的電機(jī)驅(qū)動(dòng)控制器軟件的開發(fā)顯得尤為重要。
從AUTOSAR的發(fā)展階段來(lái)看,AUTOSAR標(biāo)準(zhǔn)基本已經(jīng)達(dá)到成熟水平[8-11],并逐漸投入汽車電控系統(tǒng)軟件研發(fā)中,如基于AUTOSAR的汽車底盤控制系統(tǒng)的開發(fā)應(yīng)用[12],整車電子電氣架構(gòu)的設(shè)計(jì)[13],汽車外光燈模塊的開發(fā)[14],汽車電子診斷系統(tǒng)的開發(fā)[15]和AUTOSAR底層通信軟件SPI(serial peripheral interface)的研究與開發(fā)[16]等。對(duì)于電機(jī)控制系統(tǒng),文獻(xiàn)[17]中基于AUTOSAR方法對(duì)電機(jī)助力轉(zhuǎn)向系統(tǒng)的軟件組件進(jìn)行開發(fā),并在Matlab/Simulink中進(jìn)行模型在環(huán)仿真驗(yàn)證。文獻(xiàn)[18]中設(shè)計(jì)開發(fā)出基于AUTOSAR的永磁同步電機(jī)控制系統(tǒng)軟件和硬件控制器,并利用硬件在環(huán)設(shè)備模擬電機(jī)實(shí)際運(yùn)行工況進(jìn)行仿真驗(yàn)證。文獻(xiàn)[19]中基于AUTOSAR標(biāo)準(zhǔn)對(duì)電機(jī)ECU控制軟件進(jìn)行研究和設(shè)計(jì),主要完成了對(duì)控制軟件開發(fā)中應(yīng)用層軟件組件和運(yùn)行實(shí)體的設(shè)計(jì)、算法庫(kù)層和基礎(chǔ)軟件層的設(shè)計(jì),并以英飛凌TC1767處理器作為開發(fā)平臺(tái)對(duì)軟件性能進(jìn)行實(shí)驗(yàn)驗(yàn)證。同濟(jì)大學(xué)在2016年開發(fā)出國(guó)內(nèi)首例基于英飛凌TC275和Vector AUTOSAR的電機(jī)控制器原型機(jī),主要側(cè)重于開發(fā)符合AUTOSAR 4.0.3規(guī)范的電機(jī)控制器基礎(chǔ)軟件和部分應(yīng)用層軟件。
本文中以AUTOSAR分層次、模塊化的設(shè)計(jì)思想為基礎(chǔ),對(duì)電機(jī)軟件控制系統(tǒng)架構(gòu)進(jìn)行設(shè)計(jì),將其劃分為不同的功能模塊和軟件層次,包括應(yīng)用軟件層、基礎(chǔ)軟件層和實(shí)時(shí)運(yùn)行環(huán)境層,它們之間通過功能總線實(shí)現(xiàn)數(shù)據(jù)通信和服務(wù)調(diào)用,同時(shí),利用Matlab/Simulink和底層驅(qū)動(dòng)軟件iLLD(low level driver)對(duì)各軟件層和功能模塊進(jìn)行了詳細(xì)設(shè)計(jì),各單元之間獨(dú)立開發(fā),互不耦合,這種開發(fā)方式使開發(fā)者可專注于相應(yīng)功能模塊和軟件層次的開發(fā),便于軟件在不同平臺(tái)的擴(kuò)展和開發(fā)效率的提高。最后以Infineon TC275三核單片機(jī)為硬件開發(fā)平臺(tái),以永磁同步電機(jī)為控制對(duì)象,將所開發(fā)的軟件應(yīng)用于樣機(jī)實(shí)驗(yàn),完成了電機(jī)的靜態(tài)和動(dòng)態(tài)測(cè)試。
傳統(tǒng)的電機(jī)控制軟件開發(fā)分層不明顯,軟件和硬件之間存在嵌套關(guān)系,如圖1(a)所示,這使軟件在開發(fā)過程中一旦遇到問題和缺陷,難以確定問題產(chǎn)生的原因是硬件驅(qū)動(dòng)程序還是軟件算法設(shè)計(jì),影響軟件開發(fā)效率,提高開發(fā)成本,同樣也會(huì)使軟件存在潛在的風(fēng)險(xiǎn)。因此須對(duì)軟件開發(fā)架構(gòu)進(jìn)行重新規(guī)劃設(shè)計(jì)來(lái)提高軟件可靠性與系統(tǒng)開發(fā)效率。而AUTOSAR就是以軟件分層和模塊劃分的方式實(shí)現(xiàn)軟硬件分離的汽車開放式架構(gòu)標(biāo)準(zhǔn),如圖1(b)所示,它將系統(tǒng)軟件架構(gòu)劃分為應(yīng)用軟件層(application layer, APP)、基礎(chǔ)軟件層(basic software, BSW)和實(shí)時(shí)運(yùn)行環(huán)境層(runtime environment,RTE)。
圖1 傳統(tǒng)和標(biāo)準(zhǔn)化的軟件開發(fā)模式
在電機(jī)控制系統(tǒng)中,與電機(jī)控制功能相關(guān)的電機(jī)控制算法、電機(jī)狀態(tài)檢測(cè)和安全監(jiān)控等功能可作為應(yīng)用程序與AUTOSAR架構(gòu)中的應(yīng)用軟件層相對(duì)應(yīng),應(yīng)用軟件層中又將不同的功能模塊以軟件組件SWC(software component)的形式進(jìn)行封裝,便于設(shè)計(jì)者的進(jìn)一步開發(fā)。基礎(chǔ)軟件層對(duì)應(yīng)于與電機(jī)控制相關(guān)的如控制器外設(shè)驅(qū)動(dòng)、通信服務(wù)和中斷服務(wù)等,將控制器硬件功能以模塊化進(jìn)行封裝,有利于其在不同硬件平臺(tái)間的移植。應(yīng)用層與基礎(chǔ)軟件層之間的數(shù)據(jù)交流和服務(wù)調(diào)用則通過實(shí)時(shí)運(yùn)行環(huán)境層實(shí)現(xiàn),RTE相當(dāng)于虛擬功能總線,使開發(fā)者在設(shè)計(jì)應(yīng)用軟件時(shí)不必考慮底層硬件和通信網(wǎng)絡(luò)而專注于功能軟件的設(shè)計(jì)。圖2為本文對(duì)電動(dòng)汽車驅(qū)動(dòng)電機(jī)ECU軟件架構(gòu)的分層設(shè)計(jì)。下面將在此架構(gòu)的基礎(chǔ)上對(duì)每層軟件進(jìn)行詳細(xì)設(shè)計(jì)。
圖2 電機(jī)控制軟件分層架構(gòu)
應(yīng)用層軟件是電機(jī)控制及安全監(jiān)控等功能的具體實(shí)現(xiàn),須先確定系統(tǒng)的輸入和輸出數(shù)據(jù)、系統(tǒng)所包含的軟件組件SWC及其系統(tǒng)約束等。本系統(tǒng)的ECU即為電機(jī)控制器,并且根據(jù)相應(yīng)功能可將其軟件組件劃分為電機(jī)控制算法SWC、數(shù)據(jù)解算SWC和安全監(jiān)控功能SWC等軟件組件,如圖3所示,同時(shí),須確定各軟件組件的數(shù)據(jù)輸入和輸出、軟件組件之間的數(shù)據(jù)交流和服務(wù)調(diào)用。在應(yīng)用軟件層APP中,軟件組件劃分的目的是將系統(tǒng)模塊化,減少模塊間耦合,抽象出系統(tǒng)各模塊間的數(shù)據(jù)流和服務(wù)調(diào)用關(guān)系,同時(shí)也有利于系統(tǒng)軟件的更新和升級(jí)。
圖3 應(yīng)用層軟件組件結(jié)構(gòu)框圖
完成各個(gè)軟件組件設(shè)計(jì)后,須設(shè)計(jì)其中的運(yùn)行實(shí)體RE(runnable entity),運(yùn)行實(shí)體是軟件組件的最小代碼片段,是軟件組件功能的具體實(shí)現(xiàn)。其中,數(shù)據(jù)解算軟件組件SWC中,輸入數(shù)據(jù)包括從基礎(chǔ)軟件層獲得的電流采樣和轉(zhuǎn)子位置傳感器信號(hào)等,須通過電流計(jì)算、轉(zhuǎn)速和轉(zhuǎn)子位置解算的運(yùn)行實(shí)體RE才能得到相應(yīng)的電機(jī)電流、轉(zhuǎn)速和轉(zhuǎn)子位置等信號(hào)。電機(jī)控制算法SWC包含電機(jī)控制策略,本文中采用的電機(jī)控制算法為磁場(chǎng)矢量定向控制FOC(field oriented control),控制框圖如圖4所示,將此框圖進(jìn)行功能劃分,不同層次以不同顏色標(biāo)出,分別與應(yīng)用層APP、基礎(chǔ)軟件層BSW和實(shí)時(shí)運(yùn)行環(huán)境層RTE的分層架構(gòu)相對(duì)應(yīng)??梢钥闯觯謱蛹軜?gòu)的劃分實(shí)現(xiàn)了電機(jī)控制軟硬件的分離,使軟件開發(fā)者可專注于系統(tǒng)軟件設(shè)計(jì)而無(wú)須考慮硬件相關(guān)問題。安全監(jiān)控SWC則是針對(duì)電機(jī)過流保護(hù)和過溫保護(hù)等運(yùn)行實(shí)體的設(shè)計(jì)。后續(xù)若須進(jìn)行功能的添加和升級(jí)只須對(duì)相應(yīng)的軟件組件和運(yùn)行實(shí)體進(jìn)行添加和修改即可。應(yīng)用軟件層的設(shè)計(jì)是利用Matlab/Simulink環(huán)境建模,按照所設(shè)計(jì)的軟件組件和其運(yùn)行實(shí)體搭建模型,利用Simulink/Configuration Parameters-Code Generation進(jìn)行相應(yīng)配置生成軟件代碼,然后可在HighTec編譯器中將相應(yīng)的代碼文件添加到系統(tǒng)工程中。
基礎(chǔ)軟件層為應(yīng)用層軟件提供基礎(chǔ)設(shè)施服務(wù),包括外設(shè)驅(qū)動(dòng)、內(nèi)存管理和通信服務(wù)等,是連接應(yīng)用層與微控制器之間的橋梁。本系統(tǒng)的基礎(chǔ)軟件層結(jié)構(gòu)框圖如圖5所示,包含外設(shè)驅(qū)動(dòng)、服務(wù)和通信等。其中,外設(shè)驅(qū)動(dòng)是將微控制器各個(gè)功能外設(shè)進(jìn)行封裝,供開發(fā)者調(diào)用,如PWM驅(qū)動(dòng)、ADC驅(qū)動(dòng)、CAN驅(qū)動(dòng)和IO驅(qū)動(dòng)等;服務(wù)包括存儲(chǔ)服務(wù)和與系統(tǒng)服務(wù)相關(guān)的看門狗和定時(shí)器等;另外還包含與數(shù)據(jù)通信相關(guān)的通信協(xié)議的設(shè)計(jì)等。
本文中以英飛凌AURIX三核單片機(jī)TC275為硬件開發(fā)平臺(tái),基于iLLD底層驅(qū)動(dòng)軟件對(duì)系統(tǒng)基礎(chǔ)軟件層進(jìn)行相關(guān)開發(fā)與設(shè)計(jì)。系統(tǒng)基于TC275單片機(jī)的硬件控制框圖如圖6所示。與電機(jī)控制相關(guān)的控制器外設(shè)模塊包括GTM,ADC,GPIO和ASCLIN等,主要用于實(shí)現(xiàn)PWM驅(qū)動(dòng)、AD采樣、IO信號(hào)輸入輸出和通信等功能。
圖4 電機(jī)矢量控制算法框圖
圖5 基礎(chǔ)軟件結(jié)構(gòu)框圖
圖6 基于TC275的系統(tǒng)硬件控制框圖
底層驅(qū)動(dòng)軟件iLLD為TC275各個(gè)外設(shè)功能模塊的寄存器配置以結(jié)構(gòu)體和功能函數(shù)的形式進(jìn)行封裝,從一個(gè)簡(jiǎn)單的定時(shí)器到三相驅(qū)動(dòng)PWM波的產(chǎn)生,都可利用iLLD進(jìn)行函數(shù)調(diào)用完成相關(guān)程序設(shè)計(jì),這樣避免了開發(fā)人員直接對(duì)寄存器進(jìn)行配置,既可提高開發(fā)效率,也可保證程序的可讀性與可靠性。
在完成了應(yīng)用層軟件和基礎(chǔ)軟件層的設(shè)計(jì)后,須在實(shí)時(shí)運(yùn)行環(huán)境層定義相關(guān)接口函數(shù),實(shí)現(xiàn)應(yīng)用層軟件組件之間和應(yīng)用層與基礎(chǔ)軟件層之間數(shù)據(jù)的傳輸與調(diào)用。首先須明確應(yīng)用層軟件的輸入輸出數(shù)據(jù)和定義相應(yīng)的數(shù)據(jù)類型,如圖3所示,各個(gè)SWC的相關(guān)數(shù)據(jù)均列出,在利用Matlab/Simulink搭建模型后,生成的程序代碼則將輸入輸出數(shù)據(jù)以結(jié)構(gòu)體形式封裝;基礎(chǔ)軟件層中的輸入輸出數(shù)據(jù)則根據(jù)iLLD中相關(guān)功能函數(shù)進(jìn)行定義。完成各軟件層數(shù)據(jù)定義后,在中斷服務(wù)程序中將相應(yīng)輸入輸出數(shù)據(jù)進(jìn)行賦值即可實(shí)現(xiàn)應(yīng)用層與基礎(chǔ)軟件層之間的數(shù)據(jù)傳輸。
以上是對(duì)系統(tǒng)架構(gòu)設(shè)計(jì)的詳細(xì)介紹,圖7為系統(tǒng)軟件架構(gòu)具體實(shí)現(xiàn)的示意圖。其中,應(yīng)用層軟件通過在Matlab/Simulink中搭建模型完成相關(guān)仿真測(cè)試并進(jìn)行代碼生成,基礎(chǔ)軟件層利用底層驅(qū)動(dòng)軟件進(jìn)行輔助設(shè)計(jì)以實(shí)現(xiàn)對(duì)各個(gè)外設(shè)驅(qū)動(dòng)初始化,并包含對(duì)通信協(xié)議和中斷服務(wù)等進(jìn)行相應(yīng)配置;數(shù)據(jù)通信和調(diào)用通過在實(shí)時(shí)運(yùn)行環(huán)境層定義相關(guān)接口函數(shù)實(shí)現(xiàn)。通過上述方法完成基于AUTOSAR電機(jī)控制軟件的具體設(shè)計(jì)實(shí)現(xiàn)。
最后,在HighTec編譯器中對(duì)所有程序進(jìn)行集成編譯、鏈接,生成可執(zhí)行文件并添加到調(diào)試軟件UDE中,對(duì)軟件進(jìn)行調(diào)試、分析,根據(jù)分析結(jié)果可對(duì)軟件進(jìn)一步優(yōu)化。
為驗(yàn)證基于AUTOSAR開發(fā)的電機(jī)控制軟件的可行性,本文中將所設(shè)計(jì)的軟件程序應(yīng)用于車用永磁同步電機(jī)的硬件平臺(tái)中,并進(jìn)行相關(guān)實(shí)驗(yàn)。本實(shí)驗(yàn)所采用的測(cè)試電機(jī)功率為8kW,電機(jī)極對(duì)數(shù)為4對(duì),母線電壓為144V。測(cè)試平臺(tái)如圖8所示,圖9為基于英飛凌TC275的電機(jī)驅(qū)動(dòng)控制器。
圖7 軟件架構(gòu)具體實(shí)現(xiàn)示意圖
圖8 測(cè)試平臺(tái)測(cè)功機(jī) 電機(jī)
實(shí)驗(yàn)包括靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試兩部分,靜態(tài)實(shí)驗(yàn)測(cè)試電機(jī)的靜態(tài)工作點(diǎn)。結(jié)果表明,電機(jī)可正常運(yùn)行,其空載運(yùn)行轉(zhuǎn)速為2 500r/min,當(dāng)給定轉(zhuǎn)速為2 000r/min時(shí),輸出轉(zhuǎn)矩可達(dá)35N·m。圖10為電機(jī)測(cè)試效率云圖,可以看出,該電機(jī)控制系統(tǒng)的效率最高可達(dá)94%。
圖9 電機(jī)控制器
圖10 電機(jī)測(cè)試效率云圖
動(dòng)態(tài)實(shí)驗(yàn)主要測(cè)試電機(jī)的轉(zhuǎn)矩和轉(zhuǎn)速的響應(yīng)特性。轉(zhuǎn)速響應(yīng)特性測(cè)試時(shí),保持電機(jī)轉(zhuǎn)矩為30N·m,將電機(jī)給定轉(zhuǎn)速?gòu)? 000提高到2 000r/min,再?gòu)? 000下降到1 000r/min,觀察電機(jī)轉(zhuǎn)速變化情況,結(jié)果如圖11和圖12所示。圖中給出了轉(zhuǎn)速給定曲線n?、實(shí)際轉(zhuǎn)速n和轉(zhuǎn)矩曲線Te,結(jié)果表明,電機(jī)轉(zhuǎn)速可在較短時(shí)間內(nèi)達(dá)到給定轉(zhuǎn)速。轉(zhuǎn)矩響應(yīng)特性測(cè)試時(shí),給定電機(jī)轉(zhuǎn)速為1 500r/min,將負(fù)載轉(zhuǎn)矩從0提升到30N·m,再?gòu)?0N·m下降至0,測(cè)試電機(jī)轉(zhuǎn)矩響應(yīng)特性,結(jié)果如圖13和圖14所示。圖中給出了轉(zhuǎn)矩給定曲線Te?、實(shí)際轉(zhuǎn)矩響應(yīng)曲線Te和轉(zhuǎn)速波形n,可以看出,實(shí)際轉(zhuǎn)矩能快速跟蹤給定轉(zhuǎn)矩。
圖11 電機(jī)轉(zhuǎn)速響應(yīng)(1 000-2 000r/min)
圖12 電機(jī)轉(zhuǎn)速響應(yīng)(2 000-1 000r/min)
圖13 電機(jī)轉(zhuǎn)矩響應(yīng)(0-30N·m)
圖14 電機(jī)轉(zhuǎn)矩響應(yīng)(30N·m-0)
本文中以AUTOSAR分層次、模塊化的設(shè)計(jì)思想為基礎(chǔ),對(duì)電機(jī)軟件控制系統(tǒng)架構(gòu)進(jìn)行設(shè)計(jì),將其劃分為不同的功能模塊和軟件層次,包括應(yīng)用軟件層、基礎(chǔ)軟件層和實(shí)時(shí)運(yùn)行環(huán)境層,它們之間通過功能總線實(shí)現(xiàn)數(shù)據(jù)通信和服務(wù)調(diào)用;并利用Matlab/Simulink和底層驅(qū)動(dòng)軟件對(duì)各軟件層和功能模塊進(jìn)行了詳細(xì)設(shè)計(jì);再以英飛凌TC275三核單片機(jī)為硬件開發(fā)平臺(tái),以永磁同步電機(jī)為控制對(duì)象,將所開發(fā)軟件應(yīng)用于樣機(jī)實(shí)驗(yàn),測(cè)試結(jié)果表明,該電機(jī)控制軟件可實(shí)現(xiàn)對(duì)永磁同步電機(jī)的控制,且具有良好的轉(zhuǎn)速和轉(zhuǎn)矩調(diào)節(jié)能力?;谲浖姆謱蛹軜?gòu)開發(fā)可以提高系統(tǒng)軟件開發(fā)的靈活性、可配置性和代碼復(fù)用率,有利于軟件的升級(jí)和更新,對(duì)提高電動(dòng)汽車驅(qū)動(dòng)電機(jī)軟件的可靠性和開發(fā)效率有著重要意義。