一种 STM32 微控制器电机控制方案设计与实现
|
变频器的作用是改变交流电机供电的频率和幅值,因而改变其运动磁场的周期,达到平滑控制电动机转速的目的。变频器的出现,使得复杂的调速控制简单化,用变频器 交流鼠笼式感应电动机组合替代了大部分原先只能用直流电机完成的工作,缩小了体积,降低了维修率,使传动技术发展到新阶段。本文将探讨基于ARM的标准微控制器如何在一个被DSP和FPGA长期垄断的市场上打破复杂的控制模式,我们将以意法半导体的基于Cortex-M3 内核的STM32系列微控制器为例论述这个过程。 很多应用都会用到功率低于300 W的小型电机,例如汽车、打印机、复印机、纸张处理机、工厂自动化、太空和军事载具、测试设备和机械人。整体而言,电机的产量约和其功率大小成反比,这表示小型电机的产量远超过大型电机。应用最广泛的小型电机包括直流电机、无刷直流电机和步进电机。 步进电机、直流电机和无刷直流电机的主要区别在于它们的驱动方式。步进电机是以步阶方式分段移动,直流电机和无刷直流电机通常则采用连续移动的模拟控制方式。由于步进电机采用步阶移动,所以特别适合尽对寻址应用,目前市场上常见的步进电机已能提供每一步1.8°或0.9°的精确移动能力。步进电机采用直接控制方式,它的主要命令和控制变量都是步阶位置 (step position);相形之下,直流电机则是以电机电压做为控制变量,以位置或速度做为命令变量。直流电机需要反馈控制系统,它会以间接方式控制电机位置,步进电机系统多半则是以「开环」方式进行操纵。 直流电机是最常见和本钱最低的小型电机,并且广泛用于各种应用。无刷直流电机宣称能提供更高可靠性以及更低噪声和本钱,然而到目前为止,它却只能在磁盘或计算机风扇等少数目产应用中取代传统直流电机。在某些应用里,无刷直流电机有多项优点胜过传统电刷电机,例如它以电子组件和传感器取代电刷,不但延长电机寿命和减少维护本钱,而且也没有电刷产生的噪音。直流电机的特性使它成为调速系统最轻易使用的电机。 励磁电流与直流的主磁通量(在一个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负荷。 意法半导体扩大32位STM32微控制器(MCU)支持的电机矢量控制函数库,新增了支持单旁路无传感器控制、内部永磁(IPM)电机控制和永磁同步(PMSM)电机弱磁控制的算法。目前市场上大约已有40种电机控制应用采用了意法半导体的基于Cortex-M3的STM32微控制器。 在设计人员目前可以获得的新算法中,单旁路电流感应支持功能只需要一个电流感应电阻器,比需要三个电阻器的普通无传感器控制机制更加节省系统成本。单旁路电流感应是意法半导体开发的一项专利技术,具有直流总线电压利用率高、电流失真小和可听噪声低等优点。通过增加一个"最大化转矩电流比"(MTPA)控制算法,扩大的函数库给设计人员提供了更大的自由设计空间,使他们能够灵活地定义无刷IPM电机的电气参数,满足实际应用对电机的高功率密度和高速性能的需求。基于这些新的算法,开发人员可以充分利用STM32丰富的电机控制外设,包括STM32集成的两个三相PWM定时器,使一个微控制器可以同时控制两个无刷电机。通过打破一个微控制器控制一个电机的规则,设计人员使用STM32可以节省成本,降低设计尺寸和功耗,而且不会对性能有任何影响。微控制器集成的三个模数转换器能够支持高精度电机驱动器用的三路采样保持电流捕获。因为STM32采用先进的ARMCortex-M3CPU工业标准架构,用户在STM32上开发电机控制解决方案要比使用企业专有架构更节省时间。 即使最复杂的算法几乎也无法修正不精确的模拟测量值,但是,在某种程度上,电机驱动系统的总体性能取决于模数转换器的质量。STM32F103芯片内置三个采样率为1MSps的12位模数转换器,在整个温度和电压范围内,总不可调整误差 (TUE)低于5 LSB.模数转换器的数字接口有三个主要功能:首先,使CPU摆脱简单控制任务和数据处理;其次连接芯片的其余部件(中断请求、DMA请求、触发输入);最后,使STM32的多路转换器同步操作。 在这些对无刷电机控制有用的功能中,我们首先考虑通道读序列发生器。对比传统的扫描电路(按照模拟输入序号,按序转换一定数量的通道), 在一个16个转换通道组成的顺列(例如:Ch3, Ch3, Ch0, Ch11)内,序列发生器可按任何顺序转换通道,当设计人员在设计印刷电路板时,这个功能给设计人员带来更高的设计灵活性,为实现平均转换目的,准许对同一通道进行多次采样(在一个序列内),当整个序列转换完毕后,DMA通道将转换结果送到RAM,中断处理程序产生一个中断请求。 在检测电机相位电流的过程中,瞬变电压在功率开关上产生的噪声(在离线开关应用中,典型噪声达到几百个V/μs)是引起读取误差的一个重要原因,可能导致测量结果的信噪比非常低。解决方案是使模数转换器与控制功率级的定时器同步:因为换向时刻可以预定(由3 PWM定时器的比较寄存器定义),所以可以使用一个额外比较通道在换向时刻稍前或稍后触发模数转换操作。基于这个原因,STM32启用了第二个序列发生器(又称注入序列发生器),该序列发生器的优先级高于正常序列发生器,可以用一个不能延迟的新转换操作使当前的转换操作中断。通常情况下,正常序列发生器负责"内部管理"转换,连续检测温度或直流总线电压(作为后台任务),然后通过DMA通道发送到RAM,而注入序列发生器则将处理时间关键的转换操作,并将转换结果存储在模数转换器寄存器(将会产生一个中断,但是不能接受延时)。 |







