图 10. 控制器的 C 代码和 HDL 划分一旦控制器在仿真中经过全面验证,下一步便是在硬件平台上制作原型。针对 ARM 内核和可编程逻辑,Zynq SoC 引导工作流程从划分为多个子系统的 Simulink 模型产生 C 代码和 HDL。利用此工作流程,HDL 转码器生成针对可编程逻辑的 HDL,嵌入式转码器则生成针对 ARM 的 C 代码。MathWorks Zynq 支持包支持从模型生成由算法 C 代码组成的 ARM 可执行文件(与 AXI 总线接口),并支持从模型生成由 HDL 代码组成的位流(与可编程逻辑引脚和 AXI 总线接口)。图 11 显示了控制器实现及其与ADI 智能驱动器硬件的关系。
图 11. 原型系统上的控制器实现.一旦将位流和可执行文件加载到硬件中,就可以开始控制器的运行测试。利用 Simulink 与运行开源 Linux OS 的嵌入式系统之间的以太网链路执行硬件在环(HIL)测试。轴转速等电机参数可以在 Simulink 中捕捉,并与仿真结果相比较,确保实际系统实现与模型相符。一旦控制算法测试完毕,便可将控制器转移到生产系统上。
除了智能驱动器套件以外,ADI 公司还提供完整的 Vivado 框架和 Linux 基础设施以用于原型开发和最终生产。图 12 显示了支持智能驱动器套件的 Zynq 基础设施。该高级框图说明了 ADI 参考设计在 Xilinx Zynq SoC 上是如何划分的。可编程逻辑实现 IP内核,用于与 ADC、位置传感器和电机驱动级接口。由 HDL 转码器生成的 HDL 代表电机控制算法,集成到 ADI 公司 IP 中。所有 IP 都有低速 AXI-Lite 接口用于配置和控制,并有高速 AXIStreaming接口用于通过 DMA 通道向软件传输实时数据。高速以太网接口可以利用 ARM 处理系统的硬 MAC 外设或可编程逻辑中的 Xilinx 以太网 IP 实现。
ARM Cortex A9 处理系统运行 ADI 公司提供的 Ubuntu Linux,其中包括:与 ADI 公司智能驱动器硬件接口所需的 Linux IIO 驱动,用于监测和控制的IIO Oscilloscope(示波器)用户空间应用程序,支持实时数据采集和通过 TCP 控制系统的libiio服务器,在远程计算机上运行的客户端,以及整合嵌入式转码器所生成 C代码的可选用户应用程序。
图 12. ADI Linux 基础设施所有 ADI Linux 驱动均基于 Linux 工业 I/O(IIO)子系统,其现已包括在所有主流 Linux 内核中。IIO Scope 是 ADI 公司开发的一款开源 Linux 应用程序,运行在 Xilinx Zynq 中的双核 ARMCortex A9 上,能够显示连接到 Xilinx Zynq 平台的 ADI FMC 卡所获取的实时数据。这些数据可以在时域中、频域中或以星座图的形式显示。支持以不同的常用文件格式(如逗号分隔值或.matMatlab 文件等)保存所捕获的数据以供进一步分析。IIO Scope提供一个图形用户界面,用于更改或读取 ADI FMC 卡的配置。
libiio 服务器支持实时数据采集、通过 TCP 控制系统以及运行于远程计算机上的客户端。服务器运行于 Linux 下的嵌入式目标上,通过 TCP 管理目标与远程客户端之间的实时数据交换。IIO客户端可以作为系统对象集成到 MATLAB 和 Simulink 原生应用程序中。一路 HDMI 输出用于在监视器上显示 Linux 界面,鼠标和键盘可通过 USB 2.0 端口连接到系统。
ADI 公司为智能驱动器套件提供的 Linux 软件和 HDL 基础设施,连同 MathWorks 和 Xilinx 提供的工具,非常适合开发电机控制应用原型。它们还包含适用于生产的组件,可将其集成到最终控制系统中,从而减少从概念到生产所需的时间和成本。
结论
本文说明了采用 FPGA 的现代电机控制系统的要求和趋势,以及为满足这些约束条件和帮助实现更高效、更精确的电机控制解决方案,MathWorks、Xilinx 和 ADI 公司带给市场的工具和系统。通过将 MathWorks 基于模型的设计和自动生成代码工具与强大的Xilinx Zynq SoC、ADI 公司的隔离、功率、信号调理和测量解决方案相结合,电机驱动系统的设计、验证、测试和实现可以比以前更有效率,进而提高电机控制性能并缩短上市时间。ADI 公司智能驱动器套件与 Avnet Zynq-7000 All Programmable SoC 配合使用,为利用 MathWorks Simulink 设计的电机控制算法提供出色的原型开发环境。该智能驱动器套件带有一组参考设计 4,旨在为所有希望评估该系统的人士提供一个起点,并且帮助启动任何新的电机控制项目。
参考威廉希尔官方网站
Hill, Tom. ""借助 Matlab 将电机驱动迁移到 Zynq SoC 设计中。." Xcell 杂志,87 期,2014 年第二季度
O'Sullivan, Dara, Jens Sorensen, 和 Anders Frederiksen. ""闭环电机控制中基于模型的设计工具." PCIM Europe, 2014.
Corradi, Dr. Giulio. ""频率空间矢量调制—第一部分." 网络, 2012 年 10 月 4 日。
AD-FMCMOTCON1-EBZ 用户指南。
作者
Andrei Cozma是ADI公司工程设计经理,负责支持系统级参考设计的设计与开发。 他拥有工业自动化与信息技术学士学位及电子与电信博士学位。他参与过电机控制、工业自动化、软件定义无线电和电信等不同行业领域的项目设计与开发。
Eric Cigan 在 MathWorks 从事技术营销工作,负责支持 SoC 和 FPGA 设计工作流程。加入 MathWorks 之前,他先后在 MathStar、 AccelChip 和 Mentor Graphics 从事技术营销工作。Eric 拥有麻省理工学院机械工程学士学位和硕士学位。