第15章 用TMS320LF2407 实现空间矢量PWM(SVPWM)
15.3 利用TMS320LF240x实现SVPWM算法的程序
下面给出了利用TMS320LF2407实现SVPWM算法的一个应用程序。在该程序中,我们假设有200个电压矢量Uout 平均分布在电角度为2π的范围内,通过改变SVPWM的调制周期T可以改变输出的3相正弦波的频率。
源程序代码:
(1) 所需的复位和中断矢量定义文件“vectors.asm”请读者参考本书相关章节。
(2) 主程序
// 该程序用于简单的SVPWM演示,产生3相互差120度电角度的正弦交流电压,此程序实
// 时计算cmp1和cmp2的值
#include "register.h"
#include "float.h"
#include "math.h"
float ualfa[200],ubeta[200]; // 存储电压矢量Uout的(α,β)轴分量ualfa、ubeta的数组
int sector[200]; // 定义存储扇区数的数组
#define PI2 2*3.1415926 // 定义2π的值
#define DETA PI2/200 // 定义相临两个Uout之间的电角度的差值
#define INIA 3.1415926/180 // 定义Uout的初始电角度
#define TP 1200 // t1的周期寄存器的值,其值等于SVPWM调制周期T的一半,
// 因为在该程序中2π电角度内Uout的点数一定,故改变此值
// 可以改变输出的3相正弦交流电压的频率
#define KP 0.7 // 定义Uout的标幺值,KP的值在0和1之间,改变此值可以
// 改变逆变桥输出电压的幅值
// 屏蔽中断子程序
void inline disable()
{
asm(" setc INTM");
}
// 系统初始化子程序
viod initial()
{
*IFR=0xFFFF; // 清除所有的中断标志
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余4页未读,立即下载
- 1
- 2
- 3
前往页