1、前言
純電動(dòng)汽車和混合動(dòng)力汽車是新能源汽車產(chǎn)業(yè)發(fā)展的重要方向,同時(shí),泛亞“電動(dòng)化、智能化、網(wǎng)聯(lián)化、數(shù)字化”戰(zhàn)略的提出,使得未來車載汽車電子電氣架構(gòu)系統(tǒng)的開發(fā)越來越復(fù)雜。汽車開放系統(tǒng)架構(gòu) AUTOSAR 代表的層次化、模塊化、平臺(tái)化技術(shù)則是汽車電子軟件開發(fā)的重要趨勢。在電動(dòng)汽車的三大電控系統(tǒng)中(電機(jī)控制、電池管理、整車控制),電機(jī)控制作為核心之一,其軟件架構(gòu)的研究設(shè)計(jì)對(duì)于汽車電控系統(tǒng)的開發(fā)有重要意義。本報(bào)告以電動(dòng)汽車用驅(qū)動(dòng)電機(jī)作為研究對(duì)象,以 AUTOSAR 開發(fā)架構(gòu)為基礎(chǔ),對(duì)電機(jī)驅(qū)動(dòng)控制系統(tǒng)軟件架構(gòu)設(shè)計(jì)與開發(fā)進(jìn)行探究,并在此基礎(chǔ)上對(duì)電機(jī)過調(diào)制控制算法以及旋變軟解碼技術(shù)進(jìn)行詳細(xì)研究。
2、電動(dòng)汽車的電機(jī)控制軟件基于 AUTOSAR開發(fā)的意義
在電動(dòng)汽車的三大電控單元中,電機(jī)驅(qū)動(dòng)控制作為其中的核心,其性能高低對(duì)汽車動(dòng)力性和操縱性有直接的影響。和傳統(tǒng)電機(jī)調(diào)速系統(tǒng)和伺服電機(jī)系統(tǒng)相比較,車用驅(qū)動(dòng)電機(jī)系統(tǒng)的開發(fā)除了高功率密度、寬調(diào)速范圍等性能需求外,對(duì)于安全性和可靠性也有著更高的要求。提高車用電機(jī)控制軟件的可復(fù)用性,增強(qiáng)系統(tǒng)軟件的可配置性,改善系統(tǒng)軟件的可靠性與穩(wěn)定性對(duì)于車用電機(jī)控制系統(tǒng)開發(fā)有著重要意義。
3、旋變解碼研究
對(duì)于電機(jī)矢量控制而言,往往需要獲取電機(jī)的轉(zhuǎn)子位置角度,角度的測量常用的方法有磁性編碼器、光電碼盤、電渦流傳感器和旋轉(zhuǎn)變壓器等。其中,磁編碼器是基于磁阻效應(yīng)或霍爾效應(yīng)的軸角傳感器,輸出信號(hào)是基于轉(zhuǎn)子位置的正余弦函數(shù),其結(jié)構(gòu)簡單魯棒性強(qiáng),不受潮濕環(huán)境影響,但受高溫和氣隙限制;光電碼盤體積小,分辨率高,抗電磁干擾能力強(qiáng),但轉(zhuǎn)速受限,最高可測轉(zhuǎn)速在 3000rpm 左右;電渦流傳感器靈敏度高,響應(yīng)速度快,受環(huán)境影響較小,但其精度有限;旋轉(zhuǎn)變壓器可靠性高,不同環(huán)境適應(yīng)能力強(qiáng),不受溫度和振動(dòng)等因素影響,因此廣泛應(yīng)用于電梯、雷達(dá)、機(jī)載儀器等伺服系統(tǒng)和工業(yè)自動(dòng)化領(lǐng)域。
旋轉(zhuǎn)變壓器輸出一組包含轉(zhuǎn)子位置信息的正余弦信號(hào),需要對(duì)此信號(hào)進(jìn)行適當(dāng)?shù)奶幚?,才能得到相?yīng)的轉(zhuǎn)子位置。對(duì)于旋轉(zhuǎn)變壓器輸出模擬信號(hào)的處理可以由專用的集成電路將其轉(zhuǎn)換為數(shù)字信號(hào),即 RDC電路,又稱為旋變解碼芯片,目前常見的有美國 AD公司的 AD2S(AD2S1210)系列芯片以及日本多摩川公司的 AU6802系列芯片,它們可以產(chǎn)生激勵(lì)信號(hào)發(fā)送給旋變的激勵(lì)繞組,然后將返回繞組的模擬信號(hào)處理得到轉(zhuǎn)子位置信號(hào),以編碼器或 SPI 等形式輸出。除此之外,還有一種方法是利用 DSP和外圍調(diào)理電路產(chǎn)生激勵(lì)信號(hào)并對(duì)旋變輸出的信號(hào)進(jìn)行調(diào)制、濾波等處理以及角度辨識(shí)算法得到轉(zhuǎn)子位置信號(hào)。采用 DSP 對(duì)角度信號(hào)處理省去了專用的解碼芯片,極大地降低了開發(fā)成本。
常見的角度辨識(shí)算法有反三角函數(shù)法、標(biāo)定查表法、基于鎖相環(huán)的角度跟蹤觀測器法。其中,反三角函數(shù)法實(shí)現(xiàn)簡單,但引入了一個(gè)除法,一個(gè)反正切運(yùn)算,占用資源較多,而且不能利用整個(gè)輸出信號(hào)的波形;標(biāo)定查表法需要利用傳感器對(duì)旋變信號(hào)標(biāo)定,將旋變輸出信號(hào)對(duì)應(yīng)的角度值存儲(chǔ)起來,以供查表使用;基于鎖相環(huán)的角度跟蹤觀測器法包含二階角度觀測器和三階角度觀測器,二階角度觀測器法具有一定的濾波作用,提高抗干擾能力,能夠同時(shí)估算出電機(jī)的轉(zhuǎn)子位置和轉(zhuǎn)速值。當(dāng)轉(zhuǎn)速變化(升降速)時(shí),二階觀測器解算出的轉(zhuǎn)子位置角會(huì)有穩(wěn)態(tài)誤差,采用三階角度觀測器具有更好的瞬態(tài)檢測性能,常用于電機(jī)啟動(dòng)加速時(shí)的轉(zhuǎn)子位置觀測。
4、基于 AUTOSAR 的電機(jī)驅(qū)動(dòng)控制系統(tǒng)開發(fā)
本節(jié)主要研究AUTOSAR 標(biāo)準(zhǔn)對(duì)電機(jī)控制系統(tǒng)軟件進(jìn)行軟件分層,包括應(yīng)用層、基礎(chǔ)軟件層和實(shí)時(shí)運(yùn)行環(huán)境。其中,應(yīng)用層通過MATLAB/Simulink 搭建電機(jī)控制模型并生成軟件代碼,基礎(chǔ)軟件層通過調(diào)用英飛凌底層驅(qū)動(dòng)軟件包編程實(shí)現(xiàn)外設(shè)功能模塊驅(qū)動(dòng),實(shí)時(shí)運(yùn)行環(huán)境通過自定義接口函數(shù)實(shí)現(xiàn)不同軟件層之間的數(shù)據(jù)交流和服務(wù)調(diào)用。
傳統(tǒng)的電機(jī)控制,尤其在自動(dòng)化領(lǐng)域,軟件開發(fā)分層不明顯,軟件和硬件之間的嵌套關(guān)系耦合嚴(yán)重,這就使得軟件在開發(fā)過程中一旦遇到問題和缺陷,難以確定問題產(chǎn)生的原因在于硬件驅(qū)動(dòng)程序還是軟件算法設(shè)計(jì),影響軟件開發(fā)效率,提高開發(fā)成本,同樣也會(huì)使軟件存在潛在的風(fēng)險(xiǎn)。AUTOSAR 是以軟件分層和模塊劃分的方式實(shí)現(xiàn)軟硬件分離的汽車開放式架構(gòu)標(biāo)準(zhǔn),將系統(tǒng)軟件架構(gòu)劃分為應(yīng)用軟件層(APP)、基礎(chǔ)軟件層(BSW)和實(shí)時(shí)運(yùn)行環(huán)境層(RTE)。如下圖所示:
在電機(jī)控制系統(tǒng)中,與電機(jī)控制功能相關(guān)的電機(jī)控制算法、電機(jī)狀態(tài)檢測、安全監(jiān)控等功能可作為應(yīng)用程序與 AUTOSAR 架構(gòu)中的應(yīng)用軟件層相對(duì)應(yīng),應(yīng)用軟件層中又將不同的功能模塊以軟件組件 SWC的形式進(jìn)行封裝,便于設(shè)計(jì)者的進(jìn)一步開發(fā)?;A(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ì)。下圖為本文對(duì)電動(dòng)汽車驅(qū)動(dòng)電機(jī) ECU 軟件架構(gòu)的分層設(shè)計(jì)。下文將在此架構(gòu)的基礎(chǔ)之上對(duì)每層軟件進(jìn)行詳細(xì)設(shè)計(jì)。
5、應(yīng)用層軟件設(shè)計(jì)(ASW)
應(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等軟件組件,如圖 2.3 所示,同時(shí)需要確定各軟件組件的數(shù)據(jù)輸入和輸出以及軟件組件之間的數(shù)據(jù)交流和服務(wù)調(diào)用。在應(yīng)用軟件層 APP 中,軟件組件劃分的目的是通過功能模塊劃分減少耦合,有利于系統(tǒng)軟件的更新與升級(jí)。
完成各個(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ī)控制算法為磁場矢量定向控制FOC(Field Oriented Control,F(xiàn)OC),控制框圖如圖 2.4 所示,將此框圖進(jìn)行功能劃分不同層次,分別與應(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ì)而無需考慮硬件相關(guān)問題。安全監(jiān)控 SWC 則是針對(duì)電機(jī)過流保護(hù)、過溫保護(hù)、轉(zhuǎn)子位置監(jiān)測等運(yùn)行實(shí)體的設(shè)計(jì)。后續(xù)若需要進(jìn)行功能的添加和升級(jí)只需要對(duì)相應(yīng)的軟件組件和運(yùn)行實(shí)體進(jìn)行添加和修改即可,從而可以避免由于軟件之間交叉耦合帶來的復(fù)雜性問題。
應(yīng)用軟件層的設(shè)計(jì)是利用 Matlab/Simulink 環(huán)境建模,按照所設(shè)計(jì)的軟件組件及其運(yùn)行實(shí)體搭建模型,利用 Simulink/Configuration Parameters-Code Generation 進(jìn)行相應(yīng)配置生成軟件代碼,然后可在 Tasking 編譯器中將相應(yīng)的代碼文件添加到系統(tǒng)工程中。
6、基礎(chǔ)軟件層設(shè)計(jì)(BSW)
基礎(chǔ)軟件層向應(yīng)用層軟件提供基礎(chǔ)設(shè)施服務(wù),包括外設(shè)驅(qū)動(dòng)服務(wù)、內(nèi)存管理服務(wù)、通信服務(wù)等,是連接應(yīng)用層與微控制器之間的橋梁。本系統(tǒng)為驅(qū)動(dòng)電機(jī)控制系統(tǒng),其基礎(chǔ)軟件層結(jié)構(gòu)框圖如圖 2.5 所示,包含外設(shè)驅(qū)動(dòng)、服務(wù)和通信等。其中,外設(shè)驅(qū)動(dòng)是將微控制器的各個(gè)功能外設(shè)進(jìn)行封裝,供開發(fā)者調(diào)用,如與電機(jī)控制相關(guān)的 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ī) TC297 為硬件開發(fā)平臺(tái),基于英飛凌底層驅(qū)動(dòng)軟件對(duì)系統(tǒng)基礎(chǔ)軟件層進(jìn)行相關(guān)開發(fā)與設(shè)計(jì)。其中,AURIX 系列芯片是英飛凌推出的滿足汽車行業(yè)標(biāo)準(zhǔn)(如 AUTOSAR 標(biāo)準(zhǔn)、ISO26262)的高性能 32 位微控制器,集成三個(gè) CPU 內(nèi)核,主頻 300MHz,可應(yīng)用于汽車發(fā)動(dòng)機(jī)控制、電動(dòng)/混合動(dòng)力汽車、底盤、制動(dòng)系統(tǒng)、電動(dòng)助力轉(zhuǎn)向系統(tǒng)和先進(jìn)輔助駕駛系統(tǒng)等各類場合。本文選用的 TC297 單片機(jī)具有豐富的外設(shè)資源和強(qiáng)大的數(shù)據(jù)處理能力,完全可以滿足車用電機(jī)控制需求。
系統(tǒng)與電機(jī)控制相關(guān)的控制器外設(shè)模塊包括 CCU6、GTM、ADC、GPIO、ASCLIN等,主要用于實(shí)現(xiàn) PWM 驅(qū)動(dòng)、AD 采樣、IO 信號(hào)輸入輸出、通信等功能。其中,CCU6是一個(gè)具有特定應(yīng)用模式的16位高分辨率捕獲和比較單元,主要用于AC驅(qū)動(dòng)控制。特殊操作模式支持使用霍爾傳感器或反電動(dòng)勢檢測的無刷DC電機(jī)。
此外,支持多相電機(jī)的塊整流和控制機(jī)制。它也支持同步啟動(dòng)幾個(gè)定時(shí)器,這是包含多個(gè)CCU6模塊的設(shè)備的一個(gè)重要特性。
永磁同步電機(jī)的控制需要六路 PWM波來驅(qū)動(dòng)三相逆變器,則可以利用定時(shí)器 CCU6 的多路定時(shí)器T12輸出模塊生成三相六路中心對(duì)稱的 PWM 波。另外,為滿足三相電流的同步采樣,還需一個(gè)定時(shí)器作為同步觸發(fā)信號(hào) Trigger 來觸發(fā) AD 采樣,這樣CCU6 模塊一共需要T12、T13兩個(gè)定時(shí)器。
VADC 模數(shù)轉(zhuǎn)換模塊包含 8 個(gè)獨(dú)立的轉(zhuǎn)換單元,每個(gè)轉(zhuǎn)換單元含有 8 個(gè)輸入采樣通道,AD采樣轉(zhuǎn)換時(shí)間小于 1μs。在電機(jī)控制中,三相電流需進(jìn)行同步采樣,而 VADC 模塊的同步轉(zhuǎn)換功能可支持多達(dá)四個(gè)采樣通道的同步轉(zhuǎn)換。因此,可利用 VADC 的轉(zhuǎn)換單元進(jìn)行同步采樣轉(zhuǎn)換,以實(shí)現(xiàn)電機(jī)相電流的同步采樣。同時(shí),AD 采樣頻率也要與 PWM 頻率一致,采用硬件觸發(fā) AD采樣可以降低軟件開銷,減輕 CPU 負(fù)載率,則可利用上文 T13設(shè)計(jì)中預(yù)留的 Trigger作為觸發(fā)信號(hào)觸發(fā) AD 采樣。
底層驅(qū)動(dòng)軟件為 TC297 各個(gè)外設(shè)功能模塊的寄存器配置以結(jié)構(gòu)體和功能函數(shù)的形式進(jìn)行封裝,從一個(gè)定時(shí)器到三相驅(qū)動(dòng) PWM 波的產(chǎn)生,都可以通過手動(dòng)編寫寄存器實(shí)現(xiàn),把相關(guān) PWM輸出的寄存器配置以結(jié)構(gòu)體和功能函數(shù)的形式進(jìn)行封裝,供開發(fā)者調(diào)用,通過調(diào)用 CCU6 模塊PWM 配置的結(jié)構(gòu)體和函數(shù),并將相關(guān)參數(shù)賦值,如頻率、死區(qū)時(shí)間、互補(bǔ)通道對(duì)數(shù)等,即可完成對(duì)電機(jī)控制所需的 PWM 波配置。在進(jìn)行 AD 電流采樣配置時(shí),利用 VADC 模塊初始化函數(shù)可實(shí)現(xiàn)對(duì) AD 采樣的轉(zhuǎn)換單元和采樣通道的初始化配置,包括與電流采樣相關(guān)的同步轉(zhuǎn)換通道的設(shè)置以及 AD 采樣結(jié)果中斷的設(shè)置。
我們將旋轉(zhuǎn)變壓器的解碼工作封裝成一個(gè)CDD模塊,主要處理旋變解碼芯片的反饋數(shù)據(jù)結(jié)算工作。
7、基于實(shí)時(shí)運(yùn)行環(huán)境設(shè)計(jì)(RTE)
在完成了應(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ù)類型,各個(gè)軟件組件的輸入輸出相關(guān)數(shù)據(jù)均列出,在 Matlab/Simulink 搭建模型后,生成的程序代碼則將輸入輸出數(shù)據(jù)以結(jié)構(gòu)體形式封裝;基礎(chǔ)軟件層中的輸入輸出數(shù)據(jù)則是在底層軟件中相關(guān)結(jié)構(gòu)體進(jìn)行定義。完成各軟件層數(shù)據(jù)定義后,在中斷服務(wù)程序中將相應(yīng)輸入輸出數(shù)據(jù)進(jìn)行賦值即可實(shí)現(xiàn)應(yīng)用層與基礎(chǔ)軟件層之間的數(shù)據(jù)傳輸。
其中,應(yīng)用層軟件通過在 Matlab/Simulink 中搭建各個(gè)運(yùn)行實(shí)體模型并完成相關(guān)仿真測試,進(jìn)行代碼生成,基礎(chǔ)軟件層利用底層驅(qū)動(dòng)軟件驅(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ù)通信和服務(wù)調(diào)用通過在實(shí)時(shí)運(yùn)行環(huán)境層定義相關(guān)接口函數(shù)實(shí)現(xiàn)。通過上述方法完成基于 AUTOSAR 電機(jī)控制軟件的具體設(shè)計(jì)實(shí)現(xiàn)。最后,將各層軟件導(dǎo)入 Tasking 開發(fā)環(huán)境中,并在編譯器中對(duì)所有程序進(jìn)行集成編譯、鏈接生成可執(zhí)行文件,將生成的可執(zhí)行文件添加到調(diào)試軟件 勞特巴赫/UDE 中對(duì)軟件進(jìn)行調(diào)試、分析,根據(jù)分析結(jié)果可對(duì)軟件進(jìn)一步優(yōu)化。
?
評(píng)論
查看更多