foc学习笔记1——准备工作

foc学习笔记1——准备工作

写在前面:如今网上关于foc的文章和教程很多,但初学者往往会被那些专业且复杂的公式搞晕,不知道自己到底在学什么。而本文旨在帮助大家梳理思路,如果各位看了其他文章有云里雾里的感觉、不思其解的地方,或许本文能为您解惑。但本文也只能起到辅助作用,并不是零基础教程,还请结合其他文章一同学习。

最后:本人既不是电机工程师也不是相关专业的学生,纯属个人理解,有什么错误还请指出,也希望各位专业人士能嘴下留情。

1.foc是什么

(1)电机持续转动的秘密:换相

​ 首先说一说为什么电机能够转动:电机的线圈绕组就相当于电磁铁,通电后能够产生磁场,而转子上装有永磁体。根据同性相斥异性相吸的原理,转子的N极会吸向定子的S极、转子的S极会吸向定子的N极。

foc学习笔记1——准备工作_第1张图片

​ 然后呢,转子不就被吸住不再转动了,那怎么样才能让电机不停转动呢?很简单,换一个绕组继续通电,产生另一个方向的磁场,重新让转子转动。每当转子转到特定位置便换一个绕组继续通电,如此循环往复下去,电机便可不停旋转。用专业点的说法,这叫“换相”。

foc学习笔记1——准备工作_第2张图片

​ 上图这样的换相方式便是六步换相法,转子每转过60°换一次相,换相6次即转过一圈。在每个60°的扇区内,电机只有两相线圈绕组是通电的,第三相截止(或悬空)。使用这种驱动方式便可以让我们的无刷电机或是永磁同步电机转起来了。(图随便画的,知道意思就行,不用太纠结)

(2)拉磨盘的磁场力

​ 我们可以把转子想象成一个磨盘,把定子和转子间的磁场相互作用力想象成拉磨盘的力,如下图所示:

foc学习笔记1——准备工作_第3张图片

​ 我们肯定希望拉磨盘的力能始终垂直于木柄,因为这样才能使我们的力达到最佳效果。但遗憾的是,我们很难做到用力方向始终和木柄保持90°。力F能够分解为Fq和Fd两个分量,Fq是让磨盘转动的力,而Fd纯粹是无用功。(这两个分量的方向便是后面说的D轴和Q轴的方向)

​ 我们再来看看六步换相法是如何拉“磨盘”的:

foc学习笔记1——准备工作_第4张图片

​ 六部换向法是每隔60°换一次相,在即将换相的临界处力的方向任然保持和刚刚换相时一样,此时的Fd分量就很大了,影响效率。同时在换相的瞬间,由于力的方向突变,会产生较大的转矩波动,影响电机转动时的平稳性(当然实际应用中并不是在0°、60°、120°。。。处换相,而是在-30°、30°、90°。。。处换相,这样能避免在换相临界处Fd过大的问题,但仍然无法避免换向时力的方向突变)。而我们的老朋友直流有刷电机在这方面做得更糟糕,因此它的转矩脉动更大。

​ 那我们有没有办法去解决这一问题呢?当然有,那就是用foc控制。

(3)foc:无限步换相

​ 终于轮到我们的主角登场了,foc的全名叫磁场定向控制。意思就是它能产生任意方向的磁场,无论是30°,还是59.9999°(当然这只是理想情况下的,实际上受限于数字系统的分辨率),而我们的六步换相法,充其量也只能产生6个方向的磁场。理想情况下的foc产生的磁场力的方向始终与“磨盘的木柄”相差90°(不包括弱磁),因此它每时每刻的效率都是最高的,也不会产生力的方向上的突变。也可以说每当转子转过Δθ,便换一次相,因此我称之为无限步换相。那么它这么厉害是如何做到的?时刻获取转子的准确位置,然后产生与之相差90°的磁场。

foc学习笔记1——准备工作_第5张图片

最后介绍一下一次foc的完整过程(有些暂时看不懂也没关系,以后再回来看,框图内的细节以后也会逐一介绍):

采集电机三相电流IA、IB、IC

-> Clarke变换:通过三轴变两轴的坐标变换将采集到的三相电流变化为两相电流Iα和Iβ

-> Park变换:通过两轴静止变两轴旋转的坐标变换将转子电角度θ、交流的Iα和Iβ变换为直流的Id和Iq

-> 电流环:将Id和Iq经过PID运算,输出Ud和Uq

-> 反Park变换:通过两轴旋转变两轴静止的坐标变换将当前转子电角度θ、直流的Ud和Uq变为交流的Uα和Uβ

-> 反Clarke变换:通过两轴变三轴的坐标变换将两相的Uα和Uβ变为三相的UA、UB、UC

-> SVPWM:将三相电压计算成三个PWM通道的占空比值

-> 三相逆变电路:输出三相等效马鞍波

-> 电机

foc学习笔记1——准备工作_第6张图片

2.一些观念

(1)电压给定的情况下,空载时候电流最小、输出转矩最低,堵转的时候电流最大也是电机输出转矩最大的时候。

​ 电机的输出转矩和电流可以近似认为是成正比的,有些电机还会标有扭矩常数(N·m/A)。但要清楚,只有给电机输出轴增加负载,才能使电机输出更大转矩、消耗更大的电流。否则,当电机空载的时候,电机的输出轴只需要克服微乎其微的空气阻力和摩擦力,自然就无需输出多少转矩,所以耗费的电流也是很小的。这一点在调试电流环的时候很有帮助,不要奇怪为什么实测的iq到不了给定值,你都没给电机加负载。但是,在没有电流环的情况下,堵转电机往往是一件非常危险的事情,因为此时反电动势等于0,加在线圈上的电压就等于输入电压,所以此时线圈中流过的电流就等于电压除以线圈的电阻。

(2)一台永磁同步电机的最大转速只与电压有关而与换相速度无关。

​ 换相是被动的,增加电压是主动的。总之要记住一点,是因为转子要转得更快了所以才提高换相速度,而不是因为提高换相速度就能使转速变快。

​ 为什么不能提高换相速度来提高转速,步进电机不就是这样的吗?我们获取转子位置的目的就是为了换相,是因为转子已经转到特定位置了,我们才给它换相,让它永远也追不上旋转磁场的同时也不至于被拉下太远(这里的追不上是指旋转磁场的速度和转子的速度相同,而旋转磁场之前就已经处于转子的前头)。如果我们不关心转子位置而强行提高换相速度,转子就会因为跟不上旋转磁场的速度(这里的跟不上是指旋转磁场的速度大于转子的速度,如同跑道超圈),就像步进电机高速失步那样。

​ 那为什么说提高电压就能提高转速?增加电压的瞬间,电机绕组中的电流变大、磁场强度跟着变大,给予了转子更大的力矩,所以转子加速转动,直到达到新的平衡,此时电机的转速相比之前更快(负载不变的前提下)。

(3)电机的三相绕组是两两导通还是三相全导通?

​ 使用六步换相驱动是两两导通,使用foc驱动是三相全导通。

3.名词解释

(1)svpwm

​ 原名叫空间矢量脉宽调制。它是foc软件中的最后一环,个人觉得也是最麻烦的一环。通过单片机定时器的中心对齐模式输出三通道的pwm波,驱动三相逆变电路输出等效为马鞍波的方波,而这三相方波(等效马鞍波)最终则施加在电机的UVW三相上(ABC三相)。为什么能等效这里就不解释了,如果对spwm有了解的肯定能明白,如果你用示波器测量只能看到输出方波,但如果加上一个rc低通滤波器就能看到马鞍波了。可能有人会有疑问为什么要输出方波来等效,而不是用dac输出再像三极管放大那样直接输出马鞍波?因为那样要让晶体管工作在线性区,功耗是非常吓人的,就如同开关电源和线性电源一样。

foc学习笔记1——准备工作_第7张图片

(2)bldc和pmsm

​ 直流无刷电机和永磁同步电机,两种电机非常像,都是用永磁体作为转子,三相绕组作为定子。比较常见的说法是bldc的反电动势是梯形波,而pmsm的反电动势是正弦波,所以bldc适合用六步换相驱动,pmsm适合用foc驱动。但我发现手边的无刷电机无论是航模电机还是云台电机,反电动势全是正弦波,这就很奇怪了。

(3)kv

​ 玩过航模的一定不陌生,是电机的转速常数,单位是rpm/V。意思是电机每通1V的电压,转速便提升kv数转每分钟。假如有一台1000kv的电机,那么给它通10V的电压,它的转速是一万转每分钟(空载情况下)。转速常数的存在也印证了永磁同步电机的转速只与电压有关而根换相速度无关。

(4)反电动势

​ 一台电机,它是电动机的同时也是一台发电机,当电机通电旋转的时候,它实际上是一边被磁场力拖着转动,同时也因为它在转动而在发电。理想空载的情况下,电机发电的电压和加在电机线圈上的电压是相等的,也就是说加在电机上的电压恰好被反电动势给抵消了,这就是为什么电机的空载电流非常小。反电动势常数的单位是V/rpm, 大小恰好是kv的倒数。

(5)极对数

​ 解释不清看图吧。

foc学习笔记1——准备工作_第8张图片

​ 我们学习的时候为了方便理解一般用一对极的电机来学习,长上边这样↑。

foc学习笔记1——准备工作_第9张图片

​ 而我们实际用的电机可能长这样↑, 绕铜线的是定子,上边贴磁铁的是转子。只要分析明白一对极的电机就够了,不需要再去分析多极电机,它们差的也只是一个系数,千万不要被吓到。

​ 对于二图的无刷电机,极对数等于转子上磁铁个数除以2。

(6)电角度

​ 电机机械上转过的角度除以极对数就等于电角度转过的角度。比如说一台7对极的电机,机械上转动一圈等于电角度转过7圈,具体原因个人暂时无法解释。这个有什么用呢?因为foc算法需要时刻获取转子位置(也可以说是转子的电角度),而我们所用的编码器只能读到转子的机械角度,这个时候就需要把它换算成电角度来做foc运算。(对于无感foc,同样需要获取转子电角度,不过用的不是编码器而是观测器,本文只涉及有感foc)

(7)电周期

​ 电角度转过360°就是一个电周期。

参考资料:

  1. 文档:SVPWM的原理及法则推导和控制算法详解第五修改版 提取码:2617

  2. 视频:硬石相关章节

  3. 博客:FOC入门教程

  4. 视频:野火相关章节

  5. 视频:唐老师讲电赛

你可能感兴趣的:(驱动开发)