资讯详情

混合储能并网仿真:低通滤波功率分配与Simulink实现

📅 2026/10/21 8:06:45 | 华诺云谱 👁 阅读
混合储能并网仿真:低通滤波功率分配与Simulink实现
做并网储能控制最头疼的往往不是电池容量够不够而是并网那根线上的功率曲线太“野”。新能源出力变化快的时候波形一会儿冲上去一会儿掉下来要是只靠一组蓄电池去平抑结果就是蓄电池反复大电流充放发热、SOC快速越限、寿命衰减而且响应速度根本跟不上毫秒级的波动。这时候把超级电容并进来组成蓄电池与超级电容混合储能就能把“慢能量”和“快功率”分开处理。我最近在Matlab/Simulink里搭了一套完整的混合储能并网仿真模型功率分配用的就是低通滤波方案——让蓄电池去吸收低频慢波动让超级电容去扛高频快波动最后通过并网接口把平抑后的功率送到电网侧。这篇文章把模型结构、滤波策略原理、参数整定和调试踩坑过程完整写出来面向正在做储能并网仿真、微电网能量管理、或者写相关课题的同学和工程师。1. 混合储能与低通滤波这套模型到底在解决什么问题1.1 单一储能扛不住波动这就是混合储能的入口先说为什么要把蓄电池和超级电容放在一起。单一储能系统的短板很明确蓄电池能量密度高、能长时间支撑功率输出但它的功率密度有限响应速度通常是百毫秒级甚至秒级而且频繁的高倍率充放电会显著加速寿命衰减。超级电容正好相反功率密度大、响应快、循环寿命几十万次以上但能量密度太低指望它单独撑住长时间的能量搬运不现实。我用一个生活里的类比给刚接触的人解释蓄电池是拉货的重卡载重大、续航长但起步慢、加速肉超级电容是电动跑车起步瞬间爆发力强但跑不了多远。混合储能就是让重卡和跑车配合起来起步那一下让跑车先冲跑起来之后重卡接管到了要刹车再让跑车吸收能量。放到并网场景里新能源出力或者负荷突变的瞬间功率由超级电容缓冲周期较长、幅值较大的低频功率波动由蓄电池承担两类储能各干各擅长的事。具体到我这套模型上核心目标就一句话让并网功率尽量平稳地跟踪调度给定值蓄电池支路的功率变化率被明显抑制超级电容支路自动承担高频补偿。这样做的直接收益是蓄电池工作应力大幅下降系统整体寿命和经济性都更好。1.2 混合储能的角色分工蓄电池管低频超级电容管高频在控制策略上实现角色分工最朴素也最有效的工具就是低通滤波。把储能系统需要补偿的总功率看成一个混合信号里面既有缓慢变化的低频成分也有快速突变的高频成分。低通滤波器的特性就是让低频信号顺利通过、把高频信号衰减掉。所以分配逻辑很明确储能系统总功率参考P_ess_ref先经过一个低通滤波器输出给蓄电池而超级电容拿到的则是总功率减去蓄电池功率的剩余部分也就是被滤波器挡掉的高频分量。这一减一除自然就把功率按频率段分开了。从频域角度看蓄电池支路等效为一个低通通道超级电容支路等效为一个高通通道。两个通道在截止频率附近是互补的合起来正好等于总的功率需求系统在原理上不会出现功率分配“漏掉一块”的情况。这个互补性特别重要后面调试的时候很多奇怪现象都跟这个性质被破坏有关。2. 低通滤波功率分配策略原理与时间常数选择2.1 一阶低通分配的两条公式与信号流低通滤波分配策略用一阶惯性环节就够。设T为滤波器时间常数s为拉普拉斯算子储能总功率参考为P_ess_ref则蓄电池功率参考为P_batt_ref(s) P_ess_ref(s) / (1 T*s)超级电容功率参考为P_sc_ref(s) P_ess_ref(s) - P_batt_ref(s)注意这个P_ess_ref怎么来的它是并网目标功率P_grid_ref与新能源出力P_new的差值也就是储能需要补偿的总功率。举个简单例子并网目标恒为8kW新能源出力在某段时间降到7kW储能就需要出力1kW来补差这1kW就是P_ess_ref。把P_ess_ref做低通分配蓄电池负责其中平缓的那部分超级电容负责凹凸不平的那部分。实现信号的完整路径是P_new给到减法器P_grid_ref减去P_new得到P_ess_refP_ess_ref进低通滤波器得到P_batt_ref再用一个减法器让P_ess_ref减P_batt_ref得到P_sc_ref。这个“一低通、一减法”的结构是整个模型的控制核心后面所有储能支路控制都挂在它的输出上。2.2 时间常数怎么定从波动频谱到工程估算时间常数T是这套策略里唯一真正需要动脑子整定的参数。T决定了低通截止频率f_c 1 / (2 * pi * T)高于这个频率的波动分量会更多地被导向超级电容低于这个频率的则主要由蓄电池承担。选T的第一种思路是看蓄电池允许的功率变化率。一阶系统对阶跃输入ΔP的初始响应斜率近似为ΔP/T。如果蓄电池允许的最大功率变化率是rate_max那么为了不让蓄电池功率变化过快应该有ΔP/T rate_max于是得到T ΔP / rate_max。比如系统中最大功率缺额为2kW蓄电池允许0.5kW/s的变化率T的取值下限就是4s。当然这里是理想约束实际还要留两三倍裕度。第二种思路是反着算看超级电容容量能兜住多大的高频能量。T越大被分到超级电容的高频分量就越多超级电容电压波动也越大。假设高频功率幅值1.5kW、等效持续时间约5s那么超级电容需要吞吐约7.5kJ的能量。如果超级电容组是40F/240V能量储量本身约1.15MJ电压波动反而只占很小百分比说明T即使选50s甚至更大超级电容也扛得住。第三种思路是直接看新能源功率的频谱。把P_new的波动数据做FFT看看功率谱主要集中在哪些频段。比如大多数波动分量对应周期在几分钟以上而秒级到分钟级的随机波动幅值较小那T选在几十秒量级把分钟级以上的分界线划在蓄电池和超级电容之间就比较合理。综合下来我在模型里取T60s对应截止频率约0.0027Hz折算周期约375s。这个值的意思是周期大于375s的慢波动基本由蓄电池跟踪周期小于375s的快波动主要落到超级电容上分工均衡两边压力都可控。2.3 为什么先选低通滤波而不是更复杂的策略有人可能会问现在策略很多滑动平均、小波包分解、模糊逻辑、模型预测控制都能做功率分配为什么非要用低通滤波我的回答是低通滤波是做基准验证和快速出结果的性价比之王。滑动平均本质上也是一种低通但滑动窗口会引入固定延时而且窗口长度和T的物理含义不如一阶惯性环节直观。小波包分解能把信号分得很精细但需要离线或者滚动在线计算实时性差而且边界效应处理麻烦。模糊逻辑和模型预测控制效果能做得更花哨但规则库设计和预测模型标定本身就是大工程量作为第一版方案容易陷进去出不来。低通滤波的最大优势就是简单、实时、可解释。在工程控制器里它就是一行差分方程没有任何迭代求解。原理层面时间常数T有清晰的物理含义调参时有据可依。局限性也很明显一阶滤波器在截止频率附近只有-20dB/dec衰减率分频不够“干净”总有一部分高频分量漏到蓄电池支路一部分低频分量落在超级电容上。不过对绝大多数并网平抑场景来说这个程度的分频不干净完全可以接受后续如果想要更精细的效果可以在低通框架上加自适应参数或SOC反馈修正。3. 模型总体结构从功率指令到并网接口3.1 顶层信号流与功率平衡关系整套模型的顶层逻辑围绕一条功率平衡式展开P_grid P_new P_batt P_sc其中P_grid是实际进入电网的功率P_new是新能源出力P_batt和P_sc分别是蓄电池和超级电容注入直流母线的功率。控制目标是让P_grid尽量贴近并网目标P_grid_ref。储能总功率参考由上游计算得出P_ess_ref P_grid_ref - P_new。当P_new高于目标时P_ess_ref为负储能吸收多余功率当P_new低于目标时P_ess_ref为正储能释放功率补差。P_ess_ref再经过低通滤波分配变成蓄电池参考和超级电容参考两个参考值分别驱动各自的功率控制环最终实现并网功率的平抑。我在搭建Simulink模型时特意把信号流用不同颜色标注蓝色是功率指令线红色是电气量反馈线绿色是状态量SOC和电压。这样划分之后模型层次一眼就能看明白后面查问题也方便。3.2 三层次模型策略层、设备层、接口层模型内部我习惯分成三层来搭。策略层负责功率分配和SOC管理设备层负责电池、超级电容和双向DC/DC的电气行为接口层负责并网逆变器和电网的连接。三层之间的接口信号要尽量少否则模型耦合太深后续替换任何一层都容易牵连出错。策略层的主要模块是低通滤波分配器、SOC限幅逻辑和功率指令生成器。设备层的核心是蓄电池模型、超级电容模型、双向首尾连接的DC/DC变换器以及它们的控制器。接口层则是并网逆变器、滤波器、电网三相电压源以及直流母线电容。搭建顺序建议从中间往两头搭。先把P_ess_ref的定义逻辑做出来再搭分配器和储能支路最后才接并网逆变器。反过来从逆变器开始搭容易陷入并网控制的细节半天看不到储能平抑的效果。3.3 两种常用拓扑的取舍混合储能并网的拓扑大致分两种。一种是共用直流母线蓄电池和超级电容分别通过双向DC/DC汇入同一条直流母线再经过一台逆变器统一并网另一种是交流母线储能支路各自经过DC/DC和独立的逆变器并网。我这套模型采用共用直流母线方案。理由有三DC/DC级数少功率损耗模型更简单只有一台并网逆变器控制目标统一便于观察储能功率分配对并网功率的影响所需器件少模型跑起来更快。交流母线方案适合需要独立控制各储能支路并网功率、或者储能装置物理分布比较分散的场合但控制复杂度明显上升。对于平抑新能源波动这个核心目标共用直流母线完全够用。4. 核心模块搭建实操附参数4.1 功率波动源让仿真先“动起来”仿真模型要体现储能的价值必须先有一个能让储能忙起来的功率波动源。第一步不接真实光伏或风电详细模型直接在MATLAB工作区生成一组测试功率序列就好。%% 生成新能源功率波动序列 Ts 0.01; % 仿真步长/数据采样周期 [s] t 0:Ts:3600; % 仿真时长 1小时 P_base 8e3; % 新能源基准功率 [W] P_step 2e3 % 步进扰动幅值 [W] .* (t 30 t 300) ... 1.5e3 .* (t 600 t 900); P_noise 0.8e3 * sin(2*pi*0.01*t) 0.5e3 * sin(2*pi*0.05*t); P_new P_base P_step P_noise;这段代码生成的是8kW基准、叠加两个时间段步进扰动和两组不同频率正弦波动的测试信号。为什么用正弦叠加因为不同频率成分看得清清楚楚低通滤波器有没有把高频分量“切”给超级电容看图就能判断。生成后通过From Workspace模块导入Simulink采样时间设Ts。这里有个经验数据采样率不用太高0.01s足够太高会让仿真步长被迫缩小拖慢速度。如果后面还要做频谱分析这个采样率也足够覆盖到几十赫兹的波动成分。4.2 低通滤波分配器的Simulink实现低通滤波分配器有两种常用做法。第一种直接用Continuous库里的Transfer Fcn模块分子系数填[1]分母系数填[T, 1]。这种做法的好处是模型简洁但Transfer Fcn的初始条件默认是0如果仿真开始时P_ess_ref不是0蓄电池功率参考会从0瞬间跳变产生启动冲击。第二种做法更稳用一个积分器自己搭一阶惯性环节。1/(Ts1)的时域实现是y_dot (u - y) / T在Simulink里就是Gain模块乘1/T减法器算u减y再经过积分器输出y。这种方法可以自由设置积分器初始值把它设成仿真开始时刻的P_ess_ref值启动就不冲了。如果整个控制环是在离散域里算的也可以用MATLAB Function直接写一阶低通差分方程function y lpf(u, y_prev, T, Ts) % 一阶低通离散化 alpha T / (T Ts); y alpha * y_prev (1 - alpha) * u; endalpha等于T/(TTs)相当于在离散域用一阶后向差分在一阶惯性环节上做的近似。Ts选0.01s、T选60s时alpha约0.9998接近1说明输出变化很缓慢符合低频通路的特性。这个写法特别适合后续把控制逻辑搬到嵌入式控制器或者实时仿真机上。4.3 蓄电池支路模型与双向DC/DC蓄电池本体我第一版用的是Simscape Electrical里的Battery(Table-Based)模块参数设置为额定电压240V、容量40Ah、初始SOC 70%、内阻0.08Ω。Table-Based版本的好处是充放电内阻不一致的特性可以查表体现仿真稳定性也更好。如果不想用Simscape用Simplified Battery模块也能跑只是动态响应更理想化一些。双向DC/DC这里我强烈建议第一版先用平均模型。平均模型不模拟IGBT和二极管的具体开关过程而是用一个受控源等效变换器的平均行为仿真速度快一个数量级而且不会出现开关噪声干扰控制策略判断的问题。等分配策略验证清楚了再换成开关模型看电流纹波和器件应力。实现上蓄电池支路的DC/DC控制采用功率外环加电流内环。外环参考就是P_batt_ref除以蓄电池端电压得到电流指令内环用PI控制器跟踪这个电流指令输出占空比给PWM发生器。在平均模型阶段可以直接把电流指令转成受控电流源的输入省掉PWM环节。4.4 超级电容支路模型与双向DC/DC超级电容模型比电池简单得多本质是一个大容量的电容加上等效串联内阻。我直接用RC电路搭的C40FR_esr0.05Ω初始电压240V。如果想用Simscape里的Supercapacitor模块也可以但RC电路可控性更好参数改起来也直观。超级电容支路的控制和蓄电池支路结构相同功率外环加电流内环。有一点必须注意超级电容的SOC和它的端电压直接相关因为能量存储量E0.5CV²。在仿真里观察超级电容支路是否工作正常最直接的指标就是看它的端电压曲线有没有在额定值附近来回波动而不是像蓄电池那样看SOC百分比。4.5 并网逆变器与电网接口并网接口部分我推荐第一版用简化模型三相理想电压源模拟电网并网逆变器用受控电流源代替。控制目标是让并网有功功率等于P_grid_ref无功功率设为0。如果逆变器采用电网电压定向矢量控制那么有功电流指令近似为id_ref P_grid_ref / (1.5 * Vd)其中Vd是电网电压的d轴分量。把id_ref交给电流PI控制器iq_ref设0就能实现单位功率因数并网。这个层面不需要把开关管的PWM细节拉进来先把功率平抑策略验证明白才是重点。直流母线电容参数也不能忽略我取的是2000uF/600V。母线电容的主要作用是稳定母线电压缓冲储能支路和逆变器之间的瞬时功率差。电容太小母线电压会跟着功率波动剧烈起伏电容太大电压响应迟缓但更平稳代价是成本和体积。5. 关键参数整定与SOC保护5.1 储能容量与电气参数标定整套模型里我实际使用的核心参数汇总如下表供参考。电压、电流这些电气参数不需要和某个具体规格完全一致重点是各个模块之间的量纲统一和功率比例合理。参数数值说明直流母线电压400V各支路功率汇聚节点蓄电池额定电压240V40Ah容量9.6kWh蓄电池初始SOC70%避免启动后立即接触上下限蓄电池内阻0.08ΩTable-Based模型充放电内阻有差异超级电容电容值40F额定电压240V超级电容等效内阻0.05Ω主要影响高频电流下的损耗超级电容初始电压240V满电压状态留好出空间低通滤波时间常数T60s分频点约0.0027Hz直流母线电容2000uF母线电压稳定火电类比一下蓄电池像“水池”超级电容像“缓冲罐”时间常数T就是水池和缓冲罐之间的阀门开度。阀门开得越大水越容易流向缓冲罐缓冲罐需要越大阀门开得小水池就要承受更多流量波动。5.2 时间常数T的整定过程示例我实际整定的时候是这样一步步走的。第一步在P_new信号里构造一个1Hz、幅值0.8kW的高频正弦和一个0.01Hz、幅值1.5kW的低频正弦。第二步把T分别设成10s和60s跑两轮对比。T10s时截止频率约0.016Hz部分0.01Hz的低频信号也被切到了超级电容支路导致超级电容电压偏移明显、蓄电池反而有点“闲着没事”。T60s时0.01Hz的低频分量基本落在蓄电池1Hz的高频分量基本落在超级电容分工清晰。再看蓄电池支路的功率变化率。T60s时蓄电池功率最大变化率大约是每步0.1kW量级而T10s时这个值能翻两三倍。蓄电池承担的变化率越小意味着实际工况下它的循环寿命折损越轻。我个人的建议是只要超级电容容量不紧张T往大里取都比往小里取安全。T偏小最直接的后果是蓄电池功率变化率失控而这个后果往往要跑很久才在SOC曲线上暴露出来排查成本很高。5.3 SOC保护和限幅怎么接进分配环纯低通滤波只是按频率分功率不关心储能自身还剩多少能量。实际电池不能全放空、也不能过充所以必须在分配环节外面加一层保护。蓄电池SOC我设定工作在20%到90%区间。SOC低于30%时放电功率指令按比例缩限高于80%时充电功率指令按比例缩限。最简单做法是在P_batt_ref后面加一个Saturation限幅模块限幅上下界由SOC查表得到。更平滑一点的做法是在SOC接近边界时加一个线性衰减系数比如SOC低于30%后充电不限、放电乘以(SOC-20%)/10%这样一个0到1之间的系数。超级电容的保护逻辑更特殊它不看你SOC而是看端电压。当电压低于额定值的70%限制放电功率高于额定值限制充电功率。同时超级电容电压如果偏离额定值太远要加一个小的电压恢复环。具体是在P_sc_ref上叠加一个PI控制器的输出PI输入是额定电压与当前电压的误差输出是用于缓慢恢复电压的额外功率修正量。这个修正量故意做成慢速通带避免和原本的高频补偿功能打架。这里有一个关键逻辑必须处理好当蓄电池因为SOC越限而被限幅后P_sc_ref是否还要等于P_ess_ref减P_batt_ref如果继续按原公式算蓄电池没吃掉的那部分功率会自动漏给超级电容相当于让超级电容协助兜底。但如果超级电容也越限了就没法兜了这时候只能允许P_grid实际值偏离P_grid_ref由上层调度去重新调整目标。这个优先级在模型里要理清楚否则会出现两个储能支路同时拒载、并网功率直接失控的现象。6. 调试实录我踩过的坑和排查方法6.1 问题一启动瞬间的冲击电流第一次跑通模型时蓄电池电流在仿真开始那一下直接冲到接近额定电流的两倍母线电压被拉下去十几伏然后才慢慢恢复正常。排查下来原因是低通滤波器初始输出为0而P_ess_ref一开始可能就是1kW以上蓄电池功率参考从0硬跳到1kW电流当然冲。解决方法是把一阶惯性积分器初始值设置成P_ess_ref的初始值。如果用的是Transfer Fcn模块直接把Initial Condition设成仿真开始时刻的P_ess_ref。如果功率源本身就带斜坡启动也可以让并网目标功率在最初几秒从0线性爬到8kW这样整个系统是软启动的。6.2 问题二超级电容电压缓慢漂移调试时发现超级电容电压在仿真中后期不是围绕240V来回波动而是整体慢慢下降跑完一小时掉到220V。原因在于对称的高频波动理论上平均功率为零但模型中的数值积分误差、以及限幅环节的非线性会让超级电容的净能量吞吐出现很小的负数累积。日积月累电压就漂了。加一个电压恢复环就解决了。我给P_sc_ref叠加了一个PI修正项比例系数取0.02积分系数取0.005用额定电压240V减去实际电压作为输入。修正量很小正常工作时不会影响高频补偿效果但能让电压长期稳定在额定值附近。这个环对实际工程同样重要因为超级电容长期维持过低压状态意味着可用容量被白白浪费。6.3 问题三仿真速度慢到怀疑人生用Simscape电力电子开关模型时三个变换器的PWM开关频率都设20kHz仿真步长被迫压到微秒级结果一小时工况要跑半个小时以上。策略调参阶段这种速度完全没法用。后来把蓄电池支路和超级电容支路的DC/DC全部换成平均模型仿真步长可以放到0.01s甚至更大同一工况几十秒就跑完。只有需要看电流纹波和开关损耗时才单独把某条支路的平均模型换回开关模型。这个分层仿真策略省下来的时间非常可观。6.4 常见问题速查表容易踩的问题集中整理成下表遇到类似现象可以直接对照。现象可能原因排查与解决启动瞬间电流尖峰滤波器初始条件为0初始化积分器为P_ess_ref初值或斜坡启动超级电容电压长期偏移数值积分误差或限幅非线性加电压恢复PI环仿真速度慢开关模型步长太苛刻用平均模型最后阶段再换开关模型蓄电池SOC快速触界T偏小导致高频分量漏给电池增大T做FFT确认分频点母线电压波动剧烈母线电容偏小或电压环太慢增大电容适当提高电压环带宽两个储能支路同时拒载SOC限幅逻辑优先级混乱明确补差关系蓄电池限幅后SC兜底SC也越限则请求调整P_grid_ref并网功率跟踪有静差P_grid_ref前后单位不一致检查功率单位统一用W还是kW避免差1000倍7. 结果怎么看以及下一步扩展方向7.1 波形分析要点与评估指标模型跑完第一步不要急着看满屏曲线先按顺序看三条关键波形。第一条是P_new和P_grid两者应该出现明显对比P_new又乱又跳P_grid平滑地贴在P_grid_ref附近。第二条是P_batt和P_scP_batt曲线是缓慢变化的宽幅曲线P_sc则是在零轴附近来回振荡的窄幅曲线两条曲线频率特征一眼可分。第三条是超级电容电压和蓄电池SOC正常工作时电压来回波动但不整体偏移SOC只在小区间内缓变。量化评估上我常用的指标是并网功率波动率、蓄电池功率变化率和超级电容电压偏移范围。并网功率波动率用P_grid对时间的导数统计最大绝对值这个值越小说明平抑效果越好。蓄电池功率变化率同样看导数最大值它是最直观的“蓄电池寿命压力指标”。把这三项和未加储能、纯蓄电池储能两种对照组对比混合储能的价值就很清晰了。7.2 从固定低通到自适应滤波的扩展思路固定时间常数T在单一工况下表现良好但实际运行工况是变化的白天新能源出力波动剧烈夜里负荷变化可能更平缓。固定T要么在平稳工况下过度消耗超级电容容量要么在剧烈工况下让蓄电池承受过多高频应力。一个自然的扩展是让T随功率波动剧烈程度自适应变化。比如当P_ess_ref的短时变化率超过设定阈值时自动增大T把更多高频分量导向超级电容当变化平缓时减小T让蓄电池多承担一点给超级电容留出恢复电压的空间。这个策略依然建立在低通框架之上只需要把常数T换成由查表或PI调节得到的动态值改动量不大但适应能力明显增强。另外还可以把低通滤波分配层和容量配置层联动起来。既然T决定了功率分频点那超级电容的容量设计就应该按分频点以上的波动能量需求来算而不是靠经验拍脑袋。先把P_new的功率谱密度统计出来再根据选定的T估算超级电容需要吸收的高频能量反推电容值这样容量配置就有据可依不会出现“电容买小电压经常打顶”或者“电容买大全是浪费”的问题。我这套模型目前做到固定T加SOC保护加电压恢复这一步已经能稳定跑完典型工况并给出合理结果。最后分享一个调试心得储能仿真里最容易出问题的不是控制算法本身而是你给储能分配的“任务”是否合理。做功率分配前先把P_ess_ref的统计特性摸清楚——幅值范围多大、主要波动周期集中在哪段、能量需求大概多少。搞清楚这三件事再去整定T和容量参数整个过程会顺很多。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑