ARTICLE DETAIL

资讯详情

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

四端柔性直流输电系统Simulink仿真:控制策略与低电压穿越实战

四端柔性直流输电系统Simulink仿真:控制策略与低电压穿越实战 四端柔性直流输电系统的Simulink仿真是电力电子方向的学生和做系统级研究的工程师绕不开的一道坎。我最早接触VSC-MTDC多端柔性直流输电时也觉得“不就是把几个换流器拼在一起嘛”真正动手在Matlab Simulink里搭出四端网络模型才发现重点根本不是主电路的连接而是四个换流站之间的协调控制谁负责稳住直流电压、谁负责输送有功、无功功率怎么分配、交流侧电压跌落时直流系统能不能扛得住。这篇文章就围绕“四端换流器控制”和“无功补偿控制”这两个核心把我从零搭建一套四端柔性直流系统模型的全过程拆开讲从控制策略选型讲到Simulink仿真细节再到低电压工况下的无功补偿调试最后把我踩过的坑全部标出来希望能给正在做同类仿真的朋友一点实际参考。1. 四端柔性直流输电系统动手建模前先想清楚三件事1.1 为什么是“四端”拓扑和控制复杂度在哪里柔性直流输电VSC-HVDC从两端点对点输电走向多端网络是一个很自然的演进方向。点对点工程中一个站整流、一个站逆变控制关系十分简单——一端定直流电压另一端定有功功率系统就能稳定运行。但一旦把网络扩展到三端、四端甚至更多换流站之间就有了多条直流功率传输路径站与站之间存在明显的耦合关系这时如果还沿用双端的“一刀切”思路系统很容易出现功率振荡甚至直流电压崩溃。四端网络恰好是研究多端协调控制的最小但最完整的载体。它既有环形拓扑的冗余特性某一回直流线路退出后功率还可以走另一条路又具备辐射状网络的一些特征比如某个送端站故障退出后受端站需要重新分配功率。很多实际工程的规划方案就是从四端起步的四端模型的研究结论也能比较顺畅地扩展到更多端数。在Simulink里搭四端网络说白了就是把四个VSC换流站通过直流线路连起来。物理连接不复杂每个站都是“交流源变压器换流器直流侧出口”难的是控制策略的大局观四个站里谁承担直流电压支撑任务这个站如果故障跳闸谁会接过电压控制每个站的交流侧无功是各自独立控制还是统一协调这些顶层设计没想清楚后面搭出来的模型就是“四个独立的两端系统硬塞进一张图”一加扰动就乱套。1.2 换流器建模精度取舍MMC详细模型、平均值模型还是两电平替身四端系统的核心元件是换流器。现在实际工程中主流的是MMC模块化多电平换流器每个桥臂由几十甚至上百个子模块串联子模块电容电压平衡、环流抑制这些环节都要考虑。如果在Simulink里四个站全部采用完整的MMC详细模型——每个桥臂几十个子模块、每个子模块一套IGBT和电容——仿真规模会变得非常恐怖跑一步要几十秒甚至几分钟调一次参数可能要等半天体验极差。我个人的实践经验是按照仿真目标来选模型精度常用的方案有三种全部用MMC平均值模型不建模内部子模块只等效成受控电压源与受控电流源保留交流侧和直流侧的端口特性。适合研究系统级控制、多端功率分配、无功协调这类问题仿真速度快精度也够用。一个站用MMC详细模型、其余三个站用平均值模型如果你想顺带研究换流站内部的环流抑制或者子模块电容电压均衡策略就用这种混合建模方式重点观察的那一站用详细模型其余站作为“外部电网特性”用平均值模型代替。仿真速度适中兼顾细节。全部用两电平VSC替身用两电平VSC加RLC滤波器来代替MMC的外特性。这种方法精度相对粗一些但调参容易、收敛性好适合做四端系统级控制策略的初始验证跑通之后再把某个关键站换成MMC细化研究。我在做四端无功补偿控制研究时选的是第一种方案——MMC平均值模型。平均值模型的好处是不用考虑开关过程换流器输入输出关系由控制指令直接决定这样可以把注意力完全集中在控制系统和网络协调上。等四端控制策略完全跑通了再把单个换流站拆成详细MMC模型做专题研究这样层级推进效率高很多。1.3 控制框架选型主从控制、裕度控制与下垂控制在Simulink里的落地方式多端柔直系统最常见的控制框架有三种分别是主从控制、裕度控制和下垂控制实话说没有哪个绝对最优关键看系统运行需求。主从控制最简单选一个换流站定直流电压主站其余站全部定有功功率。主站承担系统功率差额平衡直流电压恒定。缺点是主站一旦退出整个系统就失去电压支撑。裕度控制在主从控制的基础上做了改进每个功率站在检测到直流电压超出其动作阈值时自动切换成定电压控制模式相当于准备了“备胎”主站故障后其他站接力。好处是可靠性高坏处是需要仔细整定各个站的电压阈值和切换逻辑控制切换瞬间容易产生冲击。下垂控制最接近实际电网中同步发电机的频率下垂特性每个换流站根据直流电压偏差自动调整有功功率指令多个站共同分担功率平衡从而分散风险。优点是响应快、可靠性高缺点是需要设计下垂系数而且系统稳态直流电压会随功率变化偏移。在我的四端模型里我采用的是主从控制定功率控制为主、在受端站加入了下垂特性的混合方案。具体来说四端系统中一个送端站作为主站采用定直流电压控制其余三个站采用定有功功率控制同时给其中一个受端站附加直流电压下垂特性作为电压辅助支撑。这样既保证了直流电压的稳态精度又在一定程度上有冗余能力。在Simulink里这个混合方案不过是在外环控制器上多引一个直流电压偏差反馈再到功率参考值叠加实现起来并不复杂但仿真鲁棒性明显好于单纯主从。2. 换流器控制策略与核心参数整定这是整套模型的心脏2.1 内环电流控制dq解耦与PI参数计算VSC换流器的控制几乎都建立在dq同步旋转坐标系上。把三相交流量变换到dq坐标系之后有功功率主要取决于d轴电流无功功率主要取决于q轴电流这样功率控制就转化为电流控制实现起来非常直接。同步旋转坐标系下换流器交流侧电流满足下列微分方程$$ L\frac{d}{dt}\begin{bmatrix} i_d \ i_q \end{bmatrix} -\begin{bmatrix} R -\omega L \ \omega L R \end{bmatrix}\begin{bmatrix} i_d \ i_q \end{bmatrix} \begin{bmatrix} u_d-v_{cd} \ u_q-v_{cq} \end{bmatrix} $$其中 $u_d$、$u_q$ 是换流器交流侧电压的dq分量$v_{cd}$、$v_{cq}$ 是接入点母线电压的dq分量$L$和$R$是换流变压器及桥臂电抗折算到交流侧的等效电感和电阻$\omega$是基波角频率。从公式里能看到d、q轴电流通过交叉项 $\omega L$ 耦合在一起所以内环控制必须引入前馈解耦。控制律可以写成$$ u_d (K_{p} \frac{K_i}{s})(i_{d_ref} - i_d) - \omega L i_q v_{cd} $$$$ u_q (K_{p} \frac{K_i}{s})(i_{q_ref} - i_q) \omega L i_d v_{cq} $$这里PI调节器输出的是电压指令交叉项和母线电压分量作为前馈补偿。在Simulink里搭这个环路不需要把方程手写一遍用Simscape Electrical自带的“Current Regulator”或者直接用“PID Controller”模块加加减减就能搭出来关键是PI参数怎么定。内环PI参数我习惯用经典带宽整定法步骤如下确定电流内环期望带宽 $\omega_{ci}$一般取开关频率的1/10到1/5。如果仿真步长设置使载波频率是2000Hz带宽取300~500rad/s是比较稳妥的。按公式计算PI参数$K_p \omega_{ci} \cdot L$$K_i \omega_{ci} \cdot R$。在Simulink里做阶跃响应测试观察d轴电流跟踪速度与超调量微调$K_p$、$K_i$。这套整定公式的前提是采用标幺值模型$L$和$R$也要用标幺值代入。如果直接在SI单位下搭模型计算参数时务必把单位换算清楚这是很多初学者容易忽略的地方。2.2 外环控制定直流电压、定有功功率与定无功功率内环电流控制只负责“执行”真正的“决策”由外环控制器完成。外环输出的是电流内环的参考值 $i_{d_ref}$、$i_{q_ref}$。定有功功率控制是最简单的外环有功功率实际值 $P$ 与有功参考值 $P_{ref}$ 比较经过PI调节器直接输出 $i_{d_ref}$q轴电流参考由无功控制决定。公式上就是 $i_{d_ref}PI(P_{ref}-P)$。定直流电压控制要稍微动点脑筋。直流电压$U_{dc}$与有功功率之间是平方关系$P U_{dc} \cdot I_{dc}$所以有的实现方式是对电压平方做差值再进PI有的直接用电压差值进PI加限幅。两种方法我都试过电压平方差值的线性化程度更好控制效果更稳定推荐使用。从直流电压外环到电流内环的传递函数可以近似为二阶系统外环带宽一般取内环带宽的1/5到1/10这样内外环不会互相打架。定无功功率控制的外环和无功内环比较容易整定$Q$实际值与$Q_{ref}$比较经PI输出$i_{q_ref}$。这里要特别注意限幅设置$i_{q_ref}$的最大值必须受到换流器容量约束否则可能超出电流裕度导致过流。以我搭建的四端系统为例四个站的额定容量分别为400MW、300MW、300MW、200MW直流电压等级为±100kV。1号站作为主站采用定直流电压定交流电压控制承担功率平衡任务2、3号站采用定有功功率定无功功率控制4号站作为受端站采用定有功功率定交流电压控制起到无功支撑和交流电压调节作用。2.3 无功补偿控制参考值怎么定、多站之间怎么协调柔性直流一个非常大的优势就是换流站可以独立控制无功功率不需要额外装设SVG或电容器组。每个换流站通过调整q轴电流就可以向交流电网提供或吸收无功效果上相当于一个STATCOM。无功补偿控制在仿真中常见三种形式定无功功率控制给定固定的$Q_{ref}$适合按调度指令运行实现最简单。定交流电压控制测量换流站接入点交流电压有效值$V_{ac}$与参考值比较后经PI输出$i_{q_ref}$电压偏低就增发无功电压偏高就吸收无功这是自动电压支撑模式。下垂控制把交流电压偏差映射为无功功率偏差通过下垂系数形成“电压-无功”协调关系适合多个换流站同时接入同一个交流电网时做无功均衡分配。我在四端模型里同时用了上述三种思路2、3号送端站直接用定无功功率控制把无功参考值设成0附近单位功率因数运行4号受端站采用定交流电压控制因为受端网络通常比较薄弱需要换流站提供电压支撑1号站作为电压主控制站也保留了一定无功调节能力用来平衡交流母线电压。这样设计的直接好处是在整个直流系统正常运行时各站无功基本按预设策略稳定输出交流母线电压波动很小而一旦交流侧有功负荷发生波动4号受端站会通过定交流电压控制自动增加无功输出稳住接入点电压不需要额外的控制器切换逻辑。3. Simulink建模实操从主电路到闭环系统一步步搭起来3.1 主电路搭建交流电源、变压器、换流器与直流线路启动Matlab后我用的是Simscape Electrical早期版本叫SimPowerSystems库来搭建主电路。先建一个空模型然后从模块库中拖出下列元件交流电源模拟换流站所接入的交流系统用“Three-Phase Source”模块设置额定电压和短路容量。短路容量越大代表电网越强反之说明换流站接入的是弱电网这对控制策略的影响很大。我的模型里送端站接入的是强电网短路比5左右受端站接入的是弱电网短路比2.5左右。换流变压器用“Three-Phase Transformer”模块容量和电压等级要跟换流站匹配。比如直流侧±100kV对应交流侧电压取110kV或220kV等级变比和接线方式通常用Y/Δ接线要仔细设置否则会出现相位偏差。换流器我用的MMC平均值模型在Simscape Electrical中可以找到“Average-value VSC”模块或者用受控电压源、受控电流源自己封装一个。平均值模型的输入是d、q轴电压参考值调制信号输出是交流侧三相电压和直流侧电压电流端口清晰非常方便接入控制系统。直流线路四端直流网络用π型集中参数模型“Pi Section Line”模块或者用RL串联等效。实际工程中直流线路从几十公里到几百公里不等线路电容对直流电压动态有影响建议至少用π型模型而不能忽略电容。我的模型里四段线路长度分别设为80km、100km、120km、60km每公里电阻、电感、电容按工程典型值设定。主电路连起来之后先不要着急接控制给换流器一个手动设定的调制比空载试运行一下确认三相电压波形、直流电压建立过程正常再做闭环控制。3.2 控制保护系统搭建PLL、坐标变换、PI调节器与PWM控制系统的搭建是重头戏我在模型中用一个独立的“Control”子系统来管理里面包含四个站的完整控制逻辑。以单个换流站为例控制链路是这样的PLL锁相环测量换流站接入点三相电压提取相位 $\theta$供park变换使用。PLL的PI参数也需要整定带宽通常是50~100rad/s带宽太高相位跟踪噪声大太低动态响应慢。abc→dq变换用“abc_to_dq0”模块把三相电流和电压变换到dq坐标系得到 $i_d$、$i_q$、$u_d$、$u_q$。外环控制器根据站的工作模式把有功类物理量直流电压或有功功率送入PI调节器输出 $i_{d_ref}$把无功类物理量无功功率或交流电压送入另一个PI调节器输出 $i_{q_ref}$。内环电流控制器$i_{d_ref}$ 与 $i_d$ 做差进入PI叠加解耦项和电压前馈项输出调制电压指令 $u_d$、$u_q$。dq→abc变换与调制把调制电压指令变换回三相送入PWM发生器或者直接作为平均值模型的调制信号输入。这套链路看起来长但每一步都是标准动作。要特别注意的是Simulink里信号线多而杂建议把所有测量信号和参考值通过Goto/From标签或者Bus方式传递而不是把线拉得满屏幕都是否则后期查错会非常痛苦。3.3 参数设置与初始化标幺值、初始条件和仿真步长四端柔直模型能不能稳定跑起来参数初始化占了很大的比重。下面这些是我实际建模中反复调整过的关键项仿真步长如果使用了PWM载波建议用离散求解器步长取载波周期的1/50到1/100。比如载波频率2000Hz仿真步长取1e-5秒到2e-5秒。如果纯粹用平均值模型可以把求解器设成变步长容差适当放宽仿真速度会快很多。直流侧电容初始电压这是最容易导致初始化失败的坑。Simscape中的电容模块默认初始电压为0而柔性直流系统的直流电压是从零按指数规律建立的。如果电容初始电压设成0且控制器在这个瞬间就试图把直流电压提到额定值会产生极大的冲击电流导致仿真发散。我在每个换流站直流侧的电容初始电压都设成额定值比如200kV再配合控制器里的软启动逻辑让电压参考值在0.5秒内斜坡上升到额定值这样仿真一开始就能平稳进入稳态。PI调节器的初始输出控制系统里的PI模块初始输出也值得设置一下。如果不设初值PI从零开始建立输出前几个仿真步内容易出现电流冲击。我给功率外环和内环PI都设置了一个与稳定工况相近的初始输出值这样启动过程几乎无感。标幺值系统如果愿意在换流变压器和线路参数上都做标幺化数值稳定性会好很多。我在模型里直接用SI单位制搭的但所有PI参数按照标幺值体系计算后在SI体系下做了折算。两种体系都可以但切忌混用后不做换算那会让调参变成碰运气。配置完以上各部分之后模型在空载、带载两种状态下跑一遍查看直流电压、各站功率、无功输出是否与设定值一致。确认稳态无误就可以进入下一阶段的场景化仿真了。4. 低电压工况仿真无功补偿控制如何撑住电压4.1 低电压工况与低电压穿越调试场景的设计标题里的“低电”大概率指向低电压工况——这是柔性直流系统最重要的暂态运行场景之一也是无功补偿控制的真正用武之地。实际系统中交流电网故障往往伴随着电压跌落这时候换流站如果还按正常时的无功策略运行交流母线电压会被进一步拖低严重时可能导致换流器解锁失败甚至脱网。在Simulink里模拟低电压工况有多种手段在交流电源处设置三相短路故障设置故障起始时间比如t2s和持续时间比如0.1s模拟交流系统不对称或对称跌落。直接改变交流系统等效电压源的幅值模拟电压跌落深度。在换流器直流侧设置功率突变模拟直流线路故障后功率失衡导致的直流电压跌落。我做的模型里设置了两个典型场景第一个是送端站交流母线发生0.5s的三相短路故障母线电压跌落到0.2pu左右第二个是4号受端站的有功功率指令突然减少50%模拟受端电网甩负荷观察直流电压动态和受端站的无功响应。这里要提醒一句故障仿真的前提是稳态控制已经跑得很稳否则很难区分是控制器问题还是场景本身的问题。所以建议先把正常工况下的四端系统运行至少5秒确认所有功率、电压都平稳了再接故障故障前后留足过渡时间。4.2 低电压穿越逻辑无功电流优先的实现方法低电压工况下的无功补偿控制本质要求是在交流电压跌落期间让换流器优先输出无功电流支撑交流电压恢复。这非常像并网规程里对新能源场站低电压穿越LVRT的无功要求——电压跌落越深无功电流越大。在Simulink模型里我实现了一种实用的控制逻辑可以作为低电压穿越增强模块嵌入到每站的无功控制环节$$ i_{q_ref_LVRT} K_{lvrt} \cdot (0.9 - V_{t_pu}) \cdot I_{n} $$其中 $V_{t_pu}$ 是换流站接入点电压的标幺值$I_n$ 是额定电流幅值$K_{lvrt}$ 是比例系数一般取1.5~2当电压低于0.9pu时该模块激活其输出与正常运行时的无功电流参考值取最大值后送入内环。这个逻辑的作用机制可以用一句话说清楚电压正常时LVRT模块的输出为负因为0.9减去1.0小于零它被限幅在0不影响正常无功控制电压一旦跌落超过死区模块立刻输出一个大的无功电流参考值换流器会像STATCOM一样向交流系统无功支撑。这个模块我在Simulink里用了几行逻辑加一个增益就能实现但它对低电压穿越性能的改善是非常明显的。有一点要特别注意无功电流增大的同时总电流是有容量上限的。如果无功电流占用的电流空间多了有功电流的裕度就会减少因此需要配套设计电流限幅。我的经验做法是在内环电流参考值入口加一个基于换流器容量的电流幅值限制模块优先保证无功电流剩余容量才给有功使用。4.3 四端协调控制下的无功分配效果观察设置好低电压场景后我用示波器分别观察了交流母线电压、各站无功功率、直流电压和内环电流的响应曲线。这里说一个比较典型的仿真结果当2号站交流母线发生短路故障时2号站电压瞬间跌到0.3pu附近LVRT模块立刻动作无功电流在短时间内上升到接近额定值向故障点附近电网提供无功支撑。故障持续期间2号站的有功功率因电流限幅而下降但直流电压依然能维持在额定值附近因为1号主站自动增加了功率输出来补偿差额。故障清除后各站的无功电流在0.2秒到0.3秒内回落到正常控制模式整个过程系统没有出现电压失稳或功率振荡。这个结果充分说明了四端网络协调控制的价值单个换流站的交流故障并不会拖垮整个直流系统其余站通过直流网络自动完成了功率重新分配与无功支撑。这些动态过程在Simulink示波器里一目了然也是论文和报告里最有说服力的仿真结果。5. 实际调试中的问题与排查方法搜遍论坛不如自己记录一份5.1 仿真启动不收敛、初始化失败的常见原因做这套模型的时候我遇到的第一道坎就是仿真一开始就报错提示“Initialization”失败或者“Singular matrix”之类。这里要给第一次搭柔直模型的朋友提个醒Simscape模型中存在电力电子开关和电容电感这类储能元件时初始时刻的状态预测很容易出问题。排查步骤通常是这样检查所有电容的初始电压是否已有设定不要依赖默认的0V。检查变压器连接方式Y/Δ接法时测得的三相电压相位可能是错的导致PLL锁定失败。检查是否有孤立电压源直接并联在理想电压源上——这是“Singular matrix”最常见的来源。尝试在“求解器配置”里把“Start simulation from steady state”打开让Simulink先找一个收敛的稳态工作点再启动动态仿真。我用过最省事的方式是先用一个简化模型比如只有单站纯电阻负载跑通启动流程确认没问题后再复制扩展成四端网络。一次把四端全部搭完再排错定位问题的难度是翻倍的。5.2 直流电压振荡功率外环带宽与直流网络耦合四端系统跑起来以后我发现直流电压并非平稳在200kV上而是出现了持续的40Hz左右的振荡。排查下去得出结论这个振荡与1号主站直流电压外环的带宽设置有关。前面说过直流电压外环的带宽比电流内环低一个数量级才算合理。但我最初为了博动态响应快把电压外环带宽设得偏高结果和3号送端站的功率外环形成了频带重叠。两个站的控制回路经过直流网络相互耦合产生了持续的振荡。调整的办法是重新整定外环PI参数把电压外环带宽收紧到大约30rad/s同时给直流电压测量信号加一个50Hz的低通滤波器振荡很快就衰减掉了。后来我复盘发现多端系统各站的功率/电压外环频率不能靠得太近至少要差5到10倍否则耦合振荡几乎不可避免。5.3 无功振荡与PLL失锁弱电网下的连锁反应还有一个挺隐蔽的问题出现在4号受端站。4号站接入的弱电网短路比2.5左右在无功控制从正常模式切入LVRT模式时无功电流突然增大导致接入点电压相位发生较大变化PLL的锁相环路一时跟不上出现了相位跳动进而引起无功功率的振荡。这种问题的处理思路有三个方向给PLL增加前馈项将电网电压的标称角度直接前馈到锁相环输出减小动态误差。限制无功电流变化速率。我在LVRT模块后面加了一个一阶惯性环节让无功电流参考值在0.05秒内逐渐上升到目标值而不是阶跃跳变这就消除了对PLL的相位冲击。适当提高PLL带宽。弱电网情况下PLL带宽取75~100rad/s跟踪更快失锁风险变小。经过这几项调整4号站在LVRT期间的无功响应既快速又平稳没有再出现振荡现象。5.4 Simulink建模中的几个冷门细节这部分是零散但特别实用的细节权当经验笔记Bus Selector没有可选信号的问题很多人在Simulink里用Bus Selector选不到某个信号因为生成Bus的信号没有在总线创建器Bus Creator里勾选“Output as bus”或者信号的存储类型被优化了。解决方法是给需要引用的信号线右键选择“Signal Properties”勾选“Test point”或“Pass as bus”再从Bus Selector里刷新一下。模型跑得慢如果详细MMC模型导致仿真速度只有实时性的十分之一甚至更低先检查是不是求解器步长被事件触发了。换成固定步长离散求解器并关闭不必要的Scope刷新速度会有明显提升。多工况批量仿真如果你想扫无功下垂系数或者PI增益建议用Matlab脚本配合sim函数批量跑模型而不是手动在Simulink界面里逐个改参数。用set_param修改模块参数再反复调用sim能节省大量时间。模型版本兼容性Matlab版本迭代很快我现在用的Matlab 2026bSimscape Electrical的模块接口相比两三年前有些调整。如果你打开老工程发现模块提示“需要迁移”别犹豫直接用迁移向导更新即可绝大多数情况下功能是兼容的不要手工替换模块。写在最后一些实操层面的体会模型搭到能稳定跑各种工况之后回头看最大的体会是四端柔直系统的仿真功夫不只是花在Simulink操作上更在“分层次搭建、分步验证”的方法论上。先单站调稳再双端互连再四端组网每一步都确认无误后再进入下一层。我见过不少朋友一次性把四端网络完整搭出来结果仿真一跑全是发散和报错根本定位不到问题在哪里。另外Deadline压力之下可能会想跳过参数整定直接试凑诚心建议不要这样。电流内环、电压外环、PLL的PI参数全部按带宽法先算一遍再微调20%以内比盲目试凑快得多。Simulink里的Scope和日志功能也好好利用起来每个关键信号都加Logging定位问题的时候回看曲线比猜原因高效太多了。这个四端柔直模型还能往很多方向扩展比如加入储能端、接入风电模型、研究直流线路故障后的潮流转移等都是不错的后续方向。希望这篇文章能把你在四端柔直系统仿真路上的起步摩擦降到最低少走我当年绕过的那些弯路。
返回列表