基于Cortex-M3內(nèi)核MCU的BLDCM控制器研究
摘要:用Cortex-M3內(nèi)核32位高性能MCU設(shè)計一款通用性、控制性較好,性價比較高的BLDCM控制器。根據(jù)BLDCM的工作原理和MCU的良好性能進行了詳細設(shè)計。實現(xiàn)了對BLDCM的轉(zhuǎn)速、電流雙閉環(huán)控制,通過實驗測試了控制器的各項性能。該款基于32位MCU的控制器性能良好,結(jié)構(gòu)緊湊,性價比高,具有較高實用價值。結(jié)合應(yīng)用經(jīng)驗發(fā)現(xiàn),API函數(shù)支持下Cortex-M3內(nèi)核的MCU在硬件控制和軟件編程方面較以往單片機等具有優(yōu)勢,基于API函數(shù)支持的MCU應(yīng)用將是未來趨勢。
關(guān)鍵詞:Stellaris;LM3S615;BLDCM;雙閉環(huán);實驗測試
Luminary Micro的Stellaris(群星)系列MCU以其32位的性能和低至1美元的價格在微控制器領(lǐng)域表現(xiàn)出了卓越的優(yōu)勢,其中的LM3S615便包含ARM公司最新推出的針對微控制器應(yīng)用的Cortex-M3內(nèi)核,另含10位兩通道ADC,6路帶死區(qū)PWM,6路CCP,3個模擬比較器、1個低壓差線性穩(wěn)壓器、2個完全可編程的16C550-type UART、同步串行接口(SSI)、3個通用Timer,I2C、溫度傳感器等片內(nèi)外設(shè),以及32KBFLASH、8KB SR AM、高達34個GPIO管腳。它有豐富靈活的外設(shè)驅(qū)動庫函數(shù)及例程支持編程,可方便用于步進電機、無刷直流電機(BLDCM)、交流電機控制。
本文針對內(nèi)含霍爾位置檢測傳感器的BLDCM,選用LM3S615設(shè)計一款通用性和控制性較好BLDCM控制器,并經(jīng)過實驗對其基本性能進行了多方面測試。
1 BLDCM的工作原理
無刷直流電機由電機本體、轉(zhuǎn)子位置傳感器和逆變供電電路3大部分組成。電機本體包括定子(電樞)和轉(zhuǎn)子兩部分,定子一般為多相繞組,轉(zhuǎn)子由永磁材料按一定極對數(shù)組成。運行時轉(zhuǎn)子在電樞氣隙磁場帶動下旋轉(zhuǎn),同時位置檢測傳感器將不斷檢測所得轉(zhuǎn)子位置信息反饋給控制器,控制器通過運算送出控制信號驅(qū)動逆變電路中的功率開關(guān)器件輪流導(dǎo)通,電樞繞組輪流通電,氣隙磁場不斷跳躍步進,轉(zhuǎn)子就不斷旋轉(zhuǎn)??刂破饔靡则?qū)動開關(guān)器件的多為PWM信號,改變PWM的信號占空比可改變電樞的平均端電壓,進而可改變電機轉(zhuǎn)速,設(shè)計時應(yīng)注意驅(qū)動開關(guān)的PWM信號邏輯關(guān)系要正確并應(yīng)避免上、下橋臂直通。
2 基于LM3S615的BLDCM控制器的構(gòu)成原理
基于LM3S615的BLDCM控制器結(jié)構(gòu)原理見圖1。
2.1 主要硬件組成及原理
原理圖1同時給出了系統(tǒng)硬件組成及主要I/O分配。控制器對應(yīng)的為三相無刷直流電機,電樞Y型接法,采用三相兩通六狀態(tài)供電方式和H_PWM,L_on單極性逆變橋控制(即繞組通電時下橋臂管一直導(dǎo)通,上橋臂管PWM調(diào)制)方式,這也能降低雙極性PWM控制帶來的較高開關(guān)損耗和噪音。
控制器通過ADC0通道(1#引腳)前端電位器設(shè)定轉(zhuǎn)速,對應(yīng)的10位A/D轉(zhuǎn)換器會將轉(zhuǎn)速設(shè)定值轉(zhuǎn)換成數(shù)字量并保存在特定存儲單元中,此后系統(tǒng)啟動和運行時所需轉(zhuǎn)速設(shè)定值從該單元讀出,不需經(jīng)常讀入和A/D轉(zhuǎn)換。LCD為能顯示16×2個字符的1602。它能實用來實時顯示轉(zhuǎn)速設(shè)定值、當前轉(zhuǎn)速值,系統(tǒng)故障代碼以及在設(shè)定P,I時顯示參數(shù),圖2為1602與MCU的連接圖,圖中電位器可用于調(diào)節(jié)背光;通過啟動和停止按鍵控制電機啟停;設(shè)定按鍵四次按下可選擇設(shè)定兩個PI調(diào)節(jié)器的4個參數(shù)(即ASR和ACR的P、I參數(shù)),增加和減小按鍵以0.1步距改變參數(shù),設(shè)定;增加、減小3個按鍵在電機停止時可用,在運行期間無效,控制器的5個按鍵均通過單穩(wěn)態(tài)觸發(fā)器74121后再接MCU的GPI0引腳,對這5個GPIO引腳可通過GPIO函數(shù)將工作方式設(shè)定為中斷;內(nèi)嵌于電機的霍爾傳感器能將轉(zhuǎn)子位置轉(zhuǎn)換成脈沖信號并送給MCU,表1給出了3路霍爾信號邏輯組合及正反轉(zhuǎn)對應(yīng)的功率器件導(dǎo)通順序。
[!--empirenews.page--]
電機內(nèi)部的三個霍爾元件在空間彼此相隔120°電角度,與其配套的永磁體的極弧寬為180°,轉(zhuǎn)子旋轉(zhuǎn)時,三個霍爾元件將交替輸出三個寬為180°、相位互差120°的矩形波信號(H1,H2,H3)。這三路信號經(jīng)過進一步整形(圖3為三相霍爾脈沖信號的整形電路)后被MCU的CAP端口捕捉,捕捉信息一方面作為換相邏輯參與生成并輸出PWM信號,另一方面速度計算模塊利用其中一路脈沖(如H1,應(yīng)注意電機極對數(shù)為P時,每轉(zhuǎn)有P個方波)的前后沿時間間隔計算得到轉(zhuǎn)速反饋值??刂破鲗⑥D(zhuǎn)速反饋值送至LCD顯示的同時將其與轉(zhuǎn)速設(shè)定值比較并獲得轉(zhuǎn)速偏差,再經(jīng)ASR運算得到電流給定值,電流反饋值與電流給定值相比較便得到電流偏差值,再經(jīng)ACR運算得到PWM占空比調(diào)節(jié)值。PWM模塊根據(jù)所得占空比值和換相邏輯在母線電流未超限時輸出PWM并通過高速光耦TIL117送給驅(qū)動電路IR2130。
考慮到可靠性,MOSFET逆變橋驅(qū)動電路采用集成器件IR2130。IR2130自身的工作電源電壓的范圍較寬(3~20 V),并可對同一橋臂上下2個功率器件的柵極驅(qū)動信號產(chǎn)生2μs的互鎖延時,能有效避免直通短路。
2.2 控制算法選擇及檢測處理方法
由LM3S615構(gòu)建的控制器采用了電流內(nèi)環(huán)、轉(zhuǎn)速外環(huán)的雙閉環(huán)控制策略。考慮BLDCM是一種自控式電機,MCU運算能力不比DSP,同時包括電機在內(nèi)的全系統(tǒng)運行性能也受電機自身性能影響,所以ASR和ACR無需采用過于復(fù)雜的算法,這里兩者均采用增量式PI算法,與位置式PI算法相比增量式PI算法不需要累加,控制器只輸出增量,受誤動作影響較小,控制增量僅與最近K次的采樣值有關(guān),容易通過加權(quán)處理而獲得較好的控制效果。PI參數(shù)整定時可先固定積分環(huán)節(jié)為零,調(diào)節(jié)比例環(huán)節(jié)至系統(tǒng)響應(yīng)穩(wěn)定,然后再調(diào)節(jié)積分環(huán)節(jié)來改善系統(tǒng)的動態(tài)響應(yīng)和靜態(tài)穩(wěn)定性能。
圖3中三路霍爾信號經(jīng)高速光耦隔離后再通過上拉電阻、非門、電容整形濾波后送至單片機,TIL117輸入回路有一定輸入電流需求,不能用霍爾信號直接驅(qū)動,光耦輸出接反相器后恢復(fù)了原信號的邏輯狀態(tài)。
對BLDCM母線電流的檢測方法有傳感器法和串電阻法等,用霍爾等傳感器檢測電流時線路相對復(fù)雜、成本較高,在被檢電流較小時檢測精度會受影響,母線串電阻法簡單,但應(yīng)注意控制電阻功耗。這里通過串電阻法檢測母線電流,為降低電阻功耗并保證檢測精度,選擇了美國威世公司0.47 Ω檢流用高精度小電阻,預(yù)計功耗不超過0.1 W。用導(dǎo)線從檢流電阻兩端引出,經(jīng)濾波后接入圖4所示電路,該電路是利用TI公司的寬帶低噪音運放OPA842ID搭建的高輸入阻抗差動放大電路,它能有效放大兩路輸入信號差值。差動電路輸出送至MCU的ADC1通道進行10位A/D轉(zhuǎn)換,圖4為檢流差動放大電路。
[!--empirenews.page--]
3 電機的開環(huán)軟啟動控制
在閉環(huán)條件下啟動電機,因瞬時轉(zhuǎn)速為零PWM占空比會達最大值,帶載時可能因電機過流而啟動失敗,為此采用開環(huán)啟動方式,流程如圖5所示。啟動按鍵按下電機轉(zhuǎn)子從當前位置準備啟動,先讀取轉(zhuǎn)速設(shè)定值(n0)并設(shè)置一個占空比常數(shù)D1,首次通電占空比為5%,以后以5%步距遞增直至啟動結(jié)束。因起始占空比較小,不管轉(zhuǎn)速設(shè)定是大還是小,空載還是帶載,都會順利啟動,不會出現(xiàn)啟動大過沖現(xiàn)象。啟動過程中MCU會不斷進行轉(zhuǎn)速判斷,當轉(zhuǎn)差率小于0.2時切換至閉環(huán)(圖5中n為實時轉(zhuǎn)速)。
4 軟件編制中的主要問題解決策略
系統(tǒng)軟件除主程序外,主要有開環(huán)啟動、A/D轉(zhuǎn)換、速度計算、增量PI、PWM生成、1602驅(qū)動、按鍵中斷等子程序。TI給Stellaris(群星)系列MCU配備了完善的外設(shè)驅(qū)動庫,片內(nèi)外設(shè)使用和控制極為方便,外設(shè)驅(qū)動庫中的API支持下可完全控制外設(shè)和快速開發(fā)應(yīng)用程序而不需了解外設(shè)細節(jié),這一特點可稱為以后MCU應(yīng)用的趨勢。
對LCD1602驅(qū)動中用到的多個GPIO端口,其編程流程可歸納為:初始化(設(shè)置LDO輸出電壓,設(shè)置系統(tǒng)時鐘);外設(shè)(GPIO端口)使能;設(shè)置GPIO端口每一位的輸入/輸出類型(高阻輸入、推挽輸出、開漏輸出);讀/寫GPIO端口的狀態(tài)。
4.1 按鍵控制
5個按鍵均要工作在中斷狀態(tài),為實現(xiàn)良好控制編程時需注意兩點:一是在主程序中做好相應(yīng)GPIO引腳的設(shè)置,具體工作按順序為,使能按鍵所在GPIO端口、設(shè)置按鍵所在引腳為輸入、設(shè)置按鍵在引腳的中斷觸發(fā)類型(邊沿、電平)、使能引腳的中斷、使能GPIO端口中斷、使能處理器中斷;二是注意在中斷服務(wù)程序中讀完中斷狀態(tài)后要清楚中斷狀態(tài)。
4.2 PWM驅(qū)動信號的產(chǎn)生
LM3S615的PWM模塊功能非常強大,由3個PWM發(fā)生器模塊和1個控制模塊組成??刂颇K決定PWM信號的極性,以及傳遞管腳。每個PWM發(fā)生器都有1個16位定時器和2個比較器,可以產(chǎn)生2路PWM。在PWM發(fā)生器工作時,定時器在不斷計數(shù)并和兩個比較器的值進行比較,可以在和比較器相等時或者定時器計數(shù)值為零、為裝載值時對輸出的PWM產(chǎn)生影響。在使能PWM發(fā)生器之前,要配置好定時器的計數(shù)速度、計數(shù)方式、定時器的轉(zhuǎn)載值以及兩個比較器的值,從原理圖1可知PWM輸出受ACR運算結(jié)果、過流判斷結(jié)果、霍爾信號邏輯3個事件的影響。表1中霍爾邏輯組合和開關(guān)導(dǎo)通組合的對應(yīng)關(guān)系應(yīng)事先存儲在存儲器中以便每次確定PWM輸出引腳時查表。
4.3 電機過流檢測
過流判斷使用Timer的捕捉/比較模塊實現(xiàn)比較簡便,但ACR運算必需電流值的A/D轉(zhuǎn)換結(jié)果,為提高系統(tǒng)效率,過流判斷不用比較器,直接使用A/D轉(zhuǎn)換結(jié)果。具體編程時可通過分析事先設(shè)置一常數(shù),在每次輸出PWM波時可將該常數(shù)與當前電流的A/D轉(zhuǎn)換值的比較結(jié)果作為輸出條件之一,若過流立即封鎖PWM。
[!--empirenews.page--]
5 實驗測試
測試用無刷直流電動機Un=36 V,In=1.3 A,Pn=40 W,P=3,額定轉(zhuǎn)速1 500 rad/min,電機內(nèi)含霍爾位置傳感器,傳感器工作電壓5 V。實驗項目有啟動過程測試、相電流波形測試、霍爾位置脈沖測試,單相繞組反電勢測試等,測試結(jié)果如圖6~圖9所示。
圖6中轉(zhuǎn)速無過沖,轉(zhuǎn)速從零到設(shè)定值(1 200 rad/min)約1.6 s,開環(huán)啟動快速,轉(zhuǎn)入閉環(huán)未見圖線突跳等異常現(xiàn)象;圖7中相電流波頭基本呈矩形無嚴重畸變,頂部稍微的波動與PWM斬波有關(guān);由圖8中脈沖頻率可計算出電機轉(zhuǎn)速為1 455 rad/min,與設(shè)定值一致;圖9反映出電機單相繞組的反電勢波形呈正負交替的梯形,且波形良好。
6 結(jié)語
32位LM3S615具有豐富的片內(nèi)外設(shè),較多的GPIO端口引腳,強大的外設(shè)驅(qū)動庫函數(shù),這為搭建的BLDCM控制器提供了良好的硬件和軟件支持,最后獲得的BLDCM控制器外圍單元緊湊,功能設(shè)置適當,算法選擇合理,并充分發(fā)揮了32位MCU的優(yōu)越性能,從測試結(jié)果來看,其控制性能良好,有一定實用價值。結(jié)合本次LM3S615應(yīng)用的經(jīng)驗,以API為主要硬件控制手段的編程模式可能會成為以后MCU應(yīng)用的趨勢。