免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

超导磁储能SMES的Simulink建模与仿真全流程详解

超导磁储能SMES的Simulink建模与仿真全流程详解 1. 为什么要把超导磁储能系统放进Simulink里跑一遍前年做微电网快速功率补偿方案论证时我们组遇到了一个很现实的问题锂电池储能响应再快也要几十毫秒才能把功率顶上去应付电压暂降这种毫秒级事件几乎没用超级电容倒是快但能量密度不够补偿个几秒钟就到底了。聊了一圈下来有人提到了超导磁能储存系统——一个我在课堂上听过、但从来没在实际项目里认真对待过的方案。超导磁储能SMES的基本原理一句话就能讲清楚让电流在一个零电阻的超导线圈里持续流动把能量以磁场能的形式储存起来需要时再通过变流器把能量送回电网。储存能量的公式就是电感储能最基本的 E ½LI²但因为超导线圈没有电阻损耗电流一旦建立就能长期维持所以它的能量密度虽然不如电池功率密度却高得吓人而且充放电切换速度能做到毫秒甚至亚毫秒级。用行话说这是目前响应速度最快的储能形式之一。但真要去碰SMES问题马上就来了超导线圈要液氦或者低温制冷机维持工作温度一套真机下来成本极高我们实验室根本不可能拉一套来反复做故障工况测试。这时候建模仿真的价值就完全体现出来了——Simulink里可以搭出包含电网、变流器、超导线圈、控制器的完整系统把暂态过程、极端工况全都模拟一遍验证控制策略和参数选型等方案成熟了再考虑小规模样机。这篇文章就是把我在Simulink里搭建SMES模型的完整过程写出来从物理方程到模块参数从控制环设计到仿真过程中踩过的坑都尽量交代清楚。适合两类读者一类是做微电网、新能源并网研究想用SMES做快速功率补偿但不知道怎么下手的学生和工程师另一类是刚接触Simulink电力电子仿真想找一个完整项目练手的人。阅读过程中你会看到这个模型并不算复杂——真正麻烦的是那些藏在工程细节里、教程不会告诉你的东西。2. SMES的物理模型从线圈方程到系统拓扑2.1 线圈模型不只是一个电感L教材上讲SMES通常只给一个公式E ½LI²然后把线圈当成一个理想电感。这个说法放在概念层面没问题但放到Simulink仿真里直接拿一个纯电感模块当超导线圈后面会出各种幺蛾子。原因在于真机里的超导线圈并不是理想电感。首先线圈在变流器产生的电流纹波下会有交流损耗等效来看是一个很小的串联电阻其次线圈导体对地、对屏蔽层之间存在着分布电容高频分量会通过这些电容形成通路最后磁体本身有设计裕度、保护电阻等工程组件不是一张白纸。如果在仿真里把这些全忽略控制器参数稍高或者电网电压带谐波时模型就会出现非物理的高频振荡让你误以为是控制算法出了问题。我当时搭的线圈模型是一个串联R-L-C支路L取的是超导磁体的设计电感R取一个很小的值用来模拟交流损耗和涡流损耗C取非常小的值用来表示分布电容。具体参数参考了一个中等规模的实验磁体——电感4H额定电流800A这样算下来储能容量 E 0.5 × 4 × 800² 1280kJ对着微电网里平抑几十到上百千瓦功率波动的场景够用了。串联R取0.05Ω这个值比真机的等效交流电阻偏大一些仿真里用来保证数值稳定性并联分布电容取10μF。注意这里R和C的实际值需要根据你仿真目标来调整。如果只研究控制层策略R取0.01~0.05Ω都能接受但如果要研究线圈本身的暂态电压分布或者保护动作特性那就得用更精细的分布参数模型甚至要考虑超导材料在临界电流附近的非线性特性。2.2 功率变换系统拓扑怎么选SMES要跟电网交换能量中间必须有一套功率变换系统PCS。常见的拓扑有两条路线一条是电流源型变换器直接连接超导线圈一条是电压源型变换器加双向DC-DC斩波器。电流源型方案看起来跟线圈简直是天作之合线圈本身就是大电感天然就是电流源型变流器的直流侧平波电抗。但在工程实践中电流源型变流器的开关器件和滤波器设计比较麻烦技术成熟度不如电压源型方案。所以更常见的是第二种——VSC加双向DC-DC斩波器超导线圈接在斩波器那一侧电网接VSC那一侧中间是直流母线电容。我选的是VSC加双向斩波的结构原因很实际Simulink的Simscape Electrical里三相VSC和IGBT开关模型都很成熟PWM发生器直接有现成模块斩波器控制线圈电流VSC控制与电网交换的有功无功两个控制环之间天然解耦调试时不容易互相干扰。这个结构的输电侧VSC本质上就是一个PWM整流器斩波器则负责管理线圈的充放电电流两层各管各的逻辑很清楚。下面是两种拓扑方案的对比对比维度电流源型直连VSC 双向DC-DC斩波器线圈电流控制通过触发角直接控制通过斩波器占空比精确控制技术成熟度相对较低滤波器复杂VSC技术成熟器件标准解耦性有功/无功耦合较强各控制环独立调试方便Simulink建模难度需要较多自定义逻辑模块库都有上手快工程应用案例早期SMES较多现代中大容量SMES主流从仿真角度看VSC加斩波器的方案还有一个好处可以在建模初期把斩波器和线圈的部分先单独跑通再接上电网侧的VSC分步调试出问题时能快速定位。2.3 矢量控制与三层控制结构SMES并网的控制目标通常有两个电网正常时能够快速吸收或释放有功功率来平抑波动同时还能输出无功功率做电压支撑。要同时控制有功和无功最常用的手段就是基于d-q旋转坐标系的矢量控制。矢量控制的思路是把三相电网电压和电流通过Park变换从静止的abc坐标系变到跟电网电压同步旋转的d-q坐标系。变换之后d轴电流跟有功功率对应q轴电流跟无功功率对应两者可以独立控制。这个思想在电机控制、光伏逆变器领域很常见放到SMES上也是一套逻辑。但SMES跟普通储能不同的一点是它有一个储能状态量——线圈电流 I_smes。有功功率的释放快慢取决于线圈电流的变化率而线圈电流只能通过斩波器的占空比来调节。所以在控制结构上我用了三层结构第一层是功率外环根据电网侧需要的P、Q参考值计算出VSC应该输出的d轴和q轴电流第二层是线圈电流内环根据有功功率需求折算出的线圈电流参考值控制斩波器占空比第三层是VSC直流母线电压环因为斩波器在调节线圈电流时会引起直流母线电压波动所以VSC的d轴电流还要叠加一个母线电压闭环的调节量保证母线电压稳定。三层环各有各的时间尺度功率外环和线圈电流内环负责能量传输VSC电压环负责维持母线稳定。我在仿真里把这三层环都搭出来之后系统在阶跃响应下的表现就非常接近我找的文献里面描述的真实SMES特性了。3. Simulink建模过程从电网侧到线圈侧一步一步搭3.1 电网侧与VSC桥臂的搭建Simulink里面做电力电子仿真现在一般都用Simscape Electrical元件库老版本叫SimPowerSystems。第一步就是搭电网和VSC。我搭的电网模型是一个三相380V、50Hz的无穷大电源串一个小阻抗模拟线路阻抗。电源参数设成线电压有效值380V频率50Hz串联阻抗取R0.01ΩL0.1mH。之所以要串这个阻抗是为了让电网不完全是“刚性的”否则母线电压完全被电源钳住后面SMES做无功支撑时电压变化根本看不出来。VSC我用的是Universal Bridge模块选择三相桥臂开关器件选IGBT内部还要接上续流二极管。母线的直流侧就是直流母线电容容量我设成2000μF。VSC的交流侧跟电网之间要串一组耦合电感一般取1mH左右这个电感一方面能滤掉部分谐波另一方面也是VSC控制电流的主要“工作对象”。搭建时有个小细节Powergui模块一定要放进去选离散仿真模式采样时间根据后面PWM的开关频率来定。我用的开关频率是5kHz采样时间1e-6秒这样每个开关周期里有200个仿真步长波形精度足够。3.2 双向DC-DC斩波器与线圈支路的建模斩波器是整个SMES模型里最核心的部分它负责让线圈电流可以双向流动——充电时电网通过VSC整流成直流斩波器把直流母线电压降压Buck模式给线圈充电放电时线圈电压高于折算后的母线电压斩波器以升压Boost模式方式把线圈能量回馈到直流母线。我用的斩波器是典型的双向Buck-Boost结构也就是半桥加上一个电感线圈本身就是这个电感再在上下管各并联一个二极管。两个IGBT管互补导通中间夹一点死区时间。放电时上管关闭、下管做PWM能量从线圈往母线侧推充电时下管关闭、上管做PWM母线能量往线圈里灌。线圈支路的接法是这样的一端接斩波器输出一端接回直流母线负端中间按照前面说的串联R-L-C支路模型来搭。为了监测线圈电流和电压我在支路上串了一个电流传感器在斩波器输出端并联了一个电压传感器。这些测量信号会分别送到线圈电流内环和保护逻辑里。这里要提醒一句Simulink里面不要直接把测量信号接成闭环后就什么都不管测量信号最好先经过一个零阶保持器或者滤波环节否则高频开关噪声会给控制器注入太多干扰仿真结果毛刺会非常严重。3.3 控制环路实现与S函数控制环路的实现是整个建模过程中最需要耐心的地方。我先在Simulink模型里搭了abc到dq的坐标变换部分用三相锁相环PLL锁定电网电压相位θ然后用这个θ把三相电流和电压投影到dq坐标系。PLL模块在Simscape Electrical里直接有参数用默认的就能在大多数电网条件下锁定。功率外环和电流内环我都用离散PI控制器实现。Simulink里有两个选择一个是连续PID Controller模块一个是Discrete PID Controller模块——这里务必用离散版本因为整个模型已经设成离散模式连续控制器跟离散PWM混在一起会出现很难排查的时序问题。PI参数我用的是典型的工程整定顺序先调内环、再调外环内环的线圈电流环先加上把PI参数从比较保守的小值开始逐步提高直到阶跃响应没有明显超调然后再加上功率外环参考值变化时观察线圈电流参考值的跟踪情况。如果你做的项目需要更复杂的上层控制策略比如基于状态观测器的功率估计、多个SMES单元之间的功率分配、或者跟电池储能的协调控制我建议把这一段逻辑做成一个Matlab Function块或者S-Function。S-Function的好处是可以在里面写复杂的数学逻辑而且不需要额外编译工具直接用Matlab语言就能写。我当时在S-Function里实现了一个简单的限幅逻辑线圈电流参考值不能超过额定值超过时自动切换到恒流充电模式这在实际电磁暂态仿真中很常见因为真实SMES需要保护线圈不过流。4. 仿真场景与结果SMES在电网里的三种典型作用4.1 场景一线圈充电和放电的基本特性第一个仿真场景先不加电网侧复杂工况只验证SMES最基本的能力——充电和放电。初始线圈电流为零我给功率外环一个阶跃参考值让系统以恒定功率给线圈充电。从仿真曲线上看充电开始时线圈电流从0A开始线性上升能量 E ½LI² 随之以抛物线形式增长。因为功率PUI而线圈电压UL·dI/dt在恒功率模式下dI/dt是随着电流增大而减小的所以电流曲线是一个逐渐变缓的上升过程而不是直线。这是SMES跟电池储能一个很明显的区别电池的充电状态是用SOC描述的变化相对缓慢SMES的能量状态是电流的平方暂态过程快得多对控制环的带宽要求也高。放电时反向同样如此电流下降速率受到斩波器最大占空比和线圈电压的限制。如果放电太快线圈电压会瞬间升高直流母线电容会承受很大的电压冲击。所以我在控制策略里给线圈电流变化率加了一个斜坡限幅仿真中效果很好——这也提醒我真实SMES的保护系统不能只做电流幅值保护变化率保护同样需要。4.2 场景二平抑风电功率波动第二个场景模拟的是风电功率波动下SMES的补偿效果。我在电网侧并联了一个可控电流源模拟风电场的出力波动在0.4秒时风电出力突然下降30kW然后0.8秒时又恢复。如果不加任何补偿这30kW的缺额会直接由电网平衡导致公共连接点PCC的电压和频率发生波动。接上SMES之后功率外环检测到电网有功缺额立即把线圈电流参考值调高斩波器于是切到放电模式通过VSC向电网输出有功功率。从仿真波形看SMES输出功率在大约10ms内就从零拉到了接近30kW线圈电流由700A下降到大约650A对应释放的能量约为 ½ × 4 × (700² - 650²) 135kJ足够支撑风电波动的整个区间。补偿之后PCC频率波动幅度比未接SMES时小了将近一个数量级。这个结果再次印证了SMES的真正卖点它不能像电池一样持续输出几小时的电能但能在几十毫秒内把快速变化的功率缺口顶上给其他慢速调节资源争取时间。在Simulink里把这个场景跑通后你对“功率密度高”这句话的理解会变得很具体。4.3 场景三电压暂降时的无功支撑第三个场景验证SMES的无功能力。我在0.6秒时让电网电压跌落15%持续0.2秒后恢复。没有SMES时母线电压会随着电网电压一起跌到约0.85pu负载端的电压质量明显恶化。SMES接入后VSC的q轴电流控制器检测到母线电压低于参考值立即增大无功电流输出。由于VSC的电流裕度在维持有功的同时还有剩余所以在0.6~0.8秒期间母线电压被拉回到了大约0.96pu。这个支撑效果是几十毫秒内完成的对电压敏感负载来说这0.1pu的差别就能决定设备会不会跳闸停机。这里需要提醒的是无功支撑能力受限于变流器的电流容量。如果同一时刻还要输出有功功率那就得在有功和无功之间做取舍控制策略里一般会按照优先级分配电压支撑紧急情况下优先输出无功有功功率事后再补。4.4 从仿真结果里读什么很多人跑完仿真习惯性看一眼曲线就关掉模型其实这些波形里面有很多信息值得深挖看线圈电流的纹波大小能判断斩波器开关频率和滤波参数是否合理看直流母线电压的波动幅度能判断VSC电压环的PI参数带宽是否合适看PCC电压的恢复速度和超调量能判断无功控制的响应和阻尼特性看各个控制环的跟踪误差能判断整套控制策略在工况切换时是否稳定。我一般会先把这三个场景的标准波形保存下来作为后续修改参数时的基准。这样每次调完参数拿新波形跟基准对比就能很快看出哪一环的动态变化了。5. 参数调试和踩坑记录这些坑我替你先踩了5.1 代数环一上来就报错怎么办第一次搭完模型按下运行按钮Simulink立刻弹出一大串错误核心信息是“algebraic loop”。我当时找了好一阵才发现问题出在测量环节VSC电流测量信号直接送进PI控制器PI输出又立刻作用到PWM产生开关信号开关信号反过来又影响电流形成一个没有延时的闭环回路。对于连续系统来说这当然没问题但仿真求解器需要一个明确的时序关系于是它就成了代数环。解决方案其实很简单在反馈通道上加入一个单位延迟Unit Delay或者用内存模块Memory把信号延迟一个仿真步长。延迟一个步长对控制性能的影响可以忽略因为采样时间是微秒级的。更规范的做法是把整个控制环路设计成基于采样数据的离散控制器PI控制器自身就带离散状态和计算延迟此时代数环自然消失。这个经验我建议所有做电力电子仿真的朋友都记一下它在逆变器并网仿真里同样常见。5.2 仿真步长、PWM与离散模型的取舍仿真步长的选择直接决定结果准不准、跑得快不快。我用的开关频率是5kHz周期是200μs而仿真步长取1μs这样每个PWM周期里就有200个采样点波形足够平滑。如果你追求更快的仿真速度可以把步长放宽到2μs或5μs但要注意观察PWM开关瞬间的波形是否出现畸变。另一个容易踩的坑是Powergui的仿真模式。默认情况下Powergui会选连续仿真但连续仿真跟离散PWM发生器配在一起时求解器会在开关动作的瞬间强制减小步长仿真速度被拖得极慢。所以我直接把Powergui切到离散模式用固定步长来跑速度提升非常明显。把Simulink仿真运行时间设成几秒用离散模式通常几分钟内就能跑完而连续模式可能跑一晚上都完不成。5.3 保护好超导线圈过流、失超、直流过压仿真模型里可以不做保护工程里不做保护就是事故。超导线圈最大的风险是失超——线圈某个局部温度超过临界点后突然失去超导特性电阻急剧增加巨大的储能会在很短时间里变成热量可能直接烧毁磁体。所以在模型里我加了一个简单的保护逻辑检测线圈电流超过额定值的110%时立即把斩波器切到续流状态让线圈能量通过放电电阻也叫dump resistor慢慢消耗掉。另外还需要保护直流母线不过压。斩波器放电模式如果不加控制母线电容电压可能瞬间冲高。我在VSC电压环的输出端加了限幅同时设定了母线电压过压保护阈值超过之后优先关断斩波器让系统进入安全状态。这些保护逻辑在Simulink里用逻辑运算模块加上几个比较器就能实现但一定不能省——因为仿真里的故障工况往往就是真实故障的缩影模型里没有保护逻辑后续扩展成硬件在环测试时会非常危险。5.4 PI参数调试的整体思路调PI参数的时候很多人一上来就给一组自认为合理的值结果波形发散得乱七八糟。我建议按照开环到闭环的顺序走先断开功率外环只保留线圈电流内环给一个固定的电流参考值观察电流跟踪效果内环稳定以后再接上功率外环逐步加大外环比例系数观察系统有没有振荡趋势最后再接上VSC电压环这时候每个环的带宽要拉开差距——电流内环带宽最高功率外环次之直流母线电压环可以稍慢一些。如果两个环带宽太接近它们就会互相耦合出现低频振荡。6. 模型搭完之后的两点延伸从开关模型到工程落地6.1 平均值模型替换开关模型全开关模型虽然精确但仿真速度慢这在做长时间暂态稳定分析或者多机并网系统时是致命的。我们当时在做整个微电网的稳定性研究时把SMES的全开关模型放进系统仿真速度立刻下降到让人怀疑人生的程度——1秒的仿真时间要跑几十分钟。解决思路是用平均值模型替换开关模型。平均值模型不再模拟IGBT的每个开关动作而是用受控电压源和受控电流源来表示变流器在一个开关周期内的平均效果。VSC的平均值模型可以等效为d-q坐标系下的受控电压源斩波器的平均值模型可以等效为一个理想变压器加电感或者更简单一点用一个受控电流源来等效线圈电流的动态。这样模型里没有了高频开关分量仿真步长可以放宽到10μs甚至50μs仿真速度能提升一到两个数量级而低频动态特性几乎不变。Simulink里实现平均值模型的方法不难把PWM发生器和开关管的组合拆掉换成受控源就行我强烈建议做系统级研究的同学都准备这么一套。6.2 从仿真到控制器移植模型跑通之后很多人关心的下一个问题是这控制逻辑能不能直接用到真机上答案是思路可以代码得重新写一遍。Simulink里有代码生成工具箱可以把控制部分模型直接生成C代码但目前我们的目标控制器平台是DSP生成的代码还需要做不少接口适配工作。一个更稳妥的过渡方案是硬件在环测试HIL。把电网、VSC、斩波器、线圈这些主电路部分继续放在仿真环境里但控制器跑在DSP里两者通过模拟量、数字量接口连接。这样可以先在实验室环境下验证控制器的真实运行表现发现问题再回头调模型参数。Simulink的External Mode模式配合Speedgoat或其他实时目标机可以做这类测试这也是这套模型最有价值的延伸方向。我虽然没有在真正的超导磁体上做过HIL但在等效电路模拟器上验证过控制程序收获很大——你会发现实物控制器有采样延迟、有量化误差、有计算周期限制这些细节在纯仿真里是永远不会暴露的。如果你也是从零开始搭SMES模型我的建议很简单先把充电放电跑通再上电网工况最后再谈保护和控制优化。每一步都验证扎实了再走下一步你会比我当时少走很多弯路。
返回列表