ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

FCTCR无功补偿装置Simulink仿真建模与调试全解析

FCTCR无功补偿装置Simulink仿真建模与调试全解析 我不是第一次做这种无功补偿的方案比选但固定电容器可控晶闸管无功补偿装置FCTCR这个组合是我觉得最适合拿来上手、又能直接落地工程的拓扑之一。简单说这套装置把固定电容器FC和晶闸管控制电抗器TCR并联在一起用可控晶闸管的导通角去连续调节电抗器的等效无功配合固定电容器的容性无功输出最终让整套设备能够双向、连续地发出无功给电网做电压支撑或功率因数补偿。配套的Simulink仿真是整个项目里最能挖细节的部分藏着大量“看上去简单、实际到处是坑”的知识点。这篇就围绕FCTCR的顶层设计、核心控制思路、Simulink建模步骤和常见调试问题展开给正在做电力系统仿真或者无功补偿工程方案的朋友做一个完整参考。1. FCTCR装置整体设计与控制思路拆解1.1 为什么要把“固定电容”和“可控电抗”放在一起很多人第一次看到“固定电容器”加“可控晶闸管”这个组合会觉得矛盾电容是发无功的电抗是吃无功的把它们并联在一起不是互相抵消吗这正是FCTCR的精妙之处。固定电容器FC的特性很直白它提供一个基本恒定的容性无功功率只要母线电压波动不是特别夸张这一路输出基本不变。晶闸管控制电抗器TCR的作用则像是一个“可调的无功水龙头”——电抗器本体是固定电感但串联在回路里的两只反并联晶闸管可以通过触发角控制每个工频周期内电感的通电时间。导通时间越长电感对基波呈现的等效导纳越大吃掉的感性无功就越多导通时间越短等效电感越小近似于开路。当FC和TCR并联到一起时整套装置对外输出的无功功率就是Q_SVC Q_FC - Q_TCR(α)固定电容给出一个向下的基准容性量TCR在这个基础上“吃掉”一部分容性无功。只要连续调整TCR的触发角α就能让装置总输出从“纯容性最大”平滑过渡到“感性侧”甚至完成从感性到容性的双向连续调节。这个拓扑相比纯电容器组投切最大的优势是没有机械开关没有冲击电流响应速度可以做到毫秒级非常适合电压波动剧烈的工业负荷场景。相比纯TCR方案它又用廉价电容器承担了基础无功TCR容量可以做得相对小经济性更好。某种程度上说FCTCR是在“性能”和“成本”之间取了一个工程上最实用的平衡点。1.2 关键控制目标与调节范围计算设计一套FCTCR首先得明确补偿目标参数。以我当时做的10kV配电网场景为例系统短路容量约200MVA负载是一组轧机类冲击性负荷有功大约5MW无功在4Mvar左右波动自然功率因数只有0.78。治理目标是把母线功率因数提升到0.95以上同时母线电压跌落不低于0.97pu。先估算补偿容量。负载初始无功为Q_load P × tan(arccos(0.78)) ≈ 5 × 0.802 ≈ 4.01Mvar如果目标功率因数是0.95那么目标无功为Q_target P × tan(arccos(0.95)) ≈ 5 × 0.329 ≈ 1.64Mvar需要补偿的容性无功就是Q_comp Q_load - Q_target ≈ 4.01 - 1.64 ≈ 2.37Mvar但工程上不能卡着边界设计因为负载会波动、母线电压也会变化所以我选了固定电容器组容量3.6MvarTCR支路额定容量5Mvar。这样做的好处是当TCR完全关断α180°时FC全容量输出装置能发3.6Mvar容性无功当TCR全导通α90°时TCR吸收5Mvar感性无功装置总输出相当于-1.4Mvar整体快速穿越整个补偿区间。调节范围有了接下来就是把触发角α和等效电纳准确对应起来。TCR单相基波等效电纳表达式是B_TCR(α) (2π - 2α sin2α) / (πωL)其中α是晶闸管触发延迟角范围90°~180°。α90°时B_TCR1/(ωL)达到最大值也就是全导通α180°时B_TCR0完全关断。这个公式在Simulink里既可以直接写在Fcn模块里也可以离线算好做成查表后续控制系统要用。1.3 控制策略选型恒电压还是恒无功FCTCR的控制目标一般分两种模式——恒无功模式和恒电压模式。恒无功模式适合用在负荷波动比较规律的场合控制器直接比较实时无功与无功参考值输出触发角指令恒电压模式更适合并网点电压波动明显、需要优先稳定电压的场合控制器比较母线电压有效值与参考值输出触发角。实际项目中我首选恒电压模式原因很简单现场并网点电压是电能质量最敏感的指标而且在PCC点把电压稳住无功自然也就平衡了。Simulink仿真里两种模式都能搭切换起来也很方便只要换掉反馈量即可。控制结构采用经典电压外环、无功内环或者直接单环PI配合触发角限幅。2. Simulink仿真建模从主电路到触发系统的完整搭建2.1 主电路拓扑搭建方式仿真模型的顶层架构我习惯按照“系统电源—变压器—负载—FCTCR装置—测量与控制”五个区块来排布这样后期调参和排查问题会节省大量时间。电源侧用一个Three-Phase Source我设成35kV、50Hz内阻设置一个较小的短路电感模拟实际系统。变压器选择Three-Phase Transformer (Two Windings)变比35kV/10kV容量10MVA短路阻抗设为6%。负载用Three-Phase Series RLC Load有功和无功都设置成一个可变的阶跃信号方便后面观察动态响应。FCTCR本体由两部分构成固定电容器组用Three-Phase Series RLC Branch连接方式选星形接地或者三角形都可以我通常选星形接地便于分析电压电流容量按前面计算的3.6Mvar折算到10kV线电压下的每相容抗。C Q_FC / (3 × U_ph² × ω)这里U_ph是相电压有效值约5774Vω314.16代入可得每相电容大约114.7μF。TCR支路电抗器用三相RLC branch电感值按额定容量5Mvar折算L U_ph² / (ω × Q_TCR_rated / 3)算出来约19.9mH。晶闸管阀组我用Universal Bridge模块选择“Thyristor”类型桥臂数设3这样等效成三组反并联晶闸管内部已经有了RC吸收回路和导通压降设置仿真精度足够。这里有一个我自己踩过的坑不要把电抗器和晶闸管阀组分开直接串联在Simulink里就完事必须注意TCR电抗器在三角形接法下每相承受的是线电压做参数折算时不能用相电压。用星形接法时虽然每相电压低但阀组耐压要求不同。建议从一开始就明确主电路接法推荐星形接中性点不接地工程实现和仿真都很方便。2.2 六脉冲触发系统怎么搭才准确触发系统是整个FCTCR仿真最容易出错、也最考功夫的地方。核心要求是每只晶闸管的触发脉冲必须严格与对应线电压的过零点同步并且能根据控制器的α指令在正确的延迟角度发出脉冲。我在模型里用的是“PLL锁相环 锯齿波比较”的经典方案。先用Simscape Electrical里的Three-Phase PLL锁定母线A相相电压的相位和频率输出一个在0~360°之间变化的角度信号。把这个角度经过一个Fcn模块换算成与线电压换相点同步的同步锯齿波u mod(θ 30, 360)再缩放成0~180对应0~1的归一化载波。控制器输出的α参考值也归一化到0~1两者送入Relational Operator模块做比较当同步锯齿波的值小于等于α归一化值时输出高电平。这个“高电平”不是最终触发脉冲还需要做两件事——一是通过Pulse Generator把连续高电平变成一个带死区的窄脉冲我通常设成3°宽度远远小于60°避免两个桥臂直通二是把单路脉冲逻辑复制成6路每路间隔60°对应到Universal Bridge的六个门极输入。触发角的参考坐标特别值得注意。很多人第一次做TCR模型会用相电压过零点作同步基准但TCR晶闸管实际的自然换相点对应的是线电压过零点。不做这30°修正的话触发角会系统性偏移仿真电压电流波形不明显但你算出来的等效电纳和理论值怎么都对不上。这个细节在过去好几个项目里坑过我建议大家搭建时直接用线电压同步。2.3 测量环节与电气量提取控制需要三个实时反馈量母线电压有效值、装置总无功功率、TCR支路电流。母线电压用Three-Phase V-I Measurement直接并联在FCTCR接入点然后在Simulink里用三相电压幅值转换模块算出线电压有效值再标幺化到10kV基值。无功功率用连续的无功计算模块基于瞬时功率理论Q(Ua*IcUb*IaUc*Ib)通过代数运算得到避免用平均值模块产生延迟。这里如果想看稳态波形直接把测量信号接到Scope如果想算FFT谐波Scope的数据需要存到工作区我一般把测量信号过一遍To Workspace模块采样时间设成50μs后续分析就方便了。还要提醒一点电压电流测量模块输出的是瞬时值控制环里做PI运算如果直接拿瞬时值进去会让控制器乱跳。必须先做有效值变换和标幺化再进PI。3. 控制系统设计与PI参数整定细节3.1 控制系统整体结构与信号流我的控制系统按“电压参考—电压比较—PI调节—电纳换算—触发角映射—脉冲生成”六个环节来组织。电压参考Uref设1.0pu实际有效值Umeas经过低通滤波后和Uref做差进入PI调节器。PI输出是SVC等值电纳参考值Bref。这里为什么要用Bref作为中间变量而不是直接输出α因为Bref和α之间存在明确的解析关系而且从控制角度看电纳是线性化程度更高的被控量先算Bref再做非线性映射PI参数的适应范围更宽。拿到Bref后需要把它转换成触发角α。方法有两种解析法在MATLAB Function模块里直接写 B_TCR(α) 的反函数用fzero求解。优点准确缺点是每次仿真步都要迭代模型变慢。查表法离线在0~180°区间内按0.5°间隔计算好B_TCR值存成数组再用Lookup Table模块查表。实时性好精度足够工程里更常用。我推荐查表法。Simulink里的Lookup Table可以直接用向量输入输出把α_vec和B_vec填进去就行。注意α范围要严格限制在90°~180°查表之外的点要用外插值防止PI积分饱和时输出跳到异常角度。3.2 PI参数整定与抗积分饱和控制系统PI参数的初始整定我直接用工程经验公式起步。SVC天生带有大惯性电压环比例系数Kp不宜过大否则装置会在系统扰动时出现持续振荡。我的经验是先设Kp0.5~1.0Ki10~20然后观察阶跃响应逐步调。具体到Simulink操作先用一个Step信号模拟负载无功从3Mvar跳到5Mvar观察母线电压的恢复时间。如果电压有超调并且来回摆降Kp如果恢复太慢升Ki如果出现高频震荡检查测量环节的低通滤波器截止频率是不是太高。抗积分饱和是我在所有实际仿真里都会处理的一环。控制器输出Bref超过物理极限时PI积分项会不断累积导致触发角被限幅挡住、控制回路失效。我的做法是在PI模块后面加一个Saturation模块把Bref限制在装置的实际容量范围内同时把限幅后的信号反馈回PI模块的积分器重置端形成“积分钳位”。具体在Simulink里可以给Discrete-Time Integrator设置“Limit output”选项勾选“State name”并连接外部重置信号或者干脆用带反馈的Anti-windup PI子模块网上的标准库里有现成的。有几次现场调试时遇到过升温导致的触发角漂移仿真里其实可以通过增加一个小的“电纳闭环校正”来模拟。但这个环节容易把模型复杂化新手阶段可以先不加等主回路稳定后再说。3.3 从控制理论到仿真模型的常见误区一是把PLL和触发角同步混在一起。PLL输出的角度只是同步参考不能直接用来比较触发角。第二个误区是PI直接输出α以后不做限幅。α天然只能在90°~180°之间有效超出这个区间晶闸管要么全通要么全断控制失去意义。三是忽略测量延迟。电压有效值测量如果采用平均值算法本身至少有一个工频周期延迟控制环的带宽会显著下降这时必须把PI参数相应调慢否则系统容易振荡。4. 仿真结果分析与典型工况验证4.1 补偿效果对比投入前后功率因数与电压模型搭完后我仿真出来的结果和自己计算的预期基本一致这里把关键波形和数值记录下来方便大家对照验证自己的模型。未投FCTCR时负载侧电流明显滞后电压母线电压有效值在0.93pu~0.94pu之间波动功率因数只有0.78上下。投入FCTCR之后控制器自动调整触发角到大约135°母线电流和电压几乎完全同相位功率因数稳定在0.99附近同时母线电压恢复到了1.0pu左右。用Powergui里的FFT工具看电流谐波总畸变率THD大概4.5%其中5次谐波最明显约占总谐波的70%。这里强调一点TCR天然会产生特征次谐波3的倍数次在星形接法里被自然消除但5、7、11、13次谐波都存在。固定电容器FC在全电压下对高次谐波呈现低阻抗如果系统背景谐波较复杂FC支路可能会放大某些谐振频率的谐波工程上经常会在FC支路上串联一个小调谐电抗器做成滤波通道。仿真里如果发现THD偏高优先检查系统背景谐波和FC支路的谐振点。4.2 动态响应测试负载突变与触发角变化动态性能测试我做了两个场景。第一个是负载无功从3Mvar阶跃到5MvarTCR的触发角在控制器作用下从140°平滑调整到接近120°母线电压在0.12秒内恢复到0.98pu以上整个过程没有明显超调。第二个场景是系统电压从1.0pu跌落到0.95puFCTCR的容性无功输出迅速增大把电压顶回到0.98pu。这个响应速度对于工业负载来说已经相当不错。如果你做的仿真里响应速度过于激进触发角变化速率很大容易导致TCR电流出现间断甚至不对称。这时候可以在控制环路里增加一个触发角变化率限制模块比如设定每工频周期α的变化不超过10°。4.3 关键波形细节触发角与TCR电流的对应关系观察TCR电流波形时有个重要特征当α在120°左右时电流波形不再是连续正弦波而是被晶闸管切出一段一段的脉冲形态波形中间会出现一个“空洞”这是TCR处于断续工作模式的正常表现不代表模型错误。电流过零点附近还会出现一些小的振荡这是晶闸管换相过程中的电磁暂态和RLC吸收回路共同作用的结果。如果你看到TCR电流波形里有一段突然对称的“尖刺”大概率是触发脉冲宽度设置太宽导致两个晶闸管同时导通形成类似“直通”的短路状态。我通常把触发脉冲宽度限制在3°~5°电角度既保证可靠触发又避免重叠导通。5. 常见问题速查与工程经验汇总5.1 Simulink建模典型故障排查表故障现象可能原因解决办法仿真报错“Powergui”或被强制停止没有加入Powergui模块或离散求解器步长过大在模型末尾添加Powergui选择离散仿真步长设50μs触发角无输出或一直等于初值PI参数初始值不在有效范围或者参考值比较逻辑反向先手动固定α120°验证主电路再调试控制环触发角运行中跳到90°以下PI饱和导致α越限增加Saturation并把限幅信号反馈回PI积分器补偿后电压出现持续振荡电压反馈滤波太慢或PI比例过大降低Kp适当提高低通滤波器截止频率TCR电流波形出现尖峰直通触发脉冲宽度过大或顺序错误将脉冲宽度降到3°~5°重新检查六路脉冲间隔谐波分析结果远高于预期FC支路与系统发生并联谐振检查FC支路串扰频率必要时串接调谐电抗器动态响应过于迟钝测量有效值环节延迟过大改用瞬时值计算或加快测量更新频率这套排查表不是凭空臆想的每一条都来自于实际搭建模型时的“救火”经历。尤其是仿真速度和精度的取舍步长从50μs加大到200μs模型能快4倍左右但触发角偏差也会从0.5°扩大到2°以上电网侧波形毛刺明显增多。我自己始终优先保证精度稳定后再尝试用变步长加速。5.2 几个我觉得无论如何都要记住的仿真心得第一个心得是主电路参数必须先手算再进仿真。如果连FC容量、TCR电感、系统短路容量都没算清就拖模块出来任何异常都很难判断是参数问题还是控制问题。我习惯把前面1.2节的公式过程写成MathCAD或者Excel核算表仿真前先对照一次。第二个心得是测量信号延迟是控制台最大的“隐藏敌人”。我之前在电压反馈环节用了一个a、b、c三相电压幅值加平均的处理方式导致反馈量滞后接近20ms控制器响应急剧变差。后来改成锁相环同步旋转坐标下取d轴电压效果好很多。如果你对坐标变换熟悉可以一步到位用dq变换。第三个心得是关于脚本批处理和工况复用。模型建好以后我用过一个简单的MATLAB脚本把FC容量、TCR电感、PI参数、触发角上下限全部定义成工作区变量然后再把模型里的参数全部写成变量名。这样每次换工况只需要改脚本开头的几行不用在模型界面里翻半天。这也是很多工程团队做系列化仿真的常规做法。5.3 从FCTCR仿真到工程落地的延伸参考这套模型验证过的控制逻辑可以平移到SVC其他拓扑上比如TSCTCR混合型、带滤波通道的SVC、甚至部分SVG的预研。核心的PI从电压偏差到无功输出的思路是通用的变的只是主电路模块和等效电纳映射关系。如果你后面想做更大容量的FCTCR比如35kV/30Mvar级主电路部分要加的额外工作是阀组均压、冷却系统、过压保护和绝缘配合的分析而这些在Simulink的标准电磁暂态模型里很难精细建模需要靠PSCAD或者实时数字仿真平台来补充。Simulink在这个项目里最大的价值还是集中在控制策略验证、参数初整定和性能预判这几个层面。最后再分享一个小技巧模型整体调通之后在Powergui里把仿真类型从“Discrete”改成“Continuous”跑一遍对比两种模式下的关键波形。如果差异小于2%说明离散步长选择合理如果差异很大需要回到离散设置重新检查步长和算法。这个对比习惯能帮你发现很多隐藏的数字仿真问题也是我每次交付仿真模型前必做的自检。个人经验就是这些希望能帮正要动手搭FCTCR仿真的朋友少走几条弯路。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进