基于DSP和PowerPC的开放式伺服控制系统设计
2016-12-19黎剑华张仁杰李夏青
黎剑华,张仁杰,刘 虎,李夏青
(上海理工大学 光电与计算机工程学院,上海 200093)
基于DSP和PowerPC的开放式伺服控制系统设计
黎剑华,张仁杰,刘 虎,李夏青
(上海理工大学 光电与计算机工程学院,上海 200093)
设计了一种基于DSP和PowerPC的开放式伺服控制系统,该系统主要采用TMS320C6713微控制器实现通信及控制算法的运算。硬件部分介绍了双端口RAM电路、电源电路及复位电路,并提出了PowerPC端和DSP端基于双端口RAM芯片进行通信的方法。软件部分每400us进行一次伺服采样运算并通过PID调节进行误差补偿。通过实验对PID算法部分进行参数整定及误差分析,结果证明,该伺服运动控制系统可达到良好的控制精度。
开放式数控系统;伺服运动控制器;DSP;PID
运动控制技术是基于高性能微处理器,对运动轨迹规划进行计算使机械系统按照预期进行运动,当出现偏差时能实现高速的实时运动误差补偿,保证系统的高的控制精度和伺服电机高的运动速度[1-3]。
本文基于开放式数控系统提出了一种基于PowerPC上位机,以DSP作为主控单元完成伺服运算的伺服运动控制系统。控制器向伺服驱动器下发电压变化范围为(-Ui-Ui)的速度指令信号[4-6],并通过采集编码器的反馈信号以实现电机控制。本文实现了数字式PID伺服控制算法,控制算法的引入减小了伺服控制误差,达到了设计的预期效果和要求,具有较高的实用价值。
1 系统的总体设计
运动控制时DSP与PowerPC两者之间需要大量的数据传输。为提高DSP与PowerPC机之间数据传输的速度,本文使用VME协议作为数据传输的总线协议。系统硬件架构框图如图1所示。双口RAM集成了两个不同的硬件存储访问接口,这两部分各自有不同的读写控制总线,DSP和PowerPC两端可对双端口RAM的地址空间进行互不影响的读写访问;DSP主要完成的工作是接收PowerPC上位机指令,处理运动控制算法,实时向伺服驱动器下发变化的电压量,并通过检测运动的位置,完成位置误差的补偿。
图1 系统硬件架构框图
2 硬件设计
2.1 TMS320C6713微处理器
DSP是运动控制器的控制芯片,其性能决定着电机的运行速度和精度。本文选择DSP的型号为TMS320C6713,芯片框图如图2所示,其内部包括中央处理单元、内部存储器、寄储器和外设4部分。其中,中央处理单元其组成包括:程序取指、指令分配、指令译码3个单元、2个数据通路、以及控制寄存器和逻辑、测试和仿真单元、中断选择控制器等。DSP内部存储采用哈佛结构,分为独立的数据空间和程序空间数据处理速度较快。另外片内功能外设较多,需包括:(1)高性能的DMA控制器,可完成与外部存储器SDRAM等的数据交换,无需CPU的直接参与;(2)HPI主机接口、EMIF外部存储器接口,通过芯片内部这些接口,DSP可与多种外设交换数据信息;(3)两个32位通用定时器,作为事件定时、事件计数、产生脉冲,还可向DMA/EDMA控制器发送同步事件;(4)多通道缓冲串口,为了提高通讯时数据的传输速度,其可在DMA/EDMA控制器的帮助下,在存储器中自动缓冲串行数据。
图2 TMS320C6713框图
2.2 双端口RAM电路设计
本文使用双端口RAM作为DSP与PowerPC数据通信的介质。芯片型号为CY7C1061AV33,其电路如图3所示。此芯片为高性能的CMOS双端口RAM(Dural Ported Random Access Memory,DPRAM),内存大小为1 MB。设置RAM芯片的数据总线为16位的位宽,可满足设计对数据传输宽度的要求。
图3 双端口RAM接口电路图
CY7C1061AV33内部集成了两个不同的硬件存储访问接口,这两部分各自有不同的读写控制总线,DSP和PowerPC两端可对双端口RAM的地址空间进行独立的读写访问;另外芯片内部集成了优秀的仲裁逻辑,芯片内部设计的忙逻辑和中断逻辑等电路可判断出DSP和PowerPC两侧端口的使用状况,避免数据访问冲突,保证了DSP和PowerPC两侧可以对同一地址空间进行异步操作。
2.3 电源管理及复位模块
TMS320C6713芯片采用低功耗的设计模式,芯片IO引脚部分和CPU内核所需的供电电压分别为3.3 V和1.8 V。为得到稳定的电源电压,本文电源模块的电路设计使用TI的电源管理芯片TPS70302。TPS703xx系列的电源管理芯片在进行电源设计时所需外围电路简单,抗干扰能力强,可为DSP芯片提供稳定的电源电压。TPS70302支持两路电压输出时,最大输出电流为2 A,输入电压范围为2.7~6 V,两路输出电压范围为1.2~5.5 V。另外DSP系统的工作频率较高,在系统上电时,易发生高频干扰导致程序跑飞,所以根据需要设计了上电复位电路。电源管理及复位电路的电路设计如图4所示。
图4 电源管理模块
3 软件设计
3.1 控制软件架构
在进行DSP软件设计时,遵循模块化和层次化的设计思路[8],为使程序结构清晰,将软件按功能划分3个层次:(1)主控层。负责上位机命令的接收以及任务调度,在完成相应的中断设置、硬件初始化、就进入while循环中,程序轮询外部存储器接口接收命令;(2)通讯接口层。负责与硬件的接口,所有与双端口RAM有关的操作都在该层进行处理;(3)算法层。是数字伺服控制软件设计的核心,系统的主要功能均在这一层实现,算法层实现了伺服运动控制的控制算法。其是通过定时器定时400 μs,CPU进入中断函数调用算法层的函数来实现的,DSP程序流程图如图5所示。
图5 DSP程序架构框图
3.2 双端口RAM通讯机制
DSP软件将DPRAM划分为命令接受区,应答发送区和错误返回区3个部分,图6为DPRAM各段的划分情况。在3个区域里定义了读写DPRAM的读写标志控制区,以实现PowerPC和DSP芯片对DPRAM的3个区域数据的读写控制。程序定义了3个区域的基地址,标志控制结构体的成员变量包括数据块类型、目标运动控制板卡的状态、当前下发的命令ID、当前下发的命令子ID、本条命令的超时值、传送的数据包的总长度、当次的数据包长度、RAM写权限所有者。
#define COM_DPRAM_BASE 0xA0000100
#define RPL_DPRAM_BASE 0xA0000200
#define ERR_DPRAM_BASE 0xA0003000
typedef struct
{
SMEE_BOOL is_rpy_buf; //F8数据块类型
unsigned int channel_id //FC标示当前通道ID
vme_dpram_status_enum Status;//100运动控制板卡的状态
unsigned int CmdID; //104当前下发的命令ID
unsigned int filler; //108当前下发的命令子ID
unsigned int timeout_or_rtn_val; //10C本条命令的超时值
unsigned int TotalLength; //110传送的数据包的总长度
unsigned int CurLength; //118当次的数据包长度
unsigned int Owner; //11C DPRAM写权限所有者
}dpram_flag_struct;
图6 DPRAM区域划分
PowerPC端和DSP端对DPRAM数据读写是否拥有读写权利是通过区分DPRAM标志寄存器中的Owner标记来实现的。Owner标志为0表示DPRAM读写权在DSP端。由于PowerPC端可首先对命令接收区进行下发命令,而DSP软件可以首先对命令接受区、错误返回区进行下发命令。所以,系统上电时软件对3个区域的标志位初始化的值不同。0xA000 011C为接收通道Owner的内存地址,默认设置接收区的标志位为1。0xA000 031C为发送通道Owner的内存地址,默认设置接受区的标志位为0;0xA000 311C为错误返回区Owner的内存地址,默认设置接收区的标志位为0。图7为DPRAM不同区域标志位的初始化值。
图7 DPRAM不同区域标志位初始化值
3.3 PID控制算法
本文在伺服电机算法控制中采用PID算法,PID算法具有鲁棒性能好、可靠性能高、参数易于调节等特点。PID算法内部由比例、积分、微分3个环节构成,比例能够快速成倍地反应偏差量并通过调节作用来减小偏差量。积分环节的作用是减小控制位置或控制速度的稳态误差。微分项则体现了控制位置或控制速度的偏差的变化形势,通过相位超前加入一个修正量来防止偏差量变的过大,因此微分环节有利于缩小误差调节周期、提高动态响应。如图8所示为Matlab Simulink下PID环节的仿真框图。
图8 数子PID控制框图
对于连续系统的数字PID控制器,其控制方程可表示为
(1)
其中,u(t)是控制器的输出信号;e(t)是控制的轨迹规划的目标位置与测量系统测量得到的反馈位置的距离差。Kp是比例放大倍数,Ki是积分放大倍数,Kd是微分放大倍数。通过拉氏变换写成传递函数形式为
(2)
在进行程序设计时,需要对连续的时域信号做离散化处理,离散的PID控制有基于有增量式的离散表达式
Δu(k)=kp(e(k)-e(k-1))+kie(k)+kd(e(k)-2e(k-1)+e(k-2))
(3)
得到离散化的表达式后,程序编写变得方便。
4 控制误差分析
在调试伺服系统时,要考虑控制误差这一参数,其决定了系统的控制精度。其是指位置指令与位置检测单元反馈的差值,将这差值绘成曲线即称为误差曲线。为获得良好的控制性能,PID算法需要有匹配的参数。在进行比例调节时,Kp参数跟伺服带宽、超调量直接相关、影响伺服稳定时间即响应速度;控制回路高增益可改善指令信号的响应,同时改善对扰动的响应[9]。图9为单独调节Kp参数时,伺服系统的控制误差,图4每400 μs采样一次,共2 048个误差采样点。
图9 不同Kp值时伺服位置误差
由图9可看出,Kp=300时,伺服系统的误差在5 μm范围内变化,数据的前半部分,电机处于加速状态,伺服误差会有超过10 μm的情况。相比Kp=300时,当设置在Kp为400时伺服误差平均值较大,并出现了一些超调的现象。参考表1中不同Kp参数下的控制误差值分析。可得出Kp=300是较好的参数选择。
图10为单独调节Ki参数时,伺服系统的控制误差。参考表2中不同Ki参数下的控制误差值。可知Ki参数为1时,平均控制误差最小,是较好的参数选择。另外在进行参数整定调试时需要注意,回路噪声、非线性随机噪声也会在增益下放大,必须满足伺服控制环路处于稳定状态。
图10 不同Ki值时伺服位置误差
表1 不同Kp参数下的控制误差值分析
表2 不同Ki参数下的控制误差值分析
5 结束语
在开放式数控系统的基础上,主要研究了PowerPC+伺服运动控制器,介绍了硬件电路的设计方法以及DSP和PowerPC之间共享双口RAM进行数据通信的实现机制,以满足伺服控制系统对数据传输实时性、稳定性的要求。并对DSP软件进行层次化设计,控制算法的引入减小了伺服控制误差。本设计方案简洁并具有良好的控制精度,在工业运动控制领域中,可为伺服运动控制系统的研究提供参考。
[1] 刘秀玲.基于共享RAM的DSP与PC机之间通讯接口技术[J].山西师范大学学报:自然科学版,2012,16(2):20-23.
[2] 张清明.基于DSP 的开放式运动控制器的研究及应用[D].武汉:华中科技大学,2002.
[3] 谢万德.基于DSP的多轴运动控制器的研究[D].杭州:浙江大学,2002.
[4] Chassaing R, Reay D. Digital signal processing and applications with the TMS320C6713 and TMS320C6416 DSK[M].New York:Willy Press,2005.
[5] 吴宏,蒋仕龙,龚小云,等.运动控制器的现状与发展[J].制造技术与机床,2004(1):24-27.
[6] 卢志刚,吴杰,吴潮.数字伺服控制系统与设计[M].北京:机械工业出版社,2007.
[7] 田宇.伺服与运动控制系统设计[M].北京:人民邮电出版社,2010.
[8] 冯娟.基于DSP的运动控制卡的软件设计[D].广州:广东工业大学,2008.
[9] Gunter Pritsehow. A self-tuning controlller for digitally controlled electronmechanical servo drivers in machine tools[J].Annals of the CIRP,2009,48(9):307-312.
[10] 韩钧,康怡.双口RAM在DSP与单片机数据通信中的应用[J].电力系统通信,2006,27(8):56-58.
The Design of Open Servo Control System Based on DSP and PowerPC
LI Jianhua,ZHANG Renjie,LIU Hu,LI Xiaqing
(School of Optical-Electrical and Computer Engineering ,University of Shanghai for Science and Technology,Shanghai 200093, China)
This paper introduces the design of open servo control system based on DSP and PowerPC. This system mainly uses TMS320C6713 micro controller to realize communication and control algorithm. The hardware part introduces the design method of dual port RAM circuit, power circuit and reset circuit, and puts forward a communication method based on dual port RAM chip for PowerPC and DSP ports. In the software part, once a servo sampling operation is performed on each 400us and the error compensation by PID adjustment. Finally, the experiment on the part of the PID algorithm is carried out parameter tuning and the error analysis. And the results show that the servo motion control system can achieve good control accuracy.
open CNC system; servo motion controller; DSP; PID
2016- 01- 25
黎剑华(1990-),女,硕士研究生。研究方向:仪器仪表工程。张仁杰(1956-),男,博士,教授。研究方向:在线检测,信号处理等。
10.16180/j.cnki.issn1007-7820.2016.11.009
TN
A