• 传感器_三相-双极性-开关型-霍尔传感器 速度+电角度解算理解


    1 前言

    最近项目上涉及到使用三相-双极性-开关型-霍尔传感器解算 电机转速 、电角度的问题。结合自己的理解+请教前辈,终有所得,下面做一个学习的记录。 主要以思路为主,不涉及代码。

    2 正文

    2.1 什么是三相?

    所谓三相-双极性-开关型-霍尔传感器中的三相,就是三个的意思,理想情况,它们之间的安装位置间隔是120°。前辈说根据行业标准,而且每个霍尔传感器应该一一对应有 A B C或者 U V W的编号。

    2.2 什么是双极性-开关型

    所谓三相-双极性-开关型-霍尔传感器中的双极性-开关型, 是指

            传感器的输出只会存在高低电平,磁铁的S极与N极均可触发传感器状态的变化,并且双极性传感器有锁存的特点,即触发一次之后会持续保持当前的状态,直到下一次用磁铁另一极触发才会状态反转。 关于单极性、双极性、全极性的区别这篇文章里面讲的比较好:

    霍尔传感器的工作原理_小麦大叔的博客-CSDN博客_霍尔传感器工作原理

    我引用一下

    单极性霍尔

    单极性霍尔的开关特性通常是磁场的磁极和传感器的正反面要一一对应,否则可能会没有输出,具体如下表所示;

    条件

    输出

    磁场S极靠近正面

    Low

    磁场N极靠近正面

    None

    磁场S极靠近反面

    None

    磁场N极靠近反面

    High

    双极性霍尔

    相较于单极性霍尔,双极性霍尔传感器可以锁存输出电平的状态,直到下一个输入到来,才会改变输出状态,广泛的应用与直流无刷电机,计数,定位等系统中;

    条件

    输出

    磁场S极靠近正面

    Low --> High

    磁场N极靠近正面

    High --> Low

    全极性霍尔

    全极性霍尔开关会在磁场S极靠近正面时输出低电平,N极靠近正面,输出高电平;

    条件

    输出

    磁场S极靠近正面

    Low

    磁场N极靠近正面

    High

    对于本文的理解记住一个东西就可以了:每当S极贴近一次,传感器输出就会产生上升沿↑一次。

    2.3 如何解算电机的速度

    在解算电机的速度前,谈一个我对极对数的理解(也不一定对,欢迎讨论), 我们的电机是7极对的。我的理解如下图所示

    那么,也就是说,电机每旋转 360° / 7的机械角度,霍尔传感器的输出状态就会发生两次翻转。

    假设我们用MCU去捕获某个霍尔传感器输出的两次上升沿(磁场S极靠近霍尔传感器的正面)。假设以200M的时钟进行计数,第一次上升沿的计数为Count1,第二次上升沿的计数为Count2,每两次上升沿之间电机转过的角度就是α = 360°/7,而时间是,t = Count1-Count2/ 200M (单位 s)

    那么转速就是 v = α / t, 单位是 °/s

    如果要把转速换算成单位r() / s 则用v’ = α / t / 360这个公式计算。

    我们有三个霍尔传感器,我们用任意一个霍尔传感器都能够计算速度。 也可以都用起来。

    2.4 如何解算电机的电角度

    写这一小节的时候,很纠结,因为理解还不够通透,懂的兄弟,请不吝赐教

    csdn有两篇博客讲过这个内容。

    BLDC 霍尔位置对应六步法驱动_longfei2215的博客-CSDN博客_bldc霍尔位置

    【FOC】HALL同步电角度测试_LittleAshes的博客-CSDN博客_hall传感器获取电角度

    下面讲一些我的理解吧。

    纠结点是三个霍尔传感器H1 H2 H3 与 电机三相电 A B C之间的关系是什么?

    三个霍尔传感器会存在6种状态(H1,H2,H3) = (0 0 1), (0 1 0), (1 0 0), (0 1 1), (1 1 0), (1 0 1)。它们之间可以表示 0°、60°、120°、180°、240°、300°。  问题是它们之间的对应关系是什么呢? 3个霍尔传感器的6个状态中,到底是哪一种状态表示0°,哪一种状态表示60°?

    我们先不管霍尔传感器,先谈一谈对于零电角度的定义。

    首先,我们的电机是有三个相的,假设分别是a,b,c。

    1、首先我们定义,逆时针旋转,为正向, 也就是说转子正向转一圈,是a -> b -> c -> a。

    2、然后,我们定义a相,为A轴,即电角度的起点(0电角度)。 根据延迟120°和正方向的定义,B轴、C轴也确定了。

    3、最后,我们定义,中心点 到 a b c三相的为空间电压矢量的方向。 而a b c三相的空间电压矢量

           {\overrightarrow U _a}{\overrightarrow U _b},{\overrightarrow U _c} 最后会合成一个电压矢量\overrightarrow U,这个\overrightarrow U与A轴重合的时候,我们定义为电角度的0角度。在电机旋转的时候,合成电压矢量\overrightarrow U的方向也是会旋转的。\overrightarrow U他代表的是也是定子产生的磁场方向。

    转子永磁体会努力旋转到内部磁力线和外部磁场方向一致,所以这个矢量​其实就可以表征我们希望转子旋转到的方向,也即所需要生成的磁场方向了。关于FOC控制,有个知乎的博主了一篇文章非常好,我来了回回看了很多遍,受益匪浅,链接:【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 知乎 (zhihu.com)

    我们确定了 A B C三相、0电角度的位置。 那么我们就可以把电机的电角度与霍尔传感器的3个状态对应起来的了。只是需要我们拿到电机之后去做一个标定。毕竟前辈说的“行业标准”我是不了解的。

    比如,我通A相,关B相和C相。空间电压矢量指向0°,那么电机就会旋转到0电角度。 这时候,我们可以去读取霍尔的状态了。再如我 通A、B相,关C相,空间电压矢量指向60°,那么电机就会旋转到60电角度,这时候,我们可以去读霍尔传感器的状态了。最后,直到6个角度都确定好,就得到了霍尔传感器6种状态与表示的电角度的映射。

    虽然我们根据三相霍尔传感器得到了电角度,但只有6个,在FOC控制的过程中,需要基于这6个电角度,以及速度、或者期望的加速度什么的,去估计每次控制的时候的精细的电角度。这样控制起来才丝滑。

    最后,回答我前面的疑问(但好像又没有回答)

    霍尔的安装位置只有与电机定子上A、B、C三相线圈的位置有相对位置关系。 这个对应位置,会确定霍尔传感器的6个状态与电角度的映射关系。而与旋转的转子应该是没有关系的。

    感谢您的阅读,欢迎留言讨论、收藏、点赞、分享。

  • 相关阅读:
    Numpy使用
    mysql主从同步
    (224)Verilog HDL:设计摩尔状态机
    小程序 | 实现本地生活的首页基础布局
    LeetCode每日两题01:移动零 (均1200道)方法:双指针
    python标识符
    go语言第四章
    CSS中如何实现文字跑马灯效果?
    mac输密码麻烦?一位数密码来了!
    数据结构--排序(1)
  • 原文地址:https://blog.csdn.net/heqiunong/article/details/128143267