新闻中心

EEPW首页 > EDA/PCB > 设计应用 > S-Function在TMS320F2812的SVPWM算法仿真

S-Function在TMS320F2812的SVPWM算法仿真

作者:时间:2011-08-19来源:网络收藏

无论电压矢量落在哪个扇区,都可以用相邻的两个有效电压矢量和零矢量对其合成。这里以扇区3为例,Vref=Vα+jVβ,Vx、Vy代表相邻电压矢量(即V1、V2)。Tpwm是开关周期,To、Tx、Ty分别是零矢量、Vx、Vy的作用时间。当开关周期远小于信号周期时,在一个开关周期中可以认为电压矢量是不变的,即:
c.jpg
为了保证波形对称,把每个状态的作用时间一分为二,正如图2中的开关序列图所示,这样既能控制电压输出的大小,又能消除偶次谐波。
将每个扇区中各电压矢量作用时间都计算出来,按照图2所示的对称序列分别分配给3个开关序列Sa、Sb、Sc,并转换为TMS320三个比较寄存器的比较值,便可输出脉宽不同的脉冲波且基频是互为120°的正弦波。
2.2 移植工程为函数
根据上述原理在CCS中建立了一个基于TMS320算法工程,包含对DSP进行系统初始化,并初始化所需外设,如EVA、GPIO、PIE等。基本算法存于DSP28_svpwm.c文件中。具体功能配置可以参考相关书籍,篇幅所限,这里不再累述。DSP在每个上溢中断或下溢中断时调用算法进行扇区判断、作用时间计算及比较值的确定,然后将比较值赋给EVA的3个比较值寄存器。通过与EVA的双向计数器进行比较,产生3路占空比不同的脉冲波,通过GPIO_A口的PWM1、PWM3、PWM5输出,并且DSP会自动将这3路信号进行反向,通过另外3个GFIO_A口(PWM2、PWM4、PWM6)输出。
在MATLAB中打开之前,由模板另外存为svpwm.c文件。该文件主要用于实现对CCS程序的接口移植。函数都是在其他C文件中编写的,所以在本文件的开头包含所用到的头文件和C文件,并且将所用的头文件和C文件都与建立的模型放在同一目录下。这也是该种链接方法的关键和精髓,仿真完成后可以不需要改动CCS程序便可直接在CCS中编译使用。

3 仿真模型与仿真结果
在MATLAB/Simulink中搭建一个理想的三相全桥逆变器系统,用以验证SVPWM算法的正确性。模型如图3所示,其中SVPWM模块被封装成了一个子系统,以便系统进行管理和扩展。对三相电压进行采样,将得到的值送入SVPWM子系统中进行处理。

本文引用地址:http://www.eepw.com.cn/article/191048.htm

d.jpg


这里需要将三相电压Va、Vb、Vc进行坐标系变换,变为两相静止坐标系中的电压Vα、Vβ,作为的输入参数。坐标变换也用一个子系统完成,如图4所示。在该子系统中调用C-MEX编写的进行比较值的计算,并通过produce PWM输出波形。

e.jpg

c++相关文章:c++教程




关键词: S-Function F2812 SVPWM 2812

评论


相关推荐

技术专区

关闭