基于XC7Z20的多轴串联控制系统的设计

FPGA/ASIC技术

190人已加入

描述

摘要:嵌入式技术突飞猛进的发展,为运动控制系统的研究和应用注入了新的活力,并且使得开发成本和周期都大为缩减。本论文将多电机驱动、电机控制器、多电机串联控制器、在线调试等功能在ZedBoard开发平台中实现,突出了Zynq-7000 AP SoC系列处理器资源丰富、配置灵活的特点。系统使用集成半桥驱动器BTS7960实现了高效电机驱动板设计。在设计方法上使用软硬件协同设计方法,在大大扩展系统功能的基础上,有效地缩短了开发时间。

引言

运动控制系统广泛应用于工业自动化领域。系统需求日渐复杂,系统的响应速度、精度要求越来越高。多轴串联控制技术已在工业界得到广泛的应用,主要用于消除传动间隙,驱动大惯量、高负载对象等。使用多轴串联控制技术既可以改善系统传动间隙的影响,又能够提升系统的响应性能和鲁棒性。

由于各个轴之间的驱动电机性能存在差异,使用传统速度控制方案或者主从结构方案都难以达到理想的控制效果。Y. Koren教授于1980年提出了交叉耦合控制方案,并逐步应用于多轴串联控制系统中。但是要实现这种方案,需要复杂的硬件设计、强大的实时计算能力、昂贵的系统配置和较高的系统功耗。

Zynq-7000 Al l ProgrammableSoC(Zynq-7000 AP SoC)是Xilinx公司推出的新型All Programmable解决方案,是用来应对高级运动控制、实时工业网络、机器视觉以及新一代工业自动化应用的挑战。Zynq-7000AP SoC集成了双核Cortex-A9 MPCore处理器系统,支持Xilinx 28nm可编程逻辑的ARM TrustZone安全技术。同时Zynq-7000内部集成了丰富的逻辑资源,其Programmable Logic(PL)部分包含约1.3M等效逻辑门和220个DSP Slices。这些逻辑资源提供了完善的高级运动控制解决方案。本设计通过ZedBoard开发系统实现了从底层驱动至上位机人机交互等一整套完整的系统功能。

多轴串联控制系统

本系统设计借助于ZedBoard开发系统强大的性能和美信公司完善的硬件支持,实现了快速、高效的系统开发。前期系统模型和分析利用Matlab完成。通过Matlab与Xilinx产品的相互支持,设计者可以快速确定控制器方案和具体实施细节。本设计将电机驱动、交叉补偿单元、电机标准接口均在ZedBoard开发系统中应用实现。系统外部同时连接两台直流电机。各电机的实时状态也通过接口反馈到上位机,并可以传递给Matlab进行数据分析和参数调试。

系统的电机驱动PI控制器和补偿P I 控制器均利用P L 实现。由于使用了Xilinx的DSP开发套件System Ge n e r a to r (XSG) , 使得开发周期缩短、开发难度降低。在Ma t l ab/Simulink仿真环境下,设计相关PID模块。通过XSG,系统可以直接生成PL可执行模块。该模块可以利用Matlab与其他模块仿真,通过这项功能进行参数调整将大大节约开发的时间。

在此基础上,本设计采用交叉补偿方案完成电机串联控制。在单电机驱动结构之外,系统增加张力扭矩PI补偿,控制两台电机保持协同消隙所需要的扭矩关系。所设计的系统结构框图如图1所示。张力扭矩轨迹表示两台电机力矩的关系。其指令意义表示两台电机驱动的电流指令之差,物理意义表示两台电机输出力矩之差。

Zedboard

上述控制器使用Zynq-7000 AP SoC设计实现。Processing System(PS)移植实现了 Natural Tiny Shell(NTShell—一种小型嵌入式系统的开源命令解析器)作为人机交互界面。PL部分实现了系统控制算法。系统采用Zynq-7000 AP SoC内部总线通道M_AXI_GP总线作为PS和PL的指令、数据传输通道。系统控制器作为一个含有AXI从机接口的IP核挂载在M_AXI_GP总线上。总线接口以及用户代码的移植和IP核的封装,都是在Xilinx开发环境XPS的工具向导“Create and Import Peripheral Wizard”的帮助下完成。本系统借助AXI内部总线实现了控制指令信号的完整性和实时性,进而实现了控制器参数动态配置。系统通过Universal/Asynchronous Receiver/Transmitter(UART)与Personal Computer(PC)串口终端通信,并可以将系统信息直接显示在终端界面中。PL可以通过PS发送至PC终端的信号量包括各个控制器的参数、速度信号偏差、电流信号偏差、补偿器输出等。通过PC终端,用户可以设置各个控制器参数、速度设定值、张力扭矩轨迹值等等。

基于ZedBoard的运动控制系统电机驱动设计经过考察选型,综合价格、供货稳定性、驱动器本身性能,本电机驱动方案使用半桥型驱动器BTS7960芯片。该驱动器能够实现驱动电流43A,输入最大电压45V。本设计电源管理芯片使用美信公司芯片MAX603实现5V稳压。

驱动板原理图如图2 所示。该设计使用额定电压11.1V的锂电池供电,经过稳压芯片稳压输出5V电平。5V电平为驱动板上所有数字逻辑电路和增量式编码器供电。驱动板输入信号为多轴控制器输出的Pulse-Width Modulation(PWM)信号和电机转动方向信号。该两路信号经过驱动逻辑电路处理后输入到BTS7960芯片上。两个BTS7960芯片组成H桥型电机驱动电路。

Zedboard

PL硬件设计

本设计中,Zynq的PL部分实现了多轴串联控制器。其中的主要单元包括PS-PL系统通信模块、信号处理模块、电机驱动模块、多轴控制器模块、电机接口模块等。各个部分之间采用状态机进行跳转。采用PL实现上述功能,可以让系统实时高速运行,并实现无缝信息交换。具体硬件设计框图如图所示。

在上述硬件框图基础上,运用PL实现通用计数器模块。此模块用于控制整个状态机的跳转。模块计数溢出信号作为状态机跳转的标志信号。通过严格的时序控制,可以实现各个模块的复用和信号同步翻转。如系统中的两个电机速度闭环控制器和补偿PI控制器就是时分复用了同一个PID控制器模块。而系统包含两个PWM模块,这样可以保证电机的驱动信号并行更新和执行。

系统实现

本系统实验平台及开发环境如图3所示。其中包括Xilinx ISE Design Suit 14.1开发环境、双电机实验平台、电机驱动模块、ZedBoard、11.1V-3S1P锂电池。

Zedboard

 

完整的系统在Z e d B o a r d 的XC7Z20芯片上实现,仅占用PL的1119个Slices、3个DSP48E1s,为该芯片PL资源的8%。可见本系统仅占用很少的片上资源就实现了多轴串联控制系统。部分模块通过时序控制进行了复用,实现了资源的高效利用率。

总结
本系统利用基于Xilinx Zynq-7000AP SoC系列处理器的ZedBoard开发平台,实现多轴串联控制系统。设计主要实现:

(1)实现多轴控制算法及电机驱动控制,可驱动至少2台电机运行于串联连接状态。控制系统可有效发挥各单轴驱动性能,保证系统响应迅速,抗扰动能力强。

(2)系统实现了基于NT-Shell的人机交互界面。用户可利用上位机调试和监测系统,系统参数可以在线动态配置。

( 3 ) 系统支持可重配置通用接口,可连接不同电机驱动。系统通用性强,可应用于不同场合。

(4)项目采用软/硬件协同设计方式进行开发。系统开发效率高,并且易于根据用户需求开发定制型服务和扩展功能。

(5)利用Matlab科学计算软件协助嵌入式系统的开发和控制器的设计与调试,提高控制器开发的效率和灵活性。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分