ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

冷热电多微网双层优化配置:共享储能容量与调度协同方法

冷热电多微网双层优化配置:共享储能容量与调度协同方法 1. 项目背景与双层优化思路的确立1.1 储能电站服务模式的出现让“多微网”有了新玩法先说这个项目最核心的一个背景储能电站正在从“自建自用”走向“第三方服务”。过去做微网储能基本是微网内部的一个固定配置容量多大、放什么位置都是跟着自己的风电光伏配套。但现在市场上出现了独立的储能电站它不服务某一个具体的园区而是面向一片区域内的多个微网以容量租赁、峰谷套利、备用容量等方式提供能量服务。这就把“储能”从微网内部的设备变量变成了一个跨微网的公共资源变量。我接手这个项目时面对的就是这样一个场景一片规划区内有若干个独立的工业园区微网每个微网都有冷、热、电三类负荷也都规划了光伏、燃气轮机这些本地电源。但单独建设储能的成本太高而且单个微网的负荷波动大、储能利用率低。引入一座共享储能电站以“服务商”的身份向多个微网提供充电、放电、容量支撑整体经济性就有机会提升。问题跟着就来了储能电站该配置多大容量每个微网内部的冷热电设备又该配多大这两类决策年限不同、优化目标不同但互相影响。这就不是传统单层优化能解决的问题了需要双层优化配置。1.2 容量配置与运行调度为什么要分开成“两层”很多初次接触双层优化的人会问把容量和运行写进同一个优化模型一次性求解不就行了理论上可以但实际做起来非常别扭。容量配置是年尺度、月尺度的决策比如燃气轮机选3兆瓦还是5兆瓦储能电站建10兆瓦时还是20兆瓦时这类决策一变整个运行阶段的可行域就变了。而运行调度是小时尺度的决策比如今天10点钟燃气轮机发多少电、储能是充电还是放电它直接决定了一天下来运行成本是多少。如果把这两个尺度硬塞进一个模型会出现三个问题第一时间粒度无法统一。容量决策不需要每一小时都设变量但运行优化必须逐小时建模合在一起后模型规模会急剧膨胀商用求解器很难处理。第二决策性质不同。容量配置本质上是投资决策带很强的整数性——要么建一台机组要么不建不能建半个而运行调度里除了启停变量大量是连续变量。混合整数非线性问题在如此大尺度下收敛性非常差。第三信息层级不对等。实际工程里容量规划是规划部门做的运行调度是运营部门做的两边本就属于不同决策主体。单层模型把两个决策主体的信息全部集中与实际管理结构脱节。所以双层优化在这里不是炫技而是对真实决策秩序的自然建模。上层是规划者决定各类设备容量下层是调度运营者在给定容量下追求最小运行成本。上层把配置方案传给下层下层算完运行成本再反馈给上层通过迭代逼近全局最优或较优解。1.3 双层规划框架的技术路线选型这个项目里我对比过三种技术路线简单说下取舍给后面要做的朋友参考。一种是“下层用KKT条件替换”。把下层运行优化问题用其最优性条件库恩-塔克条件代替双层问题就转变为一个带互补约束的单层问题理论上可以交给求解器直接处理。这条路听起来最漂亮但实际调试很折磨人——互补约束的非凸性经常导致求解器陷入局部解而且下层模型如果有0-1变量比如机组启停KKT条件就没法直接用了。项目里我们的下层调度包含冷热电联供机组的启停决策属于混合整数规划KKT路直接堵死。第二种是“启发式算法嵌套数学规划”。上层用遗传算法或粒子群做容量寻优下层在每一代用商用求解器精确求解运行调度问题。这个方案对模型复杂度的容忍度最高下层该整数的整数、该非线性的非线性都不影响框架。缺点是需要仔细调遗传算法的种群规模和迭代次数否则计算时间长到让人失去耐心。我们的项目最终采用了这个方案。第三种是“线性化后单层化”。把设备的非线性能效特性全部做分段线性化再强行把两个尺度合成一个模型。这条路在简单系统里可行但遇到冷热电多微网这种规模变量量级是几千乘几万求解时间成本和内存开销会失控。我的结论只要系统里存在整数运行变量就用“上层启发式下层精确求解”的嵌套框架这是当前工程环境下最稳的选择。至于效率问题后面会在求解策略里展开讲怎么提速。2. 冷热电多微网系统的建模细节2.1 多微网的能流结构与设备模型首先要搞清楚多微网的能流怎么走。这个项目里的每个微网负荷侧有三条独立的能量需求电负荷由光伏、燃气轮机、储能电站放电以及从上级电网购电共同满足热负荷由燃气轮机的余热回收、燃气锅炉供热量承担冷负荷由电制冷机和吸收式制冷机共同承担。其中燃气轮机同时发点和产热这就在电和热之间形成强耦合是冷热电联供系统的核心特征也是建模时最容易出错的地方。设备模型方面我把每个设备分成两类来看。一类是输入输出呈线性关系的设备比如燃气锅炉燃气消耗量近似正比于产热量效率取个常数就能用。另一类是带部分负荷特性的设备重点是燃气轮机和吸收式制冷机。燃气轮机的发电效率不是恒定值而是随负载率变化。我在项目里用了一个三段线性化模型负载率在30%-50%、50%-80%、80%-100%区间内分别取不同斜率这样既保留变工况特性又避免非线性带来的求解麻烦。余热回收量则简单处理为发电量的一个比例系数用0.8左右。吸收式制冷机的性能系数COP同样不是常数驱动热源温度变化时COP会波动。但考虑到工程精度我直接取了额定COP并做上限约束设计算例时留出5%的裕量——这一步在后面和运维人员的对账中意外收获了肯定因为实际运行中确实达不到额定值。储能电站建模也要单独聊一聊这和项目核心强相关。共享储能电站的模型不是简单一套充放电功率和荷电状态它要为多个微网服务就涉及到容量分配。我用的建模方式是储能电站物理上是一个整体但优化时把可用容量按比例划分给各微网每个微网获得一个“虚拟容量”在这个虚拟容量内独立调度储能的充放电。这样既保留共享储能的物理约束又能把储能服务拆解为可核算的分项指标。这种建模方式在下一轮做储能服务费用结算时也让各方都很容易接受——因为每个人只对自己那块虚拟容量负责。2.2 储能电站的充放电约束怎么建模才不出错储能建模在很多人那里翻车翻车点通常不在储能本体的能量平衡方程而在充放电约束的边界处理上。项目里有一个反复踩坑后总结下来的框架基本可以无脑复刻。先说最基础的荷电状态SOC递推方程SOC(t1) SOC(t) (Pc(t)·ηc / E) - (Pd(t) / (E·ηd))其中 Pc 和 Pd 分别是充电和放电功率ηc、ηd 是充放电效率E 是储能容量。这个公式本身没有争议争议通常出在充放电功率的上限设置上。有相当多的论文直接写成 0 ≤ Pc ≤ P_max0 ≤ Pd ≤ P_max这其实漏了一个关键约束同一时刻不能既充电又放电。如果漏掉这条求解器会在极个别电价波动大的时段出现充电和放电同为正值的情况从数学上说目标函数里充放电成本项能把它压下去但一旦加了某种对称的成本项就会钻出这种漏洞。正确做法是引入两个0-1变量 u_c(t) 和 u_d(t)约束0 ≤ Pc(t) ≤ u_c(t)·P_max0 ≤ Pd(t) ≤ u_d(t)·P_maxu_c(t) u_d(t) ≤ 1这样硬性禁止同一时刻双向充放电。另外SOC的上下限不要设到0和1我习惯设0.1到0.9留出安全余量这既符合锂电的实际寿命要求也给后续调峰预留了缓冲。还有一点是SOC的始末状态约束。如果优化周期是24小时一般会要求 SOC(0) SOC(24)即一个周期后储能回到初始荷电状态。这个约束保证了调度方案的可持续性不会出现“今天把电全部放光、明天从零开始”这种不可复现的最优解。但要注意在共享储能场景里这个约束要对每个微网的虚拟储能块分别成立而不是对整个物理储能做一次就完。否则会出现某个微网把共享储能电量掏空其他微网无电可用的不合理结果。2.3 冷热电负荷与新能源出力的场景处理案例里每个微网都有独立的冷热电负荷曲线和光伏出力曲线。最理想当然是全年8760小时的数据都拿来做优化但那样上层遗传算法的每一代都要调用若干次全年的下层求解计算量直接爆炸。所以必须做场景缩减。我采用的思路是先用K-means聚类提取典型日。以电负荷、热负荷、冷负荷、光伏出力四个变量为特征把全年365天聚成四类典型日严寒期、寒冷期、过渡期、炎热期每类赋予不同的天数权重。聚类的结果是每个典型日提供24小时的数据曲线作为双层优化的输入场景。有人问用4个典型日代替全年误差会不会很大我在项目里做过校验把优化出的容量配置放回全年8760小时中逐时仿真用全年数据重新计算运行成本与典型日外推的运行成本相比误差基本控制在5%以内。对规划层面的容量决策来说这个精度完全可以接受。但有一个前提聚类时一定要把光伏出力和负荷分开处理不能合并成“净负荷”。因为冷热电三联供系统的核心就是电、热、冷的时序互补一旦合并热负荷与光伏出力之间的时序耦合关系就被破坏了典型日后面的调度结果会失真。这是我做场景缩减最深的一条体会。2.4 热平衡与冷平衡中的时序耦合问题冷热电多微网建模中比电量平衡更难处理的是热力和冷量的时序平衡。电力系统本质上是瞬时平衡这一秒发多少下一秒就要用多少有储能另当别论。热力系统有热惯性冷系统也有蓄冷能力这些时间尺度上的错配必须依靠储能或建筑热惯性来缓冲。项目里我给每个微网配置了蓄热罐和蓄冷罐蓄热罐直接连接燃气轮机余热和热负荷的汇流母线蓄冷罐则连接电制冷机与吸收式制冷机的输出端。建模核心是用“源-网-荷-储”四条母线思维拆解能量流电母线光伏、燃气轮机、储能、上级购电、电负荷、电制冷机在同一母线上平衡热母线燃气轮机余热、燃气锅炉、蓄热罐、热负荷平衡冷母线电制冷机、吸收式制冷机、蓄冷罐、冷负荷平衡每一条母线都是独立的平衡方程但能源设备在设备层完成耦合——燃气轮机同时接入电母线和热母线吸收式制冷机同时接入热母线和冷母线。冷热电多微网的全部建模复杂度就在这里你不需要一个特别复杂的整体矩阵方程只需要把这些“设备层的耦合关系”和“母线层的平衡关系”分清楚模型自然就清晰了。3. 双层优化配置的建模与求解实现3.1 上层容量配置的优化模型上层的优化变量是所有微网的设备容量加上共享储能电站的容量。具体来说包括每个微网的燃气轮机装机容量、燃气锅炉容量、吸收式制冷机容量、电制冷机容量、光伏装机容量、蓄热罐容量、蓄冷罐容量以及共享储能电站的总容量。目标函数是系统的年综合费用最小。我拆分成三大部分年综合费用 年化投资成本 年运行成本 年储能服务费用其中年化投资成本要把设备造价按照寿命年限和贴现率折算成等年值。这个折算公式用最基础的年金系数法C_inv_a C_inv × r × (1r)^n / [(1r)^n - 1]r 是贴现率我案例里取8%n 是设备寿命电源设备20年储能10年。不同寿命的设备要分别折算不能图省事合并计算。等式的关键约束包括各类发电和制冷设备容量上限来自土地面积、并网容量、投资预算、共享储能电站的总容量上限、以及对每个微网设定一个最低新能源渗透率或自给率指标。这些约束在遗传算法的适应度函数里以惩罚项形式出现违反限制就得在目标里加惩罚值这也是保证算法最后输出的是可行解的关键手段。3.2 下层典型日的运行调度模型下层的任务是在给定容量配置下对每一类典型日求解该日的运行策略目标是最小化日运行成本然后根据典型日天数权重折算为年运行成本反馈给上层。日运行成本包含从上级电网购电的电费、各微网内燃气轮机和燃气锅炉的燃料费、以及储能电站充放电产生的服务费用。如果储能电站也是决策主体的资产那么充放电的“费用”本质上是内部结算在项目里为了体现储能电站的独立经营属性我给它设置了充放电价差结算。约束条件就是第2章里建立的全部等式和不等式约束包括每条母线的能量平衡、设备爬坡约束、储能SOC递推、储热罐/蓄冷罐的容量约束、以及燃气轮机启停的整数约束。所有典型日独立求解但共享储能电站的物理容量要同时支撑多个微网的使用所以多个典型日之间还有一层跨场景的容量分配一致性约束这一点在实现上是用上层传入的储能总容量来统一限量实现的。3.3 双层迭代求解的实现细节项目的最终实现是遗传算法嵌套求解器的方案。外层遗传算法的任务是全局寻优容量配置。一个个体就是一组容量配置方案用实数编码比如 [GT1容量GB1容量EC1容量AC1容量PV1容量TST1容量CST1容量GT2容量……ESS总容量]多微网就多组一起排。种群规模取40迭代80代交叉概率0.85变异概率0.1采用锦标赛选择加精英保留策略每代保留最优的两个个体。内层在遗传算法的每次适应度评估时被调用。把上层给出的容量配置连同某一典型日的光伏和负荷数据一起交给下层模型用Gurobi或CPLEX求解混合整数线性规划问题。求解完毕把最优运行成本返回给外层作为适应度的一部分。这里最大的坑是计算时间。40个个体的种群每代要跑80次下层求解每个下层求解对应4个典型日一共是 40×80×412800 次混合整数线性规划求解。如果每个算例平均耗时5秒单次运行就需要17.7小时。这在实际项目中是不能接受的我用的提速手段后面专门说。3.4 求解效率调优的实战手段第一个手段是给内层求解器提供初始可行解。利用上一代中同一典型日的解作为热启动通常可以让内层求解时间从5秒降到1.5秒左右。实现方式是用上一次求解的变量值构造一个MIP startGurobi特别吃这一套很多场景下冷启动和热启动能差出一倍以上的时间。第二个手段是固定整数变量。多微网运行调度里最耗时的是燃气轮机启停这个0-1变量的大规模搜索。我的做法是——先用连续松弛算一版粗略的启停序列然后把启停变量固定住只优化连续变量算出边界参考值再放回完整模型做最后的MIP求解。这样虽然不能保证严格最优但实际算下来目标值偏差控制在0.5%以内时间减少了40%以上。第三个手段是对称性消除。多微网内相似设备会让整数变量存在对称性求解器在对称空间里花费大量时间。我给每台同类设备按编号设定一个有序约束比如机器的启停标志按负荷率排序避开对称搜索。经过这些手段单轮双层迭代时间从原来的18小时压缩到了6小时以内。当然如果后面有朋友要用更复杂的非线性模型建议再引入Benders分解或者目标级联分析法那又是另一个大的工程课题。4. 算例系统搭建与结果对比分析4.1 算例系统的参数准备为了把优化方法落到可验证的层面我搭了一个三微网组成的冷热电多微网系统。三个微网分别模拟电子制造园区、食品加工园区和商业综合体负荷特性区别很大电子制造园区全天电负荷平稳冷负荷白天高、夜间低热负荷少光伏装机比较充裕食品加工园区有稳定的热负荷和冷负荷蒸汽需求全天不断用电曲线波动大商业综合体白天电负荷和冷负荷双高峰夜间几乎没有负荷热负荷主要用于生活热水。每个微网之间的距离不远共享储能电站放在三者的几何中心用直流或交流线路接入各微网。储能电站的服务费率按容量费和电量费两部分收取容量费按每月每千瓦时价格结算电量费按充放电电量分别计价。参数设定参考了当前主流独立储能电站的运营数据。4.2 基准场景下双层优化的结果先跑一个基准场景储能电站服务费取市场价格光伏渗透率目标设为30%。优化后得到结果我挑几个有代表性的部分来说。三个微网最终配置的燃气轮机容量差别非常明显电子制造园区选了2.8兆瓦食品加工园区选了4.1兆瓦商业综合体只选了1.5兆瓦。这和负荷特性完全对应——食品加工园区热负荷稳定且需求大大型燃气轮机可以持续高负载运作余热利用率高商业综合体冷热负荷都集中在白天夜间需求太低大机组反而拉低平均负载率。共享储能电站优化出来的最优容量是14兆瓦时。这个数字看起来不小但如果三微网各自独立建储能总容量至少要19兆瓦时才能达到同样的调节效果。也就是说共享模式比独立模式节省了约26%的储能投资。原因不复杂三个微网的负荷峰值时段错开了共享储能可以在不同时段服务不同微网避免了每个微网都为峰值单独备容。年综合费用方面与不配置储能电站、各微网独建储能的方案相比共享储能加双层优化的综合费用降低了约15.3%。其中大头来自储能投资的节省和运行效率提升另一部分来自上层配置与下层运行更好的匹配设备基本都在高效区间运行。4.3 不同服务模式下储能电站的价值比对项目里做了一个很重要的对比分析储能电站以三种模式参与系统看双层优化结果有什么变化。第一种是“纯容量租赁”模式。储能电站只向微网提供容量微网自行调度充放电服务费按容量按月计费。这时优化倾向于配置大容量储能因为容量费相对电量费便宜微网愿意多用。第二种是“峰谷套利分成”模式。储能电站负责调度策略微网只是被动享受削峰填谷带来的电价节省收益由储能电站和微网按比例分成。这种模式下优化出的储能容量会小一些因为储能电站自身也要规避风险不会过度配置容量。第三种是“综合服务”模式。储能电站既提供容量支撑又参与微网的紧急备用和功率平滑。结果显示综合服务模式下系统综合费用最低储能利用率最高。这三种模式的对比结果让我意识到一个关键点储能电站服务的商业模式直接影响优化结果。如果目标函数里储能电站的收益函数设定不同最优容量配置会差出30%以上。这提醒后来的研究者冷热电多微网系统优化不能只盯着物理模型商业模式对技术方案的塑造作用必须纳入优化框架。4.4 敏感性分析储能租赁价格和光伏渗透率最后算了一组敏感性分析主要考察储能租赁价格和光伏渗透率目标对优化结果的影响。储能租赁价格从0.2元/千瓦时涨到0.6元/千瓦时共享储能的最优配置容量从20兆瓦时下滑到9兆瓦时左右。这很合理储能电站的容量费越高微网就越倾向使用本地燃气轮机和电制冷机来平衡负荷而不是依赖储能。这说明储能电站服务的定价策略对配置决策有决定性影响如果服务商定价过高共享储能的模式优势会完全被价格劣势吞掉。光伏渗透率目标从20%提到40%时系统要额外配置电储能来消纳光伏的午间出力同时增加电制冷机容量来利用光伏发电时段多出来的电力制冷。这里出现了一个有趣的跨界联动为了消纳光伏优化配置出来的不是更多储电而是更多蓄冷罐。因为光伏多出的电力用来驱动电制冷机、把冷量存进蓄冷罐夜间再释放出来等效于把电储能转换成了冷储能单位成本低得多。这个结果让我第一次真切感受到冷热电多微网的价值——多能互补不是停留在论文里的概念在数学优化结果里体现得淋漓尽致。5. 实操中的难点与避坑记录5.1 遗传算法在下层求解时时快时慢要关注模型数值尺度过程中遇到一个非常隐蔽的效率损耗内层模型变量尺度差距过大。燃气轮机功率动辄兆瓦级而蓄热罐的损耗系数在零点零几的量级求解器内部的预处理和数值运算会额外花大量时间。解决方法是把所有功率变量都统一到标幺值或同一量纲范围内。我在项目里把所有设备功率统一除以系统基准功率使变量基本落在0.1到10的区间内内层求解速度立刻提升这种情况持续了整个项目周期再也没有出现过明显的数值不稳定现象。5.2 遗传算法的收敛判据不能只看代际最优值不少文献里写“算法在80代收敛”实际做的时候会发现容量配置的目标函数值曲线在20代之后几乎不再下降但解空间里个体仍在剧烈变化。只看目标函数值容易让程序提前停止错过更优解。我的做法是记录每一代最优个体对应的设备容量向量计算相邻代之间的欧氏距离当容量向量变化连续超过10代小于1%时才判定遗传算法真正收敛。这个双判据在实际项目中避免了至少两次提前终止。5.3 线性化处理的范围要克制项目最初想把燃气轮机的非线性能效曲线“尽量精细”地分段线性化分了六段甚至八段。结果是内层模型多了许多0-1变量求解时间成倍增长。后来做精度校核发现六段跟三段线性化在最终容量配置上的差异不到2%。所以遇到非线性先做三段或四段线性化算完再看灵敏度必要时加段数不要一开始就上高精度。5.4 多微网协调中的数据隐私问题虽然这是一篇偏技术方案的分享但工程落地时我一定会提一嘴多微网之间的数据共享是有商业敏感性的。每个微网的负荷数据、运行成本数据都是运营方的核心运营信息在双层优化框架中上层需要下层反馈运行成本这意味着微网要把成本函数给规划方。为解决这个问题我采用了一个轻量化的信息隐藏策略各微网向上层反馈的不是完整成本函数而是运行成本对储能容量分配的一阶灵敏度信息。上层用灵敏度近似优化容量分配迭代过程中微网不需要暴露内部逐时段的数据。这个过程本质上是简化版的目标级联分析虽然没有理论上的全局最优保证但在工程上足够实用且能真实满足各方对数据隐私的要求。如果哪位朋友在项目里真正做落地一定要提前把数据交互边界和权限定清楚不然后面协调成本非常高。6. 最后分享几点做这类项目的建议做完整套冷热电多微网双层优化配置最大的感受是这个项目真正的难点不在数学推导而在“把物理过程、商业模式和优化算法对齐”。很多单层优化论文漂亮但工程上无法落地就是只考虑了物理约束、忽略了商业逻辑。我个人总结三点建议给准备做类似项目的朋友第一建模之前先和储能电站运营方、微网运营方各聊一次搞清楚各方的成本边界和收益边界在哪里。目标函数里每一个费用项都对应一个真实主体的真实财务行为模型才能算得准。第二不要一开始就追求高精度非线性模型。先用线性化模型把整个双层框架跑通再针对关键设备补充精细模型这样迭代效率会高很多。反过来做的话前期会花掉大量时间最后却发现框架本身有问题需要推翻。第三结果分析要围绕“为什么是这个配置”来展开而不是只汇报“最优值是多少”。工程决策者真正关心的是投资背后的驱动因素是什么储能租赁价格涨了会怎样影响配置、光伏渗透率目标提高以后储能要怎么补这类敏感性结论才是规划决策真正需要的输出。这个项目做完之后我把这套方法做成了标准流程场景缩减、双层建模、嵌套求解、敏感性分析四步曲。下一步计划把现有算法扩展到考虑极端天气下的鲁棒优化同时引入更多类型的储能——比如压缩空气储能和氢储能做混合储能服务。这些扩展能否走通还是要回到这次项目验证过的核心思路物理模型、商业模式、优化方法三者必须同步迭代任何一块慢半拍项目就会卡在那里不动。
返回列表