黄 强,李松涛,高 源,甄富帅,宋光明,陈大兵
(1.国网江苏省电力有限公司电力科学研究院,江苏南京 211103;2.东南大学仪器科学与工程学院,江苏南京 210096)
在高压输电线路中,架空输电导线长期暴露在野外,容易出现腐蚀、断股等损伤。为保证电网的正常运行,需要定期对线路进行巡检,从而确保供电线网的可靠性[1]。目前,电力巡检传统的2种形式是人工巡检和直升机巡检[2]。人工巡检主要通过肉眼、望远镜等进行,效率较低且容易出现遗漏。直升机巡检效率较高,但是其成本高,且准确度较低。
移动机器人技术的发展,使得采用机器人进行导线巡检工作成为可能。经过10多年的研究,架空输电导线巡检机器人技术日渐成熟,比较有代表性的有加拿大魁北克水电研究院研制的LineROVer[3]和LineScout[4],日本东京电力公司研制的Expliner[5]等。
巡检机器人的主要工作是排查输电导线受到的损伤,并对损伤处进行定位,方便电力部门进行维修。为此,机器人应具有较高的可靠性、运动精度和相对定位能力,这对于完成巡检任务十分重要。本文设计了一种用于架空输电导线巡检机器人的运动控制系统,系统中通过工控机进行巡检动作规划,使用基于STM32的底层控制板进行电机控制,将S型加减速控制算法引入设计中,减小了实际运行中可能出现的冲击。实验验证表明,该系统具有较高的运动精度与定位精度,能够满足架空输电导线巡检机器人的工作要求。
巡检机器人运动控制系统的整体结构如图1所示,主要包括地面的远程控制终端和机器人本体上的运动控制器2部分。其中,地面控制终端主要用于机器人工作状态监控与远程控制。机器人本体上的运动控制器采用双核心结构,小型工控机接收巡检模式切换信号,规划相应模式下机器人具体动作,通过串口发送动作命令至底层控制板;基于STM32F407的底层控制板读取电机编码器脉冲,发送PWM信号至电机驱动器,控制机器人进行相应运动。电机驱动器采用ESCON 50/5,通过读取电机编码器数据,可对电机进行速度闭环控制。
图1 巡检机器人运动控制系统整体结构
运动控制器与地面控制终端通过3路无线通信进行命令收发及数据交换,不同设备间、不同数据流方向之间采用不同方式或频段进行通信,防止出现数据堵塞和干扰。其中,工控机与地面控制终端采用WiFi协议通信,兼顾巡检图像的传输;基于STM32的底层控制板通过2.4 GHz与230 MHz的LoRa电台与地面控制终端通信,2.4 GHz电台用于机器人状态数据的传输,233 MHz电台用于遥控命令的传输。
基于STM32的底层控制器硬件结构如图2所示,核心选用STM32F407VET6,其采用cortex-M4内核,有较强的运算能力、较低的功耗和较好的扩展能力。其他功能模块包括电压读取模块、串口通信模块、电源模块、编码器接口模块,电机PWM控制信号由STM32直接输出至电机驱动器。
图2 底层控制板整体结构
由于本系统中选用的无线电台的输入输出信号采用RS232电平,不能直接被单片机读取,因此,串口通信模块选用MAX232芯片进行RS232电平和TTL电平信号之间的转换。MAX232是专为RS232串口设计的电平转换芯片[6]。芯片的2路RS232驱动器分别与数传电台和遥控电台相连,进行上下行数据流电平的转换。串口通信模块电路原理图如图3所示。
图3 串口通信模块电路原理图
本系统中的编码器信号通过转接板分为2路,一路信号接入电机驱动器,用于电机的速度闭环控制,保持电机转速的稳定性;另一路信号接入运动控制板,用于电机加减速与启停控制。本系统中电机编码器选用ENX16磁电式编码器,采用RS422线驱动输出,减少了信号传输过程中的衰减变形,但不能直接被单片机读取。因此,在电路中采用AM26LS32差分接收器接收信号,经过转换作为脉冲计数器输入。为了防止电流过大,在芯片与STM32之间放置限流电阻以保护芯片。编码器接口模块电路结构如图4所示。
图4 编码器接口模块电路原理图
由于架空导线巡检机器人工作环境特殊,如果机器人在导线上因为电量耗尽而断电,将难以回收,给巡检工作带来困难。因此,控制器中设计了电池电压读取模块,实时读取电源管理芯片的输出电压值,通过STM32自带ADC判断电池电量。利用LM358运算放大器与电阻组合构成电压跟随器,起到缓冲、隔离、阻抗匹配的作用。原理图如图5所示。
图5 电池电压读取模块电路原理图
本文设计的运动控制系统程序分为地面控制终端的上位机程序和机载控制器运行的运动控制器程序,程序结构如图6所示。上位机程序的主要功能包括人机交互界面和机器人状态监控,上位机程序会对巡检机器人返回的状态值进行判断,如果出现报错信息,如电机驱动器错误等,会在界面上显示相应错误信息。运动控制器程序包括工控机程序和STM32控制板程序,其中,工控机程序主要控制巡检模式下的相应动作,并对STM32控制板发出运动命令。STM32控制板程序负责电机速度规划、电池电压读取和巡检机器人里程计算。
图6 运动控制系统软件结构图
在整个系统中,电机速度控制方法的选取直接影响巡检机器人线上运行的精度与平稳性,里程计算结果反映机器人的实时位置[7],影响缺陷的定位精度,避免局部缺陷的扩大[8],在整个系统中起到决定性的作用。
运动控制器常用的加减速控制算法主要有梯形加减速控制算法、指数型加减速控制算法、S型加减速控制算法等。其中,梯形加减速控制算法和指数型加减速控制算法的实现相对简单,但均存在加速度突变的情况,这增加了运动过程的不稳定性,不利于巡检机器人在导线上的平稳运动[9]。S型加减速控制算法相对复杂,但其加速度曲线在运动过程中保持连续,减少了速度突变可能导致的冲击和打滑等现象,提高了机器人线上的运动精度。本文所设计的运动控制器采用七段S型加减速控制算法控制机器人运动。
七段S型加减速控制算法包括加加速阶段、匀加速阶段、减加速阶段、匀速阶段、加减速阶段、匀减速阶段、减减速阶段[10],加加速度曲线、加速度曲线与速度曲线分别如图7(a)~图7(c)所示。其中,vmax表示最大运动速度,amax表示最大加速度,J表示加加速度。
图7 S型加减速曲线示意图
在设计的系统中,机器人的最大运动速度vmax、最大加速度amax以及加加速度J均为固定值。STM32根据速度曲线对PWM比较寄存器CCRx的值进行更新,改变PWM的占空比,达到控制电机转速的目的。
在设计的系统中,基于STM32的底层控制器通过读取直流电机编码器脉冲获得机器人的实时运动速度,通过对速度曲线进行积分,可以得到机器人运动的距离,由于STM32读取的速度值为离散量,本系统中采用梯形积分法进行计算。假设k-1时刻速度为vk-1,k时刻速度为vk,则k-1到k时刻区间内的距离sk为
sk=(vk+vk-1)tk,k-1/2
(1)
由式(1)和图8可以看出,积分结果为近似值,存在一定的误差,缩小积分区间可以减小积分误差,但过密的计算频率会极大增加计算负担,造成浪费,因此,需要合理确定积分时间,以达到计算成本与计算精确度的平衡。本程序中每0.1 s进行一次积分运算,经过仿真计算,可以基本忽略积分误差,符合系统的要求。计算得到的结果由STM32底层控制板通过数传电台传至地面控制终端,通过交互界面显示。
图8 梯形积分曲线
电机速度控制实验主要测试S型加减速控制算法的效果。测试过程中,电机空转,由静止加速至最大速度vmax,匀速转动1 s后减速至零。测试程序每0.05 s读取电机转速并记录,对采集数据进行分段曲线拟合并与速度规划曲线进行比较,结果如图9所示。由图9可知,采集数据基本符合速度规划曲线。
图9 采集数据与拟合曲线
本实验在实验室前期研制的碳纤维导线巡检机器人平台上进行,机器人平台如图10所示。机器人安装本文设计的运动控制系统,在模拟线路上运动,线路长度20 m。线路上每隔1 m设置标记,机器人由0 m处出发,运动15 m。机器人运动停止后用米尺测量实际运动距离,并与上位机交互界面上显示的里程计计算距离相比较,计算误差,实验数据见表1。由表1中数据可以看出,定位精度误差在2%以内,满足巡检机器人的工作要求。
图10 巡检机器人实物平台
表1 定位精度实验数据
本文设计了一种用于架空导线巡检机器人的运动控制系统,完成了STM32底层控制器的硬件电路设计与搭建。通过S型速度控制算法对电机加减速过程进行速度规划,减小了电机速度突变对机器人的冲击,改善了机器人线上运行的平稳性,提高了机器人的运动精度。通过梯形积分法对机器人里程进行计算,确定了合理的积分时间,达到了计算精度和计算成本的平衡,并完成相应的软件设计实现。最后通过实物平台实验,验证了系统能够满足架空导线巡检机器人的工作需要。