收藏 分享(赏)

基于ZYNQ SoC的多轴运动控制系统.doc

上传人:tangtianxu2 文档编号:2914497 上传时间:2018-09-30 格式:DOC 页数:21 大小:3.52MB
下载 相关 举报
基于ZYNQ SoC的多轴运动控制系统.doc_第1页
第1页 / 共21页
基于ZYNQ SoC的多轴运动控制系统.doc_第2页
第2页 / 共21页
基于ZYNQ SoC的多轴运动控制系统.doc_第3页
第3页 / 共21页
基于ZYNQ SoC的多轴运动控制系统.doc_第4页
第4页 / 共21页
基于ZYNQ SoC的多轴运动控制系统.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、OpenHW12 项目申请基于 ZYNQ SoC 的多轴运动控制系统安富利特别题目基于 Zynq 平台的伺服控制或运动控制系统项目成员:顾强 牛盼情 孙佳将 马浩华中科技大学二一二年十一月OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统I目录1 项目概述 .11.1 工业应用 11.2 系统方案 32 工作原理介绍 63 项目系统框架图 83.1 ZYNQ 硬件系统框架图 83.2 软件系统框架图 93.3 多轴控制器实现 104 项目设计预计效果 115 附录一:项目技术基础 .135.1 软硬件协同设计架构 135.2 软件设计 145.3 总结 166 附录二:ZYNQ 基础

2、 16OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统11 项目概述1.1 工业应用运动控制系统广泛应用于工业自动化领域,包括机器人手臂、装配生产线、起重设备、数控加工机床等等。并且随着高性能永磁材料的发展、电力电子技术的发展以及大规模集成电路和计算机技术的发展使得永磁同步电机(PMSM,Permanent Magnet Synchronous Motor)控制系统的设计开发难度降低、成本降低,同时 PMSM 在运动控制系统中作为执行器件的应用也越来越广泛。大量运动控制器的设计与实现都是基于通用嵌入式处理器。在此基础上,很多学者和研究人员对运动控制系统进行了大量的研究。多轴控制的发

3、展是为了满足工业机器人、工业传动等应用需求。其主要包括两大方面,多轴串联控制和多轴同步控制。当系统负载较大、传动精度要求很高、运行环境比较复杂的情况下,经常使用多轴串联的方式来解决,如图 1.1 所示。(1)双电机齿条传动 (2)NASA 70-m 天线设备图 1.1 多轴串联控制系统应用OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统2多轴串联控制器可以实现包括多轴力矩动态分配、传动补偿校正、多轴位置/ 速度同步等功能。其主要应用场合包括立式车床回转台、复合车床对向主轴、龙门起重设备。当前,主要驱动设备厂商都推出有支持多轴串联功能的产品。例如 Rockwell 1336 IMPA

4、CT AC Drive,其采用主从控制方案实现多轴串联功能。SIEMENS SINUMERIK 840D 则采用交叉耦合控制(CCC, cross couple control)方案。FANUC 、ABB 、 Mitsubishi electric 都有类似功能的驱动产品。国内外也有众多学者进行了大量的研究。在 20世纪 70 年代,主从控制方案由于系统结构简单、调试方便被广泛用于这类应用中。然而,主从控制方案未能充分发挥各单轴驱动的性能,系统带宽与响应速度十分有限。受限于当时单轴驱动与主从控制器的性能,当系统运行在环境复杂,转速、转矩响应要求较高的场合,主从控制方案难以满足应用需求。如何充分

5、利用单轴运行状态,建立多轴间状态关系?如何设计控制器,对整个系统进行控制补偿,实现多轴之间的协调同步。针对上述问题,Y. Koren 于 1980年提出了交叉耦合控制方案,并逐步应用于多轴串联控制系统中。随着电机驱动技术和嵌入式技术的不断发展,交叉耦合控制方案得到了不断的完善。多位学者针对不同应用对交叉耦合控制方案进行了深入的分析,并设计控制算法对各个轴的位置、速度、转矩信号进行补偿和协调。所设计的交叉耦合控制器已在不同的数字处理器平台中得到实现,取得了良好的控制效果。随着数控技术等的发展,高精度的多轴同步控制系统的发展也OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统3越来越快,

6、需求也在逐渐增大。例如在多轴加工机床、多轴雕刻机、贴片机手臂等系统上的应用。在这些工业应用中,对多台电机运动控制协调的精度需求也不断增加。上述的应用和研究方案,大多采用多个驱动单元分布式安装控制,通过工业以太网或者现场总线通信。串联协同和同步控制的计算处理主要在上位机中完成。这种方案灵活可靠,应用广泛,特别适合于大型分布式系统,如自动化生产线、重型机床。然而,当以下情况发生时,上述方案的局限性就会突显出来。(1)设备集成度较高,对驱动电路的体积有一定限制;(2) 系统需采用不同通信接口的驱动设备,难以购买成套设备;(3)当设备数量和设备间通信的信息量增加时,将对系统通信模块的设计带来巨大挑战。

7、(4)上位机负担了大量的计算、通信和实时人机交互任务。上位机的成本会随着系统的复杂程度不断提高。本方案针对上述问题,依托 ZYNQ SoC 丰富灵活的资源配置,将单电机驱动控制算法、多轴控制算法、实时人机交互集成于 ZYNQ SoC 中。系统集成化程度得到全面的提升,配置更加灵活,可以实现不同设备间的互联。系统设备数量成倍降低,并且可以实现分布式管理。上位机不用负担计算任务,硬件成本进一步降低。OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统41.2 系统方案传统数字处理器实现多轴串联控制器的方案存在诸多限制。交叉耦合控制器设计难度大,实现困难。为了实现各个电机驱动间的连接,使得系

8、统可以运用于不同的场合,系统需要匹配不同的电机驱动接口。为了实现转矩的动态分配和传动补偿,需要实时观测各个电机的工作情况。由于多轴同步控制器参数整定比较复杂,需要控制器拥有较强的处理计算能力,甚至可以支持在线动态参数整定。上述这些功能的实现,需要复杂的硬件设计、强大的实时计算能力、昂贵的系统配置和较高的系统功耗。针对上述需求,如何通过改进系统结构,采用高效的开发方法和工具实现多轴串联控制系统,具有重要的应用价值和学术研究价值。本设计通过齿轮传动,将多台 PMSM 电机装配在一起,为系统提供更大的力矩输出和更高的带宽。我们通过设计多轴串联控制系统,将不同的电机驱动连接起来,控制各个驱动器保持实时

9、协调同步。并且,该系统还将包括多轴串联控制器辅助调试和可视化人机交互接口等一系列功能。我们将双轴 PMSM 电机共同连接在一个较大的齿轮盘上,并在齿轮中央同轴安装一台 PMSM 电机。实现大齿轮盘与中间同轴电机的旋转同步。系统实现 3D 效果图如下图 1.3 所示。本设计拟将多轴控制系统从底层驱动至上位机人机交互等一整套完整的功能,通过分层实现的方法逐一实现 PMSM 驱动、驱动级协同、基于操作系统的人机交互OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统5等层次设计。在进一步提高系统效率和通用性、降低硬件成本的基础上,保证系统的完整性,为用户调试和使用提供方便。图 1.3 系统整

10、体测试台效果图ZED 开发系统采用 Xilinx Zynq-7000 系列处理器。Zynq-7000 系列处理器基于 Xilinx 可扩展处理平台。单片处理器拥有双核 ARM Cortex- A9 处理系统和 28nm Xilinx 7 系列可编程逻辑单元。其可编程逻辑单元通过动态可重配置可以实现不同电机驱动接口的连接。高速片内总线实现信息在 Zynq-7000 处理单元间的无缝传递。丰富的外部设备接口保证 Zynq-7000 处理器对系统状态的实时观测。Zynq-7000 处理器强大的处理能力、丰富的计算手段可以实现多轴串联控制器参数的在线整定。在此基础上,双核 ARM Cortex-A9

11、处理系统可以实现系统任务实时管理与人机交互。相比数字信号处理器(DSP, digital signal processor)和工控机(IPC,industry personal computer) ,基于可编程逻辑单元的控制器可以发挥其并行处理的优势,在更短的时间实现复杂的控制算法。这OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统6样,基于 Xilinx Zynq-7000 系列处理器的 ZED 开发系统可以实现一整套多轴同步控制系统。从底层的多轴串联控制算法,到系统上层的人机交互与基于模型的计算机辅助调试功能,都可以在一块芯片中完成。因此,整个系统的低功耗和电路的可复用性也可以

12、实现。同时,上述方案与 ASIC(application-specific integrated circuit)相比,该方案通用性优势明显,且系统成本大幅度降低。所以,采用 ZED 开发系统设计多轴同步控制系统,不仅对多轴控制系统的发展、推广有重要的工程应用价值。同时,将有助于多轴控制系统的理论分析与工程设计相结合,具有学术研究价值。与此同时,本项目将采用嵌入式软/硬件协同设计的方式进行开发,借助 ZED 开发系统的技术支撑,力求在开发效率、开发成本和系统性能等方面得到全面的优化。OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统72 工作原理介绍图 2.1 系统工作原理图借助于

13、ZED 开发板强大的性能和完善的设计软件,可以实现快速、高效的系统开发。系统工作原理如图 2.1 所示。前期系统模型和分析利用 Matlab 完成。通过 Matlab 与 Xilinx 产品的相互支持,设计者可以快速确定控制器方案和具体实施细节,包括多轴串联控制器、多轴同步控制器、状态观测器等。控制信号通过标准接口传递给各个电机驱动,控制各轴的运动。各轴的实时状态也通过接口反馈到上位机,并可以传递给 Matlab 进行数据分析和参数调试。针对多轴串联控制器,本设计采用交叉耦合结构,在线监测各轴工作状态,以此自适应调整各个单轴控制器和多轴控制器。多轴串联控制器对各个单轴驱动器进行实时补偿。并实现

14、同步控制器协同中央电机和两个大齿轮驱动电机的协同旋转。详细系统框图如图OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统82.2 所示。图 2.2 多轴控制系统框图OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统93 项目系统框架图3.1 ZYNQ 硬件系统框架图图 3.1 系统顶层设计系统设计结构图如图 3.1 所示。主要包括高密度数据处理、控制算法以及基于操作系统的人机交互和任务管理系统等。多个电机驱动使用 ZYNQ 的 PL 逻辑部分完全实现。ZYNQ 系统框架如图 3.2 所示。ARM Cortex-A9 处理核心主要负责人机交互、系统通信、任务管理和部分实时控制

15、任务。其分别安装通用操作系统(GPOS, general purpose operating system)和实时操作系统(RTOS, real-time operating system) 。通用操作系统主要用于管理人机交互任务和系统通信,可实现本系统与上位机设备的连接。实时操作系统主要管理系统的控制任务,合理分配系统资源。并通OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统10过与 Zynq 可编程逻辑的数据交换,实现系统高速并行处理。除此之外,本设计针对系统硬件进行了存储扩展,以提高系统的存储控制和运行速度。并在此基础上,ZYNQ 可编程逻辑单元负责大量的控制算法和信号处理计

16、算,包括系统辨识、多轴控制算法等。利用可重配置标准接口,系统可以实现控制不同类型的电机驱动。图 3.2 硬件系统框架图3.2 软件系统框架图本项目将采用软/硬件协同设计的方式进行开发。项目针对系统需求进行软/ 硬件协同划分。在硬件开发的同时进行软件设计与实现,并及时进行协同和调整。详细软件系统框架如图 3.3 所示。Cortex-A9 CPU1 搭载 Linux 操作系统,主要负责信息交互与高性能处理设备扩展。Cortex-A9 CPU2 搭载 TOPPERS/ASP 实时操作系统,负责传感器信息采集、通用外设调度以及与 ZYNQ SoC 可编程逻辑单元的信息交互。OpenHW12 基于 ZY

17、NQ SoC 的多轴运动控制系统11图 3.3 软件系统框架3.3 多轴控制器实现控制器实现对多个电机闭环控制系统的协同,使用模糊控制器等实现多电机同步算法。模糊控制是利用模糊数学的基本思想和理论的控制方法,由于在多轴控制之中,虽然能对各个电机建立模型,但对于多个电机之间存在耦合关系之后,模型的建立相当困难,并且控制器要求的输入变量较多,所以使用模糊数学处理该控制器较为方便。但是在模糊控制器的实现中,对于规则整定参数调节等方便存在一定的难度,所以对于规则表的自整定也是研究的热门话题。我们决定使用者粒子群优化算法(Particle Swarm optimization,PSO)OpenHW12

18、基于 ZYNQ SoC 的多轴运动控制系统12实现参数、规则表的整定。实现框图如图 3.4 所示。图 3.4 控制器结构图对于 PSO 算法,我们考察了之前论文的实现情况,使用 Xilinx Pro 系列 FPGA XC2VP30 即可实现 5 并行的的 PSO。而 ZYNQ 逻辑资源量远大于该 FPGA 的资源量。所以实现这些算法,同时实现模糊控制器以及多个电机的电流、速度闭环控制器是绰绰有余的。当然我们实现 GA/PSO 算法也可以考虑使用 ARM-A9 核实现,这要考虑具体算法的时间复杂度以及编程复杂度,同时考虑计算量等,最终使用最少的资源拿出最好的解决方案。4 项目设计预计效果本项目利

19、用基于 Xilinx Zynq-7000 系列处理器的 ZED 开发系统,实现多轴串联控制系统以及多电机高性能同步控制系统。实际实验OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统13平台依照图 1.3 设计实现。实验平台中绿色齿轮由左右两台电机带动,黄色齿轮由中间电机带动。预计设计效果为:(1)在 ZYNQ 的 PL 部分实现实验平台上所有三台 PMSM 电机的电流环控制模块。(2)实现多轴控制算法及电机对象状态观测,可驱动至少 2 台电机运行于串联连接状态。控制系统可有效发挥各单轴驱动性能,保证系统响应迅速,抗扰动能力强。具体到该平台上就是实现左右两台电机通过多轴串联控制器实现

20、消除齿轮间隙(消隙) 、增加带宽等高性能驱动。(3)实现控制器参数在线学习、自调整。能够精确控制多个运动轴之间的协同运动。具体到该平台上就是在绿色大齿轮和黄色齿轮的转动上做协同控制,保证两个齿轮上固定的细连接杆不断。(4)系统搭载 Linux 多核操作系统和 TOPPERS/FMP 多核实时操作系统。系统功能覆盖底层信息传递至上位机图形显示。用户上位机操作实验平台运转,并且可利用上位机调试和监测整个系统。(5)系统支持可重配置通用接口,可连接不同电机驱动。系统通用性强,可应用与不同场合。(6)项目采用软/硬件协同设计方式进行开发。系统开发效率高,并且易于根据用户需求开发定制型服务和扩展功能。O

21、penHW12 基于 ZYNQ SoC 的多轴运动控制系统145 附录一:项目技术基础参与比赛项目: 第三届 OpenHW 开源硬件与嵌入式大赛,项目名称为“基于软硬件协同处理的小型轮式机器人平台” ,项目连接:http:/www.openhw.org/project/index_view_1945.html。5.1 软硬件协同设计架构该项目中使用 Xilinx 公司 Spartan 6 系列 FPGA 芯片 XC6SLX16 和ARM7 处理器 NXP LPC2478 基本结构,设计了一种层次化的处理平台、三种协同处理架构以及通用协同处理片内结构,并在轮式机器人应用中进行具体设计,完成了数字

22、图像处理、双闭环运动控制、点阵液晶显示、智能手机平台控制。结果显示,软硬件协同处理架构大大提升了系统性能,设计开发方法更加快了开发进程。该平台在工业控制领域具有一定广泛意义和推广价值,该架构下的轮式机器人适合研究自动驾驶、自动泊车、图像处理、智能控制算法等机器人应用。随着基于 FPGA 的 SOPC 技术的发展,使用 SOPC 技术来实现可重配置的机器人控制器也成为了机器人平台研究的热点。然而基于开发控制系统的商业性、系统可升级性、算法复杂度以及工具链、生态链成熟度的角度考虑,使用基于 ARM 的 CPU 作为主控制器更易于实现该平台。同时,非常有商业前景的实时嵌入式操作系统TOPPERS 在

23、 ARM7 上的移植可以丰富系统的应用及加强实时性。项目系统结构图如下图 5.1 所示。系统实现了 FPGA 与 ARM 系OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统15统的片外 EMC 总线。图 5. 1 系统结构图5.2 软件设计ARM7 主控制器方面移植 TOPPERS/ASP 实时操作系统,并且实现了 USB 主从协议栈,以太网协议栈,文件系统等组件,ARM 通过EMC 总线访问 FPGA 的资源,这样只要定义好访问规则以及含义就像访问一个普通的外设一样方便。我们已经在 FPGA 内部实现了电机的双闭环控制,摄像头采集的图像信息的预处理,以及小型黑白字符点阵液晶的控制

24、。举例而言,对于电机的控制,ARM 只需要对电机给定速度就可以,如果需要获取速度也可以直接读取对应的地址的内容就可以。同时由于 ARM 控制器内部实现了实时操作系统,在 ARM 端可以实现一个 FPGA 不好实现的控制算法并且保证算法的实时性,同时已经实现了通过 ARM 的以太网接口连接到小型 USB 供电的路由器上,建立一个小型的无线局域网,并且已经在 android 上实现了一个OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统16应用,可以通过 wifi 连接到这个无线网络,来和 ARM 进行网络通信,由于我们自己定义好了一套基于 TCP 和 UDP 的 传输协议,其中 TCP

25、主要负责可靠的数据传输,用于发送控制命令,UDP 主要用于传输大量的数据,这里我们将摄像头采集到的实时图像返回到 android 客户端,并且可以实时显示。通过定义好的通信协议我们可以通过android 客户端做更多更高级的算法处理,将处理结果通过网络传输回去。为了验证系统的实时控制能力,我们还实现了小型移动机器人的循线控制,通过摄像头采集赛道上的数据,FPGA 进行图像预处理,FPGA 通过外部中断的方式通知 ARM 控制器图像预处理完毕, ARM就从定义好的存储位置获取处理后的图像,将其进行简单的运算,获取路径信息,给出合适的速度和角度,然后通过对 FPGA 定义好的运动控制寄存器设定每个

26、电机的速度,这样形成一个周期性的控制,就可以实现循线的目标。小型移动机器人整体的结构图如下图 5.2 所示。OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统17图 5. 2 实现及处理结果5.3 总结我们之前的项目开发基础使用两个芯片实现这种软硬件协同设计结构,但是由于使用片外异步总线 EMC,使数据传输速率受限,使软硬件协同设计的优势不能发挥到极致,现在使用 ZED 开发平台可以实现片内 AMBA AXI 总线,可以提高通信速率,对于软硬件协同设计也很有促进,同时由于之前没有实现 USB 主机和 android 设备进行通讯,现在也可以在这块 zed 开发板上实现,这样速度更快更

27、稳定,我们就可以将电机的人机交互直接在 android 上实现,同时由于 zynq 上有 cortexA9 双核,我们可以在其中一个核心上运行GPOS,主要负责人机交互和信息交互,zynq 内核的 arm 和 fpga 可以通过内部总线方式进行通讯,这样速度更加快速,我们就可以做更多扩展,以太网部分我们可以实现一个网页用于监控这个系统的运行状况和进行调试。6 附录二:ZYNQ 基础在之前参数的美信 DIY 大赛中,我们对 ZYNQ 做了初步探索实现。系统实现框图如下 6.1 所示。在该系统中,在 PS 部分我们实现了双核的启动运行等的移植,并移植实现了 TOPPERS/FMP 多核操作系统,在

28、演示系统中我们使用的系统移植了 NTShell 串口人机交互程序,能够使用串口进行在线的OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统18实时的对电机闭环控制器以及协同控制器参数的修改。操作界面如图 6.2 所示。图 6.1 美信 DIY 大赛系统图图 6.2 NTShell 操作界面OpenHW12 基于 ZYNQ SoC 的多轴运动控制系统19在 PL 部分,实现了对多电机控制器的 IP 核,并实现了M_AXI_GP 的 AXI 总线接口。能够使 ARM 轻松访问 FPGA 的 IP 核等资源。实验实现的开发平台环境如图 6.3 所示。其中包括 Xilinx ISE Design Suit 14.1 开发环境、双电机实验平台、电机驱动模块,ZedBoard、11.1V-3S1P 锂电池等。图 6.3 美信 DIY 大赛实验平台

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报