做风电仿真的人多半都经历过这一下:风机正常发电、转速跟踪、功率解耦,各个控制环都调得好好的,然后满怀信心地把电网电压跌落故障加进去,点击运行,结果转子电流瞬间冲到额定值的好几倍,直流母线电压直接顶到保护限值,整个模型跟着发散。这时候才真正理解,双馈风力发电机(DFIG)的低电压穿越(LVRT)绝不是控制策略里加个限幅就完事,电网故障的那几十毫秒里,转子回路的过流和过压必须由硬件保护硬扛下来。本文要拆解的就是这类仿真模型里最核心的保护电路——Crowbar电路,即撬棒保护电路,以及基于它的完整Simulink/Simscape建模、参数设计、故障注入和波形判读过程。内容面向正在做DFIG并网仿真、LVRT控制研究或并网逆变器保护设计的工程师和研究生,目标是让你照着这套思路就能自己搭出一套能跑通、能出漂亮波形的仿真模型。
Crowbar这套东西,很多人听说过,但真要在Simulink里落地,会发现坑非常多:撬棒电阻取多少、什么时候投入、什么时候切除、故障切除后怎么让控制器无扰重启,这些细节在原论文里往往是一笔带过的。我自己反复调过这类模型,把值得记录的点整理成下面几大块,从原理、设计到仿真细节逐个说清楚。
1. 为什么电网电压跌落时转子侧变流器首当其冲
1.1 故障瞬间转子回路里到底发生了什么
双馈电机和普通笼型异步电机的最大区别在于转子绕组可以外部接入变流器,所以定子直接接电网,转子通过背靠背变流器与电网相连。这种拓扑给变速恒频运行带来了很大灵活性,但也让转子侧变流器暴露在一个天然的风险里:定子侧电网扰动会通过磁链耦合直接冲击转子回路。
电网电压发生跌落时,定子电压幅值骤降,但定子磁链不能突变。学过电机暂态的人都知道,磁链守恒决定了故障瞬间定子磁链中会出现一个强制分量和一个以时间常数衰减的自然分量。自然分量相当于一个直流或低频偏置磁链,它相对转子绕组以接近同步转速的角速度旋转。转子本身就是旋转的,两者之间的相对运动会在转子绕组中感应出很大的电动势。
这个感应电动势有多大?可以做一个很直观的估算。正常运行时,转子开路电压大约等于转差率乘以定子电压,转差率s通常在±0.3以内,所以转子侧电压本来很低,这正是不需要高压变流器的原因。可是当定子磁链的直流分量叠加进来后,转子绕组切割该磁链的速度接近同步速,感应的反电动势接近(1-s)倍的定子电压。也就是说,哪怕电网电压跌到0.2pu,转子回路依然可能感应出接近额定定子电压量级的电动势。这个电动势如果全部压在转子侧变流器上,直流母线就会瞬间抬升,IGBT器件面临过压烧毁的风险,同时转子电流也会以极快的速度突破限值。
用一个生活化的类比:定子磁链故障分量就像管道里突然冲过来一股水锤,变流器是下游一个精密的流量调节阀,水锤到来的一瞬间,阀门根本没有时间去调节,必须在阀门前面开一个旁通泄压口,把多余的压力引走。Crowbar电路就是这个旁通泄压口。
1.2 撬棒保护在整个LVRT方案里的定位
围绕DFIG低电压穿越,学术界和工程界提出过很多思路:改进转子侧控制策略、加虚拟阻抗、增加无功支撑、采用储能装置、串补电压恢复等。但无论控制策略怎么改,硬件层面的安全底线始终是必须的。Crowbar的设计定位就是:故障期间优先保护转子侧变流器,把过流从变流器中引走,通过撬棒电阻将转子绕组短路或经阻抗短接,让故障能量以热能形式消耗掉。
这也决定了在仿真模型里,Crowbar不应该被当成一个可有可无的附加环节,而应该是整个LVRT模型的保护核心。不管后面你打算研究对称故障、不对称故障、负序抑制还是故障穿越期间的无功支撑,只要模型里有DFIG,Crowbar的参数和投切时序就会直接影响故障期间的所有波形。换句话说,先把这个基础保护做扎实,再去谈控制器改进才是有意义的。
各个区域的并网导则通常都会给出一条电压跌落的时间曲线,例如要求电压跌落到一定深度时风机不脱网、故障切除后快速恢复有功输出,并在故障期间提供一定的无功电流支撑。这些要求落到仿真里,靠的就是Crowbar投入期间转子电流得到限制、直流母线不过压,以及故障切除后系统能稳定恢复这几个硬指标。
2. Crowbar电路的拓扑选型、阻值推导与投切时序设计
2.1 主动式与被动式撬棒,仿真模型应该选哪种
Crowbar在物理实现上有被动式和主动式两大类。被动式一般由二极管整流桥加晶闸管构成,转子电流超过阈值时自然导通,不需要外部触发,结构简单,但导通后切除不可控,不适用于需要快速复位和无功支撑的现代风电机组。主动式撬棒则用IGBT或可控器件控制电阻投入,投切时刻完全由控制系统决定,这也是当前工程应用的主流。
在Simulink里,我们不需要真的把二极管整流桥和晶闸管都搭出来,更重要的是复现它的电气行为和控制逻辑。常见的做法是用一个理想开关加一个三相电阻组成的撬棒支路,并联在转子绕组绕组与转子侧变流器之间。遇到故障时,开关闭合,转子绕组通过电阻短接,变流器同时封锁脉冲,这样故障能量全部走撬棒支路。用理想开关的好处是仿真速度快,参数直观,不会引入不必要的器件导通压降和损耗,而这部分细节对LVRT宏观波形的判断影响很小。
需要提醒的是,撬棒支路要能够双向导通,因为转子电流是交流量,正负半周都会流过撬棒电阻。有些初学者在建模时用一个单向开关,结果只观察到半个周期内有保护效果,另外半个周期波形异常,这就是拓扑理解不到位。
2.2 撬棒电阻值的估算过程:不能拍脑袋取
撬棒电阻的取值是整个Crowbar设计里最关键的参数,它受到两个矛盾方向的约束。
第一,电阻越大,转子电流衰减越快,磁链直流分量在撬棒导通期间的衰减时间常数就越短,系统越快进入可控状态。从这一点看,希望电阻大一些。
第二,电阻越大,撬棒导通时转子绕组短路电流在电阻上产生的压降也越大。这个压降会形成对直流母线和变流器的反压威胁,尤其考虑到转子开路电动势本身就很高,如果撬棒电压压降设计过高,转子侧变流器的反并联二极管会导通,直流母线电压照样被抬升,失去保护意义。
工程上一般用标幺值来设计撬棒电阻,常见范围为0.1~0.3pu。这个范围怎么来的?可以基于约束条件做一次估算。假设转子电流峰值限制在额定值的1.5~2.0倍以内,取短路电流基准为转子额定电流I_r,撬棒导通时电阻上的压降大约就是R_cb乘以电流峰值。将压降折算到直流母线电压,通常不希望它超过直流母线允许上限。直流母线额定电压的1.2倍左右是一个常见的设计上限,于是R_cb的上限就由U_dc_max和转子短路电流峰值的比值决定。
换算成欧姆的时候,建议先在标幺系统里确定R_cb的值,再折算到实际值。折算公式很直接: $$ R_{cb}[\Omega] = R_{cb}(pu) \times \frac{U_{rbase}^2}{S_n} $$ 注意,这里的U_rbase必须是转子侧的电压基准值,而不是定子侧电压或直流母线电压。我见过很多人在这一步用错了基准值,折算出的阻值比合理范围差一个数量级,仿真波形自然一塌糊涂。如果你用的发电机模块本身是标幺模型,直接在撬棒模块里输入标幺阻值反而更方便,Simulink内部会自动换算。
2.3 投切时序:何时投入、何时切除、如何防止反复投切
Crowbar投入判据一般有三类:转子电流瞬时值超限、直流母线电压超限、电网电压跌落检测。实际仿真里最简单的做法是三者取或,任何一个条件满足就触发撬棒投入。其中转子电流判据最直接,因为它直接反映了保护对象是否处于危险状态。
切除判据则需要更谨慎。如果电网电压尚未恢复就先把撬棒切除,转子电流会再次飙升,造成二次冲击;如果故障已经切除但撬棒切除太慢,又会拖慢无功支撑的恢复速度,影响穿越成功后的有功恢复速率。所以一般要求同时满足两个条件:电网电压恢复到额定值附近(比如90%以上),并且转子电流已回落到安全范围内。同时还要加上一个消抖延时,比如持续两三个周波,防止电压在恢复临界点附近波动时撬棒反复投入和切除。
在Simulink里实现这套逻辑,可以不用去搭复杂的Stateflow状态机,用几个比较器、逻辑门和一个延时模块就够了。我自己的习惯是:先做电压有效值检测,再做转子电流幅值检测,两个信号进入一个带复位的RS触发器,触发输出作为撬棒开关的闭合信号。这样既简单,又避免了纯组合逻辑下撬棒在故障瞬间高频抖动的麻烦。
3. 在Simulink里把模型拆成四块搭:风力机、发电机、变流器与故障模块
3.1 风力机与传动链:LVRT里怎样简化才合理
完整的风力机气动模型包含风速、桨距角、叶尖速比和功率系数之间的关系。Simulink里可以直接用现成的Wind Turbine模块,输入风速和桨距角,输出机械转矩。气动功率公式本身不复杂: $$ P_m = \frac12 \rho \pi R^2 v^3 C_p(\lambda,\beta) $$ 其中λ是叶尖速比,β是桨距角。做LVRT仿真时,如果你研究的重点是故障期间的电暂态,那么一个值得注意的取舍是:风速在故障期间基本不变,气动转矩变化也很缓慢,所以这部分不需要特别精确,甚至可以固定风速、固定桨距角,只保留功率系数的查表特性。
传动链方面,建议至少保留两质量块模型,即风机大惯量、发电机小惯量和中间的柔性轴。故障瞬间电磁转矩会突降,而气动转矩来不及变化,于是转速开始上升,轴系出现扭转振荡。两质量块模型能真实反映这个振荡过程和它对后续变流器控制的影响。如果为了追求仿真速度把所有惯性都合成一个质量块,虽然大多数时候波形也看起来正常,但故障切除后的转速恢复过程会失真。
惯量时间常数按照实际机组数量级去设置,发电机侧惯量通常在0.5~2秒量级,风轮侧的等效惯量可以达到3~5秒。仿真时长控制在2~3秒既能覆盖整个LVRT过程,又不至于让运行时间变得不可接受。
3.2 发电机本体与背靠背变流器的搭建要点
发电机本体在Simscape Electrical里选择绕线转子异步电机模块,也就是wound rotor类型的异步电机模型。定子侧通过变压器和线路阻抗接入无穷大电网,转子侧则接背靠背变流器。
变流器部分,整流器和逆变器都可以用Universal Bridge模块实现,每侧三个桥臂,开关器件选IGBT。转子侧变流器RSC负责转子电流控制和有功无功调节,网侧变流器GSC负责维持直流母线电压和网侧功率因数。两个变流器之间通过直流母线电容连接,母线电容的容值直接影响直流电压波动幅度,一般按工程经验取一个满足母线电压纹波约束的值,在仿真里用典型机组参数即可。
搭建时有一个容易被忽视的细节:转子侧变流器和撬棒支路的连接位置。撬棒支路应该并联在转子绕组引出端与RSC输入端之间,而不是直接并在直流母线上。这样撬棒投入时,转子绕组电流从RSC转移进撬棒电阻,RSC同时封锁脉冲,才能形成完整的保护通路。
我建议把整个主电路按物理结构分段命名:定子侧、转子侧、直流环节、撬棒支路、故障模块,这样后续排查波形问题时能快速定位是哪一段的问题。Simulink的走线较多,良好的命名习惯能省下大量调试时间。
3.3 转子侧与网侧控制器:磁链定向的本质和限幅处理
双馈电机的控制核心是转子侧变流器采用定子磁链定向的矢量控制,网侧变流器采用电网电压定向。坐标变换把三相交流量变成dq轴下的直流量,然后就可以用传统的PI控制器来调节。
转子侧控制器的外环通常是有功/无功功率环或转速环,内环是转子电流dq轴分量。网侧控制器外环是直流母线电压环,内环是网侧电流。故障期间如果撬棒投入,转子侧变流器脉冲封锁,控制器停止工作;等到撬棒退出后,控制器需要快速重建磁链定向,恢复功率调节。这就引出一个重要的仿真细节:坐标变换的相角在故障期间会持续变化甚至跳变,恢复瞬间如果磁链角重建不准,电流环会出现短暂冲击。解决办法是在控制逻辑里加入软启动或输出限幅,让PWM占空比从当前值平滑恢复,而不是直接切到满占空比。
限幅处理是所有控制器搭完后必须回来检查的环节。转子和网侧电流指令都要加上限幅,一般取1.1~1.2pu,防止故障切除后的暂态电流把新的控制环又冲爆。我还见过有人在所有PI调节器输出都没有限幅的情况下跑仿真,稍微一个扰动,PWM调制波就饱和了,波形出现大量谐波,却误以为是算法没写对。
3.4 故障注入:怎么控制跌落深度、故障持续时间和故障类型
在Simulink里做电网故障,最方便的是使用Three-Phase Fault模块,把它串联在发电机场侧与无穷大电网之间。故障模块可以设置三相故障、两相故障、单相故障,也可以设置接地电阻。
跌落深度由接地阻抗决定。直接三相接地短路时,并网点残压最低,接近0,这是最严酷的工况,可以用来检验Crowbar的极限性能。如果想模拟更常见的工业场景,可以加入接地阻抗,让电压跌落到额定值的20%或50%,对应不同导则要求的穿越深度。
故障持续时间通常设置为几百毫秒,我常用的时间序列是:0~0.1s正常运行,0.1s故障投入,0.625s故障切除,0.7~1.2s观察恢复过程,1.5~2.0s仿真结束。这样一个时间序列覆盖了故障前稳态、故障暂态、撬棒投入过程、故障切除后的恢复全流程。故障发生和撬棒投入之间不要设成完全同一时刻,而是让撬棒延迟1~2毫秒再动作,这样能观察到转子电流在保护动作前的真实尖峰,也更符合实际硬件中检测回路和控制触发的固有延迟。
4. 仿真参数整定与步长选择:跑得动、跑得稳、跑得快
4.1 连续还是离散,求解器怎么选
LVRT仿真里既有电力电子的高速开关动作,又有机械系统的慢动态,整套模型具有很强的刚性。对于这种系统,仿真器设置非常关键。
如果你用的是Simscape Electrical的连续模型加PWM平均模型,推荐求解器选择变步长的ode23tb或ode15s。这两个求解器专门处理刚性系统,能在电磁暂态变化剧烈时自动缩小步长,在稳态阶段又自动放大步长,兼顾精度和速度。如果用的是离散电力电子开关模型,则需要在PowerGUI里设置离散采样步长,一般取5e-5到1e-4秒比较合理。步长太大会导致开关时刻误差,直流母线电压波形毛刺严重;步长太小又会让仿真慢到让人失去耐心。
还有一个非常实用的建议:机械系统和控制系统里如果有纯一阶惯性环节、滤波时间常数极小的低通滤波器,这些环节会降低整体仿真的最大可用步长,拖慢仿真速度。可以把控制环里那些对结果影响微弱的超低通滤波去掉,或者将时间常数适当放宽到能保证稳定性的最小值,仿真速度会明显提升。
4.2 控制环PI参数整定的顺序和典型初值
PI参数整定是这类模型里最花时间的部分,但只要遵守顺序,并没有想象中那么折磨。我的习惯是:先把所有变量折算到标幺系统,然后从电流内环开始整定,再从内到外整定外环。
电流内环要求响应快、稳态误差小,通常把带宽设置在整个系统基频的1/5到1/10量级,具体初值可以参考一组典型标幺参数:电流内环比例系数0.3~0.6,积分系数20~50;直流母线电压外环比例系数5~10,积分系数50~100。转子转速/功率外环因为机械时间常数大,响应速度要求最低,比例系数可以更小。
值得注意的是,不同容量的机组,即使所有PI参数都用标幺值表示,各物理量之间的耦合因子也不同,一组好的参数必须结合你自己的模型微调。我最常用的调试方法是先用小比例系数、大积分系数的偏保守整定,保证仿真不炸,然后逐步加大比例系数观察阶跃响应和抗扰动能力,直到波形出现可接受的振荡临界点再往回调一点。这个方法虽然笨,但在故障穿越这种多环节耦合系统里最可靠。
4.3 故障事件与仿真时长:一次完整LVRT仿真的标准时间轴
我整理了一份自己常用的时间轴配置,直接复制到你的模型里就能用:
| 时刻 | 事件 | 目的 |
|---|---|---|
| 0~0.1s | 正常运行 | 让风机达到稳态工作点 |
| 0.1s | 电网三相对地故障 | 触发电压跌落,开始LVRT过程 |
| 0.1s+1ms | 撬棒投入、RSC封锁 | 观察保护动作是否及时 |
| 0.625s | 故障切除 | 验证故障切除后的系统恢复性能 |
| 0.625~1.2s | 撬棒切除、RSC重启 | 验证控制器能否无扰恢复 |
| 1.2~2.0s | 系统重新稳定 | 观察有功功率、转速恢复趋势 |
这套时间轴也方便你后处理读数:故障前稳态取t=0.08s附近的一个周波,故障期间取t=0.3s附近,故障切除暂态取t=0.63s附近,恢复后稳态取t=1.5s左右。这样无论分析波形还是计算穿越成功率,都有明确的窗口对应。
5. 波形判读与踩坑排查:怎么确认模型真的穿越成功了
5.1 预期波形长什么样:先建立正确的心理预期
判断模型是否正确,首先要清楚每个关键变量在故障期间的合理变化形态。各变量预期如下:
转子电流在故障发生瞬间会出现一个很高很窄的尖峰,持续时间非常短,撬棒投入后电流应迅速回落到限幅值附近,并且在撬棒导通期间持续衰减。直流母线电压会在故障瞬间出现一个上冲,但不应持续升高,在撬棒投入后应在一个周波左右回落并保持在允许值以内。定子电流会出现大电流冲击,随后进入故障电流状态,幅值大小由电网阻抗和定子阻抗决定。电磁转矩会大幅跌落,如果故障很严重甚至可能短时出现负转矩,转速在故障期间因不平衡功率而有所上升,故障切除后才逐渐回落。
这些波形之间是有物理逻辑的。比如转子电流尖峰的宽度应该和撬棒投入延时一致,如果尖峰持续了好几个周波,那说明撬棒判据或触发逻辑没起作用;直流母线如果持续上升而转子电流已限制住,那问题可能出在GSC侧。
5.2 常见异常现象、原因和排查方向
实测中遇到最多的问题,我用一张表总结:
| 异常现象 | 可能原因 | 排查方向 |
|---|---|---|
| 转子电流尖峰后持续振荡不衰减 | 撬棒电阻过小,磁链衰减太慢 | 增大电阻到0.2~0.3pu附近 |
| 直流母线电压持续上升 | GSC电流环未有效工作,或RSC封锁后网侧功率无法回馈 | 检查GSC脉冲是否封锁、母线电压环是否参与调节 |
| 撬棒投入后不平滑,波形毛刺多 | 直流母线电容偏小或仿真步长太大 | 增大母线电容;减小离散步长 |
| 故障切除瞬间出现第二次冲击 | 撬棒切除过早、电压恢复判据太激进 | 增加电压恢复判据的确认时间 |
| 故障切除后有功恢复很慢 | 控制器重启后磁链定向重建慢 | 检查坐标变换角是否用磁链角跟踪器,而非简单锁相环 |
| 整个模型数值发散 | 求解器刚性不够或控制限幅缺失 | 换ode23tb,给所有PI输出加限幅 |
这里想单独强调一个问题:很多人在撬棒投入期间习惯把转子侧变流器的脉冲全部封锁,这确实是最安全的保护策略,但也会带来故障期间无功支撑能力为零的问题。如果你的研究重点是无功穿越支撑,那需要在撬棒投入后、转子电流受限的前提下,逐步恢复RSC的部分控制能力,也就是所谓的撬棒与励磁协调控制。这属于进阶玩法,先把基础Crowbar保护调到理想状态,再做这一层。
5.3 穿越成功与否的判定标准
仿真模型能不能算穿越成功,我一般从三个维度去判:一是保护有效,故障期间转子电流峰值被限制在设定限值以下,直流母线电压不超过允许上限;二是系统稳定,故障切除后转速、电压、功率能进入持续减幅振荡并恢复平衡,而不是周期振荡或持续发散;三是恢复性能,有功功率能在要求时间内恢复到故障前水平附近,无功支撑期间输出的无功电流符合导则曲线要求。
如果这三个维度都满足,Crowbar电路的设计和模型搭建就可以认为通过了。接下来无论你是要对比不同的撬棒电阻取值、优化投切策略,还是在同一模型上叠加负序抑制算法,都有了可靠的基础。
最后分享一个我自己调试这类模型时的习惯:判断撬棒保护效果,不要只盯着转子电流幅值,还要同时看直流母线电压和电磁转矩波形。转子电流被限住但直流母线依然失控的案例我遇到过不少,说明问题往往在网侧控制或者母线电容上,而不是撬棒本身。调参时优先保证这三个量两两协调,模型整体就稳了大半。另一条经验是,Crowbar投切逻辑尽量用带滞环比较的状态逻辑,不要用简单的比较器加阶跃信号,否则故障切除瞬间的电压波动很容易让撬棒反复通断,波形难看不说,还可能掩盖真正的控制质量问题。