尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

正负序PLL锁相环提取不平衡电压,华为,阳光电源采用的锁相环算法,完美抑制到dsp 28379...

正负序PLL锁相环提取不平衡电压,华为,阳光电源采用的锁相环算法,完美抑制到dsp 28379... 正负序PLL锁相环提取不平衡电压华为阳光电源采用的锁相环算法完美抑制到dsp 28379和280049c中参考文献如图所示。 可以一边看论文一边理解如何c语言实现。电网电压不平衡时普通锁相环会疯狂抖动的老毛病搞新能源并网的老司机们应该都深有体会。华为和阳光电源在逆变器产品中采用的正负序分离PLL方案直接把锁相精度从摇摆舞模式调成了机械臂模式。核心思路就是先把三相电压分解成正负序两个旋转坐标系。咱们拿TI的DSP 280049C开刀先整一个正交信号发生器typedef struct { float32_t v_alpha; // 静止坐标系α分量 float32_t v_beta; // 静止坐标系β分量 float32_t v_pos_d; // 正序d轴 float32_t v_pos_q; // 正序q轴 float32_t v_neg_d; // 负序d轴 float32_t v_neg_q; // 负序q轴 } PLL_Components; void ClarkeTransform(float32_t a, float32_t b, float32_t c, PLL_Components *comp) { comp-v_alpha (2*a - b - c)/3; comp-v_beta (SQRT3*(b - c))/3; // SQRT3预定义根号3 }这个克拉克变换直接把三相电压拍扁到二维平面接下来才是重头戏——正负序分离。华为专利里的双二阶广义积分器用C写出来长这样// 二阶广义积分器参数 typedef struct { float32_t k; float32_t omega; // 基波角频率 float32_t x1, x2; // 状态变量 } DSOGI_Type; float32_t DSOGI_Update(DSOGI_Type *s, float32_t input) { float32_t output s-k * s-omega * (input - s-x2); s-x1 s-omega * (output - s-k * s-x1) * DELTA_T; // DELTA_T为采样周期 s-x2 s-omega * s-x1 * DELTA_T; return output; }这玩意儿跑起来就像给信号装了个智能滤镜正序分量走绿色通道负序分量走红色通道。在28379D上实测时记得把浮点运算转成Q15格式否则中断服务函数分分钟超时。正负序PLL锁相环提取不平衡电压华为阳光电源采用的锁相环算法完美抑制到dsp 28379和280049c中参考文献如图所示。 可以一边看论文一边理解如何c语言实现。锁相核心算法藏在中断服务函数里__interrupt void epwm1_isr(void) { static float32_t phase_angle 0.0; // 读取ADC采样值并做克拉克变换 ClarkeTransform(adc_result[0], adc_result[1], adc_result[2], comp); // 正负序分离 v_pos_d DSOGI_Update(dsogi_pos_d, comp.v_alpha); v_pos_q DSOGI_Update(dsogi_pos_q, comp.v_beta); // 经典PI调节 phase_error atan2(v_pos_q, v_pos_d); // 反正切求相位差 freq_deviation PI_Controller(pi_params, phase_error); // 更新角度 phase_angle (BASE_FREQ freq_deviation) * DELTA_T; phase_angle fmod(phase_angle, 2*PI); // 防止溢出 EPwm1Regs.CMPA.half.CMPA (uint16_t)(PWM_PERIOD * sin(phase_angle)); // 生成同步信号 }调试时有个坑要注意当电网电压跌落超过30%时记得动态调整积分器带宽否则会出现相位回环现象。阳光电源的工程师手册里提到个小技巧——在频率偏差输出端加个±2Hz的限幅器实测能让动态响应速度提升15%以上。最后上电实测用信号发生器注入5%不平衡度的电压用CCS的Graph工具抓取d轴分量波形能看到正序分量稳如老狗负序分量被按在地上摩擦。这种方案在280049C上吃掉约30%的CPU资源不过考虑到现在新型DSP都带三角函数加速器实际跑起来还能再省10个百分点的时钟周期。
返回列表