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