有感FOC算法学习与实现总结

文章目录

  • 基于STM32的有感FOC算法学习与实现总结
    • 1 前言
    • 2 FOC算法架构
    • 3 坐标变换
      • 3.1 Clark变换
      • 3.2 Park变换
      • 3.3 Park反变换
    • 4 SVPWM
    • 5 反馈部分
      • 5.1 相电流
      • 5.2 电角度和转速
    • 6 闭环控制
      • 6.1 电流环
      • 6.2 速度环
      • 6.3 位置环
    • 写在最后

基于STM32的有感FOC算法学习与实现总结

1 前言

Field Oriented Control 磁场定向控制 (FOC),FOC是有效换向的公认方法。FOC的核心是估计转子电场的方向。一旦估计了转子的电角度,就将电动机的三相换相,以使定子磁场垂直于转子磁场。本文参考了TImicrochip的相关文档,基于STM32F103系列单片机实现了带编码器的FOC算法,实现了对通用伺服电机(表贴式PMSM)的控制。

2 FOC算法架构

FOC算法的整体架构如下图所示,采用了双闭环的控制系统,包括速度环和电流环,也叫转矩环,而传统的伺服驱动器还需要位置环,图中并未给出,这个后面另外描述,反馈部分采用双电阻采样,和增量编码器。
有感FOC算法学习与实现总结_第1张图片
所以,从上图可以了解到,实现FOC算法总共需要以下几个部分;

  • 坐标变换,由于PMSM是非线性的复杂系统,为了实现控制上的解耦,需要进行坐标变换;
    • Clark变换;
    • Park变换;
  • SVPWM模块;
  • 反馈量采集部分
    • 相电流采集
    • 编码器信号采集
  • 闭环控制部分可以分为三个环节;当然,根据需求,双闭环也比较常见;
    • 位置环
    • 速度环
    • 电流环

下面会对每个环节的关键部分做一下介绍,具体的实现与细节由于篇幅有限会另外开篇幅做介绍。

3 坐标变换

O A B C OABC OABC三相坐标到静止坐标系 α β \alpha\beta αβ坐标系可以分为恒幅值变换和恒功率变换,两者的主要区别就是变换系数不同,下文统一使用恒幅值变换。

3.1 Clark变换

三相电流ABC分别为 i A i_{A} iA i B i_{B} iB i C i_{C} iC,根据基尔霍夫电流定律满足以下公式:
i A + i B + i C = 0 i_{A}+i_{B}+i_{C} = 0 iA+iB+iC=0
静止坐标系 α β \alpha\beta αβ α \alpha α轴的电流分量为 i α i_{\alpha} iα i β i_{\beta} iβ,则Clark变换满足以下公式:

i α = i A i β = 1 3 ∗ i A + 2 3 ∗ i B i_{\alpha} = i_{A} \\ i_{\beta} = \cfrac{1}{\sqrt{3}}*i_{A}+\cfrac{2}{\sqrt{3}}*i_{B} iα=iAiβ=3 1iA+3 2iB

3.2 Park变换

Park变换的本质是静止坐标系 α β \alpha\beta αβ乘以一个旋转矩阵,从而得到 d q dq dq坐标系,其中;

  • d d d 轴又叫直轴,方向与转子磁链方向重合;
  • q q q 轴又叫交轴,方向与转子磁链方向垂直;

所以,帕克变换又叫交直变换,由静止坐标系 α β \alpha\beta αβ上的交流量最终变换到 d q dq dq坐标系上的直流量;
Park变换满足以下公式;
i d = i α ∗ c o s θ + i β ∗ c o s θ i q = − i α ∗ c o s θ + i β ∗ c o s θ i_{d}=i_{\alpha}*cos\theta+i_{\beta}*cos\theta \\ i_{q}=-i_{\alpha}*cos\theta+i_{\beta}*cos\theta id=iαcosθ+iβcosθiq=iαcosθ+iβcosθ

3.3 Park反变换

Park又叫直交变换,满足以下公式:
i α = i d ∗ c o s θ − i q ∗ s i n θ i β = i d ∗ c o s θ + i q ∗ c o s θ i_{\alpha}=i_{d}*cos\theta-i_{q}*sin\theta \\ i_{\beta}=i_{d}*cos\theta+i_{q}*cos\theta iα=idcosθiqsinθiβ=idcosθ+iqcosθ

4 SVPWM

实际的马鞍波如下图所示;
有感FOC算法学习与实现总结_第2张图片

5 反馈部分

反馈部分需要采集相电流,电角度和速度,如下图所示;
色曲线表示 i A i_{A} iA
色曲线表示 i B i_{B} iB
色曲线表示电角度 θ e \theta_{e} θe
有感FOC算法学习与实现总结_第3张图片
图中黄色箭头所指的点,可以看到满足以下条件:
θ e = 0 i A = 0 \theta_{e} = 0 \\ i_{A} = 0 θe=0iA=0

5.1 相电流

相电流采样通常有三种方案;

  • 单电阻采样;
  • 双电阻采样;
  • 三电阻采样;

5.2 电角度和转速

电角度的测量需要通过对编码器进行正交解码,STM32TIM定时器自带编码器接口,可以很轻松实现对正交编码器的正交编码;

6 闭环控制

6.1 电流环

最终给出电流闭环的结构,如下图所示;有感FOC算法学习与实现总结_第4张图片

红色曲线表示 i α i_{\alpha} iα
黄色曲线表示 i β i_{\beta} iβ
粉色曲线表示 i q i_{q} iq
蓝色曲线表示 i d i_{d} id

由于使用的表贴式PMSM,满足以下条件:
L d = L q = L s L_{d} = L_{q} = L_{s} Ld=Lq=Ls
所以, d d d轴和 q q q轴可以共用同一套PI参数,可以通过经验试凑法进行参数整定,或者可以通过测量电机参数,计算PI参数的大致范围,然后再进行细调。

6.2 速度环

有感FOC算法学习与实现总结_第5张图片
电流环调节稳定之后,速度环需要调整速度PI控制器,这里可以参阅如何调试PI参数。

6.3 位置环

红色曲线表示给定位置;
黄色曲线表示实际位置;
粉色曲线表示给定转速;
蓝色曲线表示实际转速;
有感FOC算法学习与实现总结_第6张图片

写在最后

经过一段时间的调试,终于完成了从零到一的FOC算法框架,由于能力有限,有的地方理解不到位,需要细加斟酌,如有错误的地方,希望斧正,另外由于FOC内容较多,篇幅较长,时间有限,后续会进一步进行补充,细节的部分会单独开篇进行讨论。

你可能感兴趣的:(FOC)