器件型号:CCSTUDIO-C2000
工具/软件:Code Composer Studio
我正在使用 C2000、我在使用 PLL 时遇到了问题、当我尝试锁定 PLL 时、有一个小的相移我无法消除。 我将生成一个锁定到交流电网电压的基准信号、然后从生成的基准中减去电网电压、由于基准较大、输出信号应与交流电网电压相移180。 但并非如此。 这里是我的与 PLL 相关的代码。
#include "cla_adc_shared.h"
#include
#include "SPLL_1ph.h"
SPLL_1ph spll1;
#define PI_2 6.2831853
#define PWM_TBPRD 50000 //100MHz/PWM_TBPRD/2=TSW=1/1kHz
#define PWM_TBPRD_Half 25000
#define PWM_TBPRD_HI 100
#define PWM_TBPRD_LO 1250
#define OCP_LIMIT_HI 4000//2600 //此限制正常
#define OCP_LIMIT_LO 0//1500 //此限制应小于1800,问题仍然存在???
// PLL 的初始化
SPLL_1ph_init ((float)(60)、(float)(0.000025)、&spll1);
//PLL 到源电压
spll1.ac_input= VS_LPF;
SPLL_1ph_run (&spll1);
PLL_PHASE_=spll1.theta[0];
// PLL 到源极电压、振幅为1
PLL_VS = 1*sin ((PLL_PHASE/2)*(float) pi_2);
//负载电压参考
VOR=(float)(VM*sqrt (2)*PLL_VS);
VOREF=(0.545*VOREF+0.455*(浮点)VOR);
//APF 电压参考
//VSact =(float)(5.6*sqrt (2)*PLL_VS)-0.3;
VSact =(float)(19*0.00073242187*(float) VS_LPF)-0.36);
//Boundry 控制计算
Vd=(float)((VS_LPF)-(VOref));
提前感谢、
Radwa
