做储能并网仿真的人应该都有过这种体会:在Simulink里搭好光伏和电池模型,跑出来的功率曲线怎么看都别扭——光照稍微抖一下,锂电池就要瞬间大功率充放电,SOC曲线像锯齿一样来回跳。这种场景里,单一储能方案的短板暴露得特别明显。后来我把模型改成锂电池加超级电容的混合储能系统,问题才算真正解决。这篇内容就是围绕“混合储能系统及其Simulink模型并网研究”这个题目,把我从方案设计、参数计算、模型搭建到调试排错的全过程完整梳理一遍,适合正在做毕业设计、课题预研或者工程仿真的朋友直接参考。
混合储能的价值一句话就能讲清楚:用锂电池应对长时间尺度上的功率缺额,用超级电容吸收瞬时冲击和功率尖峰,两者配合,既延长电池寿命,又能把并网功率纹波压下去。而Simulink模型的意义在于,你不需要真的搭一套几百千瓦的实验平台,就能先把控制策略、功率分配逻辑、并网保护逻辑验证一遍,把那些只有在调试中才会暴露的问题提前暴露在仿真里。
1. 混合储能系统:为什么一定要“混合”
1.1 单一储能器件的固有短板
先说锂电池。锂电池的优势是能量密度高,单位重量能存的电多,适合长期供电、平衡小时级甚至天级的功率波动。但它的短板同样明显:充放电倍率不能太高,瞬时功率响应慢,高倍率充放电会显著影响循环寿命。你在光伏并网模型里给电池一个突变的功率指令,电池模型虽然也能跟踪上,但实际工程中这会让电芯温升暴涨,衰减速度肉眼可见地加快。
超级电容则正好相反。它的功率密度极高,可以在几十毫秒内完成大电流充放电,循环寿命动辄几十万次,低温特性也好。但它的能量密度只有锂电池的十分之一甚至更低,想靠超级电容单独支撑长时间的能量供给,成本会高到完全没法看,而且电压会随着放电深度快速下降。
这就是混合储能的出发点——把两种器件的优点拼在一起,互相补短板。对一个并网系统来说,电网或者光伏现场产生的功率扰动从来不是单一频率的,它既有分钟级的缓慢波动,也有毫秒级的瞬时冲击。用电池去扛冲击,用超容去扛长时间波动,都是浪费而且干不好。
1.2 能量型与功率型的分工逻辑
我习惯用一个比喻来理解这套分工:锂电池是“大水库”,容量大,但闸门动作慢;超级电容是“供水塔”,容量小,但水阀一开就有水。电网要的是稳定出水,那水库负责缓慢调节总水量,水塔负责瞬间稳住压力波动。
在控制层面,这种分工最终体现为功率指令的频域分解。设定一个截止频率,低于这个频率的功率波动指令给锂电池,高于这个频率的波动指令给超级电容。比如光伏功率因为云层遮挡在10秒内掉了50千瓦,这个变化虽然肉眼看着很快,但频谱上属于低频分量,由电池承担;而并网瞬间或负载突变的尖峰,往往是几十毫秒级别的,这部分由超容承担。分工清楚之后,电池的功率变化率会变得很平滑,SOC曲线也不会频繁“拉锯”。
1.3 主流的拓扑结构方案
混合储能系统的拓扑大致分成三类:无源并联、半有源和全有源。
无源并联最简单,锂电池和超级电容直接挂到同一条直流母线上,中间没有任何变换器。优点是成本低、效率高,缺点也很致命——两边的电压被母线钳住,你没有办法独立控制各自电流,超级电容的电压变化范围又很宽,实际用起来非常被动。我做过仿真对比,无源结构在负载突变时确实能起到一点缓冲作用,但控制策略完全发挥不出来,只能算“被动混合”。
半有源结构是其中一种储能通过双向DC/DC变换器接入母线,另一种直接并联在母线上。这种结构比无源并联灵活,但直接并联的那一组仍然无法主动控制。
全有源结构是锂电池和超级电容各接一台双向DC/DC变换器,再汇到公共直流母线。两条功率支路都可以独立控制,电流分配完全由你的控制策略决定。虽然多了一路变换器,效率有一点折损,但这是做并网研究最合适的结构,因为你要验证的就是“功率分配策略”,如果器件本身不能独立控制,策略就无从谈起。我的模型最终选的就是全有源结构。
2. 并网系统的整体方案与功率分配策略
2.1 总体架构:直流母线加双向DC/DC加并网逆变器
整个系统的架构是这样的:光伏单元先通过Boost变换器升压到直流母线,锂电池和超级电容分别通过双向半桥DC/DC变换器接到同一条直流母线上,直流母线再经过一台三相逆变器和LCL滤波器并入交流电网。负载可以挂在交流侧,也可以单独挂一条直流负载支路,方便做工况切换。
直流母线电压的选择需要先想清楚。如果交流侧线电压是380V,直流母线电压一般取650V到800V,我仿真里常用750V;如果交流侧是220V单相/三相系统,母线电压取400V左右就够了。母线电压太低会导致逆变器调制深度过高、谐波增大;母线电压太高则对功率器件的耐压等级提出更高要求。750V这个值并非拍脑袋定的,它能让逆变器的调制比保持在0.8到0.9的合理区间,同时给DC/DC变换器留出足够的升压空间。
在这个架构里,DC/DC变换器是第一道控制关口:锂电池侧的变换器负责跟踪“电池电流指令”,超级电容侧的变换器负责跟踪“超容电流指令”,两条支路一起维持母线电压稳定。并网逆变器是第二道关口,它负责把直流侧的能量以单位功率因数或者指定无功功率的方式馈入电网。两道关口分别闭环,整套系统才能稳定。
2.2 功率分配:用低通滤波器把两种储能“分工”
混合储能并网系统里最核心的一个问题是:总功率指令来之后,锂电池和超级电容各承担多少?我采用的方法是基于一阶低通滤波器的频域分配,这也是工程中最常用、最直观的方法。
总功率指令来自于直流母线的功率平衡关系。光伏输出功率和负载需求功率之间存在一个差值,这个差值就是混合储能需要补偿的总功率。把这个差值同时通过一个低通滤波器和一个高通滤波器:低通滤波器输出比较平滑的低频分量,作为锂电池的功率指令;总差值减去低通输出,剩下的高频分量作为超级电容的功率指令。
% 功率分配参数 fc = 0.1; % 低通截止频率,单位Hz,根据超容容量调整 wc = 2 * pi * fc; % 角频率 % 锂电池功率指令:一阶低通 % G_bat(s) = wc / (s + wc) % 超级电容功率指令:高通 % G_sc(s) = s / (s + wc)在Simulink里实现时,我直接用了Transfer Fcn模块:锂电池支路是wc/(s+wc),超级电容支路是1 - wc/(s+wc),也就是总指令减去低通分量。这样做的优势非常明显:两个储能的功率指令之和永远等于总指令,不会出现“分配了但总量对不上”的问题。
截止频率的选择需要根据超容容量来定。我的经验是:截止频率越低,锂电池承担的分量越平滑,超容越辛苦;截止频率越高,超容承担的分量越少,电池的功率变化率就会变大。作为初始值,0.05Hz到0.2Hz都是合理范围。先设0.1Hz跑一遍,观察超容的SOC波动范围,如果超容SOC总是在很短时间里冲到上限或掉到下限,就把截止频率调低一点;如果超容的利用率太低,再把截止频率调高。
2.3 并网模式与离网模式的控制策略取舍
并网状态下,电网可以看作一个无穷大的电压源,逆变器不需要维持电压幅值和频率,只需要控制输出功率。这种情况下我采用电压外环加电流内环的双闭环结构:直流母线电压外环的输出作为有功电流参考,无功电流指令单独设定,电流内环在dq旋转坐标系下把实际电流跟踪到指令值。
离网状态下,逆变器要自己撑起电压和频率,控制策略则切换为V/F控制。混合储能系统中的电池和超容要共同维持离网母线的电压和频率,这时候功率分配策略仍然有效,但优先级要调整:先保证母线电压和频率不崩溃,再考虑SOC均衡。
在Simulink里做并网和离网切换时,我建议用状态机模块或者在回调函数里做模式标志位切换,不要直接在仿真中间手工断开三相电压源,否则会出现很大的暂态冲击,还以为是自己控制算法出了问题。
3. Simulink模型搭建实操要点
3.1 从参数初始化开始:先把脚本写清楚
很多人一上来就直接拖模块,拖到最后参数全是默认值,仿真结果根本没法解释。我现在的习惯是先在脚本里把所有参数定义清楚,再回到模型里引用这些变量。这样有一个额外的好处:做参数扫描的时候只需要改脚本,不需要翻模型。
%% 直流母线参数 Udc = 750; % 直流母线电压 V Cdc = 3000e-6; % 母线电容 F %% 锂电池参数 Ubat = 400; % 锂电池额定电压 V SOC_init_bat = 0.8; % 电池初始SOC C_bat = 100; % 电池可用容量 Ah %% 超级电容参数 Usc = 200; % 超级电容额定电压 V SOC_init_sc = 0.75; % 超容初始SOC C_sc = 30; % 超容容量 F(根据实际需求折算) %% 双向DC/DC参数 fsw_dcdc = 10000; % DC/DC开关频率 Hz L_bat = 0.5e-3; % 电池支路电感 H L_sc = 0.2e-3; % 超容支路电感 H %% 并网逆变器与LCL滤波器 Vg = 380; % 交流线电压有效值 V fsw_inv = 5000; % 逆变器载波频率 Hz L1 = 0.5e-3; % 逆变器侧电感 H L2 = 0.15e-3; % 网侧电感 H Cf = 20e-6; % 滤波电容 F Rd = 0.5; % 阻尼电阻 ohm关于电感取值,我按电流纹波要求来算。电池支路DC/DC在boost模式下,假设电感平均电流200A,允许20%纹波,开关频率10kHz,占空比按0.5估算,电感量大约是0.5mH。LCL滤波器这边,逆变器侧电感和网侧电感的比值按3比1到4比1取,滤波电容取值在几十微法,阻尼电阻起到抑制谐振峰的作用,这个值通常在0.1到1欧姆之间,具体要看谐振频率。
3.2 双向DC/DC与闭环控制搭建
双向DC/DC是混合储能系统里连接储能器件和直流母线的桥梁。放电方向boost升压,能量从储能侧流向母线;充电方向buck降压,能量从母线流回储能侧。Simulink里搭建时,我建议先搭功率电路部分,用MOSFET/IGBT加二极管反并联的方式实现双向流。要快速验证控制策略,可以直接用状态平均模型替代开关模型,仿真速度能提升一个量级。
控制回路的思路是这样的:最外层是功率指令,经过限幅生成电流指令;电流内环用PI控制器,输出占空比,经过PWM发生器驱动功率器件。电池侧的限幅要格外小心,电池的最大充电电流和最大放电电流都不能超过厂家给的倍率限制。超容侧同样要限幅,但限制值可以放宽到2C甚至3C,因为超容本来就为高倍率而生。
PI参数整定我一般用工程法:先根据电流环带宽算出比例系数,再根据相位裕度确定积分时间常数。Simulink里的自动整定工具当然可以用,但手动先整一遍有助于理解系统特性。带宽设置在开关频率的十分之一到五分之一是安全的,比如10kHz开关频率,电流环带宽取1kHz到2kHz。
3.3 三相逆变器与PLL并网控制
并网逆变器的控制是整个模型的“门面”,因为并网电流质量好不好,直接决定仿真结果能不能说服人。我在模型里用常规的dq旋转坐标系控制:三相电网电压经过Clark变换和Park变换得到dq轴分量,PLL锁相得到电网相位;直流母线电压外环的输出作为d轴电流指令,q轴电流指令根据无功需求设定;电流内环的PI输出加上电网电压前馈和dq解耦项,生成调制波,最后送入PWM发生器。
在Simulink里做三相并网仿真时,PLL容易出问题的地方是初始相位。如果你用的电网源初始化相位是0,那Park变换的初始角度也必须匹配,否则d轴和q轴的分量就是错的,电流控制会出现莫名其妙的稳态误差。我的做法是先把PLL单独搭出来,给一个固定幅值的三相电压,看输出的相位和频率是否正确,确认没问题后再接入主电路。
LCL滤波器在Simulink里可以直接用三个串联的RLC元件搭,也可以直接用Simscape Electrical里的LCL模块。需要注意的是,LCL是有谐振峰的,不加阻尼电阻的话,并网电流的高次谐波可能比没滤波还严重。实物的阻尼电阻会带来额外损耗,仿真里可以先用电阻阻尼验证控制效果,后续再换成有源阻尼算法。
3.4 SOC估算、保护逻辑与模式切换
SOC是储能系统里绕不开的一个量。Simulink最直接的做法是用积分模块对电流做积分,再除以容量得到SOC。但这里有一个关键坑:Integrator模块的初始条件默认是0,如果不设置,仿真一开始SOC就是从0开始积分,跟你的设定完全对不上。我在初始化脚本里把SOC初值映射成积分器的初始电荷量,这样波形一出来就在正确的区间。
保护逻辑我建议做成一个独立的子系统,集中做三件事:储能电流限幅、SOC越限保护、母线过压欠压保护。当超容SOC低于下限时,即使功率分配算法还在命令它输出大功率,也要通过限幅把它挡回去,多余的功率指令全部转给锂电池,不然后面整个系统会连锁崩溃。模式切换建议用状态机实现,比如并网模式、离网模式、保护模式三个状态,切换条件用比较器加迟滞环节,避免在临界点反复跳变。
| 保护项 | 阈值建议 | 动作逻辑 |
|---|---|---|
| 电池最大放电电流 | 1C | 超限后功率分配算法按比例削减电池指令 |
| 电池最大充电电流 | 0.8C | 超限后多余功率强制转给超容 |
| 超容SOC下限 | 0.2 | 低于阈值停止放电,功率转电池 |
| 超容SOC上限 | 0.95 | 高于阈值停止充电,功率转电池 |
| 母线过压 | 1.1倍Udc | 封锁逆变器脉冲,同时切电阻负载 |
| 母线欠压 | 0.9倍Udc | 启动电池最大放电,同时降低负载功率 |
4. 仿真参数设计、结果分析与指标评估
4.1 典型工况设计
仿真模型搭好之后,工况设计决定了你“能看出什么”。如果从头到尾只给一个恒定的辐照度和恒定的负载,那混合储能和单一储能基本看不出区别。我设计了三组典型工况。
第一组是光伏功率渐变加突变:0到2秒光伏输出稳定在100kW,2秒时刻辐照度骤降,光伏输出在0.2秒内跌到40kW,持续2秒后恢复。这组工况用来验证:低频功率缺额是否由锂电池平滑承接,突变的缺口是否由超容瞬间补上。
第二组是负载突变:3秒时交流侧负载从60kW突然增加到120kW,幅度大而且时间短。这组工况考验的是母线电压的动态恢复能力,母线电压跌落越深、恢复时间越长,说明储能响应越慢。
第三组是超容SOC偏低场景:初始SOC设到0.25,然后连续施加高频功率扰动。这组工况用来验证保护逻辑和功率分配算法的协同能力,超容SOC逼近下限时,算法能不能平滑地把高频功率也转移给电池,同时系统还能继续稳定运行。
在Simulink里,这些工况可以用Signal Builder或者Signal Editor模块来搭,时间轴上的功率曲线画清楚后,整个仿真的输入信号就完全可控了。我习惯把工况切换做成注释,直接在模型文件里写明每个时间段的含义,这样三个月后再翻模型看,不需要重新猜。
4.2 结果拆解:母线电压、系统功率、SOC与THD
仿真跑完,不要急着贴图,先看波形跳变是否符合物理规律。
直流母线电压是第一项要看的指标。稳态时母线电压应该稳定在750V附近,波动范围我控制在正负15V以内;负载突变的瞬间,母线电压允许出现一个短时跌落,但恢复时间应该在100毫秒以内。如果发现母线电压持续偏离参考值,先检查电压外环的PI参数,再看直流母线电容容量是否选小了。
功率波形是第二项。把光伏功率、电池功率、超容功率和负载功率画在同一张图里,你会很直观地看到:光伏功率突变时,电池功率变化平滑,而超容功率有一个明显的尖峰脉冲,然后立刻回落。这正是低通滤波器分配策略的典型表现。如果超容功率波形和电池功率波形几乎一致,说明截止频率设得不对,高通分量没有正确分离出来。
SOC波形是第三项。电池的SOC应呈现缓慢变化趋势,在整个仿真时间内只下降几个百分点;超容的SOC则应该是高频往复震荡,但始终落在安全区间。如果电池SOC出现了快速的锯齿状变化,说明低频滤波器截止频率太高,把高波动分量漏给电池了。
第四项是并网电流质量。对并网电流做FFT分析,THD目标在5%以下。谐波超标时先看LCL参数是否合理,再看PWM调制方式。我遇到过THD一直压不下去的情况,排查到最后发现是PLL锁相有稳态相位误差,导致dq轴解算偏了,并网电流里多出了低次谐波。
4.3 如何判断模型是否可信
仿真结果不是跑通就行,还要能解释。我每次仿真结束都会做一道功率守恒检验:光伏输出功率加上电池和超容的放电功率,减去负载消耗功率和所有损耗,结果应该近似为零。如果这个校验做不过,说明模型里有能量凭空消失或者凭空产生,最常见的来源是限幅模块引入了没有反馈回系统的功率差额。
稳态增益校验也值得做。DC/DC电路在boost模式下,输出电压与输入电压的关系是Uo等于Ui除以(1减占空比),你可以在仿真里测一下占空比和两端电压,看是否满足理论关系。这个校验能快速暴露PI控制器饱和、PWM映射错误这类基础性问题。
我的建议是先拆开验证再联调。先把两条DC/DC支路分别接到一个恒定直流源上,验证各自闭环能稳定跟踪电流指令;再接入逆变器,用理想直流源替代储能系统,验证并网电流控制正常;最后才把所有部分连接成完整系统。分步验证看起来繁琐,但定位问题的时间能省下一大半。
5. 常见问题与调试经验实录
5.1 代数环问题
Simulink模型里,如果你把一个模块的输出直接接到同一条路径上的输入,中间没有经过任何状态模块,仿真器会提示存在代数环。代数环并不一定导致仿真报错,但会让计算变慢,严重时结果震荡、仿真卡住。
混合储能系统里最容易出现代数环的地方是功率分配计算回路:总功率指令同时用于计算电池指令和超容指令,而超容指令又反馈回来影响母线电压,母线电压又影响总功率指令。处理方式是在反馈路径上插入一个Unit Delay或者Memory模块,打破直接环形依赖。代价是多了一个仿真步长的延迟,对于控制策略验证完全不影响结论。
5.2 求解器与步长设置
求解器选择直接影响仿真速度和精度,这里我把自己的经验整理成一张表:
| 模型类型 | 推荐求解器 | 步长设置 |
|---|---|---|
| 平均模型,纯控制策略验证 | ode23tb | 变步长,相对容差1e-3 |
| 平均模型,需要输出高精度波形 | ode15s | 变步长,相对容差1e-4 |
| 开关模型,带PWM和功率器件 | discrete | 固定步长1e-5到1e-6 |
| 开关模型,只关注暂态趋势 | discrete | 固定步长1e-5,可开加速 |
我个人的教训是:一开始总喜欢用连续变步长去跑带PWM的开关模型,结果仿真速度慢到让人怀疑人生,而且波形锯齿明显。后来老老实实把PWM模型用离散固定步长跑,仿真速度快了不说,结果还更稳定。变步长求解器在处理高频PWM信号时会频繁调整步长,效率极差。
5.3 PLL锁相失败或相位跳变
PLL出问题的典型现象是:dq轴下的电压波形不是平稳的直流分量,而是带着明显的低频振荡;电流内环的输出一直在饱和边缘摩擦;有功功率指令始终跟踪不准。
排查思路:先用理想三相电压源,固定频率50Hz,直接测PLL输出的相位变化率,应该稳定在50乘以2π弧度每秒。如果相位输出是乱的,检查Clark和Park变换里的角度定义是否使用了弧度。三相电网模块的相位初始化也很容易出问题,电网电压初始相位设成多少,PLL的初始积分器状态就要与之对齐。
另一个容易忽略的情况是电网电压不平衡或者含有谐波。仿真中如果功率源本身带谐波,PLL锁出来的是基波正序相位还好,但如果模型中直接叠加了负序分量,瞬时相位会来回抖动。这时候需要在PLL前端加一个低通滤波器或者用双同步坐标系处理负序分量。仿真中发现谐波导致锁相不稳,先别急着上复杂的算法,检查一下电网源里是否默认带了谐波分量。
5.4 SOC估算漂移与积分初值
SOC积分漂移是混合储能仿真里特别常见的问题。Simulink的Integrator模块如果没有设置初始条件,默认从零开始积分。如果你期望的是SOC初始值0.8,但积分起点是0,那前半段仿真的SOC曲线完全是错的,而且这个错误不会自己收敛回来。
正确的做法是把初始条件映射为对应的电荷量,比如电池容量是100Ah,初始SOC是0.8,那积分模块初始值就设为80Ah。积分过程中,如果SOC达到上下限,你会遇到积分饱和问题:SOC已经到上限了,算法还在命令它继续充电,如果不做限幅抗饱和处理,积分器会产生一个错误的累积量。建议把限幅放在积分器的输入端之前,而不是只在输出端简单截断。
5.5 仿真速度很慢怎么办
模型搭到后面,整个系统的仿真速度可能慢到让人失去耐心。按优先级排查这几件事:第一,是不是每个示波器都在记录高频波形?示波器采样率设置过高,数据量会指数级膨胀。第二,是不是用了连续变步长求解器跑开关模型?换成离散定步长通常有立竿见影的效果。第三,是不是存在代数环导致每一步都要迭代多次?插入Unit Delay解决。第四,是否可以把PI控制器的采样时间从1e-6放宽到1e-5?控制周期的放宽会减少计算量,但注意控制周期必须小于你关注的系统动态时间常数。
如果这些手段都做完了还是慢,我还有一个备选方案:把功率器件模型换成受控源加理想开关的平均模型,牺牲一点细节换取几十倍的提速。先跑通整个系统的控制策略,再用开关模型做最终验证,这是工程上非常高效的开发节奏。
6. 从仿真走向实地的几个扩展方向
6.1 硬件在环测试
仿真模型验证完毕之后,下一步可以做的事情是硬件在环测试。原理很简单:把Simulink模型编译部署到实时仿真器上,模拟真实功率主电路,而DSP控制板运行你最终要写入的实际控制代码。这样做最大的价值是验证代码生成过程中的延迟对控制性能的影响。仿真里PI控制器每个步长都即时计算,但真实控制器的ADC采样、PWM更新都有延迟,这些延迟在某些控制参数下会导致系统失稳。硬件在环可以在不搭建真实功率电路的情况下把这个风险提前暴露出来。
6.2 考虑损耗与效率的模型改进
基础仿真模型都是理想化参数,电感没有电阻,开关没有导通压降,电容没有ESR,这些简化在控制策略验证阶段完全可行。但如果你的研究内容涉及系统效率评估、经济运行或者容量配置优化,就必须把损耗加进来。
电池模型可以从理想电压源升级为二阶RC等效电路模型,同时考虑SOC、温度和倍率对开路电压和内阻的影响。超级电容模型也要考虑等效串联内阻和自放电效应。DC/DC变换器加入导通损耗和开关损耗,LCL电感加入DCR。这些修正之后,系统效率的计算结果才有工程参考价值,而不是永远显示90%以上。
6.3 多机并联与微电网群
单套混合储能并网仿真只是第一步。实际微电网里通常有多台储能机组并联运行,不同机组的容量、SOC、类型都不一样。这时候功率分配策略要从“单机分工”升级为“多机协调”,常见的思路是下垂控制,让每台机组根据自身容量比例分担负荷,同时通过虚拟阻抗调节抑制环流。
再往下扩展就是虚拟同步机控制。混合储能里的锂电池或者超容配合虚拟同步机算法,可以让储能系统从“跟网型”变成“构网型”,主动提供惯量和阻尼,这对弱电网和孤岛运行意义很大。仿真里做这个扩展其实不难,把逆变器的控制算法从PQ控制换成虚拟同步机控制,储能侧功率分配策略基本可以沿用,但你会有很多新的动态问题要调。我的建议是先把本文这套基础模型跑通,把混合储能的功率分配逻辑吃透,再做这些进阶控制,地基打不牢,算法再花哨也没有意义。