最近在做电机foc矢量控制的仿真,用到了simulink的自带的svpwm模块,发现模块输出和自己搭的SVPWM模型的输出结果不一样
simulink自带的pwm模块,可以输出pwm方波,svpwm马鞍波,还有几种DPWM波,
输入为Vą和Vb,由Vd和Vq经过park变换而来,这个就不多说了。
后来发现,有两个原因导致输出不一样
一,自带的svpwm模块的输入Vą和Vb需要经过标幺化处理,具体公式为
Vą ∗ = Vą ×sqrt(3)/udc(母线电压)
Vb ∗ = Vb ×sqrt(3)/udc(母线电压
二,silmulink中电机默认的坐标系,和我们一般在书上学的坐标系不一样(有的电机可以选择坐标系,有的不行,这个要注意下),导致算出来的结果有差异。
用两种方法搭出来的模型如下
标幺化公式,
由于我的Va和Vb已经是标幺化的值了,所以搭建的SVPWM模型要用公式反算回来,得到的就是真实值,
母线电源24V
开关频率20K
将占空比补偿到0-1之间
翻转波形
simulink自带的PWM模块和后边的补偿,将模块输出 的占空比补偿到0-1之间,
补偿如上
最后的仿真结果
局部放大一下