Atmega16在開關(guān)磁阻電機(jī)調(diào)速系統(tǒng)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:針對(duì)開關(guān)磁阻電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)要求,提出了以Atmega16作為CPU,并利用該單片機(jī)硬件和軟件上的優(yōu)點(diǎn)來提高系統(tǒng)處理速度,簡化外圍電路和提高性價(jià)比的設(shè)計(jì)方法。
關(guān)鍵詞:電機(jī)調(diào)速;開關(guān)磁阻電機(jī);標(biāo)準(zhǔn)單脈沖數(shù);Atmega16
1 引言
目前,隨著汽車工業(yè)的發(fā)展,能源短缺問題日趨嚴(yán)峻。為此,國家科技部啟動(dòng)了“863電動(dòng)汽車重大專項(xiàng)”,而開關(guān)磁阻電機(jī)(Switched Reluctance Motor,簡稱SRM)以其啟動(dòng)轉(zhuǎn)矩大、調(diào)速范圍寬等優(yōu)點(diǎn)被作為未來電動(dòng)汽車的理想驅(qū)動(dòng)電機(jī)之一。開關(guān)磁阻電機(jī)是一種必須在控制器協(xié)調(diào)控制下才能運(yùn)轉(zhuǎn)起來的電機(jī),因而控制器性能的好壞直接影響電機(jī)的運(yùn)轉(zhuǎn)性能。以往控制系統(tǒng)所采用的CPU主要有三種類型:一是采用51系列8位單片機(jī),這種處理器處理速度相對(duì)緩慢,功能簡單,外圍電路比較復(fù)雜。二是采用196系列16位單片機(jī),這種處理器處理速度比較快,但由于內(nèi)部外設(shè)模塊不夠豐富,因而外圍電路仍相對(duì)復(fù)雜。三是采用240系列DSP,這種處理器處理速度快,內(nèi)部外設(shè)模塊豐富,但芯片價(jià)格昂貴,所以不能得到較廣泛的應(yīng)用。本文選用Atmel公司出品的Atmega16作為CPU來控制開關(guān)磁阻電機(jī),大大提高了性價(jià)比。
2 AVR系列單片機(jī)
AVR單片機(jī)是目前最新的單片機(jī)系列之一,具有速度高、片內(nèi)硬件資源豐富等優(yōu)點(diǎn),可作為真正意義上的單片機(jī)使用。它的最大特點(diǎn)是低功耗和高速度,其掉電方式、閑置方式至工作方式下的耗電約為1μA~2.5μA。該系列單片機(jī)采用現(xiàn)代微處理器流水管線預(yù)取指令技術(shù),淘汰了機(jī)器周期的概念。它以時(shí)鐘周期為指令執(zhí)行的基本時(shí)間單位,每個(gè)時(shí)鐘周期可執(zhí)行一條指令。時(shí)鐘頻率通常采用4MHz~8MHz,故最短的指令執(zhí)行時(shí)間為250ns~25ns。在12MHz頻率下,指令的吞吐量為12MIPS,這是一般MCS-51單片機(jī)速度的12倍。AVR系列片內(nèi)含有模擬比較器,與輸入捕捉功能配合可進(jìn)行多種模擬控制和轉(zhuǎn)換。它借鑒了某些機(jī)型的高速輸入輸出HSIO和可編程計(jì)數(shù)陣列PCA的概念,實(shí)現(xiàn)了本身的輸入捕捉、輸出比較和脈沖寬度調(diào)制輸出功能,從而成為脈沖信號(hào)測量、開關(guān)量按時(shí)控制及某些直流馬達(dá)調(diào)速的得力工具。在軟件開發(fā)方面,AVR單片機(jī)內(nèi)含容量不等的閃速程序存儲(chǔ)器(Flash Memory,簡稱Flash),可反復(fù)擦寫至少1000次,極大地方便了產(chǎn)品開發(fā)和軟件修改。Flash存儲(chǔ)器中的程序可由PC機(jī)串行下載,亦可在通用寫入器上以并行方式寫入。
3 開關(guān)磁阻電機(jī)工作原理
所謂磁阻電機(jī)是指電機(jī)各磁路的磁阻隨轉(zhuǎn)子位置而改變,因而電機(jī)的磁場能量也將隨轉(zhuǎn)子位置的變化而變化,并將磁能變換成機(jī)械能。這種結(jié)構(gòu)與步進(jìn)電動(dòng)機(jī)相似,開關(guān)磁阻電動(dòng)機(jī)的運(yùn)行亦遵循“磁阻最小原理”,即磁通總是沿著磁阻最小的路徑閉合。而具有一定形狀的鐵心在移動(dòng)到最小磁阻位置時(shí),必使自己的主軸線與磁場的主軸線重合。圖1為四相開關(guān)磁阻電機(jī)結(jié)構(gòu)圖,當(dāng)定子D-D‘極勵(lì)磁時(shí),所產(chǎn)生的磁力會(huì)力圖使轉(zhuǎn)子旋轉(zhuǎn)到轉(zhuǎn)子極軸線1-1’與定子極軸線D-D’重合的位置,并使D相勵(lì)磁繞組的電感最大。若以圖1中定、轉(zhuǎn)子所對(duì)的位置作為起始位置,然后依次給D-A-B-C相繞組通電,轉(zhuǎn)子會(huì)逆著勵(lì)磁順序以逆時(shí)針方向連續(xù)旋轉(zhuǎn);反之,若依次給B-A-D-C相通電,則轉(zhuǎn)子會(huì)沿順時(shí)針方式轉(zhuǎn)動(dòng)??梢?,開關(guān)磁阻電動(dòng)機(jī)的轉(zhuǎn)向與相繞組的電流方向無關(guān),而僅取決于相繞組通電的順序。
4 系統(tǒng)設(shè)計(jì)要求及結(jié)構(gòu)實(shí)現(xiàn)
對(duì)于額定功率為0.75kW、轉(zhuǎn)速為50~2000r.p.m的8/6極SRM,在低速時(shí)可采用PWM方式來控制,而在高速時(shí)則應(yīng)采用單脈沖控制。電機(jī)轉(zhuǎn)子每轉(zhuǎn)過15°,位置傳感器PIA和PIB會(huì)發(fā)生變化并產(chǎn)生一次相中斷,之后MSP430依據(jù)外部操作要求(如正傳或反轉(zhuǎn))及當(dāng)前狀態(tài)來決定下一次輸出狀態(tài)并送給數(shù)字比較器,當(dāng)與下一次中斷信號(hào)一致時(shí),它會(huì)向CPU發(fā)送一次中斷,并輸出相信號(hào)給邏輯電路,最后驅(qū)動(dòng)電動(dòng)機(jī)。同時(shí)依據(jù)此中斷信號(hào)計(jì)算轉(zhuǎn)速,以作為高速單脈沖工作狀態(tài)的參考點(diǎn)(對(duì)于高速單脈沖,由于在高速時(shí)沒有足夠時(shí)間精確計(jì)算開關(guān)角的大小,因而本設(shè)計(jì)采取每相固定導(dǎo)通30°的控制方式,其實(shí)現(xiàn)方法待后詳述)。
當(dāng)轉(zhuǎn)速給定后,即可采用調(diào)節(jié)電位器輸出模擬量送給Atmega16的A/D模塊。系統(tǒng)中的LED用于顯示轉(zhuǎn)換速等信息,鍵盤用于設(shè)定各參量(如方向等)。其控制結(jié)構(gòu)框圖如圖2所示。
4.1 PWM控制
AVR的T/C1除具有定時(shí)、計(jì)數(shù)、輸入捕捉和輸出比較功能外,還可構(gòu)成兩個(gè)脈沖寬度調(diào)制PWM輸出通道。由于經(jīng)緩沖的PWM輸出可驅(qū)動(dòng)電機(jī),且其轉(zhuǎn)速正比于OCR1A或OCR1B寄存器的內(nèi)容。因此,可以利用OCR1A輸出PWM波,再將該信號(hào)與各路相輸出信號(hào)相與后輸出,從而實(shí)現(xiàn)控制各路相信號(hào)以及低速調(diào)速之目的。
圖2
4.2 高速單脈沖控制
采用高速單脈沖控制方式時(shí),可使關(guān)斷角保持不變,從而使開通角在較寬的范圍內(nèi)進(jìn)行調(diào)節(jié),最終實(shí)現(xiàn)高速高速。由于AVR系列單片機(jī)具有輸入捕捉功能,因此可將PIA或PIB信號(hào)送給ICP腳,然后讓ICP1寄存器首先捕捉脈沖上升沿發(fā)生的時(shí)間,接著再捕捉下一次上升沿發(fā)生的時(shí)間,然后用這段時(shí)間除以相間隔的角度15°就可得到標(biāo)準(zhǔn)單脈沖數(shù)。當(dāng)然,由于中斷處理需要一定的時(shí)間,所以要通過軟件修正。這樣就可以高精度控制高速運(yùn)轉(zhuǎn)時(shí)的開通角和關(guān)斷角,從而實(shí)現(xiàn)高速單脈沖的軟件控制。
5 軟件示例
5.1 相輸出子程序示例
;正轉(zhuǎn)相輸出
.def xiin=r16 ;相輸入信號(hào)寄存器
;====================
xinoutz:in xiin,pind ;將相輸入信號(hào)送給寄存器
andi xiin,$03 ;相與只剩下相信號(hào)
cpi xiin,$01 ;是否da輸出
brbc 1,daout ;相等,da輸出
cpi xiin,$03 ;是否ab輸出
brbc 1,about ;相等,ab輸出
cpi xiin,$02 ;是否bc輸出
brbc 1,bcout ;相等,bc輸出
cpi xiin,$00 ;是否cd輸出
brbc 1,cdout ;相等,cd輸出
;====================
;反轉(zhuǎn)相輸出
;====================
xinoutf:in xiin,pind ;將相輸入信號(hào)送給寄存器
andi xiin,$00 ;相與只剩下相信號(hào)
cpi xiin,$01 ;是否da輸出
brbc 1,daout ;相等,da輸出
cpi xiin,$02 ;是否ab輸出
brbc 1,about ;相等,ab輸出
cpi xiin,$03 ;是否bc輸出
brbc 1,bcout ;相等,bc輸出
cpi xiin,$01 ;是否cd輸出
brbc 1,cdout ;相等,cd輸出
;====================
daout:sbic pinb,4 ;開通a相低電平有效
sbic pinb,7 ;開通d相?
sbis pinb,5
sbis pinb,6
ret
about:sbic pinb,4 ;開通a相
sbic pinb,6 ;開通b相
sbis pinb,5
sbis pinb,7
ret
bcout:sbic pinb,5 ;開通c相
sbic pinb,6 ;開通b相?
sbis pinb,7
sbis pinb,4
ret
cdout:sbic pinb,5 ;開通c相
sbis pinb,7 ;開通d相?
sbis pinb,4
sbis pinb,6
ret
5.2 速度采集顯示子程序示例
.include "m16def.inc"
.org $001c
rjmp adcint
.def channel=r29 ;模擬通道號(hào)
.def lresult=r2 ;轉(zhuǎn)換低字節(jié)
.def hresult=r3 ;轉(zhuǎn)換高字節(jié)
.def temp=r16
.equ sample=$0060 ;采樣數(shù)據(jù)1緩沖區(qū)首地址
.equ sample2=$0063 ;采樣數(shù)據(jù)2緩沖區(qū)首地址
.def round=r17 ;顯示回合計(jì)數(shù)器
.def outer=r19 ;存放外環(huán)計(jì)數(shù)器
.def inner=r18 ;存放內(nèi)環(huán)計(jì)數(shù)器
.equ slabel=$0400 ;字符碼首地址
.def hxian=r2 ;存放預(yù)顯示高字節(jié)
.def lxian=r1 ;存放預(yù)顯示低字節(jié)
;采集顯示速度占用系統(tǒng)資源r1r2s3r4r16,$60~$69
adcin:ldi channel,$04 ;從4通道開始
out admux,channel
ldi r16,$ee ;自由運(yùn)行方式
out adcsr,r16 ;啟動(dòng)轉(zhuǎn)換
clr xh ;建立sram指針
ldi x1,$60
inc channel ;通道號(hào)增1
out admux,channel ;選通道4
sbi adcsr,3 ;開啟ad中斷
ldi r28,$03 ;轉(zhuǎn)換次數(shù)
adhere:rjmp adhere ;等待中斷
adcint:in lresult,adcl ;讀轉(zhuǎn)換結(jié)果
in hresult,adch
st x+,lresult
dec r28
brne adnextc
rjmp adret
adnextc:ldi r28,$03 ;轉(zhuǎn)換次數(shù)
inc channel ;通道號(hào)加1
out admux,channel ;選下一個(gè)通道
cpi x1,$70 ;轉(zhuǎn)換的是通道7嗎
brme adret ;否,返回
cbi ADCSR,7 ;是,停止轉(zhuǎn)換
adret:reti
6 結(jié)束語
實(shí)際使用證明:Atmel公司出品的Atmega16系列單片機(jī)具有處理速度快,內(nèi)部外設(shè)功能模塊豐富等優(yōu)點(diǎn),是一種性價(jià)比較高的單片機(jī),特別適用于電池供電、便攜式以及電機(jī)驅(qū)動(dòng)等系統(tǒng)。本文的開關(guān)磁阻電機(jī)充分利用了該單片機(jī)豐富的內(nèi)部外設(shè)模塊,因而簡化了外圍電路,大大提高了性價(jià)比。