基于STM32微控制器处理先进电机控制方法
扫描二维码
随时随地手机看文章
变频器的问世和先进的电机控制方法让三相无刷电机(交流感应电机或永磁同步电机)曾经在调速应用领域取得巨大成功。这些高性能的电机驱动器过去主要用于工厂自动化系统和机器人。十年来,电子元器件的大幅降价使得这些电机驱动器能够进入对成本敏感的市场,例如:家电、空调或个人医疗设备。本文将探讨基于ARM的标准微控制器如何在一个被DSP和FPGA 长期垄断的市场上打破复杂的控制模式,我们将以意法半导体的基于Cortex-M3 内核的STM32系列微控制器为例论述这个过程。
首先,我们回顾一下电机控制的基本原理。在电机控制系统内,为什么处理器非常重要?我们为什么需要非常好的计算性能?毕竟,Nicolas Tesla在一个世纪前发明交流电机时不需要编译器。只要需要调速,人们无法回避使用逆变器驱动一个性能不错的3相电机,控制一个永磁同步电机 (PMSM)运转更离不开逆变器,这个复杂的功率电子系统的核心是一个直流转交流的3相逆变器,其中微控制器起到管理作用,以全数字方式执行普通的三位一体的控制功能:检测(电流、转速、角度…)、处理(算法、内务管理…)、控制功率开关(最低的配置也至少有6个开关)。
图1:STM32F103HD可以同时处理双电机控制和数字PF
采用标量控制是一个三相交流电机实现变速运转的最简单方式。标量控制原理是在施加到电机的频率和电压之间保持一个恒比。对于入门级电机驱动器,这是一个非常主流的控制方法,适合负载特性非常普通且控制带宽要求不高的应用(如功率非常小的电泵和风扇)。不幸地是,并不是所有的应用都能忍受如此简单的控制过程及其应用限制。特别是,标量控制在瞬变环境内不能保证最佳的电机性能(转矩、能效)。为克服这些限制,人们开发出了其它的电机控制方法,其中磁场定向控制(又称矢量控制)是应用最广泛的方法之一。这种控制方式利用两个去耦直流控制器,不管运转频率如何(例如转速),以驱动分开励磁电机的方式驱动任何一种交流电机(感应电机或永磁电机)。励磁电流与直流的主磁通量(在一个PMSM电机内的磁体磁通量)有关,而90°移相电流可以控制转矩,功能相当于直流电机的电枢电流。当负载变化时,磁场定向控制方式可实现精确的转速控制,而且响应速度快,使定子磁通量和转子磁通量保持完美的90度相位差,即便在瞬变工作环境内,仍然能够保证优化的能效,这是实现以电机拓扑为标志的更复杂的控制方法所依据的基本理论框架,特别是对于PMSM电机,这个理论是无传感器电机驱动器的基础,既可以大幅降低成本(不再需要转速或转角传感器和相关的连线),同时还能提高电机可靠性。在这种情况下,必须只使用电机数学模型、电流值和电压值,通过计算方法估算转子角度位置。在最低分钟转数只有几百转的情况下,这种状态观测器理论(在其它控制方法中)可以实现无传感器的转速控制,在某些情况下,最低分钟转数是静止状态。不过,这对CPU是一个额外的实时负荷。最后,微控制器必须以1KHz到20KHz的速率连续重新计算矢量控制算法,具体速率取决于最终应用带宽,处理Parke和Clarke转换和实现多个PID控制器和软件锁相环确实需要高强度的数字计算,这就是过去为什么数字信号处理器、微处理器或FGPA器件被用作控制器的原因。
尽管专用双模控制器和低端定点DSP架构已经问世,但是意法半导体仍然选择使用Cortex-M3内核开发STM32微控制器。这个解决方案可很好地满足大量的无刷电机驱动器的要求,从一次性工程费用的角度看,该解决方案的优点是采用行业标准的ARM®内核和标准微控制器的成本效益。
基于Harvard架构,这个32位RISC采用Thumb2指令集,提供16位和32位指令。对比纯32位代码,这个指令集能够大幅提高代码密度,同时保留原有ARM7指令集的多数优点(附加优化的乘加运算和硬件除法指令)。
电机控制系统要求微控制器须具备卓越的实时响应性(中断延时短)、纯处理功能(如单周期乘法)以及优异的控制性能(当处理非序列执行流和条件转移指令时)。Cortex-M3能够满足所有这些要求。例如,当时钟频率是72MHz时,在25µs内对一个永磁电机完成一次无传感器磁场定向控制,这相当于在 10 kHz采样率下25% 的CPU负荷。
在STM32微控制器内,该内核与意法半导体优化型闪存接口紧密配合,只需增加很少的外部元器件,周边外设即可处理外部事件(图2所示是 STM32F103中容量微控制器的结构框图)。不用说,PWM定时器和模数转换器是最重要元器件。PWM定时器包括最先进的功能,如中央对齐模式PWM 信号生成和死区时间插入逻辑,特别强调安全性:该模块直接控制功率开关换向,可控开关功率达到数千瓦。例如,用于配置某些重要参数的寄存器代码可以被锁保护,以防软件失效。只要“紧急停止”引脚被拉低,所有的I/O引脚都被置于用户可配置的安全状态。这个功能设计采用组合逻辑模块,当主时钟(晶体)失效时,内部切换到后备振荡器之前,可确保保护电路仍然能够正常工作。最后,该微控制器还包含一个第4比较通道,专门用于触发模数转换器,实现最佳的电流测量精度。
图2 STM32F103中容量微控制器结构框图
即使最复杂的算法几乎也无法修正不精确的模拟测量值,但是,在某种程度上,电机驱动系统的总体性能取决于模数转换器的质量。STM32F103芯片内置三个采样率为1MSps的12位模数转换器,在整个温度和电压范围内,总不可调整误差(TUE)低于5 LSB。模数转换器的数字接口有三个主要功能:首先,使CPU摆脱简单控制任务和数据处理;其次连接芯片的其余部件(中断请求、DMA请求、触发输入);最后,使STM32的多路转换器同步操作。在这些对无刷电机控制有用的功能中,我们首先考虑通道读序列发生器。对比传统的扫描电路(按照模拟输入序号,按序转换一定数量的通道),在一个16个转换通道组成的顺列(例如:Ch3, Ch3, Ch0, Ch11)内,序列发生器可按任何顺序转换通道,当设计人员在设计印刷电路板时,这个功能给设计人员带来更高的设计灵活性,为实现平均转换目的,准许对同一通道进行多次采样(在一个序列内),当整个序列转换完毕后,DMA通道将转换结果送到RAM,中断处理程序产生一个中断请求。[!--empirenews.page--]
在检测电机相位电流的过程中,瞬变电压在功率开关上产生的噪声(在离线开关应用中,典型噪声达到几百个V/µs)是引起读取误差的一个重要原因,可能导致测量结果的信噪比非常低。解决方案是使模数转换器与控制功率级的定时器同步:因为换向时刻可以预定(由3 PWM定时器的比较寄存器定义),所以可以使用一个额外比较通道在换向时刻稍前或稍后触发模数转换操作。基于这个原因,STM32启用了第二个序列发生器(又称注入序列发生器),该序列发生器的优先级高于正常序列发生器,可以用一个不能延迟的新转换操作使当前的转换操作中断。通常情况下,正常序列发生器负责“内部管理”转换,连续检测温度或直流总线电压(作为后台任务),然后通过DMA通道发送到RAM,而注入序列发生器则将处理时间关键的转换操作,并将转换结果存储在模数转换器寄存器(将会产生一个中断,但是不能接受延时)。
对于一个能够执行先进的电机控制功能的通用微控制器,拥有微控制器是一回事,而开发轻松入门却是另一回事。利用软硬件工具可以把这个问题的两个方面都处理好。首先是拥有一套电机控制开发入门工具,包含测试工具(JTAG探针和光隔离器)、微控制器芯片以及功率级电路板和演示用PMSM电机,这套工具用于产品性能评估和开发用途。模块化设计有助于升级演示应用(例如双电机控制微控制器电路板),评估多个(或定制)功率级。最后,意法半导体为STM32客户免费提供电机控制软件库。2.0版电机控制软件库利用头文件内的一个简单且低廉的#define声明列表支持各种配置。软件库包含交流感应电机和同步电机的磁场定向控制算法,为简化代码的可读性和可维护性,这些算法采用C编程语言,再次证明了现代编译器的效率。该软件库还针对PMSM电机提供一个稳健的无传感器控制算法(基于磁通观测器),以及一个超高速内部永磁电机(IPM)专用控制算法。当然,该软件还支持普通转速和位置传感器(增量编码器、霍尔传感器或转速传感器)。通过使用隔离传感器或分流器,STM32支持三种电流检测方法。STM32外设可以实现一个创新的单电流检测方法,利用成本最低的配置(一个简单的独特的电阻器)执行矢量控制。因为能够最大限度降低本征电流失真率,这项技术已取得专利权。
意法半导体目前的主要开发项目是控制电机直到静止状态的无传感器永磁电机控制和内置功率因数校正功能的双电机控制。最近,意法半导体成功演示了单电流检测方法,仅一个STM32微控制器就能执行两个单电流检测矢量控制功能,同时还用一个40 kHz的控制回路管理PFC级(详见图1)。
从功率开关分立器件,到复杂的系统芯片,意法半导体承诺以其独有的产品组合长期支持电机控制市场。STM32微控制器产品线将继续沿四个新方向部署,如图3所示,其中两个方向适用于电机控制。第一个产品线将面向低成本市场,开发低端的16位电机控制微控制器。另一个产品线以高性能为诉求,面向需要更高处理性能、更大存储容量和高带宽接口的应用。如此宽广的产品组合结合Cortex-M3内核,势必确立STM32架构适用于现在和未来电机驱动的多功能性。
图3:STM32:强固的增长基础