写这篇文章之前,我其实犹豫了一下。多微网优化调度这个方向,知网上的论文一抓一大把,但绝大多数停留在"模型很漂亮、算例很完美"的层面上,真正能把代码落地、把模型跑通、把结果解释清楚的内容少之又少。这篇博文想换个角度——不讲太多虚的理论,重点把"面向低碳经济运行目标的多微网能量互联优化调度"这个题目,从问题定义、数学模型、Matlab实现到结果解读,一条线完整串下来。如果你正在做微电网、综合能源系统或者电力系统优化调度方向的研究,正准备用Matlab实现一个多微网互联的低碳调度模型,那这篇文章应该能帮你省下不少摸索的时间。
1. 问题定义:多微网互联到底在优化什么
1.1 为什么单微网要升级为多微网互联
先聊一个基础的逻辑。单个微网内部有光伏、储能、燃气轮机、负荷,理论上可以自给自足,但实际上运行起来很憋屈:白天光照强的时候,光伏出力猛增,负荷却可能很低,多余的电力要么送给大电网(售电价格往往不划算),要么被储能吃掉(储能容量有限);到了傍晚负荷高峰,光伏出力骤降,只能从大电网高价购电。这就是单微网运行的尴尬处境——发多用不完,发少不够用。
多微网互联解决的就是这个时空互补性问题。打个比方,三个微网挨在一起,A是商业区微网,白天负荷高;B是居民区微网,晚上负荷高;C是工业区微网,光伏装得多。如果三个微网各干各的,A白天买高价电,C白天白白送电;但只要拉起一条互联线路,C白天的富余电力可以直接卖给A,B晚上的高峰负荷可以由A的储能来支援。整体算下来,大电网的购电量减少了,弃光率下降了,系统的运行成本和碳排放都降了——这就是能量互联的核心价值。
所以这个"优化调度"本质上解决的是:在一个由多个微网通过联络线组成的互联系统里,每个时刻该怎么安排各微网内部的光伏出力、储能充放电、燃气轮机出力,以及微网之间的功率交换和微网与大电网之间的购售电,使得全天24小时的总运行成本最低、碳排放最少。
1.2 低碳经济运行目标:成本和碳怎么折中
传统优化调度只盯着经济性——运行成本最小,从来没算过碳排放这笔账。但现在做微网调度,"低碳"已经是硬约束了,所以目标函数里必须把碳排放放进去。
问题来了:成本和碳排放是两个量纲完全不同的指标,一个是万元,一个是吨,怎么一起优化?主流做法有三种。第一种是碳交易机制,政府给每个微网分配碳排放配额,实际碳排放低于配额的部分可以在碳市场出售获利,超出部分要花钱购买,这样碳排放就被折算成了经济成本,直接加进目标函数里;第二种是碳惩罚系数法,给单位碳排放量乘一个惩罚价格,加入目标函数;第三种是双目标优化,用帕累托前沿找出成本和碳排放的折中解,但计算量偏大,工程上用得不多。
我在实现时选择的是碳交易机制,原因很简单:它和经济成本天然同量纲,目标函数直接相加即可,物理含义清晰,而且现在国内碳市场已经实际运行了,这个假设在工程上说得通。碳交易价格的典型取值在100~300元/吨,配额分配方式可以做免费分配,也可以做基准线法分配,具体看你要研究的场景。这个选择直接决定了后面Matlab代码中目标函数的写法,所以先在开头说清楚。
2. 数学模型搭建:目标函数与约束条件
2.1 目标函数:三个微网的成本和碳排放统一建模
我用一个三层级的架构来描述这个系统:顶层是调度中心,负责全局优化;中间层是各个微网,通过联络线互联;底层是微网内部的分布式电源、储能和负荷。
决策变量我按微网分组定义,每个微网m在时段t的决策变量包括:
- 燃气轮机出力 P_MT(m,t)
- 储能充电功率 P_ch(m,t) 和放电功率 P_dis(m,t)
- 与大电网的购电功率 P_buy(m,t) 和售电功率 P_sell(m,t)
- 与其他微网之间的交互功率 P_ex(m,n,t)(从微网m流向微网n)
目标函数写成:
min F = Σ_m Σ_t [ C_fuel(m,t) + C_grid(m,t) + C_om(m,t) + C_carbon(m,t) - C_sell(m,t) ]
其中各项的含义拆开来说。
C_fuel是燃气轮机的燃料成本,通常表示为出力的二次函数:C_fuel = a * P_MT^2 + b * P_MT + c,但在Matlab里处理二次函数对求解器有要求(Cplex能处理,linprog不行)。为了用线性规划求解,我一般做分段线性化处理,或者直接用线性近似——毕竟燃气轮机在微网里通常是基荷运行,出力范围不大,线性近似的误差完全可接受。
C_grid是向大电网购电的成本,就是分时电价乘以购电量,典型的分时电价设置是峰时1.1元/kWh、平时0.6元/kWh、谷时0.3元/kWh。C_sell是向大电网售电的收入,售电电价通常比购电电价低,比如统一按0.3元/kWh,这样微网才没有"低买高卖赚差价"的套利空间。
C_om是运行维护成本,光伏、储能、燃气轮机都有维护费用,单位电量的维护成本乘上各自的出力即可,数值不大但必须纳入模型,因为这会影响到光伏和储能的使用意愿。
C_carbon是碳交易成本,也就是前面说的低碳目标落地的关键项。计算公式是:C_carbon = λ * ( E_total - E_quota ),其中λ是碳交易价格,E_total是系统总碳排放,E_quota是碳配额。总碳排放包括两个来源:从大电网购电对应的间接碳排放(购电量乘以电网碳排放因子)和燃气轮机发电的直接碳排放(天然气消耗量乘以碳排放因子)。这里有个细节值得注意:如果总碳排放低于配额,C_carbon就是负值,等于系统通过低碳运行赚到了卖碳的钱。
2.2 约束条件:功率平衡、储能状态与联络线限制
模型的核心约束有四组,我在写代码时最常被问到的就是"约束太多,求解器报错",所以这部分的逻辑要理清楚。
第一组是各微网内部的功率平衡约束,这是硬约束中的硬约束:
P_PV(m,t) + P_MT(m,t) + P_dis(m,t) + P_buy(m,t) + Σ_n P_ex(n,m,t) = P_load(m,t) + P_ch(m,t) + P_sell(m,t) + Σ_n P_ex(m,n,t)
这个式子的含义很简单:微网m在时刻t的所有电能输入,等于所有电能输出。很多初学者在这里容易搞混微网间交互功率的方向,我建议统一约定P_ex(m,n,t)表示从m流向n的功率,那么对微网m来说,流出到其他微网的Σ P_ex(m,n,t)是负荷项,从其他微网流入的Σ P_ex(n,m,t)是电源项。
第二组是储能系统的约束,包括充放电功率上限、SOC状态更新和SOC上下限:
0 ≤ P_ch(m,t) ≤ u_ch(m,t) * P_ch_max 0 ≤ P_dis(m,t) ≤ u_dis(m,t) * P_dis_max u_ch + u_dis ≤ 1(不能同时充放电) SOC(m,t+1) = SOC(m,t) + (P_ch * η_ch - P_dis / η_dis) * Δt / E_bat SOC_min ≤ SOC(m,t) ≤ SOC_max
这里容易出问题的是SOC更新公式里的效率系数。我见过不少代码把充电效率直接乘在功率上,结果SOC的数值怎么算都不对。记住关键一点:充电时是"存进去的电量"除以储能容量,所以SOC增加量 = P_ch * η_ch * Δt / E;放电时是"放出来的电量"除以储能容量,所以SOC减少量 = P_dis / η_dis * Δt / E。效率η_ch和η_dis的典型值都在0.9~0.95之间。
第三组是联络线功率约束,包括微网与大电网之间的购售电约束,以及微网之间的交互功率约束:
0 ≤ P_buy(m,t) ≤ u_buy * P_buy_max 0 ≤ P_sell(m,t) ≤ u_sell * P_sell_max u_buy + u_sell ≤ 1 -P_ex_max ≤ P_ex(m,n,t) ≤ P_ex_max
购售电不能同时进行,这个逻辑和储能充放电不能同时进行是一样的,否则模型会利用电价差做无意义的套利。微网间交互功率的上下限一般取联络线容量,比如500kW。
第四组是燃气轮机的出力上下限和爬坡约束:
P_MT_min ≤ P_MT(m,t) ≤ P_MT_max -ΔP_MT ≤ P_MT(m,t+1) - P_MT(m,t) ≤ ΔP_MT
爬坡约束很多初学者会忘,但实际系统中燃气轮机不可能瞬间从0跳到满发,必须考虑这个物理限制。
2.3 模型中的关键参数设置与数据准备
模型要想跑出合理的结果,参数设置必须贴近实际。我的习惯是先建立一个基础参数表,再根据研究目标微调。
光伏出力数据可以用某地夏季典型日的实际数据,也可以根据光照强度模型生成。如果是做案例研究,我常用Matlab的rand函数生成一组带波动性的光伏出力曲线,再用smoothdata做一下平滑处理,模拟出力波动。负荷数据一般用典型日负荷曲线,同样可以按实际数据或合成数据。
燃气轮机参数:额定功率350kW,最小出力70kW(20%额定),爬坡速率60kW/h,燃料成本系数取a=0.002、b=0.18、c=0(单位按元/kWh换算),碳排放因子0.2kg/kWh。
储能参数:容量500kWh,最大充放电功率100kW,效率η_ch=η_dis=0.92,SOC范围0.1~0.9,初始SOC取0.3。
电网交互参数:购电价采用峰平谷三段分时电价,峰时(10~15, 18~21时)为1.0元/kWh,平时(7~10, 15~18, 21~23时)为0.6元/kWh,谷时(23~次日7时)为0.3元/kWh;售电价统一为0.35元/kWh。购电碳排放因子0.9kg/kWh。
碳交易参数:配额可以按每个微网负荷的某个比例分配,比如配额 = 负荷量 * 0.8 * 0.9(kg),表示允许80%的用电量按电网平均碳排放水平排放;碳价取150元/吨。网络流行的话语