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

(电机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.xdnf.cn/news/14899.html

相关文章:

  • 【AI智能体】智能音视频-硬件设备基于 WebSocket 实现语音交互
  • 【计算机组成原理】-CPU章节学习篇—笔记随笔
  • study_WebView介绍
  • JVM 基础 - 类字节码详解
  • Spring Boot 多数据源切换:AbstractRoutingDataSource
  • 精益管理与数字化转型的融合:中小制造企业降本增效的双重引擎
  • HTML+JS+CSS制作一个数独游戏
  • go go go 出发咯 - go web开发入门系列(一) helloworld
  • 【OceanBase诊断调优】—— 执行计划显示分区 PARTITIONS[P0SP9] 如何查询是哪个分区?
  • 8、保存应用数据
  • 基于Docker Compose部署Traccar容器与主机MySQL的完整指南
  • Xilinx Vivado开发环境快速导出hdf文件(bat批处理)
  • 独立开发A/B测试实用教程
  • 从问题出发看Spring的对象创建与管理
  • 人工智能-基础篇-23-智能体Agent到底是什么?怎么理解?(智能体=看+想+做)
  • 【docker】-1 docker简介
  • 10.6 ChatGLM3私有数据微调实战:24小时打造高精度模型,显存直降60%
  • 七牛云Java开发面试题及参考答案(60道面试题汇总)
  • Swift 解 LeetCode 320:一行单词有多少种缩写可能?用回溯找全解
  • 初识cdp协议(一)
  • 【Mac 从 0 到 1 保姆级配置教程 19】- 英语学习篇-我的英语工作流分享(AI 辅助学习)
  • APM与ChibiOS系统
  • Ubunt20.04搭建GitLab服务器,并借助cpolar实现公网访问
  • React-useReducer-useMemo
  • LabVIEW与FPGA超声探伤
  • 软考(软件设计师)存储管理—虚拟存储器管理,页面置换算法
  • Docker 稳定运行与存储优化全攻略(含可视化指南)
  • verilog中timescale指令的使用
  • Web Worker:让前端飞起来的隐形引擎
  • 物联网技术的关键技术与区块链发展趋势的深度融合分析