基於 AURIX的有感 BLDC電機控制實現

作者:李詩念

胡海龍

  • 摘要

由於直流無刷(BLDC)電機獨特的優勢,近些年在汽車上的應用逐漸流行起來。Infineon新一代32位汽車級多核微控制器架構AURIX,以其高性能、高安全性逐漸成為汽車ECU的主流MCU,在AURIX上實現BLDC電機控制將有重要意義。本文研究了一種在AURIX上實現有感BLDC電機控制的方法,提出了一種基於AURIX GTM (Generic Timer Module) DPLL(Digital Phase-locked loop Module)模塊的高精度電機轉速計方法。實現PI控制器後,電機控制實驗表明:使用AURIX控制有感BLDC電機是一種有效的解決方案,基於DPLL計算的轉速能夠控制電機運轉更加平穩。

  • 引言

無刷直流(BLDC)電機使用電子換向器代替了傳統的機械式換向器,與傳統的直流電機相比具有效率高、易於維護、質量小、體積小和更高的壽命等優點。近些年,由於節能環保高效的要求,BLDC 在汽車領域的應用逐漸流行起來。

BLDC 電機由定子和轉子兩部分組成。通常內轉子電機的轉子部分由永磁體構成,定子部分由線圈繞組構成,而外轉子電機剛好相反。典型的 BLDC 電機驅動電路如圖 1 所示,6 路控制信號控制電子開關的通斷達到控制電機換相的目的。電子換相時刻由電機定轉子的相對位置決定。如圖 2 所示,霍爾感測器檢測出電機定轉子的相對位置,根據霍爾信號,產生相應 A/B/C 三相高低端控制信號。本例採用了上橋 PWM 控制方式。

圖1:典型的 BLDC 電機驅動電路

圖2:霍爾信號及相應的 BLDC 電機控制信號

在汽車應用中,一般使用轉速控制。BLDC 的轉速控制如圖 3 所示,根據霍爾感測器信號計算電機轉速,並把該轉速與設定轉速做差,該差值為 PI 控制器的輸入。PI 控制器的輸出為高端 PWM 驅動信號的占空比,為保證電機良好的速度特性,PI 控制器需要有合理的控制參數。

圖3:BLDC 電機轉速閉環控制系統

本文首先介紹了 infineon(英飛凌)最新的控制器AURIX 的 GTM 模塊,基於 GTM 中的 SPE 模塊提出BLDC 電機驅動方案,然後提出了兩種 BLDC 電機轉速計算方法,一種是基於霍爾信號沿,一種是基於 DPLL倍頻後的脈衝。最後,使用相同的 PI 控制器參數,採用不同轉速計算方法,進行了電機控制效果對比實驗。

  • GTM 架構和基本特性

英飛凌 AURIX 家族是一系列高性能微控制器,搭載了 3 個 32 位 TriCore CPU、程序和數據存儲器、匯流排、匯流排仲裁、中斷系統、DMA 控制器和一系列功能強大的片上外設。AURIX 上外設的 GTM 模塊可以有效降低 CPU負荷,保證系統實時性。CPU 初始化 GTM 後,GTM 中設定的任務的可以自行運行,而不需要 CPU 的干預,解放了 CPU。GTM 包含 SPE (Sensor Pattern Evaluation)和DPLL (Digital Phase-Locked Loop)等幾個專用的子模塊,還包含 CMU (Clock Management Unit)、 TBU (Time BaseUnit)、TOM (Timer Output Module)和 TIM (Timer InputModule) 等幾個專用子模塊。

圖4:GTM 結構簡圖

圖 4 為 GTM 結構簡圖,CMU 給 GTM 子模塊提供時鐘,TBU 產生時間基(time stamp)給具有捕獲功能的其他子模塊使用。TOM 搭載了定時器來產生 PWM,TIM 通過定時器提供濾波、信號特性測量和信號超時檢測等功能。SPE 專門設計用來驅動 BLDC 電機,具有輸入 pattern 檢測和輸出 pattern 控制。DPLL 用來提高輸入信號的頻率。

1)SPE

SPE 子模塊是專門為 BLDC 電機控制設計的,SPE 可以檢測輸入的三路霍爾信號並通過控制 TOM 模塊,直接輸出符合換向邏輯的 BLDC 電機驅動信號。SPE 評估霍爾信號輸入 pattern 的演算法如圖 2 所示。

圖5:SPE 實現 BLDC 電機驅動流程

圖 5 為 SPE 的實現流程。首先,SPE 接收處理來自TIM 輸入模塊的霍爾信號, 當 SPE 檢測到一個新的輸入(new input pattern, NIP)後,SPE 根據用戶定義的 pattern檢查 NIP 的有效性。同時,SPE 將會比較 NIP 和前一個輸入(previous input pattern, PIP)的值:若 NIP 的值等於 PIP,說明電機的旋轉方向改變了,內部自動存儲旋轉方向改變信息,把真實的輸入(actual input pattern, AIP)值賦給PIP,NIP 的值賦給 AIP;若 NIP 的值不等於 PIP,說明電機的旋轉方向未改變,SPE 把 AIP 的值移位給 PIP,NIP的值移位給 AIP。接下來,SPE 根據電機的旋轉方向,決定指針 PTR 為遞增或遞減。然後,SPE 使用 PTR 的值來選擇用戶定義的輸出 pattern,無論何時檢測到了一個有效的輸入 pattern,SPE 都會產生檢測到新的輸入信號(newinput pattern detected, NIPD)。當用戶定義的觸發信號產生了,SPE 會把新的輸出控制信號發送給相應的 TOM 子模塊。最後,TOM 根據相應的 pattern 輸出 CPU 計算的PWM 控制信號。

2)DPLL

DPLL 是用於增加輸入信號頻率的高可配置專用子模塊,可使用該模塊獲得精度更高的位置或時間信息,特別適用於獲取快速變化的旋轉類控制對象的相位信息。DPLL 最多有兩個輸入信號 TRIGGER 和 STATE,這兩個信號代表控制對象的周期性事件。DPLL 定義兩個有效事件之間的時間周期為增量,每個增量使用脈衝個數來測量,測量脈衝叫做子增量 SUB_INC。脈衝產生的精度受到CMU_CLK0 時鐘(CMU_CLK0 也用於脈衝補償)或TS_CLK 時鐘的影響。由於 DPLL 需要保存一些變數用以內部執行一些演算法,所以 DPLL 搭載了一塊專用 RAM 來存儲這些數據。圖 6 為 DPLL 倍頻產生器結構,每當 24位加法器溢出,DPLL 產生一個脈衝。

圖6:DPLL 倍頻產生器結構

每來一個 TS_CLK 時鐘脈衝,24 位加法器計算一次,當加法器溢出產生一個脈衝(SUB_INC),之後 24FFs(觸發器)複位。所以,DPLL 每產生兩個脈衝之間的間隔為 2^{24} /ADD_IN。若下一個周期性事件的周期預測為CDT_TX,下一個周期性事件內需要進行 NMB_T 倍頻(即產生 NMB_T 個脈衝),那麼 DPLL 脈衝產生器隱含的計算公式為,

為解放 CPU,通常使用 DPLL 內部演算法來進行下一個周期性事件 的周期預 測 。在正常模 式,輸入 信號為TRIGGER 時。DPLL 內置的周期預測演算法為,

式中,

p 為 RAM2a 當前的指針 APT(真實的 RAM2a 指針),MEDT 為周期預測演算法加權平均誤差的歷史值,DPLL 內置演算法使用如下計算公式計算 MEDT,

式中,EDT_T 為上一個周期預測的誤差,DPLL 內置的EDT_T 演算法為,

並且,DPLL 內置演算法使用以下公式計算倍頻數 NMB_T,

式中,MLT 為設置的倍頻數,(MLT+1)為期待的倍頻數,MP 為上一個脈衝產生周期中丟失的脈衝數,PD_store是 RAM2c 中存儲的物理偏差,如圖 7 所示,物理偏差通常是由生產誤差引起的。MPVAL1 為直接補償脈衝個數,該補償在 DPLL 運行時由 CPU 設定。

圖7:生產誤差引起的 PD_store

聯立式(1)、(2),考慮到補償取整誤差,倍頻數加 0.5,如下式所示,

另外,DPLL 允許使用 CPU 計算的周期預測值,以支持自定義的周期預測演算法。

  • 基於 AURIX 實現 BLDC 電機控制

主要使用 AURIX GTM 的 SPE 模塊實現 BLDC 電機驅動,實現了兩種轉速計算方法及 PI 控制器。

圖8:控制系統實現

1)系統實現

圖 8 為整個控制系統的實現框圖,包含了所有使用到的 AURIX 片上硬體模塊。三路霍爾感測器信號通過 IO 模塊輸入到 GTM TIM 模塊,TIM 模塊進行採樣、濾波、超時檢測及信號特性測量處理,並輸出 24 位濾波信息、1 位輸入信號電平和輸入信號相應信號沿產生的脈衝。每個TIM 通道的通用寄存器 GPR0 捕獲有效沿事件對應的時間戳(捕獲 TBU_TS0),並輸出這個 24 位時間戳信息。即TIM 輸出 49 位信息(24 位濾波信息、1 位電平信息及 24位時間戳信息),一方面這來自於 3 個 TIM 通道的 3 路49 位輸出信息傳送給 SPE 模塊,用以評估霍爾信號的輸入 pattern。另一方面,該信息傳送給 MAP 模塊,進行信號組合,MAP 把 3 路 49 位信息組合成一路 49 位信息。並把 MAP 輸 出 的 49 位 信 息 傳 送 給 DPLL 模 塊 作 為TRIGGER 信號,DPLL 根據 TRIGGER 產生高頻時鐘信號,然後產生的高頻時鐘信號輸入給 TBU_BASE1 的計數器進行計數及作為 CMU_CLK7 時鐘給 GTM 其他模塊使用。並且,SPE 評估霍爾輸入信號的輸入 pattern,根據pattern 把用戶定義的 PWM pattern 傳給 TOM,TOM 的 6個通道(TOM_CH0-5)根據 PWM pattern 輸出 6 路控制信號。

2)兩種轉速計演算法

2003 年 Y. Amano 等人提出了使用 PLL 增加無感BLDC 電機驅動系統控制精度的方法。圖 8 所示的控制系統,使用 DPLL 提高了轉速計算的精度。霍爾測速方法有三種 M 法,T 法和 M/T 法。M 法適用於高速,T 法適用於低速,而 M/T 法則間距兩者的特點。本文的前一種方法就是 T 法,後一種方法就是 M/T 法。

圖 9:定角度轉速計算

圖 9 定角度轉速計算

圖 9 為定角度轉速計演算法,每當在 MAP 組合後的信號中檢測到跳變沿時都觸發中斷(SPE 的 NIPD 事件),捕獲時間基 TBU_TS0 的時間。CPU 計算相鄰兩個下降沿之間時間的差值或計算相鄰兩個上升沿之間時間的差值,使用時戳的差值即可計算電機轉速,

式中 60 為 MAP 組合霍爾信號後兩個相鄰相同沿的電角度, p 為極對數,T_clk 為時間基 TBU_TS0 的計數時間周期,differTimeStamp 為時間差值。

圖10:定時轉速計演算法

圖 10 為時間角度計演算法。使用 DPLL 倍頻輸出的脈衝作為角度基 TBU_TS1 的計數時鐘,定時觸發中斷捕獲角度基 TBU_TS1 的角度。CPU 計算相鄰兩次角度的差值,使用角度差值即可計算電機轉速,

式中,d 為每個 TBU_TS1 計數值代表的角度, p 為極對數, ??????_?? 倍頻數,differPhaseStamp 為角度差值。 T 為定時時間(us)。

3)兩種演算法的對比分析

由於總是存在感測器安裝誤差,定時轉速計演算法能夠實現使用簡單的計算一定程度上補償安裝誤差。並且電機控制 PI 控制是定時計算的,這使得採用定時轉速計演算法計算的轉速能使 PI 控制器獲得具有跟高的實時性的轉速。但在低轉速時,由於需要間隔很長時間才出現信號,這使得採用定時轉速計演算法計算的轉速沒有意義(這與 DPLL 演算法有關,沿之間是均勻產生脈衝的)。甚至在轉速為 0 時,總是不出現信號沿發生超時錯誤,DPLL 不能正確產生倍頻脈衝,定時轉速計演算法失效。所以,在低轉速時定角度計演算法能夠獲得更好的控制精度,在中高轉速時定時轉速計演算法能夠獲得更好的控制精度。在 500rpm 時,兩種轉速計演算法的對比如圖 11 所示。

圖11:500rpm 時兩種轉速計演算法對比

  • 實驗

實驗方案如圖 12 所示。程序通過下載 UAD pro 到AURIX TC275 開發板(TriBoard)上,並進行在線模擬調試器,控制器鏈接 TLE7183F 評估板驅動 BLDC 電機。

圖12:BLDC 電機控制實驗方案

圖 13 為驅動電機的示波器截圖,通道 1 為 X 相霍爾信號,通道 2 和通道 3 為 SPE 聯合 TOM 產生的 A 相驅動信號高端和低端,通道 4 為 A 相端電壓。

圖13:BLDC 電機控制實驗示波器截圖

分別採用定角度轉速計演算法計算的轉速和定時轉速計演算法計算的轉速進行加減速實驗(0-100-0 rpm),為了對比兩種轉速演算法對控制效果的影響,兩組實驗下 PI 控制器均採用相同的控制參數。圖 14 為兩組實驗,UDE 調試軟體採集到的數據截圖。圖中,第一組實驗是使用定角度計算的轉速作為 PI 控制器的輸入,第二組實驗是使用定時計算的轉速作為 PI 控制器的輸入。圖 14 表明,採用定時轉速計演算法能使 BLDC 電機具有更好的速度特性:控制在 1000rpm 時,轉速波動更小,系統更加穩定。

圖14:使用兩種演算法計算轉速的 BLDC 控制效果

  • 結論

能夠使用 AURIX GTM 模塊實現 BLDC 電機驅動,完全由 GTM 硬體實現驅動,節省 CPU 資源;基於 DPLL 倍頻後的脈衝時鐘,檢測到電機更為準確的轉速,從而實現更好的轉速控制特性。

更多信息請訪問英飛凌官方網站

更多文章信息:

英飛凌:具有功能安全特點的EPS電控系統方案介紹?

zhuanlan.zhihu.com圖標英飛凌:英飛凌AURIX? – 安全與性能的結合?

zhuanlan.zhihu.com圖標
推薦閱讀:

英威騰收購普林億威電機廠分析
變頻器那些你或許不曾聽說過的知識
變頻器簡要工作原理
變頻器維修的十種學習方法,必須收藏!

TAG:電機 | 變頻器 | 電力電子技術 |