数控机床中的步进电机高精度控制模块设计

侯晓方+陶宝峰



摘 要: 传统的数控机床步进电机控制模块无法有效协调步进电机速度参数间的关系,导致其控制精度不高。为此,设计数控机床步进电机高精度控制模块。模块中的STM32F103微控制器根据综合线性速度控制函数,给出步进电机运行流程的控制指令。FPGA根据控制指令生成控制信号,传输给步进电机驱动器。步进电机驱动器根据控制信号中控制位置的排序,依次将控制电流导入步进电机,实现模块对被控对象的准确控制。光栅传感器对步进电机的运行流程进行采集,FPGA通过分析采集信息,给出步进电机的具体运行成果并传输给STM32F103微控制器,实现STM32F103微控制器对步进电机运行流程的实时监控和修正。实验结果表明,所设计的模块具有优良的响应效果、控制误差和控制成果,可实现高精度控制。
关键词: 数控机床; 步进电机; 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 引 言
步进电机是一种能够实现控制信号数模转换的控制设备,与其他控制设备相比,其拥有控制误差不累计、鲁棒性强等优点。在强调自动化办公的当今社会中,步进电机被广泛应用于数控、计量、器械等领域[1?3]。在数控领域中,步进电机以其稳定的控制水平成为数控机床中的核心控制设备。但在传统的数控机床步进电机控制模块无法有效协调步进电机速度参数间的关系,控制精度不高。现如今,数控领域对数控机床中步进电机高精度控制模块,产生了较大的需求[4?6]。
控制精度包括响应效果、控制误差和控制成果,传统的数控机床步进电机控制模块均无法完全实现高精度控制。如文献[7]基于电磁铁设计数控机床步进电机控制模块,其将电磁铁产生的电磁扭矩作为控制媒介,实现对被控对象的有效控制。但电磁铁易受干扰,将导致整个模块的鲁棒性被破坏,故其响应效果、控制误差和控制成果均不好。文献[8]基于单片机设计数控机床步进电机控制模块,该模块利用单片机较为强大的控制性能,结合部分外接电路,实现了对被控对象的有效控制。其响应效果和控制误差较好,但在多线程控制下单片机耗能较大,导致控制信号不稳定,故模块的控制成果不好。文献[9]设计基于电子电路的数控机床步进电机控制模块,电子电路产生的控制信号可直接被步进电机所使用,有效提高了模块的控制精度。但该模块更改控制策略的步骤非常复杂,故只适用于控制策略较为稳定的被控对象。文献[10]设计基于可编程逻辑控制器的数控机床步进电机控制模块,可编程逻辑控制器的本質就是工业计算机,其价格便宜、使用简单,具有较强的实用性。在控制工作中,可编程逻辑控制器用其输出的方形脉冲信息对步进电机的速度进行控制,具有较高的响应效果和控制成果,但该模块的控制误差不易控制。
根据上述内容可知,若想使数控机床步进电机控制模块实现高精度控制,需要选择性能高、成本低的控制器,并结合特定方法有效协调步进电机的速度关系。现基于STM32F103微控制器和综合线性速度控制函数,设计数控机床步进电机高精度控制模块。
1 数控机床中的步进电机高精度控制模块设计
1.1 模块整体方案设计
所设计的数控机床步进电机高精度控制模块采用STM32F103微控制器作为其硬件控制核心,并结合综合线性速度控制函数,提高模块响应效果和控制成果,缩减控制误差,最终实现高精度控制。图1为模块硬件结构图。

图1 模块硬件结构图
由图1可知,控制工作开始后,STM32F103微控制器将给出控制步进电机运行流程的控制指令,该指令的实施由现场可编程门阵列(Field?Programmable Gate Array,FPGA)实现。FPGA根据指令生成控制信号,对步进电机的初始化和速度进行控制。STM32F103微控制器也将对FPGA给出的步进电机运行状况信息进行接收和显示。
由于在实际应用中,数控机床中的步进电机往往不止一台,因而,所设计的数控机床步进电机高精度控制模块选用FPGA的一项重要因素就是:FPGA能够对多台数控机床实施同时控制,并可以对控制指令进行精准分配。这对提高模块响应效果、缩减模块控制误差具有决定性作用。
由于步进电机只有在驱动器存在的情况下才能正常运行,故FPGA与步进电机并非直接相连。FPGA先将控制信号传输给步进电机驱动器,步进电机驱动器根据控制信号中控制位置的排序,依次将步进电机所需的控制电流导入步进电机,以实现对被控对象的准确控制。在所设计的数控机床步进电机高精度控制模块中,光栅传感器的作用是對步进电机的运行流程进行采集。其将所采集到的信息传输给FPGA,FPGA对信息内容进行判断,得出步进电机的具体运行结果,并将其传输给STM32F103微控制器,实现STM32F103微控制器对步进电机运行流程的实时监控和修正。
1.2 STM32F103微控制器设计
STM32F103微控制器是一款对8位单片机进行优化后产生的32位控制器,其价格便宜、便于携带,并拥有很强的控制能力,在运算速度和转换效率上比8位单片机有很大提升。STM32F103微控制器拥有低耗、高兼容性和高通信能力等优点,其电压范围为[2.0 V,3.6 V],通常使用3.3 V电源供电。
STM32F103微控制器给用户提供了三个工作模块,分别是标准工作模块、节能工作模块和休眠工作模块,用户可根据自身控制需求选用最适合的工作模块。其还拥有多种类型的通信接口,最大传输频率为70 MHz,可进行多方信号的同时、快速传输。
在STM32F103微控制器中,其最重要的功能电路是晶振电路和电源电路,如图2、图3所示。
由图2可知,STM32F103微控制器最多可连接两个晶振电路,分别为其提供高速标准计时和低速精准计时,晶振Y的规格为10 MHz。电容C1和C2的主要功能是对晶振Y进行激励。
由图3可知,电源电路为STM32F103微控制器提供了三种供能模式,分别是外接蓄电池供能、数据传输接口供能以及计算机软件接口供能。电容C1和C4的规格为0.1 μF,C2,C3的规格是10 μF。考虑到电路中的电能损失,电源电路所提供的电能是5 V,故需要对电源电路的电压进行转换,所使用的转换器是LT1117稳压管。
1.3 FPGA设计
所设计的数控机床步进电机高精度控制模块选用的FPGA拥有210个引脚和148个输入/输出端口,其电源电压的输入范围为[1.2 V,3.5 V],可在温度为[0,90 ℃]的范围下运行。FPGA拥有两种工作模式,分别是内部测试和分频测试,其价格便宜、控制成果好,能够实现对步进电机的高精度控制。图4为STM32F103微控制器与FPGA的接口连接图。
由图4可知,FPGA拥有5个输入线接口和20个输出门接口,微控制器的虚拟内存用来进行控制指令地址的传输,线接口用来对控制指令进行重置、锁定、编译、写入和只读。门接口0~7可对8个步进电机进行同时控制。FPGA的内部测试和分频测试将相互结合使用,对STM32F103微控制器中控制指令进行信号转换,FPGA输出的控制信号格式为数字脉冲信号。
由于数控机床要求步进电机的运行流程必须包括初始化、加减速运转、稳定运转和休眠,故FPGA需要先对STM32F103微控制器中晶振电路的计时输出进行分频,再进行信号转换。经转换后获取的控制信号将传输给步进电机驱动器进行进一步操作。
1.4 步进电机驱动器设计
由于FPGA给出的控制信号能量不高,无法唤醒步进电机,故利用步进电机驱动器对FPGA的控制信号进行放大。步进电机驱动器根据控制信号中控制位置的排序,依次将控制电流导入步进电机,保证数控机床中步进电机的正常运行。图5为步进电机驱动器电路示意图。由图5可知,数控机床步进电机高精度控制模块所选用的步进电机驱动器型号是双相细分驱动器,这种型号的步进电机驱动器拥有精度高、噪音小、便于携带的优点。电路中的时钟接口选用的是光电耦合信号控制器,有效缩减了设计成本,并且操作更为简单。当12 V电源的输出是稳定电流时,步进电机将进行反相转动运行;无电流输出时,步进电机则进行正向转动运行。
步进电机驱动器对FPGA控制信号的放大工作是循环进行的,分区接口与方向控制信号器相接,作用是对控制信号中控制位置的排序进行依次读取与准确输送。接口1与接口2则与数控机床中的步进电机直接相连,最终实现数控机床步进电机高精度控制模块对被控对象的准确控制。

2 步进电机高精度控制模块软件设计
在传统的数控机床步进电机控制模块中,通常选用直线或抛物线对步进电机进行加减速控制。其中,直线速度控制函数的运算量小、效率高,所以模块对被控对象的响应效果较好,但控制误差和控制成果不高。而抛物线控制函数的运算量大,模块的控制误差较小,响应效果却不好。为此,所设计的数控机床步进电机高精度控制模块选用了综合线性速度控制函数,将直线和抛物线的优点结合起来,摒弃二者缺点,实现模块对被控对象的高精度控制。
当步进电机处于加速运行时,其加速函数分为三个阶段,依次为抛物线、直线、抛物线,则有:
式中:为直线加速度;为直线方程与坐标轴的交点位移;为抛物线斜率;为加速时间;为步进电机初始速度;和分别是第一次和第三次加速抛物线的参数。将步进电机加速抛物线的总参数设为,则:
此时,步进电机在直线、抛物线1和抛物线2的加速阶段速度,,满足如下关系式:
此时,三个加速阶段所能获取的控制指令数量为:
根据式(1)~式(5)可得,当STM32F103微控制器发出第个控制指令,该指令与三个加速阶段中加速时间的关系式为:
通过调节式(6)中的各项参数,能够有效协调步进电机的速度关系,对模块获取优良的响应效果、控制误差和控制成果,实现高精度控制具有一定的推动作用。
当步进电机处于减速运行时,其减速曲线和加速曲线是互为对称的,运算方式与加速函数相近。
3 实验分析
实验利用对比方式对本文模块、单片机控制模块和可编程逻辑控制器控制模块的响应效果、控制误差和控制成果进行分析,确定本文模块能否较好地实现对被控对象的高精度控制。在数控机床中,其主要被控对象为机器转速和位移,令三个模块在同等条件下对实验机器的转速和位移進行控制。
3.1 响应效果分析
将本文模块、单片机控制模块和可编程逻辑控制器控制模块对实验机器转速、位移的响应时间绘制成曲线,如图6、图7所示。响应时间越短、越稳定,则模块的响应效果越好。由图6、图7可知,各数控机床步进电机控制模块对机器转速的响应效果要好于对机器位移的响应效果,差值在3 s左右。本文模块的响应时间曲线要明显低于其他两个模块的响应时间曲线,且曲线的稳定性更强。由此可得出,本文模块具有优良的响应效果。
3.2 控制误差分析
各数控机床步进电机控制模块的控制误差是根据步进电机的数据转矩确定出来的,这是因为转矩的不确定性较大,能够对其进行准确控制的模块,模块的控制误差必然较小。
在实验给出的控制指令中,步进电机的输出转矩应为1.8 kg·cm。在步进电机频率不断增加的情况下,其输出转矩越贴近该数值,证明模块的控制误差越小。实验结果如图8所示。
由图8可知,在三个模块中,本文模块的步进电机输出曲线与控制指令中的1.8 kg·cm转矩标准最为接近。由此可得出,本文模块具有优良的控制误差。
3.3 控制成果分析
数控机床步进电机控制模块的控制成果是指,在模块控制下由实验机器产生的加工元件。加工元件的规格越接近控制指令的目标规格,则模块的控制成果越好。根据上述定义,绘制出控制成果曲线,如图9所示。
由图9可知,本文模块的控制成果范围高达[97.6%,99.8%],较其他两个模块而言,本文模块具有优良的控制成果。
4 结 论
本文设计数控机床步进电机高精度控制模块,其采用STM32F103微控制器作为硬件控制核心,并结合综合线性速度控制函数、现场可编程门阵列、步进电机驱动器和光栅传感器,以提高模块响应效果和控制成果、缩减控制误差为设计目标,最终实现模块的高精度控制。实验将本文模块与单片机控制模块,以及可编程逻辑控制器控制模块的响应效果、控制误差、控制成果进行对比。实验结果表明,所设计的模块具有优良的响应效果、控制误差和控制成果,可较好地实现模块对被控对象的高精度控制。
参考文献
[1] 王宽,赵巍,张翔宇.基于Mach3的教学型五轴数控机床控制系统设计[J].天津职业技术师范大学学报,2016,26(1):37?40.
[2] 徐正平,许永森.S3C2440A在步进电机控制器人机交互中的应用[J].液晶与显示,2015,30(1):70?76.
[3] 吴康,刘景林.多通道步进电机控制系统上位机设计[J].微电机,2015,48(5):66?69.
[4] 徐伟龙,顾金良,郭睿,等.基于PSD的步进电机控制系统[J].传感器与微系统,2015,34(7):76?78.
[5] 李爱竹,徐柳娟.基于EPM240T100和TB6560的步进电机控制系统[J].机电工程,2014,31(5):671?675.
[6] 潘齐欣,唐型基.基于步进电机控制的仿人机械手臂抓取移动系统设计[J].科技通报,2016,32(3):118?121.
[7] 李欣,刘景林,刘洋.多通道集成化步进电机控制器设计[J].微电机,2014,47(3):52?55.
[8] 白玉,刘冰,李智.基于Cortex?M3处理器的步进电机控制系统[J].电子科技,2014,27(10):43?45.
[9] 王帅夫,刘景林.基于大脑情感学习模型的步进电机控制系统[J].吉林大学学报(工学版),2014,44(3):765?770.
[10] 徐锟,党幼云,张峰.四自由度机械手多细分步进电机驱动器的设计[J].西安工程大学学报,2015,29(6):714?719.