ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MATLAB/Simulink TCR-TSC型SVC无功补偿仿真全流程解析

MATLAB/Simulink TCR-TSC型SVC无功补偿仿真全流程解析 MATLAB/Simulink实战TCR-TSC型SVC无功补偿仿真全流程解析附模型文件搞电力系统仿真的人迟早会碰上一个问题负载是感性的功率因数低得离谱电网电压被拉得忽高忽低薛定谔的电压就是这么来的。解决这种问题最经典的方案之一就是SVC——静止无功补偿器而TCR-TSC混合型又是SVC家族里最常被拿出来讨论的拓扑。我最初接触这块时翻遍了各种论文大多只给一个结果波形极少有人把从原理到建模再到控制参数的完整链路讲透。所以这篇就用Simulink把TCR-TSC型SVC从零搭一遍每一步都告诉你为什么要这么连、参数怎么算、波形怎么看、哪些坑我在调试时踩过。这篇文章适合三类人正在做《电力系统分析》或《电力电子》课程设计的学生、刚入行做无功补偿相关仿真的工程师、以及想把SVC这块仿真补全但总卡在控制环节的从业者。全文我会先用一两句话交代清楚TCR和TSC各自是什么角色然后把Simulink模型分模块拆开讲最后专门用一节写调试中真实遇到过的坑很多是教材里不会告诉你的。1. TCR和TSC在SVC里到底怎么分工、为什么要混合1.1 两个基础装置的脾气完全不同先说TCRThyristor Controlled Reactor晶闸管控制电抗器。它的本质是一对反并联晶闸管加一个电抗器回路等效感抗随晶闸管触发角α的变化而变化。α在90°到180°之间调节α90°时晶闸管全导通电抗器吃满全部感性电流α接近180°时晶闸管基本不导通电流趋近于零。所以TCR是一个连续可调但只能吸收感性无功的环节你不能指望它发出容性无功这也是它天生需要和其他设备配合的原因。再说TSCThyristor Switched Capacitor晶闸管投切电容器。它的本质就是晶闸管开关控制一组电容器是否接入电网投进去就发出一大笔固定的容性无功切掉就一点都没有。TSC是分级调节做不到连续但胜在结构简单、损耗小、不产生额外谐波。单个看都有缺陷凑在一起反而互相补位TSC负责提供容性无功的“底座”TCR负责在这个底座上做连续精调。负荷多吸了一点感性无功TSC先投一组上去补个大头剩下的误差交给TCR调触发角负荷浅了TCR多吸掉一部分容性无功整体对外呈现的补偿效果仍然是平滑连续的。这就是混合型SVC的核心逻辑理解了这条主线再看后面的Simulink模型就不会晕。1.2 混合型SVC的工作区间与容量匹配在设计仿真模型前先要把容量匹配的账算清楚。假设我们面向一条10kV母线目标是把系统功率因数从0.8左右补偿到0.95以上同时把负载波动引起的电压跌落限制在3%以内那么补偿装置的容量需要分两步估先算负载最大无功缺口实测或按负载额定数据估算最大负载下的平均无功功率Q_L这是你SVC要覆盖的主要部分。再决定TSC和TCR各承担多少常见的做法是按TSC占总容量60%~70%TCR占30%~40%来配。比如总补偿容量12Mvar就可以做成两组5Mvar的TSC加一个10Mvar的TCR。注意TCR的10Mvar不是说要消耗10Mvar而是它能在0~10Mvar之间连续吸收容性无功用来抵消TSC多投的部分。以我经常在教学模型里用的参数为例10kV/50Hz系统TCR支路电感按10Mvar设计TSC两组各5Mvar每组串联一个小电抗器做限流和防谐振。具体值怎么算我在下一个章节展开。提示初学者最容易漏掉的一点是TSC并不是纯电容直接并网必须串一个调谐电抗器。一方面晶闸管投切瞬间会产生冲击电流电抗器能抑制这个冲击另一方面电抗器和电容的谐振频率通常设计在5次谐波附近即6%电抗率顺带起到滤波作用。搞清楚了分工下一步就是真正在Simulink里把模型搭出来。2. Simulink模型分模块搭建从电网到功率测量全链路2.1 主电路参数计算电感和电容值不是拍脑袋定的我强烈建议在搭模型前把参数先算好而不是在模块里随意填个值看波形。就拿上面说的10kV、10Mvar的TCR电抗来举例计算逻辑如下已知单相等效线电压U 10kV三相总容量Q 10Mvar那么每相电抗值为X_L U² / Q (10000)² / (10×10⁶) 10Ω对应的电感L X_L / (2πf) 10 / (2×3.14×50) ≈ 0.0318 H ≈ 31.8mHTSC每相电容以5Mvar一组为例X_C U² / Q (10000)² / (5×10⁶) 20ΩC 1 / (2πf × X_C) 1 / (2×3.14×50×20) ≈ 159μF串联6%电抗率的小电抗器X_Ls 0.06 × X_C 1.2ΩL_s 1.2 / (2×3.14×50) ≈ 3.8mH这个参数组合下该支路在工频下对外呈现容性因为容抗远大于感抗但在5次谐波频率附近会呈现低阻抗能吸收一部分谐波电流。2.2 Simulink里主电路的搭法打开Simulink新建一个模型我按自上而下的习惯把主电路分成四个部分电源与线路用Three-Phase Source模拟10kV无限大系统线路阻抗用一个Three-Phase Series RLC Branch表达取值按短路容量来估我常用0.1Ω电阻2mH电感模拟一条馈线。负载用Three-Phase Parallel RLC Load有功设6MW感性无功设4.5Mvar这样初始功率因数在0.8左右方便后面看补偿效果。如果你想看SVC的暂态响应可以在负载这里加一个Step模块在t0.5s时切掉一部分感性负载观察电压和无功的动态变化。TCR支路用两个反并联晶闸管Thyristor串联一个电抗器A/B/C三相各一组。晶闸管模块的位置在SimscapeElectricalSpecialized Power SystemsPower Electronics下面。脉冲信号直接给到晶闸管的g端。TSC支路每组TSC是晶闸管反并联串一个电抗器再串电容器两组并联。注意晶闸管模块默认会带一个RC snubber缓冲电路仿真大功率SVC时建议把snubber电阻和电容设得比较大甚至直接禁用否则会导致晶闸管关断时出现异常过冲波形看着很脏。2.3 功率测量与无功计算模块要闭环控制必须先能实时看到系统的无功功率。最经典的做法是使用Three-Phase V-I Measurement测量母线电压和电流然后送到Three-Phase Instantaneous Active and Reactive Power模块它会直接输出P和Q的有名值。也可以自己搭dq变换来计算但既然Simulink已经封装好了直接用封装块更稳也降低出错概率。这一步我实际调试时发现有个细节值得留意功率测量模块输出的Q在高频开关动作下会有明显纹波如果把这个Q直接送进PI控制器控制器输出会抖得非常厉害晶闸管触发角也会不稳定。所以必须在测量后面加一个低通滤波器截止频率我一般取50~100Hz这样既能滤掉纹波又不至于让响应变得太慢。2.4 断路器和投切逻辑TSC的投切涉及晶闸管导通与关断但晶闸管不能在电流过零前硬关断所以在Simulink里做TSC投切要用Breaker模块或者用特殊的晶闸管触发逻辑。更常见的教学做法是用Three-Phase Breaker模拟投切开关同时把晶闸管触发脉冲设为常通简化成一个机械开关模式的TSC。这样做的好处是仿真速度更快、不容易发散坏处是无法模拟精确的过零投切暂态。如果是要做精细研究就需要在触发逻辑里加过零检测这个我在第四节再展开。3. 触发角计算、脉冲发生与闭环控制策略实现3.1 触发角与补偿容量的关系式TCR触发角α和等效应纳的关系是理解整个控制系统的关键这个公式我建议直接背下来B_TCR(α) (2(π - α) sin(2α)) / (πX_L)其中α取值范围是90°到180°。当α90°时sin(180°)0B_TCR 2×(π/2)/(πX_L) 1/X_LTCR电纳最大吸收感性无功最大当α180°时sin(360°)0B_TCR 0TCR完全不工作。实际控制器输出的不是B_TCR而是α。所以在反向计算时要解这个非线性方程在Simulink里最方便的方法是做一个查表模块Lookup Table输入量是B_TCR的标幺值输出是对应的触发角。我一般把查表点取0.2pu~1.0pu之间约30个点线性插值就够了精度误差对仿真影响很小。3.2 触发脉冲怎么给6脉冲与等间隔触发三相TCR的6个晶闸管需要相位间隔60°的脉冲信号。Simulink里有专门的Synchronized 6-Pulse Generator模块输入alpha_deg就是你的触发角输入两个同步信号一般接一个三相锁相环PLL输出的wt或者接母线电压的AB线电压做同步这样它会自动在每相电压过零点后的alpha角度发出晶闸管门极脉冲六个管子按顺序轮流触发。我在第一次搭建时直接跳过了这个封装模块想自己用脉冲发生器加延迟来做结果因为三相相位对应关系没搞对波形乱成一团。后来老老实实用Synchronized 6-Pulse Generator整个触发部分只占用一个模块位置省心得多。提示如果你要模拟12脉冲效果减少5、7次谐波需要两个6脉冲发生器分别接在Yy和Yd变压器的阀侧两个触发角之间偏移30°。基础模型可以先不管但要知道这个扩展方向。3.3 三通道控制SVC的完整闭环逻辑SVC的自动控制一般有电压控制和无功控制两种模式我做的模型采用无功恒定控制控制框图分三路第一路系统实时Q经低通滤波后与Qref做差得到误差信号。第二路误差进PI控制器输出一个角度指令α_PI范围限制在90°~180°。第三路与此同时TSC投切逻辑根据Q误差大小判断需要投入几组电容当误差超过一组TSC容量的0.7倍时投下一组当误差低于0.2倍时切掉一组。这里有个协调细节必须讲清楚TSC投切的粗调结果会直接影响TCR需要的吸收量。如果控制器只让TCR一味调节TSC投切会影响TCR的工作点。正确做法是把TSC已投容量和总容量需求之间的差值作为TCR控制器的给定B_TCR_ref B_total_ref - B_TSC_on这样TSC投了TCR就自动少干一点TSC切了TCR就多干一点协调起来系统才稳。3.4 PI参数怎么整定PI参数的整定建议采用经典的两步法而不是一上来就靠试先把积分系数K_i设为0只留比例K_p从小的值开始增加观察Q的阶跃响应直到出现等幅振荡记录此时增益K_u和振荡周期T_u。按Ziegler-Nichols经验公式大致确定K_p0.45K_uT_iT_u/1.2转换成积分系数K_iK_p/T_i。在10kV模型上我调试下来比较合适的取值是K_p0.8、K_i15左右。这个值在负载突变时系统能在0.2s内恢复稳定动态过程没有明显超调。不同系统参数下会有差异但整定流程是一致的。3.5 模型文件中的具体实现我随文提供的模型文件里控制子系统包含以下模块低通滤波器Transfer Fcn截止频率80Hz无功误差计算Sum模块PI控制器用PID Controller模块注意把连续时间积分器初值和输出限幅都设置好TSC组数上下限逻辑Switch、Hold模块组合Lookup Table实现α换算Synchronized 6-Pulse Generator生成脉冲4. 从TSC投切策略到闭环联调的完整实现细节控制环路其实是最容易出bug的地方这里把我的完整做法拆开来讲你对照着搭基本上一次能通。4.1 TSC投切状态的判断与迟滞TSC的投切不能做成一个简单的阈值比较。如果Q误差在阈值附近抖动两组电容会频繁投切机械开关和晶闸管都受不了。我采用的说法叫迟滞比较规则如下当误差Error 0.7×Q_TSC_rated且当前投入组数N N_max时投入一组TSC。当误差Error -0.2×Q_TSC_rated且当前投入组数N 0时切除一组TSC。这个0.7和0.2的上下阈值是不对称的故意留出迟滞带。实际效果是电容不会来回乱跳一组电容投进去后要等误差明显降下来才会切这个逻辑在控制系统里用两个比较器加RS触发器就能实现。4.2 TSC组数与TCR触发角的前馈配合我前面提到B_TCR_ref B_total_ref - B_TSC_on这个前馈配合在实际模型里是这样实现的用Memory模块记录当前TSC投入组数N。每组TSC的等效电纳是固定值B_TSC_on N × (1/X_C)。总需求电纳B_total_ref Qref / (3×U²)也就是把无功给定换算成电纳形式。两者相减得到TCR的电纳指令再查表得到触发角。这样TSC在t0.6s多投一组时TCR的触发角会立刻往180°方向调多出的那部分容性无功被TCR吃回去母线上看到的净无功保持不变。整个配合过程非常平滑这是我在迭代对比中试过不少方案后认为最直观、也最好调的一种。4.3 模式切换与目标值选择SVC实际运行中经常要切换控制目标。比如母线电压跌落严重时电压控制优先级高于无功控制。在我的模型里加了一个Mode Select模块做模式切换电压偏差超过±5%时切到电压闭环PI输出直接作用在触发角上。电压偏差在正常范围内时保持无功闭环。模式切换要加一个滞回比较器避免在阈值附近来回切换导致系统振荡。4.4 模型参考与顶层封装建议我习惯把整个SVC系统封装成一个Subsystem对外只留三个端口母线电压测量输入、电流测量输入、以及无功/电压参考值输入。这样模型顶层看起来很干净后续想在配电网或微电网模型里复用也很方便。5. 仿真结果怎么看、性能怎么评估、波形暴露了什么5.1 负载突变下的动态补偿过程仿真时长建议设1.5s把负载突变设置在0.6s。我实验中采用的方式是0~0.6s负载有功6MW、感性无功4.5Mvar0.6s时感性无功突增到7Mvar模拟一个大电机启动。补偿前看波形母线电压在0.6s后跌落了约8%功率因数跌到0.67系统无功明显拉高。补偿后看波形SVC大约在0.8s后把无功重新拉回5Mvar附近设定目标母线电压恢复到了0.97pu以上功率因数稳定在0.95以上。整个过程大概200ms没有持续振荡。这里要说一下怎么看波形才专业First看无功跟踪的稳态误差好系统应该趋近于0Second看动态过程的超调量比如无功会不会直接冲到目标值以上很多再跌回来Third看恢复时间从突变到重新稳定的时间不能太长Fourth看TSC投切动作点是不是只动了一次就稳定下来了。5.2 触发角变化过程把scope同时拉上alpha信号你会看到TCR触发角在TSC投入那一瞬间会发生一次明显跳变这是前馈在起作用TSC多发的容性无功被TCR吸收角从110°左右跳到接近150°之后PI慢慢把它调回目标稳态值。如果触发角毛刺很重、来回抖动多半是滤波没做好或者PI增益过大回头检查一下。5.3 谐波评估很容易被忽略的一环TCR电流是不连续的含有大量奇次谐波特别是5次和7次。在仿真里加一个THD测量模块或直接用FFT Analyzer看看母线电流总谐波畸变率我测下来单纯TCR满载时母线电流THD大概在8%~12%之间这对电网已经不友好了。这就是为什么实际工程里SVC必须配套无源滤波器组我的模型里在馈线上并联了5次和7次单调谐滤波器参数按容量的5%配加上后THD能压到3%以内满足国标。这部分模型里也搭好了可以打开后对比加与不加的波形差异对理解谐波治理很有帮助。6. 调试中踩过的坑和排查方法比建模更值得看6.1 仿真发散先查snubber和步长我最初跑那版模型总在晶闸管切换瞬间出现数值振荡甚至“Simulink cannot locate a continuous zero crossing”的报错。排查方法很简单先把Solver设成ode23tb步长上限从默认改成1e-4秒大多数零交叉问题能解决。另一个元凶就是晶闸管snubber参数我后来把阻值设到1e6Ω、电容设到1e-6F波形立刻干净了很多仿到一半发散的毛病也消失了。提示大功率电力电子仿真里遇到不收敛不要急着调PI先看离散开关器件所在支路的缓冲电路这是最容易被忽视的一环。6.2 触发角反了PLL同步方向问题有一次我把Synchronized 6-Pulse Generator的同步信号接成了相电压而不是线电压结果触发脉冲相位全乱了TCR电流一边大一边小三相不对称非常明显。查了一个多小时才意识到是同步信号源接错。标准做法是同步信号取AB线电压接到PLL输入端PLL输出的wt角与触发模块的shaft输入对齐。6.3 TSC投入冲击电流太大第一版TSC模型没有串联小电抗仿真发现电容投入瞬间冲击电流峰值能到额定值的15倍以上直接把电源保护触发。后来加了6%的调谐电抗器并调整了投切时刻等电容器电压与母线电压最接近时投入冲击电流降到2倍以下这个在模型里体现的就是后面接入的Breaker/Thyristor触发相位要额外做预充电控制。教学简化版可以先用串联电抗压住冲击深入研究的可以再加预充电逻辑。6.4 控制环节的Q纹波导致脉冲抖动这个是所有闭环SVC仿真必然会碰到的。解决方案我在前面提过测量后加低通滤波器这里再补充一个细节滤波器截止频率不要低于50Hz否则会迟滞过大影响动态响应。加了之后如果还有轻微抖动把PI输出限幅范围收窄一点比如限制在95°~170°效果立竿见影。6.5 TSC投切逻辑自激振荡有一版迟滞逻辑我做成“大于0.5倍容量就投”结果误差波动大时电容组在40ms内反复投切波形像锯齿一样。加了不对称迟滞后这个问题基本消失。调试时可以把TSC动作信号拉到scope里确认整个仿真中每一组TSC至少保持几个周波不动作才算正常。7. 我把模型文件里哪些东西做成了可复用模板自带的Simulink模型文件里除了刚才讲的主电路和控制系统我还把几个可复用的子模块单独封装了出来方便你直接拖到自己的项目里SVC_PowerStage包含TCR和两组TSC的完整主电路输入是电网三相电压电流测量信号输出是SVC三相电流。SVC_Control_Panel包含滤波、PI、投切逻辑、触发角生成、脉冲发生器输入为P/Q反馈和参考值输出为晶闸管触发脉冲。Harmonic_Filter_Bank5次和7次单调谐滤波器组做谐波治理对比实验时可以直接挂到母线上。Test_Bench一个完整的测试环境包含电源、线路阻抗、负载、测量、scope和阶跃模块默认参数一跑就能看到补偿前后的对比。模型里所有参数都放在模型工作区的initFcn里用注释区分了“TCR参数/ TSC参数/ 滤波器参数/ 控制系统参数”改起来一目了然。如果你要把电压等级换成35kV或者110kV只需要统一修改基准电压和容量再按第一节的公式重算L和C即可。在模型文件目录下我还留了一个Excel参数表列出了不同容量组合下对应的电抗器、电容器推荐值做方案初选时直接查表就行不用每次重新推导。最后分享几个做这类仿真的体会。第一搭模型前先花半小时把拓扑和工作模式画清楚哪怕只是手画一张草图也比直接在Simulink里边画边想要高效得多尤其是TCR和TSC的协同逻辑不画清楚后面调试时会经常推翻重来。第二第一版模型建议只做开环——固定触发角跑一遍确认TCR电流波形、TSC冲击电流都在预期范围内再接闭环一次闭环成功概率会高很多。第三波形报警的时候先看触发脉冲对不对再看控制输出对不对最后怀疑参数原因排在上游。这套排查顺序帮我少走了不少弯路也希望能帮你省下几个晚上的调试时间。
返回列表