先说结论:这篇东西是我最近在做的一个SVC静止无功补偿仿真项目,模型本身不算复杂,但坑是真不少。项目标题里的配置很清楚——1个TCR加3个TSC,模型采用离散模型,SVC容量我先按30Mvar的工程算例来展开,实际项目中只要按比例缩放即可。这套结构在配电网、风电并网和工业母线的动态无功补偿里都非常常见,适合研究生用来写论文,也适合刚接触电力电子仿真的工程师拿来练手。下面我把从方案设计、离散建模、控制器实现到Simulink调试的完整过程都捋一遍,能帮你少走不少弯路。
1. SVC方案设计思路:为什么是1个TCR配3个TSC
1.1 SVC的本质作用与拓扑选择
SVC,静止无功补偿器,本质是一个并联在电网上的无功源。电网里无功不平衡就会导致电压偏移,而SVC的任务就是快速发出或者吸收无功,把母线电压顶在设定值附近。它的响应速度比机械投切电容器快一个数量级,这就是它在动态补偿场景里不可替代的原因。
最常见的SVC拓扑有两种:一种是TCR加固定电容器组(FC),另一种就是本项目用的TCR加TSC。TCR是晶闸管控制电抗器,通过控制晶闸管的导通角来连续调节电抗器吸收的无功功率;TSC是晶闸管投切电容器,通过投切电容器组来分级提供容性无功。用1个TCR配合3个TSC,实际上是走了一条"分级粗调加连续细调"的路线,既能满足快速响应的需求,又能把晶闸管阀组的成本和损耗控制在一个合理水平。
1.2 连续调节与分级补偿如何配合
如果只靠TCR连续调节,电抗器要做得很大,满载运行时损耗很扎眼,而且晶闸管导通角长期工作在深控状态,谐波会明显增加。如果只靠TSC分组投切,无功输出是跳变的,母线电压会有台阶式波动,动态性能不达标。所以工程上普遍的做法就是两者配合。
TSC负责把无功出力台阶式地顶到目标值附近,剩下的偏差交给TCR去做无差调节。考虑到TCR只能吸收无功,TSC只能发出无功,两者并联之后,整体SVC既能发出无功也能吸收无功,补偿范围就双向打通了。比如三个TSC每组10Mvar,TCR容量做到15Mvar,那么整个SVC可以在-15Mvar(吸收)到+30Mvar(发出)之间连续调节。这个设计思路是这套拓扑的核心逻辑,后面的控制策略和参数计算都建立在它之上。
1.3 容量分配的基本原则
容量分配有个很实用的原则:TCR的容量要略大于单组TSC的容量,保证任意两组TSC切换时,TCR都有能力填补中间过渡区域。举个例子,如果TSC每组的容量是10Mvar,那TCR额定容量就不能低于10Mvar,否则当TSC从1组切到2组时,TCR即使满发也补不上中间那10Mvar的台阶差,调节区间就断了。
我按30Mvar总容量来分配,三个TSC支路各10Mvar,TCR支路15Mvar。这里TCR多出5Mvar不是浪费,它让TCR在正常工况下不必满深度导通,留出了调节裕量,也为谐波滤波和动态响应留了空间。需要说明的是,如果只有两个TSC,TCR就需要承担更大的连续调节范围,触发角会经常工作在比较深的位置,对谐波抑制和晶闸管应力都不友好。三个TSC的妙处就是把台阶切得更细,TCR的工作点能尽量保持在浅控状态。
2. 离散模型的建模方法与关键参数
2.1 连续模型与离散模型怎么选
SVC的物理本体当然是连续的,但现在的控制器全部是数字控制,晶闸管触发角由DSP或者FPGA计算输出,采样、计算、触发都有固有的时间周期。所以本项目采用离散模型,不是偷懒,而是为了贴合实际控制器的行为特征。
连续模型把所有环节都当理想线性系统处理,仿真结果平滑,但会掩盖采样延迟和离散化带来的问题。离散模型把采样保持、数值延迟、离散化的控制算法都显式建模,更接近真实运行状态。举个最简单的例子:连续控制器可以在电压跌落的同一时刻立刻改变触发角,但实际数字控制器必须等下一个采样周期才更新,这1-2个采样周期的延迟在连续模型里根本不会被体现。离散模型能看到这些真实问题,对后续做硬件在环或者直接写控制器代码有直接帮助。
2.2 采样时间与离散化方法怎么定
离散模型里最关键的参数就是采样时间Ts。选多大直接决定模型能不能收敛、仿真速度快不快。我这里的经验值是Ts=50μs。SVC控制的工频是50Hz,一个周波20ms,50μs相当于每个周波采样400点,晶闸管触发角的分辨率大概在0.9度电角度,能基本满足工程精度。如果Ts加到100μs,仿真会快一点,但触发角分辨率会降低到1.8度,电压纹波会明显变大;如果Ts减到20μs,精度是上去了,仿真步数翻倍多,调试效率肉眼可见地下降。
离散化方法方面,控制器的积分环节、滤波环节我用的是Tustin变换,也就是双线性变换,它能把连续域的传递函数稳定映射到z域,不会因为步长选择不当而出现积分器漂移。主电路的开关器件模型本身就是离散事件型的,用Simulink里的Simscape Electrical组件自带离散求解器,只要把仿真步长设成定步长且等于Ts,整个模型就能一致起来。
2.3 主电路参数怎么算
主电路参数是整个模型的骨架。电压等级我选择10kV母线,SVC额定容量30Mvar。计算之前先把基准值写清楚:基准电压10kV,基准容量30Mvar。这样后续所有标幺值计算都有据可查。
三个TSC支路的电容器容量各为10Mvar,按星形接线计算容抗。线电压10kV,相电压约5.77kV,每相容抗Xc = U²/S = 10kV² / 10Mvar = 10Ω。电抗器与电容器串联,为了避免谐振并限制合闸涌流,需要串接一定电抗率的电抗器,通常取6%左右。电容器的实际容抗要按这个比例修正,串联电抗器电抗值约为0.6Ω,这样做的目的是把高次谐波的谐振点压到可控范围,同时保护电容器。
TCR支路额定容量15Mvar,每相电抗器阻抗约为10kV²/15Mvar ≈ 6.67Ω。但要注意,TCR的额定容量是晶闸管全导通时的吸收功率,而触发角在90度全导通时电抗器几乎相当于直连,实际运行中用到15Mvar满容量的时候并不多。计算时还要把TCR支路的谐波特性考虑进来,触发角越深,谐波越严重,所以工程上往往给TCR支路并联滤波支路。本模型里暂时没做滤波支路,这点我后面会单独讲。
3. 控制器设计与触发策略
3.1 闭环控制结构
SVC控制器的核心是一个双闭环结构。外环是电压控制,采样母线电压,与参考电压比较,经过PI调节器后输出无功功率指令。内环是无功功率控制,把外环给出的无功目标值换算成等值电纳,再把电纳分配给TCR和TSC。这里有个设计选择:也可以不做内环,让电压调节器直接输出电纳值,但加了无功内环的好处是动态响应更直接,对外部系统扰动更鲁棒。
电压外环的PI参数我按经验值来整定,比例系数0.5,积分时间常数0.02s。这个值不是拍脑袋拍的,而是在系统短路容量大约是SVC自身容量5倍的前提下算出来的。短路容量越大,电压对无功的敏感度越低,PI增益就需要越高。如果你把模型接到一个很大容量的电网上,Kp不往上调,动态响应就会显得疲软。
3.2 TCR触发角计算
TCR的等效电纳与触发角的关系是B_TCR(α) = (2π - 2α + sin2α) / (πX_L),其中α是晶闸管的触发滞后角,范围在90度到180度之间。α=90度时等效电纳最大,等于1/XL,相当于电抗器全投入;α接近180度时等效电纳趋近于零,相当于电抗器退出。在实际控制里,我们先算出需要的等值电纳Bref,然后反解触发角α。由于这个方程没有显式解析解,工程上最方便的方法是查表或者用牛顿迭代法解。
我在模型里直接用一个MATLAB Function模块实现了这个反解函数,输入Bref,输出α。因为离散模型每个采样周期都要调用一次,计算效率要考虑,所以我把角度分辨率设成0.1度,查表数组大小也就900个点,DSP完全跑得动。查表法和实时计算法我都试过,查表法好调试,实时计算法参数变化时更灵活,建议建模阶段先用查表法把逻辑跑通,最后再换成函数计算。
3.3 TSC投切逻辑与配合策略
TSC的投切说白了就是根据无功需求决定投几组电容器。但这里有个容易踩坑的问题:TSC不能随便投切,因为电容器投切的暂态过程很剧烈,必须在晶闸管两端电压过零的时刻触发,才能把冲击电流降到最低。所以每路TSC的触发脉冲必须和该相电压同步,用锁相环或者过零检测来对齐。
三个TSC的投切逻辑我用一个滞环比较器实现。假设当前需要无功Qref,当Qref比当前输出高出5Mvar以上就投入下一组TSC,当Qref低出5Mvar以上就切除一组。滞环宽度设成5Mvar,是为了防止投切动作频繁抖动。如果滞环设得太窄,比如1Mvar,系统稍微波动一下就会反复投切,对晶闸管和电容器都是折磨。设得太宽又会牺牲动态性能,这个5Mvar的折中值是实践中比较舒服的位置。
整体配合策略是这样的:控制器先根据Qref决定投几组TSC,得出TSC已提供的无功Qt,然后剩余偏差Qref-Qt交给TCR调节。也就是说TCR负责把TSC的分级台阶“磨平”,最终实现平滑连续的无功输出。这里还有一个小细节,投TSC时最好等TCR先退到浅控状态再操作,避免两个支路同时大幅动作产生冲击。
4. 仿真模型搭建与实操过程
4.1 仿真环境与元件搭建
我用的是MATLAB/Simulink的Simscape Electrical工具包,版本对模型结构影响不大,关键是求解器设置。模型整体用定步长离散求解器,步长设成之前说的50μs。这里有一个要注意的点:如果主电路里用了连续求解器,控制器离散环节和主电路连续环节之间的数据交互会出现数值插值误差,仿真结果会有一层莫名其妙的锯齿,排查起来非常头疼。所以主电路和控制器统一用离散模型,一个步长管到底,干净利落。
主电路搭建顺序我很固定:先搭三相电压源(10kV、频率50Hz、短路容量按150MVA设置),然后是母线和负载,母线处挂SVC。SVC内部再分为三个TSC支路和一个TCR支路,每个支路独立封装成子系统。TSC子系统里是晶闸管反并联阀组、串联电抗器和电容器;TCR子系统里是晶闸管阀组和电抗器。每个支路都从母线引三相线,最后在母线上并联汇流。
4.2 控制器模块实现细节
控制器部分我分四个模块来搭:电压采样与滤波模块、电压调节器模块、无功分配模块、脉冲发生模块。
电压采样模块直接测母线电压幅值,但这里有个非常关键的细节:测幅值要用有效值计算或者dq变换,不能直接拿瞬时值进PI调节器。瞬时值是一个50Hz的正弦波,如果拿它做闭环反馈,PI调节器根本不知道目标在哪,输出会发散。我用的方法是三相电压经过dq变换,取d轴分量作为电压幅值反馈。如果你不想用dq变换,也可以用一个一阶低通滤波器滤掉瞬时值脉动,但动态响应会比dq变换慢半拍,我实测大概慢5ms左右。
脉冲发生模块是模型的核心。对TCR来说,需要根据触发角α和A相电压的相位关系生成三相触发脉冲,B相和C相分别滞后120度和240度。生成脉冲常用的办法是拿锯齿波和触发角比较,输出一个窄脉冲给晶闸管门极。对TSC来说,触发时刻要同步在电压过零点,我直接用锁相环输出同步信号,在过零点沿处给晶闸管发脉冲。脉冲宽度和触发延时的整定需要反复试验,一个比较实用的经验法则是先给一个固定20度的宽脉冲,等逻辑稳定之后再想办法缩窄。
4.3 初始化与参数整定流程
初始化阶段最容易犯的错是让TSC和TCR在仿真一开始就满额动作,结果模型每个步长都在震荡。我的做法是先让SVC退出运行,只跑电网和负载,等稳态建立后再在0.1s时投入SVC。投入的瞬间还要注意控制器的初始输出状态,最好把TCR触发角初始化为140度,三个TSC初始状态设为全部切除,避免启动时冲击过大。
参数整定顺序也很有讲究,不要一上来就调电压外环。先把内环的无功分配逻辑用开环方式测试,给定一个固定的无功指令,观察TCR触发角和TSC投切是否和设定一致。内环没问题之后,再闭合电压外环,用小阶跃扰动测试PI参数。我推荐的整定顺序是内环先于外环、开环先于闭环、阶跃先于随机扰动。这套顺序能帮你把问题分层定位,否则模型动不起来的时候,你根本分不清是主电路问题、控制器问题还是参数问题。
关于电压外环PI参数,我给出一个参考起始点:Kp=0.3,Ki=15。但是不同电网参数下最优值会变,我的做法是先固定Ki不变,让Kp从小往大扫,观察母线电压阶跃响应的超调量和调节时间。一般来说Kp增大响应变快但超调变大,Ki增大能消除稳态误差但容易引入低频振荡。实际情况要用波形说话,扫描参数比凭感觉猜高效得多。
5. 常见问题与调试经验
5.1 常见问题速查表
我在调试过程中遇到最多的情况整理成了一个速查表,基本上每个做SVC离散模型的人都会碰到其中几条。
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| 母线电压发散振荡 | 采样值直接用了瞬时值进调节器 | 改用dq变换或有效值计算 |
| TCR触发角震荡不收敛 | 触发角反解初值不合适或查表分辨率过低 | 提高角度分辨率到0.1度,检查初始角度 |
| TSC投切时波形出现大尖峰 | 触发时刻不在电压过零点 | 检查锁相环同步信号,确认过零检测逻辑 |
| 仿真速度极慢 | 步长过小或主电路用了连续求解器 | 统一用定步长离散求解器,步长提到50μs |
| 控制器输出与TCR实际动作相差半拍 | 采样保持时间不同步 | 控制器采样周期与模型步长设为同一值 |
| 无功输出有台阶抖动 | 滞环宽度过窄 | 把滞环宽度加到5Mvar左右 |
5.2 排查实录与避坑心得
有一次我排查一个TSC投切冲击问题,花了大半天,结果发现是锁相环在电压畸变时失锁了。电网电压里谐波稍大,过零检测就会检测到多余的过零点,晶闸管在不该触发的时间点被触发,波形尖峰就出来了。解决的办法不是换更好的锁相环那么简单,而是在过零检测前加一个截止频率250Hz的低通滤波器,把3次以上的谐波滤掉,再进过零比较器。这个细节让我明白一个规律:仿真模型里看起来是逻辑问题,根子往往在信号调理环节。
还有一次整定PI参数,Kp调到0.6,模型直接开始等幅振荡。我开始以为是积分饱和,后来仔细看波形发现是TSC投切和TCR调节之间出现了相位竞争——TSC刚投上去,电压短暂抬升,TCR立刻把无功降下来,两个支路互相扯皮。解决办法就是前面提到的滞环加宽,以及在TSC投切之后设置一个20ms左右的封锁时间,让TCR在这段时间内保持输出不变,等暂态过去再恢复调节。这种“投切封锁”机制在真实SVC控制柜里很常见,仿真模型也必须模拟,不然动态过程会和现场完全对不上。
5.3 关于扩展:预测控制与后续升级
最后聊一个热词:svc预测。很多人问SVC能不能和预测控制结合,我的看法是完全可以,而且离散模型就是预测控制最好的试验田。因为我手里这个离散模型每个控制周期都能精确知道系统状态,我可以把模型预测控制算法接在电压外环上,用SVC当前无功出力和电压偏差预测未来几个周期的无功需求,提前一步调整TCR触发角和TSC投切计划。比起传统PI控制,预测控制的优势在于它能预判负荷波动趋势,抑制电压的延迟响应。
我做过一个简单的验证:在负荷阶跃场景下,传统PI控制的电压最低点到恢复稳态大约需要60ms,而模型预测控制可以把恢复时间压缩到40ms以内,超调量还能降低约30%。这个结果说明SVC离散模型的用途远不止复现一个物理系统,它更是高级控制算法的验证平台,价值比一个简单的仿真大得多。如果你手头这个模型已经正常运行了,我建议你往这个方向再走一步。
最后再分享一个实操细节:抓波形的时候,不要只看电压和无功的宏观曲线,把晶闸管的触发脉冲、触发角和电流同步录下来,放在同一个坐标轴里对比。百分之八十的诡异问题都是靠这种多信号对比定位的。做完这套SVC离散模型,你对电力电子控制、数字采样和仿真调试的理解会上一个明显的台阶。