最近的科研项目需要使用到SVPWM算法,网上相关的原理介绍很多。对于纯应用的需求来说,或许有些内容上的冗余。
本文的目的就是简要并且明确的给出具体的计算步骤,可以帮助快速上手。同时利用MATLAB进行了简单算法验证。
2022年10月20日更新:由于之前的代码没有考虑电压的量化问题,今天重新修改进行了补充~
目录
1 算法流程
算法部分,结合网上博主的文章主要分为四个部分:扇区判断、基本矢量作用时间长度计算、逆变器开关接环时间计算、三角波改变开关状态。部分截图直接摘自了博主的@玻璃伞的图片,在此表示感谢。
这一部分的内容有非常多的细节,因此我将分步骤进行介绍,这里默认我们已经获得了定子坐标系(α-β坐标系)上的电压值,这将作为SVPWM的已知条件。
SVPWM的主要思想是在高频率的情况下,利用三相逆变器对三相电机电压控制,用数字量调制方法实现任意矢量电压的输出,从而更好地控制电机的运转过程,提高能量的转化效率,具体的算法原理可以看本文的参考文献。
1.1 扇区判断
SVPWM利用逆变器三相桥臂将坐标系分为了六个扇区,利用上下桥臂的不同开关组合有了8种组合形式,对应了图中的8个电压矢量。
在SVPWM运算过程中,因此首先是需要进行扇区的判断,首先利用α-β坐标系下,定义三个变量。

可以将Vref1,Vref2,Vref3分别看作A,B,C三个变量,这三个变量与0的关系就可以得到当前所在的扇区。


这里的N可以利用一个二进制数字进行表示,这样就可以将N的值与所在扇区进行唯一的对应。
1.2 基本矢量作用时间计算
充分利用Uα与Uβ就可以大大简化基本电压矢量作用的时间,参考文献中给出了具体的结论,计算原理是伏秒平衡,可以按照下面的表格直接找到对应扇区需要满足的作用时间。为了让表格更加简洁,首先定义三个变量:

利用上面的变量,可以确定每个扇区逆时针两个矢量,以及两个零矢量的作用时间:

当出现Tfirst+Tsecond>Ts时,需要进行如下的变换:

1.3 逆变器开关切换时间计算
有了持续时间,我们需要进一步确定逆变器开关的切换时间,用下面的图为例子,进行说明:

其中各个变量时间满足下面的表达式:

以及MATLAB仿真验证&spm=1001.2101.3001.5002&articleId=125441988&d=1&t=3&u=7bb8dd38478c449896f6cf7401448e2c)
1万+

被折叠的 条评论
为什么被折叠?



