This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

2812实现锁相环



最近在用DSP2812实现锁相环,生成与电网电压同相的sin信号。参考文档是

controlSUITE\libs\app_libs\solar\SolarLib.pdf

和Software Phase Locked Loop Design Using C2000™Microcontrollers for Single Phase Grid Connected Inverter

 调用的程序是controlSUITE\libs\app_libs\solar\v1.2\IQ内部的.c程序

 

 

调用得程序具体包括如图:

 

结果是疑问重重啊!

1调用初始化函数

SolarLib.pdf中是这样的

SPLL_1ph_init(GRID_FREQ,_IQ21((float)(1.0/ISR_FREQUENCY)) &spll1,spll_lpf_coef1);

 

Software Phase Locked Loop Design Using C2000™Microcontrollers for Single Phase Grid Connected Inverter Inverter中是这样的

SPLL_1ph_SOGI_IQ_init(GRID_FREQ,_IQ21((float)(1.0/ISR_FREQUENCY)),&spll1);

到底是哪一个对?还是文档有笔误呢?

 

 

2   调用陷波器系数更新函数

SPLL_1ph_notch_coeff_update(((float)(1.0/ISR_FREQUENCY)),(float)(2*PI*GRID_FREQ*2),(float)c2,(float)c1, &spll1);

(1)想知道c1和C2确定依据是什么,我的程序里参数怎么确定?

(2)这里参数1.0/ISR_FREQUENCY应该代表采样时间间隔吧?如果是这样采样时间间隔不应该是0.001/ISR_FREQUENCY吗?比如中断频率40k,采样时间应该等于0.001/40才对啊!

 

3    按照spll_coeff_compute.xlsx设计的参数,ts为0.01ms(这个时间设计多少为合适?我也不太清楚,曾试过1000ms,以下实验ts为0.01ms),SPLL结果分别如(1)(2)

调用锁相环程序

 

 

 

(1)

SPLL_1ph_init(GRID_FREQ,_IQ21((float)(0.001/ISR_FREQUENCY)) &spll1,spll_lpf_coef1);

SPLL_1ph_notch_coeff_update(((float)( 0.001/ISR_FREQUENCY)),(float)(2*PI*GRID_FREQ*2),(float)c2,(float)c1, &spll1);

注:上面为输入,下面为锁相环输出

 

 

 

 

(2)

SPLL_1ph_init(GRID_FREQ,_IQ21((float)(0.0025/ISR_FREQUENCY)) &spll1,spll_lpf_coef1);

SPLL_1ph_notch_coeff_update(((float)(0.001/ISR_FREQUENCY)),(float)(2*PI*GRID_FREQ*2),(float)c2,(float)c1, &spll1);

注:上面为输入,下面为锁相环输出

此情况输入信号和锁相环输出相位也不断变化!

 

 

 

 

(3)

SPLL_1ph_init(GRID_FREQ,_IQ21((float)(1.0/ISR_FREQUENCY)) &spll1,spll_lpf_coef1);

SPLL_1ph_notch_coeff_update(((float)( 1.0/ISR_FREQUENCY)),(float)(2*PI*GRID_FREQ*2),(float)c2,(float)c1, &spll1);

此时就看不到锁相环!

 

 

不知道问题说清楚没有?如果有兴趣但是不清楚的,可以联系QQ419524383或者电话13616191627!谢谢!