本文主要是介绍无感方波和FOC堵转检测策略参考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http://mcu.eetrend.com/content/2017/100007230.html
基于S12ZVM的车用无传感器BLDC堵转检测方法探讨
judy 发布于:周一, 07/31/2017 - 11:05 ,关键词:
- 传感器
- S12ZVM
- 恩智浦
本文介绍了车用无传感器BLDC堵转检测的重要性以及实现的方法,分别讲述了六步方波堵转检测以及FOC正弦波堵转检测的方法。重点介绍了基于S12ZVM的FOC正弦波堵转检测的原理、代码实现和测试。最后总结了S12ZVM在车用BLDC电机控制中的优势,特别是对于FOC正弦波控制而言。有了恩智浦强大的汽车电机Enablement,AMMCLIB,FreeMASTER、MCAT、ToolBox等等,很多复杂的功能和算法实现起来都容易了很多。本文希望对于使用S12ZVM来开发BLDC项目的工程师,能起到一定的帮助作用。
随着汽车自动化程度不断提高,电机在汽车上的应用也越来越广泛。无论是传统燃油汽车还是新能源汽车,电机作为执行器,扮演着越来越重要的角色。汽车电机大家族里面有一类电机叫流体控制类电机,包括各类风扇、鼓风机、水泵、油泵以及压缩机等。这些电机目前很多都已经使用无刷直流电机(BLDC),或者在往无刷直流电机切换的过程中。无刷直流电机有着高效、高可靠性的特点,再加上流体类电机几乎不工作在低速区,因此无传感器的无刷直流电机控制就特别适合汽车的这些应用。
无刷直流电机的无传感器控制一般包含方波控制和正弦波控制。无论是哪一种控制方式,由于没有传感器信号的接入,一旦遇到外界阻力或者巨大的负载突变,都可能会使得系统进入到堵转状态。在这种堵转状态下,电机只是原地抖动并消耗电流,而系统会处于异常状态。长时间保持这样的状态,无疑是有害的。
众所周知,对于有传感器的无刷直流电机系统,堵转检测就变得很简单了。只需要检测传感器信号是否在正常刷新就可以了,而对于无传感器系统,可靠的堵转检测就变得没那么容易了。本文会就这个议题进行详尽的解析,希望可以起到抛砖引玉的作用,对大家无传感器的无刷直流电机控制项目起到实际的帮助作用。
一. 六步方波无传感器BLDC堵转检测
对于直流无刷电机的无传感器六步方波,转子位置信息的获取是通过对三相反电动势信号进行采集、比较和计算得到的;其转速也是通过根据过零点的时间差计算得来的。其系统框图如图1所示。但如何来实现其堵转检测功能呢?NXP的无传感器BLDC方波控制方案给出了答案,总体思路就是对反电动势过零的周期进行判断。如果反电动过零周期异常并持续一段时间,就触发堵转检测。在AN4704的参考程序中,StallCheck函数就是实现堵转检测的。可以看到首先该函数对6个过零点周期进行判断,找出最大值和最小值;然后再计算6个过零点周期的平均值;接着对过零点周期平均值和最大值的一半以及过零点周期平均值和最小值的2倍进行比较,如果过零点周期平均值小于最大值的一半或者大于最小值的2倍,那么就属于异常状态,堵转检测故障因子就增加。另外一点就是还要考察如果过零点周期的最小值,看其是否小于设定的堵转检测换相周期最小值,如果是的话,堵转故障因子也增加。如果以上的条件都不满足的话,堵转因子就减小。最后判断堵转因子的值如果超过设定值,就产生堵转事件停机。
图1 无传感器BLDC方波控制系统框图
经过实践的证明,无论是启动阶段还是正常运行阶段,该堵转检测方法都可以可靠且有效的检测出堵转事件。其后面的物理含义也是比较好理解的,我们都知道电机正常运行时,一个电周期中有6次换向,对于大部分流体类应用,连续的6个换向周期内不会存在很大的突变,因此其平均值和最大值及最小值的差距不会特别大,且最小值也不会特别小,因此这两个判据是可以可靠的把堵转事件给检测出来的。
相应的代码请参考AN4704的软件包里的StallCheck函数。当然,可以根据电机参数及实际应用,修改STALLCHECK_MIN_CMT_PERIOD和STALLCHECK_MAX_ERRORS的值。对于STALLCHECK_MIN_CMT_PERIOD参数,主要是考虑到电机的最高转速下对应的值,其越小,电机的转速越高,堵转事件发生的条件就越苛刻;对于STALLCHECK_MAX_ERRORS参数,实际上就是容错处理,其值越大,也是越不容易发生堵转事件。
StallCheck的流程图如图2所示。对于方波控制来讲,堵转检测确实不算复杂,那对于磁场定向控制的无传感器方案呢,堵转检测功能该怎么做呢?
图2 无传感器BLDC方波控制堵转检测流程图
二. 正弦波FOC无传感器堵转检测
目前对于无刷直流电机的无传感器FOC控制来讲,其堵转检测一般有两种方法,速度波动检测法和反电动势校验法。
2.1 速度波动检测法
速度波动检测法的基本思路就是在快速环路(电流环)内记录观测器输出的速度值,然后在慢速环路(速度环)内计算速度的平均值以及速度的波动。如果速度的波动超过设定的阈值就可以判断为发生了堵转事件。是不是感觉这种方法似曾相识呢。速度波动法和前面介绍的无传感器BLDC的方波控制堵转检测实质上是一个思路,那就是判断速度反馈是否合理。由于速度波动检测法本身比较简单,另外对于一些反电动势观测器来讲,在某些特定场景下,这种方法可能失效,特别是负载突变的时候,反电动观测器还会继续工作,电机相电流波形也很好,速度输出也会很稳定,但实际上电机并没有运行而是在原地抖动。基于这个原因,本文并不推荐速度波动检测法来检测堵转事件,也就不再花篇幅来深入下去了。另一方面,反电动势校验法则可靠很多,会是本文的重点。
2.2 反电动势校验法
目前反电动势校验法是检测无传感器FOC方案的主流方案。接下来会重点介绍该方法的原理、代码实现及测试等。
2.2.1原理
对于无传感器的FOC控制,恩智浦方案中最常用的是反电动势观测器,其框图如图3所示。该观测器将αβ坐标系的电压和电流通过Park变换到垂直的γδ坐标系。而γδ坐标系和同步坐标系dq之间的角度差是θerr。后面的Position Tracking Controller实际上就是个PLL,目标是锁定θerr=0;从而确保输出的θestim和转子真实的位置重合。图4为γδ坐标示意图。
图3 反电动势观测器和PLL框图
图4 γδ坐标系示意图
由图3可以看到back-EMF State Filter的输出是γδ坐标系的反电动势。当γδ坐标系与dq坐标系重合的时候,Eδ实际上就是Eq。如果观测器正常工作,Eδ的输出是和转速成正比例的,转速稳定的情况下,Eδ也是平稳的。从另一个角度来看,对于q轴反电动势,如果知道反电动势系数和转速,也是可以根据公式来计算得到的。这样就会有两种途径来获得q轴的反电动势,一个是从观测器输出得到,另一个是从转速和反电动势系数得到。如果两个途径得到的反电动Eq相差比较大,超出了阈值,就可以判定为堵转事件。原理图框图如图5所示。
图5 反电动势校验法原理框图
2.2.2 代码实现
由于恩智浦在汽车电机控制上的积累,使得AMMCLIB(Automotive Math and Motor Control Library)非常适合于汽车电机的应用。无论是数学运算还是各种滤波器,目前AMMCLIB都能很好的支持,同时AMMCLIB还集成了包括扩展的反电动势观测器在内的诸多高级电机控制算法。AMMCLIB可以说是为汽车行业量身定做的,其满足SPICE LEVEL 3标准。因此本文的代码也是基于AMMCLIB来写的。
上面的原理框图中,ε为允许偏差范围百分比;如果允许20%偏差,那么ε=0.2;Ke与Ke_offset可以通过实验的方法得到。举例说明如下,比如恩智浦的演示电机,可以分别让其跑在1000RPM、2000RPM、3000RPM以及4000RPM稳定转速下,分别得到其Eq值和转速值。然后做一个线性方程就可以解出Ke和Ke_offset,理论上两个点就可以了。然后设置一个合理的ε值,比如20%。这样就可以算出来Eq的变化范围,然后去比较Eδ和Eq的范围边界,如果出界,ErrorCounter加1。如果在一定的Counter范围内,ErrorCounter超出设置阈值,则判断为堵转事件发生。图6对Eδ的允许范围做了很清晰的描述,如果Eδ不在蓝色的范围带内,就说明观测器输出是异常的,积累一定次数后就可以判定堵转事件。然后就可以进入到堵转故障处理程序了,通常是停机,然后尝试重新启动。这部分代码实现不算复杂,目前实现该功能的基本代码已经写好了,限于篇幅的原因,就不直接放出来了。
图6 反电动势Eδ允许的范围示意图
2.2.3 测试
堵转检测的测试主要考察两个方面,一个是启动阶段,一个是正常运行阶段。测试平台采用恩智浦的S12ZVMx12EVB开发套件,搭配12V电源和示波器。如图7所示。
图7 无刷直流电机堵转检测平台
测试1:启动阶段用手堵住电机的圆盘,然后启动电机运行,目标转速1000RPM。因为电机被堵转,没法转动,此时电机出现抖动,电流保持正弦。此时堵转检测功能没有使能,电流激励一直维持。
测试2:其他条件和测试1一致,使能堵转检测功能。电机在抖动几秒后触发了堵转故障,成功了检测出了堵转故障。重复10次每次都可以成功。
测试3:其他条件和测试2一致,但没有在启动前就堵转电机,而是等待进入速度闭环,也就是稳定跑到1000RPM时,突然施加外力到圆盘上,电机在励磁几秒后触发了堵转故障,成功的检测出堵转事件。整个测试故障可以在FreeMaster上进行查看,一个触发成功的图片如图7所示。
图8 FreeMASTER上堵转故障被触发
测试结论:该堵转检测方法经过测试验证是有效的。
三. 总结
本文所用的测试平台就是恩智浦的S12ZVM系列,属于MagniV家族重要成员。S12ZVM内部集成了电源(LDO)、功率器件的PreDriver(GDU)、通信接口(LIN、PWM或者CAN)以及S12Z内核的高速高效率单片机。总之,S12ZVM是一个高度集成的智慧型产品,非常适合一体化BLDC的驱动。
以下罗列S12ZVM对于FOC控制的诸多优点,还有很多优点都没法一一罗列,用过的都知道。
1. 内核以及PWM时钟最高100MHz,总线速度可达50MHz;
2. 双路12位ADC,可同时支持两相电流采样,确保电流精度;
3. 内置双运放,运放输出直连比较器,确保硬件保护的可靠;
4. PTU、ADC以及PWM协同工作实现DMA搬运数据,可以在PWM的任意位置触发ADC,且非常适合需要动态更改和多次触发的场景;
5. 恩智浦的FreeMASTER搭配MCAT,FOC控制so easy;
正因为恩智浦强大的芯片和Enablement的支持,BLDC的控制就变得简单了很多,而且在这个平台上开发其他功能也简单了。本文就是基于恩智浦的Enablement开发了无传感器BLDC的堵转检测功能,从BLDC方波到FOC正弦波,都给出了解决方案。
这篇关于无感方波和FOC堵转检测策略参考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!