ARTICLE DETAIL

资讯详情

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

机组组合中的经济与安全平衡:从最优方案到SCUC工程实践

机组组合中的经济与安全平衡:从最优方案到SCUC工程实践 凌晨两点调度大厅的屏幕刚刷出新一轮机组组合结果。报价单上总购电成本比上一版方案省了280万但备用率只剩3.5%。旁边的老调度员瞄了一眼嗯了一声“排得挺漂亮可真要按这个开N-1一来你敢赌吗”我当时愣了一下然后意识到这恐怕就是机组组合里最让人纠结的地方——经济最优和电网安全看着像两个目标其实是同一道题的两张脸。机组组合Unit CommitmentUC对做过电力调度、发电计划、电力市场出清的人都不陌生。它要回答的核心问题是未来若干个时段内哪些机组开机、哪些停机、每台发多少电才能在满足负荷需求和一堆电网安全约束的前提下让购电成本最低。听着像一道标准优化题但落地的时候“经济最优”这种词总是让人心里发虚。因为真正运行起来你会发现省钱的方案未必敢用安全的方案未必省得了钱。这篇就写写我这些年做机组组合、安全校核和调度计划时踩出来的体会重点聊聊为什么经济最优方案里总是藏着各种暗流以及怎么把安全和成本放进同一个模型里谈。1. 为什么机组组合的“最优”总是让人不敢拍板1.1 这不只是“算个最低价”而是把0-1开关和连续出力捏在一起第一次接触机组组合的人很容易把它当成一个加大版的“经济调度”Economic DispatchED。经济调度只做一件事在机组开停机状态已经固定的前提下把所有机组的出力调到边际成本相等的位置让总燃料成本最低。而机组组合在它前面多加了一层决策——决定哪台机组开机、哪台停机。这一层看上去只是多了个“开/关”的选择但问题的性质完全变了。拿一台燃煤机组举例。它参与组合时成本不只是发电煤耗还有启动成本。启动一台大型火电机组按热态、温态、冷态的不同可能要烧掉几万到几十万元等效的燃料时间也可能要几个小时。所以机组组合的目标函数里除了每台机组在某个时段的煤耗成本曲线之外还有一类特别关键的成本项启动成本startup cost有时还要算停机成本shutdown cost。这就在数学模型里引入了整型变量——机组是开还是停这是一个0-1变量。整型变量一出现问题就变成了混合整数规划MIP。你不能简单地对所有机组按报价从低到高排序然后一路排到满足负荷为止。因为也许一台报价低的机组昨晚刚停再启动要花一笔大钱而另一台报价略高的机组本来就热着顺势带负荷更划算。再加上最小开机时间、最小停机时间、爬坡速率这些物理约束问题瞬间变得像一个大型排班游戏既要算“这小时谁在顶上”又要算“下一小时谁来得及顶上”。这也是我常说的机组组合不是一个求解器按一下就出结果的问题它本质是一个“时间维度上的决策问题”。如果只盯着某一时段的购电成本最低很容易忽略前后时段的启停联动。比如凌晨低谷时段负荷很低经济逻辑会劝你把高成本机组全停了只留几台大机组低负荷运行。但如果你不考虑这些机组的最小技术出力、不考虑备用容量那到了早高峰负荷爬起来热机来不及并网你会眼睁睁看着系统缺电。这是第一个“暗流”经济最优的局部解经常在时间维度上是脆弱的。1.2 “纸面成本”和实际运行成本差在哪做机组组合的人都知道模型算出来的总费用和月底财务报表上的真实成本往往差着一截。这中间有一个很容易忽略的损耗启停磨损和寿命折损。理论上机组启动一次算一次固定费用但如果机组频繁启停或者刚启动就被压着深度调峰设备寿命损耗、检修频率、厂用电率都会明显上升。这些成本在机组组合模型里要么不体现要么折算得特别粗糙。还有一个更隐蔽的差异来自燃料价格波动和机组性能老化。模型里用的煤耗曲线通常来自机组投运时的设计参数或者厂家给的定型数据。但实际机组烧了几年煤之后热效率会下降煤耗率可能比设计值高几个百分点。如果你把老机组当成“经济机组”排序系统会倾向于让它多发电结果实际成本远超模型预测。这类误差在单一机组上看不出来放在全系统几百台机组里每天累计下来就是一笔不小的数目。我见过不少刚入行的工程师看到模型输出的“最优方案”就当成必然结果直接提交。老调度员的经验是模型结果只能当参考真正能不能投还得看备用水平、断面潮流、电压支撑、频率响应这些“隐性约束”过不过关。2. 排班表里的安全成本往往比买电价更贵2.1 N-1原则电网不是“正常运行不出事”而是“最坏情况也别倒”电网安全运行有一条绕不开的基本原则叫N-1。翻译成大白话就是系统里有N个主要元件线路、变压器、发电机组等任意一个元件突然退出运行系统还能保持稳定、不损失负荷。这个原则不是学术要求而是调度规程里必须满足的底线。但“满足N-1”这句话落到机组组合里就没那么轻松了。你安排某台大机组满发看起来很经济但如果它突然跳闸损失的出力有没有别的旋转备用能瞬间顶上潮流会不会转移去过载另一条线路电压会不会跌穿稳定极限一旦把这些追问摆上台面你就发现经济最优方案往往在N-1校核面前会灰头土脸。举个典型场景。某断面有两条220千伏线路经济最优会把断面输送功率推到极限因为这样可以少开本地高成本机组多接纳外来低价电。但如果其中一条线路因为雷击跳闸另一条线路瞬间要承担全部潮流很可能立刻过载调度员只能紧急切机减负荷。这种事故的代价用省下来的电价根本换不回来。N-1为什么是机组组合里最费钱的约束因为它相当于逼着你“买保险”。为了应对任意一台大机组故障你得额外开一台机组或者保留足够的旋转备用哪怕这台机组在正常场景下不需要发电。这就是安全成本的本质你花钱买的是“最坏情况下的底气”。2.2 备用、爬坡、调频看不见的“备用资源”要算清楚电网运行讲究三个东西有功平衡、无功平衡、频率稳定。机组组合直接决定有功电源的开机方式所以备用问题是它绕不开的坎。先说旋转备用。它指的是已经并网、可以快速增加出力的机组容量。一般来说系统要保证最大单机故障后旋转备用够补上缺口。而安全约束机组组合里旋转备用通常要按“最大单机容量负荷预测偏差新能源出力偏差”来留。问题是经济最优方案往往倾向于把所有机组压到尽量低的出力和尽量高的效率点结果旋转备用空间被挤得所剩无几。再说爬坡。一台燃煤机组每分钟能增加的出力上限是有限的比如说2%额定容量。如果方案里把它从晚上10%出力调到早上8点80%出力中间必须留足爬坡时间。经济最优只算了电量平衡却不一定会算“速度够不够”。比如光伏大发时午间火电被压到很低傍晚光伏出力骤降火电需要在两三小时内爬升几百兆瓦。如果机组组合没有考虑爬坡率约束这个“晚高峰爬坡困局”就会把系统逼到接近极限。调频则是另一个容易被数字化模型掩盖的问题。经济调度常用15分钟或1小时的分辨率但频率波动是秒级的事。开机组合偏少、惯量水平偏低时一次普通的负荷扰动就可能让频率跌到低频减载动作的门槛。很多系统里会对“最小开机台数”做硬性规定原因就在于要保证足够的惯量和调频资源这跟纯粹“买便宜电”的逻辑是冲突的。2.3 电压支撑和惯量水平模型里不写事故里才显形有些约束你可以写进模型但有些因素很难用简单的线性约束表达却又真实影响安全。电压稳定就是典型。我曾经碰到过一个区域本地负荷很重但网架结构比较薄弱需要附近一台老火电机组开着机、发着无功来支撑电压。从费用上看那台机组报价很高经济上“没理由”开但电压校核又会告诉你不开它无功不够电压会掉到安全范围以下甚至可能电压崩溃。最后只能把它排上多花了不少钱。这个钱很难在目标函数里体现但调度员会给出一个非常实际的解释电压趴了负荷全丢那才是最大的经济损失。惯量水平也是类似。新能源机组通过电力电子变流器并网它们不提供机械惯量如果系统把传统同步机组压得太低系统总惯量就低。惯量低意味着什么意味着同样一个有功扰动频率跌落速度会更快、最低点更低。低频减载门槛一旦被击穿就会开始切负荷。这类风险在日前机组组合里很难精细建模但一个有经验的分析师会在结果里手动检查全网开机机组的综合惯量是否足够关键节点是否有足够的电压支撑。这一条模型给不了答案只能靠人把关。3. 三个真实场景复盘省钱省出来的“暗流”3.1 深夜风电大发的“廉价陷阱”这几年新能源装机涨得猛很多省份的负荷低谷期受风电大发影响净负荷负荷减去新能源出力会被压到很低。机组组合在这个时段最喜欢干的事就是把火电压到最小技术出力甚至停掉几台把空间让给风电。这事听起来很合理风电边际成本接近零能发就发省煤。但实际运行中最惊险的一类情况恰恰发生在凌晨低谷。有一次凌晨两点多风电出力突然从1800兆瓦掉到900兆瓦时间只有半个多小时。而这时候网内火电大部分都在最小技术出力附近开足了停机的那几台还在冷态启动中根本爬不上去。调度员手里能用的爬坡容量和备用容量几乎为零只能看着频率往下走紧急拉停一部分风电同时紧急启动燃气机组。最后是压着安全底线稳住了但那次之后我再看到“低谷大量停机、风电顶满”的方案都会习惯性地多问一句如果风突然没了后备方案在哪里这个场景说明经济最优的“低谷停机方案”其实是在用一个非常脆弱的假设——新能源出力稳定、预测准确。但现实里预测误差、波动性、反调峰特性都会让这个假设瞬间破产。安全约束的含义就是在这种最不利的偏差发生之前先把一定的爬坡和备用空间留好。这钱不能省。3.2 尖峰负荷时刻的“备用挤占”另一种暗流出现在负荷尖峰。夏季连续高温空调负荷上来了全网的负荷预测曲线中午和傍晚都顶着天花板。经济最优的目标函数会尽可能让全部机组满发以保证负荷平衡。看起来很合理但算备用时会发现备用全被“挤”没了。旋转备用的定义是“最大可发容量减去当前出力”。如果每台机组都顶着上限满发那么备用容量自然趋近于零。机组组合方案里确实可以单独画一条约束总备用要大于某个门槛比如“最大单机容量”或者“最大单机的容量预测误差”。但问题是如果模型里只算负荷平衡不算备用结果就会是一份“好看但危险”的满发方案。我印象很深的一次某省级电网晚高峰时曲线预计缺口不大经济最优把所有能开的机组全部安排满发。结果刚进入晚高峰一台60万千瓦的机组因为锅炉故障跳闸。因为备用不足频率瞬间下探低频减载第三轮都差点动作调度员在十几分钟内连续加急启动了两台燃机才扛回来。那次之后凡是我审方案必定先看“事故发生之后”的状态最大机组跳掉备用够不够频率能稳住吗潮流不越限吗这才是经济最优方案安全性的试金石。3.3 市场报价环境下“伪最优”的风险机组组合在电力现货市场里还承担着出清功能。此时目标函数里的“成本”是用各机组的申报价格计算的。这里有个容易让人掉坑的地方报价不等于真实成本。有些机组为了抢发电量会压着成本报价有些机组则会在高峰时段抬高报价试图获取超额收益。如果系统完全按报价最小化出清结果在物理上可能是“安全的”但经济上已经被报价策略牵着走了。更麻烦的是当报价曲线扭曲时“经济最优”方案里有些机组的利用小时会被安排得极不合理比如某些调节能力强的机组为省几分钱电价被安排停机而调节能力差的机组反而被迫满发导致系统实时运行的调节能力被削弱。针对这种情况实际的电力市场设计里会有“报价校验”“市场力缓解”等手段但调度侧的底线仍然是安全。我的体会是市场化的“经济最优”和物理上的“安全最优”之间永远需要安全约束来兜底——兜得越早越不会在市场出清之后才发现方案不可执行。4. 把安全写进求解器安全约束机组组合的工程化路子4.1 基本模型目标函数和约束到底怎么摆既然经济最优和安全缺一不可那工程上的解法其实很简单把安全要求变成约束和目标一起放进同一个优化模型。这个思路对应的就是现在各大电网都用的“安全约束机组组合”Security-Constrained Unit CommitmentSCUC。在一个标准的SCUC模型里目标函数长这样简化版min ∑_t ∑_i [ C_i(P_i,t) S_i · y_i,t SD_i · z_i,t ]其中C_i(P_i,t) 是机组i在时段t发出力P时的运行费用煤耗或报价S_i是启动费用y_i,t表示是否在t时段启动SD_i是停机费用z_i,t表示是否停机。约束至少包括负荷平衡∑ P_i,t 预测负荷还要叠加网损机组出力上下限P_min·u_i,t ≤ P_i,t ≤ P_max·u_i,t最小开/停机时间约束一旦开机必须维持若干时段一旦停机也不能立刻再启动爬坡约束相邻时段出力的变化幅度不能超过爬坡率系统备用约束旋转备用容量不小于最大单机容量或预测误差的一定比例断面潮流约束某些关键断面的潮流必须在安全限额以内包括正常运行方式和N-1方式频率安全约束比较新的一些做法最小惯量、最大频率跌落深度、一次调频备用等。这些约束看着多但它们分别对应前面讲的风险爬坡约束管风电波动备用约束管大机跳闸断面潮流管N-1惯量约束管频率稳定。没有这些约束的“经济最优”本质上就是在没有安全带的赛道上飙车。4.2 N-1和频率安全怎么“翻译”成可计算的约束工程上最难的部分是把N-1和频率稳定这类“场景类安全要求”翻译成约束。N-1不能直接写进线性模型因为它是“某个元件故障后”的状态量。实际做法一般有两类一类是“预想事故约束法”提前选定一批关键预想事故比如最大机组跳闸、最重要断面双回线中一回跳开为每种事故单独构建一套潮流约束再把这些约束一并加入模型另一类是“直流潮流灵敏度法”利用直流潮流模型的线性特性把元件故障导致的潮流转移用灵敏度系数表示从而把N-1约束转化为线性的安全约束。这两种思路各有取舍。预想事故约束法更直观但约束数量会爆炸灵敏度法计算效率高但对网架变化适应性差。实际工程系统里通常两者结合先在主问题里做不含N-1的机组组合求出初步开停计划再拿去安全校核如果某些N-1故障导致潮流越限就把越限线路对应的约束作为“割平面”加回模型再重新求解。这也就是业内常说的“迭代校核法”。它的效率高而且天然符合“先经济、后校验、再迭代”的调度习惯。频率安全约束的翻译更有意思。频率动态本质是时域仿真没法直接塞进MIP。但工程上会做简化把系统等值为单机模型用系统惯量、最大功率缺额、负荷阻尼等参数推导出扰动后的频率最低点表达式把“频率不低于低频减载门槛”转化为“系统惯量不小于某个值”或“一次调频备用不小于某比例”的约束。这样做出来的方案虽然对复杂频率动态只做了近似但已经在很大程度上把“别掉到切负荷边缘”这件事变成了可计算的约束。4.3 求解时间和工程使用的现实平衡把安全约束都塞进模型之后下一个坑就来了模型大得离谱。一次日前机组组合96个时段几百台机组加上线性的N-1约束、断面约束变量数以万计约束数以十万计MIP求解难度相当高。如果直接让求解器跑最优解可能几个小时都出不来而调度规程留给日前计划的时间窗口就那么一点。这里我学到的经验是不要把SCUC当成一个单纯追求数学最优的模型要把它当“在有限时间内给出可执行方案”的工程工具。实际使用的常见配置是时段粒度从1小时改到15分钟或5分钟精度大幅提高目标函数里把“启动成本”和“发电成本”分开分段线性化求解时先放松整型约束跑LP得到下界再用启发式或分支定界搜上界设置求解时间上限比如10分钟或者20分钟到了就取当前最好可行解配合Benders分解或者Lagrangian松弛把大问题拆成“机组组合主问题安全校核子问题”轮番推进。这里面最容易出问题的点是求解器给出的“最优解”虽然是模型意义上的最优但由于N-1约束经过线性化、线路限额经过保守化处理结果往往偏保守总费用会比无约束优化高出不少。此时业务方会来质问为什么比手工方案贵我的回答通常是这不是浪费是买安全。安全约束电网的钱就应该花在这上面。当然为了避免模型过度保守导致成本虚高限额的设定要有技巧——同一组参数差几个百分点最终方案可能差出几十万成本。所以凡是关键断面限额我都会找调度运行人员核一遍数据来源而不是只看台账。5. 调度台上真正管用的落地经验5.1 一定要盯的几个运营指标机组组合方案算出来是一回事投下去运行得好不好是另一回事。我在实际工作中会重点盯几个指标它们比“总费用最低”更能反映方案是不是真的有可执行性。旋转备用率实时旋转备用占负荷比例一般要留够比如2%~5%具体看网情机组启停次数一天内全网机组启停次数高频次说明方案在时间维度上不稳定设备磨损风险高断面重载率正常方式下关键断面潮流占限额的比例超过85%就要小心超过95%基本等于完全没有N-1裕度AGC调节里程自动发电控制实际调节了多少出力如果机组组合已经把调节空间压光AGC会一直顶着上限跑这是危险的信号爬坡能力盈余未来几个时段内在线机组的最大爬坡总量与预测负荷变化量的差值低于某个阈值就得预警。这些指标不用等事故后才看机组组合结果一出来就能算。我自己的习惯是任何方案发布前把这五个指标逐项过一遍任意一项亮红灯就必须回头检查模型或人工干预。宁可在方案阶段多花十分钟也别等到运行阶段被电话叫醒。5.2 我的“余度打法”别贴着安全边界跑做运行的人都知道安全分析算出来的限额是理论值实际运行环境的温度、风速、设备状态都会让真实限额变化。机组组合方案如果天天贴着安全边界排任何设备异常或天气变化都会让方案瞬间不可用。我的做法比较简单在SCUC里给关键断面限额乘以一个0.90的预控系数给备用约束再加一个固定裕量比如“最大单机容量预测偏差再乘1.1”。这样做的代价是多花一些电费但换来的是运行人员不必时刻提心吊胆地担心越限。这个系数不能设得太狠否则成本上升过多也会影响经济性一般要根据历史越限统计和天气状况动态调整。另一个我越来越常用的手段是“守备机组”策略。在负荷中心附近或者网架薄弱区域专门留几台机组它们的任务不是参与经济竞价而是顶着最小技术出力在网运行为电压支撑和事故备用兜底。表面看它们“不经济”但在关键场景里它们的价值远超过那点煤耗成本。这也算是调度员和老旧模型博弈的一种经验补丁。5.3 三个容易踩的坑第一频繁启停不是“模型问题”而是“设备问题”。很多机组组合优化为了省钱会让一些机组反复启停。模型里启动成本给得不高但实际机组每启停一次锅炉管壁就要经历一次热应力循环寿命损耗明显。业内对启停次数是有直接考核的方案里频繁启停的机组到了月底会被电厂投诉。所以我在目标函数里会对启动成本加一个惩罚系数宁可按实际费用的1.5倍计也不让它随意启停。第二只按典型场景做优化不覆盖极端场景。新能源出力预测偏差、极端天气下的负荷突变这类场景如果只靠单一预测曲线做机组组合结果一定是脆弱的。稳健的做法是生成多套场景比如风电高/低、负荷高/低做多场景鲁棒优化或者至少把最恶劣场景下的安全约束纳入校核。多了这个环节你能够避免很多“看起来最优、但只在一个平行世界里成立”的方案。第三日前方案好不代表当天没问题。机组组合一般做的是日前计划但现实中的负荷、风电、网架状态每分钟都在变。所以日内滚动校核和重新优化很重要——我所在单位目前执行的是“日前SCUC日内每四小时滚动更新实时调度校核”三层结构。这种“滚动更新”的思路比把未来24小时一次性锁死要灵活得多。很多“暗流”其实不是方案本身错了而是时间维度拉长之后信息已经变了方案却没跟着变。总的来说机组组合这道题的难点从来不在于“算出个最优值”而在于把一堆物理规律、安全底线、设备寿命和成本压力同时摆进一个可计算的模型并且还得让人敢拍板执行。我自己在调度台待久了越来越确定一件事一份好方案不是那个数字最小的方案而是“就算出点意外大家也都能睡得着”的方案。经济性和安全性之间的平衡与其靠拍脑袋不如靠一副把安全约束写进求解器的靠谱SCUC模型再加几条运行经验兜底。最后分享一个小习惯每次拿到新的机组组合结果我都会把最大一台机跳闸后的频率和潮流在脑子里过一遍这比任何软件自检都管用。
返回列表