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

(电机03)分享FOC控制中SVPWM的输出关联硬件

本文目录

  • 本篇前言
  • 知识点讲解
  • 总结

本篇前言

        上一篇我们接着介绍了SVPWM扇区判断,并且在第一篇就讲了如何控制相邻的两个电压矢量去合成目标电压矢量,这一篇我们将讲一下如何SVPWM的输出关联到MCU定时器中的三个通道输出。网上找了一张图,是表达第一扇区的,放出来让大家有个概念。

 知识点讲解

         SVPWM的输出关联到MCU定时器中的三个通道输出就两个关键点,一个是比例需要输出PWM,另外一个是保持每次只改变一个mos管控制的原则,从000开始,单个mos变化的组合优先。       

        我们看到上面的图,是一个中心对齐形式,高电平就是输出的时候,低电平就是关闭的时候。我们在求相邻两个作用矢量的作用比例,其实就是一个时间上的比例。

        我们先定义PWM控制几个时间,T0是不作用的时间、Ta是先作用的时间、Tb是后作用的时间。

        我们在求相邻两个作用矢量的作用时间,会得到先作用时间比例Tx,后作用时间Ty。他们根据所在扇区的不同而不同,并且根据MOS开关编码的大小会优化先后作用的顺序。

        

扇区号优化后的先作用电压矢量优化后的后作用电压矢量
1U4U6
2U2U6
3U2U3
4U1U3
5U1U5
6U4U5

        在不同扇区的MOS最优开关顺序如下:

扇区\顺序01234567
1000(U0)100(U4)110(U6)111(U7)111(U7)110(U6)100(U4)000(U0)
2000(U0)010(U2)110(U6)111(U7)111(U7)110(U6)010(U2)000(U0)
3000(U0)010(U2)011(U3)111(U7)111(U7)011(U3)010(U2)000(U0)
4000(U0)001(U1)011(U3)111(U7)111(U7)011(U3)001(U1)000(U0)
5000(U0)001(U1)101(U5)111(U7)111(U7)101(U5)001(U1)000(U0)
6000(U0)100(U4)101(U5)111(U7)111(U7)101(U5)100(U4)000(U0)

        以扇区1为例:

        需要控制的矢量作用时间是T4和T6,总的时间我们用1来表示,那么不作用的时间就是:T0 = (1-T4-T6),这个不作用对于MOS控制来说,全关000和全开111都是不会控制电机转动的。所以要除以2。所以有以下:

        T0=(Ts-T4-T6)/2 

        我们再开前言的图和MOS最优开关顺序,在000的下一个开关状态是100,也就是UVW相的U,或者是定义ABC中的A吧。不管是UVW还是ABC,我们习惯把它们对应定时器PWM硬件通道的CH1、CH2、CH3。

        T0时间过后,CH1通道就要“冒头”了,所以告诉定时器CH1的是,每个周期开始的时刻,等待T0/2的时间你就要冒头开始作用了。

        在100的下一个开关状态是110,在这个变化中,要改变的是第二个通道,那么我们要告诉定时器CH2的是,每个周期开始的时刻,等待T0/2时间,轮到100先作用Tx时间的一半,再轮到CH2冒头开始作用Ty时间的一半。所以有以下:

        Ta=T0 + T4/2

        在110的下一个开关状态是111,在这个变化中,要改变的是第三个通道,那么我们要告诉定时器CH3的是,等待T0/2时间,轮到CH1先作用Tx的时间的一半,再轮到CH2冒头开始作用Ty时间的一半,轮到CH3冒头来配合输出111去不作用电机了。所以有以下:

        Tb=Ta + T6/2

        对于全部扇区的规则如下:

扇区号
1T0=(Ts-T4-T6)/2Ta=T0 + T4/2Tb=Ta + T6/2
2T0=(Ts-T2-T6)/2Ta=T0 + T2/2Tb=Ta + T6/2
3T0=(Ts-T2-T3)/2Ta=T0 + T2/2Tb=Ta + T3/2
4T0=(Ts-T1-T3)/2Ta=T0 + T1/2Tb=Ta + T3/2
5T0=(Ts-T1-T5)/2Ta=T0 + T1/2Tb=Ta + T5/2
6T0=(Ts-T4-T5)/2Ta=T0 + T4/2Tb=Ta + T5/2

      对于MOS的编码100代表A通道导通,010代表B通道导通,001代表C通道导通。我们可以看到,PWM的CH1是影响产生100的,PWM的CH2是影响产生010的,PWM的CH3是影响产生001的。在对应不同扇区的时候,先作用的矢量是不同的,虽然规则都是从小到大。那么我们通知到定时器CH1、CH2、CH3的时间也不一样。举个例子,需要控制001的矢量输出,那么在000的下一个变化就是001,这时候,我们等到T0/2时间后,第一个控制的定时器通道就是CH3。对此我也列了一个表格。

扇区号影响产生4影响产生2影响产生1
1PWM_CH1=T0PWM_CH2=TaPWM_CH3=Tb
2PWM_CH1=TaPWM_CH2=T0PWM_CH3=Tb
3PWM_CH1=TbPWM_CH2=T0PWM_CH3=Ta
4PWM_CH1=TbPWM_CH2=TaPWM_CH3=T0
5PWM_CH1=TaPWM_CH2=TbPWM_CH3=T0
6PWM_CH1=T0PWM_CH2=TbPWM_CH3=Ta

        上面这个表格用文字来描述就是下面这个表格。      

区号
1先产生4再产生2变6再产生1变7
2先产生2再产生4变6再产生1变7
3先产生2再产生1变3再产生4变7
4先产生1再产生2变3再产生4变7
5先产生1再产生4变5再产生2变7
6先产生4再产生1变5再产生2变7

总结

       到这里关于SVPWM的三部曲就走完了,我试过开环角度的代码是能产生很漂亮的马鞍波的。关于一开始的图片里面有2个T0/4 有两个T7/4,其实它们有个前提,那就是T0=T7都是指MOS不作用的时间,那总的不作用时间不就是T0/4+T0/4+T0/4+T0/4就是一个完整的T0。

       

        继续欢迎大家留言评论,沟通探讨,指出文章的不足。

小弟感谢大家的关注!

      (利他之心,原创分享)

行讨论。

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

相关文章:

  • [ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
  • Sa-Token完全学习指南
  • npm 包 scheduler 介绍
  • C++STL-vector
  • 股票数据源对接技术指南:印度尼西亚、印度、韩国
  • 静态路由实验以及核心原理
  • ubuntu24.04安装NFS网络文件系统/ARM开发板NFS挂载
  • 香港风水(原生)林地的逻辑分类器
  • 香港站群服务器价格怎么样?
  • Android UI 组件系列(四):EditText 使用详解与输入限制
  • LabVIEW-GPRS 远程土壤监测
  • Unity开发如何解决iOS闪退问题
  • kotlin中的冷流和热流
  • 5 种备份和恢复安卓短信的方法
  • 理解STM32F103的中断优先级分组
  • C#,js如何对网页超文本内容按行拆分,选择第A-B个字符返回HTM?
  • day55 序列预测任务介绍
  • React Native安卓刘海屏适配终极方案:仅需修改 AndroidManifest.xml!
  • 鸿蒙分布式开发实战指南:让设备协同像操作本地一样简单
  • Jmeter的JDBC数据库连接
  • 基于springboot的非遗传承宣传平台
  • 【Mac开发】Mac 应用 Archive 成功后无法打开?
  • 苹果App上架流程:不用Mac也可以上架的方法
  • WPF之命令
  • 【论文阅读】Improving the Diffusability of Autoencoders
  • gloo 多卡训练
  • curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
  • 开发中如何自定义线程池
  • [1-01-01].第50节:泛型 - 泛型的使用
  • 深入了解linux系统—— System V之消息队列和信号量