做柔性直流输电仿真这几年,说实话,能完整跑通一套三端VSC-HVDC模型并不容易。网上能下到的MATLAB模型大多是两端背靠背的,真正把三端分布式接入、各换流站控制策略都搭出来的资料,掰着手指头都能数过来。我最近正好用MATLAB/Simulink把一套300kV等级的三端柔性直流输电模型完整搭建并验证了一遍,从换流站主电路参数到控制系统都是自己手搓的,这篇就把整个从零搭建的过程捋一遍。搞电力系统仿真、研究多端直流控制策略,或者写学位论文需要一套可运行模型的朋友,这篇应该能帮上忙。
先说明一下,标题里的"柔型"其实就是"柔性"的笔误,柔性直流输电即VSC-HVDC,是基于电压源换流器(Voltage Source Converter)的直流输电技术,核心器件是IGBT这类全控型电力电子器件,目前已经大规模用在海上风电送出、非同步电网互联、城市供电等场景。三端系统是多端直流(MTDC)里最简形态,但控制策略的复杂程度已经比两端系统上了一个台阶,非常适合用来学习和验证多端协调控制的思路。
1. 三端VSC-HVDC整体方案:为什么是三端,怎么定拓扑
1.1 多端柔性直流输电解决的实际问题
传统两端HVDC只能实现点对点输电,相当于一条固定的输电线,两头都钉死了。但如果想建立一个直流网络,让三个甚至更多交流系统互联、功率按需分配,两端结构就不够用了。多端柔性直流输电的核心价值就在这:多个换流站共享一条直流母线(或直流网络),每个站都可以根据需要选择整流或逆变工况,功率可以双向流动,潮流可控性比传统交流网络强很多。
拿新能源并网场景来说,海上风电场、陆上光伏基地和城市负荷中心通常分散在不同位置,如果用两端直流,需要给每一对"电源-负荷"单独拉一条直流线路,线路利用率低、成本高。三端及以上结构可以通过一个直流电网把多个电源和负荷集约起来,某个电源出力波动时,其他站自动补偿功率差额,这正是VSC-HVDC相对传统直流最大的优势。
从仿真研究的角度,三端模型是验证多端控制策略的"最小可行系统"。两套换流站的控制逻辑基本是单端控制的简单组合,很难暴露直流电压协调的问题;五端系统又太复杂,尤其是参数整定和故障分析工作量大到容易把人劝退。三端刚好卡在中间,既能覆盖主从控制、电压裕度控制、下垂控制这些主流多端策略,又不会让模型复杂到没法调试,所以我最终确定用三端结构作为仿真研究对象。
1.2 三端拓扑结构与控制模式分配
三端直流系统的拓扑主要有两种:辐射状(T型)和环网型。辐射状结构简单,从主换流站引出两条直流线路分别连接两个从站,直流网络呈"Y"形,适合海上风电送出这类"一个主站连接多个电源/负荷"的场景。环网型则是三个站两两互联,形成闭环,可靠性更高,但对直流线路保护要求也更高。
我搭的这套模型选择了辐射状拓扑:站1作为主站,相当于整个直流网络的电压支撑点;站2和站3作为从站,分别通过直流线路接到主站的直流母线。为什么选辐射状?原因很实际:一是线路模型数量少,仿真速度更快;二是控制逻辑清晰,主从关系一目了然,方便逐站调试;三是从站之间的功率交换都通过主站母线中转,动态行为更接近实际工程中的海上风电送出与陆上电网互联场景。
控制模式分配方面,三端系统不能所有站都定功率,必须至少有一个站来稳定直流电压,承担系统的功率差额。我采用的方案是:站1采用定直流电压控制和定无功功率控制,负责维持直流母线电压在300kV附近,同时保持与交流系统的无功交换为零;站2和站3采用定有功功率控制和定无功功率控制,按照给定的功率指令传输功率。这套配置就是典型的主从控制策略,主站扛电压、从站调功率,实现简单,物理意义清晰。
1.3 为什么首选主从控制,而不是全站下垂控制
确定控制策略时,我认真比较过主从控制、电压裕度控制和下垂控制三种方案。下垂控制模拟同步发电机的频率下垂特性,让所有换流站都参与直流电压调节,功率分配按照预设的下垂系数进行。这种方法可靠性高,某个站退出运行后其他站能自动分担功率,但问题也很明显:下垂系数选取不好很容易造成功率分配不均,直流电压偏差也偏大,而且多站同时调压时动态过程复杂,调试成本高。
电压裕度控制是主从控制的增强版,主站失去调压能力后,从站通过检测到直流电压越限而切换为定电压控制。这个逻辑在三端系统里需要精心设计切换阈值和迟滞环节,否则可能出现两个站反复争抢电压控制的"切换振荡"。
我在模型验证阶段最终选择了纯粹的主从控制,原因很简单:先确保仿真模型能稳定跑起来,再考虑高级控制策略。主从控制只有站1参与电压调整,控制逻辑简单,PI参数整定直观,非常适合作为三端VSC-HVDC基准模型的控制方案。模型跑稳定之后,我再在站2上增加电压裕度切换逻辑,这样既能保证整体模型可靠,又能扩展研究价值。
2. 主电路参数怎么定:换流器、电容、线路一个都不能少
2.1 换流器拓扑与调制方式选型
VSC-HVDC的换流器拓扑主要有两电平VSC、三电平NPC和模块化多电平换流器(MMC)。MMC是目前工程应用的主流,但它的子模块数量大、电容均压控制复杂,在MATLAB里建模计算量非常大,仿真速度慢,对初学者不太友好。两电平VSC结构最简单,控制方式直观,计算速度快,特别适合作为三端控制策略研究的载体。我搭建的模型选用两电平VSC,每个换流站由6个桥臂IGBT/二极管开关对组成,用Simulink里的Universal Bridge模块实现,内部选择"IGBT/Diode"类型即可。
调制方式选择了正弦脉宽调制(SPWM),载波频率设定为2.25kHz。SPWM的原理其实很好理解:把正弦调制波和三角载波做比较,调制波大于载波时输出高电平,小于时输出低电平,这样就在桥臂输出端得到一系列等幅不等宽的脉冲,脉冲宽度按正弦规律变化,经过滤波后就能还原出接近正弦的电压波形。选SPWM而不是空间矢量调制(SVPWM),主要考虑到SVPWM在Simulink里需要自己写扇区判断和矢量作用时间计算,代码量不小,而SPWM直接用Discrete PWM Generator模块就能生成,搭模型效率高很多。
2.2 关键参数计算与标幺制
参数设计是整个模型搭建里最容易被忽视但最关键的一环。我按一套典型的300kV/300MVA等级三端系统来设计,具体参数可以按实际研究目标调整,但设计逻辑是通用的。
额定直流电压U_dc取300kV,额定容量S_N取300MW。交流侧通过换流变压器接入220kV交流电网,变压器阀侧线电压有效值取190kV,这样在调制比m约0.9时能充分利用直流电压,留有一定调节裕度。为什么不是随便取?对SPWM两电平VSC,直流电压和交流线电压之间存在约束关系:U_dc要大于2倍交流相电压峰值,否则调制比超过1,输出电压波形会进入过调制区,谐波显著增大。反过来,U_dc选择过高会浪费IGBT的耐压能力。按190kV线电压计算,相电压有效值约110kV,峰值约155kV,U_dc/2=150kV,调制比约0.97,接近但不超过线性调制区上限,这个值很合理。
换流电抗器是VSC和交流系统之间的桥梁,作用是滤波和功率传输。它的取值通常用标幺值表示。以190kV、300MVA为基准,基准阻抗Z_B=U²/S=190²/300≈120.3Ω,基准电感L_B=Z_B/(2πf)=120.3/314.16≈0.383H。换流电抗标幺值一般取0.1-0.15pu,换算下来实际电感约38-57mH,我取50mH,对应的标幺值约0.13pu。换流电抗太大,功率传输能力和响应速度受限;太小则交流侧谐波电流大,而且短路时冲击电流更严重。等效电阻R取1.5Ω,主要由电抗器绕组损耗构成,标幺值约0.012pu。
直流侧电容的作用是稳定直流电压、缓冲瞬时功率不平衡。直流电容的取值和系统暂态能量需求有关。工程上一般按直流电压波动不超过额定值5%来设计。我取每个换流站直流电容100μF,三站合计300μF,对应的时间常数τ=R_load·C/2,其中R_load=U_dc²/P_N=300²/300=300Ω,τ=300×100e-6/2=15ms,这个时间常数比控制系统响应时间大很多,能有效平抑直流电压动态波动。
2.3 直流线路与交流系统等效模型
直流线路在Simulink里可以用集中参数π型模型模拟。我设定的拓扑是站1到站2线路长度100km,站1到站3线路长度150km。架空线路每公里参数取R=0.015Ω/km、L=0.8mH/km、C=0.015μF/km,这样100km线路的总参数为R=1.5Ω、L=80mH、C=1.5μF。如果研究的是电缆线路,参数差异会比较大,尤其是电容会显著增大(约0.2μF/km以上),对直流电压动态特性影响明显,需要单独设置。
交流系统等效采用三相电压源串联短路阻抗的方式,短路比(SCR)取5。SCR是衡量交流系统强弱的指标,等于交流系统短路容量与换流站额定容量的比值。SCR=5属于较强系统,电压支撑能力强,有利于仿真稳定。如果研究弱电网下的VSC-HVDC特性,可以把SCR降到2-3,但需要相应增加交流电压控制策略,否则系统容易振荡。这种交流系统等效方法在Simulink中实现起来非常简单,用Three-Phase Source模块串联RL阻抗即可,且能准确反映交流系统对换流站控制动态的影响。
下表汇总了三个换流站的主要参数,方便整体对照:
| 参数 | 站1(主站) | 站2(从站) | 站3(从站) |
|---|---|---|---|
| 额定容量 | 300MW | 150MW | 150MW |
| 直流电压(额定) | 300kV | 300kV | 300kV |
| 换流电抗器 | 50mH/1.5Ω | 50mH/1.5Ω | 50mH/1.5Ω |
| 直流电容 | 100μF | 50μF | 50μF |
| 控制模式 | 定U_dc/定Q=0 | 定P/定Q=0 | 定P/定Q=0 |
| 初始功率指令 | — | 100MW | 80MW |
直流电容从站容量减半后,容值减半这个细节很多人容易忽略,但它在站间功率快速变化时对直流电压动态影响很大,建议按站容量比例配置。
3. 控制系统设计:从外环PI到多端协调
3.1 内环dq解耦电流控制的核心逻辑
VSC-HVDC控制系统分为外环和内环两层,外环生成电流参考值,内环通过电流控制器产生调制电压信号,最终由PWM生成触发脉冲。内环电流控制是整个系统的"底盘",它控制的是换流器与交流系统之间交换的电流在旋转坐标系下的d轴分量和q轴分量。经过Park变换后,三相交流量变成直流量,PI控制器才能实现无静差跟踪,这就是为什么所有VSC控制都要做dq变换。
但在dq坐标系下,d轴和q轴电流之间存在耦合项ωL·i_d和ωL·i_q。如果不做解耦处理,调节有功功率时无功会跟着波动,调节无功时有功会跟着波动,两个回路互相干扰,系统动态特性很差。这就像空调的温控和风速两个旋钮没有独立调节功能,调温度会影响风速,调风速又影响温度,用起来非常难受。内环解耦控制通过前馈补偿把这两个耦合项消掉,让d轴电流和q轴电流各自独立控制。
具体来说,内环控制方程可以写成:
u_d = -(Kp + Ki/s)(i_d_ref - i_d) + ωL·i_q + e_d u_q = -(Kp + Ki/s)(i_q_ref - i_q) - ωL·i_d + e_q
其中e_d、e_q是交流母线电压的dq分量,这里作为前馈补偿项引入,可以加快动态响应并减小稳态误差。最后生成的u_d和u_q经过反Park变换得到三相调制电压参考值,交给SPWM模块生成驱动脉冲。在Simulink里,这一步可以直接用PI Controller(Discrete)、乘法器、加法器搭出来,注意把ωL·i_q和ωL·i_d这两项的符号别搞反,我调试时因为符号问题浪费过两天时间。
3.2 外环控制:定电压、定功率与PI参数整定
外环的作用是根据控制目标生成内环的电流指令。定直流电压控制站的外环是一个电压PI控制器,输入直流电压参考值和实际值的偏差,输出d轴电流参考值i_d_ref。电压偏差为正说明直流电压偏高,此时应减小i_d_ref让换流器吸收更多有功功率(作为逆变侧运行)或减少注入(作为整流侧运行),从而把电压拉回额定值。定有功功率控制站的外环输入功率参考值和实测值的偏差,输出i_d_ref;定无功功率控制的原理类似,输出i_q_ref。
外环PI参数的整定是整套系统调试中最耗时、最容易卡住的地方。我的经验是采用"带宽分级"的方法:内环电流环带宽取300Hz左右,外环电压/功率环带宽取内环的1/5到1/10,也就是30-60Hz。这样内外环在频域上拉开了距离,外环动态不会激发内环的谐振,系统更稳定。如果你在Simulink的离散控制器里设置采样时间,内环采样周期50μs,外环100μs,也能达到类似效果。
实际参数上,内环PI可以先从Kp=10、Ki=200起步,跑起来后观察d轴电流阶跃响应的超调量和调节时间。如果电流振荡幅度大,说明Kp偏大,往下调;如果电流跟踪慢、误差持续存在,说明Ki不够,适当往上加。外环PI相对保守一些,初始Kp=2、Ki=50,然后观察直流电压在功率扰动下的恢复过程。记住一个原则:内环要"快且稳",外环要"慢且准",内外环带宽差5倍以上一般不会有大问题。
3.3 多端协调:主从控制的具体实现
三端系统里的主从控制,所有控制逻辑都在单站层面,真正体现"多端"特色的是直流电压与功率平衡之间的关系。站1采用定直流电压控制,相当于整个直流系统的"锚点",站2和站3注入的功率不等于流出时,差额会反映在直流电容充放电上,表现为直流电压变化。站1检测到电压偏差后通过电压PI迅速调整自己传输的功率,直到整个直流网络重新达到功率平衡,直流电压恢复到300kV。
这个过程的物理图像可以这样理解:直流网络就像一个水池,各站注入的功率像进水,流出的功率像出水。如果出水小于进水,水位(直流电压)上涨;反之水位下降。站1的定电压控制就像自动调节水阀,出水多了就自动开大闸门,进水多了就自动关小闸门,始终保持水位稳定。站2和站3不关心水池水位,只按自己的计划进水和出水。
在Simulink中实现主从控制,关键在于站1的电压控制器输出要正确接到内环电流参考值上,且保证电压控制的方向正确。比如某个时刻站2、站3总输送功率为180MW(均按整流方向向直流网络注入功率),站1要维持电压稳定就必须以逆变方向输出差不多180MW到交流电网。这个功率自然会通过电压PI调节得到,不需要人为干预,但前提是站1的额定容量足够覆盖这个功率差额,否则电压PI饱和,直流电压失控,这一点在容量配置时就要考虑到位。
4. Simulink建模流程与仿真调试实录
4.1 模型搭建步骤详解
搭建环境我用的是MATLAB R2022b,需要安装Simscape Electrical工具箱(早期版本叫SimPowerSystems)。整个模型搭建思路是"先建单站、再复制扩展、最后联调"。搭建顺序如下:
第一步,新建Simulink模型,打开Simscape Electrical库,拖入Three-Phase Source、Three-Phase Transformer、Three-Phase Series RLC Branch、Universal Bridge、DC Bus Capacitor、Series RLC Branch等模块。交流系统用220kV三相电压源串联等效阻抗实现,变压器变比设置220kV/190kV,连接方式D1/Yg。
第二步,搭建换流阀部分。Universal Bridge选择"IGBT/Diode",桥臂数为3,测量输出勾选电压和电流信号。直流侧并联一个直流电容,正负极上接电压测量模块。换流器交流侧接50mH换流电抗器,再接到变压器阀侧。
第三步,搭建控制系统。控制系统需要采集的三相电压和电流信号通过Voltage Measurement和Current Measurement模块引出,再用Three-Phase PLL模块锁定交流相角。采样到的信号用Goto/From模块引到控制子系统里,避免线缆交叉影响模型整洁度。在控制子系统中依次完成Clark/Park变换、外环PI、内环PI、反Park变换,最终得到三相调制波信号,送入Discrete PWM Generator(2-level bridge)模块,输出六路触发脉冲接到Universal Bridge的脉冲输入端。
第四步,把单站模型打包成子系统,复制三份,分别设置不同的控制模式。站1的直流侧为整个三端网络的直流母线节点,站2、站3通过直流线路模块连接到母线。直流线路用Series RLC Branch或者专门的PI Section Line模块,按前面计算的参数设置。
第五步,设置整体仿真参数。求解器选ode23tb,相对误差1e-4,仿真最大步长1e-5s,仿真时长3-5s。控制子系统里的离散PI模块采样时间设为100μs。
4.2 从空载到三站并联的调试顺序
模型搭完后最忌讳直接满负荷仿真,大概率是一发散就干瞪眼。我的调试顺序是"单站空载—双站互联—三站并联",每一步都验证清楚了再往下走。
单站空载调试时,先把直流电容初始电压设为300kV(相当于预先充好电),交流和直流侧都空载运行,观察PLL锁定情况、直流电压是否稳定。这一步主要验证控制系统的方向性有没有问题,比如PWM触发脉冲是否正确驱动IGBT通断、Park变换的角度是否同步。如果直流电压掉得很快或者出现剧烈振荡,先排查PWM调制波频率和载波频率设置,再看PLL是否在额定频率上稳定锁定。
双站互联时,把站1和站2通过直流线路连接,站1定电压,站2定功率,功率指令先设一个小值如30MW,跑起来看直流电压波动情况。如果直流电压稳住了,逐步把功率指令加大到100MW,确认功率传输方向正确。接着把站2的功率指令设为负值,验证潮流反向流动能力,这是VSC-HVDC相比传统LCC-HVDC的核心优势,在VSC-HVDC中换流站逆变和整流工况切换只需要改变电流方向参考值,不需要改接线,也不存在换相失败问题。
三站并联时,把站3接入网络,分别给定功率指令,观察三个站的功率分配和直流电压动态。重点关注功率突变时站1的电压PI响应是否及时,直流电压是否在允许偏差范围内。如果功率阶跃后直流电压收敛太慢,适当增大站1电压外环的比例系数;如果电压波形有持续振荡,则减小比例系数、增大积分时间常数,保证电压环带宽在内环带宽的1/5以下。
4.3 典型工况仿真结果与波形解读
模型调通后,我做了几个典型工况验证,这里把关键结果记录下来供参考。
工况一:站2有功功率从100MW阶跃到150MW(整流方向)。仿真显示站2的实际功率在约0.1s内跟踪到新指令,超调量小于5%;直流电压在阶跃瞬间从300kV跌落到约296kV,随后在站1电压控制作用下约0.5s内恢复到300kV附近。这个过程中站1的传输功率自动从原来的180MW增加到230MW左右,说明主站的功率差额补偿功能正常。
工况二:站3功率指令从80MW反转为-60MW,即从整流工况切换到逆变工况。VSC-HVDC的潮流反转其实就是改变有功功率参考值符号,实际功率波形在0.15s左右完成平滑过渡,直流电压波动幅度约±1.5%。如果换成传统LCC-HVDC,潮流反转需要改变电压极性,整个换流站都要切换运行状态,动态过程复杂得多。这是VSC技术路线最大的工程优势,仿真里能非常直观地看到。
工况三:站2功率在2s时突然从100MW升到160MW,同时在站3设置一个30MW的功率波动。直流电压在扰动初期有约6kV的瞬时偏差,经过约0.8s后恢复到±0.5%范围内。这个结果说明三端系统在内外环参数匹配合理的情况下,可以抵抗一定程度的功率扰动。如果后续研究需要更小的电压偏差,可以适当增加直流电容容值,或者采用带前馈的电压控制器。
5. 常见问题与排查技巧实录
5.1 仿真发散、报错与步长设置问题
仿真运行中经常遇到的是发散问题,典型表现是仿真到某个时刻直接报错或者波形突然出现巨大数值。原因主要有三类:一是PI参数设置不合理,控制器输出过大导致系统不稳定;二是仿真步长过大,无法捕捉PWM开关瞬间的快速暂态;三是模型本身存在代数环,尤其是电流测量值直接参与控制计算时容易出现。
排查思路也是这样依次检查。先看PI参数输出是否有饱和限幅,我在内环输出端加了±1.2倍的限幅,避免控制器输出超过调制比范围;再看仿真步长,离散PWM载波频率2.25kHz,一个载波周期约444μs,为了准确模拟PWM波形,最大步长必须小于载波周期的1/20。我最终把最大步长设到10μs,同时在控制器模块里把采样时间设为50μs,这样既保证精度又不至于太慢。
如果出现代数环报错,检查一下是否在电压/电流测量模块后面直接经过了纯比例环节再参与控制计算,如果存在这种情况,可以在测量信号后串联一个Memory模块或者一阶惯性环节打破代数环,但要注意这个额外环节的惯性不能太大,否则会把控制带宽拉低,影响动态响应速度。
5.2 PLL锁相和dq解耦的坑
PLL是三端VSC-HVDC控制系统里非常容易出现问题的环节。PLL的作用是实时跟踪交流母线电压的相位,VSC-HVDC的控制系统是基于dq坐标系的,Park变换需要准确的相位角,如果PLL锁相角度有偏差,d轴和q轴上的分量就会"串味",有功控制通道和无功控制通道互相干扰,功率波形出现低频振荡。
我在调试时遇到的一个典型问题是三相电压测量信号经过滤波后幅值和相位偏移,导致PLL锁定角度有偏差,系统工况一变就出现功率振荡。排查后发现是测量信号经过了低通滤波器,滤波器在滤除谐波的同时带来了相位延迟。解决办法是PLL的输入直接取未经滤波的瞬时三相电压,同时在PLL模块内部设置合理的带宽参数,让PLL的自然频率在15-30Hz,阻尼比0.707左右,这样锁定速度和过滤能力都能兼顾。
dq解耦的坑主要在符号上。很多人在搭建解耦前馈项时会把ωL·i_q的符号弄反,导致解耦变成了"耦合",结果是有功电流和无功电流互相激励,系统发散。验证解耦是否正确的一个简单方法是:给一个纯d轴电流阶跃(i_q_ref保持0),观察q轴电流响应,如果q轴电流始终在0附近且没有明显波动,说明解耦正常;如果q轴电流跟着d轴一起跳变,就要检查解耦项的符号了。
5.3 参数配置与数据设置的注意事项
最后一个坑是参数配置的细节问题,这类问题最隐蔽,排查起来最费时间。
第一个容易出问题的地方是Park变换的等幅值/等功率变换约定。不同教材和不同模块里的Park变换位置可能采用不同系数(2/3还是√(2/3)),如果混用,控制系统的增益会整体偏差,功率测量值和实际功率对不上。建议全套系统统一用等幅值变换(系数2/3),且在模型中做好注释。
第二个是直流电容初始电压。我建议在仿真开始前把直流电容初始电压设置为300kV,否则仿真启动瞬间直流电容从0充电,会产生巨大的冲击电流,可能触发保护逻辑或导致数值发散。在Simulink中,双击电容模块,在Initial voltage里直接填入300e3即可。
第三个是各站功率正方向的定义,这是三个站联调时最容易乱套的地方。我定义功率从交流系统流向直流系统为正(即整流方向为正),站2和站3在初始工况中按功率指令为正值运行,站1通过电压控制自动承担平衡功率。如果发现某站功率波形整体反相,先检查电流测量方向的定义,再检查控制系统中功率计算的公式。功率正方向不一致导致的"功率震荡"问题我遇到过多次,最后靠给每个站的功率测量值做一个极性标注才彻底解决。
还有一个实用技巧是,Simulink里做批量参数调整很方便,三站共用一套控制子系统时,把PI参数放到模型工作区(Model Workspace)的变量里,这样可以在不同站中分别引用不同的变量,例如站1的Kp定义为Kp_voltage,站2和站3的功率环参数定义为Kp_power,调试时不用每次都打开子系统改参数,直接在命令窗口或参数对话框里改变量值即可实时生效,效率提升很大。
我个人在实际操作中有个体会:三端VSC-HVDC模型的调试难点往往不在"某一个站的控制器设计",而在"三站联动时的协调配合"。解决这个问题最有效的方法就是前面反复强调的调试顺序——先把单站调稳,再双站互联验证功率流向,最后三站并联。这套模型后续还可以沿两个方向扩展:一是把两电平VSC替换成MMC,研究子模块均压和环流抑制;二是在主从控制基础上加下垂控制,让所有站共同参与直流电压调节,模拟更接近实际工程的场景。等这两个方向都跑通了,我对多端直流系统的理解会再上一个台阶。