电机专用SVPWM算法实现

article/2025/10/18 18:40:36

SH33F2811包含三相电机的空间矢量脉宽调制(Space Vector Pulse Width Modulation,SVPWM)算法,对应于交流感应电机或永磁同步电机中的三相电压源逆变器的功率器件的一种特殊的开关触发顺序和脉宽大小的组合。这种开关触发顺序和组合将在定子线圈中产生三相互差120°电角度的正弦波电流。

目录

SVPWM算法原理

SVPWM算法实现过程

五段式SVPWM算法

七段式SVPWM算法

Sign算法

饱和算法


SVPWM算法原理

考虑如下图所示的逆变器,

7d38bf28cf04438b9db2b4d3030fed5f.png

 以直流电源的负极作为参考点来研究a相的重点电压Va,该电压由一系列的开关组合Sa,即下表种所包含晶体管T1和T4的开关组合所决定的。

T1

T4

Sa

Va

导通

关断

1

Vdc

关断

导通

0

0

对应于b相与c相桥臂的开关状态Sb及Sc可以通过类似的方式推导获得。Sa、Sb及Sc总共8种开关状态,下表列举了这8种开关状态以及推导出的线电压、相电压。

Sa

Sb

Sc

矢量

Uab

Ubc

Uca

Uan

Ubn

Ucn

0

0

0

U0

0

0

0

0

0

0

1

0

0

U4

Udc

0

-Udc

2/3Udc

-1/3Udc

-1/3Udc

1

1

0

U6

0

Udc

-Udc

1/3Udc

1/3Udc

-2/3Udc

0

1

0

U2

-Udc

Udc

0

-1/3Udc

2/3Udc

-1/3Udc

0

1

1

U3

-Udc

0

Udc

-2/3Udc

1/3Udc

1/3Udc

0

0

1

U1

0

-Udc

Udc

-1/3Udc

-1/3Udc

2/3Udc

1

0

1

U5

Udc

-Udc

0

1/3Udc

-2/3Udc

1/3Udc

1

1

1

U7

0

0

0

0

0

0

 

根据表中八个基本矢量的情况,画出八个基本电压空间矢量的大小和位置(以a相和α轴方向重合为例),电压空间矢量图如下:

f6f3b7e5ddcf4682ac996cc954e570dc.png

 图1 电压空间矢量图

其中6个非零矢量的幅值相同(在两轴静止坐标系下,模长为2Udc/3;在三相静止坐标系下,模长为Udc),相邻的矢量相差60°,两个零矢量幅值为零,位于中心。

在SH33F2811的空间矢量脉宽调制算法中,是以U4(001)为α轴方向,扇区计数从0开始,如下图所示:

39cee9cb5ea44a1ca212771d2361ea5c.png

 图2 SH33F2811电压空间矢量图

空间矢量调制的过程允许通过两个相邻矢量各分量的和来表示任何空间电压矢量。在下图中,UOUT是期望的空间电压矢量。该矢量位于U60和U0之间的区间内。如果在给定PWM周期T期间,U0的输出时间为T1/T而U60的输出时间为T2/T,则整个周期的平均电压值为UOUT。

00dd92032aec43169d324ea82a34624d.png

 图3 平均空间矢量调制

T0表示绕组上无有效电压的时间;即施加了无效矢量。在六个区间的每个区间中,一个轴与该区间正好相反,而其它两个轴对称形成该区间的边界。沿着这两个边界轴的矢量分量分别为T1和T2。

SVPWM算法实现过程

首先将静止2轴α-β坐标系变换到定义的静止3轴参考坐标系,需要两个静止坐标系的Uα和Uβ输入。如下所示:

ae6f3797458a435084faa0d5728de8cd.png

e96df4065ac548c0be7bcbd455571d1d.png

图4 Vr1\ Vr2\ Vr3关系图

 同时定义三个变量a,b,c,如果Vr1>0,则a=1,否则a=0;如果Vr2>0,则b=1,否则b=0;如果Vr3>0,则c=1,否则c=0。再定义一个变量sector,sector = a*1+b*2+c*4,根据sector不同,把空间分为6个扇区。

003016a9177a4d719016d5a2a99a6cad.png

图5 sector定义关系图

另外定义:

fe26ad2a9734437a9aef8b5d970ecb7e.png

即,X为Vr1方向,Y为Vr3反方向,Z为Vr2反方向。那么,对于不同扇区T1,T2值,有如下对应关系:

Sector

1

2

3

4

5

6

T1

Z

Y

-Z

-X

X

-Y

T2

Y

-X

X

Z

-Y

-Z

在PWM周期T中,矢量T1的输出时间为T1/T,而矢量T2的输出时间为T2/T,在剩余时间内输出无效矢量。无效矢量可以由全部为零组成,为五段式SVPWM波形。也可以由中间为全1两边为全零组成,为七段式SVPWM波形。

五段式SVPWM算法

下图为五段式SVPWM波形, PWM信号配置为输出中心对齐,这种配置方法在每个周期内可产生1个线间脉冲。

1aa5a88b00b147818e44e4b3583a3432.png

 图6 五段式周期T内的PWM

能够实现从Ualpha,Ubeta直接计算出Ta,Tb,Tc三相占空比,输入输出的数据格式可以设定,算法流程图如下:

26efee74f3fe4dfe95623970c17a8f2e.png

 图7 五段式SVPWM算法流程图

注1:Ualpha、Ubeta、T1、T2、Ta、Tb和Tc为有符号32位数,IQN和Sector为无符号8位数。

注2:乘法为IQN格式乘法。

注3:SvpwmSector为一个数组,内容为SvpwmSector[]={0,1,5,0,3,2,4,0}。

注4:图7中标红的Sector对应为图2中的扇区0-5,其他未标红的Sector对应为图5中的Sector1-6.

七段式SVPWM算法

下图为七段式SVPWM波形, PWM信号配置为输出中心对齐,这种配置方法在每个周期内可产生两个线间脉冲,有效开关频率加倍,纹波电流减小,同时并未增加功率器件的开关损耗。

54e5f64bc7b941b7b6c860d6cb4d78cb.png

 图8 七段式SVPWM算法流程图

能够实现从Ualpha,Ubeta直接计算出Ta,Tb,Tc三相占空比,输入输出的数据格式可以设定,算法流程图如下:

be5525c590c0404ba875d6484b409e6b.png

 图9 七段式SVPWM算法流程图

注1:Ualpha、Ubeta、T1、T2、Ta、Tb和Tc为有符号32位数,IQN和Sector为无符号8位数。

注2:乘法为IQN格式乘法。

注3:SvpwmSector为一个数组,内容为SvpwmSector[]={0,1,5,0,3,2,4,0}。

注4:图9中标红的Sector对应为图2中的扇区0-5,其他未标红的Sector对应为图5中的Sector1-6.

Sign算法

图7图9中的sign为符号算法,详细的算法如下:

例如a = sign(x):

if (x > 0)
a = 1;
else
a = 0;

饱和算法

不管五段式还是七段式,都可能存在计算溢出情况,当Ta/Tb/Tc任何一个计算结果超出范围,则都会置起溢出标志位OVER@SVIQN。为了防止计算结果溢出,增加了对Ta,Tb和Tc的饱和处理,通过寄存器SATEN@SVIQN来选择是否使能饱和,详细算法如下:

if(Tx < 0)
{
OVER@SVIQN = 1;
if (1 == SATEN@SVIQN)
{
Tx = 0;
}
}
else if(Tx > IQN(1))
{
OVER@SVIQN = 1;
if(1 == SATEN@SVIQN)
{
Tx = IQN(1);
}
}

注1:x=a,b,c

注2:整个SVPWM硬件计算时间为3个AHB CLK。

注3:溢出标志位的值在每次计算时都更新。

 

 


http://chatgpt.dhexx.cn/article/oBcw0tHk.shtml

相关文章

小猫爪:PMSM之FOC控制04-SVPWM

小猫爪&#xff1a;PMSM之FOC控制04-SVPWM 1 SVPWM的引出2 SVPWM的原理3 SVPWM的推导4 仿真END 1 SVPWM的引出 在Park变换那一节&#xff0c;说到了可以通过控制Eq(Iq)和Ed(Id)来控制电机。而电流我们并不能直接控制&#xff0c;只能简介通过控制输出电压来控制电流&#xff0c…

SVPWM matlab建模

此为SVPWM算法的SIMULINK建模过程&#xff0c;没有具体的公式推导&#xff08;太多了&#xff0c;难打字&#xff09; abc为matlab自带的三相正弦波发生器&#xff0c;需要调整参数。 首先进行坐标变换 第一个fcn里的代码 function y fcn(a,b,c) y (2/3)*( a-0.5*b-0.5*c);%…

SVPWM算法的推导

博文默认采用恒幅值变换&#xff0c;若是用到恒功率变换的时候&#xff0c;会特别说明。推导过程其实有很多种&#xff0c;云龙混杂&#xff0c;看着看着自己就晕了&#xff0c;所以最好找一种自己好理解的。有关坐标变换的理论&#xff0c;参考坐标变化这篇博客 1.三相空间电…

svpwm理解

svpwm主要用于逆变器件的开关与导通&#xff0c;使得在电机内部形成圆形磁场。与spwm相比有诸多优点&#xff0c;中小功率的逆变器基本都采用svpwm进行逆变控制。 svpwm目的是在电机内部形成圆形磁场&#xff0c;磁场与电机内部合成电压的关系为正交&#xff0c;即合成电压为磁…

SimpleFOC(八)—— 理论+实践 深度分析SVPWM

目录 说明一、有感FOC控制原理二、SVPWM原理三、SimpleFOC&#xff08;不带电流采样&#xff09;的控制原理&#xff1a;四、SimpleFOC核心代码五、代码实验5.1、实验目的5.2、硬件准备5.3、修改代码 第一阶段5.3.1 打开例程5.3.2 修改代码5.3.3 验证上传5.3.4 电机观测5.3.5 修…

matlab查表svpwm,SVPWM的查表生成方式代码

昨天研究了传统的SVPWM生成方法之后 偶然看到了这个东西: 也就是说 SVPWM的占空比-角度的关系可以用分段函数进行表示 这样就简单多了 基本上通过查cos表+判断能避免浮点数运算 下面素程序www 结果输出到3个txt文件中,修改p的值可以算占空比(相电压)或者线电压... /* * SVPW…

svpwm的matlab模型,SVPWM的matlab仿真实现

在仿真之前您必须安装MATLAB7.0或以上版本&#xff0c;必须确保simpowersysm工具箱已被安装&#xff0c;如果以上要求已经达到&#xff0c;那么就可以执行以下步骤了&#xff1a; 步骤1&#xff1a;打开matlab主界面&#xff0c;然后在command window界面中的“>>”旁边输…

SVPWM细节

SVPWM细节 # 原理 通过六个扇区的六个非零矢量进行矢量合成所需电压&#xff0c;但在合成过程中不可避免地会经过零矢量来合成&#xff0c;从而降低开关频率动作次数。 一般过调制的情况下非零矢量作用时间大于载波周期&#xff0c;所以在此过程中只取有效矢量的作用时间之和。…

SVPWM学习

作者寄语&#xff1a;在公众号&#xff08;浅谈电机控制&#xff09;中以小文章的形式记录自己学习SVPWM的过程。有时候自学未免出现理解错误的地方&#xff0c;所以烦请学友们批评指正。 如果需要SVPWM模型&#xff0c;关注微信公众号&#xff1a;浅谈电机控制。留下邮箱获取…

单相SVPWM

单相SVPWM逆变技术起源于三相电机调速系统中的三相SVPWM技术&#xff0c;在三相SVPWM调制中由旋转的电压矢量得到旋转的磁场&#xff0c;对电压矢量进行控制从而实现电机调速&#xff0c;其实电压矢量控制的实质是一种逆变过程&#xff0c;故单相SVPWM逐渐被研究并应用于逆变电…

SVPWM

接上一篇文章咱们接着讲讲SVPWM&#xff0c;如果对于PWM和SPWM不是很了解的同学可以看我上一篇文章。电机控制是一门很深得学问&#xff0c;由于时间和精力有限&#xff0c;本文章不会讲解特别深入&#xff0c;在此只是抛砖引玉。 SVPWM原理 SVPWM的全称是空间矢量脉宽调制(Sp…

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

SVPWM算法理解&#xff08;一&#xff09;——基本原理 说明1 SVPWM基本原理1.1 引言1.2 三相电量的空间矢量表示1.3 SPWM与SVPWM比较1.4 问题1&#xff1a;2Udc/3还是Udc&#xff1f; 2 SVPWM算法推导2.1 SVPWM的合成原理2.2 问题2&#xff1a;电压利用率1&#xff1f;2.3 SVP…

SVPWM理论部分

SVPWM理论部分 简述1、基本原理2、SVPWM控制2.1 扇区判断&#xff08;根据$\alpha\beta$为方便判断扇区而采取的一种方法&#xff09;2.2 电压空间矢量合成及作用时间2.3 电压空间矢量作用顺序2.3.1 五段式SVPWM2.3.2 七段式SVPWM 总结 简述 SVPWM&#xff0c;即空间矢量调制&…

SVPWM算法原理及详解

SVPWM算法原理及详解 1.概述 SVPWM是近年发展的一种比较新颖的控制方法&#xff0c;是由三相功率逆变器的六个功率开关元件组成的特定开关模式产生的脉宽调制波&#xff0c;能够使输出电流波形尽可能接近于理想的正弦波形。空间电压矢量PWM与传统的正弦PWM不同&#xff0c;它是…

FOC电机控制之SVPWM原理与实现

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、SVPWM原理二、SVPWM实现方法1. 基本矢量电压&#xff1a;2.扇区判断&#xff1a;3. 计算相邻两个基本矢量电压的作用时间4 .三路PWM占空比计算 算法流程ste…

SVPWM分析、各个扇区详细计算以及Matlab仿真

SVPWM分析以及各个扇区详细计算以及Matlab仿真 说明目的两电平逆变器拓扑空间矢量扇区判断扇区内如何发波&#xff1f;矢量作用时间计算矢量切换时间的计算Simulink仿真/基于Matlab-R2014a版本 说明 第一次发文章&#xff0c;不太会用Markdown&#xff0c;word编辑的公式复制过…

概率统计Python计算:解古典概型问题

假定以 S S S为样本空间的随机试验是一个等概模型&#xff0c;事件 A ⊆ S A\subseteq S A⊆S。若能算得 ∣ S ∣ n |S|n ∣S∣n&#xff0c; ∣ A ∣ m |A|m ∣A∣m&#xff0c;我们知道 P ( A ) m / n P(A)m/n P(A)m/n。我们把这样的计算方法定义成下列的Python函数。 fr…

古典概型

【例1】一部四册的文集按任意次序放到书架上去&#xff0c;问各册自右向左或自左向右恰成 1&#xff0c;2&#xff0c;3&#xff0c;4 的顺序&#xff08;用 表示&#xff09;的概率是多少&#xff1f; 解 此随机试验的结果是四本书在书架上的一种放法&#xff0c;而每一…

概率论3——古典概型与二项分布

排列组合 排列组合高中应该就学过&#xff0c;包括两个原理&#xff08;加法和乘法原理&#xff09;&#xff0c;以及排列和组合 两个原理 加法原理 比如完成某件事有3类途径&#xff0c;在1类中有4种方法&#xff0c;第2类中有2种方法&#xff0c;第3类中有3种方法&#xf…