
三端柔型直流输电模型VSC-HVDC这个方向这几年在电气工程相关的毕业设计、课题研究和工程预研里出现频率越来越高。用MATLAB/Simulink搭一个三端柔直模型既能用来验证多端协调控制策略也能为后续的工程仿真打下基础算是一个性价比很高的研究载体。我自己在搭建这套300kV等级的三端VSC-HVDC模型时踩了不少坑也积累了一些还算顺手的经验这篇就从头到尾梳理一遍从方案设计、参数选取、模型搭建到调试排错尽量把关键细节都说透。1. 三端VSC-HVDC系统结构与方案选型1.1 三端柔直系统的基本概念与拓扑VSC-HVDC也就是基于电压源换流器的高压直流输电技术业内俗称“柔直输电”。和传统的基于晶闸管的LCC-HVDC相比VSC-HVDC最大的优势在于能够独立控制有功和无功功率不需要依赖交流电网提供换相电压甚至可以向无源网络供电。这些特性使得它在新能源并网、孤岛供电、城市电网增容等场景中非常有优势。三端VSC-HVDC顾名思义就是直流网络里有三个换流站。最常见的拓扑是“一拖二”或者“二拖一”也就是说一个换流站作为功率平衡节点通常采用定直流电压控制其余换流站采用定有功功率控制或者定频率控制。三端系统比两端系统复杂的地方在于直流网架变成了一个“直流汇流排”或者“多节点直流网络”功率分配不再是一对一的单向流动而是存在多点协同问题。以我搭建的这个模型为例三个换流站分别承担不同的角色换流站1VSC1连接到强交流系统采用定直流电压控制维持整个直流网络的电压稳定同时平衡系统功率差额。换流站2VSC2连接新能源基地或者等效为有功功率源采用定有功功率控制向直流网络注入功率。换流站3VSC3连接负荷中心或受端电网采用定有功功率控制或定交流电压控制从直流网络吸收功率。这种配置方式能很好地模拟实际工程中“送端多电源、受端多落点”的场景也是研究多端柔直协调控制最基础也最典型的构架。1.2 为什么选择MMC换流器结构做VSC-HVDC仿真时换流器结构的选择是一个绕不开的问题。目前主流方案有两类一类是两电平或三电平VSC另一类是模块化多电平换流器MMC。两电平VSC的模型相对简单仿真速度快适合做控制策略的原理性验证。但它的缺点也很明显输出波形谐波含量高需要体积庞大的交流滤波器而且每个桥臂只有一个或两个功率器件开关频率高、损耗大与工程实际差距较大。现在真正投运的柔直工程绝大多数都采用MMC结构。MMC每个桥臂由数十到数百个子模块SM串联构成通过子模块的投切逼近正弦波谐波特性好开关频率低而且模块化程度高、扩展性好。缺点是仿真模型复杂尤其当子模块数很多时仿真速度会急剧下降。我在这个模型里选用的是MMC结构但采用了一种折中策略每个桥臂子模块数设置在半桥/全桥混合的合理范围内36个左右既保留了MMC的波形质量和控制特性又不至于仿真慢到无法接受。如果你只是做控制算法验证、不关心器件级谐波特性可以使用MMC的“平均值模型”或者“简化等效模型”速度能快一个数量级以上。提示MMC子模块数的选择是一个典型的三方权衡问题——仿真精度、仿真速度、控制复杂度。对于300kV直流母线电压的系统单个子模块额定电压通常在8~16kV之间对应子模块数十几到几十个具体取值需要结合IGBT耐压等级和你需要验证的控制目标来确定。1.3 接入系统等级与容量配置标题中提到的“300k”结合常见的柔直工程参数可以推断为直流电压等级300kV或容量300kVA。考虑到MATLAB仿真模型用于教学和研究的常见尺度我将其设计为直流额定电压±150kV即双极性300kV或单极性300kV。实际模型中我采用了单极性300kV以简化控制系统设计这个选择在学术研究和工程初步验证中是很常见的简化方式。额定容量三个换流站均为300MVA若标题中的“300k”是300kVA则按比例缩小即可控制逻辑完全一致。交流侧电压220kV换流站1和3新能源侧换流站2为110kV。联结变压器Ynd接线变比根据换流站接入电压和MMC交流侧电压匹配。这个容量和电压等级是一个“学术常用工程可参考”的折中电压足够高便于研究绝缘配合、直流线路模型等高压问题容量适中便于在Simulink里配置变压器和线路参数不至于因为容量过大导致电感电容参数过小出现数值问题。2. 核心控制策略设计与参数计算2.1 换流站级控制dq旋转坐标系下的双闭环控制VSC-HVDC的核心控制思路是通过控制换流器交流侧输出电压的幅值和相位来间接控制有功、无功功率的交换。在dq同步旋转坐标系下有功功率P由d轴电流决定无功功率Q由q轴电流决定这样就可以实现完全解耦控制。双闭环控制结构是主流方案外环功率/电压控制环生成电流参考值内环电流控制环生成调制电压参考值。以定有功功率控制为例外环采用PI控制器将功率参考值Pref与实际功率P的误差转换为d轴电流参考值id_refid_ref KP_p * (Pref - P) KI_p * ∫(Pref - P)dt内环电流控制器再加入解耦项和电网电压前馈项vd_ref - (KP_i * (id_ref - id) KI_i * ∫(id_ref - id)dt) ωLiq ed vq_ref - (KP_i * (iq_ref - iq) KI_i * ∫(iq_ref - iq)dt) - ωLid eq其中ed、eq为交流母线电压的d、q轴分量ωL项用于消除d、q轴之间交叉耦合前馈项用于提高动态响应速度。PI参数的整定有几个实用经验电流内环的带宽一般取工频的1/10到1/5左右也就是100~200rad/s左右比例系数KP_i L * BW积分系数KI_i R * BW其中L和R是换流电抗器的电感和等效电阻。外环功率环的带宽要比内环低3~5倍以保证内外环之间不会出现交互振荡。我在这个模型里经过整定内环KP_i取2.5KI_i取80外环功率环KP_p取0.02KI_p取0.5直流电压环KP_dc取0.05KI_dc取2。不同系统参数下最优值会有差异建议在模型里用“试凑法带宽整定”结合的方式定位。2.2 直流电压控制与功率协调策略三端系统中直流电压控制策略的选择直接关系到系统能否稳定运行。目前工程和学术上常见方案有三种单点电压控制一个换流站定直流电压其余定功率。优点是控制简单缺点是功率突变时直流电压动态偏移较大而且平衡节点需要具备足够容量裕度。多点电压控制电压裕度法主换流站定直流电压当主站功率越限或退出运行时备用换流站切换为定直流电压控制。这种方法可靠性高但控制逻辑复杂需要在仿真里设置电压阈值和切换状态机。直流电压下降控制DC Voltage Droop Control多个换流站共同参与直流电压调节每个换流站的功率参考值随直流电压偏差线性调整。这种方式最适合多端系统无需站间通信且能自动分配功率差额。我在模型里先实现了单点电压控制和电压下降控制的对比单点电压控制用来验证系统基本功能电压下降控制用来看多端功率协调的鲁棒性。电压下降系数Kdroop的设置有讲究太大则功率分配过于敏感容易引起功率振荡太小则直流电压偏差过大。一般按照“直流电压变化1%时对应的功率变化为额定功率的x%”来定义x取2~5比较合适。我的模型里取Kdroop 0.02 p.u.即直流电压每变化0.01p.u.功率参考调整0.02p.u.在仿真里取得了较好的动态响应和稳态精度。2.3 环流抑制与电容电压均衡策略MMC内部有两个经典问题桥臂环流和子模块电容电压不均衡。环流是MMC三相桥臂之间存在的不经过交流侧、只在直流侧与各相桥臂之间流动的二倍频负序电流。环流会造成桥臂电流畸变、增加损耗和电容电压波动所以需要抑制。常用方案是在静止坐标系下使用准比例谐振PR控制器或者在旋转坐标系下使用2倍频负序旋转坐标变换后的PI控制。考虑到Simulink实现的方便性我采用了PR控制方案对二倍频分量进行准谐振控制G_PR(s) KP_pr KR_pr * (2ωcs) / (s² 2ωcs (2ω0)²)其中ω0为基波角频率ωc为谐振带宽一般取2π*5左右。KR_pr根据所需抑制强度整定。子模块电容电压均衡则分为两层排序均压和载波移相。排序均压是每个控制周期对子模块电容电压进行排序根据桥臂电流方向决定投入还是切除最低/最高电压的子模块载波移相则是在调制层面保证各子模块的开关信号均匀分布。在MATLAB里实现排序算法时我建议用MATLAB Function块嵌入排序逻辑但要注意仿真步长不能太大否则排序周期过长会导致均压效果变差。一般电磁暂态仿真的固定步长设在20~50μs比较合适。3. Simulink模型搭建实操过程3.1 模型总览与模块划分整体模型我按“主电路-控制系统-测量与保护”三层结构搭建。主电路包括三个MMC换流站联结变压器Ynd绕组交流系统等效电源三相电压源阻抗直流线路π型等值线路模型直流汇流母线。控制系统包括dq变换、功率计算模块外环控制器定功率/定直流电压/定无功功率内环电流控制器环流抑制控制器PWM调制信号生成模块载波移相子模块投切逻辑模块。测量与保护包括三相电压电流测量功率计算瞬时功率法直流电压过压/欠压保护逻辑过流保护逻辑简单限幅。这种分层的好处是每一部分都可以单独验证出了问题容易定位。比如先单独测试控制系统的阶跃响应再接上主电路闭环测试而不是一上来就把整个模型跑起来然后面对一片报错。3.2 MMC换流站的建模方法MMC建模在Simulink里有三种层次详细开关模型Full Switching Model每个子模块用IGBT二极管电容的物理模型搭建精度最高但仿真速度极慢。适合子模块数≤10的场景。开关函数均值模型Averaged Model用受控电压源表示每个桥臂的可控电压忽略开关过程保留电容电压动态。速度较快适合控制策略验证。简化等效模型Thevenin Equivalent Model把MMC桥臂等效为一个受控电压源和电阻串联计算速度最快适用于系统级研究。我在模型里采用的方案是“详细开关模型每桥臂6个子模块”的折中配置三相两电平/三电平语义下的简化MMC。如果你需要复现可以用以下MATLAB代码片段辅助生成MMC模块% 定义MMC基本参数 Vdc 300e3; % 直流电压 300kV nSM 6; % 每桥臂子模块数 Csm 3e-3; % 子模块电容 3mF Larm 0.06; % 桥臂电抗 60mH Rarm 0.5; % 桥臂电阻 0.5 Ohm Vc_rated Vdc / nSM; % 子模块额定电压 % 计算桥臂等效参数 L_equiv 2/3 * Larm; % 交流侧等效电感 R_equiv 2/3 * Rarm;提示子模块电容的取值需要满足能量波动约束。经验公式是电容储能与传输功率之比H参数一般在30~50kJ/MVA之间。对本模型300MVA的系统电容总量约为9~15MJ分配到6个子模块每个桥臂后单个电容取3mF左右是合理的。3.3 控制系统在Simulink中的实现细节控制系统的Simulink实现有几个容易出错的细节坐标变换的相位同步必须使用PLL锁相环跟踪交流母线电压相位且PLL要建立在联结变压器的阀侧或网侧一般选择网侧电压。PLL的PI参数整定要足够快带宽50~100Hz以保证在故障和功率突变时能快速锁定相位。我在模型中用Simscape Electrical自带的PLL模块设置PI参数KP_pll 50、KI_pll 1000动态响应比较理想。dq变换的参考方向要明确是采用“电网电压定向”还是“换流器电压定向”。通常选择电网电压矢量定向即d轴与电网电压矢量重合这样q轴分量自然对应无功功率。如果方向反了就会出现有功无功耦合甚至正反馈。离散化与采样时间控制系统在Simulink里建议用离散模块Z域实现采样时间设为50~100μs。连续模块虽然搭建快但实际工程都是数字控制器离散化更贴近现实也更容易避免代数环问题。代数环问题当测量信号经过控制系统立即反馈给主电路而主电路又是直接馈通时容易形成代数环。解决办法是在测量通道加一个一阶惯性滤波1/(Ts1)或memory块打破环路。我一般喜欢在功率计算后加一个100μs的一阶低通滤波既滤除了高频噪声又解决代数环问题。3.4 直流线路模型选取三端系统需要两根直流线路或者一个直流汇流网架直流线路的建模直接影响功率传输的暂态特性。如果直流线路很短比如10km以内可以用集中参数RL模型即一个电阻和电感串联如果线路较长建议用π型等值电路把线路电容分到两端。考虑到模型研究重点在控制策略直流线路采用集中RL并联电容的简化π模型即可而不用分布参数模型Bergeron模型或频率相关模型。分布参数模型会引入行波过程阶跃响应会有明显的高频波动虽然更真实但会给控制系统调试带来额外麻烦。我的直流线路参数长度50km单位电阻0.015Ω/km单位电感0.6mH/km单位电容0.05μF/km。算下来总电阻0.75Ω、电感30mH单根并联电容2.5μF分布在两端。折算到300kV/300MVA基准下这条线路的电阻标幺值约为0.75 / (300²/300) 0.75/300 0.0025p.u.压降很小符合柔直工程低损耗的特性。4. 三端协调控制的仿真工况与结果分析4.1 典型运行工况设置模型搭建完成后我设计了以下几个典型工况来验证系统功能工况1稳态运行。设置换流站2注入功率0.8p.u.240MW换流站3吸收功率0.6p.u.180MW换流站1作为平衡节点自动填补差额0.2p.u.60MW。该工况用于验证基本的功率平衡能力和直流电压稳定性。工况2功率阶跃扰动。在t2s时换流站3的有功功率参考从-0.6p.u.阶跃到-0.9p.u.观察直流电压波动。理想的响应应该是直流电压在2%~5%范围内波动并在100~200ms内恢复到稳态值。工况3换流站退出运行。在t3s时模拟换流站2因故障跳闸功率跌落至0观察换流站1和3的响应。这个工况最考验三端系统的协同能力——平衡节点能否快速补足功率缺口非故障换流站能否保持稳定不间断运行。工况4交流侧三相短路故障。在换流站3的交流出口设置一个持续0.1s的三相短路故障观察直流电压波动和系统恢复能力。4.2 关键波形解读以功率阶跃为例以工况2为例我观察到的关键波形特征如下阶跃发生后换流站3的直流电流迅速上升输出功率在约50ms内跟踪到新的参考值超调量约8%随后在PI调节下快速收敛。直流电压在阶跃瞬间出现一个短暂跌落约4%这是因为功率增大时直流线路压降增大同时换流站1需要时间响应。通过增大直流电压环的KI参数电压恢复时间从200ms压缩到约120ms。环流抑制起作用后桥臂电流中的二倍频分量明显减小波形毛刺显著减少。对比未加环流抑制的模型桥臂电流的THD从8%下降到3%以下。这一组结果表明三端系统的功率阶跃响应本质上是一个多环交互过程直流电压动态和功率动态互相耦合PI参数必须在“快速响应”和“阻尼振荡”之间取平衡——一味提高KI会让功率响应变快但直流电压容易出现振荡甚至失稳。4.3 电压下降控制Droop在三端系统里的优势我在模型里把单点电压控制和电压下降控制做了对比仿真。单点电压控制时如果平衡节点换流站1因故退出直流电压会持续跌落剩余换流站无法自动调整功率系统崩溃。而加入电压下降控制后换流站2和3会根据直流电压偏差自动调整功率输出电压跌落时注入功率的站自动少送吸收功率的站自动少收系统在通信失效的情况下仍然能稳定运行在新平衡点。电压下降控制的实现很简单在功率外环的参考值上叠加一个偏差项即可P_ref P_ref0 Kdroop * (Vdc_ref - Vdc)这个方案在仿真里可靠且容易实现强烈建议做三端及更多端柔直模型时直接默认采用Droop控制作为高优先级控制策略。5. 常见问题与调试经验速查5.1 仿真速度慢到无法忍受怎么办MMC详细模型最大的痛点就是仿真速度。我一开始搭了每桥臂36个子模块的模型仿真1秒钟波形要等将近20分钟。后来做了三项优化速度提升非常明显改用离散化固定步长求解器步长从默认的auto设置为20μs甚至50μs开关事件不再触发变步长算法的频繁插值。采用“平均化开关函数”处理子模块电压源将子模块输出电压写成开关函数平均值乘以电容电压避免每个IGBT的开关细节。关闭不必要的示波器数据记录只在关键节点放置scope避免Simulink因为记录大量中间变量而拖慢仿真。经过优化同样的工况仿真时间缩短到原来的1/5左右。如果你的研究重点是控制策略而非器件级波形直接用平均值模型是性价比最高的选择。5.2 直流电压振荡或者发散从哪里排查直流电压振荡是柔直仿真里最常见的问题之一通常的排查顺序是检查PLL是否锁相成功。PLL失锁会导致dq变换后的功率计算错误进而导致控制器输出错误调制波。可以在仿真初期观察PLL输出的频率是否为50Hz、角度是否线性变化。检查内环电流环是否稳定。断开外环给定id_ref、iq_ref阶跃观察电流跟踪特性。如果内环发散一定是PI参数或解耦项符号错误。检查外环和内环带宽间隔。如果外环响应快于内环比如外环PI参数太大就会出现内外环交互振荡。这个在时域波形上的特征是功率在参考值附近高频振荡、直流电压波动周期一致。检查直流电容和线路电容是否过大。电容过大会导致电压响应慢与控制系统形成滞后环节也容易诱发振荡。5.3 模型参数纯标幺化还是用有名值在MATLAB里搭电力电子模型既可以用有名值电压300kV、功率300MW也可以用标幺值。我的经验是主电路用有名值控制参数尽量用标幺值。为什么主电路用有名值不容易搞混物理量级变压器、线路模块直接填对应工程参数即可而控制器的PI参数用标幺值设计时数值相对稳定且有通用性。具体做法是在控制器内部设计一个归一化环节把测量值除以基值PI输出再乘以基值恢复为有名值。比如定功率控制器外环id_ref (PI_pu_on_P_err) * Ibase; % PI输出是标幺值乘电流基值得到有名值这样当你把模型从300MW改成300kW时只要修改基值变量控制参数几乎不用动。5.4 MATLAB版本和工具箱的兼容性VSC-HVDC建模会用到Simscape Electrical原名SimPowerSystems/SimElectronics这个工具箱在不同MATLAB版本里的模块命名有差异。比如老版本是“powerlib”库新版本是“simscape/specialized power systems”。如果你在网上下载了别人分享的模型直接用新版本打开经常会出现一大堆“missing block”报错。我的建议是如果只是学习原理优先自己搭建模型不要过度依赖别人的旧版本文件如果确实要打开旧模型可以用MATLAB的“upgrade”功能自动升级但需要仔细检查升级后变压器的连接标识Simscape里容易出错、PLL模块配置是否被重置。版本方面R2020a及以后版本对特殊电力电子系统的支持都算稳定我用的是R2021b整体体验不错。5.5 子模块电容电压不均衡怎么办电容电压不均衡会造成子模块过压或欠压直接影响MMC的安全运行。出现这个问题从优先级上按三步排查检查排序均压算法是否正常工作重点看排序周期、投入数量的计算是否正确尤其是桥臂电流方向判断错误时均压策略会适得其反。检查子模块电容初始电压是否设置一致初始电压不一致会导致启动瞬态不平衡Simulink里电容初始电压默认0需要手动设置为额定值Vc_rated。检查调制策略是否带来系统性偏差载波移相角度设置错误会导致某些子模块开关频率高于其他。载波移相角应该均匀分布且每个周期都更新不能使用固定载波。6. 实践经验与后续可扩展方向6.1 模型搭建的几个原则性经验回头来看这套三端VSC-HVDC模型的搭建过程有几条体会比较深第一先搭单端再扩多端最后做协调控制。直接从三端开始调试出了问题根本定位不到是哪一站引起的。我一开始就急着一口气搭完三端结果仿真发散后面对六个MMC桥臂、几十个PI参数完全无从下手。后来推倒重来先把单端对拖两个换流站背靠背调通再扩展成三端整个过程顺畅得多。第二控制系统参数的整定顺序不能乱。顺序是PLL参数 → 内环电流参数 → 外环功率/电压参数 → 环流抑制参数 → Droop/协调参数。前面环节没调稳后面再怎么调都是白费。第三做好模型的模块化封装。把MMC、控制器、PLL、保护逻辑分别封装成子系统Subsystem用Goto/From标签连接信号这样不仅视觉上清爽而且复用性极强——后面想从三端扩成四端五端只需要复制MMC模块和对应的控制器改改参数就能运行。6.2 从三端模型还能往哪些方向扩展这套三端模型本身是一个研究平台顺着几个方向可以做更深的内容扩展到四端或五端直流网络增加换流站数量后直流网络会变成真正的环形或网状拓扑协调控制的复杂度显著提升可以研究更高级的能量路由策略。接入实际新能源模型把换流站2侧的等效电源替换为光伏阵列或双馈风机模型研究新能源波动下的多端协调控制。加入直流故障保护研究柔直系统的直流故障电流上升极快故障隔离是工程难点。可以在模型里加入直流断路器模型研究故障穿越和故障隔离策略。RTDS硬件在环测试把控制器生成C代码部署到控制器硬件上与实时仿真器闭环更接近工程验证。我在实际使用中发现三端模型最适合作为硕士阶段的研究平台它比两端模型多一维的协调问题又不至于像四端五端那样把精力耗费在系统架构上。控制参数的整定、Droop系数的选取、故障工况的设计都是能写成高水平小论文的素材。最后再分享一个小技巧在Simulink里跑这种大模型前一定记得先配置好数据记录功能把关键信号直流电压、各站功率、桥臂电流、子模块电容电压用“Signal Logging”保存到工作区仿真结束再用MATLAB脚本统一绘图。这样调试效率会提高很多比对着示波器截图一张张翻要方便得多。