梁文遠(yuǎn),易 晨
(廣州汽車集團(tuán)股份有限公司汽車工程研究院,廣州 511434)
為了保護(hù)環(huán)境,為了符合汽車尾氣的排放要求,近年來(lái)國(guó)家大力扶持新能源汽車產(chǎn)業(yè),在國(guó)家政策的刺激下,電動(dòng)汽車得到了蓬勃發(fā)展,其安全性也越來(lái)越被重視。電驅(qū)動(dòng)系統(tǒng)作為電動(dòng)汽車的核心部件,集高電壓、大電流、高轉(zhuǎn)速于一體,如何降低故障概率和故障后如何保障人車安全是功能安全的核心課題。隨著ISO26262[1](道路車輛功能安全標(biāo)準(zhǔn))在國(guó)內(nèi)的不斷普及和GB/T34590[2](道路車輛功能安全)的實(shí)施,越來(lái)越多的國(guó)際主流車廠和零部件廠商強(qiáng)制要求電機(jī)控制器按照功能安全的標(biāo)準(zhǔn)來(lái)開(kāi)發(fā)。
傳統(tǒng)的單核MCU系統(tǒng)已不能滿足功能安全的需求,MCU逐漸向雙核和多核發(fā)展,例如寶馬X1、本田雅閣混動(dòng)、特斯拉model 3等均是多核MCU系統(tǒng),該系統(tǒng)應(yīng)用額外的核去做功能安全冗余校驗(yàn)計(jì)算,但軟件響應(yīng)速度慢的缺點(diǎn)依然存在,故障響應(yīng)時(shí)間會(huì)偏長(zhǎng),需要用額外的ASIC(集成電路)或者分立器件來(lái)彌補(bǔ)。
相比MCU,F(xiàn)PGA 并行計(jì)算效率更高,計(jì)算速度更快,功耗和延時(shí)更低。相比被固化不能修改的ASIC,F(xiàn)PGA 可根據(jù)不同場(chǎng)景重新編程,靈活性高、開(kāi)發(fā)周期短、小批量成本低,能更快地應(yīng)對(duì)市場(chǎng)需求變化。已被廣泛應(yīng)用于無(wú)刷直流電機(jī)控制[3]、步進(jìn)電機(jī)控制[4]和永磁同步電機(jī)控制[5-6]中,空間矢量控制[5]、電流閉環(huán)控制[6]、速度閉環(huán)控制[7]均可用FPGA實(shí)現(xiàn)。國(guó)外眾多汽車廠家逐漸將FPGA移植到電機(jī)控制器中,作為安全冗余監(jiān)控,分擔(dān)MCU 部分算法,減少了MCU的負(fù)載率,增強(qiáng)了系統(tǒng)的安全性,表1 所示為4 家汽車企業(yè)在電(混)動(dòng)汽車電機(jī)控制器中應(yīng)用FPGA的情況。由表可見(jiàn),對(duì)于FPGA 在電機(jī)控制器中的應(yīng)用,歐美車企是走在前列的,東風(fēng)啟辰D60 雖然是國(guó)產(chǎn)電動(dòng)車,但電機(jī)控制器卻是歐洲廠家供貨,國(guó)內(nèi)的電機(jī)控制器廠家,包括主機(jī)廠和零部件供應(yīng)商,均鮮見(jiàn)FPGA 的蹤影,但FPGA 的優(yōu)勢(shì)是不言而喻的,本文將詳細(xì)描述FPGA 在電機(jī)控制器中的應(yīng)用情況,包括高壓采樣、三相電流采樣、溫度采樣、發(fā)生PWM信號(hào)驅(qū)動(dòng)IGBT以及SPI 通信等。它與MCU 協(xié)同工作[8],當(dāng)出現(xiàn)過(guò)電流、過(guò)電壓、過(guò)溫度等異常情況導(dǎo)致電機(jī)失控時(shí),F(xiàn)PGA會(huì)先于MCU檢測(cè)到異常信號(hào),控制電驅(qū)動(dòng)系統(tǒng)進(jìn)入安全狀態(tài),同時(shí)通過(guò)SPI總線通知MCU當(dāng)前的故障狀態(tài),MCU再把車輛狀態(tài)上報(bào)給VCU(整車控制器)。
表1 4 車企在電機(jī)控制器中應(yīng)用FPGA的情況
安全冗余監(jiān)控是功能安全常用的方法之一[9],以扭矩安全為例,需要做冗余監(jiān)控的信號(hào)包括三相電流、母線電壓、電機(jī)/IGBT溫度、IGBT失效、傳感器電壓等。這些信號(hào)通過(guò)外置ADC采樣后進(jìn)入FPGA,如圖1 所示。其中IGBT Driver屬于SVPWM策略,下面將會(huì)詳細(xì)描述,在此先介紹ADC 采樣和IGBT錯(cuò)誤信號(hào)處理部分。
圖1 安全冗余監(jiān)控信號(hào)
如圖2 所示,ADC 數(shù)據(jù)進(jìn)入FPGA 后,先做偏置計(jì)算,還原信號(hào)的真實(shí)值,然后與參考值做比較,判斷有沒(méi)有異常,超出范圍則控制電機(jī)進(jìn)入安全模式(主動(dòng)短路或者關(guān)閉IGBT驅(qū)動(dòng),根據(jù)電機(jī)轉(zhuǎn)速而定),沒(méi)異常則執(zhí)行正常操作。
圖2 ADC數(shù)據(jù)處理流程圖
IBGT驅(qū)動(dòng)電路本身帶有較為完善的錯(cuò)誤保護(hù)機(jī)制[10],F(xiàn)PGA收到IGBT返回的錯(cuò)誤信號(hào)時(shí),需要判斷該信號(hào)是正常觸發(fā)還是誤觸發(fā),通常的做法是設(shè)置延時(shí)濾波時(shí)間,如圖3所示。
圖3 IGBT錯(cuò)誤信號(hào)延時(shí)濾波
IGBT輸入信號(hào)高電平時(shí)表示IGBT 異常,信號(hào)經(jīng)同步化后,在上升沿時(shí)啟動(dòng)計(jì)數(shù)器,高電平期間做累加計(jì)數(shù),當(dāng)計(jì)數(shù)值達(dá)到T3時(shí)IGBT的錯(cuò)誤信號(hào)如果還是高電平,則認(rèn)為是真實(shí)的錯(cuò)誤信號(hào),執(zhí)行錯(cuò)誤鎖存。延時(shí)濾波可以濾除脈寬比T3小的高脈沖信號(hào)(如圖中的T1和T2),防止誤觸發(fā)。
圖4 FPGA獲取電流周期
FPGA作為MCU 的從器件,主要功能是實(shí)現(xiàn)安全監(jiān)控和快速關(guān)斷,考慮到器件成本,一般選擇中低密度邏輯門(mén)的器件,所以FPGA 需要避免復(fù)雜的浮點(diǎn)運(yùn)算。因此設(shè)計(jì)時(shí)FPGA一般不采樣旋轉(zhuǎn)變壓器信號(hào),電機(jī)速度通過(guò)SPI總線從MCU獲得。如果SPI 總線故障時(shí),F(xiàn)PGA 可通過(guò)電流周期計(jì)算電機(jī)轉(zhuǎn)速,如圖4所示。
為了抑制電流紋波干擾,電流過(guò)零點(diǎn)采用小幅度滯回,滯回值是±Amp,假設(shè)極對(duì)數(shù)為P,測(cè)到的電流周期為T(mén)(單位是s),則轉(zhuǎn)速N(單位是r/min)可根據(jù)下式計(jì)算:
為了增強(qiáng)電流周期采樣的魯棒性,F(xiàn)PGA 需同時(shí)采樣U、V、W三相電流的周期,且滿足以下關(guān)系式:
只要(2)(3)(4)之一成立,F(xiàn)PGA就會(huì)返回正確的電機(jī)速度。
IGBT驅(qū)動(dòng)信號(hào)包括正常驅(qū)動(dòng)模式和安全模式,正常驅(qū)動(dòng)模式下,MCU與FPGA通過(guò)SPI總線協(xié)作完成,安全模式下,為了保證時(shí)效性,則由FPGA單獨(dú)完成。
系統(tǒng)的FOC運(yùn)算在MCU中實(shí)現(xiàn),計(jì)算出占空比通過(guò)SPI總線發(fā)給FPGA,F(xiàn)PGA 根據(jù)占空比產(chǎn)生PWM 信號(hào)驅(qū)動(dòng)IGBT,如圖5所示,MCU完成FOC運(yùn)算后,把占空比和4個(gè)組合開(kāi)關(guān)信號(hào)的作用時(shí)間(7段式SVPWM)通過(guò)SPI總線發(fā)給FPGA,F(xiàn)PGA解析出7段HS和LS互補(bǔ)的PWM方波信號(hào),臨時(shí)存儲(chǔ)起來(lái)。
圖5 產(chǎn)生IGBT正常驅(qū)動(dòng)信號(hào)
為了產(chǎn)生帶死區(qū)時(shí)間DT 的HS 和LS,F(xiàn)PGA在每個(gè)HS 和LS的上升沿都延時(shí)DT再輸出即可插入死區(qū)時(shí)間[11],VHDL 源碼如圖6 所示。調(diào)整整型變量DT 的值即可改變死區(qū)時(shí)間,本系統(tǒng)是在FPGA里開(kāi)辟了一個(gè)寄存器,MCU通過(guò)SPI總線配置死區(qū)時(shí)間,如果SPI總線故障則保持最近一次配置值,斷電恢復(fù)默認(rèn)值。
圖6 插入死區(qū)時(shí)間源碼
根據(jù)電機(jī)控制器系統(tǒng)功能安全需求,發(fā)生嚴(yán)重故障時(shí)應(yīng)切斷動(dòng)力輸出,同時(shí)進(jìn)入安全狀態(tài)[12]。切斷動(dòng)力輸出有兩種方式,分別是FreeWheel和ASC,改變IGBT的開(kāi)關(guān)狀態(tài)可在這兩種模式之間切換,如表2所示。
表2 安全模式開(kāi)關(guān)狀態(tài)
本文的安全策略是故障瞬間如果電機(jī)的速度高于某一閾值則執(zhí)行ASC,因?yàn)镠S 端連接到高壓電池正極,所以LS ASC優(yōu)先執(zhí)行,當(dāng)LS 端IGBT 故障時(shí)才會(huì)執(zhí)行HS ASC,當(dāng)ASC執(zhí)行了預(yù)定的最小時(shí)間且電機(jī)轉(zhuǎn)速降到設(shè)定的速率后再切換到Free Wheel[13]。
FPGA通過(guò)SPI總線與MCU 進(jìn)行全雙工通信,總線速率10 Mbit/s,幀長(zhǎng)度256 bit,互為主從器件,收發(fā)時(shí)鐘線獨(dú)立,圖7所示為時(shí)序圖。
圖7 SPI時(shí)序
SPI傳輸?shù)臄?shù)據(jù)包括三相電流、母線電壓、PWM 驅(qū)動(dòng)、電機(jī)速度、溫度等信息,總線校驗(yàn)用CRC算法,擁有完善的防錯(cuò)機(jī)制,如果出現(xiàn)通信丟失,F(xiàn)PGA 會(huì)控制電機(jī)系統(tǒng)進(jìn)入安全模式。
本文簡(jiǎn)單描述了FPGA相對(duì)MCU的優(yōu)勢(shì),列舉了國(guó)內(nèi)外汽車廠家在電動(dòng)汽車電機(jī)控制器中應(yīng)用FPGA 的概況,詳細(xì)介紹了FPGA在電機(jī)控制中的應(yīng)用。說(shuō)明在電機(jī)控制器功能安全設(shè)計(jì)中,應(yīng)用MCU +FPGA 的模式是十分有效的,MCU擁有豐富的外設(shè)資源和高效的浮點(diǎn)運(yùn)算能力,F(xiàn)PGA 擁有大量的邏輯資源,在效率、功耗、性能、速度等方面彌補(bǔ)MCU的短處,在功能安全設(shè)計(jì)中發(fā)揮了重要的作用。雖然分立器件和ASIC 也能實(shí)現(xiàn)FPGA 的功能,但設(shè)計(jì)臃腫,體積大,PCB需要大量布線,靈活性低,功能變更時(shí)需要重新設(shè)計(jì)電路。FPGA則以高度的靈活性在汽車行業(yè)得到廣泛的應(yīng)用。