第三章 直流無刷馬達無位置感測控制策略
3.5 無感測控制模擬
3.5.3 負載切換暫態模擬
TH
圖 3.11 負載切換暫態模擬波形
第四章
晶片功能模組設計
4.1 現場可規劃邏輯閘陣列(FPGA)介紹
現場可規劃邏輯閘陣列(Field Programmable Gate Array,FPGA)是一種可規劃邏輯陣 列 IC,它提供了「邏輯閘陣列」(Gate Array,GA)元件的特性與「可程式陣列邏輯」
(Programmable Array Logic,PAL)元件的規劃彈性,具有以下幾個特點:一、使用者可 以規劃任意邏輯電路;二、FPGA 元件可以重複使用燒錄;三、可以快速合成使用者的 電路;四、具有完善的軟體可以配合使用。
利用 FPGA 來實現控制系統有著不少優勢在,除了有較高的運算時脈外,其平行運 算的能力也相當高。除此之外,利用 FPGA 實現的控制器,其行為亦非常接近等效之類 比控制器,而且不但能保留其優點,如無計算上的延遲(No Calculation Delay)、更高的 頻寬(Higher Bandwidth)等;更能將其缺點排除,如參數漂移(Parameter Drifting)、較低的 積分層級(Poor Level of Integration)。除此之外,FPGA 與其類似功能之 CPLD 做比較亦 存在不少優點,在編程上 FPGA 比 CPLD 具有更大的靈活性,且 FPGA 非常適合複雜邏 輯結構,這些優勢也讓 FPGA 更適合使用在控制系統上。
FPGA 元件內部主要包含了三大部分,數萬個標準的可程式邏輯單元(Configurable Logic Blocks,CLBs),排列形成NN的電路矩陣;每個邏輯單元均連接至縱向網路及 橫向網路,外部在圍繞一圈輸入輸出單元,如圖 4.1 所示。當電路完成設計後,便可以 把產生之電路架構編譯檔下載至 FPGA 中進行連線規劃,成為一顆具有特定功能之 IC。
這樣不但縮短了研發時間,同時又擁有多次燒錄等功能,而且也大大增加設計方法上之 彈性。
接下來將介紹 FPGA 的設計流程。首先 FPGA 的設計方法有二種,分別為圖形化流 程(Schematic Flow)以及硬體描述語言編輯(HDL Editor),然而近年來電路設計的規模日 益龐大複雜,若使用圖形化的設計方法則相當的費時且容易發生錯誤,因此利用硬體描 述語言的設計方式成為主流,一般常見的硬體描述語言有 VHDL、Verilog 等,而本論
文所使用的為 Verilog。
圖 4.1. FPGA 元件基本結構
將所希望設計的電路利用上述方法完成後,接下來則可以做行為模擬(Behavior Simulation)及合成後的函數模擬(Function Simulation),藉此可以了解所設計的電路功能 是否正確。驗證功能正確後,就可以進行時序模擬(Timing Simulation),模擬電路在燒入 FPGA 後,所造成延遲是否符合需求。
4.2 無感測驅動各功能模組規劃
圖 4.2 表示一顆 120 度方波驅動無位置感測控制之 FPGA 晶片內部系統架構,利用 Verilog 在晶片中完成各模組功能。大致上包含了開關控制模組、啟動模組、開關導通 區間選擇模組、PWM 產生模組、開關訊號產生模組、無感測模組、換相時間估測模組、
PI 控制模組,接著使用 Xilinx ISE 10.1 整合所有功能模組並燒錄於 UBD-Spartan3E-ST3E 發展板上,搭配外部反應電動勢偵測電路與反流器,即可完成一套無感測驅動系統,以 下將逐一說明各個模組功能性。
Reset Start
Switching Signal Generator
Sensorless Commutation Signal Generator
Ha
Hb
Hc
PI Control
Start Up
Pattern Select PWM
*
4.2.1 開關控制模組
開關控制模組,如圖 4.3 所示。其定義如表 4.1。當模組時脈 Clk 正緣觸發時便開始 進行開關控制模組,此時偵測 Error 訊號狀態,若 Error 為高準位表示 IGBT 過電流,必 須設定 S_en 為高準位強制關閉開關訊號產生模組以保護 IGBT 且亮起 FPGA 發展板上 的一個 LED 警示過電流發生。Clk_40M 為正緣觸發時也同時偵測 Reset 及 Start 訊號,
當 Start 為高準位時,設定 SU 為高準位以準備啟動馬達;當 Reset 為高準位時,設定內 部訊號 R_r 為高準位以重設所有暫存器為零。假若 Reset 與 Start 同時為高準位,此時不 做任何動作。
Reset
Start
Error Error Protect
S_en
Function Select Clk_40M
Reset Registers
SU R_r
Error_LED
圖 4.3 開關控制模組方塊圖 表 4.1 開關控制模組各訊號定義
腳位名稱 屬性 位元數(bit) 訊號定義
Clk_40M Input 1 模組時脈(40MHz)
Error Input 1 DIP-IPM
內部錯誤訊號 Reset Input 1 重設暫存器訊號
Start Input 1 馬達啟動訊號
S_en Output 1 開關訊號產生模組
致能訊號
SU Output 1 啟動模組致能訊號
4.2.2 啟動模組
由於在馬達正式運轉前,無法得知馬達轉子停滯位置,所以需將轉子校正到一已知 位置。利用圖 2.9 介紹 120 度方波脈波寬度調變之開關導通組合,將開關組合固定於區 間 6 一段時間,即導通 T1、T6 完成轉子定位。當確定馬達轉子位置後,方能進行驅動。
馬達轉子位置定位後,依序循環改變開關組合狀態,開關組合開始由區間 1、2、
3、…、6 順序變化,過程中我們令 PWM 責任週期和同步頻率皆為線性變化。實作上利 用查表法逐步減少每一個開關組合的時間並同時配合轉速增大 PWM 責任週期,即可使 馬達加速,如表 4.3 所示。速度換算如(3.8)。
圖 4.4 為啟動模組方塊圖,當 Clk_40M 正緣觸發時偵測 SU 為高準位,立即開始轉 子定位,持續導通開關 T1、T6,0.5s 後開始查表順序輸出 SU_p 及 D_SU,並將 S_start 設為高準位,使無感測換相模組開始運作。表 4.2 定義了此模組中的各個訊號。
圖 4.4 啟動模組方塊圖
表 4.2 啟動模組各訊號定義
腳位名稱 屬性 位元數(bit) 訊號定義
Clk_40M Input 1 模組時脈(40MHz)
SU Input 1 啟動模組致能訊號
SU_p Output 3 啟動區間訊號 D_SU Output 13 啟動模組責任週期 S_start Output 1 無感測模組致能訊號
表 4.3 同步加速表 區間
時間 (ms)
轉速 (rpm)
責任 週期 (%)
對應 區間
區間 時間 (ms)
轉速 (rpm)
責任 週期 (%)
對應 區間 1 55.6 90 1.500 1 19 18.3 274 5.841 1 2 45.5 110 1.972 2 20 17.8 280 5.996 2 3 39.6 126 2.359 3 21 17.4 287 6.148 3 4 35.6 141 2.695 4 22 17.1 293 6.296 4 5 32.6 153 2.997 5 23 16.7 299 6.441 5 6 30.3 165 3.274 6 24 16.4 305 6.583 6 7 28.4 176 3.532 1 25 16.1 311 6.722 1 8 26.8 186 3.773 2 26 15.8 317 6.859 2 9 25.5 196 4.001 3 27 15.5 323 6.993 3 10 24.4 205 4.218 4 28 15.2 328 7.125 4 11 23.4 214 4.425 5 29 15.0 334 7.254 5 12 22.5 222 4.624 6 30 14.7 339 7.382 6 13 21.7 230 4.815 1 31 14.5 344 7.507 1 14 21.0 238 5.000 2 32 14.3 350 7.630 2 15 20.3 246 5.178 3 33 14.1 355 7.752 3 16 19.8 253 5.351 4 34 13.9 360 7.872 4 17 19.2 260 5.519 5 35 13.7 365 7.990 5 18 18.7 267 5.682 6 36 13.5 369 8.100 6
4.2.3 無感測換相模組
此模組串聯在啟動模組之後,主要功能在決定無感測換相點及無感測區間選擇並且 檢查零交會點偵測是否正確。模組方塊圖如圖 4.5 所示;各訊號定義如表 4.4 所示。當 從啟動模組傳來之 S_start 訊號為高準位時,代表無感測換相開始。首先使用一個多工器 且根據目前區間訊號來選擇所需位置訊號Ha、Hb、Hc,篩選出各相端電壓含有零交會點 資訊的區間,假若目前導通區間為第 6 區間,C 相即為未激磁相,此時HMUX為H ;若c B 相即為未激磁相,HMUX 為H ,依此類推並合成一個訊號b HMUX。接著從HMUX 中擷 取出零交會點 ZCP,並利用零交會點找出適合的換相點,產生換相點訊號 H。在此之前 為了預防在暫態下零交會點訊號的不穩定導致判斷錯誤,先設定所擷取之零交會點必須 界於 25 度至 35 度間才可為正確偵測零交會點。當連續三次正確偵測零交會點,送出 P_ex 至區間選擇模組與 PWM 產生模組且進入無感測階段。在無感測狀態下,責任週期 維持固定不變。此時開關導通區間之切換時間,不再依照查表法。改為根據每當換相點 訊號 H 正緣觸發時,累加器即開始進行累加,並且同時輸出累加值為無感測區間訊號 SL_p,累加值上限設定為 6。若已達上限,在下次 H 為正緣觸發時更新累加值為 1,依 此循環完成無感測時開關區間選擇。
Ha
Hb
Hc
ZCP HMUX
ZCP Detection
Commutation Signal Generator
ZCP Check Pattern
Accumulator
P_ex H SL_P
S_start
Clk_40M
3 3
Htrig
. 圖 4.5 無感測換相模組方塊圖
表 4.4 無感測換相模組各訊號定義
腳位名稱 屬性 位元數(bit) 訊號定義
Clk_40M Input 1 模組時脈(40MHz) S_start Input 1 無感測模組啟動訊號
Pattern Input 3 區間訊號
H a Input 1 A 相位置訊號
H b Input 1 B 相位置訊號
H c Input 1 C 相位置訊號
Htrig Output 1 零交會點脈衝訊號
H Output 1 換相訊號
SL_p Output 3 無感測區間訊號
P_ex Output 1 啟動與無感測
切換訊號
零交會點偵測架構,如圖 4.6 所示。根據 3.4 節,每次換相時,由於飛輪二極體導 通,此時所取得之反應電動勢端電壓波形會有一短暫二極體時間,此情況會導致零交會 點偵測失敗。所以HMUX 需要經過一數位濾波器,在此應用上遮罩時間 0.2ms 必須大於 飛輪二極體導通時間,才能避免發生誤判。最後利用單端邊緣觸發來尋找零交會點位 置。由於零交會點位置分成高準位到低準位及低準位到高準位兩種,所以分別利用兩計 數器來擷取零交會點位置並輸出 fLH、fHL,最後使用 AND 邏輯閘合成一個零交會點訊 號 ZCP。
ZCP HMUX
Clk_40M
Single Edge Trigger Digital
Filter Counter
0.2ms Count
Low to High
Count High to Low
AND fLH
fHL
圖 4.6 零交會點偵測架構圖
在正確獲得零交會點訊號後,由 2.3 節馬達換相時機可知,在零交會點往後延遲 30 度電氣角即為換相點。如圖 4.7 所示,為換相點產生架構圖。當零交會點訊號為正緣觸 發時,產生一個 0.1us 的脈衝訊號Htrig,利用Htrig可計算出兩零交會點之時間差,將上 次時間差堆疊值與此次時間差值作平均,可得一校正零交會點時間差。不直接使用本次 時間差的原因乃是因為在擷取零交會點時,所設定區間界於 25 度至 35 度間,為了能將 擷取誤差縮小才使用一校正時間差。兩零交會點間隔為 60 度電氣角,一半的零交會點 時間差即可作為零交會點至換相點所需之相位移間隔。圖 4.8 為無感測換相模組內部訊 號處理波形示意圖。
ZCP
Clk_40M Counter 1us
Pulse Generator
Commutation
Counter Stack
Phase
Shift H Htrig
圖 4.7 換相點產生架構圖
Ha
Hb
Hc
Pattern 5 6 1 2 3 4
ZCP
H
TH
Htrig
fLH
fHL
HMUX
] [K
Ttrig Ttrig[K1]
2 ] [K Ttrig
圖 4.8 無感測換相模組內部訊號波形示意圖
4.2.4 區間選擇模組
此模組主要功能有二:第一是依據系統目前狀態,切換啟動區間訊號與無感測區間 訊號以作為開關切換模組之區間訊號;第二是將區間選擇輸出給無感測換相模組以選擇 正確未激磁相的位置訊號。區間選擇模組架構圖,如圖 4.9 所示。簡單的利用一個多工 器,當 P_ex 訊號為低準位時,表示此時還處於啟動模式,區間訊號等於啟動區間訊號;
當 P_ex 訊號為高準位時,表示零交會點順利正確偵測已進入無感測模式,區間訊號等 於無感測區間訊號。表 4.5 定義了此模組中的各個訊號。
MUX
圖 4.9 區間選擇模組架構圖
表 4.5 區間選擇模組各訊號定義
腳位名稱 屬性 位元數(bit) 訊號定義
P_ex Input 1 啟動與無感測
切換訊號 SU_p Input 3 啟動區間訊號 SL_p Input 3 無感測區間訊號
Pattern Output 3 區間訊號
4.2.5 開關訊號產生模組
開關訊號產生模組主要的功能為依據區間訊號來選擇並產生六個開關訊號,其模組 方塊圖,如圖 4.10 所示。
6
GT 5
GT 4
GT 3
GT 2
GT 1
GT
圖 4.10 開關訊號產生模組方塊圖
表 4.6 開關訊號產生模組各訊號定義
腳位名稱 屬性 位元數(bit) 訊號定義
Clk_40M Input 1 模組時脈(40MHz)
Pattern Input 3 區間訊號
PWM_5K Input 1 5KHz PWM 訊號
S_en Input 1 開關訊號產生模組
致能訊號
致能訊號