無刷電機內部結構
??
??上圖為無刷電機內部導線連接情況的簡筆畫,可以看到有三對線圈,分別成為A,B,C線圈。每對線圈的一端都連接起來,作為中點,上圖中電機定子外邊黑線表示三個線圈中點。三個線圈另外一端引出到外部,鏈接驅動三相橋電路。
??
?BLDC 電機連接驅動三相橋電路
??在無刷電機的結構中我們一般稱線圈的部分為定子。而中間部分則有一個具有N/S兩極的永磁鐵,我們一般稱它為轉子。大家有沒有發現無刷電機中的定子和轉子跟有刷電機的定子和轉子的定義是不是恰恰相反呢?
2.2 無刷電機旋轉原理??
為了驅動無刷電機旋轉,需要在轉子適當角度時,給電機三相引線中兩相施加恰當電流,使得定子產生磁性作用在轉子上形成定向轉矩。當轉子旋轉過一定角度,將通電線圈進行切換,使得定子磁極作用在轉子上永遠形成一個方向上的轉矩。
??
同時給A,B兩相通電之后定子磁極與轉子形成轉矩
??下圖給出了三相電施加電壓極性組合以及變化是順序,按照這個順序,定子就會在內部形成旋轉磁場,帶動轉子旋轉。
??
?無刷電機三相通電順序和組合
??為了獲得最大輸出轉矩,需要定子產生磁場在旋轉方向上領先轉子90°。通常使用霍爾傳感器來測量轉子磁極角度,下圖現實了電機內部三個霍爾傳感器在轉子旋轉時,輸出的電壓波形。
??
?鑲嵌在定子上的HALL角度傳感器以及輸出信號
??三個霍爾傳感器總共有八種狀態組合,其中全0,全1是無效狀態。剩下六個狀態組合代表了轉子處在360°六個區間。在不同區間,給電機A,B,C三相施加不同驅動電壓,便可以產生領先轉子磁場90°的定子磁場,進而可以產生最大旋轉轉矩。
??所以這個時候就可以梳理出大致的無刷電機控制原理了:
??1. 通過霍爾傳感器檢測當前轉子所在的角度區間
??2. 通過判斷當前轉子角度區間來讓單片機輸出下一個區間的控制信號
??3. 控制信號通過預驅和MOS開關輸出到電機
??4. 當轉子到達下一個角度區間時,重復第一步
??同樣,如果對這部分也比較生疏的還是推薦去年12月9號發布的推文,里面有詳細講解。
GTM模塊
GTM模塊簡介??
GTM(Generic Timer Module),直譯出來就是通用定時器模塊的意思,但是它又與我們平時理解的通用定時器有點不同,我們平時用定時器無非就是用來輸出PWM信號或者用于周期中斷等等,這些功能GTM模塊都支持,而且還有一些我們沒了解過的功能,大家看下圖:
??
GTM模塊內部功能圖
??這個就是GTM模塊的總體框圖啦,我們第一眼肯定看到的就是里面最大的模塊-ARU模塊,它是用來處理數據流的,并且可以控制整個GTM模塊的輸出,但是它不是我們今天的主角,我們的主角在ARU模塊的左側和左下部分,分別是TIM模塊、SPE模塊、TOM模塊,這幾個模塊的組合實現了單片機硬件檢測霍爾并且換相輸出的操作,我們的CPU就不用再反復執行無刷電機驅動部分的代碼了。
驅動邏輯分析??
? ? ? ? ? ? 在單獨介紹我們要用到的這幾個模塊之前,我們先簡單描述一下它們的工作流程。
??TIM模塊負責采集霍爾信號并且對其進行濾波,然后將霍爾信號送到SPE模塊,SPE模塊通過判斷當前的霍爾值來控制TOM模塊輸出固定相位的PWM信號,而這個固定的相位就是我們初始化時預先在SPE模塊中寫好的一個換相表。具體的工作流程大家可以看看下圖:
??
?TIM模塊
(1)TIM模塊??
TIM(Timer Input Module)模塊,定時器輸入模塊。
??在我們的實際應用中,該模塊主要負責采集霍爾信號和剎車信號,同時模塊自帶濾波功能,保證捕獲到的是準確的值。TIM模塊會將捕獲到的霍爾值直接送到SPE模塊進行后續處理。
??從上面總的工作流程圖可以看出來TIM0模塊的輸入有8個通道,而我們只用了三個用于捕獲霍爾信號,然后將處理好的三路霍爾信號送到了SPE0模塊。
(2)SPE模塊??
SPE (Sensor Pattern Evaluation) 模塊,傳感器評估模塊。
??SPE模塊專用于評估當前霍爾信號的值,并且根據當前的霍爾值去查表通過寄存器控制TOM模塊的輸出,具體控制邏輯看下圖:
??
SPE模塊
??左上角的三路信號就是由TIM模塊濾波之后送過來的信號,然后通過NIP寄存器進行保存(我們通過讀取NIP寄存器就可以知道當前的霍爾值),之后三路信號分別送到了Pattern進行查表,這里的查表是查的霍爾與輸出的對應關系,比如霍爾實際值是1,然后查表輸出值是3,那么后面就會根據查表輸出的霍爾值來再次查表輸出實際PWM的控制值。上圖中,SPE_PAT_PTR就是根據實際霍爾值查表輸出的矯正值,而SPE_OUT_PATx是控制PWM輸出的寄存器值,將SPE_OUT_PATx的值根據SPE_PAT_PTR送到SPE_OUT_CTRL寄存器,后續的輸出就是判斷SPE_OUT_CTRL寄存器的內容來控制不同端口的輸出情況。
??值得注意的是,右上角的剎車信號是通過FSOI進行控制,當FSOI為有效時,最終的輸出將被修改為FSOM寄存器的輸出值,而FSOM寄存器的是我們在初始化時就給了的,我們只要設置FSOM寄存器是控制所有上橋關閉、所有下橋開啟,那么就是正常的剎車效果。
(3)TOM模塊??
TOM(Timer Output Module)模塊,定時器輸出模塊。
??該模塊將根據設置的參數生成PWM信號,以及根據SPE模塊選擇的輸出通道輸出PWM信號或者是高低電平,從而驅動無刷電機旋轉。
總結
??為了測試方便,本開源項目的硬件依然是將TC264和驅動電路做在一個板子上的,同學們自己在做板子時可以考慮直接使用主控TC264來控制驅動輸出,我們在引腳分配的時候也已經避開了常用的資源,也就是一顆TC264就既是小車的主控,也是無刷電機驅動的控制器,并且文章開頭也說過,使用GTM模塊來實現無刷驅動的方案也降低了CPU消耗,同時我們測試的板子是為了兼容更大的電流采用了MOS管并聯,所以大家也可以根據實際需要來進行減半的設計,這樣差不多就可以做到將驅動板縮小一半,并且也推薦大家用一顆TC264實現無刷驅動和主控兩個需求,以適應平衡單車組的輕量化整體設計。
??所以本開源項目所對應的驅動板實物并未生產學習板來進行銷售,目前逐飛在售的無刷驅動學習板只有CCU6的那種方案,所以同學們直接根據開源項目的原理圖自行設計就行了。
??無刷電機可以采用逐飛演示車模中推薦的型號,在越野組的開源方案中我們講到過,我們對很多款電機進行了測試,單車平衡組最終采用的是和極速越野組的同一款電機,開源項目代碼和硬件也是以這款電機為樣品來進行測試的。
電機的參數如下:有感、三槽兩極、2860Kv(Kv表示每增加一伏電壓電機增加的轉速,最高12V)、尺寸36(mm)*50(mm)、額定功率190W、支持1-3S鋰電池供電。
??溫馨提示:此款電機僅為逐飛推薦款,同學們也可以選擇自己認為合適的無刷電機,這一點上規則是沒有限制的,但建議大家選擇有感無刷。
評論
查看更多