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