参考资料:
【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术
永磁同步电机(PMSM)的FOC闭环控制详解
FOC入门教程
FOC实现过程中主要公式整理
永磁电机知多少?
无刷直流电机矢量控制技术 江崎雅康


1. 有感FOC闭环控制(只含电流环)框架图

首先给出只含电流环的FOC控制框架图。

上图是以电流闭环控制为例的,也就是让电机始终产生一个恒定的力矩(也就是恒定的电流,因为力矩和电流成正比)。

控制流程如下:

  1. 对电机三相电流进行采样得到Ia,Ib,Ic
  2. 将Ia,Ib,Ic经过Clark变换得到Iα,Iβ
  3. 将Iα,Iβ再加上转子当前角度θ经过Park变换得到Iq,Id
  4. 计算Iq,Id和其设定值Iq_ref,Id_ref的误差。
  5. 将上述误差输入两个PID控制器,得到输出的控制电压Uq,Ud
  6. 将Uq,Ud再加上转子当前角度θ进行反Park变换得到Uα,Uβ
  7. 用Uα,Uβ合成电压空间矢量,输入SVPWM模块进行调制,输出该时刻三个半桥的状态编码值
  8. 按照前面输出的编码值控制三相逆变器的MOS管开关,驱动电机。
  9. 循环上述步骤。

接下来分别对上述步骤进行拆分讲解。

1.1 电流采样

使用串联的采样电阻进行电流采样。由于电机工作的电流一般很大,所以采样电阻的阻值非常小,甚至和导线的电阻非常接近。

实际设计电流采样电路时,只需要两个采样器即可,由KCL即可由两路电流求出另外一路的电流。

得到的三个电流基本上就是三个相位相差120度的正弦波,其波形图如下所示。

如果直接将三个电流的采样值(非线性信号)作为跟踪对象,就需要使用复杂的高阶控制器,这对于建模成本、处理器算力、控制实时性等都是不利的。

因此,我们需要找到一种方式,将跟踪的信号简化成线性信号。这就用到了Clark变换和Park变换。

1.2 Clark变换

三相电流(Ia,Ib,Ic)在坐标系中表示如下:

很明显,(Ia,Ib,Ic)这三个基向量是非正交的,我们可以做一个基变换将其正交化为一个直角坐标系,我们把新的直角坐标系命名为​α-β 坐标系,如下图所示:

得到的Clark变换公式如下:

各行电流乘以2/3是为了将变换后的Iα,Iβ的范围限制在[-1,1]内,这种变换也称为等幅值变换,这是因为采用MCU控制时,会使用[-1,1]的定点数,否则Iα,Iβ的范围将达到[-1.5,1.5]。

同时,这里多乘了2/3,电流值也会变成原来的2/3,所以后续在计算电压输出时的坐标逆变换中,要乘以3/2来回复原值。这里乘以的2/3将会在SVPWM步骤中乘以3/2给找补回来。

上式其实就是坐标轴投影计算,也即Clark变换,写成矩阵形式如下:

变换后的波形如下图所示:

变换前后的波形对比图如下所示:

可以看到变换后其实还是正弦波。只不过我们少了一个需要控制的变量了,现在只需要控制​Iα,Iβ这两个变量,让其满足上图的下面的波形变化规律就可以控制电机旋转 了,频率还是不变的。

虽然α-β坐标系下少了一维变量,但是新的变量还是非线性的(正弦),有没有办法把它们线性化呢?有的,Park变换就是做这个工作的。

1.3 Park变换

进行Park变换:将α-β ​坐标系旋转θ度,把新的直角坐标系命名为​d-q坐标系,如下图所示:
(其中θ是转子当前的角度)

可以看出,Id和Iq是相互垂直的并且同时跟随着磁场方向在旋转。Park变换即,将静止的α,β电流变换成旋转的d轴和q轴电流,θ是转子旋转的角度。Park变换公式如下所示:

写成矩阵形式如下所示:

经过Park变换前后得到的波形如下图所示:

这个操作是可行的,因为我们会通过编码器输入转子的实时旋转角度,所以这个角度​始终是一个已知数。经过这一步的变换,我们会发现,一个匀速旋转向量在这个坐标系下变成了一个定值,这个坐标系下两个控制变量Id和Iq ​都被线性化了。

到此为止,我们将本应该跟踪的三个非线性信号Ia、Ib、Ic,通过一系列数学手段转换成为两个线性信号Id和Iq,简化了控制手段。那么这两个线性信号Id和Iq具有什么物理含义呢?先看下图:

也就是说,我们一通操作将转子磁链进行了解耦,分解为了转子旋转的径向(Id)和切向(Iq)这两个方向的变量。其中Iq是我们需要的,代表了期望的力矩输出;Id是我们不需要的,我们希望尽可能把它控制为0。

接下来以Id和Iq ​这两个值作为反馈控制的对象,那么就可以使用一些线性控制器来进行控制了,比如PID控制器。

1.4 PID控制


在计算得到Id和Iq后,将其反馈回去,分别与它们的设定值Id_ref和Iq_ref进行比较,计算误差,然后分别做PI控制,得到Vd和Vq

可以看到,这里的PID控制器实际只用到了PI控制,这是因为电流的采样率非常高,不需要加入微分项。

1.5 反Park变换

接着,对Vd,Vq进行反Park变换,将​d-q坐标系变换为α-β ​坐标系,如下图所示:

变换公式为:

写成矩阵形式如下所示:

至此,得到了Vα,Vβ

1.6 SVPWM

SVPWM的全称是空间矢量脉宽调制(Space Vector Pulse Width Modulation)。

什么是空间矢量?

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

PMSM的有感FOC闭环控制讲解相关推荐

  1. 有感FOC算法学习与实现总结(转)

    原文:https://blog.csdn.net/u010632165/article/details/103656254 文章目录 基于STM32的有感FOC算法学习与实现总结 1 前言 2 FOC ...

  2. STM32 电机教程 21 - 基于ST MCLIB无感FOC 与 有感FOC 代码差异分析

    前言 磁场定向控制又称矢量控制(FOC), 本质上为控制定子电流的幅度和相位,使之产生的磁场和转子的磁场正交,以产生最大的扭矩. PMSM的磁场定向控制框图如下图所示: 第19.20讲分别实现了基于N ...

  3. 图论算法及其matlab实现_BLDC有感FOC算法理论及其STM32软硬件实现

    用来做机器人关节伺服 详情见以下博文,建议电脑端浏览.位置速度电流三环控制,后期存在优化空间,整个项目为模仿Odrive实现. BLDC有感FOC算法理论及其STM32软硬件实现 - 我叫平沢唯 - ...

  4. Simulink —— PMSM基础及FOC控制模型

    题外 终于要到我的老本行了,PMSM的FOC控制,这种算法将三相无刷电机在算法上等效成一个直流电机,通过坐标变换将定子磁场进行解耦,分解成D轴和Q轴两个方向,当将D轴与转子磁场定向时,那么Q轴方向的磁 ...

  5. 电机控制----FOC框架讲解

    电机控制----FOC框架讲解 在开始接触到FOC控制的时候便着手开始去学习深入理解其中的控制原理,个人对技术的追求是"知其然,亦要知其所以然".因此便通过模块化学习做一些记录吧. ...

  6. PMSM无感foc控制(传统SMO)学习笔记

    永磁同步电机无感控制学习 一.永磁同步电机无感控制主要方法概述 (一)基于永磁同步电机基本磁链关系的转速和位置估算方法 1.直接计算方法 可直接检测的量是定了三相电压和电流,利用它们计算出转了位置角和 ...

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

    文章目录 基于STM32的有感FOC算法学习与实现总结 1 前言 2 FOC算法架构 3 坐标变换 3.1 Clark变换 3.2 Park变换 3.3 Park反变换 4 SVPWM 5 反馈部分 ...

  8. 永磁同步电机pmsm 双闭环foc控制系统 双pi调节 一共三个pi模块调参方式为ti的方法

    永磁同步电机pmsm 双闭环foc控制系统 双pi调节 一共三个pi模块调参方式为ti的方法 采用函数编写简单易懂 其中svpwm模块也是函数方便理解 建议买模型对着书 一天即可理解 本仿真与其他仿真 ...

  9. 永磁同步电机(PMSM)的FOC闭环控制详解

    转于 https://blog.csdn.net/hducollins/article/details/79260176 在学习FOC控制前,我对于FOC控制完全不懂,只知道中文叫做磁场定向控制,因公 ...

最新文章

  1. lisp协议instand_分享|Linux 上 10 个最好的 Markdown 编辑器
  2. Nginx 的内置变量
  3. 几种USB控制器类型:OHCI,UHCI,EHCI,XHCI
  4. 声明式RESTful客户端在asp.net core中的应用
  5. 跨平台加密版 SQLite 3 - wxSQLite3
  6. 简单调试 Python 程序
  7. c语言中循环结构的作用,C语言中对于循环结构优化的一些入门级方法简介
  8. LeetCode OJ - Sort List
  9. 语音识别学习笔记(三)【动态时间归正的识别技术】
  10. java兔子问题流程图_求龟兔赛跑的流程图 高手进来瞧瞧啊
  11. 日用品 跟帖补充一个单词奖励1Euro,请勿恶意灌水,以保持帖子的连贯.
  12. 北大青鸟c语言课后答案,北大青鸟C语言实现.ppt
  13. 基于Python的Fisher二分类判别模型实现
  14. 安全管家安卓_网速管家安卓5.4版本全面上线
  15. Kettle连接MySQL数据库报错:Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found
  16. yaffs2文件系统结构及应用
  17. 2023年开工第一天
  18. 大数据之Python数据分析 实训 信用卡客户风险评价之一、处理信用卡数据异常值
  19. 自考-计算机系统设计-7-多处理机
  20. C语言_数据的存储_作业

热门文章

  1. Hello Babylonjs
  2. 史上最全的物理学科普(值得收藏)
  3. 硬件比软件难,但为什么硬件待遇不如软件?
  4. LTE学习笔记七:LTE的信道
  5. PhotoScan拼接无人机航拍RGB照片
  6. [转]Nginx RTMP 功能研究(Nginx流媒体)
  7. 李永乐数学基础过关660题高等数学填空题
  8. Java使用阿里云OSS对象存储上传图片
  9. 为什么都不想去中科创达_排了10000桌的超级文和友,我这辈子都不想再去了
  10. 一:用MATLAB求传递函数的零点,极点以及增益K