引言
在机器人、机械臂和数控机床等工业控制系统中,永磁同步电机(PMSM)的驱动控制一直是此类控制系统的核心。而随着工业技术的发展以及PMSM应用的越来越广泛,PMSM的驱动控制系统对性能和精度的需求也越来越高。为了满足高性能、高精度等需求,有学者采用高性能的DSP作为软硬件解决方案[12],也有学者使用ARM微控制器作为系统解决方案,例如使用STM32实现的控制系统[3]。由于PMSM控制算法愈加复杂化、控制算法对控制器性能的要求不断提高,国外学者提出了使用FPGA作为PMSM的驱动控制系统解决方案[4],且效果显著。
本文使用的控制核心板即为搭载有Zynq7000系列芯片XC7Z020CLG484的ZedBoard开发板。使用这类产品可以在充分发挥FPGA并行计算优势的前提下,利用ARM进行快捷的操作系统移植[7]以及人机交互等软件开发。本文的开发方案是在ARM和FPGA上分别实现不同的控制算法模块,该方案在结合ARM和FPGA各自优势的同时,提高了系统的控制性能和可移植性。
1 控制系统介绍
常见的PMSM驱动控制系统可以分为电流环、速度环、位置环3个层次的控制模块,以及机电传感器信号处理接口、数据监测、人机交互等。电流环控制方案较多采用的是矢量控制算法,该算法通过检测PMSM的相电流值,以坐标变换的方式将定子电流分解成励磁电流和转矩电流,以实现各自的闭环控制[8]。而速度环、位置环控制器常用的是PID控制器。
控制系统结构如图1所示。按照功能类型可以将系统组件划分为机电接口组件、矢量控制算法组件和控制层组件下几个部分。
图1 控制系统结构图
1.1 机电接口组件
机电接口组件主要是实现机械、电路等模块的信号接收、发送和信号处理等功能。该组件的信号输入捕捉模块为随后的算法层提供带有指定格式的数据,信号输出模块为机电执行电路提供标准的可控信号波形。具体来说,该组件由以下几个模块构成:
① 编码器正交解码模块。该模块实现对编码器信号的处理,通过捕捉编码器的输出波形,计算出电动机转速、转子位置等数据。
② ADC接口模块。该模块实现的是A/D转换器的传输协议,本系统是使用带有SPI接口的A/D转换器,故而该模块实现SPI通信协议。
③ PWM发生器。该模块完成脉宽可调制波形(PWM)的生成,该模块产生用于驱动本文所设计逆变器的6路PWM信号。
1.2 矢量控制算法组件
矢量控制算法组件完成PMSM的电流环相关算法。该组件包括以下几个模块:
① Sin&Cos模块。该模块完成转子的电角度值到正弦、余弦值的计算。
② 空间坐标转换模块。该模块把该系统的控制目标PMSM等效成一台控制算法和更简单的直流电动机,主要包含了三相两相坐标变换和同步旋转变换等模块,实现了定子三相电流解耦成转矩电流iq和励磁电流id的计算过程。
③ SVPWM模块。该模块实现空间矢量PWM信号的产生等功能。
1.3 控制层组件
控制层组件实现PMSM的三环控制,主要包括以下几个模块:
① 电流环转矩电流iq和励磁电流id的控制器模块;
② 速度环、位置环控制器,以及转子速度、位置计算等模块;
③ 辅助控制以及测试相关的模块,主要实现人机交互、调试数据获取等功能。
2 系统硬件平台设计
该嵌入式驱动控制系统的硬件平台由四块印制电路板(PCB)构成,其组成结构如图2所示。PCB板由ZedBoard开发板、FMC接口板、信号处理板以及驱动板组成。
图2 系统电路板组成
3 系统软件设计
根据驱动控制系统原理框图,可将系统的软件算法模块根据算法并行性、性能需求和可移植性需求划分到ARM或者FPGA上实现。控制系统利用FPGA实现矢量控制电流环以提高算法并行性和计算频率;使用ARM实现速度环、位置环和人机交互等算法,以保证软件开发的便捷性和算法的可移植性。而系统中ARM和FPGA的通信使用Zynq片上高性能总线(AXI HP)以及中断信号实现。系统软件组成框图略——编者注。
3.1 ARM与FPGA通信设计
ARM与FPGA的核间通信问题是Zynq应用开发的重中之重,其核间通信总线AXI HP可采用存储器直接访问(DMA)的形式进行数据传输,总线最高位宽为64位,理论通信带宽最高可达1 200 MB/s。采用的通信方案为中断信号和AXI HP总线协同工作的方式,中断信号实现ARM和FPGA控制周期的协同,AXI HP总线为ARM和FPGA提供高带宽的通信速率。系统采用AXI HP总线以DMA的形式直接读写ARM数据空间的方案,所以在控制算法周期内ARM无需管理通信时序。
该系统的核间通信时序图如图3所示。
图中数据传输发生在FPGA和ARM的算法软件把数据处理完成之后,此处的数据处理包括如下两个方面:
图3 ARM和FPGA通信时序图
① FPGA端数据处理包括对编码器、A/D转换器等传感器信号的获取和处理,以及上一周期的电流环控制算法运算过程中的重要变量数据收集和处理等工作。
② ARM端数据处理包括速度环输出的电流给定指令的保存、上一周期的电流环反馈数据处理,以及人机交互指令数据解析等操作。
图3中描述的通信信号簇的数据传输主要是完成FPGA数据写到ARM可访问的内存空间、FPGA读取ARM指定内存空间的数据两个方面的操作。图3中涉及的中断信号是由FPGA上的算法模块发起,主要功能是同步FPGA和ARM的运行时序。经过上述AXI HP总线的数据传输和中断信号两个操作,可实现ARM和FPGA的数据交互功能,其总线频率为90 MHz,测试其数据传输带宽为284 MB/s。
3.2 FPGA部分代码设计
该系统使用控制器XC7Z020芯片上嵌入的FPGA(Xilinx公司的Artix7系列),其资源总量约为1.3 M逻辑门。在本系统中电流环控制频率为16 kHz,其实现的算法框图如图4所示。
图4 FPGA实现软件系统框图
在FPGA上实现的软件包括算法和接口两个部分,其中算法部分数据格式为16位的Q15定点数,该部分代码通过Xilinx工具ISE14.7完成代码的功能仿真和验证,各个模块占用FPGA总资源量如表1所列。该算法代码运行时钟频率为90 MHz,算法计算耗时为5.7 μs,可见其运算耗时充分满足本系统使用的16 kHz电流环控制频率的要求。
表1 FPGA算法资源占用量
3.3 ARM部分代码设计
运行于本系统双核ARM CortexA9上的软件程序主要包括控制组件和辅助组件两大部分。控制组件运行于中断服务程序中,以满足算法对控制周期的时序要求;辅助组件运行于背景循环程序中,实现人机交互接口管理、系统监测等功能。
系统软件的中断服务程序运算流程如图5所示,该中断服务程序的中断信号由FPGA的矢量控制算法模块发出。
图5 运行于ARM的软件流程
图中的数据处理流程包括以下几个部分:
① 人机交互数据处理。实现用户命令解析,系统运行指令给定等功能。该系统的主要运行模式包括速度模式和位置模式两种,运行指令包括给定电机转动位置、转动速度等。
② 电流环反馈数据解析和处理。该环节实现对运行于FPGA上的算法进行监控,并对电机运行数据进行封装,以便人机交互组件进行数据发送等操作。
③ 电流环指令给定数据的保存。该环节主要是处理上一周期的速度控制器输出数据,保证该数据能准确传输到FPGA。
完成数据处理之后,软件运行到核心控制器环节。该环节采用的位置环控制器为比例控制器,速度环控制器为积分抗饱和的PI控制器。经过参数整定,该软件算法能够满足系统控制精度等要求。
4 实验分析
本系统使用Xilinx开发工具套件ISE14.7、Vivado 2014.2以及SDK实现代码开发和工程管理工作。其中,ISE 14.7用来完成FPGA代码开发、算法功能仿真验证等工作,Vivado 2014.2用来进行工程管理和Zynq ARM端的启动文件配置等工作,SDK用来进行ARM端应用程序开发工作。
本系统的实验平台包含了以下几个部分:
① 带有2500线编码器的PMSM电机,电机参数如表2所列。
② 电机驱动板、信号处理板、FMC接口板,用于供给驱动板直流母线电压的线性电源等。
③ 搭载有XC7Z020CLG484芯片的ZedBoard开发板。
给定PMSM驱动控制系统2 400 r/min的速度阶跃值时电机的速度和电流响应情况图略——编者注。该系统速度响应无超调、无静差、电流响应迅速,可见该PMSM控制系统具有良好的控制性能和控制精度。
表2 实验平台PMSM参数
结语
介绍了一个基于Zynq的PMSM驱动控制系统,并介绍了异构多核控制系统的片上总线通信方案的设计。该系统充分结合了ARM和FPGA在嵌入式系统应用开发中的优势,在ARM上实现人机交互以及可移植性强的算法,在FPGA上实现并行度高、性能要求高的算法。
通过实验验证了使用Zynq实现PMSM控制系统的可行性以及便捷性,说明该方案不仅可以提高系统控制性能、提高控制精度和带宽,而且能够在完成高性能控制器的基础上实现复杂算法的验证、人性化的人机交互等功能,系统的控制性能和可扩展性都得到了大幅增强。