无感方波和FOC堵转检测策略参考

2023-05-16

http://mcu.eetrend.com/content/2017/100007230.html

基于S12ZVM的车用无传感器BLDC堵转检测方法探讨

judy的头像

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倍,那么就属于异常状态,堵转检测故障因子就增加。另外一点就是还要考察如果过零点周期的最小值,看其是否小于设定的堵转检测换相周期最小值,如果是的话,堵转故障因子也增加。如果以上的条件都不满足的话,堵转因子就减小。最后判断堵转因子的值如果超过设定值,就产生堵转事件停机。

 

基于S12ZVM的车用无传感器BLDC堵转检测方法探讨

图1 无传感器BLDC方波控制系统框图

经过实践的证明,无论是启动阶段还是正常运行阶段,该堵转检测方法都可以可靠且有效的检测出堵转事件。其后面的物理含义也是比较好理解的,我们都知道电机正常运行时,一个电周期中有6次换向,对于大部分流体类应用,连续的6个换向周期内不会存在很大的突变,因此其平均值和最大值及最小值的差距不会特别大,且最小值也不会特别小,因此这两个判据是可以可靠的把堵转事件给检测出来的。

相应的代码请参考AN4704的软件包里的StallCheck函数。当然,可以根据电机参数及实际应用,修改STALLCHECK_MIN_CMT_PERIOD和STALLCHECK_MAX_ERRORS的值。对于STALLCHECK_MIN_CMT_PERIOD参数,主要是考虑到电机的最高转速下对应的值,其越小,电机的转速越高,堵转事件发生的条件就越苛刻;对于STALLCHECK_MAX_ERRORS参数,实际上就是容错处理,其值越大,也是越不容易发生堵转事件。

StallCheck的流程图如图2所示。对于方波控制来讲,堵转检测确实不算复杂,那对于磁场定向控制的无传感器方案呢,堵转检测功能该怎么做呢?

 

基于S12ZVM的车用无传感器BLDC堵转检测方法探讨

图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为γδ坐标示意图。

 

基于S12ZVM的车用无传感器BLDC堵转检测方法探讨

图3 反电动势观测器和PLL框图

 

基于S12ZVM的车用无传感器BLDC堵转检测方法探讨

图4 γδ坐标系示意图

由图3可以看到back-EMF State Filter的输出是γδ坐标系的反电动势。当γδ坐标系与dq坐标系重合的时候,Eδ实际上就是Eq。如果观测器正常工作,Eδ的输出是和转速成正比例的,转速稳定的情况下,Eδ也是平稳的。从另一个角度来看,对于q轴反电动势,如果知道反电动势系数和转速,也是可以根据公式来计算得到的。这样就会有两种途径来获得q轴的反电动势,一个是从观测器输出得到,另一个是从转速和反电动势系数得到。如果两个途径得到的反电动Eq相差比较大,超出了阈值,就可以判定为堵转事件。原理图框图如图5所示。

 

基于S12ZVM的车用无传感器BLDC堵转检测方法探讨

图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δ不在蓝色的范围带内,就说明观测器输出是异常的,积累一定次数后就可以判定堵转事件。然后就可以进入到堵转故障处理程序了,通常是停机,然后尝试重新启动。这部分代码实现不算复杂,目前实现该功能的基本代码已经写好了,限于篇幅的原因,就不直接放出来了。

 

基于S12ZVM的车用无传感器BLDC堵转检测方法探讨

图6 反电动势Eδ允许的范围示意图

2.2.3 测试

堵转检测的测试主要考察两个方面,一个是启动阶段,一个是正常运行阶段。测试平台采用恩智浦的S12ZVMx12EVB开发套件,搭配12V电源和示波器。如图7所示。

 

基于S12ZVM的车用无传感器BLDC堵转检测方法探讨

图7 无刷直流电机堵转检测平台

测试1:启动阶段用手堵住电机的圆盘,然后启动电机运行,目标转速1000RPM。因为电机被堵转,没法转动,此时电机出现抖动,电流保持正弦。此时堵转检测功能没有使能,电流激励一直维持。

测试2:其他条件和测试1一致,使能堵转检测功能。电机在抖动几秒后触发了堵转故障,成功了检测出了堵转故障。重复10次每次都可以成功。

测试3:其他条件和测试2一致,但没有在启动前就堵转电机,而是等待进入速度闭环,也就是稳定跑到1000RPM时,突然施加外力到圆盘上,电机在励磁几秒后触发了堵转故障,成功的检测出堵转事件。整个测试故障可以在FreeMaster上进行查看,一个触发成功的图片如图7所示。

 

基于S12ZVM的车用无传感器BLDC堵转检测方法探讨

图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正弦波,都给出了解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无感方波和FOC堵转检测策略参考 的相关文章

  • 行业前沿|无人机视觉自主导航发展及视觉智能开发支撑平台介绍

    01视觉自主导航技术基本介绍 近年来 xff0c 无人机在多领域表现出重要应用价值 目前 xff0c 无人机如何在未知封闭 无辅助导航支撑的环境中 xff0c 达成 在哪里 和 环境描述 并自主智能地完成特定任务 xff0c 是一个重要的研
  • 基于图像拼接的无人机自主导航实时SLAM

    大多数无人机利用全球导航卫星系统 xff08 GNSS xff09 技术和惯性传感器 xff08 INS xff09 来估计自己的地理空间定位 无人机通过GNSS接收器进行增强 xff0c 这些接收器受益于从卫星发射的接收时间无线电信号来计
  • jar 压缩解压缩

    JAR包是Java中所特有一种压缩文档 其实大家就可以把它理解为 zip包 当然也是有区别的 JAR包中有一个META INF MANIFEST MF文件 当你找成JAR包时 它会自动生成 JAR包是由JDK安装目录 bin jar exe
  • Inverse elbow manipulator的正逆运动

    Inverse elbow manipulator 该结构同样是6 DOF xff0c 只是后面三个关节不是重合 这样子的结构 xff0c 工作空间更大 正运动好做 xff0c 逆运动还在推导中
  • 使用IMU进行状态估计及进阶

    文章目录 前言基本思想一 姿态估计1 1 通过6轴IMU来进行姿态估计的入门级方法1 1 1 通过加速度计计算姿态1 1 2 引入陀螺仪来得到更好的姿态估计 1 2 四元数解算姿态角解析 二 姿态估算与滤波的关系2 1 状态方程和观测方程2
  • Mujoco-小球建模与控制

    视频教程 xff1a https www bilibili com video BV1e44y1H7Mn 资源请到tiny cc mujoco下载 涉及内容 本次课程制作了一个简单的小球模型 然后对小球进行简单的模拟 xff0c 并演示了一
  • Mujoco-欠驱动的二阶单摆的LQR控制

    MuJoCo Lec7 span class token keyword void span span class token function f span span class token punctuation span span c
  • 四元数姿态计算

    本文基本上就是 1 的注解 一基本概念 1 1 四元数的定义 Quaternion A quaternion is a four dimensional complex number 四元数是一个四维的复数 写成行向量形式的话 q 61 q
  • Mujoco的关节与外力和驱动器

    核心公式 xff1a M qacc 43 qfrc bias 61 qfrc applied 43 ctrl M xff1a 惯性矩阵 qacc 加速度 qfrc bias 科里奥利矩阵和重力矩阵之和 xff1a qfrc bias 61
  • F28069的cpu定时器

    工程搭建参考 xff1a https blog csdn net feisy article details 126380289 F28069有三个32位的CPU定时器 xff1a 0 1 2 0 xff0c 1可用 xff0c 如果程序未
  • TI DSP的中断

    F28069的中断数是96个 xff0c 分为12组 The PIE block can support 96 individual interrupts that are grouped into blocks of eight Each
  • DSP的PWM

    PRD 周期寄存器 xff0c 决定了PWM的周期 频率 CMP 比较寄存器 xff0c 决定了PWM的占空比 CRT 计数寄存器 PWM原理图 为什么需要PWM
  • 出色的html滑动效果库 swiper -例子4 超长单栏横向滑动

    可以用于div滑动 xff0c 图片滑动等切换 例子代码以及所需资源 xff1a http download csdn net detail feisy 6638105 官网例子 xff1a 使用iframe来在同一个页面里面加入了很多各种
  • 【华人学者风采】张祥雨 旷视研究院

    华人学者风采 张祥雨 xff0c 旷视研究院基础模型负责人 研究领域主要为计算机视觉 曾与旷视首席科学家孙剑博士共同发明深度残差网络 ResNet 2020年发表论文 xff1a 22 发表论文 xff1a 58 论文引用数 xff1a 6
  • 出色的html滑动效果库 swiper -例子5 横向自由滑动 可以滑动部分

    可以用于div滑动 xff0c 图片滑动等切换 例子代码以及所需资源 xff1a http download csdn net detail feisy 6638105 官网例子 xff1a 使用iframe来在同一个页面里面加入了很多各种
  • 不要将两个指针变量指向同一块动态内存

    不要将两个指针变量指向同一块动态内存 这个容易引起很严重的问题 如果将两个指针变量指向同一块动态内存 xff0c 而其中一个生命期结束释放了该动态内存 xff0c 这个时候就会出现问题 xff0c 另一个指针所指向的地址虽然被释放了但该指针
  • CMAKE的一些编译选项

    set CMAKE BUILD TYPE 34 Release 34 if CMAKE BUILD TYPE STREQUAL 34 Debug 34 set CMAKE CXX FLAGS 34 CMAKE CXX FLAGS std 6
  • 查看当前系统的glibc版本

    from http my oschina net acmfly blog 77211 有时我们经常需要查看当前系统的glibc版本 xff0c 可以这样查看 xff1a lib libc so 6 有时 xff1a lib x86 64 l
  • 禁忌搜索算法简介

    忌搜索 xff08 Tabu Search或Taboo Search xff0c 简称TS xff09 的思想最早由Glover 1986 提出 xff0c 它是对局部领域搜索的一种扩展 xff0c 是一种全局逐步寻优算法 xff0c 是对
  • 自定义文件格式注册和图标设置

    我们很多时候可能会有这样的一种需求 xff0c 即要生成自己的文件格式 xff0c 然后将这种文件格式注册到操作系统中 xff0c 双击就会使用特定的程序来打开 xff0c 并且我们还想为这种文件格式设置一个图标和缩略 本文章解决的是注册文

随机推荐

  • apache源码分析v2.0

    一 概要 1 平台功能层 xff0c 可移植运行库层 xff0c 核心功能层 xff0c 可选功能层 xff0c 第三方支持库 2 核心功能层 xff1a mod core 处理配置文件中的大部分配置指令 mod so 动态加载其余模块 m
  • Intel英特尔历代经典 CPU 产品回顾

    悉数历史 英特尔历代经典 CPU 产品回顾 从英特尔于 1971 年推出首款 4004 微处理器到现在 xff0c 英特尔处理器已经走过 了 40 个年头 在告别 13 年传奇品牌奔腾之后 xff0c 我们又迎来新一代酷睿 i 双核处 理器
  • vTaskStartScheduler()分析笔记

    FreeRTOS是通过vTaskStartScheduler 函数来启动运行的 xff0c 通常被封装在osKernelStart 中 xff0c 它的工作内容如下 xff1a xTaskCreate 创建空闲任务 xff0c 其优先级为最
  • 在MES中遇到生产异常是怎么处理的

    MES系统在生产过程中 xff0c 难免会遇到各种异常情况 xff0c 如机器故障 材料不足 工人缺席等 xff0c 这些异常情况会影响生产进度和产品质量 那么 xff0c 在MES中遇到生产异常通常是怎么处理的呢 xff1f 1 实时监控
  • ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM

    摘要 ORB SLAM3是第一个能够让单目 立体相机和RGB D相机与针孔和鱼眼镜头模型解耦进行视觉 视觉 43 惯性和多地图SLAM的系统 第一个主要的创新是一个基于特征的紧密集成视觉 43 惯性SLAM系统 xff0c 它完全依赖于最大
  • SVN右键不显示

    安装重启试了很多中方法 xff0c SVN右键始终不显示 方法1 xff08 测试没有出现 xff09 xff08 一 xff09 开始 运行 输入 regedit 进入注册表 xff1b xff08 二 xff09 进入目录 xff1a
  • GPS定位频率最高是多少HZ?

    转载 xff1a https www zhihu com question 41257990 answer 90574977 现在普遍常见的芯片10Hz xff0c ublox好像可以配置到100Hz xff0c 具体是10还是100记不清
  • 总结下-ST2.0库的霍尔角度估计

    1 首先明确一个关系等式 xff0c 看软件就很容易理解 F1代表FOC执行频率 xff08 PWM周期频率 xff09 xff0c 单位是HZ xff1b A代表一个PWM周期内霍尔角度变化量 xff1b AC代表一个电角度周期的角度变化
  • matlab timeserise

    1 xff09 产生timeserise数据 方法一 xff1a 通过timeseries xff0c 例如ts 61 timeseries rand 5 1 rand是产生5 1的矩阵随机数 方法二 xff1a simulink中产生的数
  • 自适应滤波器

    1 LMS Filter模块仿真时 xff0c 输出会发散 xff0c 主要是mu值选取不合适 xff0c 选取比较小的值就可以了 2 可以把网上的m文件通过 matlab coder工具直接转为C文件 xff08 不能直接使用 xff0c
  • 步进电机生成S曲线上位机

    参考的 步进电机S SigMoid 曲线加减速 查表法 Renjiankun的博客 CSDN博客 步进电机s曲线 自己用C 花了大半天搞了一个 xff0c 直接copy生成的数组使用 xff1b 源码可下载步进电机生成S曲线上位机 嵌入式文
  • 电解电容的ESR,想说三句话

    电容的ESR是指电容的等效串联电阻 xff08 或阻抗 xff09 理想的电容 xff0c 是没有电阻的 但是实际上 xff0c 任何电容都有电阻 xff0c 这个电阻值和电容的材料 结构有关系 1 那些 贴片电容 选用贴片电容的时候 xf
  • Matlab2012b&Simulink licence失效解决办法(重复激活解决方案)

    光棍节结束 xff0c math公司也对用户端进行调整 xff0c 很多朋友的matlab都被要求重新添加许可文件 然而 xff0c 基本都是激活完成 xff0c 打开 xff0c 继续激活 xff0c 然后激活完成重复 这是因为激活的文件
  • 航模飞机飞行力效和飞行时间的算法

    力效 xff08 g w xff09 总起飞重量 xff08 g 除起飞功率 xff08 w xff09 例 xff1a 有一架飞机 xff0c 总起飞重量是 8KG xff0c 也就是 8000G xff0c 悬停电流是 40A xff0
  • 5脚继电器的接法

    5脚继电器原理图和接法 一般情况 xff0c 三只脚的那一边中间脚是输出触点的公共端子 xff0c 另外两个引脚是线圈 xff0c 即接驱动端 另外2个脚那边分别是常开和常闭触点 如下图 xff1a A B 脚接驱动电路端 要控制的电路接1
  • Python -- argparse :命令行参数解析模块

    Python argparse xff1a 命令行参数解析模块 官网参考文档 文章目录 Python argparse xff1a 命令行参数解析模块1 总述2 96 add argument 96 2 1 name or flags2 2
  • PWM波控制舵机总结

    文章转载自 https www cnblogs com zhoubatuo p 6138033 html 一 关于舵机 xff1a 舵机 xff08 英文叫Servo xff09 xff1a 它由直流电机 减速齿轮组 传感器和控制电路组成的
  • PNP三极管和NPN三极管的开关电路

    一 三极管开关电路设计的可行性及必要性 可行性 xff1a 用过三极管的人都清楚 xff0c 三极管有一个特性 xff0c 就是有饱和状态与截止状态 xff0c 正是因为有了这两种状态 xff0c 使其应用于开关电路成为可能 必要性 xff
  • Clark变换与Park(派克)变换

    转载https blog csdn net chenjianbo88 article details 53027298 clark变换 xff1a 将abc 变换到 静止 的 坐标系下 Park变换 xff1a 将abc 变换到 旋转 的
  • 无感方波和FOC堵转检测策略参考

    http mcu eetrend com content 2017 100007230 html 基于S12ZVM的车用无传感器BLDC堵转检测方法探讨 judy 发布于 xff1a 周一 07 31 2017 11 05 xff0c 关键