3.3 经济调度与最优潮流:最少煤发够电 本节摘要:经济调度回答"负荷给定后,各机组间怎么分配出力使总耗量最小",经典答案是等微增率准则;考虑网络约束后升级为最优潮流。本节带你把三台机组的分配亲手迭代出来,并理清经济调度、机组组合、最优潮流三个概念的层次。 下午三点的排产题 下午三点,明日的负荷预测出稿:晚高峰预计六百兆瓦。你手边有三台可调机组,容量、煤耗特性各不相同。问题来了:六百兆瓦怎么分,全厂烧的煤最少?直觉的答案是"让效率最高的机组使劲发"——对了一半。机组的耗量特性是抛物线:出力越高,每多发一兆瓦时多烧的煤越多(边际耗量递增)。所以把所有负荷压给效率最高的机组,它工作在抛物线最陡的一段,边际代价可能已经反超别的机组。
本节摘要:经济调度回答"负荷给定后,各机组间怎么分配出力使总耗量最小",经典答案是等微增率准则;考虑网络约束后升级为最优潮流。本节带你把三台机组的分配亲手迭代出来,并理清经济调度、机组组合、最优潮流三个概念的层次。
下午三点,明日的负荷预测出稿:晚高峰预计六百兆瓦。你手边有三台可调机组,容量、煤耗特性各不相同。问题来了:六百兆瓦怎么分,全厂烧的煤最少?直觉的答案是"让效率最高的机组使劲发"——对了一半。机组的耗量特性是抛物线:出力越高,每多发一兆瓦时多烧的煤越多(边际耗量递增)。所以把所有负荷压给效率最高的机组,它工作在抛物线最陡的一段,边际代价可能已经反超别的机组。真正的最优解有一个优雅的结构:各机组的边际耗量彼此相等——这就是等微增率准则,本节的主角。
它在体系中的位置:本章前两节解决了"功率怎么流"与"电压怎么调",这一节把"经济"引入决策,是第三章三本账的最后一本;往后它直接铺向第八章——现货市场里机组报的还是自己那条边际成本曲线,出清价格就是系统的微增率。读懂本节,第八章的市场机制对你而言只是换了计价单位的同一道题。
为什么最优解必须边际相等?用反证法两句话说完。若两台机组的边际耗量不相等,把一兆瓦的发电任务从边际高的机组挪到边际低的机组,总耗量立即下降——说明当前解不是最优。挪动持续到两台机组边际相等(或某台触及上下限)为止,再也没有免费的挪动空间,这就是最优。数学上它是带等式约束的拉格朗日极值问题:对总耗量函数加负荷约束乘子求偏导为零,得到的一阶条件正是"各机组边际等于乘子"——这个乘子就是系统微增率,市场语境下的出清价。
两个工程细节让教科书公式落地时更丰满。其一,出力上下限:边际相等只对"没顶格"的机组成立,便宜机组顶到上限、贵机组压到下限都是常态,限幅处理不可省略。其二,网损修正:同一兆瓦负荷,由远端机组供给时路上损耗更大,真正要相等的是"计及网损后的边际",经典的协调方程用网损修正系数表达这一点——直观理解即电厂在负荷中心的机组占有天然优势。
| 问题层次 | 决策变量 | 时间尺度 | 求解难度 | 典型方法 |
|---|---|---|---|---|
| 经济调度 | 各机组出力(连续) | 五分钟到小时 | 低,凸优化 | 等微增率、拉格朗日乘子 |
| 机组组合 | 开哪些机组加出力(含整数) | 日前到周 | 高,混合整数 | 动态规划、混合整数规划 |
| 最优潮流 | 出力、电压、相角(全网) | 分钟级方式安排 | 高,非线性约束 | 内点法等非线性规划 |
三者的包含关系值得背下来:机组组合决定"谁上场",经济调度决定在场者"怎么分",最优潮流把网络方程与全部安全约束一并纳入,决定"分完之后网受得了吗"。经济调度是这一家族里唯一能手工演算的成员,也从它入手。
设三台机组的耗量成本都近似为二次曲线,边际成本为线性:边际等于截距加两倍曲率乘出力(单位取元每兆瓦时,便于第八章直接复用)。用二分法搜索系统微增率,让出力加总恰好等于负荷:
# 三台机组等微增率经济调度(含出力上下限) units = [ {"name": "一号机", "b": 200.0, "c": 0.10, "pmin": 50.0, "pmax": 250.0}, {"name": "二号机", "b": 220.0, "c": 0.06, "pmin": 50.0, "pmax": 300.0}, {"name": "三号机", "b": 245.0, "c": 0.04, "pmin": 50.0, "pmax": 350.0}, ] D = 600.0 # 系统负荷(兆瓦) def dispatch(lam): total, detail = 0.0, [] for u in units: p = (lam - u["b"]) / (2 * u["c"]) # 边际成本反解出力 p = min(max(p, u["pmin"]), u["pmax"]) # 出力限幅 detail.append((u["name"], p)) total += p return total, detail lo, hi = 150.0, 500.0 # 系统微增率的搜索区间 for _ in range(60): mid = (lo + hi) / 2 if dispatch(mid)[0] < D: lo = mid # 出力不足,抬高微增率 else: hi = mid # 出力过剩,压低微增率 lam = (lo + hi) / 2 total, detail = dispatch(lam) for name, p in detail: print(f"{name}: 出力 {p:6.1f} 兆瓦") print(f"系统微增率 = {lam:.2f} 元每兆瓦时,合计 {total:.1f} 兆瓦")
运行结果:一号机顶在二百五十兆瓦的上限,二号机带二百六十五兆瓦左右,三号机压着七十到九十兆瓦区间,系统微增率落在二百五十二元每兆瓦时附近。三个读数各讲一个道理:边际成本最低的机组并不无限多发,它顶到上限后边际任务自动交棒;二、三号机的边际恰好都等于系统微增率——它们是"自由机组",服从等分原则;三号机截距最贵却仍在发电,因为负荷太大、光靠前两台顶不住,这正是第二章说过的"容量与经济性的分工"。把负荷改成四百兆瓦再跑一遍,你会看到三号机直接压到下限——低谷时段贵机组停机或压出力,就是这行代码在现实里的样子。
等微增率有个隐含假设:网络无约束、网损与分配无关。真实电网里线路有热稳限额、断面有稳定极限,某条便宜的输电通道可能已经塞满——这时"最经济的分配"必须让路,或改由受端贵机组顶上,网络约束把均匀的边际价格撕出空间差异,这就是第八章节点电价的雏形。最优潮流把这件事做成一个统一的数学问题:目标函数取总耗量或总成本,约束既有每台机的出力区间,也有全网的潮流方程与每条线路的载流限值,变量从机组出力扩展到所有节点的电压与相角。求解用非线性规划算法(内点法是主流),规模上去了,但骨架仍是本节那套"目标、约束、乘子"的语言。
回望三本账的关系,还能提炼一个更深的观察:物理账(潮流)给可行性,电压账(无功)给质量,经济账(微增率)给最优性——可行性是下限,质量是约束,最优性是在两者围出的空间里找的。调度员的日常决策、市场出清的算法内核、规划部门的投资比选,用的都是同一个三层结构。把 3.1 到 3.3 连起来读,你得到的不是三个孤立工具,而是一整套"先问行不行、再问好不好、最后问多便宜"的决策语法。
⚠️ 值班现实:调度员日常面对的不是纯经济问题。晚高峰前联络线检修,断面裕度收窄,方式科会要求压低某通道潮流——经济性让位于安全性是常态而非例外。安全约束下的最优(安全约束经济调度)才是调度机构的日常工具,纯等微增率更多活在教科书与市场的报价逻辑里。
要点打包带走
三本账算完,电网平稳运行的全部日常你都过了一遍。但值班员的真正考验从来不在平稳时段——下一章,事故铃声响起。