SVPWM算法理解(一)——基本原理

  • 说明
  • 1 SVPWM基本原理
    • 1.1 引言
    • 1.2 三相电量的空间矢量表示
    • 1.3 SPWM与SVPWM比较
    • 1.4 问题1:2Udc/3还是Udc?
  • 2 SVPWM算法推导
    • 2.1 SVPWM的合成原理
    • 2.2 问题2:电压利用率=1?
    • 2.3 SVPWM的合成方式
  • 参考资料

说明

不久前开始接触永磁同步电机控制,学习过程中参考了很多大佬的文章,一直没有好好的整理一下,导致思路一直很混乱。目前学习到SVPWM这部分,也下定决心结合自己的理解简单写一些东西,希望能让自己的思路更加清晰。前面学过的内容会慢慢补上,欢迎一起讨论,有问题的地方也请大家指正!

第一次发文章,Markdown用的不好,希望大家不要介意。转载请注明出处,谢谢。

1 SVPWM基本原理

1.1 引言

  在正式讲解SVPWM之前,我们首先对PMSM的结构简单剖析一下。一般的三相两极永磁同步电机的物理模型可以简化如图1-1,可以看出PMSM的转子是永磁体,三相定子对称分布,在空间上互差120°,且采用的是Y型接法。这也就构成了PMSM的三相静止坐标系ABC。PMSM的工作原理其实很简单:在定子中产生一个大小恒定的旋转磁场带动转子连续旋转。

  再简单点说,PMSM相当于两块同心磁铁,两块磁铁之间互相吸引,如果你拨动其中一块磁铁绕着中心旋转的话,它也必然会吸引另一块磁铁旋转。现在你拨动的那块磁铁就相当于定子,被吸引的磁铁相当于转子。那么怎么才能让定子实现用手拨动一样的效果呢?答案就是上面所说的旋转磁场,而且为了保证电动机的运动性能平稳,这个磁场的大小应该是恒定的。旋转磁场是通过一个旋转电压矢量产生的,至于如何得到这个旋转电压矢量我们先放一放。

1.2 三相电量的空间矢量表示

  现在假设有三相对称正弦电压(频率相同、幅值相等、相位互差120°)UA(t)、UB(t)、UC(t),表达式如下:

  我们在进行控制的时候需要对三个正弦量分别进行控制。为了减少控制难度,将这三个正弦电压进行合成,合成关系式用式(1-2)表示。可以注意到式(1-2)中引入了一种变换方式,使这三个正弦电压不但在相位上差120°,在空间位置上也相差120°,从而合成了一个空间矢量

  至此,我们就把三相对称正弦电压转化成了一个合成电压空间矢量 Uout,它的运动轨迹可以参考图1-2。

  可以看出,电压空间矢量 Uout是一个旋转电压矢量,以角速度ω逆时针匀速旋转,顶点运动轨迹为一个圆。这意味着对三相正弦对称电压的控制等效于对电压空间矢量 Uout的控制,而且 Uout 的轨迹越接近圆,原三相电压就越接近三相对称正弦波。

  我们再观察一下PMSM的结构示意图,假如在电动机定子的三个绕组中通入三相对称正弦电压,自然而然就能够合成一个旋转电压矢量,前面的问题就迎刃而解了。

  好了,现在给定子绕组通上三相正弦电压可以得到旋转电压矢量。但是我们知道,不管是有刷还是无刷直流电机,通常都是采用直流供电的,要想使转子连续旋转,需要在它们内部(或外部的驱动电路)进行直流转交流的过程。对于有刷直流电机,通过电刷和换向器实现,而对于无刷直流电机则是通过逆变电路实现的。

  现在问题已经很明确了,电动机的三相绕组需要三相正弦电压,但是我们只有一个直流电源(电压设为Udc)以及一个逆变电路。相信大家已经猜到该怎么做了!没错,那就是用PWM技术,通过6路PWM控制三相逆变器6个开关管的通断,来达到直流电源逆变为正弦交流的目的。这方面的资料很多,大家可以自行查阅。

1.3 SPWM与SVPWM比较

  PMSM常用的PWM控制技术有SPWM和SVPWM等。

  正弦脉宽调制(Sinusoidal PWM,SPWM)比较好理解,实现起来简单粗暴,用高频三角波作为载波,把需要输出的三相对称正弦波作为调制波,直接将所需的正弦波等效成一系列幅值相等占空比不等的矩形波。也就是说这一时刻你需要多大的电压,我调一下PWM的占空比等效给你就行了。比如某一时刻需要1.5V的电压,我只有15V的直流电源,那么我让直流电源接通10%的时间,剩下90%的时间都不工作,这样就可以等效成1.5V了!SPWM的调制原理如图1-3所示。

  来看一下对SVPWM的定义:空间矢量脉宽调制(Space Vector PWM,SVPWM),是由三相功率逆变器的六个功率开关元件组成的特定开关模式产生的脉宽调制波,能够使输出电流波形尽可能接近于理想的正弦波形。乍一看好像和SPWM没什么区别,但是两者的控制思想是截然不同的。

  还记得我们刚才所说电压空间矢量 Uout 和三相对称正弦电压之间是等效的吗?SVPWM就是利用了这个思想,不在乎如何让逆变器输出三相对称正弦电压,只需要保证逆变器能够产生运动轨迹接近圆的Uout就行了,反正最后定子绕组上的三相电压还是会等效成一个旋转电压矢量!

  也就是说,SPWM调制是从三相交流电源出发,着重于生成一个可以调压调频的三相对称正弦电源。而SVPWM是将逆变器和电动机看成一个整体,用8个基本电压矢量合成期望的电压空间矢量,建立逆变器功率器件的开关状态(后面会讲到),并依据电机磁链和电压的关系,从而实现对电动机恒磁通变压变频调速。

  SVPWM把逆变器看成一个电压或电流的空间矢量发生器,而不是人们通常理解的三相电压或电流发生器。此时逆变器不仅控制可以电压和电流的幅值角速度,还可以控制角度位置,这三个变量实际上就是组成空间矢量的三要素。

  三相两电平电压型逆变器的结构原理图如图1-4所示,由A、B、C三个桥臂的6个开关器件组成,每个桥臂的两个开关管都有通、断两种状态。这种电压型逆变器有两种工作方式:一种是120°导通方式(两两导通,常用于BLDC的变频调速),在任何时刻都只有不相同的两只主管导通,同一相的两只主管在一个周期内各导通120°;另一种是180°导通方式(三三导通,用于PMSM),任何时刻都只有不相同的两只主管导通,同一相上下两个桥臂的主管交替导通,各自导通半个周期(180°)。

  对于PMSM的180°导通方式,实际应用当中同一桥臂的两个开关管不能同时打开(短路)或者关闭,因此每个桥臂都存在两种状态。

  定义开关量SaSbSc表示三个桥臂的开关状态,用1表示上管通下管断,0表示下管通上管断。为了简化表示,定义如下的开关函数Sx(x=a,b,c):

  根据排列组合,开关函数共有23=8种组合,这8种组合被称为基本电压空间矢量。其中非零矢量有 Ul(001)、U2(010)、U3(011)、U4(100)、U5(101)、U6(110)六种,零矢量有 U0(000)、U7(111)两种。以 U4(100)为例进行分析,此时的等效电路如
图1-5。

  图中三个负载电阻都为R,Udc间的负载为:

  从图中电阻的分压情况可以看出各相相电压:

  同理可以计算出其他组合情况的电压值(线电压等于对应的两个相电压之差),将他们列表如下:

  8种组合的基本电压空间矢量的大小和位置可以在复平面中表示出来,也就是图1-6所示的电压空间矢量图。它们将复平面分成了6个部分,每一个部分称为一个扇区

1.4 问题1:2Udc/3还是Udc?

  曾经无意间看到的一个问题困扰了我很久:6个非零基本矢量的幅值|Uout|(即表中最后一列)是2Udc/3还是Udc?大部分教材或者文章里给出的结论都是|Uout|=2Udc/3,但是对此的解释都比较模糊。

  从式(1-2)可以看出,合成电压矢量 Uout的幅值就是相电压幅值 Um的3/2倍。再根据前面对相电压的推导式(1-4),不管开关管再怎么组合,相电压的幅值最大只能取到2Udc/3。简单整理一下:

  把②带入①就能得出合成电压矢量 Uout的幅值——Udc。6个非零矢量显然是包括在合成电压矢量 Uout中的,也就是说6个非零矢量的幅值|Uout|=Udc

  这里的结果和教材上不一致了,其中牵扯到的原因,感兴趣的朋友可以参考下面的文章。

1.SVPWM调制中的6个非零基础电压矢量的幅值到底是Udc还是2/3Udc ? 电压利用率为什么是1?clark变换的系数?
2.空间矢量概念的几点理解

2 SVPWM算法推导

2.1 SVPWM的合成原理

  前面讲到了8个基本电压矢量对应的扇区图,那么如何用这8个基本电压矢量合成 Uout

  假设需要合成的电压空间矢量 Uout的旋转角速度ω=2πf(即旋转磁场角速度),则旋转一周的周期为T=1/f。若开关管的频率为fs(载波频率),两者间的频率比R=fs/f,即 Uout旋转一周被均分成了R份,每两份之间的增量角为γ=2π/R。也就是说 Uout的运动轨迹并不是一个标准的圆,而是用一个R边形来拟合圆,这也就代表了磁场旋转一圈需要进行R次运算。因此载波频率越大,转速越小,Uout就越接近圆形,反之就越接近多边形。但是载波频率过高的话会导致开关管损耗较大,一般取5~10kHz。

  SVPWM算法的理论基础是平均值等效原理,即在一个开关周期内通过对基本电压矢量加以组合,使其平均值与给定电压矢量相等。也就是说在每一个扇区中,选择相邻的两个非零矢量以及零矢量,根据伏秒平衡可以合成任意的电压空间矢量 Uout。以第一扇区为例,可以得到如下表达式:

  其中,Ts为开关周期(也就是后面要提到的载波周期),T4T6T0分别为非零矢量 U4U6以及零矢量 U0U7的作用时间,如图2-1所示。

  根据正弦定理,

  其中θ为合成矢量与主矢量之间的夹角。

  因为|U4|=|U6|=2Udc/3,带入上式可得:

  定义SVPWM的调制比

  讲到这里,再简单提一下SVPWM的电压利用率。

2.2 问题2:电压利用率=1?

  我们从式(1-4)和表1-1中分析出了相电压的幅值是2Udc/3,根据三相电路有关知识,线电压的幅值应该是相电压的√3倍,即 2√3Udc/3。但是问题来了,我们从表1-1中得出的线电压幅值却是Udc!对于这个问题的解释,仍然可以参考这位大佬的文章:

SVPWM调制中的6个非零基础电压矢量的幅值到底是Udc还是2/3Udc ? 电压利用率为什么是1?clark变换的系数?

  好了,现在我们认为线电压的幅值确实是Udc,那么电压利用率也可以轻易计算出:

  也就是所谓的SVPWM的电压利用率是100%!再来看看SPWM调制,相电压幅值最高为Udc/2,线电压幅值为√3Udc/2 ,电压利用率为0.866(大佬文章里有),也就是说SVPWM的母线电压利用率高过SPWM 15.4%。

2.3 SVPWM的合成方式

  经过上面的推导,用 U4U6U0U7合成了 Uout,并且可以通过计算得出非零矢量和零矢量的作用时间,现在需要根据这些计算结果产生实际的脉宽调制波形。在SVPWM的算法合成方式中,由于基本电压矢量的切换是通过控制开关管实现的,而开关管切换过程中会产生热量,也就是损耗。为了最大限度地减少开关损耗,可以在切换过程中将非零矢量与零矢量搭配。适当选择零矢量,可最大限度地减少开关次数,尽可能避免在负载电流较大的时刻的开关动作,最大限度地减少开关损耗。SVPWM算法的合成方式主要有七段式五段式两种,这里直接借鉴一下现有的资料,只对七段式简单说明一下(能力有限,后续有时间再补上=.=)。

  七段式SVPWM算法的基本矢量分配原则是:在每次开关状态转换时,只改变其中一相的开关状态,并且对零矢量在时间上进行平均分配,以便产生的PWM对称,从而有效地降低PWM的谐波分量。

  可以发现当 U4(100)切换至 U0(000)时,只需改变A相上下一对切换开关,若由 U4(100)切换至 U7(111)则需改变B、C相上下两对切换开关,增加了一倍的切换损失。因此要改变非零电压矢量 U4(100)、U2(010)、U1(001)的大小,需配合零电压矢量 U0(000),而要改变 U6(110)、U3(011)、U5(100),需要配合 U7(111)。这样通过在不同区间内安排不同的开关切换顺序,就可以获得对称的输出波形,各个扇区中开关切换顺序如表2-1所示。

  以第Ⅰ扇区为例,在一个开关周期Ts内产生的三相波调制波形在表中第三列已经列出来了,图中基本矢量出现的先后顺序为0-4-6-7-7-6-4-0(U0U4U6U7U7U6U4U0),各电压向量的三相波形则与表中的开关切换顺序相对应。

  每经过一个载波周期TsUout的角度增加γ,利用式(2-4)重新计算新的T0T4T6以及T7值,可以得到新的三相波调制波形。这样每一个载波周期Ts就会合成一个新的矢量 Uout,随着θ的逐渐增大,Uout将依次进入各个扇区。在电压矢量旋转一周后,就会产生R个合成矢量。

  好了,到目前为止SVPWM算法的原理基本上就是这些了,后面会慢慢更新算法的具体实现方式、Simulink仿真和控制程序。

参考资料

1.SVPWM算法原理及详解
2.电机控制要点解疑:SPWM,SVPWM和矢量控制
3.SVPWM调制中的6个非零基础电压矢量的幅值到底是Udc还是2/3Udc ? 电压利用率为什么是1?clark变换的系数?
4.空间矢量概念的几点理解
5.SVPWM的原理及法则推导和控制算法详解第五修改优化版
6.袁雷, 胡冰新, 魏克银, 等. 现代永磁同步电机控制原理及MATLAB仿真[M]. 北京航空航天大学出版社, 2016.
7.袁登科, 徐延东, 李秀涛. 永磁同步电动机变频调速系统及其控制[M]. 机械工业出版社, 2015.

备注:文章部分内容根据参考文献进行整理,如有侵权,请联系我删除。

SVPWM算法理解(一)——基本原理相关推荐

  1. SVPWM算法理解(二)——关于非零基本矢量幅值和线电压幅值的解释

    SVPWM算法理解(二)--关于非零基本矢量幅值和线电压幅值的解释 1 引言 2 非零基本矢量的幅值 3 线电压的幅值 4 电压空间矢量图中的图形含义 5 如何保证逆变器的输出电压不失真 1 引言   ...

  2. 【电机控制算法】SVPWM算法的应用(基于Simulink与STM32外设场景的仿真)

    文章目录 前言 一.扇区判断 二.各扇区基础矢量作用时间的计算 1.若处于扇区I 2.若处于扇区II 3.若处于扇区III 4.若处于扇区IV 5.若处于扇区V 6.若处于扇区VI 7.In a wo ...

  3. 电机学习笔记3——SVPWM算法的simulink模型搭建

    虽然simulink里自带了两电平SVPWM模块,但是为了熟悉一下SVPWM算法原理,还是决定自己搭建一个. 两电平的 S V P W M SVPWM SVPWM算法按以下3个步骤来实现: 判断参考电 ...

  4. 三相H桥SVPWM算法介绍

    我见过有SVPWM有用于单相H桥逆变的.三电平逆变器.多电平逆变器的.这里着重点用于三相H桥逆变器.他们不同之处在于,开关状态越多,空间矢量图越大. 1 算法介绍 下图是三相H逆变器拓扑结构 以下是直 ...

  5. Marching Cubes算法理解

    背景知识 Marching Cubes算法是三维离散数据场中提取等值面的经典算法,其主要应用于医学领域的可视化场景,例如CT扫描和MRI扫描的3D重建等. 等值面 空间中所有具有某个相同值的点的集合, ...

  6. Simulink仿真---SVPWM算法

    一.理论 SVPWM算法的具体讲解在这里:https://blog.csdn.net/qlexcel/article/details/74787619 1.判断扇区 根据下面3个式子:     再定义 ...

  7. 【SVPWM】SVPWM算法推导及其Simulink仿真(一)

    七段式 SVPWM 关键公式 前言 SVPWM生成流程 判断扇区 计算占空比 计算每个扇区中基本矢量的持续时间 计算三路占空比 前言 有关原理部分请参照 SVPWM算法原理及详解 和 SVPWM的原理 ...

  8. 带你理解交换机基本原理和配置

    带你理解交换机基本原理和配置 1. 交换机的定位 交换机在TCP/IP五层模型中属于数据链路层 主要是生成和传输数据帧 在网络中相邻节点之间,实现可靠的数据通信,并且控制传输速率. 2. 以太网(MA ...

  9. 电机专用SVPWM算法实现

    SH33F2811包含三相电机的空间矢量脉宽调制(Space Vector Pulse Width Modulation,SVPWM)算法,对应于交流感应电机或永磁同步电机中的三相电压源逆变器的功率器 ...

  10. FP-Growth算法理解

    FP-Growth算法理解 基本概念 FP-Growth 全称: Frequent Pattern Growth--频繁模式增长 在整个算法执行过程中,只需要遍历数据集2次,就可完成频繁模式的发现 F ...

最新文章

  1. VS2017 Pro未能找到路径“……\bin\roslyn\csc.exe”的解决方案
  2. Java CPU占用率高分析
  3. CSS3中弹性盒布局的最新版
  4. 763. 划分字母区间009(贪心算法+思路+详解+图示)
  5. SpringBoot多数据源(主从数据源)配置
  6. pad_sequences序列预处理
  7. Powershell实例小结(服务管理)
  8. php卡盟专用主机,php卡盟
  9. 西瓜书+实战+吴恩达机器学习(十九)特征选择(过滤式选择、包裹式选择)
  10. 圆方树(bzoj 2125: 最短路)
  11. springboot源码 红色J_通达信精准指标,精确箱体——(主图 源码)介绍
  12. python外包凹多边形生成_用Opencv python裁剪图像中的凹多边形
  13. wps指定路径不存在怎么办_wps临时目录不存在提示该如何解决?
  14. PASCAL VOC数据集训练集、验证集、测试集的划分和提取
  15. vscode json文件编辑工具
  16. Laya.TextInput组件中禁用后改变输入框背景色和文字颜色
  17. 《管理学》第九章 沟通
  18. TTMS剧院票务管理系统(xupt)
  19. CTF网络安全大赛学习笔记1010
  20. 计算格林函数的Lanczos算法

热门文章

  1. 打印机服务器没有响应 请检查设置,打印机服务无法启动的解决办法
  2. 湖北工业大学计算机导论考试试题,湖北工业大学计算机二级考试时间
  3. 模拟电子技术基础:基本放大电路
  4. vb.net使用DirectX入门知识
  5. 中美线径对照表_美标线径与国标对照及导线介绍
  6. access tempvars 宏_Access数据库实用教程(第2版)第7章宏.ppt
  7. Android Jetpack组件之App Startup,源码+原理+手写框架
  8. Java Web程序设计教程(一)JSP+Servlet
  9. 第22课: JSP语句 switch判断语句 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
  10. QQ输入法 for iPhone2.3