简易单轴运动控制器的设计
2011-02-09刘汉忠周伯荣李宏胜
刘汉忠,周伯荣,李宏胜
(南京工程学院 自动化学院, 南京 211167)
0 引言
目前运动控制器主要有两种,一种主要是以专用运动控制芯片或CPLD、FPGA方式存在,通常结合DSP、ARM一起使用。第二种采用了基于PC标准总线的运动控制器,在硬件设计上采用板卡方式,这种结构的运动控制器不宜长期工作在环境恶劣的工业现场,另外与PC机一起使用增加了应用成本,且增大了控制系统的体积[1,2]。
本文介绍了一款简易单轴运动控制器,其仅用一芯片实现插补和IO管理,提供多种运动方式,位移、速度、加速度等参数任意设置,适用于步进电机的精确定位控制。
1 硬件设计简介
简易单轴运动控制器仅采用Microchip公司的dsPIC30F2010完成显示、按键、单轴插补等任务,显示采用6位数码管,段码数据通过dsPIC的SPI接口输出至74LS164,后并行输出至数码管,位选数据通过74LS138译码后输入74LS244,其输出引脚接数码管位控脚。按键采用独立式键盘,分别有模式、设定、移位、位加、运行、停止、复位。剩余IO引脚接限位、原点开关等以备扩充。
2 程序设计
2.1 程序规划
dsPIC30F2010采用12M外部晶振,内部8倍频,由于时钟周期是4倍的振荡周期,所以时钟周期是1/24 us,允许情况下尽可能提高振荡周期,这样可以提高输出脉冲频率,由于dsPIC30F2010完成显示、按键、单轴插补等任务,故主程序循环扫描按键,显示由定时器T1完成,定时器T0做单轴插补运算以及脉冲输出。由于dsPIC30F芯片可以实现中断欠套,这样把定时器T0设置为最高中断优先级,并使能中断欠套功能。
2.2 按键扫描程序
按键扫描可以在定时器中断程序执行,也可以在主程序的while循环部分(程序采用C语言开发)执行,这里相比较而言,后者更合适,因为若在定时器执行的话,中断会由于变量的压出栈而影响最高输出频率。while循环部分按键扫描流程如图1所示。显示程序在T1中断程序执行,T1定时时间为3ms,具体过程不再详述。
2.3 插补程序
步进电机加减速通常有三种方法:直线加减速、指数加减速、抛物线加减速,后两种方法,步进电机可能因为升降速太快而丢步,影响定位精度,下文介绍了精确定位过程中实现任意直线加减速的方法,如图2所示,设位移设定值是已Pn、最大速度是Vmax、加速度是Acc,根据公式=2×Acc×Pn,为实时速度,可得=
图2 同步启动加速曲线-脉冲图
定时器T0中断程序中根据式(3)实时计算下一时刻脉冲频率所对应的定时时间值,按此公式,dsPIC根本无法实时计算出该值。这里介绍一种延时启动直线加减速脉冲生成方法。如图3所示
图3 延时启动加速曲线-脉冲图
曲线1表示速度加速曲线,现把该设定曲线延时 时间,即曲线2,在曲线2初始时刻发首个脉冲,此时速度值
t0取值越小,则实际加速曲线越逼近给定加速曲线,这里为计算方便取t0为0.1s,由式 (4) 很容易求出初始时刻v1(一般将v1放大10倍,以避免浮点数乘除运算),根据式 (8)、(5)分别求出vi、ti,由ti求出装载定时器T0的初始值。同样可以分析得出减速过程中
匀减速初始时刻vi-1就是加速过程中达到的速度最大值。
在加减速过程中,用户设置的位移值、加速度值可能较小,最大速度值又可能较大,所以DSP在运算过程中要判断是否有匀速运动过程,如图4、图5所示,具体方法如下:
图4 有匀速过程的速度位移曲线
图5 无匀速过程的速度位移曲线
首先计算中间位移点Pm=Ps/2,并对定时器T0输出脉冲数进行计数,设计数变量为j,当j<Pm时,实时判断当前速度是否到达设定的最大速度值,若到达,则记录当前输出脉冲数P1,根据对称性,可知在第(Ps-P1)个脉冲开始减速。若j=Pm时,当前速度依旧小于设定的最大速度值,则系统随即开始减速,两者都直至输出Ps个脉冲后停止。综上所述,定时器T0流程如图6所示,右侧是加速段流程,中间是匀速段流程,左侧是减速段流程。
3 试验结果
运动控制器参数根据实际需要设定,试验中,位移设定为40000脉冲,最大速度为4000脉冲/s,加速度为4000脉冲/s2,加速过程捕获的输出脉冲波形如图7所示,其脉宽不到40us,该脉宽时间主要是计算公式(8)、(5)所消耗的时间,根据对称性,在减速段脉宽时间相同,匀速段不需实时计算下一时刻输出脉冲频率大小,其脉宽可以通过延时来获得,由此可见,用该方法,控制器在加减速段输出最大脉冲频率至少可达25k。
图6 定时器T0中断程序流程图
图7 加速段输出脉冲波形
4 结论
步进电机在较高速度下运行要取得较好的定位精度必须考虑加减速过程,本文介绍的单轴单芯片运动控制器,成本低、性能好,运动方式多,参数设置灵活、方便,能在不同位移、速度、加速度下实现步进电机精确、快速、有效的定位控制,有一定市场应用价值。目前该运动控制器在某小型钻孔设备上得到了较好的应用。
[1] 杨凯峰. 单轴运动控制器的设计[D]. 华中科技大学. 2008.
[2] 王文斌. 一种新型独立式运动控制器的研究[J]. 制造技术与机床. 2008, 12:75-78.
[3] 王强. 基于ARM的开放式数字运动控制器的设计[J]. 机械设计与制造. 2010, 3:15-17.
[4] 宋蓓. 基于DSP的开放式运动控制器的设计[J]. 电机与控制应用. 2009, 36(4): 23-25.
[5] 詹海菊. 基于DSP的运动控制器的研究与开发[J]. 微计算机信息. 2008, 24(8-2):202-204.
[6] 范庆彬. 基于DSP的伺服运动控制器研究与开发[J]. 自动化技术与应用. 2008, 27(6): 32-34.