FOC学习路线

FOC学习路线

1.了解理论基础

个人感觉全网讲得最好的是稚慧君的这篇文章

2.补充一些关于FOC的认知

2.1 输出路线

stm32输出pwm -> 预驱 -> 6个MOS管组成的三相半桥电路

2.1.1 pwm信号

stm32输出的pwm可能是3路或者6路(取决于你的预驱)

  • 6路实际上是在3路的基础上加上对应互补的pwm
  • 如果是6路,一般意味着你要自己控制死区,输出6路pwm一般要高级定时器才能做到

死区:指在两个通道切换时的延迟,用于确保一个通道完全关闭后另一个通道才开始导通,为了避免功率开关器件(如MOSFET或IGBT)同时导通而导致短路

2.1.2 预驱相关
  • 功能是根据逻辑信号(pwm的高低电平)控制MOS管开关,因为一般驱动MOS管所需要的电压是stm32无法提供的
  • 预驱其实还有一些功能,比如:
    • 常见的故障检测保护:过流、过温、过压、欠压等
    • 死区插入、防直通
    • 运放(用于电流采样)
    • 三相半桥电路(即可以省去6个MOS管,在制作小电机驱动板时可以节省大量空间)
2.2 输入参数

一般来说有两个输入:

  • 转子位置,Park算法需要
  • 电流大小及方向,Clarke算法需要
2.2.1 转子位置

其中转子位置可以采样传感器(编码器)获取,也可以基于反电动势估算出来,所以foc也可以根据此被划分为

  • 有感foc:适合低转速,需要精准控制旋转角度。比如:关节电机、云台
  • 无感foc:适合高转速,要求低成本。比如:电动工具、吹风筒等

之所以分别有这样的特性,是因为一般无感的采用的位置估算器要在高转速、有规律的速度下才可准确估算位置。同时无感由于不需要传感器,成本可以进一步压缩。

编码器有很多种类,以下要常见的三种:

编码器类型 精度 分辨率 输出信号 优点 缺点 典型应用
霍尔传感器(Hall Sensors) 低(每转 3~6 个状态) 数字(6步换向) 成本低、耐用、抗干扰强 分辨率低、无法精确定位 通用BLDC、风机、电动工具
增量式编码器(Incremental Encoder) 中~高(CPR: 100~5000) A/B/Z 相差分或单端 成本适中、高分辨率、易用 掉电丢失位置、需回零 CNC、机器人
磁编码器(Magnetic Encoder) 中~高 中(12~18位) 模拟或数字输出 抗震、防尘、非接触 易受强磁场干扰 电动车辆、工业电机、伺服系统

对应我们来说,大多数情况都是需要精准控制旋转角度,因此采用磁编码器合适。

2.2.2 电流采样

电流采样的原理其实就是欧姆定律:I = U / R

串联一个采样电阻到需要测量电流的线路中,测量电阻两端的电压,然后用这个电压除以采样电阻大小就能得到电流大小。

采样电阻: 高精度低阻值的电阻,一般为0.1~100毫欧,1%精度

但实际上因为两端的电压差较小,需要使用运算放大器实现差分放大,并且添加偏置电压后才将通过ADC转换。

不过原理虽然是这样,但还是有问题需要解决。

2.2.2.1.采样电阻所在的位置

根据采样电阻的位置可以分为:高端采样、低端采样和直接采样

  • 高端采样:采样电阻处于母线与上桥臂之间
    • 优点:不干扰负载的地电压
    • 缺点:要承受较高的电压,有较强的共模噪声,一般需要专用的高边电流检测IC或隔离方案,成本高
  • 低端采样:采样电阻处于下桥壁和功率地之间
    • 优点:接近0v的共模电压,较低的共模噪声
    • 缺点:抬高了负载的地电压
  • 直接采样:采样电阻处于半桥和电机相线之间
    • 不知道为什么网上鲜有此类型的讨论,也没看见有使用的

根据易用性和成本考虑,基本上都是选择低端采样。

2.2.2.2.采样电阻的数量

根据采样电阻的数量,可以分为单电阻、双电阻、三电阻方案。

在理论上,使用基尔霍夫电流定律(KCL),我们需要知道无刷电机流过三相线中任意两条的电流大小及方向,就能得到算出第三条,进而实现电流重构,因此我们需要采样得到两条相线的电流及方向。

  • 单电阻:只需要一个采样电阻和运放,采样电阻处于三个半桥整体和功率地之间,采样的电流实际上是母线电流,而不是单独的相电流。
    • 优点:硬件成本低
    • 缺点:对采样时机要求较高,需要在一个PWM周期内采样两次(分时采样)
  • 双电阻:使用两个采样电阻和运放,分别处于三个下桥臂中的任意两个 和功率地之间,采样的是相电流
    • 优点:对采样时机的要求不高,但也有要求
    • 缺点:成本比单电阻的高
  • 三电阻:使用两个采样电阻和运放,分别处于三个下桥臂中的和功率地之间
    • 优点:任何时候都能采样(实际上是根据SVPWM扇区取其中两个采样然后算出一个)
    • 缺点:成本高
2.2.2.3.阻值应该选择

采样电阻不能太大,如果大了,那采样电阻的功耗高,发热严重,而且抬高了地电压;也不能太小,如果太小导致两边的压差过小,噪声占比会提高,而差分放大后,噪声也一样会被放大。

采样电阻要根据驱动板设计的最大电流选择,首先看公式:

ADC测量电压 = (电流 x 采样电阻) x 放大倍数 + 偏置电压

偏置电压一般为ADC测量范围的二分之一,stm32的主控电压为3.3V,若VREF也为3.3V,则ADC测量范围为0~3.3V,则偏置电压为1.65V。

放大倍数一般考虑5~10倍,然后按照最大电流的1.3倍(留有余量)带入公式计算采样电阻。

2.2.2.4.为什么要加上偏置电压

因为电流方向有正有反,而ADC只能测量正电压。

3.算法实现

3.1 进度划分

关于foc算法学习的进度,个人觉得可以分为:

  • 实现开环拖动
    • 目标:让电机转起来,验证硬件、stm32外设配置、基础的算法(Clarke、Park、SVPWM)是否正常
    • 方法:
      • 给定一个旋转的电压矢量(如 Vd=0, Vq=固定值),通过 SVPWM 输出;
      • 不依赖电流反馈,也不依赖精确转子位置(可用假设角度线性增加)
  • 基于开环电流实现速度或位置闭环
    • 目标:实现最基础的可用,检验编码器及编码器驱动是否正常
  • 基于电流采样实现电流(力矩)闭环
    • 目标:FOC核心,验证电流采样电路是否正常、ADC采样时机是否正确
  • 实现力矩-(速度/位置)闭环
    • 完整实现FOC功能

3.2 学习方向

  1. 看灯哥开源的,但由于用的是Arduino,所以只能学学原理,然后可以自己尝试移植到stm32

  2. 如果会使用MATLAB,可以考虑基于仿真实现一遍算法

  3. 参考开源项目

4.硬件实现

从容易到难为:

  • 主控 + 内置三相半桥的预驱(如DRV8313、MP6536) + 不要电流采样
    • 省略了MOS管部分电路,降低了极大难度
  • 主控 + 内置三相半桥的预驱(如DRV8313、MP6536) + 电流采样
    • 能实现电流闭环
  • 主控 + 预驱(如FD6288、EG2133、DRV8301) + 三相半桥(6个MOS+外围电路) + 电流采样
    • 能实现大功率的驱动

根据情况可以选择外接磁编码器,或者是直接加在驱动板背面。

常见编码器:AS5600、MT6501、MT6701、MA732、AS5047、SC60224

参考资料

相关推荐
三易串口屏1 天前
三易串口屏开发教程:如何使用键盘控件输入参数并发送给单片机
单片机·嵌入式硬件·串口屏·三易串口屏·键盘控件
2CM_Embed1 天前
F28379D 下载后 VOFA+ 无数据、Reset 后恢复:一次 TZ 中断误触发排查记录
笔记·单片机·sci·c2000·f28379d·vofa·tz
国科安芯1 天前
空间机电一体化:AS32S601型抗辐射MCU在卫星推进与执行机构控制中的关键技术研究
单片机·嵌入式硬件·物联网·机器人·云计算
国科安芯1 天前
AS32S601型抗辐射MCU在分布式太空算力架构中的技术演进与应用前景
人工智能·分布式·单片机·嵌入式硬件·架构·边缘计算
国科安芯1 天前
在轨能源中枢:AS32S601型抗辐射MCU在卫星电源管理与配电系统中的控制策略研究
嵌入式硬件·架构·能源·risc-v·sps·电源管理·卫星
纯音乐sjc1 天前
ARM Linux 嵌入式中断全流程解析:从 GPIO 到 GIC 架构实战
单片机·嵌入式硬件
雯宝1 天前
|____1.4外部中断/看门狗/定时器/PWM/RTC/待机唤醒/ADC/DAC/IIC/SPI/485/CAN
单片机
sramdram2 天前
基于32位微控制器的FOC汽车水泵方案
单片机·嵌入式硬件·汽车·微控制器·32位微控制器
开发笔记-阿牛2 天前
解析一款有意思的产品||CK6159A语音芯片设计的儿童专注力训练机-舒尔特玩具
stm32·单片机·嵌入式硬件·音频
残影飞雪2 天前
ESP32-C5下载烧录固件失败报错的原因
单片机·嵌入式硬件