我最早接触UPFC那会儿,项目标题还是“基于VSC的UPFC研究”,第一反应是又要套一堆公式和坐标变换了。但真正在Simulink里把并联侧和串联侧两个电压源换流器搭起来、让潮流指令老老实实跟着设定走之后,才发现UPFC这个“FACTS全家桶”核心难点根本不在单机运行,而在并联侧和串联侧通过直流母线形成的那条能量通道,以及控制环里d-q轴解耦和直流电压平衡之间互相牵制的关系。这篇就把我在某跨平台仿真项目里用Simulink搭VSC-UPFC的完整过程、参数整定思路和排查经验写出来。本文适合刚入门柔性交流输电仿真、或者正在被功率不跟踪、直流电压发散这类问题折磨的同学。
1. 研究定位与整体拆解
1.1 为什么是VSC加UPFC这个组合
UPFC之所以叫统一潮流控制器,是因为它把并联补偿、串联补偿和移相功能全集成到了一套装置里。传统机械式调压或晶闸管投切电容器虽然也能调节潮流,但响应速度是百毫秒级甚至秒级,而且只能“有级”调节。UPFC的核心是两个通过公共直流母线背靠背连接的换流器:并联换流器稳住直流母线电压和交流母线电压,串联换流器向输电线路注入一个幅值、相位连续可调的电压,从而直接改变线路等效电压差和功率角。
早期UPFC用晶闸管相控换流器,问题是无功不能四象限灵活运行、动态响应慢。用VSC(电压源换流器)做功率级之后,IGBT开关频率高,PWM调制能让交流側电压谐波小、响应快,还能四象限运行。因此在Simulink里做UPFC研究,绝大多数人选择VSC拓扑而不是晶闸管拓扑,就是这个原因。
打个比方:并联侧像血压稳定器,把直流母线“血压”维持在设定值;串联侧像在线路里串入一个幅值和相位都可调的电池,叠加一个电压向量。只要电池电压的实部和虚部都能独立控制,线路上的有功和无功潮流就能独立调节。这套逻辑清楚了,后面的建模和控制才不会乱。
1.2 仿真系统的整体架构与研究对象
文章围绕一套典型单机无穷大或双电源输电系统展开:交流电源经输电线路向受端负荷供电,UPFC安装在送端母线附近或线路中点。系统由以下部分组成:
- 送端三相电源,220kV或110kV等级,频率50Hz;
- 并联变压器和并联VSC,负责稳定直流母线电压和无功/母线电压;
- 公共直流电容,连接两个VSC并解耦两侧有功交换;
- 串联VSC和串联变压器,串联变压器一次侧串入线路;
- 输电线路及受端负荷或无穷大母线。
研究对象是:并联侧和串联侧两个VSC的控制策略,特别是串联侧注入电压如何让线路有功P和无功Q独立跟踪设定值,以及动态过程中直流母线电压能否保持稳定。
很多初学者一开始就把两个换流器当成“两个独立的PWM整流器”来搭,结果直流电压和功率指令互相打架。核心原因是串联侧注入电压会产生有功功率,这个有功功率不管正负,都要经过直流母线由并联侧来“兜底”。因此项目逻辑顺序是:先并联侧定直流电压,再串联侧定线路潮流,最后联调。
1.3 建模思路的取舍
Simulink里做UPFC仿真通常有两条路:一条是电磁暂态详细开关模型,用Universal Bridge加IGBT/二极管,PWM触发频率设得很高,波形细节丰富,但仿真速度慢,调参数时特别煎熬;另一条是用平均值模型或受控电压源模型,忽略开关纹波,把VSC交换侧等效成与调制波成正比的受控电压源。我的做法是先用平均值模型把控制环调通、把参数整定规律摸清楚,最后再换详细开关模型做关键工况的波形验证。这样能节约大量时间,也不容易因为仿真不收敛怀疑人生。
2. 关键原理与Simulink建模细节
2.1 VSC数学模型与d-q轴解耦
UPFC控制设计绕不开VSC的数学模型。以并联VSC为例,交流侧经换流电抗器接母线,abc三相方程写成:
[ L\frac{di_a}{dt} = u_{sa} - v_{ca} - Ri_a ]
其中 (u_{sa}) 是母线电压,(v_{ca}) 是换流器交流侧输出电压,(R) 和 (L) 是换流电抗器的等效电阻和电感。经过Park变换到同步旋转d-q坐标下,方程变为:
[ L\frac{di_d}{dt} = u_{sd} - v_{cd} - Ri_d + \omega L i_q ]
[ L\frac{di_q}{dt} = u_{sq} - v_{cq} - Ri_q - \omega L i_d ]
注意里面的 (+\omega L i_q) 和 (-\omega L i_d) 是旋转坐标系下的交叉耦合项。实际控制里不能把d轴PI的输出直接当成 (v_{cd}),要补偿掉耦合项和解耦掉电网电压扰动,否则d轴动一下q轴跟着抖,系统很难稳定。Simulink中坐标变换用“abc_to_dq0 Transformation”模块,角度来自三相PLL锁相环,这一角度要和母线电压实际相位对齐。很多项目功率不跟踪、直流电压振荡,排查到最后都是PLL角度没对齐。
并联VSC的控制目标有两个:外环定直流电压 (U_{dc}) 和交流母线电压(或定无功 (Q)),内环控制 (i_d) 和 (i_q)。d轴电流代表有功电流,直流电压偏差经过PI后生成 (i_d) 的参考值;q轴电流代表无功电流,无功偏差或交流电压偏差经过PI后生成 (i_q) 参考值。这个“外环+内环”的级联结构在Simulink里很直观,但PI饱和和限幅处理要特别小心。
2.2 UPFC潮流控制原理
UPFC串联部分向线路注入电压 (\dot{V}{inj} = mV{dc} \angle \alpha),其中 (m) 是调制比,(\alpha) 是相对母线电压的相位角。当在单机无穷大系统中,输送有功可以写为 (P = \frac{U_1 U_2}{X}\sin\delta),UPFC注入电压等效改变受端电压向量,因此在同样的功率角和线路阻抗下,P和Q都能被独立“搬移”。
这里面有个容易绕晕的点:串联VSC注入的电压分量,一部分与线路电流同相,这部分就产生有功交换;一部分与线路电流正交,这部分是纯无功交换。串联换流器本身没有储能,同相分量对应的有功功率必须由直流母线供给,所以并联VSC要通过调节d轴电流维持直流电压。控制上体现为两个耦合的环:串联内环产生注入电压的d-q轴参考值,并联内环响应直流电压偏差。认清这一点,就明白为什么UPFC建模并联侧不能简单用“整流器恒功率控制”那套。
2.3 Simulink元件选型与系统参数设定
模型里选用Simscape Electrical库中的标准元件。电压源用Three-Phase Source;变压器用Three-Phase Transformer,并联变压器和串联变压器建议单独设置饱和参数,避免励磁涌流把仿真搞挂;换流阀用Universal Bridge,选择IGBT/Diode,或者先用Average-Value Converter把开关过程简化。测量环节用Three-Phase V-I Measurement,一个接到并联母线处,一个串入线路。
系统级参数如果直接按220kV、几百兆瓦去搭,仿真步长会非常受限,尤其是详细开关模型。建议用“中等电压等级”折算模型做控制验证,比如母线35kV、功率等级10MVA,控制算法逻辑完全一致,只是参数缩了,仿真压力小很多。折算关系保持阻抗基值一致即可。
直流电容的取值按照 (C = \frac{2S_{rate} \cdot H_{dc}}{U_{dc}^2}) 估算,(H_{dc}) 一般取0.01~0.05秒,这样电容储能时间常数合理。并联换流电抗器取0.1~0.15pu,太小了谐波大,太大了电压降和电流环响应变慢。
3. Simulink建模实操过程
3.1 主电路搭建步骤
整个搭建建议按照“并联侧先行”的顺序。先搭并联部分:
- 三相电源连接并联变压器;
- 并联变压器二次侧接换流电抗器,再接Universal Bridge;
- Universal Bridge直流侧接直流电容,电容两端接电压测量;
- 在并联母线处接入Three-Phase V-I Measurement,用于PLL和电压电流反馈。
并联侧启动后相当于一个STATCOM加整流器,先把直流母线电压稳定到给定值。然后搭串联部分:
- 串联VSC直流侧连接到同一电容;
- 交流侧接串联变压器二次侧;
- 串联变压器一次侧串入线路,注意同名端的方向,极性接反会让注入电压反相,潮流设定方向完全错误;
- 在线路串联变压器接入点两侧再装一个V-I测量,用于计算线路功率。
这里有个关键细节:串联变压器二次侧如果直接接VSC,变压器漏抗可能太小,导致PWM谐波电流过大。常见做法是额外串联一个小电感,或者利用变压器漏抗本身作为换流电抗器。我在实际项目中是把变压器漏抗设定到0.08pu左右,省掉了外接电感。
3.2 控制系统搭建要点
并联侧控制回路在Simulink里可以清晰分解为以下信号链:
- PLL检测并联母线电压,输出 (\omega t);
- abc三相电流经abc_to_dq0变换得到 (i_d,i_q);
- 直流电压参考 (U_{dc}^) 与测量值比较,PI输出 (i_d^);
- 无功参考 (Q^) 与测量Q比较,PI输出 (i_q^)(或者直接用交流电压闭环);
- 电流内环PI输出 (v_{cd}^, v_{cq}^),加前馈补偿 (u_{sd}, u_{sq}) 和耦合项,反Park得到三相调制波;
- 调制波与三角载波比较,生成IGBT门极信号;若用平均值模型,则直接作为受控电压源参考。
串联侧控制回路类似,但外环是 (P^) 和 (Q^) 与线路实测P、Q比较,PI输出的是注入电压的d轴和q轴参考值。这里要非常注意:串联注入电压d轴参考值的极性和功率方向要匹配。我项目里就吃过亏——功率参考方向定义不同,PI输出反号,结果P_ref从200MW升到250MW,实际P掉到150MW,最后检查发现是测量功率的方向和串联注入电压参考方向不一致导致的。
3.3 PWM调制与触发逻辑
PWM调制用三角波载波。载波频率选择要看仿真步长:如果开关频率是1050Hz,载波周期约0.95ms,仿真步长建议至少取载波周期的1/100,也就是10微秒级别。离散仿真下每个载波周期至少得有50个采样点,波形才比较干净。载波频率太低谐波大,太高仿真速度慢,1050Hz或1350Hz这个区间比较常用。
用Universal Bridge时,门极信号由PWM Generator模块生成,或者自己搭载波比较。自己搭的优点是调制波可以插入死区逻辑和限幅环节,调试时更容易观察。平均值模型则不需要载波,直接用Park反变换出来的三相调制电压乘以 (U_{dc}) 作为输出电压参考。
4. 控制策略实现与参数整定
4.1 电流内环PI参数的近似整定
电流内环的调节对象是RL串联回路,即 (L\frac{di}{dt} = u_s - v_c - Ri)。忽略电网电压扰动并把耦合项前馈补偿掉后,闭环传递函数近似为一阶惯性环节。PI参数可以用“零极点对消”方法初定:
[ K_p = \frac{L}{\tau_i}, \quad K_i = \frac{R}{\tau_i} ]
其中 (\tau_i) 是期望电流环时间常数,一般取5~20ms。取 (L=3\text{mH}, R=0.5\Omega, \tau_i=10\text{ms}),得到 (K_p=0.3, K_i=50)。这个初值不是用于直接交付,而是让波形先“活”起来,再手工微调。电流环响应快,(K_p) 太大容易在d-q分量里引入高频振荡,太小则跟踪慢。实际微调时我习惯先把 (K_i) 固定,只调 (K_p),看着 (i_d) 和 (i_q) 的阶跃响应调,超调压一压,带宽稳一稳,再动 (K_i) 消除稳态误差。
外环带宽一般取内环的十分之一到五分之一。直流电压外环的PI参数初值可以根据电容储能时间常数估算:(C\frac{dU_{dc}}{dt} \approx P),用小信号线性化后,(K_p) 和 (K_i) 与电容值和期望电压响应时间相关。我的经验是直流电压外环别调太快,否则并联侧有功电流会大幅摆动,触发串联侧的潮流波动。
4.2 功率指令跟踪与直流电压平衡
串联侧投入后,假设线路功率参考 (P^*) 从初始值变化到新值,串联注入电压的d轴分量会改变,从而改变线路有功。这时串联VSC从直流母线上抽取有功,直流电压有下降趋势。并联侧直流电压控制环立刻感知到偏差,增加d轴电流给直流电容充电,直流电压被拉回参考值。这个过程在仿真波形上会看到:串联功率先变化,直流电压出现暂态跌落或升高,并联电流跟着调整,最后直流电压回到设定值。如果直流电压外环参数太“软”,跌落幅度大且恢复慢;如果太“硬”,容易和串联侧控制发生次同步振荡。
q轴控制则更直接:改变串联注入电压的q轴分量,对有功影响很小,对无功影响大。通过解耦后d-q轴独立控制,能实现有功无功的近似解耦调节。正因为这样,这项目才叫“统一潮流控制”,否则用并联补偿和移相器分开做,动态性能和解耦性能都会差很多。
我在实验中发现,“直流电压平衡”是联调是否成功的关键判据。并联侧只输出无功也能维持直流电压吗?答案是不能,因为维持直流电压必须有功从交流侧流入,如果并联侧无功环和交流电压环互相抢电流,直流电压必然波动。正确做法是给无功环一个限幅,避免它把q轴电流全部占满。
4.3 仿真工况与结果分析方法
调通基础模型后,建议设置这样几个标准工况:
- 0.2s时线路有功参考 (P^*) 从200MW阶跃到250MW;
- 0.4s时无功参考 (Q^*) 从20Mvar阶跃到-10Mvar;
- 0.6s时受端母线电压骤降若干比例,模拟扰动。
观察波形时主要看三处:线路三相有功和无功的跟踪曲线;直流母线电压的波动幅度和恢复时间;串联注入电压的幅值和相位变化。若P和Q能在100~200ms内完成跟踪且直流电压波动控制在5%以内,模型基本合格。建议把P和Q的计算值在Scope里和参考值一起显示,很多“不跟踪”的问题一眼就能看出是落后一个节拍还是震荡发散。
5. 常见问题排查与仿真经验实录
5.1 常见错误速查表
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 直流电压发散或持续升高不回落 | 并联侧d轴电流方向错误或PI极性反 | 检查PI输出符号与VSC电流流向,换向后再试 |
| 线路有功方向跟设定完全相反 | 串联变压器极性接反,或测量功率方向定义不一致 | 用电压电流方向重新核对,验证同名端 |
| P和Q跟踪有较大稳态误差 | 电流内环PI积分增益过小或外环反馈没闭合 | 逐步增大 (K_i),确认反馈回路连接 |
| 波形谐波大、仿真步长小到跑不动 | 载波频率过高或求解器设置不合适 | 降低载波频率到1050Hz左右,考虑平均值模型 |
| 直流电压波动伴随功率振荡 | 内外环带宽没拉开 | 调慢外环,让外环带宽低于内环五倍以上 |
| 启动瞬间过流严重 | 直流电容初始值未设置,或未先空载启动 | powergui中设置稳态初始值,先让并联侧建立电压再投入串联侧 |
5.2 代数环与求解器选择
Simulink里做UPFC最容易踩的坑是代数环。控制回路里如果直接从电流测量值经过PI算调制波,又用调制波去更新受控源,信号路径中不经过任何积分或存储单元,就会形成代数环。典型表现是仿真极慢、甚至报“Algebraic loop detected”。解决方法是在反馈路径上加Memory或Unit Delay,或者在测量信号进控制环之前加一个低通滤波器。但要注意不要给PLL和电流反馈都加太多延迟,否则控制系统自身滞后变大,稳定性变差。
求解器设置上,如果是详细开关模型,不要用默认的ode45,它处理开关瞬态时步长会被步进控制压到非常小。建议在powergui中选“Discrete”模式,采样时间设为载波周期的1/100左右,比如10微秒,求解器用Fixed-step ode1或ode3。平均值模型则可以用变步长ode23t,收敛性和速度比较均衡。
5.3 模型验证思路
验证模型不能只看波形对没对上。我习惯分三步验证:
先验并联侧:把串联侧模块摘掉或设为零注入,并联侧就是一个STATCOM整流器,此时验证直流电压控制是否稳定,交流母线电压调节是否有效。
再验串联侧:串联侧投入,逐个改变P和Q参考值,对比稳态潮流是否和理论计算一致。比如在简单双电源系统里,用潮流公式算一次理论值,再和仿真稳态值对比,误差在1%以内才算合格。
最后做动态扰动:比如受端电压跌落或线路阻抗变化,看UPFC响应是否合理,有无振荡发散趋势。这样验证完,模型才能用来做进一步研究。
6. 扩展方向与个人体会
6.1 后续可以怎么扩展
这套VSC-UPFC模型后续有几个很自然的扩展方向:
一是把两电平VSC换成模块化多电平换流器(MMC),研究高压大容量场合UPFC的电容电压均衡、环流抑制等新问题。二是加入故障穿越逻辑,模拟线路短路或单相接地时UPFC的限流和恢复策略。三是把线路潮流控制与系统阻尼控制结合,用UPFC的调制环节输入附加阻尼信号,抑制电网低频振荡。这些方向在Simulink里都是在现有框架上加模块,不用推翻重来,扩展性好。
6.2 我在实际操作中的体会
我踩过的最大一个坑是“先调并联侧时把PI参数调得太猛”,结果串联侧一投入就沿直流母线振荡,花了很久才意识到是直流电压外环带宽过高。后来养成一个习惯:每个PI参数改动后,只看一个指标,调响应速度时不看稳态误差,调稳态误差时不追求响应速度,一个一个来。
另外串补变压器极性错误的问题我犯过不止一次。如果你也遇到P_ref和Q_ref设成正的、结果P和Q都反方向跑,先别急着调PI符号,去把串联变压器一次侧的电压电流极性核对一遍,多半能省两小时。
做这种多控制环仿真,波形一定要多用Scope的“数据游标”功能量化超调、调节时间和稳态误差,别只看“大概稳了”,数值化的结果才写得出结论。最后留一句:如果你刚开始搭UPFC,建议先只搞并联侧,稳定跑起来再加串联侧,每次改变一个变量,别试图一次把整个装置都调通。