3. 协调调度基础理论:优化问题三要素、线性规划与调度时间尺度
各位同学,今天我们来聊聊协调调度的基础理论。说实话,这部分内容看起来有点数学,但别怕。我做了这么多年能源系统,发现只要把三个核心东西搞明白——目标函数、决策变量、约束条件——剩下的就是套公式了。
3.1 优化问题三要素:目标函数、决策变量、约束条件
任何一个优化问题,说白了就是三件事:你想优化什么?你有哪些选择?你受什么限制?
我习惯用一个生活化的例子来开场。假设你是个调度员,手上有光伏、风电、储能、燃气轮机。你要决定明天每个小时怎么安排这些设备出力。嗯,这就是一个典型的优化问题。
3.1.1 目标函数
目标函数就是你要追求的那个“最好”。在能源调度里,最常见的目标是运行成本最小。当然也有追求碳排放最小、新能源消纳率最大等等。
举个例子:
min 总成本 = 购电成本 + 燃气成本 + 储能折旧成本 - 售电收益
我在项目中遇到过一件事:有个团队把目标函数设成了“成本最小”,结果调度方案把储能用得特别狠,电池寿命两年就报废了。后来我们加了一个“储能寿命惩罚项”,才算合理。所以啊,目标函数怎么设,直接决定了方案好不好用。
3.1.2 决策变量
决策变量就是你能控制的东西。在调度问题里,通常包括:
- 各机组出力(比如燃气轮机每小时发多少电)
- 储能充放电功率(充多少、放多少)
- 购售电功率(从电网买多少、卖多少)
- 设备启停状态(开还是关)
你想想看,决策变量选得对不对,直接影响问题能不能解。我见过有人把每个设备的每个小时都设成一个连续变量,结果模型大得跑不动。其实很多设备是离散的——要么开要么关,这时候用0-1变量更合适。
3.1.3 约束条件
约束条件就是那些“不能越界”的规则。常见的约束有:
- 功率平衡约束:发电 = 用电 + 储能充放电 + 网损
- 设备出力上下限:比如燃气轮机最小出力30%,最大100%
- 储能SOC约束:电池电量不能低于20%,不能高于90%
- 爬坡约束:机组出力变化不能太快
⚠️ 避坑指南
我曾经犯过一个低级错误:忘了加储能SOC的初始条件。结果模型算出来,第一天开始调度时电池是满的,但实际电池只有50%电量。那天的调度方案完全不能用。所以约束条件一定要和实际情况对得上。
3.2 线性规划与混合整数线性规划
搞清楚了三要素,接下来就是怎么求解。这里有两个核心概念:线性规划(LP)和混合整数线性规划(MILP)。
3.2.1 线性规划(LP)
如果目标函数和约束条件都是线性的,决策变量都是连续的,那就是线性规划。说白了,就是一条直线上的最优解问题。
举个例子:
min C = 0.5 * P_gas + 0.3 * P_wind
s.t. P_gas + P_wind = 100
0 ≤ P_gas ≤ 80
0 ≤ P_wind ≤ 60
这个模型很简单,用单纯形法几毫秒就解出来了。我建议初学者先从LP入手,因为好理解、好调试。
3.2.2 混合整数线性规划(MILP)
但现实世界哪有那么理想?设备启停、机组组合、储能充放电状态——这些都是离散的。这时候就需要引入整数变量,变成MILP问题。
比如:
min C = 0.5 * P_gas + 0.3 * P_wind + 100 * y
s.t. P_gas + P_wind = 100
0 ≤ P_gas ≤ 80 * y
0 ≤ P_wind ≤ 60
y ∈ {0, 1}
这里的y就是0-1变量,表示燃气轮机是否开机。如果y=0,P_gas只能为0;如果y=1,P_gas可以在0到80之间。
💡 个人经验
MILP求解比LP慢得多。我做过一个96时段、20台机组的调度模型,用CPLEX求解要跑十几分钟。后来我把一些整数变量松弛成连续变量,精度损失不到1%,但求解时间降到了30秒。所以,能用LP就别用MILP,这是工程上的铁律。
3.3 调度时间尺度:日前、日内、实时
调度不是一次性的,而是分时间尺度的。我习惯把它比作“计划-调整-执行”三步走。
| 调度类型 | 时间尺度 | 典型分辨率 | 主要用途 |
|---|---|---|---|
| 日前调度 | 提前24小时 | 1小时 | 机组组合、购电计划 |
| 日内调度 | 提前4-6小时 | 15分钟 | 修正预测误差、调整出力 |
| 实时调度 | 当前时刻 | 5分钟或1分钟 | 频率调节、紧急控制 |
3.3.1 日前调度
日前调度是“大计划”。一般在每天上午10点前,根据第二天的负荷预测、新能源预测,制定出24小时的机组启停计划和出力基线。
我建议用MILP来做日前调度,因为要考虑机组启停的离散决策。模型规模大,但求解时间可以接受(通常几分钟到十几分钟)。
3.3.2 日内调度
日内调度是“微调”。为什么需要它?因为预测不准啊。光伏预测误差可能达到20%,风电更夸张,有时候能差30%。
日内调度通常每15分钟滚动一次,只优化未来4-6小时。这时候机组启停已经定了,主要调整的是出力大小。所以用LP就够了,求解速度快。
🔧 实用技巧
我在做日内调度时,习惯把日前调度的结果作为“参考点”,然后加一个“偏离惩罚”项。这样既保证了经济性,又不会让机组出力变化太剧烈。说白了,就是在最优和稳定之间找个平衡。
3.3.3 实时调度
实时调度是“救火”。电网频率一波动,必须毫秒级响应。这时候数学模型已经来不及了,通常用PID控制或模型预测控制(MPC)。
实时调度不考虑经济性,只考虑安全性。目标函数变成了“频率偏差最小”或“电压偏差最小”。约束条件也简化了,只保留最关键的功率平衡和爬坡约束。
3.4 知识体系总览
下面这张图把本章的核心逻辑串起来了。你可以看到,从优化三要素出发,到LP/MILP求解方法,再到不同时间尺度的调度应用,是一条完整的链路。
好了,这一章的内容就到这里。记住三个关键词:目标函数、决策变量、约束条件。不管多复杂的调度问题,只要把这三样东西理清楚,剩下的就是选对求解器、调好参数的事。
📌 本章要点回顾
- 优化三要素:目标函数(成本/碳排放)、决策变量(出力/启停)、约束条件(平衡/限值)
- LP适合连续变量问题,MILP处理离散决策,能用LP就别用MILP
- 日前调度做计划(MILP),日内调度做调整(LP),实时调度保安全(控制)