嵌入式单轴控制器的设计与实现*

2014-06-29 10:07黄昭县王志成赵鸿博
组合机床与自动化加工技术 2014年8期
关键词:单轴驱动器嵌入式

黄昭县,王志成,赵鸿博

(1.中国科学院大学,北京 100049;2. 中国科学院 沈阳计算技术研究所,沈阳 110168;3.沈阳高精数控技术有限公司,沈阳 110168)

0 引言

在工控领域中,单轴运动是最基本、最常见的运动,因此设计结构简单、控制灵活、成本低廉的单轴控制系统一直是国内外伺服系统研发中的热点。

传统的单轴控制系统采用单轴控制器+伺服驱动器的分立方式。首先,这种分立方式中单轴控制器和伺服驱动器是独立的产品,成本较高,而且二者间连接复杂,通讯时延较长[1]。再者,传统单轴控制器只是完成加减速控制,在上层仍需要一个复杂的数控系统解释执行运动控制程序,这在一些简单的应用中无疑是极大的浪费。

近年来随着微电子技术的迅猛发展,伺服驱动器的硬件性能得到很大提高,有更多的资源来支持复杂功能的实现,使单轴控制器的功能集成在伺服驱动器中成为可能。

基于以上两点,本文设计实现了一种嵌入式单轴控制器,并将其嵌入到高性能伺服驱动器中,使伺服驱动器具有加减速控制和解释执行运动控制程序的功能,降低了系统成本,增加了系统的灵活性。

1 总体结构设计

1.1 时序问题

典型的轴控制系统如图1 所示,包括轴控制器、伺服驱动器和被控对象三个部分。轴控制器根据上位机传递的运动参数完成加减速控制,将位移指令传递给伺服驱动器;伺服驱动器进行速度位置闭环矢量控制,将驱动信号传递给伺服电机,完成伺服控制。

轴控制器一般由CNC 或PLC 实现,伺服驱动器一般采用功能强大的DSP,并且基于实时操作系统控制平台。二者分属于不同的硬件,运行于不同的CPU,相对独立,不存在复杂的时序问题。

嵌入式单轴控制器如图1 虚框所示,将轴控制器和伺服驱动器集成在一起,但并不是简单地集成到一块电路板上,而是使两者共用一个高性能CPU,需要解决复杂的时序问题。因此需要良好的系统结构设计才能达到性能的要求。

图1 伺服控制系统结构

1.2 嵌入式单轴控制器体系结构

鉴于伺服驱动器强大的硬件性能和实时控制要求,设计将轴控制器嵌入到伺服驱动器中,并增加解释执行运动控制程序的功能。参考文献[2]中提到的可重构伺服驱动器,基于TI 公司的DSP/BIOS 实时操作系统,利用层次化思想对整体结构进行设计。

整个嵌入式单轴控制器体系结构如图2 所示,分四个层次:硬件层、驱动层、控制层、应用层。硬件层为外部被控对象(电机)和伺服驱动单元硬件。驱动层是硬件上的第一层软件,实现对硬件层的抽象和封装,并向上层提供服务支持。控制层主要包括指令序列的存储、解释器、函数库和运动控制器以及电机三环矢量控制。其中解释器完成指令代码的解释,函数库是相应的指令处理函数,运动控制器完成加减速控制。应用层是建构在最上层的非实时性任务,主要完成系统的人机交互、通信、参数管理等功能[2]。

图2 嵌入式单轴控制器体系结构

DSP/BIOS 实际上是一个代码很小的实时库,包含一个固定优先级抢占调度器,用户通过调用系统提供的API 函数使用实时库的服务[3]。为了解决复杂的时序问题,在控制层设计高、中、低三种优先级:电机三环矢量控制处于高优先级,运动控制器处于中优先级,解释器处于低优先级。

整体的工作流程如下:首先,在上位机中用类汇编语言进行编程,编译后通过应用层的通讯接口将程序指令代码序列下载到嵌入式单轴控制器中;然后,控制层的解释器对指令代码程序进行解释,并根据不同的指令标识符调用函数库中不同的指令处理函数进行处理,将运动参数传递给运动控制器;最后,运动控制器根据不同的加减速控制规律做轨迹规划,将位置指令、启动/停止等命令传递给电机三环矢量控制,以此来控制电机的运动。

在嵌入式单轴控制器中,轴控制器和伺服驱动器间指令信号的传递由内部的共享内存替代传统的通讯接口,消除了时延,提高了系统的实时性;增加解释器和运动控制器,使伺服驱动器能够解释执行运动控制程序,并能对加减速进行控制,提高了系统的灵活性。

2 解释器的设计

嵌入式单轴控制器中,解释器的功能是把指令代码序列解释为一系列的操作,并将运动控制参数传递给运动控制器。其中每一行指令代码(如401,100,300,3000)完成一个操作。每一行指令代码中“401”是指令标识,“100,300,3000”是参数。解释程序读取一行指令序列后根据不同的指令标识调用不同的指令处理函数,指令处理函数返回要读取的下一行指令序列号并给出运动参数和控制指令等。

2.1 指令格式设计

首先,对指令格式进行设计,如图3 所示。一条指令由指令标志符和参数组成,有两种指令格式:一种指令最多有3 个参数,每个参数占2 个字节;另一种指令最多有2 个参数,参数1 占2 个字节,参数2 占4 个字节。

图3 指令格式

在嵌入式单轴控制器中用结构体来存储指令,结构体如图4 所示:cmd 存储指令标识符,p1 存储参数1,p2 和p3 存储第一种格式中的参数2 和参数3,p3 存储第二种格式中参数2,p2 和p3 与p23 共用一个联合体。

图4 指令存储结构体

在文献[6]中提到的可重构伺服驱动器调试工具中,这些指令用类汇编的标识符表示,如运动类指令中的DRIVID 表示运动到某个位置。编程时采用“标识符+参数”的方式,例如DRIVID 1000 表示运动1000个脉冲。在单轴控制器中,这些指令用数字标识符表示,如DRIVID 用101 表示。

指令参数可以是立即数和变量,根据不同的功能设计了3 种变量类型,S 型:在程序中只读,不可写及修改,主要用于上位机的编程;M 型:程序中可读可写,主要用于程序运行中数据的暂时存储;B 型:位变量,取值为0 或1。主要用于控制信号。

2.2 指令集的设计

编程中常用的指令主要包括运动类指令、控制类指令、运算类指令、跳转类指令、逻辑类指令和数据传送类指令,如表1 所示[4]。

在表1 中,对指令参数约定如下:

#line 表示行号

#data 表示立即数

#[S] 表示参数存储在S 型变量中

#[M] 表示参数存储在M 型变量中

#[B] 表示参数是某个B 型变量

为方便描述,在下面表格中,若无特别说明,#[S]表示既可以是S 型变量,也可以是M 型变量。

表1 指令集

续表

2.3 状态机的设计

设计有限状态机控制解释器的运行,状态机有5个工作状态,如图5 所示:解释器在系统启动时完成初始化任务,包括对M 型变量和B 型变量的初始化;然后进入begin 状态,由begin 状态进入run;在run 中,解释器根据不同的指令标志符调用不同的指令处理函数,然后根据指令函数的返回值决定进入end、wait 还是继续run。在运行过程中,如果遇到错误指令,则返回错误标识并断电停机。

图5 解释器状态图

3 运动控制器的设计与实现

运动控制器从解释器获取运动控制参数和控制命令,根据实际需求选取不同的加减速控制算法,在每个插补周期到来时给出位置指令,传递给电机三环矢量控制来完成电机的运动控制。主要工作就是完成加减速控制和轨迹规划。

3.1 加减速算法的实现思想

在伺服驱动器位置环控制模式下,给定目标位置、加速度和最大速度后,加减速控制算法在插补周期中断到来之前计算出当前周期的位置增量,然后加上前一个周期的位置给定得到当前周期的位置给定,底层位置环通过周期地刷新位置指令来驱动电机运动。每个插补周期内插补步长即位置增量体现了速度的大小,插补步长越大,速度越大;插补步长越小,速度越小。通过这种递推的方式,位置指令向目标位置递增或递减,最终到达目标位置。

3.2 直线加减速算法的实现

根据加减速算法的实现思想,在上述嵌入式伺服控制系统软件平台中的控制层实现直线加减速控制,算法流程图如图6 所示。得到运动控制参数后判断当前位置是否等于目标位置,相等则退出加减速控制,不相等则进一步判断是大于还是小于目标位置并作出相应处理得到位置给定。

图6 直线加减速算法流程图

由图6 可知,直线加减速控制的关键就是求出ΔPos,即插补步长。ΔPos 计算有多种方法,经常采用的是简单直观的面积计算法。在直线加减速控制算中,加速度是恒定的,即Vk=Vk-1+Vacc;位置增量等于平均速度与插补周期之积,即ΔPos= (Vk+Vk-1)/2·Δt,位置增量的计算问题转变成了速度Vk的刷新问题,已知插补周期两端的速度即可求得插补步长。算法流程图如图7 所示。

图7 ΔPos 算法流程图

3.3 改进的直线加减速算法

在传统直线加减速中,加速段和减速段中的加速度是常数,在系统启动和加减速结束时存在加速度突变,加速度不具有连续性,仍会产生一定冲击,因而不适用于高速高精的应用场合。

文献[5]提出了一种基于滑动平均滤波器的改进方法对直线加减速算法进行改进。参考文献[5]对每个插补周期的ΔPos 进行移动平均滤波处理,得到和S形加减速算法相似的控制效果,效果图如图8 所示。

图8 改进的直线加减速算法

4 验证与分析

为了验证嵌入式单轴控制器,以沈阳高精数控有限公司的可重构伺服驱动器为基础,将单轴控制器嵌入到伺服驱动器中,实际的实验平台如图9所示。

图9 嵌入式单轴控制器实验平台

设计了一个简单的定点运动控制实例,如图10 所示,电机以加速度500、最大速度50000 运动到200000 脉冲的位置后延时5s,然后将加速度和最大速度改变为300 和100000,运动返回原点,最后跳转到第0 行重新开始执行。

图10 定点运动控制程序

利用文献[6]设计的可重构伺服驱动器调试工具进行编程,然后编译下载到伺服驱动器中,点击上电运行,实际的运行效果如图11 所示:电机以最大速度50000 运动到200000 脉冲位置,然后延时5s,以最大速度100000 反向转动返回原点,然后往复运动,实验表明电机按照预定程序转动,验证了嵌入式单轴控制器的正确性。

5 结论

(1)设计了嵌入式单轴控制器,在高性能可重构伺服驱动器中实现,解决了复杂的时序控制问题。

(2)设计的指令集能够满足用户的需求,可以用这些指令的组合完成丰富的功能。

(3)运动控制器中对直线加减速进行移动平均滤波处理得到与S 形加减速相似的控制效果,提高了直线加减速控制的性能。

(4)设计的典型单轴控制器,为实现嵌入式多轴控制器奠定了基础。

[1]杨凯峰.单轴运动控制器的设计[D]. 武汉:华中科技大学,2008.

[2]王志成,林浒,刘伟军.基于组件技术的可重构伺服驱动软件设计[J]. 组合机床与自动化加工技术,2013(10):58 -60.

[3]董海涛. 嵌入式可重构CNC 系统研究与实现[D]. 武汉:华中科技大学2012.

[4]研控科技.PMC100 单轴控制器说明书[S]. 北京天瑞中海精密仪器有限公司.

[5]李欧.基于前瞻-滤波的加减速控制方法的研究[D]. 沈阳:中科院沈阳计算技术研究所,2010.

[6]柴宇,栾勇,王志成.可重构伺服驱动调试工具的设计与实现[J]. 组合机床与自动化加工技术,2013(7):75 -77.

[7]石彦华.工业CT 独立运动轴控制器设计[D].重庆:重庆大学,2012.

[8]张仕龙. 基于DSP 的嵌入式工程机械运动控制器研究[J].电源技术应用.2013(8):246.

[9]郑胄强. 基于DSP + CPLD 的横机伺服驱动器的研究[D].杭州:杭州电子科技大学,2012.

[10]陈桂.开放式可重构伺服系统研究与设计[J]. 现代雷达,2011(11):66 -69.

猜你喜欢
单轴驱动器嵌入式
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
气动网络多腔室弯曲软体驱动器结构优化
单轴压缩条件下岩石峰后第Ⅱ种类型应力——应变曲线的新解释
废旧轮胎橡胶颗粒——黏土的单轴抗压特性
藏起驱动器号确保数据安全
TS系列红外传感器在嵌入式控制系统中的应用
搭建基于Qt的嵌入式开发平台
空间大载荷石蜡驱动器研制
高速公路单轴称重收费区域监控方法研究
倍福 CX8091嵌入式控制器