【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 知乎

笔记前声明:文中截图均出自上方链接中稚晖君的文章。

目录

一、什么是FOC

二、FOC驱动器和无刷电调的区别

2.1 FOC的优势:

2.2 电调的优势:

2.3 FOC待解决的问题

2.4 直流无刷电机分析

三、驱动电路的实现

3.1 三相逆变器电路

3.2 旋转的三相电机波形

四、FOC驱动原理

4.1 天书 算法导图

4.2 稍微解释

4.3 SPWM

4.4 Clark变换

​ 4.5 Park变换

4.6 三环串级PID

4.7 Id与Iq(电流环)

4.8 速度环

4.9 位置环


一、什么是FOC

FOC(Field-Oriented Control),直译是磁场定向控制,也被称作矢量控制(VC,Vector Control),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC旨在通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。

二、FOC驱动器和无刷电调的区别

2.1 FOC的优势:

1. 低转速下控制
由于控制原理的区别,无刷电调只能控制电机工作在高转速下,低速下无法控制;而FOC控制器则完全没有这个限制,不论在什么转速下都可以实现精确控制。

2. 电机换向
同上面的理由,由于电调无法反馈转子位置,因此很难实现电机正反转的换向(当然有感电调可以实现);而FOC驱动器的换向性能极其优秀,最高转速下正反转切换可以非常顺畅;此外FOC还可以以能量回收的形式进行刹车控制。

3. 力矩控制
普通电调都只能控制电机转速,而FOC可以进行电流(力矩)、速度、位置三个闭环控制。

4. 噪音
FOC驱动器的噪音会比电调小很多,原因是普通电调采用方波驱动,而FOC是正弦波。

2.2 电调的优势:

1. 兼容性
电调驱动不同的BLDC(无刷直流电机)不需要进行参数整定,而FOC需要。

2. 算法复杂度
电调的算法实现更简单,运算量少,很适合需要提高带宽的超高转速电机。

3. 成本
电调的成本比FOC低很多。

2.3 FOC待解决的问题

至于什么时候怎么知道该换到哪个供电相?如何产生更平滑的换向电压?如何提高电源的利用效率?这些都是FOC控制方法要探讨和解决的问题。

2.4 直流无刷电机分析

简单地说,BLDC由于反电动势接近梯形波,所以依然是采用方波驱动,肯定是会有上面说的抖动问题的,但是转一圈抖6下太明显了,如果我增加电机槽、极对数(也就是磁铁对数),那以前是360度里面抖6下,现在变成120度里面抖6下,甚至更小,这样“颗粒感”不就变得更小了嘛?实际中买到的BLDC电机基本都是多极对的(比如下图),原理跟之前的分析是一样的,出来的都是三相信号(图中的三根线),可以自己进行类推。

而另一方面,为什么我们非得用方波这种不平滑的波来驱动电机呢,用正弦波它不香吗?是的,这就是PMSM解决问题的方式,由于PMSM的反电动势被设计为正弦波的形状,我们用软件和算法结合PWM技术将方波转变成等效的正弦波,再来驱动电机,结果美滋滋,控制效果很理想。当然为了产生更好的正弦波、更好的旋转磁场,驱动器、控制算法就变得非常复杂,这也是FOC的实现原理,后面会进行详细介绍

三、驱动电路的实现

3.1 三相逆变器电路

所谓逆变电路,即把直流电变换为交流电,或者简单点说就是一个可以产生不同电流流向的电路,通过前面的电机模型分析我们也可以看出,对于无刷电机的驱动是需要在不同时刻施加不同方向的电压(电流)的,因此需要逆变电路。

而逆变电路具体的实现则一般是采用半桥MOS电路来制作的。半桥电路的原型如下,其实很简单,就是两个MOS管组成的上桥臂下桥臂,中间引出一条输出线:

打开红的和两个蓝的,三相都有磁场

遗留问题: 这里我理解的差

3.2 旋转的三相电机波形

按照前面的无刷电机基本模型,假设我们拿到这样一个电机,手动匀速转动它的转子,然后用示波器观察它的三相输出电压(也就是反电动势产生的电压),会看到什么波形呢?

其实很自然可以想到,我们会得到3根正弦曲线,而且三根曲线两两相位差为120°:

发电机反过来就是电动机啦,所以假如反过来我们在三相无刷电机的三相线圈上输入上述三相正弦电压,那么就可以驱动无刷电机平稳高效地旋转了。

而这也是FOC驱动无刷电机的基本手段,即通过计算所需电压矢量,使用 SVPWM 技术产生调试信号,驱动三相逆变电路,合成出等效的三相正弦电压驱动电机。

四、FOC驱动原理

4.1 天书 算法导图

4.2 稍微解释

4.3 SPWM

最主要的原因是,通过上面三个半桥逆变器电路的分析我们可以知道,我们并不好在某一时刻独立地控制某一时刻电机的三个相电压,也就很难合成三路这种SPWM波了;另外SPWM也比后面要说的SVPWM的电压利用率要低15%(具体怎么算的这里就不介绍了)

4.4 Clark变换

遗留问题:开尔文接法

注意:频率还是不变的!

4.5 Park变换

这个操作是可行的,因为我们会通过编码器输入转子的实时旋转角度,所以这个角度​始终是一个已知数。经过这一步的变换,我们会发现,一个匀速旋转向量在这个坐标系下变成了一个定值!(显然的嘛,因为参考系相对于该向量静止了),这个坐标系下两个控制变量都被线性化了!

遗留问题:理解一般

4.6 三环串级PID

遗留问题:

这仨是什么?

解决了,因为park变换需要这个值嘛

可以看出来,这也就是前面提到的FOC控制9个步骤所描述的过程。实际只用到了PI控制,没有引入微分,因为电流的采样率非常高不需要加入微分项。(为啥)

4.7 Id与Iq(电流环)

 首先,星形连接:相电流 = 线电流

其次,通过我的推导:电流的方向就是转子的受力方向

因为电流流经线圈产生的磁场,进而是磁场提供动力而不是电流了

(这不是转载的)

遗留问题:线圈一定是三个么,这是三相交流电,可不可以多相?

4.8 速度环

4.9 位置环

最外一层是位置环,也就是可以控制电机旋转到某个精确的角度并保持,控制框图如下:

同理应该很简单可以理解,上图中位置控制PID只用了P项(也可以使用PI)。

(厉害了,这跟我担心的反着,速度低反而不理想了,我感觉速度太高也会不理想)

所以为了避免速度环节带来的误差,在做位置控制的时候可以只使用位置和电流组成的双环进行控制,不过此时需要对位置环做一定的变化,控制框图如下:

由于去掉了速度环,这里的位置环我们使用完整的PID控制,即把微分项加上(因为位置的微分就是速度,这样可以减小位置控制的震荡加快收敛;积分项的作用是为了消除静态误差)

遗留问题:看不懂

4.10 SVPWM

4.10.1 空间电压矢量

什么是空间电压矢量?

空间电压矢量是我们在控制电机过程中虚拟出来的一个矢量,既然是矢量,自然是有大小和方向的,那么它的大小和方向是什么呢?

还是以前面三相逆变驱动电路那幅图中的状态为例,输入100的状态:

 

 

取一种做演示:

如前文分析,此时的电压矢量为AO方向,大小为 Udc ,我们把这个矢量画在坐标轴中如图:

4.10.2 SVPWM技术

 

遗留问题:m还能改么 ?零矢量的也没看懂

解决:发现一个问题:

为了避免(1,1,1)的零矢量造成运算错误,需要(0,0,0)矢量与(1,1,1)等大?

这是真的强

【学习笔记·2】FOC相关推荐

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

    foc学习笔记1--准备工作 写在前面:如今网上关于foc的文章和教程很多,但初学者往往会被那些专业且复杂的公式搞晕,不知道自己到底在学什么.而本文旨在帮助大家梳理思路,如果各位看了其他文章有云里雾里 ...

  2. foc学习笔记3——电流环

    foc学习笔记3--电流环 电流环的作用 ​ 前文不断强调,进行磁场定向控制需要控制的是电流而非电压,只是因为我们没有办法直接去控制电流才暂时退而求其次地去控制电压 .虽然电压控制的效果也还不错,但由 ...

  3. BLDC电机FOC控制技术学习笔记

    电机驱动的学习笔记 文章起因 1.对电机控制的大体框架认识(电流环) 2.FOC(磁场定向控制)控制BLDC(无刷直流电机)控制算法认识 写在最后,备注 文章起因 本人自动化专业,机器人方向,深知电机 ...

  4. STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)

    本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...

  5. DSP_TMS320F28377D_ePWM学习笔记

    前言 本人需要使用ePWM来控制一个永磁同步电机(PMSM), 本文记录了对于TMS320F28377D ePWM模块的学习笔记.主要内容是FOC PMSM控制的ePWM配置,同时包含ADC触发源的配 ...

  6. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  7. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  8. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  10. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

最新文章

  1. 双边滤波--OpenCV实现
  2. 全球与中国聚硫聚合物市场发展前景与投资可行性分析报告2021年版
  3. IP地址、子网掩码、网关、路由器等知识积累
  4. python结束进程树_【python爬虫】线程进程
  5. W3 Total Cache+Hacklog Remote Attachment Upyun
  6. Qt文档阅读笔记|Qt实践| HTTPS知识点-获取某站点SSL证书
  7. 前端:JS/21/循环和数组的练习题
  8. Selenium自动化测试-8.iframe处理
  9. MOSFET 导通条件
  10. latex编译报错:Font ntx-Regular- tlf-ot1r at 438 not found
  11. (开源)带有笔顺的字体
  12. Java初始化大乱斗
  13. 在本机搭建FTP服务器
  14. Python金融数据分析入门到实战-视频课程
  15. c语言中14 3,C语言中的单精度和双精度浮点型的区别!3.14是哪种?3.14159呢?
  16. UNITY中FMOD音效插件使用
  17. 动态ani_你是哪张Ani专辑?
  18. 剧本翻译之SHUFFLE 6月21日
  19. 算法 博弈论( 初级Nim游戏)
  20. python爬虫解析库(Xpath、beautiful soup、Jsonpath)

热门文章

  1. 一些古文里面的字的读音
  2. LOJ #10005. 「一本通 1.1 练习 1」数列极差
  3. 笔记本每次启动都会先黑屏1分钟再启动问题解决
  4. 未来的智能制造,或许会往这些方向推进
  5. 崩坏3卡池模拟器及毕业期望概率计算(含保底)
  6. 使用OpenCV采集摄像头的视频并保存为文件
  7. 1312_适用7z命令进行压缩与解压
  8. MySQL- 经典面试题
  9. CSS实现文字动画炫酷效果
  10. ajax常见面试问题