请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:TMS320F2808 工具/软件:Code Composer Studio
您好,
我一直在为三相电压源逆变器开发正弦波调制器
在TMS320F2808 DSP上。 我一直在使用CCS v6进行调试(特别是Graph
工具)。 我已经开发了用于生成所需正弦波的代码(请
请参阅附件)。 我的问题是,此代码产生的正弦波只能正常工作
在某些频率下(我在统计图工具中观看输出正弦波)。 现在我不知道是否
问题出现在我的代码或CCS中的图形中。 请大家 看看我的代码并进行评估
是否可以? 下面是用于以下项目的图形:
1.50 Hz ~ 3.2767万
2.49 Hz ~ 3.22万
3.45 Hz ~ 3万
4. 25 Hz ~ 1.6384万
提前感谢。
//索引,16位,0-6.5535万
静态无符号短索引1 = 0;
静态无符号短索引2 = 0;
//所需输出频率,50 Hz ~ 3.2767万
静态无符号短频率= 3.2767万;
//临时变量
静态短温度= 0;
//表中正弦值的1.15 中的a //
表包含整个期间<0,2*PI>和129个值(由于线性内插)
//表中的角度步长(2*PI)/128 ~ 2.8 °
//归一化角度步长(2*PI)/128*1/(2*PI)*6.5536万=512
静态短正弦表[]={
01608,3212,4808,
6393, 7962,9512,1.1039万,
1.2539万,1.401万, 1.5446万,1.6846万,
1.8204万,1.9519万,2.0787万, 2.2005万,
2.317万,2.4279万,2.5329万,2.6319万,
2.7245万,2.8105万,2.8898万,2.9621万,
3.0273万, 3.0852万,3.1356万,3.1785万,
3.2137万,3.2412万, 3.2609万,3.2728万,
3.2767万,3.2728万,3.2609万, 3.2412万,
3.2137万,3.1785万,3.1356万,3.0852万,
3.0273万,2.9621万,2.8898万,2.8105万,
2.7245万, 2.6319万,2.5329万,2.4279万,
2.317万,2.2005万, 2.0787万,1.9519万,
1.8204万,1.6846万,1.5446万, 1.401万,
1.2539万,1.1039万,9512,7962,
6393,4808,3212,1608,
0,-1608,-3212,-4808,
-6393, -7962,-9512,-1.1039万,
-1.2539万,-1.401万, -1.5446万,-1.6846万,
-1.8204万,-1.9519万,-2.0787万, -2.2005万,
-2.317万,-2.4279万,-2.5329万,-2.6319万,
-2.7245万,-2.8105万,-2.8898万,-2.9621万,
-3.0273万, -3.0852万,-3.1356万,-3.1785万,
-3.2137万,-3.2412万, -3.2609万,-3.2728万,
-3.2767万,-3.2728万,-3.2609万, -3.2412万,
-3.2137万,-3.1785万,-3.1356万,-3.0852万,
-3.0273万,-2.9621万,-2.8898万,-2.8105万,
-2.7245万, -2.6319万,-2.5329万,-2.4279万,
-2.317万,-2.2005万, -2.0787万,-1.9519万,
-1.8204万,-1.6846万,-1.5446万, -1.401万,
-1.2539万,-1.1039万,-9512,-7962,
-6393,-4808,-3212,-1608,
0
};
//所需输出频率的角度步长
静态无符号短delta相位=0;
//相位累加
器静态无符号短相位=0;
//输出正弦波
静态短正弦波=0;
//所需输出频率的角度步长(由频率变量设置
)//对于一个频率为FS的中断,角度步长(以弧度为单位)为2*PI*f/FS
//因此归一化角度步长为f/FS*6.5536万
//对于所需的50 Hz和FS=1.2万 Hz: 50/1.2万*65536 =6.5536万 = 273
// 50 Hz设置为3.2767万
delta相位=(((((unsigned Long)frequency)*273)>15);//
增量相位累加器,带角度步进
相位+= delta相位;
//"低"索引
//相位到索引转换
//表中有128个值,因此只有7个最高位设置索引
//相位累加器为16位所以>> 9
索引1 =相位>> 9;
//"高"索引
2 =索引1 + 1;
//从表中检索正弦值
//正弦值表中的线性插值
temp =(*(sine_table + index2)-*(sine_table + index1));
//相位累加器的低9位为"分数",因此和0x1FF
//表中的"全"角步长为512,所以>> 9
temp =(短)(((长) temp)*((相位和0x1FF)>> 9);
temp +=*(正弦表+索引1);
//电压与频率
正弦比率=(((长)*15)




