三相电网的锁相环

信息处理 模数 C 一体化 pll
2022-02-11 09:56:58

我一直在实施一个控制软件,其核心功能之一是能够与三相电网同步。基本上我需要实现适合三相的某种形式的锁相环(PLL)。我发现有几种方法可以做到这一点。我发现的最简单的方法之一基本上是基于相电压时间积分的计算。我的第一个想法是如何以递归形式使用梯形积分规则

I(k)=I(k1)+T2[x(k1)+x(k)].

我已经在 C 中实现了上面写的差分方程,我试图将正弦波传递给它

    #define PI 3.14
    #define N 64

    float x, y;
    for(int k = 0; k < N; k++){
        x = sin(k*2*PI/N);
        y = integrate(1.0, x);
    }

    float integrate(float T, float xk)
    {
        static float intk_1 = 0; // I(k-1) 
        static float xk_1 = 0; // x(k-1)
    
        float intk = intk_1 + T/2*(xk_1 + xk);
        intk_1 = intk;
        xk_1 = xk;
    
        return intk;
    }

根据我的实验结果,我意识到如果积分过程从正弦波为零值的点开始,则所得积分有很大的偏移

在此处输入图像描述

如果积分过程从正弦波具有正最大值的点开始,则积分的偏移为零。

我需要具有零偏移的积分才能估计三相电网的相位和频率。显而易见的解决方案可能是以某种方式检测正弦波的正最大值,然后开始积分过程。问题是三相电网的频率在某个容差范围内波动。任何人都可以给我一个建议如何进行积分过程,以使结果积分具有零偏移?

1个回答

我推荐一个标准的 dq-PLL,检查这个参考https://vbn.aau.dk/ws/portalfiles/portal/273236528/PLL_Review_RSER.pdf

在此处输入图像描述

有 2 个必需的积分器。由于代数环的原因,最后一个积分器,即将角频率转换为相位的积分器,应该是正向欧拉积分器。如果需要,PI 控制器中的积分器可以是梯形积分器。

编辑:Ts = 采样周期

在此处输入图像描述