ARM平台电机矢量控制分析及性能评估①
2017-02-20张玉磊王志成史秀玉郑国利
张玉磊, 王志成, 史秀玉, 郑国利
ARM平台电机矢量控制分析及性能评估①
张玉磊1,2, 王志成2,3, 史秀玉1,2, 郑国利2,3
1(中国科学院大学, 北京100049)2(中国科学院沈阳计算技术研究所高档数控国家工程研究中心, 沈阳 110168)3(沈阳高精数控智能技术股份有限公司, 沈阳 110168)
对ARM平台电机矢量控制模型进行了分析及性能评估, 弥补了当前伺服控制系统中该评估工作的空白. 分析了电机矢量控制模型和能实现该模型ARM平台的软硬件环境, 给ARM平台电机矢量控制分析及性能评估奠定了基础. 使用了一种利用建立空闲任务计算CPU负载率的方法, 并用此方法进行了以CPU负载率为性能指标的评估实验, 对不同条件下矢量控制策略的适用情况进行了分析. 分析结果对ARM平台下矢量控制策略的选择有一定的指导意义.
矢量控制; ARM; CPU负载率; 性能评估; RTX
作为伺服电机控制的一种方式, 矢量控制已成为高性能变频调速系统的首选方案. 与传统采用V/F控制相比, 矢量控制存在着控制精度高, 动态性能好等特点[1]. 与之前的控制方案相比, 矢量控制方案计算复杂、对电机参数的依赖性大, 需要有较高性能的处理器作为支撑[2]. 目前, 电机控制主要使用DSP来实现. 近年来, 随着ARM芯片的出现和相关技术的飞速发展, ARM处理器核因其卓越的性能和诸多优点, 已成为低功耗、低成本、高性能嵌入式处理器的代名词. 将ARM芯片用于伺服电机的矢量控制, 能够弥补DSP芯片在控制方面的不足, 在获得更快运算速度的同时可以节约成本并降低系统的复杂度, 成为了伺服电机控制处理器的又一理想选择[3,4]. 虽然ARM平台电机矢量控制已有研究, 但是分析的不够具体, 更没有对ARM平台上矢量控制的性能进行评估. 导致很多开发人员并不十分清楚软硬件平台需要满足哪些条件, 才能在ARM平台上实现矢量控制模型; 怎样的软硬件条件选择才能使ARM平台有更好的矢量控制效果. 本文选择STM32F405ZG为硬件平台核心, RTX为实时操作系统, 在分析矢量控制模型以及软硬件平台的基础上, 通过CPU负载率来评估ARM平台上电机矢量控制的性能. 量化分析的评估结果对以后开发人员在ARM平台矢量控制策略的选择上有一定的指导意义.
1 矢量控制模型分析
矢量控制具有广泛的应用实践和丰富的理论基础, 尤其在电机控制上. 本节主要是在矢量控制系统的结构上分析矢量控制模型的核心模块.
1.1 矢量控制系统结构
图1是矢量控制系统的结构图, 从图中可以看出这是一个电流内环、速度外环的双闭环控制系统.
1.2 核心模块分析
电流环在电机矢量控制中有着非常重要的地位, 通过改造内环控制对象的传递函数, 来保证牵引系统的转矩控制快速性和稳定性[5]. 电流环的主要功能是快速响应电流的变化, 通过将转矩和磁通量转换为电流矢量来动态控制其变化, 所以需要专门的软硬件支持. 软件模块主要有: CLAKE变换、PARK变换、PI电流调节、IPARK变换、空间向量脉冲调制(SVPWM)等模块, 主要是为了完成矢量控制模型的计算; 和硬件相关接口主要有(正交编码脉冲)QEP、模数变换模块等.
速度环是电流环的外环, 其输出可作为电流环的输入给定[6], 通过检测QEP模块的输出信号来进行反馈调节. 速度环的主要组成是速度计算模块和速度PI调节模块, 其中速度计算模块主要是根据反馈值进行速度计算, 而PI调节模块主要作用是保证系统良好的跟踪性和抗干扰性[7].
矢量控制策略的双环串级控制是先内后外的顺序[8], 即首先是电流环进行转矩和磁通分量的调节, 然后是速度环根据电机电气角进行速度反馈控制. 相比电流, 速度的变化要慢的多, 所以本次评估实验设定电流环的控制频率与PWM频率是一致的, 速度环控制周期是电流环控制周期的两倍, 这样可以保证检测到较高精度的速度[9].
若要在ARM平台上实现矢量控制模型, 除了需要具备必要的硬件模块以外, 还必须能在要求的时间范围内实现控制模型的软件计算部分.
2 硬件平台分析
通过上一节矢量控制模型的分析, 需要选择合适的硬件平台才能满足要求. 硬件平台需要对电流进行采样、产生PWM输出、对电机速度位置监测、有供外部进行通信和调试的接口、有存储器进行程序存储, 还需要较高的运算速度完成软件部分的计算和时钟频率满足实时控制等. 基于此, 本次实验以沈阳计算所高精数控研发的GTS100-AOA伺服驱动器为硬件平台, 该硬件平台以STM32F405ZG作为矢量控制核心芯片. 硬件系统主要组成如图2所示.
图2 控制系统硬件总体结构
STM32F405ZG是基于 Cortex-M4内核由ARM专门开发的最新嵌入式ARM处理器, 在M3的基础上强化了运算能力, 并且新加了浮点、DSP、并行计算等. 处理器内核是高性能32位、低延迟3阶管道, 可达1.25DMIPS/MHz, 最高时钟频率高达168MHz.
该处理器总线结构是由32位多层AHB总线矩阵构成, 在多个高速外设同时运行期间, 系统可以实现并发访问和高效运行. 含有192KB系统SRAM, 系统SRAM可按字节、半字(16位)或全字(32位)访问, 读写操作以CPU速度执行, 等待周期为0. 此外还有高达1MB的嵌入式FLASH存储器, 可用于开发和再编程. 此硬件平台的存储方式和总线结构缩短了矢量控制计算时的额外开销, 能够及时处理输入输出数据, 满足矢量控制的实时性要求.
该硬件平台还提供了矢量控制模型需要的外设接口:
1) TIM5外设. STM32F405ZG器件中TIM5通用定时器是一个可编程定时器, 它提供的编码器接口模式可用于读取电机转动时的位置信号并进行统计, 计算出电机转动时的电气角和机械角, 作为矢量控制算法中坐标变换和速度计算模块的输入.
2) ADC外设. STM32F405ZG器件中ADC有12位, 是逐次趋近型模数转换器. 它具有多达19个复用通道, 可测量来自16个外部源、两个内部源的信号. 这些通道的A/D转换可在单次、连续、扫描或不连续采样模式下进行. 该外设支持DMA, 减少了CPU访问该外设的开销. 可用于对电机电流进行监测和采样, 作为矢量控制坐标变换的输入.
3) TIM8外设. STM32F405ZG器件中TIM8高级控制定时器包含一个16位自动重载计数器, 有多个独立通道可用于PWM生成(边沿模式和中心对齐模式), 并且可以通过软件设置PWM信号死区的大小. 利用TIM8用于矢量控制模型PWM的输出.
4) JTAG调试接口. STM32F405ZG器件中的JTAG调试接口主要用于芯片内部测试, 可以通过J-link连接JTAG进行程序烧写和在线调试. 还可以通过JTAG在集成开发环境Keil uVision4读取ARM平台的CPU负载率进行分析.
3 软件平台分析
根据需要实现的控制模型以及所选取的硬件平台, 还需要选择合适的软件平台. 软件平台需要很好的支持硬件平台, 能实现任务调度, 多线程之间切换, 模块化的管理程序, 满足矢量控制实时性要求等. 本次评估实验选择RTX实时操作系统作为软件平台. RTX是免税版的确定性实时操作系统, 它提供抢占式多线程服务、同时可以创建执行多个功能的程序, 并有助于创建结构更好且维护更加轻松的应用程序, 适用于ARM和Cortex-M设备. 整个RTX Kernel组成如图3.
图3 RTX Kernel组成
该软件平台还满足矢量控制模型的软件需求, 主要体现在:
1) RTX是专门为基于ARM和Cortex-M MCU的嵌入式系统而编写的, 能非常好的支持上节介绍的硬件平台.
2) RTX可以方便地管理模块化的矢量控制程序, 根据不同的实验需求完成模块的增减, 满足矢量控制程序可扩展的要求.
3) RTX运行速度快, 占用资源极少. 系统计时器精度最高可达0.001ns, 支持RTX线程最低可能的延迟调度, 可以非常好地满足矢量控制的实时性要求.
除此以外, 相比其他的实时操作系统, RTX学习周期短, 产品开发速度快. Vision IDE调试器完全支持 RTX, 其中采用RTX任务识别工具以便于在应用程序中快速方便地配置和调试RTX. 没有了复杂的配置过程, 开发者可集中精力在控制策略的实现上.
系统软件运行的主要流程如下: PWM频率设定为8K时, 矢量控制程序每过125us触发一次线程中断, ADC外设进行电流采集, 触发DMA中断, 然后根据不同的div分频值运行电流环和速度环. 电流环主要包括CLARKE变换、PARK变换、PI电流调节、IPARK变换、SVGEN等模块, 速度环主要包括速度PI调节等模块, 其中电流环执行的频次是速度环的两倍.
4 性能评估
一般从时间复杂度和空间复杂度对算法的性能进行评估. 由于是在特定ARM平台上实现矢量控制算法的, 可以认为硬件平台的CPU负载率能间接反映算法的时间复杂度. 在不同的存储器中, 读写操作的速度不同, 而代码空间大小没有发生变化, CPU负载率间接反映了算法复杂度. 综上, 这里选择CPU负载率作为ARM平台矢量控制性能的评估指标.
4.1 CPU负载率计算方法
由于没有现成的工具可以直接测量ARM平台CPU负载率进行性能评估, 这里使用了一种通过建立空闲任务计算CPU负载率的办法. 首先在用户入口函数发起一个优先级为最低的空闲任务,该任务仅仅给一个静态变量(count)加1, 由于该任务优先级最低, 只有当CPU不需要执行其他任务时, 才会切换到空闲任务. 在用户函数中延迟2秒, 让CPU 2秒钟内全部在执行空闲任务, 这时静态变量(count)将会是一个很大的值, 将count/100保存到另一个静态变量base中作为比较基础, count值重置为0. 然后发起一个优先级比空闲任务高一级的统计任务用于计算CPU负载率, 每2秒执行一次, 利用空闲任务中静态变量(count)的值与base之比和100做差得出CPU负载率.
通过上述方法进行CPU负载率的测量. 实验评估主要分成两个部分, 第一部分是在内部FLASH中运行程序, 分析不同PWM频率下控制模块对CPU的负载率; 第二部分是在不同的存储器中(内部RAM和内部FLASH)运行程序, 评估不同PWM频率下执行矢量控制程序时CPU的负载率.
4.2 不同PWM频率下控制模块的CPU负载率
如图4所示. 空载时表示不添加任何控制算法模块, 但是会执行线程调度程序和PWM中断服务程序. 电流环PI含有电流PI调节模块[10]. 速度环含有速度PI调节和速度计算模块. 图4中纵坐标表示CPU负载率, 横坐标表示各模块是向右累加的.
从图4中可以看出, PWM频率相同时, CPU负载率会随着控制模块的增加而增加, CPU负载率变化的幅度和添加模块的处理复杂度相关; PWM频率不同时, 相同累加模块的CPU负载率会随着PWM频率的增加而增加, 因为PWM频率的增加会使得各模块处理频率次数增多.
空载时由于要执行PWM中断服务程序和线程调度程序, PWM频率越高, PWM中断服务调用次数越多, 使得空载时不同PWM频率下CPU负载率不一致.
图4 不同PWM频率下控制模块CPU的负载率
PWM频率越高, 会使得控制系统的实时性越高, 逆变器开关变换得越频繁. PWM频率可根据电机功率来选择, 但电流太大会影响逆变器开关的变换频率, 所以载波频率设定为8KHz比较合适. 从图4可知, 在内部FLASH中以不同PWM频率运行矢量控制算法CPU负载率最高81%, 虽然使用上述方法测得的CPU负载率有一定误差, 但在一定程度上说明了在PWM频率低于13KHz的情况下ARM平台适应于不同频率的电机, 并且具有较好的实时性和稳定性.
4.3 不同存储器中执行矢量控制算法CPU负载率
STM32F405ZG有内部RAM和内部FLASH两种存储器, 可以通过自举配置选择不同存储器作为自举空间执行矢量控制算法. 从图5可以看出PWM频率相同时, 矢量控制算法在内部RAM中执行的负载率小于在内部FLASH中执行的负载率. 这主要是由于内部RAM读写以CPU速度进行, 且等待周期为0, 而内部FLASH管理CPU通过AHB I-Code 和D-Code对FLASH进行访问, 从而导致了负载率不同. 在PWM不同时, 对于相同存储器中运行的程序, CPU负载率会随着PWM频率的增加而增加, 主要是因为PWM频率增加导致矢量控制算法执行的频率增加从而增加了CPU负载率.
从图5还可以看出, 当PWM频率为12KHz, 在FLASH中运行程序时CPU负载率为81%, 可以通过将程序放到RAM中运行来降低CPU负载率. 针对那些对实时性能要求非常高的小功率电机, 可以在内部RAM中执行基于矢量控制策略的实时控制系统; 而对那些对实时性要求一般的大中功率电机可以在内部FLASH中运行.
图5 不同存储器中执行矢量控制算法CPU负载率
5 结语
不仅分析了ARM平台实现矢量控制模型需要的软硬件环境, 提出了一种测量CPU负载率的方法, 而且通过实验得出了不同PWM频率下矢量控制模块的CPU负载率, 以及不同存储器中执行矢量控制算法的CPU负载率. 通过对实验数据和矢量控制模型软硬件环境分析, 对以后开发人员在特定功率伺服电机控制系统中对软硬件平台和矢量控制算法的选择上有一定的指导意义, 弥补了当前伺服控制系统对该评价工作的空白.
1 李静,向风红.张勇,等.基于ARM核微控制器的异步电机矢量控制.电子与封装,2007,7(1):43–45,48.
2 曲家骐.永磁同步伺服电动机的矢量控制.微特电机,2001, (4):18–21.
3 张斌斌,殳国华,丁君武.基于ARM的交流异步电机控制与馈电系统设计.电气自动化,2015,37(5):1–3,9.
4 张巍,陈今润,王琛.基于ARM的PMSM控制系统设计.微计算机信息(嵌入式SOC),2010,26(11-2):70–71.
5 韦克康,周明磊,郑琼林,王琛琛.基于复矢量的异步电机电流环数字控制.电工技术学报,2011,26(6):88–94.
6 李培伟.永磁同步电机伺服系统矢量控制技术研究[硕士学位论文].南京:南京理工大学,2013.
7 肖卫文,熊芝耀,李世春,程绪长.基于变参数PI的永磁同步电动机矢量控制系统.电力电子技术,2009,43(4):32–33.
8 郝龙.永磁同步电机无速度传感器矢量控制[硕士学位论文].哈尔滨:哈尔滨工程大学,2011.
9 汤新舟.永磁同步电机的矢量控制系统[硕士学位论文].杭州:浙江大学,2005.
10 周晖.基于模糊PI控制的永磁同步电机矢量控制系统实现及性能研究[硕士学位论文].杭州:浙江大学,2006.
Analysis and Performance Assessment of Vector Control for Motor Based on ARM
ZHANG Yu-Lei1,2, WANG Zhi-Cheng2,3, SHI Xiu-Yu1,2, ZHENG Guo-Li2,3
1(University of Chinese Academy of Sciences, Beijing 100049, China)2(National Engineering Research Center for High-end CNC, Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)3(Shenyang Golding NC Intelligent Tech. Co. Ltd., Shenyang 110168, China)
This paper analyzes and evaluates the motor vector control model of ARM platform, and makes up the blank of the evaluation in current servo control system. The analysis of the vector control model for motor and the environment of software and hardware need to realize the model based on ARM, which lays in the foundation of the analysis of vector control for motor based on ARM and performance evaluation. We use one method by idle task computing CPU load, and use this method to compute CPU load for performance evaluation experiments. Applications of vector control strategies under different conditions are analyzed. It has a guiding significance for vector control strategies choose based on ARM.
vector control; ARM; CPU load; performance evaluation; RTX
国家科技重大专项(2013ZX04001-031)
2016-04-24;收到修改稿时间:2016-05-26
[10.15888/j.cnki.csa.005538]