ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

分布鲁棒优化驱动的电热综合能源调度:Matlab实现与场景缩减实战

分布鲁棒优化驱动的电热综合能源调度:Matlab实现与场景缩减实战 1. 为什么这个方向突然成了“高热点”一篇论文标题背后的技术演进1.1 电热综合能源系统先搞清楚我们在优化什么先把课题里的底盘概念讲清楚。所谓电热综合能源系统英文简称 IESIntegrated Energy System或者 EHSElectricity and Heating System核心就一句话把电网和热网放在同一个优化框架里做协同调度。我最早接触这个方向时最大的感受是——电网和热网完全是两种脾性的系统。电网讲究瞬时平衡电发出来基本就同步用掉网络约束里重点看潮流、电压、线路容量热网则有天然的“惯性”热水的比热容巨大管道本身就是一个储热容器热负荷波动几分钟甚至十几分钟都不会造成严重后果。这种物理特性的差异决定了约束建模方式完全不同。电网侧通常用 DistFlow 分支潮流方程近似节点注入功率满足有功、无功平衡热网侧则是温度、流量、压强的关系用节点热功率方程 管道温度损失方程来描述。最经典的热网模型是“质调节”模式供水温度恒定通过调节流量来匹配热负荷也有“量调节”模式流量相对稳定靠调节供回水温度来匹配。实际项目里质调节用得最多因为流量调节响应快、控制简单而温度调节水温变化有持续性。除了两大网络本身电网和热网之间靠耦合设备连接起来最常见的是热电联产机组CHPCombined Heat and Power还有电锅炉EBElectric Boiler、热泵HPHeat Pump、储热装置TESThermal Energy Storage。这些设备就是整个优化问题的“交叉路口”比如 CHP 机组发多少电同时就决定了出多少热二者是强耦合的电锅炉则把多余的风电转化成热能储存起来实现“以热定电”的解锁——这背后就是“深度调峰”和“东风弃风”的现实需求。优化目标不外乎让系统总运行成本最小比如燃煤机组燃料成本、购电成本、气价成本、弃风弃光惩罚成本有的还会加上碳排放成本。约束则包括网络潮流约束、机组出力上下限约束、爬坡约束、CHP 热-电可行域约束、热网节点温度/流量限制、储能运行约束等等。模型本质是一个混合整数线性规划MILP或者混合整数二阶锥规划MISOCP规模从几十节点到几百节点不等。1.2 从两阶段随机优化到分布鲁棒需求倒逼出来的技术路线说到为什么这个题目会火得先回顾不确定性优化几十年的演进路径。电力系统里所有预测都不完美——风电、光伏出力有随机性负荷预测有误差电价和天然气价格也不老实。早期大家用随机优化Stochastic ProgrammingSP比如典型的两阶段随机规划第一阶段做日前决策第二阶段在随机场景实现后做再调度。这种方法理论上很优美但有一个致命前提我们必须知道随机变量的精确概率分布。现实里哪来的精确分布最多拿历史数据拟合一个但拟合出来的分布和真实分布的偏差模型完全不考虑。后来大家又转向鲁棒优化Robust OptimizationRO它不要求概率分布只需要一个不确定集合uncertainty set比如盒式集合、椭球集合。优化目标是在集合内最坏情况下都可行且成本最低。这个方法规避了分布假设但保守性太强因为它把所有不确定参数都当成“同时到达极值”来处理。以风电为例鲁棒优化会认为每个时段风速都可能同时处于预测最差的那一侧实际系统哪有这么倒霉成本自然被拉得虚高。分布鲁棒优化Distributionally Robust OptimizationDRO就是这两条路线的折中产物。它的思路是我不需要知道精确的概率分布但我假设真实分布落在以经验分布为中心的某个“模糊集”ambiguity set内优化目标是找一组决策使得模糊集内最坏概率分布下的期望成本最小。也就是说既考虑了分布估计误差又明显比纯鲁棒优化乐观。这个“概率层面的鲁棒”思想正好卡在学术前沿和工程实用之间。从论文发表趋势看DRO 在 2018 年之后在电力系统里爆发尤其是能源系统调度方向用 Wasserstein 距离构造模糊集的那套方法几乎成了标配。所以标题里“高热点算法”这个词它确实配得上。1.3 数据驱动在哪个环节发挥作用很多人一听“数据驱动”下意识以为是深度学习那一套。但在分布鲁棒优化体系里数据驱动更多是指利用历史数据来构造模糊集而不是设计神经网络。换句话说数据驱动体现在“不确定性建模”这一环而非决策策略端到端学习。具体到模型里数据驱动体现在两个地方。第一用历史观测数据构造经验分布作为模糊集的“球心”。比如过去一个月风电出力的历史样本构成了一个离散经验分布。第二用数据量来决定模糊集的半径——样本越多我们对真实分布的估计越有信心模糊集可以收窄保守性下降样本少模糊集就得放大以吸收估计误差。这背后有一套统计学的置信度推导通常用 Wasserstein 距离的浓度不等式来定半径后面我会详细展开。这种“数据量越大方案越乐观”的性质在工程上其实非常优雅。它意味着算法不是死的随着数据积累调度策略能自动从保守走向乐观从依赖短期预测走向依赖长期数据规律。这也是我判断“数据驱动 分布鲁棒”会是未来好几年内主流组合的根本原因。2. 分布鲁棒优化的数学架构与模糊集构造Wasserstein球和KL散度怎么选2.1 三种不确定性建模方式的对比为了更直观地理解 DRO 的定位我用一个表把三种主流方法的本质差别列出来。这张表是我每次给组里新人讲 DRO 时必用的首张幻灯片。方法不确定性描述决策准则优点缺陷随机优化SP假设精确概率分布最小化期望成本经济性最优在真实分布下分布假设错误时方案可能不可行鲁棒优化RO不确定集合最坏情况下可行绝对安全不依赖分布过于保守经济性差分布鲁棒优化DRO概率分布的模糊集最坏分布下期望成本最小兼顾安全性与经济性数据友好模型规模大求解难度高从这个表能很清楚看到DRO 的优化对象从“参数取值”升级到了“概率分布”。它做决策时首先考虑哪些分布是合理的——分布在模糊集内然后找出其中让我们期望成本最大的那个“最坏分布”并针对这个最坏分布做调度优化。方案最终对真实分布的偏离有一定鲁棒性。2.2 数据驱动的模糊集以经验分布为球心模糊集就是我们要引入的关键概念。最常用的构造方式有两种Wasserstein 距离球和 KL 散度球。先说更常用的 Wasserstein 球。给定一批历史样本 (\hat{\xi}_1, \hat{\xi}_2, \ldots, \hat{\xi}_N)经验分布记作 (\widehat{\mathbb{P}}_N)那么模糊集可以写成(\mathcal{F} { \mathbb{P} : d_W(\mathbb{P}, \widehat{\mathbb{P}}_N) \le \theta })其中 (d_W) 是 Wasserstein 距离推土机距离(\theta) 是球的半径。Wasserstein 距离直观上可以理解为把一个概率分布“搬运”成另一个概率分布所需要的最小成本很像移动一堆泥土的最小功。用生活类比经验分布就像一堆已知位置的土堆真实分布可能和它略有偏差但搬土距离不超过某个阈值。这个距离的优点是它对分布尾部差异敏感而且即使两个分布支撑集不完全重叠也能计算——这一点非常关键因为传统 KL 散度要求分布的支撑集一致风电、负荷样本的支撑集往往并不完美重合。第二个选择是 KL 散度球(\mathcal{F} { \mathbb{P} : D_{KL}(\mathbb{P} | \widehat{\mathbb{P}}_N) \le \theta })。KL 散度在信息论里意义非常明确但用在电力系统场景里有个弱点它要求分布之间严格绝对连续而且对稀疏离散样本的处理远不如 Wasserstein 灵活。我个人的经验是Wasserstein 球在大多数能源系统问题里都更顺手数值上更稳定代码实现也成熟Gurobi 和 Mosek 都能直接解析。关于半径 (\theta) 的选取理论上可以通过样本数量 (N) 和置信度 (\beta) 确定。在 Wasserstein 模糊集下真实分布以概率 (1 - \beta) 落入半径 (\theta) 的 Wasserstein 球内的充分条件对应的半径可以通过浓度不等式求解。工程实践中更常见的做法是取若干候选半径跑一遍优化看结果的经济性与鲁棒性平衡曲线再结合历史回测选定一个值。过于小模型退化为随机优化过于大模型接近鲁棒优化。这一点后面讲调参还会说到。2.3 对偶转化从无限维到有限维的可行路径分布鲁棒优化最难的地方在于目标函数是对“最坏分布”求期望这个分布本身是无限维变量不能直接丢给求解器。如何把一个无限维的分布优化问题转化成有限维的凸规划答案是强对偶和线性决策规则。具体处理思路其实很标准。先把内层问题写成关于分布 (\mathbb{P}) 的优化问题约束是模糊集Wasserstein 距离约束或 KL 距离约束然后用拉格朗日对偶把关于分布的最小化/最大化问题对偶掉最终得到一个包含辅助变量和约束的有限维凸优化问题。最经典的成果是文献中给出的“Wasserstein DRO 的对偶重构”当代价函数为凸函数例如线性约束下的线性目标时最坏期望目标可以等价写成一个关于“场景化样本 对偶变量”的有限维表达式。最终模型规模与场景数 (N) 线性相关而不是与分布空间维数相关。换句话说它的计算复杂度主要由样本数量和变量维度决定这对实际实施非常关键。以两阶段问题为例主问题类似于传统的两阶段随机规划第一阶段选择机组启停等“整型变量”第二阶段在每个样本场景下求解经济调度子问题而模糊集的对偶项为每个场景引入了一组额外的对偶变量和约束。整体模型仍然是一个 MILP只是变量数量比普通随机优化多一个量级。因此用 Matlab 加 YALMIP 建模时最核心的动作就是把这套对偶公式写对然后把求解器指向 Gurobi 或 Mosek。3. 电热耦合系统建模从电网到热网的关键环节3.1 电网侧建模要点电热综合能源系统优化里的电网模型大家一般不会用完整的交流潮流那样会引入非凸约束导致全局最优解无法保证。最常用的是 DistFlow 分支潮流方程以配网为背景节点注入有功、无功和电压满足一组递推关系。在 Matlab 代码里这组约束通常写成二阶锥SOCP形式用 YALMIP 的 cone 命令可以直接处理。IEEE 33 节点系统是最常见的测试网架节点参数、线路阻抗、负荷曲线都很好获取公开代码也最多。如果是做输电网级别的电热耦合可以简化成直流潮流模型只保留线路有功传输约束问题规模会大幅下降。电网侧除了潮流约束还必须纳入机组约束出力上下限、爬坡速率、最小启停时间。在 MILP 里最小启停时间需要两个二进制变量和一个递推约束这在建模时比较繁琐但每一篇相关论文里都有标准写法我建议直接复用经典机组组合建模框架不要自己在约束逻辑上重复造轮子。另外风电和光伏出力的上限会随场景变化这类不确定参数在实际建模中是作为右手边的值出现的。3.2 热网侧建模要点热网建模是整篇代码里最容易出 bug 的地方因为它的物理量太多。一个完整的区域供热系统包括热源热电厂、燃煤锅炉、一级供热管网供水管道 回水管道、换热站和二级管网。在优化模型里通常把二级管网简化为热负荷节点只对一级管网建模假设流量分布已知或作为变量优化。质调节模式下的热力网络模型由三组方程构成。第一组是节点热功率方程(H_i c_p \cdot q_i \cdot (\tau_i^{supply} - \tau_i^{return}))表示某个节点消耗/注入的热功率等于流量、水的比热容和供回水温差的乘积。第二组是管道温度损失方程因为管网距离长热水流到下游会降温温降系数通常随流量变化呈指数关系写进模型里往往需要分段线性逼近。第三组是节点温度混合方程在供水管网中不同温度支路汇入同一个节点时混合后的温度满足能量守恒。这三组方程构成了热网的“准稳态”模型——不追求每一秒的动态微分方程但保留了温度在时间尺度上的延续性。对大多数优化模型为了保持线性可解性工程上常用以下线性化手段设定供回水温度为常数把流量作为主要调节变量或者把温度损失用分段常数系数线性化。如果必须建模温度延迟例如多时刻滚动优化还需要引入一个代表管道传输延迟的状态变量——这时候普通的 MILP 会变得非常庞大往往需要继续简化。3.3 耦合设备与运行灵活性耦合设备是电热系统的灵魂。CHP 机组的可行域是一个多边形电出力和热出力并非完全独立抽凝式汽轮机可以在一个梯形区域内运行而背压式汽轮机则被限定为一条直线 (P_{e} k \cdot P_{h})。背压式简单但灵活性差抽凝式在调度优化里价值更大因为它的热电比可以在一定范围调节。Matlab 建模时用顶点组合描述多边形即可YALMIP 对这类凸包约束支持得很好。电锅炉和热泵是实现“电转热”的灵活性设备它们的意义在于吸纳风力发电富余时段的多余电能。 电锅炉模型非常简单热出力 电功率 × 热电效率1加上运行上下限。热泵的 COP 恒定简化模型也类似就是效率大于 1但更精确的模型会考虑环境温度对 COP 的影响。储热装置则比储能电池更友好没有放电衰减损耗那么敏感能量平衡约束表现为相邻时段储热量变化只需要考虑容量上下限和充放热速率限制。这些设备的存在让调度优化的数学结构从纯线性变成了带二进制变量的混合整数规划且储能层级的二进制变量导致组合复杂性急剧上升。所以如果代码跑得很慢不要怀疑模型错误先检查是否是因为储热或机组启停的二进制变量过多的原因。4. 多离散场景的生成与缩减数据驱动怎么驱动4.1 场景生成从历史数据出发的扰动采样“多离散场景分布鲁棒”里的“多离散场景”指的就是经验分布中的离散支撑点也就是用户最终面对的第一个输入数据一批风电/负荷/光伏离散场景。每一条场景是一整段时间序列的随机变量实现。做这类研究时最常见的起点是拿历史数据按小时做正态扰动采样。比如风电出力的预测误差通常可以用正态分布描述但要注意尾部的“极端天气”并不服从正态直接用正态分布会低估极端场景。一个更稳妥的做法是用核密度估计法从历史样本中拟合每个时段的边缘分布再用 Copula 函数刻画时段之间的相关结构最后采样生成大量场景。这个方法在科研圈几乎是标准动作Matlab 自带统计工具箱就能实现。当然如果手头有足够完整的历史出力数据直接 bootstrap 采样也可以得到不错的经验分布而且避免了很多人为假设争议。4.2 场景缩减K-means 和快速前向后向消减算法生成 1 万条场景后直接丢进 MILP 模型是灾难性的求解器会卡到怀疑人生。所以场景缩减scenario reduction是必做的一步。目标是用少量代表性场景去近似原始场景集同时尽量保持概率结构。主流的两个方法是 K-means 聚类和快速前向后向消减fast forward/backward selection。K-means 实现最简单把每条场景当作多维向量聚成 K 个簇簇中心作为新场景簇样本数占总样本数的比例作为该场景的概率。K-means 的计算代价低、效果好适合 100 条以上缩减到 20 到 50 条的场合。但它的缺陷是簇中心是“合成场景”不一定是真实历史出现过的运行方式某些极端但重要的场景可能被平均掉了。快速前向后向消减算法则保留了原始场景中的真实样本。基本思想是遍历所有场景计算删掉每一条场景后留下的场景集与原始分布之间的 Kantorovich 距离增量本质上相当于 Wasserstein 距离优先删除使距离增量最小的场景并把删掉场景的概率分配给最近的保留场景。它的优点是完全保留原始数据的物理特性极端场景不会丢失缺点是计算复杂度偏高对大规模场景集需要借助一些加速技巧。我在 Matlab 里通常配合并行的“pdist2”距离矩阵计算把缩减 1000 到 100 条场景的时间控制在几秒内。4.3 场景数量与模糊集半径的联动场景缩减后得到的 N 条场景最终就构成经验分布的支撑点。这里有个很微妙的联动模糊集半径 (\theta) 与样本量 N 有关而这里的 N 直接决定了最终 MILP 的规模。理论上的半径公式通常会给出 (\theta \propto 1/\sqrt{N}) 的关系——样本越多半径越小。但如果缩减后只剩 20 条场景理论上你相当于丢掉了大量样本半径的置信度也需要相应调整。很多论文复现时忽略这个联动直接用任意 N 和任意半径结果当然也能跑出来但论文里的“数据驱动”意义就打了折扣。实际操作中我的建议是先用数据量较大的原始样本集确定半径再对原始样本做缩减得到 N 条代表性场景最终模型使用这 N 条场景但沿用已定半径。这样既保证了模糊集对应的统计置信度又控制了优化模型的规模。可以把场景缩减理解为“对经验分布的稀疏化近似”而不是重新做一次统计推断。5. Matlab代码实现从论文公式到可运行程序的经验5.1 工具箱选型YALMIP Gurobi/Mosek 组合是事实标准实现分布鲁棒优化的代码选型上基本没有悬念。Matlab 环境里 YALMIP 是最普及的建模语言它把优化问题以符号的方式描述出来再交给底层求解器。求解器我强烈建议 Gurobi 或 Mosek。CPLEX 在学术领域用户量也很大但近年的许可证策略和优化器更新节奏都不如 Gurobi 顺手。Gurobi 对 MILP 和 SOCP 的求解能力都是顶级的热网线性化之后的问题规模在几千行约束量级Gurobi 通常几十秒内能解到 0.5% 的 gap完全够用。如果不想引入权重过大的商业求解器开源的 Cbc 或 HiGHS 也能跑但对大规模 MILP性能差距可能到两个数量级我建议科研复现时还是优先用 Gurobi 学术许可。5.2 建模流程与核心代码片段下面这段代码是我从一套 33 节点电网 6 节点热网的测试系统里摘出来的核心骨架展示了 DRO 模型的 YALMIP 描述方式。% 场景数据 Xi scenarios; % N x T 矩阵每行一条风电场景 p0 (1/N) * ones(N,1); % 经验分布概率 % 第一阶段决策变量 z_start binvar(n_units, T, full); % 机组启停状态 % 第二阶段决策变量对每个场景分别建立 x sdpvar(n_vars, N, T); % 决策变量矩阵按场景/时段展开 % 目标函数最坏分布下的期望运行成本 % 通过在模糊集对偶公式中引入辅助变量 mu, lambda 表达 objective 0; for t 1:T for n 1:N objective objective p0(n) * cost_coef * x(:,n,t); end end % 加入 Wasserstein 模糊集对应的对偶惩罚项 objective objective theta * norm(lambda, 2); % 约束网络潮流、热网水力热力、机组组合、场景相关耦合 Constraints [ ... ]; % 求解 optimize(Constraints, objective, sdpsettings(solver,gurobi,verbose,2));代码里的关键点并不是每一行具体怎么拼而是背后的建模逻辑所有和场景相关的约束都要对每个场景展开所有与场景无关的第一阶段约束直接作用在二进制变量上。如果你在写代码时把第一阶段和第二阶段变量搞混约束矩阵会变得非常奇怪求解器给出的解质量也会异常——我最初复现时就在这里浪费过两天时间。5.3 求解性能与数值稳定性注意事项DRO 模型一旦场景数超过 100 条MILP 的规模和求解时间会迅速上升。我实测过一个 30 节点电网加 6 节点热网的测试系统场景数为 20 时Gurobi 5 秒内可以拿到 0.1% gap场景数到 80 时可能需要 15 分钟才能收敛到 0.5%一旦超过 150 条普通笔记本基本等不起。数值稳定性方面要特别提防三件事。第一Big-M 取值。热网约束里有大量含流量和温差的乘积项线性化后必然引入 Big-MM 值过大会让单纯形法数值恶化M 设置太小则会裁剪掉可行域。建议尽量用大 M 的上界而不是一个拍脑袋的数字比如流量上界乘以最大温差。第二单位量纲。如果电网功率用 MW、热网功率用 MW温度差用摄氏度水流量用 kg/s量纲上的巨大差异会影响求解器的预处理器效率。我习惯把所有物理量统一到同一单位体系通常用 MW 和 kg/s必要时做归一化。第三双精度数值的收敛容差。Gurobi 默认的 MIP gap 是 1e-4对于这类问题通常要求不需要太高用 0.5% 其实足以支撑工程结论设得太小只会白白耗费计算时间。6. 复现和调参时踩过的坑这些细节论文里不会写6.1 热网非线性约束的处理不到位求解直接崩先说热网建模里最坑的一个环节管道温降方程。严格来说管道末端的供水温度与入口温度、流量之间是一个指数衰减关系而流量本身又是变量两者相乘后变成强非线性项。如果直接用非线性求解器不仅收敛无保证还动不动会出现温度数值振荡。我在实际代码里的处理方式是把温降系数改成分段常数以流量区间为分段依据每段取典型流量下的等效温降系数。这样温降方程退化为每个节点的温度变量乘一个常数整个模型变成线性约束。损失一点精度换来的是模型稳定性和全局最优性对调度方案的影响通常在 1% 以内完全可接受。另外节点温度混合方程里如果出现多个流入支路的温度差时也需要小心直接线性化要保证温度变量始终有上下限否则预处理器会产生一些匪夷所思的负温度解。6.2 模糊集半径的敏感性比想象中更大我复现第一篇 DRO 调度论文时直接用了论文里给的半径数值结果优化出来的机组组合结果劣于普通随机优化一度以为是程序写错了。后来做了半径敏感性分析才明白半径参数的灵敏度非常高不同系统、不同样本数下合适的半径可能相差一个数量级。我的经验做法是以理论半径作为基准再以 0.1 倍、0.5 倍、1 倍、2 倍、5 倍半径做一组扫描实验画一张“成本-鲁棒性”Pareto 曲线。根据曲线拐点选择半径。拐点之前的成本上升很平缓拐点之后成本急剧抬高说明模型保护过度。这个拐点附近就是最合理的操作点。这个方法虽然多花几次求解时间但能避免凭空定半径的盲目性。6.3 求解时间爆炸时的可行抢救方案如果模型规模控制不住求解器一直在线性松弛上打转时间成本会高到不可接受。这时候我通常会按下面的顺序抢救。第一砍场景。把场景数从 50 降到 20检查目标函数值和机组组合决策的变化如果组合决策基本没变就说明 20 条场景已经足够捕获不确定性结构。第二启用 Gurobi 的 lazy constraints 或者 CCG列与约束生成框架把最坏场景识别作为子问题动态加入主问题。这套迭代方法在 DRO 里天然契合因为内层“找最坏分布”其实就是在不断加入最不利场景的割平面。第三为二进制变量设置好的初始解。用场景数较少的模型先解一遍得到机组启停方案再作为 warm start 喂给大规模模型速度提升非常明显。实测中这三板斧下来求解时间可以缩短到原来的十分之一。7. 后续可以怎么扩展这个框架的可迁移性7.1 扩展到气网、交通网等多网耦合电热综合能源系统的框架本质是一个“网络 耦合设备 不确定性”的通用模板。把热网节点换成天然气管道节点把温度和流量约束换成气压和管道流量约束把 CHP 换成燃气轮机就成了电-气综合能源系统。再把交通网的充电站负荷加入就变成电-热-交通耦合系统。改变的是物理方程不变的是“分布鲁棒 场景展开 对偶转化”的核心结构。从代码角度讲只需要替换约束生成部分主模型骨架完全不需要重写。7.2 与碳交易、需求响应结合随着双碳目标推进越来越多研究把碳排放成本放进目标函数或者引入碳交易机制。DRO 框架下碳排放的不确定性可以表达为碳强度的随机场景也可以表达为碳价的随机场景。需求响应则可以在热负荷侧引入弹性负荷把一部分热负荷建模为可中断/可转移负荷并用价格信号引导用户参与。这些扩展都不会破坏 DRO 的数学结构只是变量和约束增多代码层面只需要在目标函数和约束集合里做增量修改。7.3 在线滚动优化与数据更新的闭环这个方向我觉得是最值得尝试的扩展。DRO 的优势是样本越多越不保守那么如果把框架扩展为滚动时域优化每来一个时段的新观测数据就更新经验分布、更新模糊集半径再重新求解未来若干时段的调度问题就形成了一个数据—决策的闭环。这种在线 DRO 调度模式在热网惯性的加持下尤其自然——热网的温度延迟把时序决策粘住了留出了充足的计算时间。我甚至觉得这才是“数据驱动”四个字最有价值的落地方向不是拿数据训练一次模型而是让决策系统随着数据流自我进化。从我自己的复现经验来看这条从随机优化走到分布鲁棒再走到在线决策的技术路线每一步的动机都来自工程实际中的痛点。真正动手把论文里那些看似高深的公式变成能跑的 Matlab 代码时你会发现核心困难往往不在理论理解而在那些被论文省略的工程细节——参数的设置、约束的线性化、数值稳定性处理、求解器的调参。把这些细节踩平了剩下的模型框架其实是相当稳定而且通用的。如果你正打算复现这类工作建议从一个小规模系统入手先用数据生成和场景缩减打通流程再逐步加上电网和热网的耦合约束最后再引入完整的分布式鲁棒模糊集。每一步都能验证每一步都有明确的中间结果这样排错会顺畅很多。
返回列表