基于ATmega48的三相無刷電機控制方法
無刷直流電機以其重量輕,體積小,加速性能好,運行平穩(wěn),噪音低等優(yōu)點而廣泛用于丁業(yè)和民用產(chǎn)品中。無刷直流電機的功率因數(shù)高,無轉(zhuǎn)子損耗,其轉(zhuǎn)子轉(zhuǎn)速能嚴(yán)格地與電源頻率保持同步。轉(zhuǎn)子磁場由永久磁鐵產(chǎn)生。通常,采用電壓源型脈寬調(diào)制(PWM)控制作為無刷直流電機調(diào)速系統(tǒng)用的驅(qū)動器。近年來,國外紛紛推出以單片機(MCU)為核心的單片電機控制器,它南一個MCU再配備外圍驅(qū)動電路構(gòu)成,能大大降低成本,縮小體積,緊湊結(jié)構(gòu),提高可靠性。在此,介紹r采用Atmega48單片機實現(xiàn)三相無刷直流電機控制器的方法。
2 ATmega48單片機
ATmega48單片機是Atmel公司基于自動電壓調(diào)整器(Automatic Voltage Regulator,簡稱AVR)增強型精簡指令集計算機(RISC)結(jié)構(gòu)的低功耗8位CMOS微控制器。具有先進(jìn)的指令集及單時鐘周期指令執(zhí)行時間,其數(shù)據(jù)吞吐率可以達(dá)到1 MIPS/MHz。AVR內(nèi)核具有豐富的指令集和32個通用工作寄存器。這些寄存器都直接與算術(shù)邏輯單元(ALU)相連接.可在一個時鐘周期內(nèi)通過一條指令同時訪問兩個獨立的寄存器,因此可提高代碼效率。
ATmega48的硬件資源有:4 KB的系統(tǒng)內(nèi)可編程Flash:256字節(jié)的EEPROM:512字節(jié)的SRAM;23個通用I/0口線;32個通用工作寄存器;2個帶獨立預(yù)分頻器和比較器的8位定時器/計數(shù)器;1個帶預(yù)分頻器、比較器和捕捉功能的16位定時器/計數(shù)器;帶獨立振蕩器的實時計數(shù)器;6個通道PwM;8路10位A/D轉(zhuǎn)換器;6路10位A/D轉(zhuǎn)換器;可編程的串行USART接口;可工作于主機/從機模式的SPI串行接口;面向字節(jié)的2線串行接口;獨立片內(nèi)振蕩器的可編程看門狗定時器;片內(nèi)模擬比較器及5種可通過軟件選擇的省電模式。ATmega48具有豐富的I/0口、A/D轉(zhuǎn)換器、定時器/計數(shù)器、PWM通道等資源,為實現(xiàn)三相無刷直流電機的控制、換相檢測等提供了方便。
3 三相無刷電機的控制實現(xiàn)方法
圖1示出采用ATmega48單片機實現(xiàn)三相無刷電機控制器的原理圖。圖中,PC0、PCI和PC2為輸入,用以接收來自電機U,V,W換相的霍爾傳感器檢測信號;PD5和PD6用于控制電機U相的功率驅(qū)動器件;PBl和PB2用于控制電機V相的功率驅(qū)動器件;PD3和PB3用于控制電機W相的功率驅(qū)動器件;PC3為電機給定轉(zhuǎn)速的輸入電壓。
作為一種同步電機,直流無刷電機的轉(zhuǎn)子轉(zhuǎn)速受定子旋轉(zhuǎn)磁場速度及轉(zhuǎn)子極數(shù)的影響。當(dāng)轉(zhuǎn)子的極數(shù)固定時,只要改變定子的旋轉(zhuǎn)磁場頻率,即可改變轉(zhuǎn)子的轉(zhuǎn)速。直流無刷電機是一種控制定子的旋轉(zhuǎn)磁場頻率,并將電機轉(zhuǎn)子轉(zhuǎn)速回饋控制中心進(jìn)行反復(fù)校正.以達(dá)到接近直流電機的特性。當(dāng)負(fù)載變化時,它能在額定負(fù)載范圍內(nèi)控制電機的轉(zhuǎn)子維持一定的轉(zhuǎn)速。
圖2給出用于圖1中的功率驅(qū)動電路。該驅(qū)動部分由上臂VQl,VQ3,VQ5和下臂VQ2,VQ4,VQ6的6個功率晶體管組成,用于連接電機作為控制流經(jīng)電機繞組的開關(guān)??刂撇糠痔峁㏄WM,用于決定功率晶體管開關(guān)頻率及換相的時刻。在控制直流無刷電機轉(zhuǎn)速時.通常希望在負(fù)載變化時也能使電機轉(zhuǎn)速穩(wěn)定在設(shè)定值內(nèi),而不發(fā)生太大的波動。因此,在無刷電機內(nèi)部設(shè)置霍爾傳感器.以感應(yīng)磁場變化,該傳感器既可作為電機轉(zhuǎn)速中閉環(huán)控制的速度反饋部件,也可作為相序控制的依據(jù)。
當(dāng)控制器工作時,可根據(jù)霍爾傳感器檢測到電機轉(zhuǎn)子的當(dāng)前位置,依照定子繞組決定開啟或關(guān)閉功率晶體管的順序,使電流依序流經(jīng)電機線繞組,以產(chǎn)生順向或逆向的旋轉(zhuǎn)磁場,并與轉(zhuǎn)子的磁鐵相互作用,使電機順時或逆時轉(zhuǎn)動。當(dāng)電機轉(zhuǎn)子轉(zhuǎn)動到霍爾傳感器檢測出另一組信號的位置時,再開啟下一組功率晶體管,如此循環(huán),電機就能依據(jù)同一方向繼續(xù)轉(zhuǎn)動,直到控制器決定使電機轉(zhuǎn)子停止時,則關(guān)閉功率晶體管;決定使電機轉(zhuǎn)子反向時,則開啟功率晶體管,但順序相反。PWM是決定電機轉(zhuǎn)速快或慢的方式,如何產(chǎn)生PWM是實現(xiàn)準(zhǔn)確控制速度的核心。
圖2中的開關(guān)器件采用MOSFET,它們是不能在關(guān)斷瞬間切換的。如果UH和UL是反向信號,那么,在同一時刻,一個開關(guān)器件導(dǎo)通,另外一個開關(guān)器件截止。在這段過渡時期,會有一個短暫的時間,其中一個開關(guān)器件并未完全截止,而另一個也是導(dǎo)通的,這樣會使電源與地直接連接,使得大電流流經(jīng)晶體管。在工程應(yīng)用中必須避免這種情況,因為若電路中沒有必要的硬件保護(hù),極有可能損壞驅(qū)動裝置。因此,在控制電路中,每個PWM過渡期都應(yīng)增加死區(qū)時間。要求在一個很小的時間內(nèi),上臂開關(guān)和下臂開關(guān)都不導(dǎo)通,即產(chǎn)生帶死區(qū)的PWM信號。
圖3示出采用ATmega48形成帶死區(qū)時間的PWM信號原理。ATmega48中定時器/計數(shù)器的雙斜率模式可產(chǎn)生帶死區(qū)時間的PWM信號,它能產(chǎn)生一個關(guān)于B0TTOM對稱的波形。圖3中三角線表示雙斜率相位修正模式下定時器/計數(shù)器T0的計數(shù)值。在向上計數(shù)時,當(dāng)計數(shù)值與沒定值匹配時,輸出引腳OCOA清0;在向下計數(shù)時,當(dāng)計數(shù)值與設(shè)定值匹配時,輸出引腳OCOA置l。輸出引腳OCOB也采用同樣的設(shè)置。PWM占空比則通過輸出比較寄存器OCROA和輸出比較寄存器OCROB來設(shè)置;A,B兩路PWM相位的輸出相反。當(dāng)設(shè)置的兩個輸m端比較值相同時,這兩個PWM的輸出互補。
為了在上臂開關(guān)與下臂開關(guān)切換時插入死區(qū)時間,必須改變0CROB和OCROA的比較值,兩者之差值為插入的死區(qū)時間。如果3個計時/計數(shù)器都采用同樣的設(shè)置,就可產(chǎn)生3對帶死區(qū)的PWM波形,但必須保證PWM的輸出是同步的。當(dāng)采用8位定時器/計數(shù)器產(chǎn)生2路具有不同比較值的PWM信號時,其最大設(shè)定值為255。若采用16位定時器/計數(shù)器,則必須設(shè)定為8位相位修正PWM模式。此時,PWM的基本頻率可由下式確定:
式中:fCPU為CPU的頻率。
無刷直流電機常采用三相正弦驅(qū)動方式。常用的方法是把一個正弦波形數(shù)據(jù)存儲在存儲器中,通過程序查表輸出所需的正弦驅(qū)動信號。由于3個正弦電壓之間的相位差為120°,因此可以采用一個正弦波形移位產(chǎn)生所有的正弦驅(qū)動信號。圖4給出各相驅(qū)動信號的產(chǎn)生機制和換相時序。圖中Hl,H2,H3為霍爾傳感器的輸出狀態(tài);S1~S6為波形產(chǎn)生的步驟;虛線為相位切換波形;實線為輸出的正弦驅(qū)動信號。圖5給出用于控制器的換相控制程序設(shè)計流程。
4 結(jié)語
無刷直流電機的功率因數(shù)高,又無轉(zhuǎn)子損耗,因此用于無刷直流電機調(diào)速系統(tǒng)的驅(qū)動器大都采用電壓源型PWM控制。由于三相無刷直流電機借助ATmega48單片機進(jìn)行控制.且通過軟件實現(xiàn)了帶死區(qū)的PWM、霍爾傳感器的換相處理、正弦驅(qū)動信號的產(chǎn)生和電機的轉(zhuǎn)速控制,因而所需的外圍器件少,成本低,并且還可提高系統(tǒng)的可靠性。