4. 容量优化理论基础:优化问题建模、目标函数与约束条件、线性规划与非线性规划

各位同学,咱们今天聊聊容量优化的理论基础。说白了,就是怎么用数学语言,把“怎么配风储容量最划算”这个问题说清楚。

我刚开始做风储项目那会儿,总觉得拍脑袋定个容量比例就行。结果呢?要么储能配多了,投资回报率低得可怜;要么配少了,弃风率居高不下。后来我才明白,这事儿必须得靠优化理论来指导。

4.1 优化问题建模——把工程问题翻译成数学语言

优化问题建模,就是把一个实际的工程问题,抽象成一个数学表达式。我个人习惯,先问自己三个问题:

  • 决策变量是什么?——我要决定什么?比如风机容量、储能功率、储能容量。
  • 目标是什么?——我想达到什么效果?比如总成本最小、弃风损失最小。
  • 限制条件是什么?——有哪些约束?比如场地面积、投资预算、电网接入限制。

举个例子,一个简单的风储容量优化问题,可以这样建模:

决策变量:
  P_wind:风机额定功率(MW)
  E_storage:储能额定容量(MWh)
  P_storage:储能额定功率(MW)

目标函数:
  min 总成本 = 风机投资成本 + 储能投资成本 + 弃风惩罚成本

约束条件:
  1. 投资预算 ≤ 总预算上限
  2. 储能SOC在0~100%之间
  3. 弃风率 ≤ 允许的最大弃风率
  4. 风机出力 ≤ 当地风资源可发电量

嗯,这里要注意,建模的时候千万别把问题搞得太复杂。我在项目中遇到过,有人一上来就建了个几百个变量的模型,结果求解器跑三天三夜都算不出来。我的建议是:先建一个简单的、能跑通的模型,再逐步增加细节

4.2 目标函数与约束条件——优化问题的“方向盘”和“护栏”

目标函数,就是你要优化的那个指标。它就像方向盘,决定了优化方向。约束条件,就是你不能逾越的边界,像护栏一样。

4.2.1 常见的目标函数

在风储容量优化中,常见的目标函数有这几类:

目标类型 数学表达式 适用场景
成本最小化 min (C_wind + C_storage + C_curtailment) 投资决策阶段
收益最大化 max (R_electricity - C_total) 运营优化阶段
弃风率最小化 min (弃风电量 / 总发电量) 高弃风率地区
多目标优化 min (w1*成本 + w2*弃风率) 综合权衡场景

你想想看,如果只追求成本最小,那干脆不配储能算了,但弃风率会很高。如果只追求弃风率最小,那配个超级大的储能,成本又受不了。所以,多目标优化在实际项目中更常见

4.2.2 约束条件的分类

约束条件,说白了就是“你不能乱来”。我把它分成三类:

  • 物理约束:比如储能SOC不能超过100%,也不能低于0%。这是物理定律,改不了的。
  • 经济约束:比如总投资不能超过预算。这是老板定的,也改不了。
  • 运行约束:比如弃风率不能超过5%。这是政策要求,还是改不了。
我的经验:约束条件不是越多越好。我曾经在一个项目中加了20多个约束条件,结果模型无解。后来发现,其中两个约束条件是矛盾的。所以,加约束的时候,一定要检查它们之间是否冲突。

4.3 线性规划与非线性规划——两种求解思路

优化问题建好模了,接下来就是求解。根据目标函数和约束条件的数学性质,可以分为线性规划和非线性规划。

4.3.1 线性规划(LP)

线性规划,就是目标函数和约束条件都是线性的。说白了,就是所有变量都是一次方,没有平方、没有乘积、没有三角函数。

线性规划的优点:

  • 求解速度快,成熟算法多(比如单纯形法、内点法)
  • 一定能找到全局最优解
  • 对大规模问题友好

线性规划的缺点:

  • 表达能力有限,很多实际问题是非线性的
  • 比如储能充放电效率,其实是和功率相关的非线性函数

举个例子,一个简化的线性规划模型:

目标函数:min 0.5*P_wind + 0.8*E_storage + 0.2*P_storage
约束条件:
  P_wind + P_storage ≥ 10  (满足负荷需求)
  E_storage ≤ 5            (储能容量上限)
  P_wind ≥ 0, E_storage ≥ 0, P_storage ≥ 0

这个模型很简单,用Excel的求解器都能算出来。

4.3.2 非线性规划(NLP)

非线性规划,就是目标函数或约束条件中,至少有一个是非线性的。比如:

  • 目标函数里有平方项:min (P_wind² + E_storage²)
  • 约束条件里有乘积项:P_wind * η(P_storage) ≥ 10
  • 有三角函数、指数函数等

非线性规划的挑战:

  • 求解速度慢,尤其是大规模问题
  • 可能陷入局部最优,找不到全局最优
  • 对初始值敏感,不同的初始值可能得到不同的解
避坑指南:我曾经在一个风储项目中,用了非线性规划模型,结果求解器跑了两个小时还没收敛。后来我检查发现,是储能充放电效率的非线性函数写得太复杂了。我的建议是:能用线性近似的地方,尽量用线性近似。比如把效率曲线分段线性化,既保留了精度,又大大加快了求解速度。

4.3.3 如何选择?

我个人习惯,先试试线性规划。如果线性规划的结果和实际偏差太大,再考虑非线性规划。你想想看,线性规划求解只要几秒钟,非线性规划可能要几个小时。在工程实践中,时间成本也是成本

下面这张图,是我总结的优化方法选择流程:

优化方法选择流程图 开始:建立优化模型 目标函数和约束 是否都是线性的? 使用线性规划 能否线性近似? (分段线性化等) 线性近似后求解 使用非线性规划

嗯,这张图的核心逻辑就是:能线性就线性,不能线性就近似,实在不行再用非线性。这个原则,在我做过的十几个风储项目中,从来没出过问题。

4.4 小结

这一章的内容,说白了就是三件事:

  1. 建模:把工程问题翻译成数学语言,明确决策变量、目标函数和约束条件。
  2. 目标与约束:目标函数是方向盘,约束条件是护栏,两者缺一不可。
  3. 线性 vs 非线性:线性规划简单高效,非线性规划灵活但复杂。我的建议是,优先用线性规划。

记住,优化理论不是纸上谈兵。我在项目中见过太多人,模型建得漂漂亮亮,结果一跑就出问题。所以,动手实践才是王道。下一章,我会带大家用Python实现一个完整的容量优化案例,到时候你们就明白了。


公众号:蓝海资料掘金营,微信deep3321