如何采用DSP技术实现运动控制器的设计?
扫描二维码
随时随地手机看文章
运动控制技术是数控机床的关键技术,其技术水平的高低将直接影响一个国家装备制造业的发展水平。目前,多轴伺服控制器越来越多地运用在运动控制系统中,具有较高的集成度和灵活性,可实时完成运动控制过程中复杂的逻辑处理和控制算法,能实现多轴高速高精度的伺服控制。
实时实施复杂控制算法的关键这些运动控制系统已经成为功能强大的数字信号处理器(DSP)的出现。即使在要求较低但成本敏感的应用中,例如家用冰箱压缩机驱动器,也可以利用DSP的功能来实现无传感器控制算法,可降低系统成本并提高驱动器的整体稳健性。在高性能伺服驱动器中,DSP的强大计算能力允许通过矢量控制,纹波转矩降低,预测控制结构以及对非理想系统行为的补偿进行更精确的控制。
运动控制器是运动控制系统的核心部件。国内的运动控制器大致可以分为3类:
第1类是以单片机等微处理器作为控制核心的运动控制器。这类运动控制器速度较慢、精度不高、成本相对较低,只能在一些低速运行和对轨迹要求不高的轮廓运动控制场合应用。
第2类是以专用芯片(ASIC)作为核心处理器的运动控制器,这类运动控制器结构比较简单,大多只能输出脉冲信号,工作于开环控制方式。由于这类控制器不能提供连续插补功能,也没有前馈功能,特别是对于大量的小线段连续运动的场合不能使用这类控制器。
第3类是基于PC总线的以DSP或FPGA作为核心处理器的开放式运动控制器。这类开放式运动控制器以DSP芯片作为运动控制器的核心处理器,以PC机作为信息处理平台,运动控制器以插件形式嵌入PC机,即“PC+运动控制器”的模式。这样的运动控制器具有信息处理能力强,开放程度高,运动轨迹控制准确,通用性好的特点。但是这种方式存在以下缺点:运动控制卡需要插入计算机主板的PCI或者ISA插槽,因此每个具体应用都必须配置一台PC机作为上位机。这无疑对设备的体积、成本和运行环境都有一定的限制,难以独立运行和小型化。
DSP 在电机控制方面的应用是一个新领域。DSP 是应用高性能的处理器提高对电机控制精度的一种芯片。高速的DSP 主要用在电机无传感器控制和磁场定向控制中,因为在无传感器控制中需要用已知的电流和电压实时计算速度和位置,而在电机磁场定向控制中,需要把所有的变量以矢量形式转化到与定子旋转磁场同步的坐标系中,这些都需要进行大量的运算,高速的DSP可以实时完成这些工作。在价格上DSP已经从最初期的几百美元降到了几美元。16位的DSP的性能也从5Mips(百万次每秒)提高到了2000Mips。包括大容量片内存储器,还在片上集成多种外围设备。
DSP的数据运算处理功能强大,即使在很复杂的控制中,采样周期也可以取得很小,控制效果更接近于连续系统。把DSP与PC的各自优势结合将是高性能数控系统的发展趋势。本运动控制器采用TI公司的高性能浮点DSP作为主控芯片,通过ISA接口与PC协调并进行数据交换,以PC计算机作为基本平台,以DSP高速运动控制卡作细插补、伺服控制的核心,对直线电机的运动进行控制,取得了良好的实际应用效果。
基于“ PC+ 运动控制器”结构的开放式机器人运动控制系统能够充分利用 PC 开放程度高、通用性好、处理能力强等特点以及运动控制器运算速度快、实时性能好、控制能力强等特点,因此得到较快发展,成为目前的研究热点。但目前采用此种结构的开放式机器人运动控制系统中,不管是控制器供应商所提供的运动控制器或者是科研人员自主设计的运动控制器,在通用性、软硬件可重构方面都存在一些问题,影响着机器人运动控制系统的开放性。因此,本文通过研究开放式机器人运动控制器的结构特点,制定了基于 DSP+FPGA的开放式机器人运动控制器的总体设计方案。根据所制定的设计方案,设计并实现了基于 DSP+FPGA 的开放式机器人运动控制器,并研究了基于开放式机器人运动控制器的
运动控制核心算法。本文通过充分利用 DSP 的高速数字信号处理能力和 FPGA 的强大并发控制能力以及丰富的逻辑资源来使运动控制器获得较高的运算与控制能力。通过充分利用 FPGA 的逻辑编程能力来代替集成芯片以及实现逻辑连接,实现运动控制器的软硬件可重构,提高机器人运动控制器的开放性。并通过研究曲线拟合预处理技术以及速度前瞻技术来提高运动控制器的控制效率,实现高速运动控制。
本文所设计的机器人运动控制器应用于开放式机器人控制系统中,与工业 PC 、伺服系统、机器人本体等组成开放式机器人控制系统。控制系统结构形式为 PC+ 运动控制器,其中 PC 主要实现人机界面、参数配置、路径规划、机器人运动学正变换与逆变换、多机通信等功能。而基于 DSP+FPGA 的运动控制器则主要完成实时性要求较高的轨迹规划、速度规划、位置控制、以及状态反馈等任务。 PC 与运动控制器采用具有开放性的 PC104Plus 总线进行通信,通过双端口 RAM 进行数据共享与同步。系统总体结构如图 2.1 所示。其中 I/O 接口卡主要完成光耦隔离和电平转换,保护运动控制器不因来自伺服系统的脉冲电压而受到损害。伺服系统实现对机器人运动关节的伺服驱动和光电编码反馈,为运动控制器提供实时的机器人运动关节速度和位置状况。
运动控制器是数控机床、机器人等一类机电一体化设备中常用的核心运动控制部件。现代数控技术对运动控制系统的开放性、实时性、加工速度和精确度等性能指标提出了越来越高的要求。随着集成电路技术、微电子技术、计算机技术不断发展,运动控制器已经从以单片机、微处理器和专用芯片作为核心的运动控制器发展到基于PC机平台的以数字信号处理器(DSP)和复杂可编程逻辑器件(CPLD)作为核心处理器的协处理架构的开放式运动控制器。这种将P C机的信息处理能力和开放式的特点与运动控制器很强的运动轨迹控制能力有机地结合在一起,具有信息处理能力强、开放程度高、运动轨迹控制准确和通用性好的特点。这种模式在一个统一的人机对话平台上,通过DSP算法和CPLD配置进行适当的调整来实现不同的硬件功能模块,可以方便地和多种类型的驱动器进行连接。因此现在基于PC的新一代运动控制器成为控制系统的主流和发展方向。
本文开发的开放式运动控制器以PC机为平台,完成坐标变换、轨迹规划、粗插补运算等控制指令的设置和发送,同时可以实时显示当前伺服系统的运动位置、速度和电机状态等参数。运动控制器以DSP芯片作为核心处理器,完成数据处理和控制算法、进行保护中断的处理,通过PCI或USB总线与PC机实时通讯。CPLD芯片作为协处理器完成编码信号的采集,鉴相处理,对脉冲和模拟量进行配置和输出,把DSP处理过的控制数据经过内部转换送到外部设备,并管理DSP和各种外部设备的接口。该运动控制器可以完成非匀速比同步运动控制,支持NURBS插补,并提供了丰富的动态链接库函数。
2 运动控制器工作原理和硬件构成
该控制器可实现四路编码器反馈和电机控制,其核心是TI公司的TMS320LF2407数字信号处理芯片和ALTERA 公司的MAX 7000S系列CPLD器件EPM7128SLC84。控制器的硬件结构如图1所示。DSP完成与上位机的实时通讯,对伺服电机速度和位置的精确控制,电机状态监测和外部信号检测等功能。双口SRAM(DUAL-PORT STATIC RAM)不仅提供控制器与上位机的通讯接口,而且还为运动轨迹控制提供了足够的缓冲区。由于一片DSP只提供两组正交编码脉冲(QEP)电路,对于多于两个电机的控制器,若用多片DSP不仅会造成DSP资源的浪费,而且还会增加由于协调DSP之间的工作而产生的难度,因此这里我们用CPLD来提供另外两组正交编码脉冲电路,对速度、位置进行采样,同时用CPLD提供高速稳定的其它逻辑控制电路。
运动控制器由基板和接口卡组成,集成了DSP核心电路,通信电路,CPLD译码、中断、正交编码处理电路,编码器信号处理电路,电压转换电路,光电隔离电路等。运行过程中,PC机把粗插补的数据通过ISP-1581芯片传递给DSP进行时间分割精插补。在每一个伺服周期中,CPLD器件和DSP各处理两路反馈的正交编码信号进而获取实时位置和速度,DSP计算出理论插补位置与实际位置的偏差,基于速度和加速度前馈进行PID调节,计算获得速度控制量,产生的输出信号经DAC7625进行数模转换及放大电路放大后将模拟电压发送至伺服驱动器以控制电机。
DSP两个事件管理模块中的正交编码脉冲(QEP)电路可以实现对两对正交编码信号的四倍频和方向检测,其定时器工作在增减计数模式,依据电机运行情况进行计数。根据不同伺服周期定时器内数值的变化,可以计算获得电机的实际位置,由M/T测速法可求得其运行速度。另外两个电机的反馈信号由EPM7128进行处理,DSP与之通讯以获取电机运行信息。扩展4个32位寄存器用来存储电机当前位置,通过实时从计数器读取每个伺服周期走过的脉冲数与之累加实现。每隔一定的伺服周期,将4个16位的计数器赋初值32000使之重新计数。
2.1 CPLD处理电路
CPLD主要包括正交编码检测逻辑电路,DSP地址译码电路和计数器及中断逻辑四个部分,它对两个正交编码输入四倍频后进行计数,反馈给DSP。正交编码脉冲电路的方向检测逻辑决定了输入序列中的哪一个是先导序列,接着就产生方向信号作为计数器的计数方向输入。如果QEP1是先导序列,则所选的定时器增计数;如果QEP2是先导序列,则所选的计数器减计数。正交编码脉冲电路对输入的两列脉冲的两个边沿都进行计数,因此,由它所产生的时钟频率是每个输入脉冲序列频率的四倍。中断逻辑,限位和报警等信号产生时向DSP申请中断。每个轴的正负限位信号、归零信号和报警信号,四个轴共计16个信号,这些信号相或,只要有一个信号产生时就产生一个上升沿信号,此上升沿触发DSP中断,DSP以查询方式判断是哪个信号产生的中断。
2.2 控制卡通讯及接口
早期PC机通过ISA总线实现对电机的控制,但响应速度慢,实时性差,后来的PCI局部总线,解决了ISA的传输速度慢等问题。近几年通用串行总线USB(Universal Serial Bus)以其较快的传输速率和支持热插拔等诸多优点而受到用户的广泛受青睐。得到了许多硬件和软件厂商的支持。USB 2.0接口的最高传输速率由12Mb/s提高到了480Mb/s,能够更好地支持数据实时传输。把USB引入运动控制器,实现了运动控制器的热插拔,解决了计算机接口资源有限等问题,满足了多轴运动控制卡对数据实时通讯的需要。为提高运动控制器硬件上的开放性,开发了通用的接口卡,辅助完成基板与外部的通讯。除了进行反馈信号等的必要传输外,还提供了电机的限位、回零、报警、伺服使能等信号和通用I/O各8路。为防止外界信号干扰,保证控制器的可靠性和安全性,输入输出信号都经由TLP521进行光电隔离。
3 速度、加速度前馈PID控制算法
本控制器采用典型的三环调节,其中速度调节器和电流调节器的功能由伺服电机驱动器完成,电流环用来提高系统的动态响应指标,增强系统抗干扰能力;速度环用于调节伺服电机的转速。位置闭环调节原理框图如图2所示,它包括位置PID调节和速度、加速度前馈,由运动控制器底层程序完成,用于实现精确定位、回零等,输出饱和控制可保证输出电压不会超过设定范围。
4 Matlab仿真及结果分析
基于KLD-200二维数控平台进行仿真。平台由两个Panasonic公司的MSMA012A 1E伺服电机及配套的MSDA013A1A驱动器进行控制。电机最高转速为3000RPM,功率1 00W,增量式编码器,2500P/r,丝杠导程为4mm/r。取Kp=100、Ki=12、Kd=2进行仿真。Y轴电机速度曲线与余弦曲线类似,跟随误差曲线如图3所示。无前馈情况下电机跟随误差从开始的63个脉冲在0.137秒后上升到114个脉冲,随后作类似余弦曲线的变化。引入前馈后,跟随误差从开始的63个脉冲迅速上升到109个脉冲,然后逐渐下降,在大约0.2秒后稳定在±2个脉冲之间。可见,速度和加速度前馈大大减小了系统的跟随误差。利用自己开发的运动控制器对数控平台反复进行控制实验,效果良好。梯形曲线控制实验中,设定加速度为10rev/s2,目标速度300RPM,位移120mm。到达目标速度后,驱动器显示的电机速度波动范围在±2RPM之间。利用VC的OnTimer()函数实时获取位置信息并进行显示,可以看出,到位后的最大超调量约为5~10个脉冲,稳态误差在±2个脉冲之内,小于1mm。