当前位置: 首页 > news >正文

FOC之SVPWM学习笔记

一、参考资料

  • 【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 知乎
  • FOC入门教程_zheng是在下的博客-CSDN博客
  • DengFOC官方文档
  • 技术干货 |【自制】FOC驱动板

二、FOC控制算法流程框图

  • 在FOC控制中主要用到三个PID环,从内到外依次是:电流环、速度环、位置环
  • 通过电流反馈来控制电机电流(扭矩)→通过控制扭矩来控制电机的转速→通过控制电机的转速控制电机位置

在这里插入图片描述

2.1 PI电流环(内层) 

2.2 电流环+速度环

  • w:电机的转速,可以通过电机编码器或者霍尔传感器计算得到 

2.3 位置环+速度环+电流环

  •  编码器无法返回电机的转速w,可以通过计算一定时间内的编码值变化量来表示电机的转速(用平均速度代表瞬时速度)
  • 电机转速比较高时,这样的方法是可以的。但是在位置控制模式时,电机的转速会很慢(因为需要转子固定在某个位置),此时用平均测速法会存在非常大的误差(转子不动或动的很慢,编码器就没有输出或者只输出1、2个脉冲)。
  • 所以为了避免速度环节带来的误差,在做位置控制时,可以只使用位置和电流组成的双环进行控制。此时位置环使用PID控制(位置的微分D就是速度),可以减小位置控制的震荡,加快收敛,积分项的作用是为了消除静态误差。

三、FOC控制算法重要公式

3.1 Clarke变换与反变换

  • Clarke变换:将三相正弦电流Ia、Ib、Ic,转换成Iα、Iβ

\begin{cases}I_\mathbf{\alpha}=I_a\\I_\mathbf{\beta}=\dfrac{2I_\mathbf{b}+I_a}{\sqrt{3}}\end{cases}

  •  Clarke逆变换:用不到,采用了SVPWM进行了替代。

\left\{\begin{aligned}I_{\alpha}&=I_{a}\\I_{b}&=\frac{\sqrt{3}I_{\beta}-I_{\alpha}}2\\I_{c}&=\frac{-I_{\alpha}-\sqrt{3}I_{\beta}}2\end{aligned}\right.

3.2 Park变换与反变换

  • Park变换:将两相正弦电流Iα、Iβ,转换为两个常量Iq、Id

   

α--β坐标系:电机定子

q-d坐标系:电机转子

θ:转子当前的角度

 \left\{\begin{aligned}Id&=I\alpha\times\cos\theta+I\beta\times\sin\theta\\Iq&=-I\alpha\times\sin\theta+I\beta\times\cos\theta\end{aligned}\right.

Iq:当三相绕组产生的磁场方向与转子磁铁相切时,电流产生的旋转力矩最大。

Id:当三相绕组产生的磁场方向与转子磁场方向反向平行时,这时电机会被吸在原地不动,电流都用来产生热量。

  • Iq=1,Id=0,转子逆时针旋转,且转速随着Iq的变大而变大。
  • Iq=0,Id=1,转子定在原地,且发热量随着Id的变大而变大。
  • Park逆变换:

\begin{cases}I\boldsymbol{\alpha}=Id\times\cos\theta-Iq\times\sin\theta\\I\boldsymbol{\beta}=Id\times\sin\theta+Iq\times\cos\theta\end{cases}  

3.3 扇区计算

在三相逆变电路中:

  • 1:上桥臂导通
  • 0:上桥臂关闭

3.3.1 矢量编码

为了便于分析:采用二进制的方式对电压矢量进行编码,例如二进制100,十进制为U4

  • 3个半桥臂共可产生8种输出状态(2^3=8)
  • U7(111):3个半桥的上桥臂全部导通,无电流输出
  • U0(000):3个半桥的上桥臂全部关闭,无电流输出

序号A相桥臂B相桥臂C相桥臂矢量编号
1000U0
2100U4
3110U6
4111U7
5011U3
6001U1
7010U2
8101U5

3.3.2 七段式SVPWM调制

  •  在合理的位置插入两个零矢量,并且在时间上进行平均分配,以使产生的PWM对称,从而有效地降低PWM的谐波分量

                                

Uref所在的位置MOS开关切换顺序二进制编码电压矢量切换顺序
Ⅰ区(0<θ<60)000-100-110-111-111-110-100-0000-4-6-7-7-6-4-0
Ⅱ区(60<θ<120)000-010-110-111-111-110-010-0000-2-6-7-7-6-2-0
Ⅲ区(120<θ<180)000-010-011-111-111-011-010-0000-2-3-7-7-3-2-0
Ⅳ区(180<θ<240)000-001-011-111-111-011-001-0000-1-3-7-7-3-1-0
Ⅴ区(240<θ<300)000-001-101-111-111-101-001-0000-1-5-7-7-5-1-0
Ⅵ区(300<θ<360)000-100-101-111-111-101-100-0000-4-5-7-7-5-4-0

3.3.3 扇区判断 

http://www.lryc.cn/news/137574.html

相关文章:

  • DSO 系列文章(3)——DSO后端正规方程构造与Schur消元
  • php 使用ES
  • 距离我成为炎帝的一次(比较近的一次)
  • Protobuf在IDEA中的插件安装教程
  • 中间件(上)
  • Python快速检验数据分布
  • uniapp微信小程序点击右上角菜单分享功能权限配置
  • 【OpenVINOSharp】在英特尔® 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型
  • Django的模型层
  • idea 新建servlet 访问提示404 WebServlet注解找不到包 报错
  • 【EA-ISET协会】Elsevier|2区智慧农业类SCIEI, 进展顺,3个月左右录用~
  • Class类getName获取类名方法详细说明
  • 凉而不冷 柔而不弱 三菱重工海尔舒适风科技助您整夜安眠
  • YOLOv5基础知识入门(7)— NMS(非极大值抑制)原理解析
  • Gpt微信小程序搭建的前后端流程 - 后端基础框架的搭建(三)
  • jstat(JVM Statistics Monitoring Tool):虚拟机统计信息监视工具
  • 【ARM】Day6 cotex-A7核UART总线实验
  • HTTPS代理搭建技巧分享
  • 第四章:树形结构的关联式容器(map+set)
  • SpringBoot +Vue3 简单的前后端交互
  • 【Android】Mobile-Security-Framework-MobSF Manifest 静态扫描规则
  • 【C++】初谈迭代器
  • PL端案例开发手册
  • 华为OD-整数对最小和
  • Ubuntu 22LTS 配置静态IP
  • 【Python】Python爬虫:网络数据的提取利器
  • 20.图的遍历
  • ARM DIY(一)电源、SD卡座、SOC 调试
  • 数学建模知识之小白入门篇
  • 【日常积累】Linux下ftp服务安装