基于單片機SH79F168的航模無刷直流電機控制方案
1 概述
本文引用地址:http://m.butianyuan.cn/article/220164.htm無位置傳感器的無刷直流電機(Brushless Direct Current Motor, BLDCM)由于其快速、可靠性高、體積小、重量輕等特點,在航模領域得到了廣泛的應用。但是與有刷電機和有位置傳感器的無刷直流電機相比,其控制算法要復雜得多。加上航模設計中對重量和體積的要求非常嚴格,因此要求硬件電路盡可能簡單,更增加了軟件的難度。
本文提出了一種基于中穎8位單片機SH79F168的控制方案,借助于該芯片片內(nèi)集成的針對電機控制的功能模塊,只需很少的外圍電路即可搭建控制系統(tǒng),實現(xiàn)基于反電動勢法的無位置傳感器BLDC控制,在保證穩(wěn)定性和可靠性的基礎上大大降低了系統(tǒng)成本。而且該芯片與傳統(tǒng)8051完全兼容,易于上手,從而也降低了研發(fā)成本。
2 系統(tǒng)硬件設計
本方案選用中穎的8位單片機SH79F168做為主控芯片。該芯片采用優(yōu)化的單機器周期8051核,內(nèi)置16K FLASH存儲器,兼容傳統(tǒng)8051所有硬件資源,采用JTAG仿真方式,內(nèi)置16.6M振蕩器,同時擴展了如下功能:
雙DPTR指針. 16位 x 8乘法器和16位/8除法器.
3通道12位帶死區(qū)控制PWM,6路輸出,輸出極性可設為中心或邊沿對齊模式;同時集成故障檢測功能,可瞬時關閉PWM輸出;
7通道10位ADC模塊;
內(nèi)置放大器和比較器,可用作電流放大采樣和過流保護;
增強的外部中斷,提供4種觸發(fā)方式;
提供硬件抗干擾措施;
Flash自編程功能,方便存儲參數(shù);
主系統(tǒng)硬件架構如圖1所示,從圖中可以看出該系統(tǒng)大部分功能都由片內(nèi)集成的模塊完成。外圍電路的簡化一方面可以提高系統(tǒng)可靠性,另一方面也降低了成本。
圖 1 系統(tǒng)硬件架構
三相逆變橋采用上橋PMOS用三極管驅動,下橋NMOS用PWM端口直接驅動的方式,如圖2所示。
圖 2 三相逆變橋
SH79F169片內(nèi)集成了三通道6路PWM端口,可分別獨立配置為PWM輸出或者IO輸出。將PWM01~PWM21配置為PWM輸出,直接驅動三相逆變橋的下橋;PWM0~PWM2配置為IO端口,經(jīng)過晶體管反相電路后驅動三相逆變橋的上橋。
外部中斷輸入INT4x配置為雙沿觸發(fā),即輸入信號的上升沿和下降沿都能觸發(fā)中斷,可用于捕捉調(diào)速給定信號。
3 系統(tǒng)軟件設計
由于SH79F168的硬件已經(jīng)完成了大量的任務,軟件的部分相對簡化很多。主程序流程圖如圖3所示。
圖 3 主程序流程圖
為便于理解,該流程圖經(jīng)過了盡量的簡化,只保留最關鍵的步驟。主流程中沒有列出“檢測BEMF”和“換相”兩個關鍵的步驟,因為它們分別在PWM中斷和timer0中斷中進行。
3.1 反電動勢過零點檢測
在PWM輸出高期間,假設斷開相繞組端電壓為 ,反電動勢為 ,供電電壓為 ,則三者之間有如下關系[1]:
SH79F168提供PWM周期中斷和占空比中斷。當周期中斷發(fā)生時不斷檢測斷開相的端電壓,并與 比較,直到檢測到過零點或者PWM輸出低(根據(jù)PWM占空比中斷標志位判斷),即可實現(xiàn)在PWM輸出高期間的反電動勢過零點檢測。每次換相后就切換到另一個通道,檢測下一個斷開相的端電壓,如此循環(huán),實現(xiàn)實時檢測。
需要注意是剛換相后的一段時間內(nèi),由于MOS管的續(xù)流,斷開相繞組的電壓會出現(xiàn)尖峰。為了準確檢測反電動勢,可以選擇在剛換相的一到兩個PWM周期內(nèi)不進行采樣,避開尖峰電壓。
3.2 起動算法
BLDC電機的反電動勢和轉速正相關,在起動和低速運行階段,電機產(chǎn)生的反電動勢為零或很小,因此往往需要經(jīng)過一段強制加速,使反電動勢上升到能夠檢測過零點的水平。
航模電機一般在較低速時即會產(chǎn)生比較明顯的反電動勢,這個特點為起動提供了很大的便利。先給電機任意兩相通電,使電機獲得一個初速度,這時檢測斷開相電壓并等待其發(fā)生過零。若檢測到過零點則換相,若經(jīng)過較長一段時間還沒有檢測到過零則強制換相,重復這個過程直至電機穩(wěn)定運行。這種起動方式,不但實現(xiàn)簡單,而且穩(wěn)定可靠。在這種方式不能適用時,再根據(jù)應用場合考慮選用特定的起動方式,可參考文獻[2],限于篇幅本文不詳述。
3.3 換相計算
一般在用反電動勢法進行BLDC控制的時候,需要對每兩次換相的間隔時間進行計時,得到60°電角度時間,然后除以2作為檢測到過零點后30°延時的定時值。這就需要用到兩個定時器/計數(shù)器,一個用作計數(shù)器對每兩次換相的間隔進行計數(shù),另一個用作定時器實現(xiàn)30°延時。本方案中為了節(jié)省timer資源,用一個timer同時完成兩項功能。
在每次換相后,檢測到該通電狀態(tài)下的過零點之間,timer0用作計數(shù)器;在檢測到過零點之后,之前的計數(shù)值即為30°電角度,將其作為定時值裝入timer0,timer0用作定時器開始定時。定時時間到后,在timer0中斷中進行換相。然后timer0又用作計數(shù)器,如此循環(huán)。正常情況下,由于電機轉速很高,每次換相到檢測到過零點之間的時間很短,timer0在計數(shù)模式下不會發(fā)生中斷。若timer0在計數(shù)模式時發(fā)生中斷,必然是計數(shù)溢出,說明電機經(jīng)過較長的時間還沒有檢測到過零點,而這可以作為電機堵轉的標志。根據(jù)實際情況,可對timer0在計數(shù)模式下連續(xù)發(fā)生中斷的次數(shù)進行計數(shù),超過一定值即認為發(fā)生堵轉。這樣,timer0還實現(xiàn)了堵轉保護的功能。
4 系統(tǒng)測試及總結
圖4~6分別為PWM占空比約為20%、50%和100%時,在電機運轉過程中用示波器捕捉到的各相電壓和過零點位置波形。
圖 4 PWM占空比為20%
圖 5 PWM占空比為50%
圖 6 PWM占空比為100%
各圖中最上方的方波中每個高低翻轉的位置即對應程序中檢測到過零點的時刻,下面三個梯形波分別為A、B、C三相的端電壓。由圖中可以看出PWM占空比越高時系統(tǒng)運行越穩(wěn)定。本系統(tǒng)經(jīng)測試在PWM占空比低至8%時還能穩(wěn)定運行。
采用本方案的航模電調(diào)通過廠家的各項測試,性能良好,穩(wěn)定可靠,且節(jié)省了成本。目前已進入批量生產(chǎn)階段,產(chǎn)生了良好的經(jīng)濟效益。
參考文獻
[1] Jianwei Shao. Direct Back EMF Detection Method for Sensorless Brushless DC Motor Dives. Thesis submitted to the Faculty of the Virginia Polytechnic Institute and the State University in Partial fulfillment of the requirements for the degree of Master, 2003.
[2] 吳筱輝, 程小華, 劉杰. 反電動勢法檢測轉子位置的直流無刷電機系統(tǒng)起動方法. 中小型電機, 2005, 32(5)
評論