风光储微电网的容量规划,听起来是个很“传统”的优化问题——建多少风机、装多少光伏、配多少储能,算清楚就行。但真正做过这个方向的人都知道,难点从来不在数学公式有多复杂,而在于:你算出来的“最优方案”,在真实运行场景里到底扛不扛得住。光照突变、风电波动、负荷峰值偏移、设备检修停运,任何一个不确定因素都可能让一套理论最优的配置方案在实际运行中变得不经济,甚至不稳定。
这篇文章想聊的核心问题只有一个:在风光储微电网容量规划中,当多种不确定性同时存在时,如何用“混合不确定性建模 + 鲁棒协同优化”的方法,得到一个既不过度保守、又能抵抗风险的容量配置方案。
如果你正在做微电网规划、园区能源系统设计、或者研究新能源接入下的容量优化问题,这篇文章会给你一条从建模到求解的完整思路,也会指出那些论文里不会明说、但工程中一定会遇到的坑。
1. 风光储微电网容量规划,难在哪里
1.1 传统规划方法的失效场景
先看一个典型场景:某工业园区要建设一个风光储微电网,园区负荷峰值约5MW,计划安装风电和光伏,并配置储能。按照传统思路,规划人员会收集一年的负荷数据和气象数据,取典型日曲线,然后用确定性优化方法计算出一个“最优”的风光储容量配比。
这个方案在理论上完全可行,但实际运行中会出现一个很尴尬的情况:夏季连续阴雨天,光伏出力仅为额定值的10%,而此时园区空调负荷恰恰达到全年峰值。原方案中的储能容量是按“日充放一次”设计的,面对连续三天的低谷发电期,储能容量根本不够支撑,最后只能从大电网购电,导致运行成本远超预期。
这就是确定性规划的局限:它把所有输入都当作已知量,但现实中的风光出力和负荷需求,本质上是随机过程。
1.2 不确定性才是微电网规划的“隐藏变量”
微电网容量规划中的不确定性,主要来自三个层面。
第一层是源侧不确定性。风电出力取决于风速,光伏出力取决于辐照度,而这两者都有极强的随机性和间歇性。风速的韦伯分布特性、光伏的云层遮蔽效应,都不是简单的“平均值”能描述的。
第二层是荷侧不确定性。负荷需求受到生产计划、季节变化、气象条件、甚至突发事件的影响。工业园区的负荷曲线可能有明显的周规律,但具体到某一天,偏差可能达到±20%以上。
第三层是系统层面的不确定性,包括设备故障、电价波动、极端天气事件等。这类不确定性发生概率低,但一旦发生,影响是灾难性的。
更关键的是,这三层不确定性是耦合的。光伏出力低的时候,恰恰可能是负荷高峰;风电的反调峰特性,会让净负荷曲线更加陡峭。把每种不确定性单独建模容易,把它们放在同一个框架下协同考虑,才是真正的难点。
1.3 为什么不能简单“留裕量”
有一个很常见的工程做法:在确定性规划的结果上,人为增加10%~20%的容量裕量。这种方法看起来简单粗暴有效,但实际上有两个问题。
问题一是成本不可控。裕量加多少,缺乏理论依据。加少了,风险依然存在;加多了,初始投资大幅上升,项目经济性变差。
问题二是裕量不能解决所有问题。有些风险是容量裕量无法覆盖的,比如极端天气导致的长时间出力不足,或者电价波动导致运行策略失效。这些都需要从规划层面重新设计。
从学术和工程实践的角度看,更系统的做法是:把不确定性显式地纳入优化模型,让优化算法自动找到“在不确定性下依然可行且经济”的配置方案。这正是鲁棒优化、随机规划、区间优化等方法要解决的问题。
2. 混合不确定性与鲁棒协同优化的核心概念
2.1 不确定性建模的三种主流方式
处理不确定性的主流方式有三类,它们各有适用的场景。
随机规划把不确定性参数建模为已知概率分布的随机变量,目标是最小化期望成本或最大化期望收益。它的优势是结果具有概率意义上的最优性,缺点是:第一,需要准确的概率分布信息,而在工程实践中,我们往往只有有限的历史数据;第二,期望值优化可能忽视小概率高风险事件。
鲁棒优化把不确定性参数建模为一个有界的集合,目标是找到在最坏情况下依然可行的方案。它的优势是对概率分布信息要求低,只需知道不确定参数的上下界,而且计算效率高;缺点也很明显:如果不确定性集合定义得过大,方案会过于保守,经济性差。
区间优化是鲁棒优化的一个特例,用区间来表示不确定参数的变化范围,模型直观,求解简单,但同样面临保守性问题。
从工程实践来看,没有哪种单一方法能完美处理微电网中的所有不确定性。这也是“混合不确定性”概念出现的现实背景。
2.2 什么是混合不确定性
混合不确定性指的是:在同一优化问题中,同时存在多种类型的不确定参数,它们需要用不同的建模方式来处理。
一个典型的场景是:风速和负荷需求具有明显的概率分布特征,可以用随机场景描述;而设备故障和极端天气的发生概率极低但后果严重,很难获得准确的概率分布,更适合用鲁棒集合描述。
那么问题来了:在一个优化模型中,如果一部分参数是随机变量,另一部分是区间变量,应该如何统一求解?
这就是混合不确定性建模要解决的核心问题。常见的做法包括:概率-区间混合模型、场景-鲁棒混合模型、以及基于机会约束的混合模型。它们的共同逻辑是:根据不同不确定性的信息获取难度和风险特征,差异化建模,而不是一刀切。
2.3 鲁棒协同优化的内涵
协同优化在这里有两层含义。
第一层是源网荷储的协同。容量规划不是只算风电、光伏、储能各自的安装容量,它同时应该考虑微电网的运行策略——储能充放电策略、需求响应策略、与主网的电量交互策略。规划和运行是耦合的,规划方案的好坏,必须放到运行层面去检验。
第二层是算法层面的协同。混合不确定性意味着模型中既有随机变量又有区间变量,这时候单一的求解方法可能失效,需要将随机规划的采样技术、鲁棒优化的对等转换、智能优化算法的全局搜索能力结合起来,形成一个协同求解框架。
所以,“混合不确定性鲁棒协同优化”本质上是一个三层结构:底层是风光储的系统建模,中间层是混合不确定性建模,顶层是鲁棒协同优化算法框架。把这三层打通,才能真正做出工程上可用的容量规划工具。
3. 容量规划问题的数学建模框架
3.1 决策变量与目标函数
先建立基本的优化模型框架。微电网容量规划中的决策变量通常包括:
- 风电机组的安装容量(或台数)
- 光伏阵列的安装容量
- 储能系统的额定容量和额定功率
- 储能系统的日充放电策略相关变量
- 微电网与主网的年购售电量
目标函数一般取系统全生命周期净成本最小化,包括初始投资成本、运行维护成本、燃料成本、购电成本、惩罚成本(如切负荷惩罚),减去售电收入。为了方便讨论,我们把目标函数写成:
min C_total = C_inv + C_om + C_purchase + C_penalty - C_sale其中:
- C_inv:风、光、储的投资等年值
- C_om:年运行维护成本
- C_purchase:年购电费用
- C_penalty:供电不足惩罚成本
- C_sale:向主网售电的收入
在实际工程中,目标函数要根据项目性质调整。如果是离网型微电网,供给侧严重受限,目标可能变成“在满足供电可靠性要求下投资最小”;如果是并网型微电网,目标则更多是综合经济性最优。
3.2 等式与不等式约束
容量规划模型中的约束条件,按功能划分主要有四类。
功率平衡约束是基本约束,任意时刻微电网内部功率必须平衡:
P_wt(t) + P_pv(t) + P_dis(t) + P_buy(t) = P_load(t) + P_ch(t) + P_sell(t)其中 P_dis(t) 和 P_ch(t) 分别是储能的放电和充电功率,P_buy(t) 和 P_sell(t) 是与主网的购售电功率。
设备运行约束包括:风光出力受限于实际资源条件和装机容量,储能充放电功率受限于额定功率,储能SOC受限于上下限。
可靠性约束是容量规划特有的约束。微电网必须保证一定的供电可靠性,常见指标是失负荷概率(LOLP)或电量不足期望(EENS)。在鲁棒优化框架下,可靠性约束通常转化为:在最坏不确定性场景下,失负荷量不超过某一阈值。
投资预算约束限制了总投资的规模。
3.3 不确定性参数如何进入模型
不确定性参数进入模型的方式,直接决定了问题类型和求解难度。
以光伏出力为例。在确定性模型中,P_pv(t) 是一个确定值。在随机规划模型中,P_pv(t) 有多个可能取值(场景),每个场景有一个概率。在鲁棒优化模型中,P_pv(t) 被约束在一个区间内:
P_pv(t) ∈ [P_pv_min(t), P_pv_max(t)]在混合模型中,我们可能有这样的设定:光伏出力用区间描述,负荷用随机场景集描述,储能设备故障用01状态变量描述。于是原问题变成一个包含区间参数、随机参数、整数变量的混合整数优化问题。这个问题的求解复杂度,比确定性模型高出一个数量级。
4. 混合不确定性建模的工程化方法
4.1 基于历史数据的区间构造
在工程实践中,不确定参数的区间可以通过历史数据来构造,而不是拍脑袋给一个±10%的裕量。
常用的方法是分位数法。假设我们有一年的光伏出力历史数据,对于每个时刻t,可以取出该时刻的历史出力样本集合,计算其2.5%和97.5%分位数,作为该时刻出力区间的上下界。这样构造的区间,能在概率意义上覆盖95%的历史情况,比固定百分比裕量更贴合数据特征。
这个方法的优点是简单直观,缺点是区间大小受历史数据质量影响大。如果历史数据只有一个月,覆盖不了季节性变化,那么构造出的区间就会明显偏窄,导致鲁棒性不足。
4.2 场景生成与削减
对于可以用概率分布描述的不确定参数,更精细的做法是场景法。场景生成可以采用蒙特卡洛采样、拉丁超立方采样、或者基于历史典型日的场景聚类。
生成大量场景之后,通常会做场景削减。原因很简单:优化模型场景越多,计算量越大。工程上常用的削减方法有快速前向选择法和K-means聚类法。核心思想是在保留场景多样性的前提下,用少数几个代表性场景代替原始的大规模场景集。
4.3 概率鲁棒混合建模
更高级一些的做法是把概率信息和区间信息统一到一个模型里。例如,我们要求:“在80%的随机场景下,最坏区间不确定性下系统不失负荷。”
这种约束表达的是:对大多数随机场景,系统要有抵抗区间不确定性最坏情况的能力;同时允许小概率场景下系统降额运行。这种建模方式比纯鲁棒优化更精细,经济性和鲁棒性之间能找到更好的平衡点。
这类模型的求解通常要借助两阶段优化框架。第一阶段确定容量配置,第二阶段在给定配置下,检验最坏场景下的运行可行性,并通过迭代修正配置方案。
5. 鲁棒协同优化的求解架构
5.1 两阶段优化框架
工程上处理“规划-运行”耦合问题,最常用的框架是“投资决策 + 运行模拟”两阶段优化。
第一阶段是投资决策层。决策变量是风、光、储的容量配置。这一层模拟的是规划人员在项目前期做的决策。
第二阶段是运行模拟层。给定第一阶段的容量配置,模拟微电网在多个典型场景(或最坏场景)下的运行情况,计算运行成本、失负荷量等指标,并将这些指标反馈给投资决策层。
两层之间通过迭代互动,最终收敛到一组既满足约束条件、又使综合成本最小的容量配置。
从数学形式上看,这个问题可以写成:
min_x (C_inv(x) + E[min_y C_oper(x, y, ξ)])其中x是投资决策变量,y是运行决策变量,ξ是不确定性参数。期望符号E和min_y嵌套在一起,是典型的两阶段随机规划形式。
5.2 列与约束生成算法
对于两阶段鲁棒优化问题,一种经典且高效的求解方法是列与约束生成算法(C&CG,Column-and-Constraint Generation)。
C&CG算法的基本思想是:将原问题分解为上层主问题和下层子问题。主问题求解给定不确定性场景下的容量配置方案,子问题则寻找最坏不确定性场景。如果子问题发现某个场景下系统失负荷或违反约束,就把这个场景对应的约束以列的形式加入主问题,重新求解。如此迭代,直至主问题和子问题的目标值收敛。
这种方法的优势在于:每一轮迭代都在逐步逼近最坏情况,而且主问题规模可控,能够利用成熟的商业求解器求解。
5.3 智能优化算法与求解器的配合
在实际工程项目中,模型规模和复杂性往往超过纯解析算法的能力范围。常见的做法是采用“智能优化算法 + 商业求解器”的混合架构。
外层用智能优化算法(如遗传算法GA、粒子群算法PSO、差分进化DE)负责搜索容量配置变量;内层调用商业求解器(如Gurobi、CPLEX)求解固定配置下的运行优化问题,并把运行成本返回给外层作为适应度值。
这个架构的优势是灵活。它不需要对模型做太多数学变换,就能处理复杂的非线性约束和混合不确定性。缺点是计算量大,因为每次外层迭代都要调用内层求解多次,所以通常需要并行计算加速。
值得注意的是,在学术论文中,智能优化算法往往直接作为最终求解器;但在工程实践中,更推荐只把智能优化算法作为全局搜索框架,把精确求解器作为子问题求解工具。这样既能保证搜索的全局性,又不会在局部问题上丧失精度。
6. 一个最小可行的工程实现框架
6.1 工具选型与架构
前面讲了很多概念和算法,这一节落到工程实现。下面给出一个最小可行的实现框架思路,不依赖特定商业软件,方便复现和二次开发。
推荐的工具组合:
- Python作为主语言
- NumPy/Pandas做数据处理
- Pyomo或PuLP做优化建模
- Gurobi/CPLEX做MILP求解(学术版免费,也可替换为开源求解器)
- Matplotlib做结果可视化
整体架构分为五层:数据层、场景层、建模层、求解层、分析层。
数据层负责加载负荷、风速、辐照度历史数据;场景层负责构造和削减不确定性场景;建模层用Pyomo搭建容量规划模型;求解层调用求解器计算;分析层输出配置结果和敏感性分析。
6.2 最小示例:确定性容量规划的Pyomo实现
为了快速上手,先给出一个简化的确定性容量规划示例。假设我们已知负荷曲线、风电和光伏的单位容量日出力曲线,需要优化风电、光伏和储能的配置。
# 文件路径:capacity_planning_deterministic.py import numpy as np import pyomo.environ as pyo # 1. 参数设置 T = 24 # 小时数 load = np.array([1000, 950, 900, 880, 920, 1100, 1500, 1800, 2000, 2100, 2050, 1900, 1800, 1750, 1850, 2000, 2100, 2200, 2150, 2000, 1800, 1600, 1400, 1200]) # kW pv_pu = np.array([0, 0, 0, 0, 0.05, 0.15, 0.35, 0.55, 0.75, 0.85, 0.9, 0.95, 0.9, 0.85, 0.75, 0.6, 0.4, 0.2, 0.05, 0, 0, 0, 0, 0]) # 光伏单位出力 wt_pu = np.array([0.6, 0.7, 0.5, 0.4, 0.3, 0.2, 0.15, 0.1, 0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.45, 0.35, 0.25, 0.2, 0.3, 0.4, 0.5, 0.55, 0.6, 0.65]) # 风电单位出力 # 经济参数 c_pv_inv = 3500 # 元/kW c_wt_inv = 6500 # 元/kW c_bat_inv = 1500 # 元/kWh c_bat_power = 1200 # 元/kW c_purchase = 0.8 # 元/kWh c_sell = 0.3 # 元/kWh life_cycle_factor = 0.1 # 投资等年值折算系数 c_om_pv = 50 # 元/kW/年 c_om_wt = 80 # 元/kW/年 # 2. 建立模型 model = pyo.ConcreteModel() # 决策变量:容量 model.P_pv_cap = pyo.Var(within=pyo.NonNegativeReals) # 光伏容量 kW model.P_wt_cap = pyo.Var(within=pyo.NonNegativeReals) # 风电容量 kW model.E_bat_cap = pyo.Var(within=pyo.NonNegativeReals) # 储能容量 kWh model.P_bat_cap = pyo.Var(within=pyo.NonNegativeReals) # 储能功率 kW # 决策变量:运行状态 model.P_buy = pyo.Var(range(T), within=pyo.NonNegativeReals) model.P_sell = pyo.Var(range(T), within=pyo.NonNegativeReals) model.P_ch = pyo.Var(range(T), within=pyo.NonNegativeReals) model.P_dis = pyo.Var(range(T), within=pyo.NonNegativeReals) model.SOC = pyo.Var(range(T), within=pyo.NonNegativeReals) # 3. 约束条件 def power_balance_rule(m, t): return (m.P_wt_cap * wt_pu[t] + m.P_pv_cap * pv_pu[t] + m.P_dis[t] + m.P_buy[t] == load[t] + m.P_ch[t] + m.P_sell[t]) model.power_balance = pyo.Constraint(range(T), rule=power_balance_rule) def soc_init_rule(m): return m.SOC[0] == 0.5 * m.E_bat_cap model.soc_init = pyo.Constraint(rule=soc_init_rule) def soc_update_rule(m, t): if t == 0: return pyo.Constraint.Skip return m.SOC[t] == m.SOC[t-1] + m.P_ch[t] * 0.9 - m.P_dis[t] / 0.9 model.soc_update = pyo.Constraint(range(T), rule=soc_update_rule) def soc_upper_rule(m, t): return m.SOC[t] <= m.E_bat_cap model.soc_upper = pyo.Constraint(range(T), rule=soc_upper_rule) def power_limit_rule(m, t): return m.P_ch[t] <= m.P_bat_cap model.power_limit_ch = pyo.Constraint(range(T), rule=power_limit_rule) def dis_limit_rule(m, t): return m.P_dis[t] <= m.P_bat_cap model.power_limit_dis = pyo.Constraint(range(T), rule=dis_limit_rule) # 4. 目标函数 def objective_rule(m): inv_cost = (c_pv_inv * m.P_pv_cap + c_wt_inv * m.P_wt_cap + c_bat_inv * m.E_bat_cap + c_bat_power * m.P_bat_cap) * life_cycle_factor om_cost = c_om_pv * m.P_pv_cap + c_om_wt * m.P_wt_cap oper_cost = sum(c_purchase * m.P_buy[t] - c_sell * m.P_sell[t] for t in range(T)) * 365 return inv_cost + om_cost + oper_cost model.objective = pyo.Objective(rule=objective_rule, sense=pyo.minimize) # 5. 求解 solver = pyo.SolverFactory('glpk') result = solver.solve(model, tee=True) print(f"光伏容量: {model.P_pv_cap.value:.2f} kW") print(f"风电容量: {model.P_wt_cap.value:.2f} kW") print(f"储能容量: {model.E_bat_cap.value:.2f} kWh") print(f"储能功率: {model.P_bat_cap.value:.2f} kW")这段代码的关键点有三个:
第一,运行变量和容量变量在同一个模型中优化,这体现了“规划+运行”联合优化的思想。
第二,储能模型采用了简化的能量更新逻辑,用0.9作为充放电效率,实际工程中需要更精细的效率曲线和SOC衰减模型。
第三,目标函数中投资成本通过等年值系数折算到每年,这是容量规划项目可行性分析的基本做法。
运行这段代码需要安装Pyomo和一个线性求解器。如果使用开源的GLPK求解器,可以执行:
pip install pyomo glpk求解结果会输出风电、光伏、储能的建议配置容量。注意这个结果是基于确定性数据的,运行过程中如果发现最优解不稳定或结果失真,通常是因为未考虑风光出力波动、负荷变化等不确定性因素。
6.3 如何把不确定性加入模型
在确定性模型基础上,引入不确定性需要做三件事。
第一步是场景生成。读取一年的历史负荷和气象数据,聚类得到多个典型日场景。每个场景包含负荷、光伏出力、风电出力的时序曲线,以及该场景出现的概率。
第二步是修改约束。确定性模型中的功率平衡约束需要每个场景分别写一次。也就是说,原来的单一负荷曲线,变成几十条甚至上百条场景曲线。
第三步是修改目标函数。确定性模型中的运行成本计算,需要对所有场景求期望值。投资成本不变,因为它只跟容量配置相关。
这时模型规模会成倍增加。以100个场景、24小时为例,功率平衡约束从24条变成2400条,运行变量也对应增加100倍。这就是为什么需要先进的求解算法——不是问题本身有多难,而是规模让求解器不堪重负。
7. 混合不确定性协同优化的完整流程
7.1 数据预处理与场景构建
完整的混合不确定性容量规划流程,第一步永远是数据的清洗和场景构建。流程步骤如下:
第一步,收集至少一年的负荷、风速、辐照度数据,分辨率推荐为1小时。如果条件允许,收集3-5年的数据能覆盖更多的极端情况。
第二步,做数据清洗,处理缺失值、异常值、坏数据。
第三步,通过K-means聚类或层次聚类等方法,提取典型日场景。
第四步,为每类典型日计算出现概率,构成场景集。
在场景构建完成后,还需要构造不确定性区间。同样基于历史数据,用分位数法计算每个时刻出力或负荷的上下界。这一部分会作为鲁棒优化的集合输入。
7.2 构建混合不确定性模型
模型构建阶段,推荐采用以下策略:
风、光、荷的不确定性用“典型场景 + 区间扰动”的混合形式描述。
典型场景解决“大概率形态”问题——系统在这些场景下运行,优化结果覆盖大多数情况。
区间扰动解决“最坏情况”问题——在给定场景基础上,允许出力在某个区间内波动,鲁棒优化确保即使在区间的最坏边界,系统也不会失负荷或违反关键约束。
这样做的好处是:模型的鲁棒性由区间部分保障,经济性由场景部分优化,两部分各司其职,不会出现“纯鲁棒优化导致方案过于保守”的问题。
7.3 迭代求解与方案验证
完整流程中的最后一个环节是求解和验证。推荐流程为:
第一轮,用C&CG算法或“遗传算法+求解器”混合框架求解模型,得到一个初步的容量配置方案。
第二轮,用蒙特卡洛方法生成大量不在训练场景中的随机场景,对容量配置方案做运行验证。统计失负荷概率和年运行成本。
第三轮,如果验证结果不满足可靠性要求,扩大不确定性集合重新求解;如果成本过高,说明保守度偏高,缩小区间或放松可靠性约束。
这个“求解-验证-调整”的闭环,是工程落地中真正关键的一步。只建模不验证的方案,无法处理输入数据分布与真实情况的偏差,有必要在实际工作中格外重视。
8. 常见问题与排查思路
在实践中,几个高频问题值得特别注意。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 求解结果中储能容量为0 | 储能投资成本过高,经济性不如购电 | 检查储能成本和购电电价参数 | 加入支持可再生能源消纳的约束,或调整收益模型 |
| 鲁棒优化结果过于保守 | 不确定性区间设置过大 | 检查区间构造方式,查看极端分位数 | 改用80%置信区间而非全域区间 |
| 模型求解时间过长 | 场景数量过多 | 检查场景数和整数变量规模 | 做场景削减,或先用确定性模型调通逻辑 |
| 收敛结果不稳定 | 智能优化算法参数不当 | 查看每代适应度曲线 | 调整种群规模和交叉变异概率,多次运行取最优 |
| 运行模拟中频繁失负荷 | 可靠性约束太弱 | 检查失负荷惩罚系数和可靠性约束阈值 | 适当增大惩罚系数或收紧可靠性指标 |
从这些问题的分布来看,真正让优化模型“失效”的原因,往往不是数学推导层面的问题,而是参数设置和场景构建层面的细节处理不到位。特别是不确定性区间的尺度把握,对结果影响极大。
9. 工程实践建议与最佳实践
9.1 从确定性模型起步
即使最终要做混合不确定性鲁棒优化,也强烈建议先从确定性模型起步。先把确定性模型的代码跑通,理解每个约束的实际含义,再逐步加入场景和不确定性区间。
原因很现实:混合不确定性模型的调试难度远高于确定性模型,如果没有基线结果做对照,出问题时很难判断是模型逻辑错误、参数错误还是求解器数值问题。
9.2 用数据驱动的方式构造不确定性集合
在工程实践中,不确定性集合的构造不应凭经验拍脑袋,而应该从历史数据出发。建议保留至少一年的历史数据,用滚动窗口的方式定期更新区间参数。
比如每季度更新一次光伏出力的区间参数,能兼顾季节变化特征,比一次性固定区间更贴合实际。
9.3 规划与运行的衔接
容量规划不是一次性的计算任务,它与微电网的运行策略是强耦合的。在实际项目中,建议把容量规划与运行优化放在同一套系统里迭代:规划系统输出配置方案,运行系统用配置方案做实时调度,调度结果再反馈给规划系统作为下一轮迭代的依据。
这种规划-运行闭环在学术上叫“规划-运行协同优化”,在工程上能有效避免规划方案脱离实际运行需求的问题。
9.4 不要忽视储能寿命模型
储能是微电网中成本最高、寿命最短的核心设备。很多容量规划模型把储能简化为“能量容器”,忽略了充放电循环次数对寿命的影响。这样算出来的最优容量配比,在实际运行中可能导致储能过度充放,寿命大幅缩短,全生命周期经济性反而变差。
更稳妥的做法是把储能寿命衰减模型纳入优化,至少也要在目标函数中增加储能更换成本项。
10. 总结
风光储微电网的容量规划,本质上是“在不确定性下做决策”的问题。混合不确定性鲁棒协同优化提供了一条兼顾经济性与鲁棒性的路径:用场景描述大概率风险,用区间描述最坏情况,用两阶段优化框架解耦规划与运行,用求解器与智能优化算法结合突破计算瓶颈。
对于正在做相关项目的读者,建议从这几点开始实践:先跑通一个确定性容量规划模型,再添加场景和区间,最后构建求解-验证闭环。数据分析能力和优化建模能力都是这一方向的核心技能,值得投入时间深入打磨。