侯曉方+陶寶峰
摘 要: 傳統(tǒng)的數(shù)控機床步進電機控制模塊無法有效協(xié)調(diào)步進電機速度參數(shù)間的關(guān)系,導(dǎo)致其控制精度不高。為此,設(shè)計數(shù)控機床步進電機高精度控制模塊。模塊中的STM32F103微控制器根據(jù)綜合線性速度控制函數(shù),給出步進電機運行流程的控制指令。FPGA根據(jù)控制指令生成控制信號,傳輸給步進電機驅(qū)動器。步進電機驅(qū)動器根據(jù)控制信號中控制位置的排序,依次將控制電流導(dǎo)入步進電機,實現(xiàn)模塊對被控對象的準確控制。光柵傳感器對步進電機的運行流程進行采集,F(xiàn)PGA通過分析采集信息,給出步進電機的具體運行成果并傳輸給STM32F103微控制器,實現(xiàn)STM32F103微控制器對步進電機運行流程的實時監(jiān)控和修正。實驗結(jié)果表明,所設(shè)計的模塊具有優(yōu)良的響應(yīng)效果、控制誤差和控制成果,可實現(xiàn)高精度控制。
關(guān)鍵詞: 數(shù)控機床; 步進電機; STM32F103; 控制模塊
中圖分類號: TN876.3?34; TH39 文獻標識碼: A 文章編號: 1004?373X(2017)08?0129?05
Design of stepper motor high?precision control module in numerical control machine tool
HOU Xiaofang, TAO Baofeng
(1. Shaanxi Institute of Technology, Xian 710300, China; 2. Northwest University of Political Science and Law, Xian 710063, China)
Abstract: The traditional stepper motor control module of the numerical control machine tool can't effectively coordinate the relationship among the speed parameters of the stepper motor, and has low control precision. Therefore, the stepper motor high?precision control module of the numerical control machine tool was designed. The STM32F103 in the module gives the control instruction of the stepper motor′s running process according to the synthetical linear speed control function. The FPGA generates the control signal according to the control instrument, and transmits it to the stepper motor driver. The stepper motor driver imports the control current into the stepper motor according to the sorting of control positions in the control signal. The accurate control of the controlled object is implemented with the module. The grating sensor acquires the running process of the stepper motor. The FPGA gives out the specific running result of the stepper motor by analysis of the collected information, and transmits it to STM32F103. The real?time monitoring and correction of the running process of the stepper motor are realized with STM32F103. The experimental results show that the designed module has good response effect, control error and control result, and can realize the high?precision control.
Keywords: numerical control machine tool; stepper motor; STM32F103; control module
0 引 言
步進電機是一種能夠?qū)崿F(xiàn)控制信號數(shù)模轉(zhuǎn)換的控制設(shè)備,與其他控制設(shè)備相比,其擁有控制誤差不累計、魯棒性強等優(yōu)點。在強調(diào)自動化辦公的當今社會中,步進電機被廣泛應(yīng)用于數(shù)控、計量、器械等領(lǐng)域[1?3]。在數(shù)控領(lǐng)域中,步進電機以其穩(wěn)定的控制水平成為數(shù)控機床中的核心控制設(shè)備。但在傳統(tǒng)的數(shù)控機床步進電機控制模塊無法有效協(xié)調(diào)步進電機速度參數(shù)間的關(guān)系,控制精度不高?,F(xiàn)如今,數(shù)控領(lǐng)域?qū)?shù)控機床中步進電機高精度控制模塊,產(chǎn)生了較大的需求[4?6]。
控制精度包括響應(yīng)效果、控制誤差和控制成果,傳統(tǒng)的數(shù)控機床步進電機控制模塊均無法完全實現(xiàn)高精度控制。如文獻[7]基于電磁鐵設(shè)計數(shù)控機床步進電機控制模塊,其將電磁鐵產(chǎn)生的電磁扭矩作為控制媒介,實現(xiàn)對被控對象的有效控制。但電磁鐵易受干擾,將導(dǎo)致整個模塊的魯棒性被破壞,故其響應(yīng)效果、控制誤差和控制成果均不好。文獻[8]基于單片機設(shè)計數(shù)控機床步進電機控制模塊,該模塊利用單片機較為強大的控制性能,結(jié)合部分外接電路,實現(xiàn)了對被控對象的有效控制。其響應(yīng)效果和控制誤差較好,但在多線程控制下單片機耗能較大,導(dǎo)致控制信號不穩(wěn)定,故模塊的控制成果不好。文獻[9]設(shè)計基于電子電路的數(shù)控機床步進電機控制模塊,電子電路產(chǎn)生的控制信號可直接被步進電機所使用,有效提高了模塊的控制精度。但該模塊更改控制策略的步驟非常復(fù)雜,故只適用于控制策略較為穩(wěn)定的被控對象。文獻[10]設(shè)計基于可編程邏輯控制器的數(shù)控機床步進電機控制模塊,可編程邏輯控制器的本質(zhì)就是工業(yè)計算機,其價格便宜、使用簡單,具有較強的實用性。在控制工作中,可編程邏輯控制器用其輸出的方形脈沖信息對步進電機的速度進行控制,具有較高的響應(yīng)效果和控制成果,但該模塊的控制誤差不易控制。
根據(jù)上述內(nèi)容可知,若想使數(shù)控機床步進電機控制模塊實現(xiàn)高精度控制,需要選擇性能高、成本低的控制器,并結(jié)合特定方法有效協(xié)調(diào)步進電機的速度關(guān)系。現(xiàn)基于STM32F103微控制器和綜合線性速度控制函數(shù),設(shè)計數(shù)控機床步進電機高精度控制模塊。
1 數(shù)控機床中的步進電機高精度控制模塊設(shè)計
1.1 模塊整體方案設(shè)計
所設(shè)計的數(shù)控機床步進電機高精度控制模塊采用STM32F103微控制器作為其硬件控制核心,并結(jié)合綜合線性速度控制函數(shù),提高模塊響應(yīng)效果和控制成果,縮減控制誤差,最終實現(xiàn)高精度控制。圖1為模塊硬件結(jié)構(gòu)圖。
圖1 模塊硬件結(jié)構(gòu)圖
由圖1可知,控制工作開始后,STM32F103微控制器將給出控制步進電機運行流程的控制指令,該指令的實施由現(xiàn)場可編程門陣列(Field?Programmable Gate Array,F(xiàn)PGA)實現(xiàn)。FPGA根據(jù)指令生成控制信號,對步進電機的初始化和速度進行控制。STM32F103微控制器也將對FPGA給出的步進電機運行狀況信息進行接收和顯示。
由于在實際應(yīng)用中,數(shù)控機床中的步進電機往往不止一臺,因而,所設(shè)計的數(shù)控機床步進電機高精度控制模塊選用FPGA的一項重要因素就是:FPGA能夠?qū)Χ嗯_數(shù)控機床實施同時控制,并可以對控制指令進行精準分配。這對提高模塊響應(yīng)效果、縮減模塊控制誤差具有決定性作用。
由于步進電機只有在驅(qū)動器存在的情況下才能正常運行,故FPGA與步進電機并非直接相連。FPGA先將控制信號傳輸給步進電機驅(qū)動器,步進電機驅(qū)動器根據(jù)控制信號中控制位置的排序,依次將步進電機所需的控制電流導(dǎo)入步進電機,以實現(xiàn)對被控對象的準確控制。在所設(shè)計的數(shù)控機床步進電機高精度控制模塊中,光柵傳感器的作用是對步進電機的運行流程進行采集。其將所采集到的信息傳輸給FPGA,F(xiàn)PGA對信息內(nèi)容進行判斷,得出步進電機的具體運行結(jié)果,并將其傳輸給STM32F103微控制器,實現(xiàn)STM32F103微控制器對步進電機運行流程的實時監(jiān)控和修正。
1.2 STM32F103微控制器設(shè)計
STM32F103微控制器是一款對8位單片機進行優(yōu)化后產(chǎn)生的32位控制器,其價格便宜、便于攜帶,并擁有很強的控制能力,在運算速度和轉(zhuǎn)換效率上比8位單片機有很大提升。STM32F103微控制器擁有低耗、高兼容性和高通信能力等優(yōu)點,其電壓范圍為[2.0 V,3.6 V],通常使用3.3 V電源供電。
STM32F103微控制器給用戶提供了三個工作模塊,分別是標準工作模塊、節(jié)能工作模塊和休眠工作模塊,用戶可根據(jù)自身控制需求選用最適合的工作模塊。其還擁有多種類型的通信接口,最大傳輸頻率為70 MHz,可進行多方信號的同時、快速傳輸。
在STM32F103微控制器中,其最重要的功能電路是晶振電路和電源電路,如圖2、圖3所示。
由圖2可知,STM32F103微控制器最多可連接兩個晶振電路,分別為其提供高速標準計時和低速精準計時,晶振Y的規(guī)格為10 MHz。電容C1和C2的主要功能是對晶振Y進行激勵。
由圖3可知,電源電路為STM32F103微控制器提供了三種供能模式,分別是外接蓄電池供能、數(shù)據(jù)傳輸接口供能以及計算機軟件接口供能。電容C1和C4的規(guī)格為0.1 μF,C2,C3的規(guī)格是10 μF??紤]到電路中的電能損失,電源電路所提供的電能是5 V,故需要對電源電路的電壓進行轉(zhuǎn)換,所使用的轉(zhuǎn)換器是LT1117穩(wěn)壓管。
1.3 FPGA設(shè)計
所設(shè)計的數(shù)控機床步進電機高精度控制模塊選用的FPGA擁有210個引腳和148個輸入/輸出端口,其電源電壓的輸入范圍為[1.2 V,3.5 V],可在溫度為[0,90 ℃]的范圍下運行。FPGA擁有兩種工作模式,分別是內(nèi)部測試和分頻測試,其價格便宜、控制成果好,能夠?qū)崿F(xiàn)對步進電機的高精度控制。圖4為STM32F103微控制器與FPGA的接口連接圖。
由圖4可知,F(xiàn)PGA擁有5個輸入線接口和20個輸出門接口,微控制器的虛擬內(nèi)存用來進行控制指令地址的傳輸,線接口用來對控制指令進行重置、鎖定、編譯、寫入和只讀。門接口0~7可對8個步進電機進行同時控制。FPGA的內(nèi)部測試和分頻測試將相互結(jié)合使用,對STM32F103微控制器中控制指令進行信號轉(zhuǎn)換,F(xiàn)PGA輸出的控制信號格式為數(shù)字脈沖信號。
由于數(shù)控機床要求步進電機的運行流程必須包括初始化、加減速運轉(zhuǎn)、穩(wěn)定運轉(zhuǎn)和休眠,故FPGA需要先對STM32F103微控制器中晶振電路的計時輸出進行分頻,再進行信號轉(zhuǎn)換。經(jīng)轉(zhuǎn)換后獲取的控制信號將傳輸給步進電機驅(qū)動器進行進一步操作。
1.4 步進電機驅(qū)動器設(shè)計
由于FPGA給出的控制信號能量不高,無法喚醒步進電機,故利用步進電機驅(qū)動器對FPGA的控制信號進行放大。步進電機驅(qū)動器根據(jù)控制信號中控制位置的排序,依次將控制電流導(dǎo)入步進電機,保證數(shù)控機床中步進電機的正常運行。圖5為步進電機驅(qū)動器電路示意圖。由圖5可知,數(shù)控機床步進電機高精度控制模塊所選用的步進電機驅(qū)動器型號是雙相細分驅(qū)動器,這種型號的步進電機驅(qū)動器擁有精度高、噪音小、便于攜帶的優(yōu)點。電路中的時鐘接口選用的是光電耦合信號控制器,有效縮減了設(shè)計成本,并且操作更為簡單。當12 V電源的輸出是穩(wěn)定電流時,步進電機將進行反相轉(zhuǎn)動運行;無電流輸出時,步進電機則進行正向轉(zhuǎn)動運行。
步進電機驅(qū)動器對FPGA控制信號的放大工作是循環(huán)進行的,分區(qū)接口與方向控制信號器相接,作用是對控制信號中控制位置的排序進行依次讀取與準確輸送。接口1與接口2則與數(shù)控機床中的步進電機直接相連,最終實現(xiàn)數(shù)控機床步進電機高精度控制模塊對被控對象的準確控制。
2 步進電機高精度控制模塊軟件設(shè)計
在傳統(tǒng)的數(shù)控機床步進電機控制模塊中,通常選用直線或拋物線對步進電機進行加減速控制。其中,直線速度控制函數(shù)的運算量小、效率高,所以模塊對被控對象的響應(yīng)效果較好,但控制誤差和控制成果不高。而拋物線控制函數(shù)的運算量大,模塊的控制誤差較小,響應(yīng)效果卻不好。為此,所設(shè)計的數(shù)控機床步進電機高精度控制模塊選用了綜合線性速度控制函數(shù),將直線和拋物線的優(yōu)點結(jié)合起來,摒棄二者缺點,實現(xiàn)模塊對被控對象的高精度控制。
當步進電機處于加速運行時,其加速函數(shù)分為三個階段,依次為拋物線、直線、拋物線,則有:
式中:為直線加速度;為直線方程與坐標軸的交點位移;為拋物線斜率;為加速時間;為步進電機初始速度;和分別是第一次和第三次加速拋物線的參數(shù)。將步進電機加速拋物線的總參數(shù)設(shè)為,則:
此時,步進電機在直線、拋物線1和拋物線2的加速階段速度,,滿足如下關(guān)系式:
此時,三個加速階段所能獲取的控制指令數(shù)量為:
根據(jù)式(1)~式(5)可得,當STM32F103微控制器發(fā)出第個控制指令,該指令與三個加速階段中加速時間的關(guān)系式為:
通過調(diào)節(jié)式(6)中的各項參數(shù),能夠有效協(xié)調(diào)步進電機的速度關(guān)系,對模塊獲取優(yōu)良的響應(yīng)效果、控制誤差和控制成果,實現(xiàn)高精度控制具有一定的推動作用。
當步進電機處于減速運行時,其減速曲線和加速曲線是互為對稱的,運算方式與加速函數(shù)相近。
3 實驗分析
實驗利用對比方式對本文模塊、單片機控制模塊和可編程邏輯控制器控制模塊的響應(yīng)效果、控制誤差和控制成果進行分析,確定本文模塊能否較好地實現(xiàn)對被控對象的高精度控制。在數(shù)控機床中,其主要被控對象為機器轉(zhuǎn)速和位移,令三個模塊在同等條件下對實驗機器的轉(zhuǎn)速和位移進行控制。
3.1 響應(yīng)效果分析
將本文模塊、單片機控制模塊和可編程邏輯控制器控制模塊對實驗機器轉(zhuǎn)速、位移的響應(yīng)時間繪制成曲線,如圖6、圖7所示。響應(yīng)時間越短、越穩(wěn)定,則模塊的響應(yīng)效果越好。由圖6、圖7可知,各數(shù)控機床步進電機控制模塊對機器轉(zhuǎn)速的響應(yīng)效果要好于對機器位移的響應(yīng)效果,差值在3 s左右。本文模塊的響應(yīng)時間曲線要明顯低于其他兩個模塊的響應(yīng)時間曲線,且曲線的穩(wěn)定性更強。由此可得出,本文模塊具有優(yōu)良的響應(yīng)效果。
3.2 控制誤差分析
各數(shù)控機床步進電機控制模塊的控制誤差是根據(jù)步進電機的數(shù)據(jù)轉(zhuǎn)矩確定出來的,這是因為轉(zhuǎn)矩的不確定性較大,能夠?qū)ζ溥M行準確控制的模塊,模塊的控制誤差必然較小。
在實驗給出的控制指令中,步進電機的輸出轉(zhuǎn)矩應(yīng)為1.8 kg·cm。在步進電機頻率不斷增加的情況下,其輸出轉(zhuǎn)矩越貼近該數(shù)值,證明模塊的控制誤差越小。實驗結(jié)果如圖8所示。
由圖8可知,在三個模塊中,本文模塊的步進電機輸出曲線與控制指令中的1.8 kg·cm轉(zhuǎn)矩標準最為接近。由此可得出,本文模塊具有優(yōu)良的控制誤差。
3.3 控制成果分析
數(shù)控機床步進電機控制模塊的控制成果是指,在模塊控制下由實驗機器產(chǎn)生的加工元件。加工元件的規(guī)格越接近控制指令的目標規(guī)格,則模塊的控制成果越好。根據(jù)上述定義,繪制出控制成果曲線,如圖9所示。
由圖9可知,本文模塊的控制成果范圍高達[97.6%,99.8%],較其他兩個模塊而言,本文模塊具有優(yōu)良的控制成果。
4 結(jié) 論
本文設(shè)計數(shù)控機床步進電機高精度控制模塊,其采用STM32F103微控制器作為硬件控制核心,并結(jié)合綜合線性速度控制函數(shù)、現(xiàn)場可編程門陣列、步進電機驅(qū)動器和光柵傳感器,以提高模塊響應(yīng)效果和控制成果、縮減控制誤差為設(shè)計目標,最終實現(xiàn)模塊的高精度控制。實驗將本文模塊與單片機控制模塊,以及可編程邏輯控制器控制模塊的響應(yīng)效果、控制誤差、控制成果進行對比。實驗結(jié)果表明,所設(shè)計的模塊具有優(yōu)良的響應(yīng)效果、控制誤差和控制成果,可較好地實現(xiàn)模塊對被控對象的高精度控制。
參考文獻
[1] 王寬,趙巍,張翔宇.基于Mach3的教學(xué)型五軸數(shù)控機床控制系統(tǒng)設(shè)計[J].天津職業(yè)技術(shù)師范大學(xué)學(xué)報,2016,26(1):37?40.
[2] 徐正平,許永森.S3C2440A在步進電機控制器人機交互中的應(yīng)用[J].液晶與顯示,2015,30(1):70?76.
[3] 吳康,劉景林.多通道步進電機控制系統(tǒng)上位機設(shè)計[J].微電機,2015,48(5):66?69.
[4] 徐偉龍,顧金良,郭睿,等.基于PSD的步進電機控制系統(tǒng)[J].傳感器與微系統(tǒng),2015,34(7):76?78.
[5] 李愛竹,徐柳娟.基于EPM240T100和TB6560的步進電機控制系統(tǒng)[J].機電工程,2014,31(5):671?675.
[6] 潘齊欣,唐型基.基于步進電機控制的仿人機械手臂抓取移動系統(tǒng)設(shè)計[J].科技通報,2016,32(3):118?121.
[7] 李欣,劉景林,劉洋.多通道集成化步進電機控制器設(shè)計[J].微電機,2014,47(3):52?55.
[8] 白玉,劉冰,李智.基于Cortex?M3處理器的步進電機控制系統(tǒng)[J].電子科技,2014,27(10):43?45.
[9] 王帥夫,劉景林.基于大腦情感學(xué)習(xí)模型的步進電機控制系統(tǒng)[J].吉林大學(xué)學(xué)報(工學(xué)版),2014,44(3):765?770.
[10] 徐錕,黨幼云,張峰.四自由度機械手多細分步進電機驅(qū)動器的設(shè)計[J].西安工程大學(xué)學(xué)報,2015,29(6):714?719.