4. 锁相环(PLL)技术:单同步坐标系锁相环(SSRF-PLL)、解耦双同步坐标系锁相环(DDSRF-PLL)原理与实现
锁相环这东西,说白了就是电网的“眼睛”。
你想想看,变流器要跟电网打交道,首先得知道电网电压到底在什么位置、什么频率。不知道这些,你发的电就是瞎发,搞不好还会炸机。我早年刚入行时,就见过一个同事因为PLL参数没调好,并网瞬间直接触发过流保护,那动静,啧啧。
今天咱们就聊聊两种最经典的PLL:单同步坐标系锁相环(SSRF-PLL)和解耦双同步坐标系锁相环(DDSRF-PLL)。这两种结构,基本覆盖了90%以上的工业应用场景。
核心观点:PLL的本质是一个闭环跟踪系统。它通过坐标变换,把三相交流量变成直流量,再用PI控制器去“追”这个直流量的零误差点。电网干净时,SSRF-PLL够用;电网畸变时,DDSRF-PLL才是正解。
4.1 单同步坐标系锁相环(SSRF-PLL)
SSRF-PLL,全称是 Single Synchronous Reference Frame PLL。名字挺长,其实原理很简单。
它把三相电压 Va, Vb, Vc 先做 Clark 变换,变成 Vα, Vβ。然后再做 Park 变换,变成 Vd, Vq。你想想看,如果我的 Park 变换角度 θ 正好等于电网电压的相位,那么 Vq 就会等于 0。这就是锁相环的“锁”字来源——把 q 轴电压锁到 0。
我的经验:调试 SSRF-PLL 时,我最喜欢盯着 Vq 的波形看。如果 Vq 在 0 附近平稳波动,说明锁住了。如果 Vq 一直在抖,那多半是 PI 参数没调好,或者电网本身就有谐波。
SSRF-PLL 的数学表达式其实就三行:
// 1. Clark 变换
Vα = (2/3) * (Va - 0.5*Vb - 0.5*Vc)
Vβ = (2/3) * (0.866*Vb - 0.866*Vc)
// 2. Park 变换
Vd = Vα * cos(θ) + Vβ * sin(θ)
Vq = -Vα * sin(θ) + Vβ * cos(θ)
// 3. PI 调节 + 积分
ω = PI(Vq_ref - Vq) // Vq_ref = 0
θ = ∫ ω dt
这里有个关键点:PI 控制器的输出是角频率 ω 的修正量,不是直接输出角度。角度是通过积分得到的。这样做的好处是,即使电网频率有波动,PLL 也能平滑跟踪。
注意:SSRF-PLL 有一个致命弱点——它假设电网电压是理想的三相平衡正弦波。一旦电网出现不平衡(比如单相接地故障),或者有谐波,Vq 里就会混入 2 倍频、6 倍频的波动。这时候锁相环就会“抖”,锁不准。
我记得有一次做微电网项目,现场电网比较弱,谐波含量高。SSRF-PLL 锁出来的角度一直在 ±5° 之间晃,导致变流器输出电流畸变严重。后来我换成了 DDSRF-PLL,问题才解决。
4.2 解耦双同步坐标系锁相环(DDSRF-PLL)
DDSRF-PLL,全称是 Decoupled Double Synchronous Reference Frame PLL。名字听着唬人,其实思路很直接。
电网不平衡时,电压里除了正序分量,还有负序分量。负序分量在正序的 dq 坐标系下会表现为 2 倍频的波动。DDSRF-PLL 的做法是:同时建立两个坐标系——一个正转(+ω),一个反转(-ω)。正转坐标系锁正序,反转坐标系锁负序。然后通过解耦网络,把两个坐标系里的 2 倍频分量互相抵消掉。
具体实现分三步:
- 双坐标变换:对同一组三相电压,分别做 +ω 和 -ω 的 Park 变换,得到
Vd+, Vq+和Vd-, Vq-。 - 解耦网络:正序的
Vd+里混入了负序的 2 倍频分量,负序的Vd-里混入了正序的 2 倍频分量。通过一个低通滤波器 + 交叉反馈,把这些分量滤掉。 - 正序锁相:只拿解耦后的
Vq+去送 PI 控制器,输出角度 θ。
解耦的数学公式长这样:
// 解耦后的正序 dq 分量
Vd+_dec = Vd+ - Vd-_LPF * cos(2θ) - Vq-_LPF * sin(2θ)
Vq+_dec = Vq+ + Vd-_LPF * sin(2θ) - Vq-_LPF * cos(2θ)
// 解耦后的负序 dq 分量
Vd-_dec = Vd- - Vd+_LPF * cos(2θ) + Vq+_LPF * sin(2θ)
Vq-_dec = Vq- - Vd+_LPF * sin(2θ) - Vq+_LPF * cos(2θ)
看着复杂,其实逻辑很简单:你中有我,我中有你,互相减掉就干净了。
关键参数:解耦网络里的低通滤波器截止频率很关键。我一般取 20~50 Hz。太高了滤不干净 2 倍频(100 Hz),太低了动态响应慢。这个需要根据实际电网情况折中。
4.3 两种 PLL 的对比与选型建议
说了这么多,到底什么时候用哪种?我直接给个表格,一目了然。
| 对比项 | SSRF-PLL | DDSRF-PLL |
|---|---|---|
| 适用电网 | 理想三相平衡 | 不平衡、畸变 |
| 计算复杂度 | 低(约 50 行代码) | 中(约 150 行代码) |
| 动态响应 | 快(带宽可达 50 Hz) | 中等(带宽 20~30 Hz) |
| 抗谐波能力 | 弱(需额外滤波) | 强(解耦自带滤波) |
| 典型应用 | 大电网并网逆变器 | 微电网、弱电网、故障穿越 |
我个人习惯是:能用 SSRF-PLL 就不用 DDSRF-PLL。为什么?因为简单、可靠、不容易出 bug。但如果你做的是微电网、或者要求故障穿越能力的并网变流器,那还是老老实实上 DDSRF-PLL 吧。
避坑指南:我曾经在一个项目中,为了省事,在弱电网下硬用 SSRF-PLL。结果并网点电压稍微有点不平衡,PLL 就开始振荡,最后导致变流器过流跳闸。后来我加了一个前置的陷波器(Notch Filter),专门滤掉 100 Hz 分量,才勉强稳住。但说实话,不如直接上 DDSRF-PLL 省心。
4.4 实现中的几个细节
最后聊几个实现时的坑,都是我踩过的。
- PI 参数整定:PLL 的 PI 参数跟普通电流环不一样。带宽一般取 10~30 Hz。我习惯用
Kp = 2 * ζ * ω_n,Ki = ω_n²来算。阻尼比 ζ 取 0.707,自然频率 ω_n 取 20 Hz 左右。 - 角度初始化:启动时,如果角度从 0 开始,PLL 会有一个很大的暂态过程。我一般先做一个开环预同步,估算出电网角度再切入闭环。
- 频率限幅:PI 输出的 ω 一定要做限幅。我通常设 45~55 Hz,防止 PLL 在电网扰动时跑飞。
- 离散化:数字实现时,积分器用
θ(k) = θ(k-1) + ω * Ts。注意角度要模 2π,不然会溢出。
嗯,PLL 这块内容就这些。说白了,锁相环就是个“追角度”的游戏。电网干净时,SSRF-PLL 一把梭;电网脏了,DDSRF-PLL 来兜底。选对工具,事半功倍。
一句话总结:SSRF-PLL 是基础,DDSRF-PLL 是进阶。先把基础的玩透,再搞进阶的,别一上来就整复杂的。
公众号:蓝海资料掘金营,微信deep3321