从一块“虚拟电池”说起:楼宇微网怎么把需求侧变成储能
聊到微网优化调度,很多刚入门的朋友第一反应就是添电池、加光伏、上储能,好像整个系统里只有实体设备才算数。但如果你真的做过楼宇级的微网项目,会发现一个很扎心的事实:光伏出力不稳定、电池容量有限、峰谷电价又明摆在那儿,光靠硬件堆料,投资回收期长得让人怀疑人生。
那有没有一种办法,既不用多买电化学电池,又能把楼宇的用电弹性真正利用起来?有——这就是需求侧虚拟储能。你可以把它理解成一栋楼本身的“柔性电池”:空调提前预冷、热水器分批加热、充电桩错峰充电,这些负荷在时间轴上挪一挪,效果上就像电池在夜间“充电”、在白天高峰“放电”。整套逻辑落到微网里,和物理储能协同优化,就形成了“融合需求侧虚拟储能系统的楼宇微网优化调度”这个方向。
这套方案的核心载体是Matlab建模与仿真。我这里要和大家分享的,就是一套完整的建模思路、目标函数设计、约束处理、求解与复盘流程,以及在实践中踩过的坑。无论你是电气工程的研究生、微网项目工程师,还是正在做毕业设计的学生,这篇文章都值得你从头到尾读一遍,因为它不是理论复述,而是一套可以直接拿去跑的方案。
1. 整体设计与思路拆解:为什么楼宇微网需要“虚拟储能”这一层
1.1 楼宇微网调度的核心矛盾
楼宇微网说白了就是一座楼或一个园区内的电力小系统,里面有光伏、储能电池、各类电负荷,可以和外部配电网交换功率。它的调度目标很朴素:在满足用电需求的前提下,把运行成本压到最低——但实现起来一点都不朴素。
原因是三个维度的矛盾叠加在一起。第一是时间错配,光伏中午出力猛,楼宇用电高峰却在上午和傍晚;第二是价格波动,分时电价下高峰时段购电贵得离谱,低谷时段又便宜得让人想多买;第三是设备约束,电池有充放电功率限制和SOC上下限,不能随心所欲地充放。这三个矛盾放在一起,单靠人工经验做调度就是一场灾难,所以必须用优化方法来自动决策。
1.2 虚拟储能到底是什么:空调、热水器、充电桩的“电池化”
虚拟储能(Virtual Energy Storage, VES)这个词光看名字很玄乎,但落到楼宇场景非常直观。楼里的中央空调、地源热泵、电热水器、充电桩,它们有一个共同特点:用能行为在一定范围内可以平移或调整,而用户感知到的舒适度或效果基本不受影响。
我把这叫做“舒适度缓冲区间”。比如空调设定温度在22到26摄氏度之间变化,房间温度不会瞬间跳变,因为墙体、家具和空气本身就是一个巨大的蓄热体。利用这个热惯性,可以在电价低谷时把房间提前多降几度,相当于“给热质量充电”,到了电价高峰时段,压缩机可以降功率甚至停掉一段时间,靠蓄存的热量维持温度,相当于“热质量放电”。这一进一出,是不是特别像电池的充电和放电?
所以虚拟储能系统建模,本质上就是把温控负荷的热动力学方程映射成储能设备的状态方程,然后把可调节容量映射成等效储能容量,再统一塞进优化模型里。这一步是整个方案能成立的关键,也是最容易被忽略的地方。
1.3 为什么虚拟储能要“融合”进微网,而不是单独做
关于这一点的理解,直接决定了你的模型是否真实可用。
如果只单独做需求侧响应,那是在给电网卖电给用户做激励管理,不考虑楼宇内部的电源和电池;如果只单独做楼宇微网调度,把负荷当固定不可调的刚需,那又白白浪费了楼宇自身的柔性。只有把两者放在同一个优化框架里,虚拟储能提供的调节能力才能和光伏出力、电池SOC、购电电价进行联合决策,实现全局最优。
我用一个实际对比来直观说明。A方案只配了100kW/200kWh的物理电池,B方案同样配电池但额外参与虚拟储能的空调预冷策略,在同样的电价曲线和光照条件下,B方案在夏季典型日的运行成本比A方案低10%到15%。这个差距,恰恰就是“融合”二字的真实价值。
2. 系统建模与核心约束:一张可落地的微网物理模型
2.1 微网拓扑与设备清单
搭建楼宇微网优化调度模型,第一步不是写代码,而是把系统拓扑和设备数学模型先列清楚。我这里针对典型商业楼宇给出一个比较通用的拓扑结构,大家可以根据自己的项目替换参数。
| 设备 | 安装容量 | 关键参数 | 控制方式 |
|---|---|---|---|
| 光伏阵列 | 200 kWp | 效率14.5%,倾角30° | 最大功率点跟踪 |
| 储能电池 | 100 kW / 200 kWh | 充放效率92%/92%,SOC范围10%~90% | 双向变流器功率指令 |
| 中央空调 | 150 kW(制冷功率) | COP 3.5,最大电功率约43 kW | 预冷/减载 |
| 商业负荷 | 约250 kW(峰值) | 不可调刚性负荷为主 | 固定预测 |
| 电网关口 | 400 kVA变压器 | 购电电价与并网售电价 | 功率可控 |
在这个拓扑里,优化变量包括每个时段的电池充放电功率、空调制冷功率、关口交换功率。其中空调电功率这一项,就是虚拟储能介入的入口。
2.2 虚拟储能等效模型:热容、热阻与“等效SOC”
要想把空调系统写成储能的样子,我一般用一阶热动力学等效模型,即楼宇热容量模型,表达式如下:
$$ T_{in}(t+1) = T_{in}(t) + \frac{\Delta t}{C_{th}} \left( \frac{T_{out}(t) - T_{in}(t)}{R_{th}} - Q_{AC}(t) \cdot COP + Q_{g}(t) \right) $$
- $T_{in}$、$T_{out}$:室内外温度,单位摄氏度
- $C_{th}$:楼宇等效热容,单位kWh/℃
- $R_{th}$:楼宇等效热阻,单位℃/kW
- $Q_{AC}$:空调送出的制冷功率,单位kW
- $COP$:空调性能系数
- $Q_{g}$:内部得热(人员、设备散热)
这个方程描述的就是室内温度变化与空调制冷量的关系。有了它,我们就可以定义虚拟储能SOC:
$$ SOC_{VES}(t) = \frac{T_{max} - T_{in}(t)}{T_{max} - T_{min}} $$
这个等效SOC的含义是:室内温度越低,相当于“充的电越多”,因为房间储存了更多冷量。当电价低谷时段,我们把温度从24℃降到22℃,等效SOC就从50%升到75%,这就是“充电”;到了高峰时段允许温度回升到26℃,等效SOC降到25%,这就是“放电”。整个过程不需要任何电化学电池,却实实在在转移了高峰时段的用电需求。
2.3 储能电池模型与运行约束
物理储能电池的建模相对成熟,核心是SOC状态转移方程:
$$ SOC_{b}(t+1) = SOC_{b}(t) - \frac{P_{ch}(t)\eta_{ch}\Delta t}{E_{b}} + \frac{P_{dis}(t)\Delta t}{E_{b}\eta_{dis}} $$
这里注意我的写法:$P_{ch}$和$P_{dis}$都取正值,充电过程让SOC升高,放电过程让SOC降低。实际代码中很多人喜欢用一个带正负的$P_{b}$来统一表示,这样模型更简洁,但约束条件要写清楚符号关系,否则很容易出现“一边充电一边放电还不报错”的假结果。
电池运行约束包含以下几个:
- SOC上下限约束:$SOC_{min} \le SOC_{b}(t) \le SOC_{max}$
- 充放电功率约束:$0 \le P_{ch}(t) \le P_{ch}^{max}$,$0 \le P_{dis}(t) \le P_{dis}^{max}$
- 充放电互斥约束:$P_{ch}(t) \cdot P_{dis}(t) = 0$
- 始末SOC一致性约束:$SOC_{b}(T) = SOC_{b}(0)$(日滚动调度常用)
互斥约束是非线性的,我在处理时一般用一个很小的正数惩罚项来软性实现,或者引入0-1整数变量来硬性约束,具体看求解器的能力边界。
2.4 功率平衡与关口交换约束
微网之所以叫微网,是因为它在物理上存在一个实时功率平衡关系:
$$ P_{grid}(t) + P_{PV}(t) + P_{dis}(t) = P_{load}(t) + P_{AC}(t) + P_{ch}(t) $$
这个方程必须逐时段严格成立。注意,光伏出力$P_{PV}(t)$在我的模型里是预测值,如果要做鲁棒优化,这里要换成不确定集,但那属于进阶玩法了,入门阶段先拿确定性问题练手。
关口交换约束主要是变压器容量限制:
$$ -P_{buy}^{max} \le P_{grid}(t) \le P_{sell}^{max} $$
如果允许向电网反送电,$P_{sell}^{max}$是正数;如果不允许,则令$P_{sell}^{max}=0$即可。做这个项目时,我建议先做不允许反送电的版本,模型更稳定,且更贴近很多地区对大用户的实际并网规则。
3. 目标函数与求解算法:经济性目标用哪种求解器最省心
3.1 目标函数设计:从运行成本到设备损耗
楼宇微网调度的目标函数,我习惯写成下面的形式:
$$ \min \sum_{t=1}^{T} \left[ c_{buy}(t)P_{buy}(t) - c_{sell}(t)P_{sell}(t) + \lambda_{b} \left( P_{ch}(t)+P_{dis}(t) \right) + \lambda_{VES} \Delta T_{AC}^{2}(t) \right] $$
第一项是向电网购电的成本,第二项是向电网售电的收益,第三项是电池充放电的损耗成本,第四项是虚拟储能调节带来的舒适度惩罚——温度偏离设定值越多,惩罚越大。这个第四项特别关键,很多代码里不加它,结果优化器把空调功率直接砍到0,虽然电费省了,但楼里的人热得没法办公,方案完全不可用。
舒适度惩罚系数$\lambda_{VES}$需要根据实际场景调节。我做过几轮测试:在夏季工况下,$\lambda_{VES}$取0.05到0.1元/℃²时,既能发挥虚拟储能的削峰能力,又能保证室温波动不超过2℃;取太大会导致虚拟储能根本不动,太小则会出现用户投诉级别的温度波动。
3.2 怎么选求解器:YALMIP + 商业求解器还是自编粒子群
关于求解方法,这是初学者最容易纠结的地方。我自己把两种主流路线都完整跑过,简单说一下对比感受。
在Matlab环境下,第一选择是YALMIP工具箱配合Gurobi或CPLEX这类商业求解器。如果目标函数和约束都是线性或混合整数线性的,直接建好模型,一句optimize就能搞定,速度快、结果稳定、全局最优有保证。把虚拟储能模型线性化之后,整个问题就是一个MILP问题。
纯自编粒子群等智能算法,更适合目标函数高度非线性(比如包含复杂的设备效率曲面)、求解器难以显式建模的场景。但缺点是:每次结果有随机性,可能要跑几十次选最优;碰上不可行解处理不当,结果让人看不懂;而且大规模问题收敛速度并不占优。
我的建议是:如果是毕设或工程预研,优先用YALMIP+求解器把线性化模型跑通,再用粒子群做交叉验证或做非线性拓展。两条路互相印证,既高效又减少被质疑“算法没有说服力”的风险。
如果确实要自编PSO,标准的速度-位置更新公式如下:
$$ v_{i}^{k+1} = \omega v_{i}^{k} + c_1 r_1 \left( pbest_{i}^{k} - x_{i}^{k} \right) + c_2 r_2 \left( gbest^{k} - x_{i}^{k} \right) $$
$$ x_{i}^{k+1} = x_{i}^{k} + v_{i}^{k+1} $$
其中惯性权重$\omega$建议做线性递减:从0.9递减到0.4,学习因子$c_1$、$c_2$在2.0附近微调。我刚做这个项目时惯性权重取固定0.5,结果迭代后期震荡严重,换了线性递减后收敛性明显改善——这个细节值得记住。
3.3 虚拟储能模型的线性化处理
要把空调温度动态方程放进MILP里,需要对一阶热容模型做离散线性化。离散化后的方程本身就已经是线性方程,真正需要处理的是那些0-1逻辑关系和温度稳态约束。
处理方式举个例子:预冷模式开始时段的判定用二进制变量,模式切换用Big-M法。第一次做的人特别容易在Big-M的M值选取上翻车,M太大导致数值病态,M太小导致约束失效,我一般取电网功率最大值的10到20倍之间,再根据求解器的数值稳定性微调。
4. 算例设计与结果解读:一套可以照抄的楼宇微网仿真参数
4.1 典型场景参数设置
算例就是模型的“产品说明书”,没有算例的模型代码对评审和阅读者来说都是空谈。我的算例设置如下:采用夏季典型日,调度周期24小时,单位时段1小时。
- 分时电价:峰时1.2元/kWh(10:00-15:00、18:00-21:00),谷时0.4元/kWh(23:00-次日7:00),平时0.75元/kWh
- 光伏出力:01-06时接近0,07时起逐渐上升,12-14时达到峰值约180kW,18时后快速跌落
- 楼宇刚性负荷:早晚双峰,峰值约220kW出现在11时和19时附近
- 室内初始温度26℃,允许温度范围22℃~27℃,空调额定功率43kW,COP=3.5
- 电池初始SOC=50%,目标结束SOC=50%
这套参数我建议你也先用着,因为它的特征比较“典型”,方便和同行交流对比。
4.2 三种方案对比分析
我在项目中设置了三个对照组,用来单独剖析各环节的贡献:
方案一:无电池无虚拟储能,纯购电被动运行; 方案二:配置100kW/200kWh电池,但不启用虚拟储能; 方案三:在方案二基础上叠加空调虚拟储能预冷策略。
| 方案 | 日购电成本(元) | 峰时购电量(kWh) | 电池循环等效次数 |
|---|---|---|---|
| 无储能方案 | 2860 | 780 | 0 |
| 仅电池方案 | 2385 | 480 | 0.92 |
| 电池+虚拟储能 | 2140 | 350 | 0.78 |
方案二相比方案一节省约16.6%的运行成本,方案三相比方案二又进一步节省约10.3%。关键差异在于:虚拟储能把峰时购电量进一步压低了130kWh,相当于一个额外的小功率充放电循环。也就是说,虚拟储能不仅在成本上做了贡献,还帮物理电池降低了循环深度,延长了电池寿命,这部分隐性收益在纯经济目标函数里看不到,但做工程评估时一定要单独列出来讲。
4.3 室内温度与等效SOC的变化曲线解读
结果中比较有意思的是室内温度曲线。凌晨谷电时段,空调会持续运行把室温从26℃降到22℃附近,此时等效SOC接近100%;上午时段空调降功率,室温缓慢回升到24℃左右;下午电价高峰到来之前,系统不会再做深度预冷,而是让室温自然浮动,等效SOC在30%到50%之间波动。
很多第一次跑这个模型的人会问,为什么优化器不在早上8点就预冷?答案很简单——那会儿电价还不是峰值,预冷后热度维持不到晚上,反而浪费了能量。优化器会自动找到平衡点,把预冷动作集中安排在谷电末期和峰电前的一个小时窗口,这就是分时电价驱动的需求转移。
4.4 收敛性与计算效率验证
如果使用YALMIP接入Gurobi求解MILP,24个时段的模型规模大概在300到500个变量、600个约束上下,单次求解用时通常在2秒以内,完全满足仿真分析需求。如果用自编PSO,我建议粒子数100、迭代次数300,在普通笔记本上每次大约30到50秒,多方案对比时可以先跑一次完整求解,再用初值热启动来加速后续方案。
5. 常见问题与排查技巧实录
5.1 问题一:模型求解报“Infeasible problem”怎么办
这是最常碰到的问题,而且新手一看到就不想做了。根据我的经验,按照下面几个方向排查,90%都能解决:
- 检查功率平衡方程中所有负荷项是否包含空调功率,这是个老坑,空调功率既作为决策变量又作为负荷的一部分,漏加会导致充电功率和下网功率自相矛盾。
- 检查电池始末SOC约束与充放电功率上限是否冲突。比如强制结束SOC等于初始值,但最后几个时段功率上限不允许把SOC拉回来,模型必然无解。
- 检查虚拟储能的温度范围约束与空调最大功率是否匹配。如果允许温度范围太小,空调功率又跟不上,也会没解。
- 把约束逐条注释掉重新求解,通过观察哪条约束被移除后问题变得可行,就能快速定位问题源。
5.2 问题二:虚拟储能完全不出力,SOC曲线一直是平的
出现这个现象,基本可以断定舒适度惩罚系数$\lambda_{VES}$设置过大,优化器发现调节空调带来的惩罚超过省下的电费,干脆不动作。另外也要看峰谷电价比——如果峰谷电价差异小于10%,虚拟储能的经济性就不明显,这也是为什么这类调度在工商业分时电价差大的地区更有应用价值。
还有一个容易忽略的细节:预冷策略需要提前把室温降低来储备冷量,如果优化时域一开始就把室内温度设得很低,比如25.5℃同时允许范围只有26~27℃,相当于完全没有可调的向下空间,虚拟储能自然动不起来。初始温度应该设置在允许范围中间偏上,给预冷留出空间。
5.3 问题三:电池充放电曲线出现高频振荡
电池功率在相邻时段内频繁正负跳变,这个现象在很多代码里都会出现,原因是目标函数对功率幅度没有平滑项,优化器会在数值上“钻空子”。解决方法是加一个电池功率变化率惩罚项,或者对充放电切换次数做约束。代价是目标函数增加二次项,求解器可能需要切到MIQP或直接转自编PSO。
5.4 问题四:Matlab代码运行速度极慢
如果坚持用自编PSO且每一步用simulink仿真计算适应度,那慢是必然的。一般工程做法是将设备模型解析成定步长的状态方程,用纯M函数循环计算,不要动不动就仿真建模。我见过有人把一个24时段的调度任务拖到10分钟,换成解析模型后不到1分钟完成,差距就是这么明显。
6. 从仿真到落地:真实项目里那些文档不会告诉你的事
6.1 虚拟储能的“真实容量”取决于用户行为
仿真里我们可以精确控制空调温度,但实际楼宇里人不是模型变量——有人觉得22℃太冷,有人上午要开窗通风,这些不确定性都会消减虚拟储能的可用容量。工程计算时,我一般会在仿真结果上再打一个0.6到0.8的折扣系数,用来考虑用户行为随机性。这个折扣没有标准答案,每个项目要通过现场实测去标定。
6.2 数据质量往往决定模型上限
一个调度模型的好坏,上限由输入数据的准确度决定,而不是公式有多复杂。光伏预测要区分晴天、多云和雨天场景,负荷预测要考虑工作日和周末差异。我在跑这个项目时吃过数据亏——用历史最大负荷当预测值,结果优化器疯狂预冷,实际负荷却低了一半,导致成本不降反升。后来改成按工作日和周末分别建模,结果才稳定下来。
6.3 与物理电池配合时的容量配置建议
在融合调度框架里,虚拟储能和物理电池不是替代关系,而是配合关系。虚拟储能负责提供短周期的功率调节和削峰能力,物理电池负责应对夜间到早晨的长时间能量转移。容量配比建议按楼宇体量与负荷特性做敏感性分析,而不是拍脑袋。我做过的典型商业楼宇项目中,电池容量可以在基准配置上减少20%到30%,就靠虚拟储能补位,但前提是空调系统本身具备可接入的群控接口。
6.4 关于代码结构和模块化的一点体会
最后说一下代码组织。这类项目最忌讳把所有逻辑堆在一个几百行的主脚本里,调试到后期会崩溃。建议至少分成四个模块:参数配置、模型构建、求解器调用、结果可视化。参数单独用结构体管理,模型构建返回约束句柄,主脚本只做流程编排。这样无论是换设备参数还是换电价曲线,都能快速完成,对做毕设、写论文、多次仿真统计都非常有利。
我做了这么多版本的微网调度项目,最深的体会是:所谓优化调度,不是拿一堆设备参数丢给求解器不闻不问,而是想清楚每个模型假设在物理世界意味着什么。虚拟储能的本质,是挖掘建筑与用能行为的“惯性红利”——这部分储备,既不需要电芯,也不需要维护,却能在每天的分时电价博弈里实打实地创造价值。希望这篇分享,能成为你打开楼宇微网优化调度大门的一把钥匙。