摘要:选择STC12C5A60S2单片机 (MCU) 作为微处理器, 模拟实现了转台的正反两方向的转角定位功能, 且其旋转转速可控。首先步进电机带动角度传感器旋转得到不同输出电压, 利用单片机的A/D (10位) 转换功能实现对此电压的数字解码, 从而完成角度的检测。再利用检测得到的与旋转角度对应的数字量来修正单片机输出的驱动脉冲信号, 使得期望的角度值与实际旋转的角度值尽量一致, 达到精准控制步进电机转角的目的。
关键词:转台改造; 步进电机; 转角控制; STC12C5A60S2单片机;
Abstract:This paper selected the STC12 C5 A60 S2 microcontroller ( MCU) as the microprocessor, and emulated the angle positioning function of the drill from two directions, and its rotation speed can be controlled. The stepper motor drives the angle sensor to get different output voltage which is loaded to the input of the A/D ( 10 bit) conversion of the MCU to realize the digital decoding for angle detection. Then it used the digital decoded to correct the pulse signal from the output of the microcontroller, which would make the actual value as far as possible to be consistent with the desired angle, meaning the rotation angle of the stepper motor is controlled precisely.
Keyword:bench reconstruction; stepping motor; angle control; STC12C5A60S2 MCU;
回转工作台是铣床、镗床、钻床等机床的重要附件[1], 用于加工有分度要求的孔、槽和斜面。在加工设备数控化改造的大形势下, 有相当庞大数量的普通工作台要改成数控工作台使用[2-3], 为了适应社会经济的发展, 虽然改造的手段与方式方法各异, 改造目的也不尽相同[4]。但对于改造后的可靠性和改造花费都提出了相应的要求, 为了节约成本, 此次改造计划运用单片机控制驱动模块来完成转台的360°转动。为了实现此次改造目的, 在此将利用步进电机驱动蜗轮蜗杆副带动转台在平面内旋转完成任意角度定位的任务。步进电机的旋转是靠一系列PWM脉冲驱动, 以固定的角度一步一步运行的来实现的, 可通过控制其脉冲个数来控制角位移量[5], 进而实现准确定位的目的。由于步进电机具有简单易控等特点[6], 现已广泛应用于数控机床中的精密加工行业、各种精度要求较高的自动化控制系统等领域中[7]。在此, 对于可旋转的转台转角定位的好坏将直接影响数控转台的整体运行的平稳性和精确性, 因此, 能否实现平稳精确地转角定位是改造数控转台的关键, 从而其控制核心的选择显得尤为重要。单片机及PLC一直是受到了数控机床行业业内人士青睐的两控制单元[8-10], 在此考虑到了成本问题, 选择了STC12C5A60S2单片机。为了更好地改造普通转台, 一方面提升其控制的精度, 另一方面改善其智能控制性能[11-12], 这不仅需要对其机械构造方面进行一定的改造, 关键还需对其改进后新增加的转轴进行精确地转角定位控制。本文在此主要对其转角定位控制系统方面的理论进行了一定的阐述, 并依据实际企业的要求做了相应的模拟实验, 从原理上取得了相关企业的认可。基于STC12C5A60S2单片机的步进电机转角控制系统, 除了具备正反两方向转角定位控制外, 在一定的范围内转速也是可调的, 且可以自动调节零位。
1、转角控制硬件电路设计
1.1、转角控制工作原理
本系统使用STC12C5A60S2单片机的定时器中断产生驱动步进电机的驱动信号, 从而使得步进电机产生角位移。在步进电机的转轴上连接角度编码器, 使得步进电机处于在不同的位置时产生与角度对应的电压输出。把此电压信号送入单片机, 利用STC12C5A60S2单片机自带的A/D转换功能将这一模拟电压量数字化。通过大量实验均匀测出角度值与转化后的数字量的一一对应关系, 然后通过MAT-LAB软件拟合出角度和A/D转换后数字量之间的函数关系。根据这一函数关系在单片机软件程序中进一步对其输出的驱动脉冲信号进行修正控制, 从而实现角度的较精确控制。为了能够通过程序较准确地测出转角, 在程序上还对步进电机的驱动信号进行标识, 即每输出一个驱动信号对应在P4.5端口上输出一个步进标识脉冲, 利用单片机的计数器对步进标识脉冲进行计数, 也就可以计算出步进电机的控制步进数。另外, 通过实验测得所用步进电机的步进角为0.08821度, 因此可以实时计算出步进电机的转角。
系统主要功能模块包括步进电机驱动模块、角度检测模块、预设角度输入电路及转角显示电路等, 系统整体结构如图1所示。
图1 系统总体结构框图
1.2、硬件电路设计
硬件电路设计主要完成以下内容:
(1) 预设角度输入电路:主要通过按键控制来实现, 接于单片机的P1.1-P1.7口, 将4根端口线定义为行线, 另外3根端口线定义为列线, 形成4Х3键盘, 可以配12个按键, 按键主要用来输入期望的旋转角度值和对系统进行操控, 包括正反转控制命令、加减速控制命令及启停控制命令等。
(2) 角度检测模块电路:把角度传感器与步进电机转轴相连, 把与角度对应的电压信号送入单片机的A/D转换输入端即P1.0口端口。
(3) 步进电机驱动模块电路:选择四相步进电机, 在此PWM驱动脉冲输出于P2.0-P2.3, 后连接于步进电机专用驱动器, 分别作为步进电机四相的控制信号。
(4) 转角显示电路:P0.4-P0.7作为显示屏的数据总线, P2.5、P2.6、P2.7分别与显示屏的读、写和使能端相连。
(5) 其它:用P4.5输出步进标识脉冲, 并将其引回P3.5接口, 作为计数器1的输入信号。
2、转角反馈校正与软件程序流程
2.1、转角反馈校正
为了更好地控制步进电机的转角, 先采用一般的开环控制策略, 通过定时器中断产生驱动步进电机的驱动信号, 从而来改变步进电机的转角。步进电机旋转带动角度检测电路工作产生对应的电压值, 并将其送入单片机A/D转换输入口, 从而将这模拟量转化为数字量。然后通过大量实验均匀测出数字量0-1023 (STC12C5A60S2单片机A/D转换为10位) 所对应的角度值, 在此把角度传感器与STC12C5A60S2单片机A/D转换看做是成一子模块, 为方便说明可记此子模块为转角数字化模块, 即该子模块的输入为转角, 输出为转角对应的数字量。依据此思想, 最后利用MATLAB软件拟合出这些数字量和转角之间的函数关系, 正行程拟合结果如图2所示。
正行程期间用分段函数关系表示如下:
在0~65度之间对应的函数关系为:
在66~145度之间对应的函数关系为:
在155~359度之间对应的函数关系为:
x为度数, Y与之对应的A/D转换后的数字量值。反行程拟合结果如图3所示。
反行程A/D转换后的数字量值与输出角度之间函数关系如下:
图2 正行程期间转角数字化模块输入量和输出量函数关系图
图3 反行程期间转角数字化模块输入量和输出量函数关系图
在0~249度之间对应的函数关系为:
在250~359度之间对应的函数关系为:
得到这些函数关系后, 分别用这些函数关系去修正其对应的步进电机的驱动信号。
2.2、软件流程
依据以上设计思想, 软件设计程序主要包括步进电机驱动程序模块、定时器中断程序模块、按键功能定义及阵列键盘驱动程序模块、显示程序模块、ADC中断程序模块 (10位) 和PCA中断程序模块构成。
利用转角数字化模块的输入和输出之间的函数关系可以计算出任意角度所对应的数字量, 在程序上可以利用这一关系对步进电机的角度进行精确控制。即步进电机的控制转角测量值是通过此函数关系, 利用A/D转换值反解出来的。
步进电机的转速计算是通过用计数器计数P4.5输出的步进标识脉冲计算得到的。单片机选用外部晶振为12MHz, 定时/计数器计数加累加占用的时间为0.001ms, 可准确定时出驱动信号的周期。假设单片机计算出每秒钟P4.5输出脉冲个数为M, 则步进电机的角速度为:
另外系统加上了时钟功能, 可以知道步进电机运行的时间。此功能是通过可编程计数模块 (PCA) 中断定时出50ms的时基信号, 以此20个时基信号就是1s, 从而系统就有了精准的时钟。
整个系统的程序流程图如图4所示。
图4 程序流程图
3、模拟实验调试与运行
为了确定所设计的系统在理论上具有一定的可行性, 在改造转台前先焊接了一系统 (如图5所示) 进行模拟实验测试。
3.1、输出角度标识脉冲的调试
在硬件设计中将步进标识脉冲引回计数器T1的输入端P3.5, 步进标识脉冲可以反映出步进电机的角速度。步进标识脉冲的频率越高步进电机运动越快, 尽管单片机定时器的定时范围较广, 但步进标识脉冲的频率也有范围, 因执行机构存在惯性、摩擦力等各方面因素的制约, 通过实验发现此时转速的控制也有上限。当P4.5输出的步进标识脉冲频率在20Hz~831Hz时步进电机能够正常运行, 不会出现卡顿和严重丢步的现象。
图5 依据原理焊接的模拟测试实物
3.2、角度控制与测量精度测试
表1列出了利用不带修正函数控制的步进电机运行时的预设转角与实际测试转角的数值, 通过测试发现, 相对误差基本在0.03%~0.3%范围内。表2列出了加入修正函数后期望转角与实际转角的数值, 从表中数据可知, 此时实际输出转角与期望转角之间的相对误差基本在0.14%~0.18%内, 而且90°以下的转角定位控制基本是无误差状态, 这说明加入相应函数修正后的控制系统对转角的控制精度较好, 这为该理论在实际机床改造中应用奠定了良好的理论基础。
表1 不带修正函数时转角输出精度测试
表2 带修正函数时的转角输出精度测试
4、结束语
该步进电机控制系统的设计是在拟对一老式转台改造的项目背景下提出来的, 为了能顺利完成此次改造, 在此先对转角控制系统进行了模拟实验。所设计的基于单片机的步进电机控制系统, 对角度的控制精度做了进一步提升, 相比于不加修正的角度控制系统而言, 利用角度检测模块电路对角度进行反馈采集, 并找到了角度与控制脉冲对应的数字量之间的函数关系后, 使得单片机可以更精确且稳定地控制转角。此转角控制思想在工程上不难实现, 为进一步在转台改造的实际应用中的转角控制奠定了良好地基础。
参考文献
[1]张翀宇, 崔福龙.钢包回转台整体结构数值计算[J].连铸, 2011 (1) :21-24.
[2]马砚, 燕长顺.焊接转台调速系统改造[J].设备管理与维修, 2015 (8) :96.
[3]张斌.圆周焊旋转转台控制系统自动化改造[J].电气技术, 2015, 16 (8) :122-125.
[4]滕强, 杨国明.激光焊接机转台改造[J].机床与液压, 2011, 39 (24) :125-126.
[5]熊有郑, 闵小平, 李亮亮.嵌入式Linux下基于光耦的步进电机控制[J].单片机与嵌入式系统应用, 2013, 13 (10) :13-16.
[6]王粟, 张威亚.采用S型控制算法的步进电机控制器[J].华侨大学学报:自然版, 2016, 37 (4) :406-410.
[7]张占立, 康春花, 郭士军, 等.基于单片机的步进电机控制系统[J].电机与控制应用, 2011, 38 (3) :28-31, 50.
[8]熊强强.电火花线切割机钼丝自动检测与转台闭环控制技术研究[D].重庆:重庆理工大学, 2011.
[9]王晓瑜.DU组合机床单机液压回转台控制系统的PLC改造[J].煤矿机械, 2011 (6) :195-196.
[10]张改莲.双面单工液压传动组合机床的PLC控制改造[J].机电一体化, 2015 (3) :57-58, 67.
[11]吕建平, 孔亮, 曹发海.二相混合式步进电机的高性能驱动器研究[J].单片机与嵌入式系统应用, 2013 (9) :16-18, 25.
[12]蒋佳晨, 黎英, 闫亚超, 等.基于变结构理论的步进电机无传感器控制[J].控制工程, 2016, 23 (1) :18-23.