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