楊 斐,劉景林,董亮輝
(西北工業(yè)大學(xué),陜西西安710072)
本文設(shè)計(jì)的兩相混合式步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)器用于一種高精度、快響應(yīng)對(duì)日定向伺服系統(tǒng),該伺服系統(tǒng)結(jié)構(gòu)組成如圖1所示。驅(qū)動(dòng)器根據(jù)位置誤差傳感信號(hào)分別驅(qū)動(dòng)系統(tǒng)水平面和俯仰面步進(jìn)電動(dòng)機(jī),帶動(dòng)傳動(dòng)裝置,使太陽能帆板和太陽光線保持垂直,以達(dá)到最高的太陽利用率。
圖1 伺服系統(tǒng)結(jié)構(gòu)組成圖
為了滿足該伺服系統(tǒng)的高精度要求,改善步進(jìn)電動(dòng)機(jī)低速運(yùn)行時(shí)的轉(zhuǎn)矩脈動(dòng)、振蕩及噪聲,本文采用了細(xì)分驅(qū)動(dòng)技術(shù);但當(dāng)系統(tǒng)運(yùn)行在高細(xì)分狀態(tài)下時(shí),系統(tǒng)的響應(yīng)性能有所損失。為了同時(shí)滿足該伺服系統(tǒng)的快響應(yīng)要求,本文提出了動(dòng)態(tài)多細(xì)分調(diào)節(jié)的控制策略:當(dāng)伺服系統(tǒng)的位置誤差較大時(shí),步進(jìn)電動(dòng)機(jī)運(yùn)行在低細(xì)分或整步狀態(tài),實(shí)現(xiàn)伺服系統(tǒng)的快速跟蹤;當(dāng)位置誤差減小時(shí),增加步進(jìn)電動(dòng)機(jī)的細(xì)分?jǐn)?shù),保證跟蹤精度。在步進(jìn)電動(dòng)機(jī)動(dòng)態(tài)運(yùn)行過程中,為了避免細(xì)分?jǐn)?shù)切換造成的失步現(xiàn)象,本文采用了自適應(yīng)細(xì)分控制方法,使得步進(jìn)電動(dòng)機(jī)在細(xì)分切換的過程中保持轉(zhuǎn)速恒定,從而實(shí)現(xiàn)了步進(jìn)電動(dòng)機(jī)動(dòng)態(tài)運(yùn)行時(shí)細(xì)分?jǐn)?shù)的穩(wěn)定調(diào)節(jié)。
步進(jìn)電動(dòng)機(jī)的細(xì)分控制從本質(zhì)上講是對(duì)步進(jìn)電動(dòng)機(jī)勵(lì)磁繞組的電流進(jìn)行控制,使得步進(jìn)電動(dòng)機(jī)內(nèi)部合成磁場為均勻的、離散化的圓形旋轉(zhuǎn)磁場,實(shí)現(xiàn)步進(jìn)電動(dòng)機(jī)步距角的細(xì)分[1]。對(duì)于兩相混合式步進(jìn)電動(dòng)機(jī),向A、B兩相分別通以幅值相同、相位相差的正弦波電流時(shí),其合成電流矢量與合成磁場矢量將在空間做幅值恒定的旋轉(zhuǎn)運(yùn)動(dòng)。此時(shí),A、B兩相繞組的電流:
式中:im為電機(jī)的額定電流峰值;α為A、B兩相合成磁場矢量與A相磁場矢量的夾角。
按照傳統(tǒng)的控制方式,步進(jìn)電動(dòng)機(jī)運(yùn)行過程中細(xì)分狀態(tài)不發(fā)生變化,對(duì)于高精度、快響應(yīng)對(duì)日定向跟蹤伺服系統(tǒng),應(yīng)預(yù)先設(shè)定步進(jìn)電動(dòng)機(jī)工作在最高細(xì)分狀態(tài)以保證系統(tǒng)的跟蹤精度。由步進(jìn)電動(dòng)機(jī)細(xì)分驅(qū)動(dòng)時(shí)的轉(zhuǎn)速公式可知,細(xì)分狀態(tài)不變時(shí),只能通過改變驅(qū)動(dòng)脈沖的頻率來控制電機(jī)的轉(zhuǎn)速。當(dāng)位置誤差較大時(shí),需增大驅(qū)動(dòng)脈沖頻率、提高電機(jī)的轉(zhuǎn)速以滿足系統(tǒng)的快響應(yīng)要求。但此時(shí)步進(jìn)電動(dòng)機(jī)運(yùn)行在高細(xì)分、高驅(qū)動(dòng)脈沖頻率情形下,將出現(xiàn)繞組相電流波形不對(duì)稱現(xiàn)象,有可能造成步進(jìn)電動(dòng)機(jī)失步,降低了系統(tǒng)的可靠性。另外,高頻脈沖驅(qū)動(dòng)條件下開關(guān)管的損耗也相應(yīng)增加,電機(jī)發(fā)熱嚴(yán)重。
為了解決上述問題,本文提出了動(dòng)態(tài)多細(xì)分控制策略:當(dāng)位置誤差較大時(shí),步進(jìn)電動(dòng)機(jī)工作在整步狀態(tài)以提高系統(tǒng)的響應(yīng)速度。這樣一來,在相同的脈沖頻率下,整步運(yùn)行提升了步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)速,使得位置誤差迅速減小。隨著位置誤差的減小,逐步提高步進(jìn)電動(dòng)機(jī)的細(xì)分?jǐn)?shù)至最大細(xì)分?jǐn)?shù)128,以滿足跟蹤系統(tǒng)高精度要求。步進(jìn)電動(dòng)機(jī)的細(xì)分狀態(tài)、驅(qū)動(dòng)脈沖頻率和轉(zhuǎn)速隨位置誤差變化的關(guān)系如圖2所示。
圖2 動(dòng)態(tài)多細(xì)分調(diào)節(jié)示意圖
細(xì)分驅(qū)動(dòng)時(shí),步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)速n和細(xì)分?jǐn)?shù)S滿足以下關(guān)系:
式中:ZR為轉(zhuǎn)子齒數(shù),由電機(jī)結(jié)構(gòu)決定;N為電機(jī)運(yùn)行拍數(shù),細(xì)分驅(qū)動(dòng)時(shí)N為定值。在細(xì)分狀態(tài)動(dòng)態(tài)切換的過程中,細(xì)分?jǐn)?shù)S成倍變化,若驅(qū)動(dòng)脈沖信號(hào)頻率保持不變,步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)速將發(fā)生突變,造成步進(jìn)電動(dòng)機(jī)失步,影響伺服系統(tǒng)的穩(wěn)定性。為了解決上述問題,本文采用自適應(yīng)細(xì)分技術(shù),在細(xì)分切換時(shí)相應(yīng)地改變步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)脈沖信號(hào)的頻率f:細(xì)分?jǐn)?shù)變?yōu)樵瓉淼腒或1/K時(shí),用于驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)的脈沖頻率f應(yīng)相應(yīng)地改變?yōu)樵瓉淼腒或1/K[2]。具體來講,當(dāng)細(xì)分狀態(tài)由整步變?yōu)榘氩綍r(shí),歩距角減少了一半,故步進(jìn)電動(dòng)機(jī)相應(yīng)的驅(qū)動(dòng)脈沖應(yīng)變?yōu)樵瓉淼?倍,使得細(xì)分?jǐn)?shù)變化時(shí)電機(jī)轉(zhuǎn)速保持恒定。
本文設(shè)計(jì)的兩相混合式步進(jìn)電動(dòng)機(jī)動(dòng)態(tài)多細(xì)分調(diào)節(jié)驅(qū)動(dòng)系統(tǒng)的硬件組成如圖3所示,包括控制信號(hào)輸入單元、控制器單元、電源轉(zhuǎn)換單元以及功率驅(qū)動(dòng)單元。具有多種細(xì)分?jǐn)?shù)選擇,輸出電流可調(diào),自適應(yīng)定細(xì)分選擇等功能。
圖3 步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)系統(tǒng)結(jié)構(gòu)框圖
輸入單元輸入的控制信號(hào)有復(fù)位、起停、正反轉(zhuǎn)、誤差信號(hào)(用輸入脈沖信號(hào)的頻率表示誤差的大小)等??刂破鲉卧訟ltera公司的MAXⅡ系列型號(hào)為EPM570T100C3的CPLD器件為核心,配以晶振電路和JTAG接口,構(gòu)成控制器的最小系統(tǒng)。電源轉(zhuǎn)換單元將輸入的28 V直流電壓分別轉(zhuǎn)換成CPLD所需要的3.3 V電壓和D/A轉(zhuǎn)換器所需要的5 V電壓。
功率驅(qū)動(dòng)單元包含一個(gè)雙通道D/A轉(zhuǎn)換器和一個(gè)雙通道恒流驅(qū)動(dòng)芯片。D/A轉(zhuǎn)換器選用PBM3960芯片,分時(shí)完成兩路8位數(shù)字信號(hào)到模擬信號(hào)的轉(zhuǎn)換[3]。驅(qū)動(dòng)單元以PBL3771芯片為核心,該芯片內(nèi)部集成了時(shí)鐘振蕩器、比較器、觸發(fā)器以及兩個(gè)內(nèi)部帶續(xù)流二極管的H橋,應(yīng)用固定關(guān)斷時(shí)間的PWM恒流控制方法,控制兩相混合式步進(jìn)電動(dòng)機(jī)A、B兩相電流的大小和方向[4]。
本文應(yīng)用VHDL硬件描述語言編寫了軟件程序。CPLD控制器首先根據(jù)當(dāng)前系統(tǒng)誤差值解算出當(dāng)前系統(tǒng)的細(xì)分?jǐn)?shù)、驅(qū)動(dòng)脈沖頻率和A、B兩相電流數(shù)據(jù)的地址值,然后通過正弦波查表的方法計(jì)算出兩相電流的數(shù)據(jù)值,最后在驅(qū)動(dòng)脈沖的正半周期,發(fā)送相應(yīng)的D/A控制信號(hào)分時(shí)進(jìn)行A、B兩相的D/A轉(zhuǎn)換。本文采用模塊化設(shè)計(jì)方法將軟件內(nèi)部分為3個(gè)模塊:自適應(yīng)細(xì)分模塊、D/A轉(zhuǎn)換控制模塊以及正弦波查表輸出模塊,其模塊組成如圖4所示。
圖4 軟件內(nèi)部模塊框圖
自適應(yīng)細(xì)分模塊本質(zhì)上就是一個(gè)頻率變換模塊。當(dāng)輸入誤差的大小(本文用方波信號(hào)cp_in的頻率大小來表示誤差信號(hào)的值)隸屬于不同數(shù)值范圍時(shí),相應(yīng)地改變步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)系統(tǒng)的細(xì)分?jǐn)?shù)choice和驅(qū)動(dòng)脈沖信號(hào)cp_out的頻率,以實(shí)現(xiàn)自適應(yīng)細(xì)分。
圖5為自適應(yīng)細(xì)分模塊程序在QuartusⅡ9.0軟件運(yùn)行環(huán)境中的時(shí)序仿真結(jié)果,系統(tǒng)前半部分運(yùn)行在64細(xì)分狀態(tài),后半部分選擇128細(xì)分。從圖5可知,當(dāng)細(xì)分?jǐn)?shù)由64變?yōu)?28時(shí),輸出脈沖信號(hào)cp_out的頻率由原先輸入脈沖信號(hào)cp_in頻率的一半變?yōu)榕c輸入脈沖信號(hào)相同,實(shí)現(xiàn)了自適應(yīng)細(xì)分。
圖5 自適應(yīng)細(xì)分模塊時(shí)序仿真結(jié)果
該模塊根據(jù)當(dāng)前的細(xì)分?jǐn)?shù)和電機(jī)轉(zhuǎn)向設(shè)定值,計(jì)算出A、B兩相電流數(shù)據(jù)的地址值并應(yīng)用查表法計(jì)算出該地址所對(duì)應(yīng)的數(shù)據(jù)值。在本設(shè)計(jì)中,將0~π這1/2周期的正弦波的幅值離散化為256個(gè)數(shù)值 A0、A1~A255存入 CPLD 中,其中k=0,1,2,…,255。將這 256 個(gè)值分別和 00000000到11111111這256個(gè)地址一一對(duì)應(yīng)。與此同時(shí),在驅(qū)動(dòng)脈沖的正半周期,該模塊根據(jù)A0和A1的取值,按照DA控制的時(shí)序要求,分時(shí)輸出A、B兩相的電流值至PBM3960數(shù)模轉(zhuǎn)換芯片的D7~D0端口。
本文采用有限狀態(tài)機(jī)(Finite State Machine)的設(shè)計(jì)方法實(shí)現(xiàn)D/A轉(zhuǎn)換芯片的時(shí)序控制,該方法可實(shí)現(xiàn)有效、可靠的時(shí)序邏輯控制[5]。系統(tǒng)復(fù)位后進(jìn)入空閑狀態(tài)idle;當(dāng)輸出脈沖cp_out的上升沿到來時(shí)進(jìn)入A相D/A轉(zhuǎn)換的第一個(gè)狀態(tài)a_ready,該狀態(tài)為DA轉(zhuǎn)換數(shù)據(jù)的準(zhǔn)備階段;然后進(jìn)入A相的第二個(gè)狀態(tài)a_wr,A相開始進(jìn)行DA轉(zhuǎn)換,并保持一定的寬度,以滿足寫使能信號(hào)的要求;之后進(jìn)入a_hold狀態(tài),等待A相DA轉(zhuǎn)換完成。B相的時(shí)序與A相相同,D/A轉(zhuǎn)換狀態(tài)機(jī)轉(zhuǎn)化圖如圖6所示。
圖6 D/A轉(zhuǎn)換狀態(tài)機(jī)轉(zhuǎn)化圖
圖7為D/A轉(zhuǎn)換控制模塊軟件在QuartusⅡ9.0環(huán)境下的時(shí)序仿真結(jié)果。該模塊在驅(qū)動(dòng)脈沖信號(hào)cp_out的正半周期共輸出兩個(gè)寫信號(hào)(wr=0),分別對(duì)應(yīng)于a0=0、a1=0和a0=1、a1=0這兩個(gè)狀態(tài),完成了A、B兩相的D/A轉(zhuǎn)換。
圖7 D/A時(shí)序控制仿真結(jié)果
圖8給出了2細(xì)分、4細(xì)分、8細(xì)分和128細(xì)分狀態(tài)下A相繞組的電流波形。從實(shí)驗(yàn)結(jié)果可知,A相繞組電流波形為正弦包絡(luò)的階梯波,且細(xì)分?jǐn)?shù)越高,電流波形越接近正弦、電機(jī)轉(zhuǎn)矩波動(dòng)越小、運(yùn)行越平穩(wěn)。
圖8 A相電流繞組電流實(shí)驗(yàn)波形
本文以CPLD為控制核心,選用PBL3771步進(jìn)電動(dòng)機(jī)專用驅(qū)動(dòng)芯片,結(jié)合細(xì)分驅(qū)動(dòng)技術(shù)和自適應(yīng)細(xì)分方法,提出了步進(jìn)電動(dòng)機(jī)動(dòng)態(tài)多細(xì)分控制方法,并制作了一個(gè)兩相混合式步進(jìn)電動(dòng)機(jī)控制驅(qū)動(dòng)器。實(shí)驗(yàn)結(jié)果表明,該驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)功能正確、運(yùn)行可靠,可以實(shí)現(xiàn)步進(jìn)電動(dòng)機(jī)動(dòng)態(tài)運(yùn)行過成中細(xì)分?jǐn)?shù)的穩(wěn)定調(diào)節(jié),使得步進(jìn)電動(dòng)機(jī)在位置誤差大時(shí)采用整步或低細(xì)分?jǐn)?shù)運(yùn)行,帶動(dòng)傳動(dòng)裝置快速旋轉(zhuǎn),迅速減小誤差;誤差小時(shí),運(yùn)行在高細(xì)分狀態(tài),以較低的速度帶動(dòng)傳動(dòng)裝置,保證系統(tǒng)的跟蹤精度。
[1] 徐志躍,文招金,陳偉海.基于FPGA的兩相步進(jìn)電機(jī)細(xì)分驅(qū)動(dòng)電路設(shè)計(jì)[J].電氣傳動(dòng),2008,38(4):59-62.
[2] 張洪波.寬速自適應(yīng)細(xì)分步進(jìn)電機(jī)驅(qū)動(dòng)器研究[D].西安:西北工業(yè)大學(xué),2007.
[3] Ericsson.PBM3960-Microstepping controller/dual digital-toanalog converter[M].1999.
[4] Ericsson.PBL3771-Precision stepper motor driver,datasheet.1999.
[5] 姜立東.VHDL語言程序設(shè)計(jì)及應(yīng)用[M].北京:北京郵電大學(xué)出版社,2001.
[6] Altera Corporation.QuartusⅡintroduction[M].2008.
[7] Yang Mengda,Zhu Min.A research of a new technique on hardware implementation of control algorithm of high-subdivision for stepper motor[C]//5th IEEE Conference on Industrial Electronics and Applications.Taichung,2010.
[8] 劉寶廷,程樹康.步進(jìn)電動(dòng)機(jī)及其驅(qū)動(dòng)控制系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997:159-162.
[9] Altera Corporation.MAXⅡdevice handbook[M].2008