这里利用MATLAB FUNCTION搭建SVPWM模块
%============占空比计算===========
switch (sector)
case 1
Tcmp1=tb;
Tcmp2=ta;
Tcmp3=tc;
case 2
Tcmp1=ta;
Tcmp2=tc;
Tcmp3=tb;
case 3
Tcmp1=ta;
Tcmp2=tb;
Tcmp3=tc;
case 4
Tcmp1=tc;
Tcmp2=tb;
Tcmp3=ta;
case 5
Tcmp1=tc;
Tcmp2=ta;
Tcmp3=tb;
case 6
Tcmp1=tb;
Tcmp2=tc;
Tcmp3=ta;
end
生成SVPWM模块
经过与三角波比较生成六路互补的PWM波
比较输出模块搭建如下:
因为是与三角波比较,三角波是对称的,所以三角波最大比较值为Tpwm/2,10Khz对应的pwm周期是0.0001s,三角波参数设置如下:
采样时间和仿真步长均设置成1e-6
这里单独验证SVPWM模块,未加入闭环控制,theta角给定是0-0.1s,角度变化0-2*pi,所以最后电机的速度会稳定在一个值。
**整体框图如下
仿真结果验证
先看看三相电流波形Ia,Ib,Ic
近似与相位相差120°的正弦波
接着在看看电机速度波形
符合咱们的预期,给定的theta角在一个周期内是均匀变化的,所以最后速度会近似变为匀速
再看看霍尔编码器的信号
再看看SVPWM的输出
这里插入一个问题,为什么是马鞍波呢,产生的原因是什么?
理解1:就拿结点N举例,因为UAN,UBN,UCN的变化规律与结点N类似,
为什么呢?
我的理解是这样的,相电压一直在Udc/3到2Udc/3之间来回变,就好比一个三角波和正弦波的叠加,然后形成了马鞍波,如果系数一直是2/3或者1/3那么还是正弦波,不会出现马鞍波。
理解2:SVPWM调制波含有三次谐波分量,马鞍波就是有基波(正弦波)+三次谐波分量(零矢量)合成的,而某些SPWM变频器可以通过相电压注入三次谐波的方法等效成SVPWM调制器
扇区信号
可以观察到扇区变化为"1->5->4->6->2->3"刚好对应电机旋转一周,符合预期