4. 故障检测与分类:基于dq变换的电压跌落检测、对称/不对称故障识别、锁相环(PLL)在故障下的行为
各位工程师朋友,咱们今天聊一个硬核话题——故障检测与分类。说白了,就是电网出事了,你的变流器得在几毫秒内判断出「出了什么事、严不严重、该怎么应对」。我做了这么多年电力电子,见过太多因为检测慢了半拍导致炸机的案例。嗯,这一节咱们就把这个「半拍」给补上。
4.1 基于dq变换的电压跌落检测
先问一个问题:三相电压跌落了,你怎么知道它跌了多少?
直接看相电压幅值?可以,但不方便。因为三相电压可能不对称,A相跌了20%,B相跌了50%,C相没跌——你拿哪个值去判断?
我个人习惯用dq变换。为什么?因为dq变换把三相交流量变成了两个直流量:d轴和q轴。直流量好处理啊,一个低通滤波器过去,幅值信息就出来了。
具体怎么做?标准流程是这样的:
- 采集三相电压 \( v_a, v_b, v_c \)
- 做Clark变换,得到 \( v_\alpha, v_\beta \)
- 做Park变换,得到 \( v_d, v_q \)
- 计算电压幅值 \( V = \sqrt{v_d^2 + v_q^2} \)
- 与额定电压比较,得到跌落深度
代码实现其实不复杂,我贴一段我项目里用过的核心逻辑:
// 三相电压采样值
float va, vb, vc;
// Clark变换
float valpha = (2.0/3.0)*(va - 0.5*vb - 0.5*vc);
float vbeta = (2.0/3.0)*(0.866*vb - 0.866*vc);
// Park变换(theta来自PLL)
float vd = valpha*cos(theta) + vbeta*sin(theta);
float vq = -valpha*sin(theta) + vbeta*cos(theta);
// 电压幅值
float Vmag = sqrt(vd*vd + vq*vq);
// 跌落深度(标幺值)
float sag_depth = 1.0 - Vmag / Vnominal;
这里有个坑:如果PLL在故障下失锁了,theta就不准了,dq变换出来的值就是错的。所以实际工程中,我建议用双dq变换或者基于αβ的幅值计算做冗余。我在一个海上风电项目里就吃过这个亏——PLL一抖,保护误动,风机全切了。后来加了αβ通道的幅值校验,再没出过问题。
关键指标:故障检测时间通常要求在1ms以内,dq变换+低通滤波的延迟大约在200-500μs,够用。但如果滤波器阶数太高,延迟会超标,要注意平衡。
4.2 对称/不对称故障识别
检测到电压跌落了,下一步就是判断:是三相一起跌(对称故障),还是只有一两相跌(不对称故障)?
为什么这么重要?因为应对策略完全不同:
- 对称故障:三相平衡,负序分量为零。控制上只需要注入正序无功电流,支撑电网电压。
- 不对称故障:出现负序分量。如果不处理,负序电流会导致直流母线电压二倍频波动,严重时烧电容。
识别方法其实很简单——看负序电压的幅值。我用的是对称分量法:
// 从dq变换得到的正序、负序分量
// 正序:vd_pos, vq_pos
// 负序:vd_neg, vq_neg
float Vneg_mag = sqrt(vd_neg*vd_neg + vq_neg*vq_neg);
float Vpos_mag = sqrt(vd_pos*vd_pos + vq_pos*vq_pos);
// 不对称度
float unbalance = Vneg_mag / Vpos_mag;
if (unbalance > 0.05) {
// 判定为不对称故障
fault_type = ASYMMETRICAL;
} else {
// 对称故障
fault_type = SYMMETRICAL;
}
阈值设多少?我一般取5%。低于5%可以认为是测量噪声或轻微不平衡,高于5%就判为不对称故障。当然,这个值你可以根据现场情况微调——我在一个弱电网项目里把阈值调到了8%,因为背景谐波太大,5%会误报。
避坑指南:我曾经在一个光伏电站调试时发现,负序分量在正常运行时也有3%左右。查了半天,原来是变压器绕组阻抗不平衡导致的。所以建议在并网前先做一次「背景噪声」测量,把正常情况下的负序水平记录下来,作为阈值设定的参考。
4.3 锁相环(PLL)在故障下的行为
PLL这东西,正常电网下表现很好,一遇到故障就容易「抽风」。我见过最夸张的一次,PLL在电压跌落时输出频率从50Hz跳到了80Hz,然后变流器直接过流保护跳了。
为什么会这样?因为传统PLL(比如SRF-PLL)在不对称故障下,dq轴电压里会混入二倍频分量。这个分量经过PI调节器后,会让输出频率和相位产生振荡。
具体表现:
| 故障类型 | PLL行为 | 后果 |
|---|---|---|
| 对称故障(三相跌落) | 频率基本稳定,相位可能有小偏移 | 影响不大,但幅值检测会变慢 |
| 不对称故障(单相/两相跌落) | 频率和相位出现二倍频振荡 | dq变换结果失真,控制可能发散 |
| 相位跳变(如短路瞬间) | PLL需要重新锁定,锁定时间约10-50ms | 期间控制可能失效 |
怎么解决?我常用的方案有几种:
- 方案一:在PLL前加陷波器,滤掉二倍频分量。简单有效,但会引入延迟。
- 方案二:用双二阶广义积分器(DSOGI)做正负序分离,只把正序分量送给PLL。这个方案我比较推荐,性能好,但计算量稍大。
- 方案三:故障期间直接切换到开环控制——用故障前的频率和相位做参考,等故障清除后再重新锁定PLL。这个方案我在一个对成本敏感的项目里用过,效果还行,但要注意频率漂移。
警告:千万不要在PLL失锁时还依赖它的输出做控制。我见过一个同行,PLL已经抖到不行了,还拿它的角度做Park变换,结果电流环直接饱和,IGBT炸了。记住:PLL不可靠时,宁可切换到开环模式,也别硬撑。
4.4 本章知识体系
为了让大家更直观地理解整个故障检测与分类的流程,我画了一张图:
这张图把整个流程串起来了:从三相采样开始,经过dq变换得到幅值和正负序分量,然后分别计算跌落深度和不对称度,最后综合判定故障类型并选择对应的控制策略。每一步都有坑,每一步都需要工程经验去填平。
好了,这一节的内容就到这里。记住:故障检测是电网穿越的第一道防线,检测慢了或者判错了,后面的控制再好也白搭。下一节咱们聊聊故障期间的无功电流注入策略——那才是真正考验控制功底的地方。