有源电力滤波器DSOGI-PLL:从正负序分离到参数整定

有源电力滤波器DSOGI-PLL:从正负序分离到参数整定 有源电力滤波器专题做到下半DSOGI-PLL的核心问题已经不是“能不能锁相”而是“在电网不平衡、畸变和频率偏移同时出现时锁出来的角度还能不能稳定地用于指令提取”。常规 SRF-PLL 在电压不平衡时dq 轴上会出现二倍频振荡相位输出也会带着低频抖动DSOGI-PLL 的思路是先用两个 SOGI-QSG 构造正交信号再把正序、负序分开最后只把正序分量交给锁相环。对做 APF 样机调试和仿真建模的人来说这一部分真正要补的不是框图而是正负序分离之后的数学模型、每个参数怎么选、离散化后有哪些坑。下面按实际落地顺序拆开讲。前半部分更偏结构推导我会把后半段重点放在“从模型到参数再到验证”这件事上。1. 先对齐DSOGI-PLL 在 APF 里到底要解决什么问题1.1 前半部分推到哪一步了如果是按常见专题顺序阅读前半部分通常会先解释一个核心矛盾电网电压一旦不平衡三相电压在静止坐标系下不再是一个纯正序圆而是正序圆和负序圆的叠加。只用单一 PLL 去锁整体电压锁出来的是一个“平均值”并不是纯净的基波正序角度。DSOGI-PLL 在这个基础上引入两个正交信号发生器。一个给 α 轴用一个给 β 轴用。每个 SOGI 接收电压分量输出一个经过带通特性的原相信号 v′以及一个滞后 90° 的 qv′。有了 α、β 两个轴的正交信号就可以用代数运算把正序、负序拆开。到这里后续分析才能继续正序分量送给 SRF-PLL负序分量可以用于检测不对称程度也可以不参与锁相。对有源电力滤波器来说这个“先分离再锁相”的顺序非常重要因为 APF 的补偿电流最终要用基波正序角度做坐标变换。如果角度本身被负序污染后面所有 dq 轴谐波提取都会跟着错。1.2 APF 场景不能只靠过零检测很多刚接触 APF 的人会问一个问题电网是三相正弦波为什么不直接测量线电压过零点或者直接用软件锁相环锁 A 相相位实际电网不会那么干净。APF 往往装在负载附近电压可能已经出现畸变也可能因为不平衡负载导致三相电压不对称。若是用 A 相过零点一旦 A 相电压叠加谐波或短时跌落零点就会来回移动。更麻烦的是三相不平衡时只锁单相再通过 120° 移相得到的 B、C 相角度和实际电网可能存在系统性偏差。DSOGI-PLL 解决的就是这个问题它把三相电压先变换到 αβ 坐标系再用两个 SOGI 分别提取正交信号最终输出正序电压的相位。这样锁出来的角度对不平衡具备天然免疫能力对高频谐波也有一定过滤作用。正因如此它在 APF 样机里经常被放在“检测起点”的位置。2. 从双 SOGI 到正负序分离的完整模型2.1 每个 SOGI-QSG 的实际状态方程DSOGI-PLL 里最基础的单位是 SOGI-QSG而不是简单的一个二阶滤波器。它的特点是不只输出一个滤波后的信号还同时输出一个频率相关、相位滞后 90° 的正交分量。按照最常见的一组两积分器结构单个 SOGI 连续域状态方程可以写成e vin - v dv / dt k * ω0 * e - ω0 * qv dqv / dt ω0 * v其中 v′ 是带通输出qv′ 是正交输出k 是阻尼系数ω0 是 SOGI 的中心频率。这个结构的好处是中心频率 ω0 可以随 PLL 的估计频率更新从而适应电网频率偏移。由这个状态方程可以推出两个核心传递函数D(s) v(s) / vin(s) k * ω0 * s / (s² k * ω0 * s ω0²) Q(s) qv(s) / vin(s) k * ω0² / (s² k * ω0 * s ω0²)D(s) 具有带通特性输入信号在 ω0 附近时幅值增益接近 1Q(s) 提供正交分量。这个公式在建模时非常有用因为很多仿真软件里可以直接按传递函数建模块也可以按状态方程搭积分器结构。我更推荐后者因为后续要把估计频率 ω0 反馈回来时状态方程改起来更直接。2.2 αβ 轴的正负序分离计算有源电力滤波器里用的是三相系统所以需要把单相 SOGI 扩展到两个轴α 轴和 β 轴。先做 Clarke 变换把三相电压变换到静止坐标系vα (2/3) * (va - 0.5 * vb - 0.5 * vc) vβ (2/3) * (0.866 * vb - 0.866 * vc)然后分别送入两个 SOGI-QSG。注意α 轴 SOGI 的输入是 vαβ 轴 SOGI 的输入是 vβ。每个 SOGI 都输出原相信号和正交信号因此一共得到四个量v′αα 轴滤波后的原相输出qv′αα 轴滤波后的正交输出v′ββ 轴滤波后的原相输出qv′ββ 轴滤波后的正交输出正序和负序分离时用的不是原始电压 vα、vβ而是经过 SOGI 处理后的 v′α、v′β 和 qv′α、qv′β。这一步不要省略否则后面正负序分离公式不成立。常用计算式如下vα 0.5 * (vα - qvβ) vβ 0.5 * (vβ qvα) vα- 0.5 * (vα qvβ) vβ- 0.5 * (vβ - qvα)其中 vα、vβ 是基波正序分量vα-、vβ- 是基波负序分量。这个计算看着简单但很多建模错误都出在符号上。正序公式里 qv′β 是减号负序公式里是加号如果你的内部坐标系定义方向相反符号要跟着调整不能照抄完就认为一定正确。2.3 后级 SRF-PLL 的锁相结构正序分量出来后接下来就是一个标准的同步旋转坐标系 PLL也就是 SRF-PLL。把 vα、vβ 变换到以估计角度 θ 为基准的 dq 坐标系。常用的 Park 变换形式是vd vα * cosθ vβ * sinθ vq -vα * sinθ vβ * cosθ当估计角度 θ 接近真实电网正序角度时vq 的平均值会趋近于零vd 则对应正序电压幅值。锁相错误是 vq 不为零PI 调节器根据 vq 误差输出角频率修正量再积分得到 θ。整个 DSOGI-PLL 的闭环是电网电压 → Clarke → 两个SOGI-QSG → 正负序分离 → SRF-PLL → θ如果要做频率自适应还要把 PLL 估计出来的角频率 ω 反馈回两个 SOGI-QSG 的中心频率而不是固定用 100π。这一条反馈是把 DSOGI 和普通 SOGI PLL 区分开的关键。频率不反馈时电网频率偏移到 50.5HzSOGI 的中心频率还在 50Hz输出的正交信号会出现相位和幅值偏差锁相结果也会产生稳态误差。3. 参数设计先定 SOGI 带宽再定 PLL 响应3.1 SOGI 增益 k 怎么选DSOGI-PLL 调试时第一个要动的参数是 k。这个参数同时影响两个 SOGI-QSG 的带宽、动态响应和滤波强度。从传递函数的分母可以看出SOGI 的阻尼比近似等于 k/2。常见取 k √2也就是阻尼比约为 0.707这时超调量适中响应速度和滤波效果比较均衡。实际 APF 项目中k 通常不会离这个值太远。如果 k 取得偏小比如 0.5SOGI 的选频特性会变得很窄对谐波抑制好但动态响应慢正序分离过程需要更长时间才能稳定。若电网电压发生短时跌落锁相角度可能需要几十毫秒才能恢复。如果 k 取得偏大比如 3SOGI 的响应会变快但带通宽度变大谐波更容易漏进来导致正序输出里仍混有明显的高次分量。PLL 如果设计带宽也比较高角度输出就可能出现毛刺。我的建议是第一次仿真先使用 k 1.0 到 1.5 之间不要同时调 k 和 PLL 参数。先把波形跑顺再根据启动时间和稳态滤波效果微调。3.2 PLL 的 PI 参数从哪开始取后级 SRF-PLL 本质上是一个二阶闭环系统。忽略高次谐波和数字延迟时PI 参数和闭环自然频率、阻尼比有一定关系。工程上常用近似关系Kp ≈ 2 * ζ * ωn Ki ≈ ωn²其中 ωn 是锁相环的自然频率ζ 是阻尼比。选择 ωn 时需要权衡。如果 APF 需要快速恢复同步可以把 ωn 取高一些比如 40Hz 对应的弧度数但 DSOGI 本身的滤波作用会被 PLL 的快速响应削弱。如果电网环境比较差谐波多可以把 ωn 降到 20Hz 到 30Hz让锁相环对外部噪声更迟钝代价是动态响应变慢。举个例子说明取参过程如果希望在仿真里把闭环自然频率取在 25Hz 附近 ωn 2π * 25 ≈ 157 rad/s ζ 0.7 Kp ≈ 2 * 0.7 * 157 ≈ 220 Ki ≈ 157² ≈ 24650这里给的是标幺化建模场景下的起始值实际样机要根据 dq 轴电压标幺值、采样周期和控制周期调整不能直接当最终值。真正调试时我习惯先把 PLL 的两个积分器初值设置为 50Hz 对应的角频率再用一个小幅频率突变验证响应速度。3.3 频率自适应回路为什么会振荡DSOGI-PLL 里最容易被忽视的是频率反馈回路的稳定性。PLL 输出频率 ω 进入 SOGI-QSG 的中心频率后相当于在原有锁相环里又加了一条惯性路径。如果 SOGI 自身响应偏慢PLL 又在高频段给了较高增益整个回路就可能出现低频振荡。调试时遇到角度来回摆动不要只把锅甩给 PI 参数。可以先断开 SOGI 的频率反馈把中心频率固定在 100π 上跑一次看看 PLL 本身是否稳定。若固定频率后没问题加上反馈就振荡说明 SOGI 和 PLL 的总带宽匹配不合理要么降低 PLL 带宽要么增大 SOGI 的 k 值让它响应更快一些。频率反馈还有一个工程细节反馈量最好经过限幅比如限制在 48Hz 到 52Hz 对应范围避免启动瞬间因为角度误差过大把估计频率冲到异常值。限幅不是为了限制结果而是防止积分器饱和后恢复太慢。参数作用常见起始范围调试原则SOGI 的 k决定正交信号带宽和动态0.5 ~ 2.0先固定再调 PLLPLL 自然频率 ωn决定锁相响应速度20Hz ~ 50Hz谐波多取低动态快取高PLL 阻尼 ζ决定超调和稳定性0.5 ~ 0.8不能过低频率反馈限幅防止启动时频率过冲48Hz ~ 52Hz根据地区电网频率调整4. 离散实现与仿真建模的落地细节4.1 用两积分器结构写离散代码连续域模型看着清楚但放到实际控制器里必须转成离散算法。DSOGI-PLL 最推荐的不是直接对传递函数做 Z 变换而是保留两积分器结构在每个采样周期内更新积分器状态。单个 SOGI 的离散伪代码可以这样写errAlpha vAlpha - vAlphaOut; vAlphaOut Ts * (kSo * freq * errAlpha - freq * qvAlpha); qvAlpha Ts * freq * vAlphaOut; errBeta vBeta - vBetaOut; vBetaOut Ts * (kSo * freq * errBeta - freq * qvBeta); qvBeta Ts * freq * vBetaOut;这段是欧拉法的离散示意。实际工程中如果采样周期比较大建议使用二阶离散方法或者 Tustin 变换否则在高中心频率或较大 k 下可能出现数值误差。上面写法里每次更新要用上一次循环的 vAlphaOut、qvAlpha 等旧值不要在同一个周期里用刚更新完的值再去计算 qvAlpha否则会产生隐式耦合使离散模型和连续模型偏差变大。初值也需要注意。所有 SOGI 的积分器初始值设为 0PLL 的相位 θ 初始值如果和真实相位相差接近 180°启动瞬间正序分离可能出现明显振荡。更稳妥的做法是在启动前先估算一次初始相位或者把 PLL 的初始角频率设置为 100π并让 θ 从 0 开始同时接受一小段启动过渡过程。4.2 离散化误差体现在哪里离散化误差并不会让 DSOGI 完全失效而是会让正交信号的幅值和相位产生偏差尤其是在频率偏移或低采样率下。假如系统采样周期是 1ms50Hz 信号一个周期只有 20 个采样点欧拉法带来的相位误差会比较明显。如果 SOGI 和 PLL 都建立在离散误差上最终角度和真实电网正序角度之间会有系统性相位差。对于 APF 来说这个相位差会直接影响谐波提取的准确性表现为补偿后残余电流偏大。因此当仿真结果和理论看起来都正常但 APF 补偿效果不理想时要回头检查采样频率和离散化方式。常见选择是 10kHz 以上采样这样每个 50Hz 周期有 200 个点欧拉法勉强可用如果有条件用 Tustin 变换或更高精度积分会更稳。4.3 最小可验证模型怎么建不管是用 Simulink 还是自己的程序验证我都建议把 DSOGI-PLL 模型拆成层级清晰的小模块电网电压源模块输出可设置三相不平衡和 5、7 次谐波。Clarke 变换模块。两个独立的 SOGI-QSG 模块。正负序分离模块。SRF-PLL 模块。频率反馈模块。第一次验证不要加太多信号。先用三相平衡、无谐波的电网跑通确认 PLL 输出角度跟随实际电压正序角度再把 A、B、C 三相电压设置成不平衡比如 A 相跌落 20%观察 vq 是否仍然能收敛到 0最后再加入谐波和频率偏移。这样一层层往上加出现问题时才能定位到具体模块。如果一上来就把所有非理想情况都加上波形不对时很难判断是 SOGI 参数问题、PLL 参数问题还是正负序分离公式的符号问题。5. 有源电力滤波器场景下的验证与扩展5.1 三类典型验证工况APF 里用 DSOGI-PLL不能只看它在理想电网下能不能锁相要看它在电网异常时能不能扛住。建议至少验证以下三类工况。第一类是不平衡电压跌落。模拟 A 相电压跌落 20%持续时间 0.5 秒。观察 DSOGI-PLL 输出的 θ 在跌落瞬间是否出现明显阶跃。若角度只是短暂平滑过渡dq 轴 q 分量在动态后回到零说明正负序分离在起作用。第二类是电压谐波。加入 5 次和 7 次谐波谐波含量可以按 5% 左右设置。此时重点观察 PLL 输出角频率中是否含有明显的高频波动。如果波动过大应该降低 PLL 带宽或增强前级滤波而不是盲目增大 PI 增益。第三类是频率偏移。把电网频率从 50Hz 缓慢变到 50.3Hz。这个工况用来验证频率自适应回路是否正确。好的 DSOGI-PLL 应该能跟踪频率变化SOGI-QSG 的中心频率也会跟着移动最终锁相误差不随时间累积。5.2 如何用输出角度做补偿指令提取有源电力滤波器的最终目标是把负载谐波电流补偿掉。DSOGI-PLL 给出的 θ 和 sinθ、cosθ通常要送到负载电流的同步坐标系变换中。一个常见的 dq 谐波提取结构可以这样理解先采集负载电流做 Clarke 变换得到 iα、iβ。再使用 DSOGI-PLL 输出的 θ 做 Park 变换得到 id、iq。在这个旋转坐标系下基波正序有功、无功电流变成直流量谐波电流变成交流分量。把交流分量提取出来反变换后就是补偿指令电流。这个过程里θ 的准确性直接决定基波和谐波能不能被正确分类。如果 θ 滞后真实相位 2°那么本应是直流的基波正序电流在 dq 轴上会出现低频波动导致低通滤波器无法干净滤除最终谐波提取不准确。所以验证 DSOGI-PLL 时不要只看锁相波形美观还要把它和整个 AP