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 状态的捕获次序相同,具体是什么,我们不关心,也不需要关心

仿真对比

相关推荐
【上下求索】5 分钟前
学习笔记095——Ubuntu 安装 lrzsz 服务?
运维·笔记·学习·ubuntu
Benmao⁢21 分钟前
C语言期末复习笔记
c语言·开发语言·笔记·leetcode·面试·蓝桥杯
2401_834517071 小时前
AD学习笔记-27 泪滴的添加和移除
笔记·学习
zyq~2 小时前
【课堂笔记】凸优化问题-2
笔记
灰灰勇闯IT2 小时前
RN路由与状态管理:打造多页面应用
开发语言·学习·rn路由状态
9ilk2 小时前
【C++】--- C++11
开发语言·c++·笔记·后端
码农12138号3 小时前
服务端请求伪造-SSRF 学习笔记
笔记·web安全·网络安全·ctf·ssrf·服务端请求伪造
断剑zou天涯3 小时前
【算法笔记】bfprt算法
java·笔记·算法
中屹指纹浏览器3 小时前
指纹浏览器抗检测进阶:绕过深度风控的技术实践
服务器·网络·经验分享·笔记·媒体
思成不止于此4 小时前
【MySQL 零基础入门】DQL 核心语法(四):执行顺序与综合实战 + DCL 预告篇
数据库·笔记·学习·mysql