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