【導讀】各參賽同學好,關(guān)注了逐飛科技微信公眾號的同學應(yīng)該還記得,受英飛凌委托,逐飛科技在2021年12月9日發(fā)布了針對第十七屆無刷電機驅(qū)動的開源項目,供大家參考,相信已經(jīng)有部分同學根據(jù)之前的開源方案玩起來了,還沒注意到原開源項目的可以通過此篇推文進行了解,“英飛凌BLDC驅(qū)動方案開源啦--逐飛科技”可以和今天的方案進行對比穿插學習,以便達到更好的理解效果。
01 前??言
各參賽同學好,關(guān)注了逐飛科技微信公眾號的同學應(yīng)該還記得,受英飛凌委托,逐飛科技在2021年12月9日發(fā)布了針對第十七屆無刷電機驅(qū)動的開源項目,供大家參考,相信已經(jīng)有部分同學根據(jù)之前的開源方案玩起來了,還沒注意到原開源項目的可以通過此篇推文進行了解,“英飛凌BLDC驅(qū)動方案開源啦--逐飛科技”可以和今天的方案進行對比穿插學習,以便達到更好的理解效果。
在上一個項目開源后,我們又了解到不少同學都想把無刷驅(qū)動和主板合二為一,使用一顆TC264芯片來控制所有的外設(shè),但是前段時間開源的無刷驅(qū)動項目使用的是CCU6模塊,需要CPU頻繁的處理無刷驅(qū)動的換相控制,所以不少同學就擔心后期CPU可能會處理不過來,同時英飛凌也希望我們再制作一個基于AURIX系列MCU GTM模塊的無刷驅(qū)動方案供同學們參考,于是一拍即合,今天給同學們帶來了一個新的無刷驅(qū)動開源方案——基于Infineon MCU GTM的模塊無刷驅(qū)動開源方案。
圖1 Infineon 上??偛?/p>
02 無刷電機
??
自第十七屆智能汽車競賽規(guī)則發(fā)布以來,這已經(jīng)是逐飛發(fā)布的第三個關(guān)于無刷驅(qū)動的開源項目了,相信參加允許使用無刷電機組別的大部分同學都已經(jīng)對無刷電機的旋轉(zhuǎn)原理比較熟悉啦,不過為了方便閱讀,請大家允許我們在這里再簡要的講解一下無刷電機的原理部分。
2.1 無刷電機內(nèi)部結(jié)構(gòu)
圖2.1 永磁無刷直流電機(BLDC)內(nèi)部結(jié)構(gòu)
??
上圖為無刷電機內(nèi)部導線連接情況的簡筆畫,可以看到有三對線圈,分別成為A,B,C線圈。每對線圈的一端都連接起來,作為中點,上圖中電機定子外邊黑線表示三個線圈中點。三個線圈另外一端引出到外部,鏈接驅(qū)動三相橋電路。
圖2.2 BLDC 電機連接驅(qū)動三相橋電路
??
在無刷電機的結(jié)構(gòu)中我們一般稱線圈的部分為定子。而中間部分則有一個具有N/S兩極的永磁鐵,我們一般稱它為轉(zhuǎn)子。大家有沒有發(fā)現(xiàn)無刷電機中的定子和轉(zhuǎn)子跟有刷電機的定子和轉(zhuǎn)子的定義是不是恰恰相反呢?
2.2 無刷電機旋轉(zhuǎn)原理
??
為了驅(qū)動無刷電機旋轉(zhuǎn),需要在轉(zhuǎn)子適當角度時,給電機三相引線中兩相施加恰當電流,使得定子產(chǎn)生磁性作用在轉(zhuǎn)子上形成定向轉(zhuǎn)矩。當轉(zhuǎn)子旋轉(zhuǎn)過一定角度,將通電線圈進行切換,使得定子磁極作用在轉(zhuǎn)子上永遠形成一個方向上的轉(zhuǎn)矩。
圖2.3 同時給A,B兩相通電之后定子磁極與轉(zhuǎn)子形成轉(zhuǎn)矩
??
下圖給出了三相電施加電壓極性組合以及變化是順序,按照這個順序,定子就會在內(nèi)部形成旋轉(zhuǎn)磁場,帶動轉(zhuǎn)子旋轉(zhuǎn)。
圖2.4 無刷電機三相通電順序和組合
??
為了獲得最大輸出轉(zhuǎn)矩,需要定子產(chǎn)生磁場在旋轉(zhuǎn)方向上領(lǐng)先轉(zhuǎn)子90°。通常使用霍爾傳感器來測量轉(zhuǎn)子磁極角度,下圖現(xiàn)實了電機內(nèi)部三個霍爾傳感器在轉(zhuǎn)子旋轉(zhuǎn)時,輸出的電壓波形。
圖2.5 鑲嵌在定子上的HALL角度傳感器以及輸出信號
??
三個霍爾傳感器總共有八種狀態(tài)組合,其中全0,全1是無效狀態(tài)。剩下六個狀態(tài)組合代表了轉(zhuǎn)子處在360°六個區(qū)間。在不同區(qū)間,給電機A,B,C三相施加不同驅(qū)動電壓,便可以產(chǎn)生領(lǐng)先轉(zhuǎn)子磁場90°的定子磁場,進而可以產(chǎn)生最大旋轉(zhuǎn)轉(zhuǎn)矩。
??
所以這個時候就可以梳理出大致的無刷電機控制原理了:
??1. 通過霍爾傳感器檢測當前轉(zhuǎn)子所在的角度區(qū)間
??2. 通過判斷當前轉(zhuǎn)子角度區(qū)間來讓單片機輸出下一個區(qū)間的控制信號
??3. 控制信號通過預(yù)驅(qū)和MOS開關(guān)輸出到電機
??4. 當轉(zhuǎn)子到達下一個角度區(qū)間時,重復(fù)第一步
??
同樣,如果對這部分也比較生疏的還是推薦去年12月9號發(fā)布的推文,里面有詳細講解。
03 GTM模塊
3.1 GTM模塊簡介
??
GTM(Generic Timer Module),直譯出來就是通用定時器模塊的意思,但是它又與我們平時理解的通用定時器有點不同,我們平時用定時器無非就是用來輸出PWM信號或者用于周期中斷等等,這些功能GTM模塊都支持,而且還有一些我們沒了解過的功能,大家看下圖:
圖3.1 GTM模塊內(nèi)部功能圖
??
這個就是GTM模塊的總體框圖啦,我們第一眼肯定看到的就是里面最大的模塊-ARU模塊,它是用來處理數(shù)據(jù)流的,并且可以控制整個GTM模塊的輸出,但是它不是我們今天的主角,我們的主角在ARU模塊的左側(cè)和左下部分,分別是TIM模塊、SPE模塊、TOM模塊,這幾個模塊的組合實現(xiàn)了單片機硬件檢測霍爾并且換相輸出的操作,我們的CPU就不用再反復(fù)執(zhí)行無刷電機驅(qū)動部分的代碼了。
3.2 驅(qū)動邏輯分析
??
在單獨介紹我們要用到的這幾個模塊之前,我們先簡單描述一下它們的工作流程。
??
TIM模塊負責采集霍爾信號并且對其進行濾波,然后將霍爾信號送到SPE模塊,SPE模塊通過判斷當前的霍爾值來控制TOM模塊輸出固定相位的PWM信號,而這個固定的相位就是我們初始化時預(yù)先在SPE模塊中寫好的一個換相表。具體的工作流程大家可以看看下圖:
圖3.2 TIM模塊
(1)TIM模塊
??
TIM(Timer Input Module)模塊,定時器輸入模塊。
??
在我們的實際應(yīng)用中,該模塊主要負責采集霍爾信號和剎車信號,同時模塊自帶濾波功能,保證捕獲到的是準確的值。TIM模塊會將捕獲到的霍爾值直接送到SPE模塊進行后續(xù)處理。
??
從上面總的工作流程圖可以看出來TIM0模塊的輸入有8個通道,而我們只用了三個用于捕獲霍爾信號,然后將處理好的三路霍爾信號送到了SPE0模塊。
(2)SPE模塊
??
SPE (Sensor Pattern Evaluation) 模塊,傳感器評估模塊。
??
SPE模塊專用于評估當前霍爾信號的值,并且根據(jù)當前的霍爾值去查表通過寄存器控制TOM模塊的輸出,具體控制邏輯看下圖:
圖3.3 SPE模塊
??
左上角的三路信號就是由TIM模塊濾波之后送過來的信號,然后通過NIP寄存器進行保存(我們通過讀取NIP寄存器就可以知道當前的霍爾值),之后三路信號分別送到了Pattern進行查表,這里的查表是查的霍爾與輸出的對應(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進行控制,當FSOI為有效時,最終的輸出將被修改為FSOM寄存器的輸出值,而FSOM寄存器的是我們在初始化時就給了的,我們只要設(shè)置FSOM寄存器是控制所有上橋關(guān)閉、所有下橋開啟,那么就是正常的剎車效果。
(3)TOM模塊
TOM(Timer Output Module)模塊,定時器輸出模塊。
??
該模塊將根據(jù)設(shè)置的參數(shù)生成PWM信號,以及根據(jù)SPE模塊選擇的輸出通道輸出PWM信號或者是高低電平,從而驅(qū)動無刷電機旋轉(zhuǎn)。
04 開源下載
??
基于Infineon單片機設(shè)計的無刷電機驅(qū)動開源硬件、軟件下載鏈接為:
https://gitee.com/seekfree/TC264_GTM_BLDC_Project
??
打包下載開源庫壓縮包,就可以愉快的開始玩無刷啦,各位下載之前別忘了幫我們點一點小星星哦,感謝各位的支持。
05 總 結(jié)
??
為了測試方便,本開源項目的硬件依然是將TC264和驅(qū)動電路做在一個板子上的,同學們自己在做板子時可以考慮直接使用主控TC264來控制驅(qū)動輸出,我們在引腳分配的時候也已經(jīng)避開了常用的資源,也就是一顆TC264就既是小車的主控,也是無刷電機驅(qū)動的控制器,并且文章開頭也說過,使用GTM模塊來實現(xiàn)無刷驅(qū)動的方案也降低了CPU消耗,同時我們測試的板子是為了兼容更大的電流采用了MOS管并聯(lián),所以大家也可以根據(jù)實際需要來進行減半的設(shè)計,這樣差不多就可以做到將驅(qū)動板縮小一半,并且也推薦大家用一顆TC264實現(xiàn)無刷驅(qū)動和主控兩個需求,以適應(yīng)平衡單車組的輕量化整體設(shè)計。
??
所以本開源項目所對應(yīng)的驅(qū)動板實物并未生產(chǎn)學習板來進行銷售,目前逐飛在售的無刷驅(qū)動學習板只有CCU6的那種方案,所以同學們直接根據(jù)開源項目的原理圖自行設(shè)計就行了。
??
無刷電機可以采用逐飛演示車模中推薦的型號,在越野組的開源方案中我們講到過,我們對很多款電機進行了測試,單車平衡組最終采用的是和極速越野組的同一款電機,開源項目代碼和硬件也是以這款電機為樣品來進行測試的。
電機的參數(shù)如下:有感、三槽兩極、2860Kv(Kv表示每增加一伏電壓電機增加的轉(zhuǎn)速,最高12V)、尺寸36(mm)*50(mm)、額定功率190W、支持1-3S鋰電池供電。
圖5.1 無刷電機驅(qū)動的平衡單車
??
溫馨提示:此款電機僅為逐飛推薦款,同學們也可以選擇自己認為合適的無刷電機,這一點上規(guī)則是沒有限制的,但建議大家選擇有感無刷。
??
以上開源項目經(jīng)過逐飛的精心設(shè)計和代碼編寫,真實可靠,在昨天的直播中也進行了講解,可以通過逐飛B站回看視頻,平衡單車組的逐飛演示車模也是用的這套開源方案制作的,證明了此開源方案的可行性,剩下的就是大家盡情發(fā)揮自己算法的時候了。學習過程中可以結(jié)合直播視頻回放和往期相關(guān)推文來加深理解,鏈接及直播回放鏈接見下方:
第十七屆智能車競賽英飛凌|逐飛聯(lián)合專題培訓之無刷電機驅(qū)動:https://www.bilibili.com/video/BV1JY411p7bH?spm_id_from=333.999.0.0
第十七屆智能車競賽英飛凌|逐飛聯(lián)合專題培訓之平衡單車入門講解:https://www.bilibili.com/video/BV1er4y1H7Wt?spm_id_from=333.999.0.0
免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理。
推薦閱讀:
極低噪聲幻像電源如何設(shè)計?詳細原理圖和三種消噪方法
傳感器在工業(yè) 4.0 預(yù)測性維護中的應(yīng)用
星火燎原,能量收集技術(shù)如何為邊緣電池供電系統(tǒng)“續(xù)命”