打印
[G32R]

基于零序注入SVPWM方案在R501芯片上的嵌入式开发实现说明

[复制链接]
27|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zyz0926|  楼主 | 2025-4-30 16:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zyz0926 于 2025-4-30 16:21 编辑

#技术资源# #申请原创#
1.原理介绍
关于CSVPWM(零序注入,carrier-based,ZSV)与经典的SVPWM(空间矢量,Vecter-Space-based)的等效性问题,具体可以参考文献《Relationship Between Space-Vector Modulation and Three-Phase Carrier-Based PWM: A Comprehensive Analysis》。
其核心思想是通过动态计算三相调制波的最大值和最小值,生成一个零序分量 Vzero,使得修正后的调制波在载波比较时能够最大化利用直流母线电压,同时保持线电压不变。
关键公式:
file:///C:/Users/apex/AppData/Local/Temp/ksohtml21932/wps2.jpg
其中Va,Vb,Vc 为原始三相调制波;Vzero是注入的零序分量,使得修正后的调制
波 Vx_new=Vx+Vzero尽可能对称分布。

图1 CSVPWM工作原理图
其原理图如上,电流环PI调节器得到d-q轴的参考电压ud_ref和uq_ref之后,通过坐标变换直接得到静止三相坐标ABC下的参考电压ua,ub,uc;接着按照上述计算公式计算零序分量Vzero,就可以获得马鞍波波形输入到PWM模块,来获得对应的三相占空比输出的PWM波形。

2.实现过程
    用户需根据自己程序内的基于空间矢量控制实现的SVPWM函数,具体计算出各个扇区下对应的占空比计算结果表达式。注意:不同程序的扇区顺序判断可能存在差异,按照实际程序的逻辑定义来进行计算。
计算结果如下:
                    表1 基于扇区判断下的SVPWM输出结果表


注:表格内的均为ipark变换后输出的电压分量标幺化结果;
完成扇区结果的计算整理表后,需要制定扇区的规则定义,即用户需定义三相电压的输入分量Ua,Ub,Uc,,以保证用户最终实现的基于零序注入的SVPWM的计算结果在各个扇区下,也是跟空间矢量的计算结果保持一致。
其中电压注入基准的计算公式为:

表2 基于扇区判断与电压注入基准的对应关系表


最终得到的三相PWM占空比输出即为:
EPwmA.CMPA= (e+Ua);
EPwmB.CMPA = (e+Ub);
EPwmC.CMPA = (e+Uc);

那么基于零序注入SVPWM原理下的占空比输出结果如下:
表3 基于零序注入下的SVPWM输出结果表


只需要保证表1以及表3的结果数据是完全一致,就可以实现空间矢量SVPWM到零序注入SVPWM的逻辑转换过程。

3.算法举例
核心点在于设置三相电压的输入分量Ua,Ub,Uc。以极海实现的案例举例说明,三相输入设计完毕后,
各个扇区的三相实际计算结果如下:
表4 极海基于零序注入SVPWM算法输出结果表


对比表1的结果可知,实际的输出是完全一致的,理论证明了此算法的实际可行性。

4.结果测试
在使能状态下,实际测试两种方案下的三相占空比输出TA-TA1,TB-TB1,TC-TC1的差值,实际仿真测试结果如下,即可以证明两种方案下的实际输出完全是等效的。唯一的缺点是过调制区无法兼容到。

但是基于零序注入的SVPWM函数,实现方式更为简单,实际测试结果,在240M主频下,仅仅用时27cycle左右即可计算完成,而基于扇区判断的SVPWM函数则需要183cycle左右。



使用特权

评论回复
沙发
zyz0926|  楼主 | 2025-4-30 16:21 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

27

帖子

0

粉丝