当前位置: 首页 > 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.dtcms.com/a/270315.html

相关文章:

  • 【6G新技术探索】A2A协议介绍
  • 数据出海的隐形冰山:企业如何避开跨境传输的“合规漩涡”?
  • BM10 两个链表的第一个公共结点
  • main(int argc,char **agrv)的含义
  • Kubernetes配置管理
  • Vue3组合式API应用:状态共享与逻辑复用最佳实践
  • 说说SpringBoot常用的注解?
  • [Datawhale AI夏令营]大模型技术-基于带货视频评论的用户洞察挑战赛上分分享
  • React Native 一些API详解
  • 【ElasticSearch实用篇-02】基本增删改查
  • LoRaWAN 有几种入网方式?
  • 4. 那在详细说一下 http 2.0 的特点
  • WinUI3入门16:Order自定义排序
  • ACE-Step:AI音乐生成基础模型
  • 代码详细注释:基于log.h的自定义日志库实现
  • 探索下一代云存储技术:对象存储、文件存储与块存储的区别与选择
  • Splunk练习 Boss of the SOC V1
  • 短视频矩阵系统的崛起:批量发布功能与多平台矩阵的未来
  • LeetCode 21. 合并两个有序链表
  • C#Halcon从零开发_Day18_OCR识别
  • 4. isaac sim4.2 教程-Core API-Hello robot
  • 【计算机组成原理】-CPU章节学习篇—笔记随笔
  • Linux 第一个系统程序 - 进度条
  • (C++)list列表相关基础用法(C++教程)(STL库基础教程)
  • 跨越NLP的三重曲线:从词法到叙事的进化之路
  • 使用python的 FastApi框架开发图书管理系统-前后端分离项目分享
  • huggingface笔记:文本生成Text generation
  • EXCEL(带图)转html
  • 基于LiteOS与SLE的多任务无线控制器项目实战
  • 深圳凭物联网软件开发构建智慧‘城市大脑‘