黃 英, 趙志杰, 郭太峰
(1.合肥工業(yè)大學(xué) 電子科學(xué)與應(yīng)用物理學(xué)院,安徽 合肥 230009;2.合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009)
步進(jìn)電機(jī)是一個(gè)完整的數(shù)字模擬轉(zhuǎn)化執(zhí)行元件。在非超載的情況下,電機(jī)轉(zhuǎn)速、停止位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即其接受數(shù)字模擬型號(hào)(電脈沖信號(hào))并轉(zhuǎn)化成與之相應(yīng)的角位移。輸入一個(gè)脈沖信號(hào)就能得到一個(gè)規(guī)定的位置增量,所以可通過(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)也可通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。加之步進(jìn)電機(jī)只有周期性的誤差而無(wú)累積誤差等特點(diǎn),在各控制領(lǐng)域步進(jìn)電機(jī)的使用越來(lái)越廣泛[1]。
針對(duì)中國(guó)重汽新款重卡車(chē)型研發(fā)的新款儀表,采用瑞士SONCEBOZ公司型號(hào)6403R200的新型步進(jìn)電機(jī),微控制器(MCU)采用Freescale的MC9S12XHZ512芯片。
6403R200是6400系列儀表用步進(jìn)電機(jī)的最新產(chǎn)品,采用無(wú)軸設(shè)計(jì)。工作電壓4.5~7.5V,驅(qū)動(dòng)電流20mA,在-50℃~105℃的惡劣環(huán)境下也能正常工作[2]。
MC9S12XHZ512是Freescale公司在2006年10月推出的一款汽車(chē)儀表組設(shè)計(jì)的16位微控制器(MCU),其中集成了一個(gè)薄膜晶體管(TFT)顯示驅(qū)動(dòng)。它負(fù)責(zé)處理關(guān)鍵應(yīng)用的智能控制功能,并驅(qū)動(dòng)汽車(chē)儀表板中的顯示屏。除了支持TFT顯示屏之外,該設(shè)備還可以驅(qū)動(dòng)模擬儀表、液晶顯示屏(LCD)和發(fā)光二極管(LED)顯示屏。S12XHZ512的主要特色包括512KB的片上閃存(是以前S12HZ產(chǎn)品的2倍)、LCD驅(qū)動(dòng)程序和儀表的步進(jìn)馬達(dá)驅(qū)動(dòng)模塊[3]。
本文主要利用S12XHZ512款中MCU所提供的12條道脈沖寬度調(diào)制(PWM)信道,采用軟件方式,實(shí)現(xiàn)儀表步進(jìn)電機(jī)的驅(qū)動(dòng)。
步進(jìn)電機(jī)的驅(qū)動(dòng)一般采用專(zhuān)用的驅(qū)動(dòng)芯片和直接使用MCU驅(qū)動(dòng)。專(zhuān)用芯片技術(shù)已相當(dāng)成熟,在控制電機(jī)能力方面有較好的表現(xiàn),具有一定的性?xún)r(jià)比和可操控性;用MCU驅(qū)動(dòng)步進(jìn)電機(jī)最簡(jiǎn)單的方式是整步驅(qū)動(dòng),即直接用單片機(jī)的IO口產(chǎn)生各相脈沖通過(guò)功率器件來(lái)控制電機(jī)運(yùn)轉(zhuǎn)。這種方法雖然簡(jiǎn)單,卻存在精度不高、相電流突變導(dǎo)致運(yùn)行不夠平穩(wěn)、有噪聲等缺點(diǎn)[4]。還有一種驅(qū)動(dòng)方式,即采用脈寬調(diào)制(PWM),此法適用于提供PWM模塊的MCU。
步進(jìn)電機(jī)的細(xì)分技術(shù)實(shí)質(zhì)上是一種電子阻尼技術(shù),其主要目的是減弱或消除步進(jìn)電機(jī)的低頻振動(dòng),提高電機(jī)的運(yùn)轉(zhuǎn)精度只是細(xì)分技術(shù)的一個(gè)附帶功能。以步進(jìn)角為1.8°的兩相混合式步進(jìn)電機(jī)為例,如果細(xì)分驅(qū)動(dòng)器設(shè)為4,那么電機(jī)的運(yùn)轉(zhuǎn)分辨率為每個(gè)脈沖0.45°[2,5]。
控制技術(shù)是能夠較為有效地降低步進(jìn)電機(jī)低頻運(yùn)轉(zhuǎn)時(shí)的振動(dòng)和噪聲的主要控制方法。不論是階梯型電壓驅(qū)動(dòng)或PWM控制,實(shí)質(zhì)都是在電機(jī)的勵(lì)磁繞組中產(chǎn)生階梯波電流,達(dá)到相電流的階梯化正弦控制,使每步的電機(jī)轉(zhuǎn)子合成力矩相同,產(chǎn)生一個(gè)微步旋轉(zhuǎn)磁場(chǎng),從而帶動(dòng)電機(jī)以更小的步距角轉(zhuǎn)動(dòng)。同時(shí)由于正弦波電流變化平滑,電機(jī)運(yùn)行更平穩(wěn)、噪聲更小。
(1)啟動(dòng)階段。通常電機(jī)在低于啟動(dòng)頻率下啟動(dòng),逐步增加脈沖頻率直至期望的最大速度,其變化速度要保證電機(jī)不發(fā)生失步,且加速時(shí)間盡量短。
(2)勻速階段。當(dāng)電機(jī)達(dá)到最大速度時(shí),不再加速,勻速運(yùn)行。
(3)停止階段。電機(jī)停止下來(lái)之前,必須從最高速度開(kāi)始,逐步減小脈沖頻率,直到一個(gè)能停止的速度(約等同于啟動(dòng)速率)。
所以,當(dāng)步進(jìn)電機(jī)在負(fù)載下轉(zhuǎn)動(dòng)時(shí),其運(yùn)動(dòng)過(guò)程為加速→勻速→減速。其速度變化可以近似表示為圖1所示的形式。
圖1 步進(jìn)電機(jī)加/減速過(guò)程中的頻率變化
簡(jiǎn)單加速算法就是用恒定的角加速度(即恒定的脈沖頻率)驅(qū)動(dòng)電機(jī),在此過(guò)程中,電機(jī)恒加速、恒減速,角速度是線性的一次函數(shù)。
在實(shí)際操作中,簡(jiǎn)單加速算法往往不盡如人意,運(yùn)行不夠平穩(wěn)、安靜,精度亦無(wú)保障,所以對(duì)簡(jiǎn)單加(減)速算法進(jìn)行改進(jìn),加速度按照一定的指數(shù)曲線變化(上升或下降),角速度為非線性的指數(shù)(二次)函數(shù)。
變加(減)速算法更有利于步進(jìn)電機(jī)運(yùn)行,可以提高機(jī)器的定位精度,也可以縮短加速過(guò)程,提高性能。
參考Motorola公司的專(zhuān)用步進(jìn)電機(jī)驅(qū)動(dòng)芯片MC33976的設(shè)計(jì)模型和理念,對(duì)步進(jìn)電機(jī)的加減速也采取24個(gè)步驟的形式。設(shè)第1步的脈沖發(fā)送次數(shù)為N1,第2步的脈沖次數(shù)為N2,依次類(lèi)推至。其中,,為使算法更簡(jiǎn)單易行,令Δ為常數(shù)[6]。
對(duì)于加速階段,多次試驗(yàn)后得到一組優(yōu)化數(shù)據(jù),再將此組數(shù)據(jù)反向即可應(yīng)用于減速階段。試驗(yàn)結(jié)果令人滿意,步進(jìn)電機(jī)角速度可以達(dá)到200°/s,噪音值≤30dB。
PWM(Pulse Width Modulation,簡(jiǎn)稱(chēng)PWM)脈寬調(diào)制,是一種開(kāi)關(guān)式穩(wěn)壓電源應(yīng)用,是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。
PWM技術(shù)是采用脈寬調(diào)制方式,即占空比不同的方波電壓產(chǎn)生不同的平均電流。
由于電機(jī)線圈電感對(duì)電流變化的阻礙作用,線圈中的電流波形圍繞平均值上下波動(dòng),當(dāng)PWM波的頻率足夠高時(shí),線圈中的電流可以看成為大小恒定電流。通過(guò)調(diào)節(jié)占空比可以產(chǎn)生不同的平均電流,如圖2所示。
圖2 PWM中電壓/電流波形對(duì)比
使用帶PWM模塊的單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī)可以獲得較高的細(xì)分精度,根據(jù)細(xì)分程度的要求,可以將正弦波分割成階梯狀,計(jì)算出各個(gè)位置所對(duì)應(yīng)的電流值[7]。
模仿步進(jìn)電機(jī)驅(qū)動(dòng)芯片MC33976的驅(qū)動(dòng)細(xì)分方式,將正弦波分割成階梯狀,以15°為細(xì)分單位,將單個(gè)脈沖細(xì)分為24個(gè)微步,采用相同的占空比[6-7],見(jiàn)表1所列和圖3所示。
表1 步進(jìn)電機(jī)細(xì)分后各細(xì)步電流值
圖3 步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)電流示意圖
取MCPER=900(MCPER為PWM的電機(jī)寄存器時(shí)間,經(jīng)過(guò)多次試驗(yàn)后選取值為900),則電機(jī)控制的占空比系數(shù)為:
每個(gè)PWM信號(hào)重復(fù)1次。
步進(jìn)電機(jī)是借助其同步轉(zhuǎn)矩而啟動(dòng)的,通過(guò)對(duì)定子上的各個(gè)線圈交替通電產(chǎn)生步進(jìn)式旋轉(zhuǎn)磁場(chǎng),從而帶動(dòng)轉(zhuǎn)子作步進(jìn)式旋轉(zhuǎn),相應(yīng)改變輸入電流的極性來(lái)改變步進(jìn)電機(jī)的旋轉(zhuǎn)方向。
在SCM的軟件設(shè)計(jì)上按照?qǐng)D4所示方式,可實(shí)現(xiàn)步進(jìn)電機(jī)的走步方案[8]。
圖4 軟件設(shè)計(jì)流程
(1)SinTb[]的計(jì)算方法:Sin#*900,再轉(zhuǎn)換為16進(jìn)制數(shù)字。
(2)CosTb[]的計(jì)算方法:Cos#*900,再轉(zhuǎn)換為16進(jìn)制數(shù)字,取值為 0,15°,…,330°,345°,360°。
如果轉(zhuǎn)動(dòng)步數(shù)>4 000時(shí),計(jì)數(shù)器清零,不操作。為使轉(zhuǎn)動(dòng)平穩(wěn),精度更高,進(jìn)行再次細(xì)分,即步數(shù)/2,分次走完全部的轉(zhuǎn)動(dòng)步數(shù)。
當(dāng)儀表掉電時(shí),一些重要參數(shù)需要利用儀表電路板上的大電容儲(chǔ)存的少量余電進(jìn)行工作,記錄到MCU的FLASH區(qū)或者片外EEPROM中。在下一次工作重啟后,再?gòu)倪@些儲(chǔ)存區(qū)讀出數(shù)據(jù)進(jìn)行相關(guān)工作,即步進(jìn)電機(jī)的回零。
本文直接將儲(chǔ)存區(qū)記錄的上一次工作狀態(tài)中當(dāng)前步Current Position賦值給步進(jìn)電機(jī)轉(zhuǎn)動(dòng)所需步數(shù),指定目標(biāo)步為0,轉(zhuǎn)動(dòng)方向恒為0。再以這些參數(shù)進(jìn)行上節(jié)中所述操作,即可回零,只有回零后才可以進(jìn)行后續(xù)的正常工作。
實(shí)驗(yàn)中的PWM輸出波形如圖5所示,不同占空比的脈沖輸出代表不同的電壓輸出,此脈沖可以等效成正弦波電壓輸出。
圖5 PWM輸出波形
本方案在圖6所示的實(shí)際汽車(chē)儀表上演示,在大范圍同方向轉(zhuǎn)動(dòng)以及往復(fù)轉(zhuǎn)動(dòng)效果良好,指針走動(dòng)平穩(wěn)快速,可達(dá)到400°/s,完全符合設(shè)計(jì)需求,并且定位精準(zhǔn),無(wú)失步現(xiàn)象。實(shí)驗(yàn)具體數(shù)據(jù)見(jiàn)表2所列。
圖6 實(shí)驗(yàn)用電動(dòng)汽車(chē)儀表
表2 PWM驅(qū)動(dòng)步進(jìn)電機(jī)走步實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果證實(shí),利用單片機(jī)自帶的PWM模塊來(lái)實(shí)現(xiàn)步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng),可以充分利用單片機(jī)的硬件資源,節(jié)省了D/A等器件,有利于降低產(chǎn)品成本,同時(shí)也使步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng)更容易。本文所采用的細(xì)分方法經(jīng)過(guò)實(shí)踐驗(yàn)證,在提高細(xì)分精度的同時(shí),使步進(jìn)電機(jī)的運(yùn)行更平穩(wěn),噪聲明顯降低,此法已成功運(yùn)用于某新款儀表中。
[1]舒大松.基于STC單片機(jī)的SPWM步進(jìn)電機(jī)細(xì)分控制研究與實(shí)現(xiàn)[J].制造業(yè)與自動(dòng)化,2011,33(3):92-102.
[2]Sonceboz Ltd.Slimline stepper motors 6403reference manual[EB/OL].[2011-10-02].http://www.sonceboz.com/medias/produits/fiches-techniques/6403-bd.pdf.
[3]Freescale Semiconductor Corporation.MC9S12XHZ512 datasheet[EB/OL].[2011-10-02].http://pdf.ic37.com/icasp/pdf-download.asp?id=4570478-217202.
[4]彭 礴,張明敏,林飛龍,等.基于AT89S52高精度步進(jìn)電機(jī)伺服控制系統(tǒng)設(shè)計(jì)[J].電子測(cè)量技術(shù),2011,34(3):49-53.
[5]黃 勇.一種基于TMS320F2812的五相電機(jī)細(xì)分驅(qū)動(dòng)方案[J].湖北民族學(xué)院學(xué)報(bào):自然科學(xué)版,2011,29(1):96-99.
[6]Freescale Semiconductor Corporation.MC33976Datasheet[EB/OL].[2011-10-02].http://pdf.ic37.com/icasp/pdfdownload.asp?id=4874451-114230.
[7]譚 曄,江 平.單變量均勻靜態(tài)奇數(shù)點(diǎn)細(xì)分格式的構(gòu)造和連續(xù)性分析[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2010,33(6):925-928.
[8]丁強(qiáng)強(qiáng),鮑遠(yuǎn)慧.基于CAN總線的汽車(chē)檢測(cè)線計(jì)算機(jī)控制系統(tǒng)[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2010,33(4):514-518.