SimpleFOC之ESP32(七)—— 霍尔电机

目录

  • 一、霍尔电机介绍
  • 二、ESP32drive控制霍尔电机
    • 2.1、原理图
    • 2.2、读霍尔角度
      • 2.2.1、硬件准备
      • 2.2.2、硬件连接
      • 2.2.3、代码演示
    • 2.3、控制霍尔电机
      • 2.3.1、硬件准备
      • 2.3.2、硬件连接
      • 2.3.3、代码演示
      • 2.3.4、与simpleFOCStudio的互动
  • 三、ESP32drive-D控制霍尔电机
    • 3.1、原理图
    • 3.2、读霍尔角度
      • 3.2.1、硬件准备
      • 3.2.2、代码演示
    • 3.3、控制霍尔电机
      • 3.3.1、打开示例
      • 3.3.2、修改代码
      • 3.3.3、问题说明
    • 3.4、控制双霍尔电机
  • 问题总结分析


SimpleFOC教程目录:请点击

一、霍尔电机介绍

  • 霍尔电机就是带霍尔传感器的直流无刷电机,下图
    SimpleFOC之ESP32(七)—— 霍尔电机_第1张图片
  • 霍尔有两种安装方式,120度和60度,120度安装方式的稍微常见一些,下图
    SimpleFOC之ESP32(七)—— 霍尔电机_第2张图片
  • 主要应用于车轮,特别是电动自行车,几乎都是霍尔电机,下图
    SimpleFOC之ESP32(七)—— 霍尔电机_第3张图片
  • 如果是做机器人底盘,霍尔电机是个很好的选择;
  • 如果是做机械臂或者高精度应用的,霍尔电机精度低不适合此类场景。

二、ESP32drive控制霍尔电机

2.1、原理图

SimpleFOC之ESP32(七)—— 霍尔电机_第4张图片

2.2、读霍尔角度

2.2.1、硬件准备

序号 名称 数量
1 USB转串口 1
2 ESP32drive 1
3 霍尔电机 1
4 12V电源 1
5 杜邦线 若干


ESP32drive 购买链接:某宝购买

2.2.2、硬件连接

SimpleFOC之ESP32(七)—— 霍尔电机_第5张图片

2.2.3、代码演示

  • 打开示例
    SimpleFOC之ESP32(七)—— 霍尔电机_第6张图片
  • 修改代码
    SimpleFOC之ESP32(七)—— 霍尔电机_第7张图片
  • 用手转动电机轴,观察角度输出。如果极对数设置正确,刚好转一圈角度为6.28,
    SimpleFOC之ESP32(七)—— 霍尔电机_第8张图片

2.3、控制霍尔电机

2.3.1、硬件准备

序号 名称 数量
1 USB转串口 1
2 ESP32drive 1
3 霍尔电机 1
4 12V电源 1
5 杜邦线 若干

2.3.2、硬件连接

  • 与上面的保持一致
    SimpleFOC之ESP32(七)—— 霍尔电机_第9张图片
    ESP32drive 购买链接:某宝购买

2.3.3、代码演示

  • 打开示例
    SimpleFOC之ESP32(七)—— 霍尔电机_第10张图片
  • 修改代码
    SimpleFOC之ESP32(七)—— 霍尔电机_第11张图片
    SimpleFOC之ESP32(七)—— 霍尔电机_第12张图片
    SimpleFOC之ESP32(七)—— 霍尔电机_第13张图片
  • 发送指令,控制电机转动
    SimpleFOC之ESP32(七)—— 霍尔电机_第14张图片

2.3.4、与simpleFOCStudio的互动

  • 如果对simpleFOCStudio不熟悉,可以先阅读此文:SimpleFOCStudio安装使用说明及PID调试
  • 上面修改代码已经给出了与simpleFOCStudio通信需要添加的代码,
  • 下面的演示采用24V电压,增大电压可以达到更高的转速,
    SimpleFOC之ESP32(七)—— 霍尔电机_第15张图片

三、ESP32drive-D控制霍尔电机

3.1、原理图

SimpleFOC之ESP32(七)—— 霍尔电机_第16张图片

  • ESP32drive-D采用非对称电路设计,M1三个使能引脚,M2一个使能引脚,
    SimpleFOC之ESP32(七)—— 霍尔电机_第17张图片
  • 霍尔信号设计的有上拉电阻,此时可以短路跳线(背面),
    SimpleFOC之ESP32(七)—— 霍尔电机_第18张图片

3.2、读霍尔角度

3.2.1、硬件准备

序号 名称 数量
1 USB转串口 1
2 ESP32drive-D 1
3 霍尔电机 1
4 12V电源 1
5 杜邦线 若干


ESP32drive 购买链接:某宝购买

3.2.2、代码演示

SimpleFOC之ESP32(七)—— 霍尔电机_第19张图片
SimpleFOC之ESP32(七)—— 霍尔电机_第20张图片

  • 节操作请参考上面的描述。

3.3、控制霍尔电机

3.3.1、打开示例

SimpleFOC之ESP32(七)—— 霍尔电机_第21张图片

3.3.2、修改代码

SimpleFOC之ESP32(七)—— 霍尔电机_第22张图片
SimpleFOC之ESP32(七)—— 霍尔电机_第23张图片

3.3.3、问题说明

  • ESP32drive-D的M1采用了三个使能引脚控制,就是为了实现方波控制,但是实际测试发现,Trapezoid_120和Trapezoid_150两种调制模式,检测的极对数总是不对。强行发送指令电机也可以转动,最高转速与SinePWM和SpaceVectorPWM调制模式差不多。
  • 比如测试用的霍尔电机为2对极,如果用SinePWM和SpaceVectorPWM调制模式,检测是正常的,控制也是正常的;如果用Trapezoid_120和Trapezoid_150检测到的极对数是2.4。本人已经反复测试对比,更换了STM32F103C8T6和PowerShieldV0.2,检测到的极对数都是2.4,也可能是我用的不对,或者这部分代码有问题。

3.4、控制双霍尔电机

  • 控制双霍尔电机在《SimpleFOC之ESP32(六)—— 双电机控制》的基础上修改,
  • 控制效果不太好,双电机检测都正常,但是转动时有时会突然停止,或者两个电机都正常转动的时候,操作一个电机反转,另一个电机会停止。估计跟霍尔检测的中断配置有关,代码中霍尔信号全部是中断模式,这个问题暂时不深入研究,请大家避坑!
    SimpleFOC之ESP32(七)—— 霍尔电机_第24张图片

问题总结分析

  • 问题:
    • 1、Trapezoid_120和Trapezoid_150两种调制模式检测极对数不准确,不好用。暂时没有分析出原因。
    • 2、单个霍尔电机控制,12V时偶尔会出现突然不转的现象,用示波器查看三相PWM波形已经变为全部是高电平;24V时出现突然不转的频率明显高于12V。
    • 3、双霍尔电机控制极其不稳定。(双霍尔电机使用6个中断)
  • 原因分析:
    • 1、霍尔信号直接进入单片机,中间没有加滤波电路,工业用驱动器的霍尔信号都有阻容滤波设计。
    • 2、霍尔信号使用中断模式,软件上也没有滤波处理。
    • 3、查看SimpleFOC的底层代码,霍尔电机的处理方式是这样的:霍尔信号中断时更新一次角度,Trapezoid_120和Trapezoid_150根据角度产品方波;SPWM或者SVPWM根据角度产生矢量,如果电机是2对极,一圈12个霍尔信号,也就只有12个矢量。所以无论是方波控制,还是弦波控制,电角度每次都是跨60度,表现为电机振动大噪音大,也因此更容易产品干扰,所以同样是中断模式的ABZ编码器电机程序出问题的概率要小很多。
    • 第3个问题是比较严重的,与常见的FOC控制霍尔电机处理方式不一样,后续应该会升级。
    • 硬件问题我会在之后的产品中逐渐改进升级;而软件的问题只能等创作者升级。





(完)


欢迎加入simpleFOC技术交流群:923734429 群已满根据提示添加新群 (入群申请写:CSDN)

请继续阅读相关文章:
SimpleFOC之ESP32(一)—— 搭建开发环境
SimpleFOC之ESP32(二)—— 开环控制
SimpleFOC之ESP32(三)—— 闭环控制
SimpleFOC之ESP32(四)—— 电流闭环控制Inline
SimpleFOC之ESP32(五)—— 电流闭环控制Lowside
SimpleFOC之ESP32(六)—— 双电机控制
SimpleFOC之ESP32(七)—— 霍尔电机
SimpleFOC之ESP32(八)—— ABZ编码器电机
SimpleFOC之ESP32(九)—— WIFI、UDP和TCP
SimpleFOC之ESP32(十)—— ESP-NOW和力矩反馈

你可能感兴趣的:(simpleFOC,simpleFOC,ESP32,霍尔电机)