基于C8051F340的二自由度运动平台
2014-03-26李向广
金 星, 李向广
(长春工业大学电气与电子工程学院,吉林长春 130012)
0 引 言
在二维平面上自由移动是各种数控加工系统的重要功能,二自由度运动平台在各种数控加工系统中的应用也十分广泛。单片机具有体积小、价格低、性能可靠等优点,步进电机在位移控制方面有着独到的优势。因此,基于单片机和步进电机设计二自由度运动平台系统是一种重要的方法和手段,该系统可以实现在二维平面上作高精度、高可靠性自由移动,并且有较高的实际使用价值[1]。
1 系统设计
1.1 机械结构设计
本运动平台机械结构如图1所示。
包括:X平台、Y平台及安装在Y平台之上的工作台,X,Y平台均包括步进电机、滚珠丝杠和支撑工作台的圆柱导轨。X平台上的步进电机转动,带动滚珠丝杠旋转,Y平台和工作台便可在X轴向上自由移动。同理,Y平台上丝杠转动可以带动工作平台在Y轴向上自由移动。安装在最上层的工作平台可以在X和Y这两个相互垂直的轴向上自由移动,所以,工作平台能够在二维平面上自由移动。
图1 平台机械结构
1.2 电气结构设计
本系统采用闭环控制,系统的结构如图2所示。
图2 系统结构图
包括单片机控制模块、电机驱动模块、光栅尺反馈光耦限位模块、按键显示、通信模块等。上位机通过串口发送命令,单片机输出两路步进电机控制信号,滚珠丝杠将步进电机的旋转运动转换为直线运动,实现工作平台的二自由度平面运动[2]。平台运动,X,Y轴向的光栅尺输出两路脉冲信号将工作台的绝对位置反馈给处理器。平台的运动极限位置分别用4个光耦标定X,Y轴向的零位和满位,防止电机运动到极限位置因堵转而损坏。在上位机无指令的情况下,可用按键控制平台运动,液晶实时显示平台的运动模式和X,Y轴的坐标。
1.3 系统软件设计
系统软件部分由上位机软件和下位机软件构成。
上位机软件采用Visual C++6.0编写,其主要功能是为操作人员提供一个简单便捷的操作界面,方便用户设定平台的运动模式,设置平台运动参数[3]。
下位机软件使用C语言编写,其实现功能有:
1)与上位机通信;
2)对步进电机实时控制并将运动模式和坐标显示到液晶上;
3)读取光栅尺、光耦等反馈信号。
下位机软件系统流程如图3所示。
图3 系统软件流程图
上电后系统进行初始化,初始化结束后等待上位机命令。下位机接收上位机命令后,确定运动方式、运行参数后驱动电机做相应运动,并通过光栅尺反馈信号进行精确定位和控制。任务结束后,可以重新设定运行模式和参数,也可以通过按键使平台回到X,Y零位,即回到坐标原点。
2 运动控制算法
平台每行进一步都要进行:判别偏差、进给坐标、计算新偏差和终点判别4个步骤。
2.1 直线插补算法
系统采用的是改进的逐点比较直线插补算法,以避免单片机进行较复杂的数学运算。现以第一象限为例求其偏差公式。
直线插补过程如图4所示。
图4 直线插补过程
设平台沿直线OA运动,以原点O为起点,以A为终点,P(xi,yi)为工作点,设偏差判别函数为:
通过式(1)计算Fi,j的值就可以判别P点与的相对位置,从而运动台作出相应的反应趋向,每前进一步判别一次Fi,j,然后控制运动台向靠近,逐点比较,逐步前进,逐点靠近[4]。当到达A点后,发出信号,停止运动。由于平台每前进一步都要进行偏差判别、进给坐标,计算新偏差和终点判别,按照式(1)的思想进行下位机软件设计,要进行乘法和减法计算,同时单片机还要让液晶实时显示坐标,其运算量较大,严重影响系统的实时性和精度。因此本设计采用改进的插补算法,用前一步的偏差计算本次偏差:
若Fi,j≥0时,平台需向+x方向前进一步,平台从(xi,yj)到达新点P(xi+1,yj),新点坐标为xi+1=xi+1,yj=yj,因此新点P(xi+1,yj)的偏差值为:
若Fi,j<0,则平台需向+y方向前进一步,新点坐标为xi=xi,yj+1=yj+1,新点P(xi,yj+1)的偏差值为:
由式(2)和式(3)可以看出,后一点的坐标偏差可以由前一点的偏差值计算得出,只需做简单的加减法,对于适合做加减法的单片机而言,此方法比其它直线插补算法运算简单、程序编写容易且不失精度[5]。
2.2 圆弧插补
圆的轨迹运动核心思想是把点到圆心的距离和此圆的半径进行比较来反映运行偏差。下面以第一象限逆圆弧为例求偏差计算公式[6]。
圆弧插补过程如图5所示。
图5 圆弧插补过程
求Fi,j的过程中含有4个平方计算,非常不便于单片机的软件设计,系统响应慢,实时性低,为了降低运算的复杂性,需要对偏差判别式进行简化来计算新的运行偏差。
设P(xi,yj)在圆弧外侧或圆弧上,则偏差为Fi,j≥0,x坐标需向负向前进一步,移到新点P(xi+1,yj),此时新点横坐标为xi-1,纵坐标值仍为yi,新点P(xi+1,yj)的运动偏差为:
同理,当点p(xi,yj)在圆弧的内侧时,Fi,j<0,那么,纵坐标需向正方向前进一步,移到新点p(xi,yj+1),此时新点的横坐标不变仍为xi,纵坐标则变为yj+1,新点p(xi,yj+1)的运动偏差为:
由式(5)和式(6)可知,通过前一点运动偏差可以避开复杂的平方运算,轻松得到当前点的运动偏差,且不失精度。
2.3 终点判别
本项目采用的终点判别方法是设置一个终点减法计数器E,插补运算开始前记入该程序x及y坐标的加工总长(即x和y的位移总步数),在插补过程中,x或y向每走一步,就从总步数中减去1,直至E中存数被减为零,表示到达终点。
3 系统测试
3.1 直线圆弧测试
选用的步进电机型号为56BYG250D步进角为1.8°,采用2细分步进电机驱动器[7-8],滚珠丝杠螺距为4 mm;光栅尺型号为SR-4N-T-5X-350-0-0,平台在X或Y轴向上每移动1 mm产生250个脉冲,经过倍频电路后产生500个脉冲。通过上位机设置起止点坐标,平台按“矩形-斜线-圆”轨迹运动,测得试验结果如图6所示。
图6 试验结果
3.2 试验结果分析
由试验结果可以看出,即使将试验画笔的机械误差叠加上,平台在连续动作后的累积误差也保持在0.5 mm以内,这样的精度对于高可靠性、低成本的单片机控制的二维自由运动平台来说已是很高。
4 结 语
由于采用如此高精度的光栅尺来定位平台运动的绝对位置,可以避免电机因平台过重导致的失步而使精度下降的问题。高精度的机械结构加上改进的逐点比较插补算法,可以确保整个平台的高精度运行。
[1] 董永谦,狄希远,张志耀,等.高速精密运动平台研制[J].电子工艺技术,2011,32(3):173-176.
[2] 王晓明.电动机的单片机控制[M].北京:北京航空航天大学出版社,2002.
[3] 于建清,龚德俊,徐永平,等.步进电动机控制二维运动平台系统的软件设计[J].电机与控制应用,2008,35(3):18-20.
[4] 唐慧锋.改进逐点比较法圆弧插补的研究与仿真[J].微计算机信息,2006,22(15):240-241.
[5] 杨威,应保胜.逐点比较直线算法的优化[J].武汉科技大学学报:自然科学版,2012,35(3):222-224.
[6] 浦艳敏.关于数据采样圆弧插补算法的研究[J]. 2009,15(5):54-56.
[7] 安志勇,杨帆,曹秒,等.STC单片机和绝对式编码器的步进电机控制算法[J].长春工业大学学报:自然科学版,2013,34(1):64-68.
[8] 郑振华,郭庆,吴国铖.基于插补算法的二维数控平台研究与设计[J].测控技术,2010,29(6):58-61.