FOC入门教程

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

| 4 | - | + | 悬空 | 330 |
| 5 | - | 悬空 | + | 30 |
| 6 | 悬空 | - | + | 90 |

可以看出,我们只需要像步进电机那样不断的重复这六部换向就可以让BLDC转动起来,甚至会产生一种错觉,是不是我们换向越快电机转的越快呢?答案是:否,这里我们一定要认识到,是当转子处于特定位置时才去触发换向操作,换向是被动换向,想要提高转速一定是要提高电流,让定子产生的磁场更强,让转子更快的达到目标点然后触发换向,具体如下表所示。

正转:
转子实际角度执行步骤转子目标角度
90-1501150
150-2102210
210-2703270
270-3304330
330-30530
30-90690
反转
转子实际角度执行步骤转子目标角度
150-90690
90-30530
30-3304330
330-2703270
270-2302230
230-1501150
如何获得转子角度?

我们已经知道了要先检测角度再去换向,那么如何检测当前角度呢?,有以下三种方式。
1.通过安装编码器来计算出当前角度。
2.通过安装霍尔元件计算当前角度。
3.通过检测电流来计算当前角度

编码器方式获取电机当前角度

编码器方式分为两种,增量式编码器和绝对式编码器。
增量式编码器:
每次启动之气都需要做一次校准,而且为了防止单片机性能问题导致脉冲丢失,还需要对编码器每圈校准一次。因此经常使用ABZ三轴编码器,AB输出正交信号,Z轴输出中断。
绝对式编码器:
只需要在出厂之前做一次校准,之后如果没有拆机便不需要校准,通讯方式一般是SPI和IIC,需要考虑通讯时间对系统的影响。
为什么要对编码器进行校准?
因为我们无法保证在安装的时候让编码器的0°(机械角度)刚好对应电机绕组的0°(电气角度)

霍尔元件获取电机当前角度
霍尔元件介绍

百度百科
霍尔元件有两种安装方式,互差120°和互差60°两种方式,因此在使用之前要判断电机是那种安装方式。
假设当有N级指向霍尔元件时霍尔元件输出电平1
霍尔电平和转子角度之间的对应关系如下表所示

在这里插入图片描述

转子实际角度(N级指向)霍尔元件a电平霍尔元件b电平霍尔元件c电平
90-150010
150-210011
210-270001
270-330101
320-30100
30-90110

在这里插入图片描述

霍尔电平和转子角度之间的对应关系如下表所示

转子实际角度(N级指向)霍尔元件a电平霍尔元件b电平霍尔元件c电平
90-150010
150-210000
210-270001
270-330101
330-30111
30-90110
检测电流获取电机当前角度

由于电机旋转过程中产生的电流理想波形如下图

在这里插入图片描述

我们便可以根据采集到的电流就判断出电机当前的角度在哪个范围。
具体分析在FOC控制方法中讲解。

程序编写
引出问题

相信看到这里大家都有一些疑问,就是六步换向的方式只能控制电机正反转,然后通过控制相电压调节转速,那么如何控制电机位置呢,而且这种方式有一部分电流是让电机旋转,有一部分是让电机发热,那么如何做到效率最高呢。通过观察电流发现,电机三相电流并不是正弦波,为了解决以上问题便出现了FOC矢量控制。

第三章 FOC矢量控制

FOC控制框架图

在这里插入图片描述

相信很多人在网上都看到过这个控制框图,咋一看还挺复杂,充斥着各种变换和检测,很多资料直接对着这个框图进行讲解,而本教程到这里只是让大家对这个框图有基本印象,接下来我们逐步分析各个模块来源,让大家都能自己画出来这个控制框图。

第四章 FOC开环控制

控制框图简化

看着FOC详细控制框图我们发现无从下手,不知道从哪坐起,我们回想一下直流有刷电机的学习过程,首先是让电机转起来,然后进行速度控制,再进一步进行位置控制,同样我们在FOC学习过程中依然可以这样做,我们首先将位置环和速度环去掉,然后就剩下SVPWM,和电流检测部分,既然只是让电机转起来那么电流检测也不需要了,我们就直接给一个目标速度,开环运行,这时候控制框架就能简化成下图所示。
备注:(这时候可能会有人有疑问,我们不是用六步换向的方式已经让电机转动起来了吗,为什么这里又要学习如何让电机转动?是因为六步换向方式存在一些缺点,而这里使用另一种控制方式(FOC)让电机转动更加平滑,效率更高。)

在这里插入图片描述

接下来我们对这部分做详细讲解

IQ与ID介绍

在这里插入图片描述

仔细观察我们可以发现,当三相绕组产生的磁场方向始终与转子磁铁相切的时候最为理想,这样相同电流下产生的旋转力量最大(图中IQ),当我们三相绕组产生的磁场方向与转子磁场方向反向平行时,这时候电机会被吸在原地不动(图中ID),电流都用来产生热量。因此我们以转子磁铁为参考,建立DQ坐标系,DQ坐标系随转子转动。(备注:为了便于理解我对磁铁进行了放大)

如图当我们让ID为0, IQ为1则转子就会逆时针旋转,且转速随着IQ的变大而变大。
如图当我们让ID为1, IQ为0则转子就会定在原地,且发热量随着ID的变大而变大。
因此可以总结一下,要想让转子平稳的转动下去就需要让三相绕组产生的磁场方向一直和转子磁铁的磁场方向垂直,即图中的IQ, 同时使ID尽可能为0以减小发热。那么怎么让绕组产生的磁场方向等效为IQ ID呢由此变引入Park反变换和Clark反变换。

Park反变换

在这里插入图片描述

我们知道DQ坐标系是旋转坐标系,但我们的三相绕组是静止的,因此首要任务是将旋转坐标系变换为静止坐标系,即找到一个静止坐标系使其产生的磁场等同于DQ坐标其,我们将这个坐标系命名为αβ坐标系,其中由DQ坐标系向αβ坐标系这一变换过程称为反Park变换。

其中阿尔法轴与a相绕组对齐。
Uα = Udcosθ - Uqsinθ
Uβ = Uqcosθ + Udsinθ
经过Park反变换我们将旋转坐标系变成了静止坐标系,接下来便是让静止的两相坐标系向3相绕组坐标系进行变换。

Clark反变换

在这里插入图片描述

Clark反变换的目的是把两个垂直的坐标系转变为三相绕组坐标系。经过Clark反变换后就可以通过三相绕组去产生ID和IQ了。(备注FOC控制框图中没有Clark变换的原因是通过后边公式的化简发现只需要Iα和Iβ即可)

但是我们最终能控制到的硬件是三相全桥即六个MOS管的导通,因此我们最终要的是MOS管的导通时间,即定时器输出的高电平时间,即PWM的占空比,因此我们接下来要通过Ua Ub Uc求出Mos导通时间。

8个矢量介绍

我们已知我们的输入是控制Ua Ub Uc导通状态导通时间和转子角度,我们的目标(输出)是ID IQ,我们要解决的问题是如何通过输入产生输出,在解决问题之前我们要先看一看我们的输入是什么,有什么物理含义。
由于同一桥臂上下两个MOS不能同时导通(短路),因此6个MOS总共由8种状态,由于每种状态都会产生一个固定方向的磁场,我们将8种状态称为8种矢量。

在这里插入图片描述

矢量a桥臂状态b桥臂状态c桥臂状态
0000
4100
6110
2010
3011
1001
5101
7111
(注:0代表下桥臂打开 1代表上桥臂打开)

假设我们的电机处于0°位置,那么要想让电机转动起来我们只需要产生一个90°的矢量,那么只需要在一个周期内矢量2和矢量6作用的时间各占一半即可产生一个90°的矢量,总结来说就是我们通过控制相邻矢量导通时间比例可以控制矢量的方向,通过插入0矢量可以改变矢量的大小,因此我们在一个控制周期内通过8个矢量的配比来产生任意方向和任意大小的矢量。(只要我们能够产生任意方向的矢量我们就可以先读取当前转子角度,然后产生一个超前90度的矢量,这个矢量即是IQ)。
在这里插入图片描述

我们知道矢量方向的范围是0-360度那么矢量的大小是什么呢?由于三相绕组阻值基本一样,因此每个矢量的最大值为Udc2/3,其中Udc为母线电压(电源电压),但我们发现各个方向上矢量最大值并不一样,为了让电机平滑转动,我们的目标矢量的最大值应为上图中六边形的内切圆的半径,即Udc2/3*sqrt(3)/2 = Udc/sqrt(3).具体参考下图。
在这里插入图片描述

SVPWM生成

接下来先看一个例子,例如我们想要产生0-60°的任意一个方向的矢量。

在这里插入图片描述

通过计算我们可以得出其他几个扇区的矢量作用时长
由于所有结果格式基本相同因此我们假设:
K = sqrt(3) * Ts / Udc
U1 = Uβ
U2 = -sqrt(3) / 2 * Uα - Uβ/2
U3 = sqrt(3) / 2 * Uα - Uβ/2
则可以总结出下表:

扇区T0T1T2T3T4T5T6T7
1(Ts-T4-T6)/2000K*U30K*U1(Ts-T4-T6)/2
2(Ts-T2-T6)/20-K*U3000-K*U2(Ts-T2-T6)/2
3(Ts-T2-T3)/20K*U1K*U2000(Ts-T2-T3)/2
4(Ts-T1-T3)/2-K*U10-K*U3000(Ts-T1-T3)/2
5(Ts-T1-T5)/2K*U2000K*U30(Ts-T1-T5)/2
6(Ts-T4-T5)/2000-K*U2-K*U10(Ts-T4-T5)/2
得出上表之后我们就可以通过8个矢量来产生任意大小和任意方向的矢量了。通过表格发现不同扇区用到的矢量不一样,因此我们需要做一下扇区判断,之前讲过扇区判断有3种方式,其中电流检测在这里讲解。
利用电流做扇区判断

观察反Clark变换公式和我们之前U1,U2,U3可以发现,这两个公式极其相像。

在这里插入图片描述

由图可以看出我们能够使用U1 U2 U3的正负来判断当前所处扇区
设 U1>0 时 A=1, 否则 A=0;
设 U2>0 时 B=1, 否则 B=0;
设 U3>0 时 C=1, 否则 C=0;
设 N=4C+2B+A。

扇区U1>0 (A)U 2>0 (B)U3>0 ©N
1(0°-60°)1015
2(60°-120°)1004
3(120°-180°)1106
4(180°-240°)0104
5(240°-300°)0113
6(300°-0°)0011

既然我们已经拿到了每个矢量的作用时长,我们便可以求出每个Mos的导通时间,接下来便是把这些导通时间兑换成PWM形式。

七段式SVPWM

我们已知任意一个方向和大小的矢量需要的8个矢量的作用市场,那么如何控制硬件电路实现呢,我们熟悉的硬件电路控制是PWM模式,那么有办法把矢量作用时长换成Mos的导通时间吗,当然可以,首先我们看一下每个矢量对应的MOS导通时间,然后通过组合把这些时间组成PWM模式。

在这里插入图片描述

接下来我们要做的是把这些矢量信号排列组合成PWM信号例如在第一个扇区我们用到了矢量T0 T4 T6 T7

在这里插入图片描述

按照同样方法便可分析出所有扇区对应的PWM信号

在这里插入图片描述
在这里插入图片描述

这样的波形不就是我们熟悉的中央对其方式的PWM波吗。到此我们已经完成了FOC开环运行。

程序编写

第五章 FOC电流闭环

其实到这里我想大家应该已经明白Clark变换和Park变换的作用了,我们拉开视角再看我们刚刚开环做了什么。
1.给出目标电流
2.通过定时器控制三相全桥电路输出这个目标电流。
(不用纠结电压电流,因为它们之间只是个系数问题)
那么我们要闭环岂不是只需要检测出实际电流然后做个PID闭环即可。那么为什么要用到Clark变换和Park变换呢,因为我们如果不用这些变换那么我们的目标电流和实际电流都是正弦波,这对我们PID控制很不利,因为我们熟悉的PID是目标值不变,让实际值去跟随目标值。而且我们拿到的三相电流Ia Ib Ic不直观,Iα和Iβ也不直观,而Iq和Id就直观的多,Id用于发热,Iq用于旋转。对Iq和Id进行闭环控制通俗易懂还能配合速度环,因为想要转的快就增加Iq呗。

Clark变换

在这里插入图片描述

Clark变换的目的在于三相变两相。

Park变换

在这里插入图片描述

Park变换的目的在于静止变旋转。

电流采样

经过变换之后我们就要面临电流采样问题了。通过上一章对7段式SVPWM的分析我们发现在一个周期内,不同时刻Mos的导通是不一样的,一般采样电阻都是接在下桥臂,因此只能在相关桥壁的下MOS管打开时刻进行该相的电流采样。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

由电路图可知
1.必须在三相全桥的下桥臂打开的时候才能进行该相电流采样。
2.Mos的开关瞬间会对相电流产生干扰,因此采样时间避开Mos导通状态切换的时刻。
3.3电阻可以在任意时刻进行电流采样
4.根据SVPWM波形发现每个扇区都有两相电流变化较小,一相电流变化较大,因此三电阻采样时要采集电流变化较小的两相。
5.由于当目标电流较大时,可能会存在一相的占空比接近100%,则导致该相电流无法采样,因此双电阻采样要对最大输出电流做限制,流出电流采样时间。
6.单电阻要在一个周期内采样两次电流。

在这里插入图片描述

我们可以在t5和t6时刻采样到-ic和ia电流完成电流采样

程序编写

第六章 速度闭环

相信大家到这里已经较为清楚了,速度环,目标是给定速度,反馈是实际速度,输出是Id Iq,其中Id为0,Iq越大转的越快。

程序编写

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

速度环,目标是给定速度,反馈是实际速度,输出是Id Iq,其中Id为0,Iq越大转的越快。

程序编写

[外链图片转存中…(img-3Fiyfol2-1715786194522)]
[外链图片转存中…(img-vnxNZe0L-1715786194523)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • 28
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值