9、电机控制——hall自学习

1、Hall 自学习的引入

  • 问题总结

    • 3 个 hall 间隔并非理想的 120°,有可能有的相差115°,有的相差125°等;但我们并不知道它们之间的精确间隔

    • 速度、电角度计算模型按照:3 个 hall 之间依次间隔 120°,每个 hall 状态依次相差 60° 进行处理

    • 因此导致电角度计算不精确

  • 核心原因

    • 尝试过一些方法,最终都离不开测量 / 基准电角度与计算电角度之间的校正,只是校正方法不同,如:每个 hall 状态都较正,一个电角度周期校正 1 次,以及其它一些方法,但在测量电角度有误差的情况下,怎么校正总也不那么理想

    • 问题核心:不知道 3 个 hall 的精确间隔 或 3 个 hall 的精确位置

  • 解决方案

    • 采用合适的方法,比如 IF 控制,不需要任何传感器,通过自主生成电角度来间接得到近似真实的电角度

    • 让电机平滑的转起来,自然会触发每个 hall 状态,记录下此时的电角度,就是每个 hall 状态相对精确的位置

    • 有了每个 hall 状态相对精确的位置后,再通过插值、校正就可以输出平滑、准确的电角度

    • 以上我们称之为 "hall 自学习"!--- 学习 "三个 hall 的准确位置"

2、方案要点

  • 方案概述

    • 采用合适的方法,比如IF 控制 ,不需要任何传感器,通过自主生成电角度来间接得到近似真实的电角度

    • 让电机平滑转动,自然会触发每个 hall 状态,记录下此时的电角度,就是每个 hall 状态相对精确的位置

    • 有了每个 hall 状态相对精确的位置后,再通过插值、校正就可以输出平滑、准确的电角度

  • 如何实现?

    • 核心:IF 控制自主生成电角度来间接得到近似真实的电角度

    • 实现要点:先给出结论

      • 空载

      • 相对较大的电流

      • 合适的参考转速、电流,让电机平滑转动

3、IF控制原理

基于虚拟的坐标去生成虚拟的电角度,无法保证转矩角位二分之π,所以输出转矩并不是最大的;

4、hall自学习控制方式与目标

在无位置传感器控制(如 hall 自学习的 IF 控制)中,需要通过虚拟电角度θe_ref​ 来近似转子的真实电角度θe​。当qv轴和 d 轴接近时,转矩角β很小,此时满足θe_ref​+2π​≈θe​,从而可以通过虚拟电角度推导得到转子真实位置。

虚拟坐标系(dv−qv轴)由θe_ref​定义,用于生成控制所需的虚拟电流分量(idv​=0,iqv​=A)。

真实转子的 d 轴由永磁体磁场方向决定,是电机电磁转矩生成的基准轴。

当qv轴与 d 轴接近时,虚拟磁场和真实转子磁场的相对位置关系被 "校准",使得虚拟电角度和真实电角度的偏差可忽略,进而实现从虚拟角度到真实角度的近似推导,为无位置传感器的电流控制、转矩控制提供准确的位置依据。

5、IF自主生成的电角度 与真实电角度的关系

转矩角就是qv与d轴的夹角;

电流为0.1A是转矩角过大,显然无法带动电机运转;

增大电流,缩小转矩角,再次测试,符合预期

保持电流不变,增大负载,再次测试,此时转矩角增大,不符合预期

继续增大电流,转矩角变小,但是转速波动较大

综上所示,并非转矩角越小越好,并非电流越大越好,应根据测试情况选取合适的电流值,及推算出的转矩角;

6、hall自学习的实现

  • 将每个 hall 状态、对应电角度存入缓冲区;只要有一个 hall 状态捕获次数达到 16 次,自学习完成

  • 对每个 hall 状态多次捕获的电角度求平均值,得到每个 hall 状态最终的电角度,写入 hall 状态表 /hall 状态角度表,存入 FLASH

hall自学习与非霍尔自学习对比

  • 非自学习:在 hall 相位偏移基础上,按 3 个 hall 依次间隔 120° 为每个 hall 状态赋予测量电角度

  • 自学习:直接为每个 hall 状态赋予自学习得到的电角度,这是绝对电角度,无需单独考虑 hall 相位偏移

hall自学习在IF控制模式下进行自学习,把hall电角度存入数组里,到速度电流双闭环控制时,调用初始化hall函数,对hall电角度进行查表操作;

因为是边缘捕获,对每个电角度都加上30度,使其出于扇区的中间位置;

7.hall自学习的优点

更加精准、平滑的电角度输出。学习得到每个 hall 状态绝对电角度,已经包含了 hall 相位偏移:无需单独测量 hall 相位偏移角

hall 信号线 Ha,Hb,Hc 顺序随便接,或者叫 hall 信号线自适应。

hall 自学习应用时。输入上次、当前捕获的 hall 状态:同 hall 状态表 /hall 状态角度表中的次序对比,可以得到当前的转动方向。输入当前捕获的 hall 状态,从之前记录的 hall 状态表 /hall 状态角度表中可得到当前状态对应的电角度。hall 自学习执行时:记录了每个 hall 状态及其对应的电角度,记录的 hall 状态次序和电机正转时 hall 状态的捕获次序相同,具体是什么,我们不关心,也不需要关心

仿真对比

相关推荐
外收内放11 小时前
面向对象高级(实战案例)
开发语言·python·学习
薛定e的猫咪12 小时前
(ICLR 2020)MAML 靠的不是快速学习,而是特征复用
人工智能·深度学习·学习·算法·机器学习
薛定e的猫咪13 小时前
(ICLR 2026)DF-META:面向 FJSP 的无导数元学习实例自适应调度
人工智能·深度学习·学习·算法·机器学习
果壳science14 小时前
张祥前实验如何获取正电荷
笔记·科技·嵌入式硬件·硬件工程·制造
大叔学Linux16 小时前
FreeRTOS任务切换笔记
arm开发·笔记
别动我齐刘海16 小时前
机器人 C++ / 系统联调补强2——异常处理、Protobuf
linux·c++·人工智能·学习·算法·机器学习·机器人
一直C16 小时前
嵌入式 Linux 驱动开发学习笔记:内核定时器、platform 总线与 I²C 驱动
linux·驱动开发·嵌入式硬件·学习·imx6ull
承渊政道17 小时前
Linux网络学习【传输层协议UDP】
linux·网络·网络协议·学习·ubuntu·udp
andrsted17 小时前
练题簿免费刷题小程序:和学习搭子共用一份题库,一起刷题复习
学习·面试·微信小程序·小程序·学习方法·刷题
fqbqrr17 小时前
2610学习,ahk学习技巧
学习