基于Zynq的PMSM 驱动控制系统设计※
2015-09-12牛盼情康翔宇何顶新
牛盼情,康翔宇,何顶新
(1.华中科技大学 自动化学院,武汉430074;2.河南科技大学)
牛盼情(硕士研究生),研究方向为嵌入式系统与电机驱动控制系统;康翔宇(硕士研究生),主要研究方向为电子控制系统;何顶新(副教授),主要研究方向为嵌入式系统应用。
引 言
在机器人、机械臂和数控机床等工业控制系统中,永磁同步电机(PMSM)的驱动控制一直是此类控制系统的核心。而随着工业技术的发展以及PMSM 应用的越来越广泛,PMSM 的驱动控制系统对性能和精度的需求也越来越高。为了满足高性能、高精度等需求,有学者采用高性 能 的DSP 作 为 软 硬 件 解 决 方 案[1-2],也 有 学 者 使 用ARM 微控制器作为系统解决方案,例如使用STM32 实现的控制系统[3]。由于PMSM 控制算法愈加复杂化、控制算法对控制器性能的要求不断提高,国外学者提出了使用FPGA 作为PMSM 的驱动控制系统解决方案[4],且效果显著。
本文使用的控制核心板即为搭载有Zynq-7000系列芯片XC7Z020-CLG484的ZedBoard开发板。使用这类产品可以在充分发挥FPGA 并行计算优势的前提下,利用ARM 进行快捷的操作系统移植[7]以及人机交互等软件开发。本文的开发方案是在ARM 和FPGA 上分别实现不同的控制算法模块,该方案在结合ARM 和FPGA 各自优势的同时,提高了系统的控制性能和可移植性。
1 控制系统介绍
常见的PMSM 驱动控制系统可以分为电流环、速度环、位置环3个层次的控制模块,以及机电传感器信号处理接口、数据监测、人机交互等。电流环控制方案较多采用的是矢量控制算法,该算法通过检测PMSM 的相电流值,以坐标变换的方式将定子电流分解成励磁电流和转矩电流,以实现各自的闭环控制[8]。而速度环、位置环控制器常用的是PID控制器。
控制系统结构如图1所示。按照功能类型可以将系统组件划分为机电接口组件、矢量控制算法组件和控制层组件下几个部分。
1.1 机电接口组件
机电接口组件主要是实现机械、电路等模块的信号接收、发送和信号处理等功能。该组件的信号输入捕捉模块为随后的算法层提供带有指定格式的数据,信号输出模块为机电执行电路提供标准的可控信号波形。具体来说,该组件由以下几个模块构成:
①编码器正交解码模块。该模块实现对编码器信号的处理,通过捕捉编码器的输出波形,计算出电动机转速、转子位置等数据。
②ADC 接口模块。该模块实现的是A/D 转换器的传输协议,本系统是使用带有SPI接口的A/D 转换器,故而该模块实现SPI通信协议。
③PWM 发生器。该模块完成脉宽可调制波形(PWM)的生成,该模块产生用于驱动本文所设计逆变器的6路PWM 信号。
1.2 矢量控制算法组件
矢量控制算法组件完成PMSM 的电流环相关算法。该组件包括以下几个模块:
①Sin&Cos模块。该模块完成转子的电角度值到正弦、余弦值的计算。
图1 控制系统结构图
②空间坐标转换模块。该模块把该系统的控制目标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公司的Artix-7系列),其资源总量约为1.3 M 逻辑门。在本系统中电流环控制频率为16kHz,其实现的算法框图如图4所示。
在FPGA 上实现的软件包括算法和接口两个部分,其中算法部分数据格式为16 位的Q15 定点数,该部分代码通过Xilinx 工具ISE14.7 完成代码的功能仿真和验证,各个模块占用FPGA 总资源量如表1所列。该算法代码运行时钟频率为90 MHz,算法计算耗时为5.7μs,可见其运算耗时充分满足本系统使用的16kHz电流环控制频率的要求。
表1 FPGA算法资源占用量
3.3 ARM 部分代码设计
运行于本系统双核ARM Cortex-A9上的软件程序主要包括控制组件和辅助组件两大部分。控制组件运行于中断服务程序中,以满足算法对控制周期的时序要求;辅助组件运行于背景循环程序中,实现人机交互接口管理、系统监测等功能。
系统软件的中断服务程序运算流程如图5所示,该中断服务程序的中断信号由FPGA的矢量控制算法模块发出。
图4 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 接口板,用于供给驱动板直流母线电压的线性电源等。
③ 搭 载 有XC7Z020-CLG484 芯 片 的ZedBoard 开发板。
给定PMSM 驱动控制系统2 400r/min的速度阶跃值时电机的速度和电流响应情况图略——编者注。该系统速度响应无超调、无静差、电流响应迅速,可见该PMSM 控制系统具有良好的控制性能和控制精度。
表2 实验平台PMSM 参数
结 语
介绍了一个基于Zynq的PMSM 驱动控制系统,并介绍了异构多核控制系统的片上总线通信方案的设计。该系统充分结合了ARM 和FPGA 在嵌入式系统应用开发中的优势,在ARM 上实现人机交互以及可移植性强的算法,在FPGA 上实现并行度高、性能要求高的算法。
通过实验验证了使用Zynq实现PMSM 控制系统的可行性以及便捷性,说明该方案不仅可以提高系统控制性能、提高控制精度和带宽,而且能够在完成高性能控制器的基础上实现复杂算法的验证、人性化的人机交互等功能,系统的控制性能和可扩展性都得到了大幅增强。
编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。
[1]陈应豪.基于DSP的PMSM 矢量控制在电梯控制中的应用[J].微处理机,2010(3):105-107.
[2]李长红.PMSM 调速系统中最大转矩电流比控制方法的研究[J].中国电机工程学报,2005,25(21):169-174.
[3]张巍.基于ARM 的PMSM 控制系统设计[J].微计算机信息:嵌入式与SOC,2010,26(11-2):70-71.
[4]Mohamed Wissem Naouar.FPGA-Based Predictive Current Controller for Synchronous Machine Speed Drive[J].IEEE TRANSACTIONS ON POWER ELECTRONICS,2008,23(4):2115-2126.
[5]李虎修.基于FPGA +ARM 的永磁同步电动机高精度转速检测[J].组合机床与自动化加工技术,2012(11):53-56.
[6]Xilinx.Zynq-7000 All Programmable SoC Technical Reference Manual[EB/OL].[2014-11].http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf.
[7]方华启.多核实时操作系统TOPPERS/FMP移植研究[J].单片机与嵌入式系统应用,2013(12):4-7.
[8]陈伯时.电力拖动自动控制系统—运动控制系统[M].3版.北京:机械工业出版社,2003:190-214.