基于STM32的智能手套机运动控制系统设计与开发
2019-03-05,,
, ,
(浙江工业大学 信息工程学院, 杭州 310023)
0 引言
针织手套作为生活的必需品和易耗品,其需求日益增长,传统的人工劳作方式已经不能满足市场的发展需求,所以,近年来全自动手套机得到了广泛应用[1]。目前,市场大部分全自动手套机基本采用大功率直流电机和机械齿轮传动结构进行设计[2]。该类手套机存在手套编织效率低下、设备安装复杂、机械故障率高、软件系统功能匮乏等诸多缺点,从而导致生产周期长、维护困难、手套花型单一、机器寿命短等问题。一定程度上制约了全自动手套机的发展。因此,采用多个电机单元代替齿轮驱动结构的新型智能手套机成为新的发展方向。然而,智能手套机的运动控制系统是决定其性能的关键,也是设计开发过程中的一大技术难点。
智能手套机运动控制系统仍处于初步发展阶段,汪木兰等人开发了基于PSoC和FPGA的手套机控制系统[3],该系统结构复杂,片上资源有限且功能简单。詹建潮等人开发了基于Bitbus总线的手套机网络化控制器[4],但其网络功能局限于有线连接的数据传输,无法实现远程监测,在线升级等功能。郭得权等人设计了基于ARM的手套机控制器[5],但其主要针对传统齿轮传动结构的手套机设备。综上所述,性能好、效率高、结构简洁、功能全面的智能手套机控制系统有待进一步研发。另一方面,智能手套机主轴机头由大功率伺服电机控制,加工生产过程中一直处于高速往返运动状态,其运行速度和位置精度决定了手套的生产效率和质量。如果采用点对点控制方式,机头在往返运动时会产生明显停顿现象[6-7],影响生产效率。为此,可根据冲量定律[8],在机头运行到距离目标位置小于给定差值时,下发反向运转指令,电机利用其惯性冲力运行一段距离后,立即反转,此方法可解决停顿现象,但是会带来一定的位置误差,并且误差会随机头运行速度的变化而改变,影响生产质量。因此如何规划主轴机头的位置控制也是主要问题之一。
本文基于STM32F407微处理器,设计开发了高性能智能手套机控制系统,在实现手套编织运动控制的前提下,还开发有网络监测、远程更新、全中文示教编程等功能。同时,针对主轴机头位置控制问题,设计了基于模糊逻辑的位置补偿控制算法,在保证机头高速运转时不会产生停顿现象的前提下,提高了其重复定位精度。下文中,将从系统硬件原理设计和软件系统设计两方面进行详细说明。
1 系统结构
智能手套机控制系统整体结构如图1所示,系统主要由控制器模块、人机交互模块、电机驱动模块和无线通信模块组成。
图1 系统总体设计结构
其中控制器模块以意法半导体公司生产的STM32F407ZGT6芯片作为控制核心,该芯片是一款基于Cortex-M4 ARM内核的32位微处理器,其主要优点是高性能、低功耗、低成本,且内部集成了192 KB SRAM 和1 MB Flash,其工作频率可以达到168 MHz,同时芯片内部含有丰富的ADC、PWM、USART、USB接口等片上资源,可以满足本系统的需求。此外,芯片搭载多个定时器,包括基本定时器、高级定时器和通用定时器,可适用于需要多路PWM脉冲输出和定时功能的运动控制系统开发。人机交互模块主要采用北京迪文公司的DGUS串口触摸屏,其界面开发简单,且内部具备大容量指令缓存区,能实现无等待、连续多条指令的发送,可大大降低二次开发程序代码量,同时交互模块还集成了暂停按钮、启动按钮、点动按钮,用于实现对手套机的即时控制。电机驱动模块由智能伺服驱动器和步进电机驱动器组成,该驱动结构成本低、占用空间小,可使设备轻量化。无线通信模块采用ESP8266串口WIFI模块,该模块能够实现设备与互联网或局域网之间的无线通信,可对生产车间内手套机的运行与生产状况进行远程监控,实现现场设备控制与企业管理信息系统的集成,达到“控管一体化”[9]。
2 系统硬件设计
2.1 电机驱动模块
系统伺服电机驱动器采用杭州日鼎控制技术有限公司的DHE3205型交流伺服驱动器,采用CAN总线控制模式,该总线是一种国际标准现场总线,具有通信速率高、易实现、性价比高等诸多优点。系统主控芯片中CAN信号的接收引脚和发送引脚经过高速光耦6N137连接到TJA1050总线收发器的TXD和RXD端,实现双线串行通讯,其中光耦对总线节点起到电气隔离作用,避免噪声干扰。
系统采用9路步进电机分别用于控制机器的滚筒、勾刀、叉刀等装置的动作,其控制方式均采用PWM脉冲驱动,由于STM32芯片I/O端口驱动能力较低,因此采用74HC245芯片对主控芯片产生的PWM脉冲驱动信号进行放大,该芯片是一款兼容TTL的高速CMOS总线收发器,具备一定的功率放大功能,对主芯片也能起到一定的保护作用[10]。
2.2 无线通信模块
无线通信模块选用乐鑫公司出品的ESP8266串口WIFI芯片,该芯片内置超低功耗32位RISC处理器,可将大部分的处理能力留给应用的编程和开发,是一款性价比较高的UART-WIFI模块[11]。该模块支持STA模式(客户端模式)和AP模式(路由器模式),可使设备连接到无线网络上,实现与互联网或局域网的通信。本系统在控制器硬件设计中将WIFI模块中的输入和输出引脚分别连接至主芯片USART1的TXD和RXD端,实现主芯片与该模块之间的串口通信。
2.3 电源模块
运动控制系统的电源输入为24 V,采用开关电源模块供给,系统内部5 V及3.3 V电源分别由LM2596和SPX117-3.3降压芯片进行转换。此外,为防止电路出现短路而损坏控制器元件,电源输入处还加装了保险丝对运动控制器进行过载保护。
3 系统软件设计
运动控制系统软件开发基于ARM公司推出的嵌入式软件开发工具RealView MDK。它提提供了对硬件设备的调试功能和对软件的仿真功能,包含了许多经典开发案例的模板和固件实例,同时还支持多种调试接口(如UART、JTAG、JLINK等),可大大减小软件开发难度,缩短开发周期[12]。
系统软件功能如图2所示,其中主要包括运动控制程序设计、人机交互程序设计、WIFI远程监测程序设计和U盘管理程序设计。
图2 系统软件功能框图
3.1 运动控制程序设计
系统步进电机采用PWM驱动方式,由STM32定时器模块产生PWM脉冲,下发至步进电机驱动器。其中电机的转动距离由驱动器接收到的脉冲数目决定,电机的转速控制在定时器中断函数中进行处理,通过不断更新定时器重装载值的大小来更改脉冲发出的频率,从而达到控制电机转速的目的[13]。
同时,为了测试及维护方便,除了机器的普通运行模式之外还开发了点动运行模式和手摇运行模式。(1)点动运行模式:主程序查询人机交互模块的点动按钮是否按下,若检测到信号则机器以低速运行,一旦失去信号则立即停止运行,机器在点动运行期间也按照设置的手套花型步骤进行动作,和普通模式下的动作完全相同。(2)手摇运行模式:主轴机头的运行通过人工摇动手柄进行控制,此时手套机的编织动作需依靠机头的实时位置进行判断,因此系统采用TIM3的编码器接口模式,对编码器A、B两相进行计数,计数值经过换算后可得机头的当前位置,当退出手摇模式后,通过比较进入手摇模式前的机头位置和此时编码器计算的位置大小来判断机头下一步的运动方向,防止机头撞针从而损坏机器。
3.2 全中文示教编程设计
示教编程是运动控制系统中关键的功能之一,便捷、人性化的示教和编程能大大提高设备调试和生产效率。因此,本系统开发了基于全中文的示教编程功能,其主界面如图3所示。界面提供了对手套小拇指、无名指、中指等部位的编织命令设置功能,命令主要分为控制机头动作的主轴命令和控制电磁铁、勾刀、叉刀等装置动作的副轴命令。手指每个编织部位的命令编辑格式必须以“程序开始”作为命令的起始和“程序结束”作为命令的结束,其余主副轴的命令在选中后还需设置指定的参数,并且每个部位的动作命令在编辑完成后都必须经过保存才可进行下一部位的指令设计。当所有手套部位编辑完成后,编程界面将设计好的手套花型文件通过串口发送给控制器,并保存于FLASH存储模块中或拷贝入U盘供其他机器使用,可实现对魔术手套、触摸屏手套、半指手套等各种特殊类型手套进行编程示教。
图3 全中文示教界面
3.3 位置补偿程序设计
冲量定律表明,物体机械运动状态的改变是力对物体作用一段时间后的积累效应。本系统采用冲量定理对主轴机头进行位置控制,为提高重复定位精度,采用模糊逻辑控制方法对位置进行补偿。首先,设定点a、b为电机反向运行指令的下发位置点,如图4所示,定义该位置点与机头的目标位置之间的距离为差值pv。当机头运行至距离目标位置小于等于pv时,则下发反向运行指令,机头利用惯性冲力向目标位置继续运行至速度减为零,随后立即反向运行。此方法可杜绝点对点控制中的停顿问题,但会产生一定的位置误差,并且由于机头在手套各部位的编织运行速度不同,位置误差在相同的pv下会随着速度的变化而改变,因此本文设计了模糊逻辑控制策略,根据伺服电机的运行速度来规划机头当次运动中的pv值,从而减小位置误差。
图4 机头位置差示意图
模糊控制系统的核心是模糊控制器。本系统所设计的模糊控制器采用开环结构,如图5所示。首先,通过论域因子kn调整伺服电机当前转速n,并对调整后的结果进行模糊化处理。随后,将生成的模糊语言N依据模糊规则进行模糊推理,规则如表1所示。最后,对推理结果P进行去模糊化和论域调整,得出机头在该速度下的差值pv。
图5 模糊控制程序流程
NVSSMBVBPVSSMBVB
控制器中输入参数n和输出参数pv依据先验知识设置统一的量化论域:{0,0.25,0.5,0.75,1}和模糊语言:{VS,S,M,B,VB},对应表示的含义为“非常小”、“小”,“中等”、“大”、“非常大”,设置隶属函数如图6所示。
图6 输入输出隶属度函数
4 系统实物及测试结果
智能手套机运动控制主板的控制器模块、驱动模块以及电源系统安装在控制箱中。
经过现场测试,机器24小时可分别编织7针类型的标准劳保手套420双,编织13针类型210双,编织15针类型180双,产量是传统手套机的3倍。同时,机器监管从原来的每人17台提高到每人30台,可较大程度上降低人员配置。此外,机器整体的重量从传统的260公斤降低至220公斤,外形尺寸也明显缩小,一定程度上减轻了车间机修工的机械装配压力。
系统采用的模糊位置精度补偿方法效果如图7所示。实验对比了在不同运行速度下固定差值(pv=20 mm)和模糊控制动态差值(pv最大值为20 mm)两种方法下的机头运动位置误差结果,可知当系统设置电机运行速度超过840 r/min时,由于电机高速运动产生的累积冲量较大,控制器下发反向运行指令后,机头利用惯性冲力移动的距离也较大,使得此时两种方法下的位置误差较小且相近,稳定在4.9 mm左右。当设置的电机运行速度低于840 r/min时,机头累积冲量随着速度的减小而减小,使得其依靠惯性冲力移动的距离也变小,此时系统采用的固定pv值方法产生的位置误差将会随速度的减小而变大,而采用模糊控制的动态pv值方法位置误差较小且受速度变化的影响不大,具有较好的控制效果。
图7 位置误差对比图
5 结束语
本文基于STM32F407设计了一款智能手套机控制系统,可实现手套编织运动控制、网络监测、远程更新、全中文示教编程等功能,文章对系统的主要硬件模块设计和
软件设计开发进行了详细介绍。针对主轴机头高速往返运行的效率问题,利用冲量定理规划了位置控制策略,并设计了模糊位置补偿算法,在不同运行速度下保证其重复定位精度。现场测试结果表明,本手套机运动控制系统能够高效地完成手套编织工作,提高了手套机的生产效率和产品质量,为智能手套机运动控制系统的开发应用提供了较好的参考价值。