微网优化调度与场景生成:光伏预测到综合能源的完整学习路线
做微网优化调度这个方向也有一段时间了后台经常有人问我有没有整理好的学习路线和资料。这次趁着“场景生成与微网优化调度”这个题目我把综合能源优化、神经网络光伏预测这两块最容易踩坑的内容也一起放了进来形成一整套可以直接照着走的入门体系。先说一下这篇文章适合谁。第一类是刚接触微网调度的研究生论文方向还没定导师丢给你一个“微电网经济调度”的题目不知道怎么切入第二类是已经在做综合能源规划或者台区能源管理的工程师想从传统确定性调度过渡到不确定性优化第三类是懂一点深度学习但没做过能源领域的同学想试试用神经网络做光伏功率预测但不知道特征怎么构造、模型怎么选。这套体系说白了就一句话所有的调度决策本质上都是在“预测未来”和“应对不确定性”之间做权衡。场景生成解决不确定性的建模问题光伏预测解决未来的预判问题微网调度和综合能源优化解决最后“怎么决策”的问题。四块内容互相咬合缺了任何一块你在实际项目里都会觉得使不上劲。1. 先理清场景生成在微网调度里的角色1.1 为什么确定性调度不够用很多初学者一开始容易犯一个错误就是把微网里的光伏出力和负荷当成固定数值去求解。初始化条件很简单给一组典型日数据约束全部满足目标函数跑出来一个最低成本然后就没下文了。这个做法在课程作业里勉强能用但放到实际项目里基本站不住。原因很简单。光伏出力受天气影响半小时前还是满发一片云过来功率直接掉一半负荷也是波动的尤其居民台区傍晚时段几分钟内负荷就可能跳几千瓦。你要是拿一条确定性曲线去做日前调度等第二天实际运行的时候功率平衡约束大概率被破坏储能不是过充就是过放购电计划也完全对不上。说白了确定性优化等于一个只看过晴天的气象预报员遇到阴天就懵了。所以工程上普遍的做法是把不确定性的输入用一组典型场景来表达。这就是场景生成进入微网调度的原因。它的核心思路是从历史数据或者概率分布中抽样出大量可能出现的“未来”再用聚类算法把这些场景缩减成少数几个有代表性的典型场景最后让调度模型在每个场景下都能成立或者以概率加权的方式求一个期望最优解。1.2 场景生成的主流技术路线场景生成的技术路线主要分两派。一派是概率建模派。先假设光伏出力或负荷服从某种概率分布比如Beta分布、正态分布然后通过蒙特卡洛抽样生成大量随机场景。这个方法理论清晰、实现简单但缺点是分布假设不一定准确而且抽样出来的场景数量巨大动辄上千条曲线直接扔进调度模型求解器会直接算死。另一派是数据驱动派。直接拿历史运行数据来构建场景集合不做显式的分布假设。常见的做法是统计每个时刻的出力均值、方差、分位数或者用核密度估计拟合经验分布。这个派别的好处是贴近真实坏处是对数据质量要求比较高数据缺失或者测量噪声大的时候生成的场景也容易失真。不过实际工程里这两派不是互斥的。我自己常用的套路是“概率抽样加聚类缩减”也就是先用历史数据拟合经验分布抽样出大量场景再用K-means之类的聚类算法把场景归并成5到10个典型场景。这样既有概率意义又能控制调度模型的求解规模。提示场景生成不是随便跑个K-means就完事。重点在于聚类之后的典型场景要能代表原始场景的整体分布特征否则缩减后的场景会误导调度结果。2. 从数据到典型场景手把手做一次场景生成2.1 数据准备阶段最容易忽略的问题做场景生成之前先把数据这一步打好底。很多人直接把原始功率曲线拿来聚类结果聚类中心长得奇奇怪怪其实问题不在算法在数据预处理。第一步是清洗异常值。光伏电站的数据里经常会出现零值堆积、夜间随机毛刺、通信中断导致的长段恒定值这些都要处理掉。零值堆积尤其要小心夜晚的光伏出力本来就是零你把这些零值时间段全部纳入聚类会导致算法学到的“典型场景”变成一条半夜也没出力、白天出力被平均掉的平庸曲线。正确的做法是只聚类白天有效时段或者把“白天/黑夜”作为一个独立特征输入。第二步是归一化。聚类算法基于距离度量如果直接用功率值聚类数值范围大的特征会主导距离计算。建议把每个时刻的出力除以该日装机容量得到一个归一化系数把所有曲线都映射到同一个量纲下。这一步不做聚类结果基本没法看。第三步是特征构造。原始曲线的维度如果太高比如一天96个点聚类效率和稳定性都会受影响。可以考虑降维或者手工提取特征比如最大出力、出力峰值时刻、能量总量、波动率这些统计量。把高维曲线压缩成低维特征再聚类效果往往比直接对原始曲线聚类要好。2.2 K-means缩减的实操流程与关键参数数据准备好之后场景缩减的核心流程分四步。第一步确定要生成多少原始场景。蒙特卡洛抽样的数量一般建议500到2000个。太少的话覆盖不到分布的尾部太多的话后面的聚类计算会很慢。我自己一般取1000个跑一次聚类大概几秒钟覆盖面也够了。第二步确定聚类数K。K的选择没有绝对标准工程上常用两个辅助手段一个是肘部法则画出K与簇内误差平方和的曲线找拐点另一个是轮廓系数看聚类结果的分离度。这两个指标都不完美最终还是要结合调度模型的求解效率来定。K选得太小场景代表性不足K选得太大调度模型里的约束和变量成倍增加求解时间会失控。第三步执行K-means。聚类时建议用多个随机种子跑几遍取目标函数最小的那次结果避免陷入局部最优。另外K-means对初始中心点敏感可以用K-means初始化效果比纯随机初始化稳定很多。第四步评估缩减结果。用缩减后的典型场景去和原始场景集合做对比看概率分布是否接近。常用的指标包括Wasserstein距离、KS检验、经验累积分布对比等。如果对比结果偏差明显说明K选小了或者数据预处理环节有问题回头检查。实操心得聚类完成后每个典型场景要附带一个概率权重这个权重等于该簇内原始场景数量除以总场景数量。后续做随机优化调度时目标函数里每个场景的成本都要乘上这个权重才是真正的期望成本。2.3 一个简单的场景生成示例举个例子假设手头有一年的光伏历史数据采样间隔15分钟一天96个点。我先剔除夜间数据保留每天6点到18点的有效时段然后归一化。接着用经验分布拟合每个时刻的出力分布抽样生成1000条日曲线再用K-means聚成6类。聚类之后的结果大概是这样的6条典型曲线分别对应晴空高发、多云波动、阴雨低发等不同天气类型。每条曲线附带一个概率权重比如晴空型占比40%多云型占比30%阴雨型占20%剩下的是其他过渡类型。后续把这几条曲线拿去做微网调度就能覆盖大部分实际运行情况了。这里我想说一句题外话很多教程喜欢直接给出一个K值然后就不解释了。实际项目里K值的选择往往是个反复试错的过程你要跑完调度模型、对比结果之后回头调整K值。第一版出来不好很正常迭代几轮才是常态。3. 微网优化调度建模目标、约束与求解3.1 目标函数设计的几个层次场景生成搞定之后接下来就是最核心的微网优化调度建模。先说目标函数。微网调度的目标函数最典型的是经济性目标也就是运行成本最小化。这里面包含几个组成部分向大电网购电的费用、柴油机或燃气轮机的燃料成本、储能系统的充放电损耗成本、设备启停成本以及为了应对不确定性而加入的弃光弃风惩罚成本、失负荷惩罚成本。初学者容易遗漏的是最后一个惩罚项。实际运行中总有预测不准的时候场景法虽然考虑了不确定性但依然可能出现极端情况这时候如果模型里没有惩罚项求解器会通过疯狂调整储能出力来强行满足约束结果就是储能寿命被严重透支。加上惩罚成本后模型会自动权衡“多买一点电”还是“多惩罚一下失负荷”两者哪个更便宜结果会更加贴近真实运行策略。预算允许的中级方案可以再加一个碳排放目标。这就引入了多目标优化的问题。处理多目标最常见的办法是加权求和把碳排放成本乘以一个碳价系数折入经济目标里。碳价怎么定可以参考当地碳市场的行情或者根据政策要求反推。如果不想定碳价也可以跑两目标帕累托前沿看看成本与排放之间的权衡曲线但计算量会大不少。3.2 约束条件和设备建模细节约束条件是调度模型里工程量最大的部分。做一个微网调度模型最基本的约束包括功率平衡约束。每个时刻光伏、风电、储能放电、外部购电、燃气轮机发电的总和要等于负荷、储能充电、外部售电、各类损耗的总和。这个约束是等式约束也是模型里绝对不能省的一条。联络线约束。微网与大电网之间的交换功率有上限而且一般还限制爬坡速率。很多地区对大电网的倒送功率有严格限制所以你还需要加一个联络线功率方向约束不能白天光伏大发时无限制地往外送电。储能约束。荷电状态SOC的递推关系、充放电功率上下限、SOC上下限以及一个完整的调度周期始末SOC需要保持一致否则优化结果会让储能把电全部放干精打细算到周期末刚好为零。加一个周期始末SOC一致约束才能保证调度方案具有可重复性。设备模型约束。燃气轮机的出力区间、爬坡速率、启停逻辑余热锅炉的热出力上下限电锅炉的电热转换效率等。这里有一个关键概念就是设备模型一定是“线性化”的。燃气轮机的燃料成本与出力关系本来是二次曲线很多教材会直接写一个二次函数然后丢给求解器但混合整数非线性规划极难求解。工程上通用的做法是把二次曲线做分段线性化用几个线性段去逼近原来的曲线这样问题就变成了混合整数线性规划求解效率会指数级提升。3.3 求解工具选型与建模语言选择国内学术界做微网调度最普及的环境组合是MATLAB加Yalmip加商业求解器。Yalmip是一个建模工具箱把优化问题的变量、约束、目标函数都写到脚本里最后一句话调用求解器不用自己去实现求解算法。用Python的话可以选择开源工具比如通过一些数学优化库来建模再调用开源或商业求解器求解。Python的优势是跟深度学习生态无缝衔接后面你要做光伏预测训练神经网络和优化调度可以在同一个环境里完成省去切换的麻烦。以下是一段Yalmip风格伪代码用于说明建模的大致结构% 定义变量 P_buy sdpvar(1, T); % 购电功率 P_sell sdpvar(1, T); % 售电功率 SOC sdpvar(1, T1); % 储能荷电状态 P_ch sdpvar(1, T); % 充电功率 P_dis sdpvar(1, T); % 放电功率 u binvar(1, T); % 储能充放电状态标志 % 约束 Constraints []; for t 1:T Constraints [Constraints, P_buy(t) P_pv(t) - P_dis(t) P_ch(t) P_load(t)]; Constraints [Constraints, SOC(t1) SOC(t) eta_ch*P_ch(t) - P_dis(t)/eta_dis]; Constraints [Constraints, SOC_min SOC(t1) SOC_max]; Constraints [Constraints, P_ch(t) u(t)*P_ch_max]; Constraints [Constraints, P_dis(t) (1-u(t))*P_dis_max]; end Constraints [Constraints, SOC(1) SOC(T1)]; % 目标函数 Objective sum(c_buy(t).*P_buy(t) - c_sell(t).*P_sell(t) c_fuel.*P_gas(t)) ...; % 求解 optimize(Constraints, Objective, sdpsettings(solver, YourSolverName));这里想强调一个约束条件的细节储能同时充电和放电是物理上不可能的事所以必须引入一个二值变量u来互斥。如果不加这个变量求解器会在某些优化场景下偷偷同时给充电和放电各分配一点功率利用效率损耗的空子赚账面便宜实际物理世界是做不到的。4. 综合能源系统的多能耦合怎么处理4.1 从电微网到综合能源系统纯电微网做一段时间之后很多人会自然而然往综合能源方向扩展。原因也很现实单纯电负荷的调节手段太有限了遇到负荷尖峰要么买电要么切负荷储能只是把能量搬来搬去并不能凭空增加系统灵活性。而一旦引入热负荷、气负荷整个系统的调节自由度会大幅增加。综合能源优化的核心概念叫能源集线器也就是把电、气、热多种能源在网络中一个节点处“汇聚”通过各类转换设备互相转化。典型设备有燃气轮机气转电、余热转热、电锅炉电转热、储能电池电转电、蓄热罐热转热、电制冷机电转冷等。这些设备之间通过耦合矩阵联系在一起输入端是多种能源输出端也是多种能源。4.2 多能耦合设备建模的基本思路综合能源调度相对纯电微网建模复杂度增加了一个维度。但是别怕掌握了规律之后并没有想象中难。首先要明确每种设备转化效率。燃气轮机的电效率一般在30%到40%热效率也在30%到40%左右所以热电联产机组的总效率可以达到70%以上。电锅炉的电热效率很高可以到95%以上。蓄热罐的储放能效率在90%左右。建模的时候不同设备用不同的效率系数把能量转化关系写成代数方程就行。其次是设备之间的耦合约束。比如燃气轮机一旦开启它就同时产生电和热而且热电比通常不是自由选择的而是一个固定范围。这就引入了热电比运行区间约束调度模型需要保证每个时刻的电出力和热出力都落在可行区间内。电锅炉的作用就是做热电解耦补偿当你只需要电不需要热的时候可以用电锅炉单独供热避免燃气轮机为了供热而被迫多发电。4.3 电热气耦合调度的建模顺序我一般建议从简单到复杂逐步建模不建议一上来就搞一个巨复杂的全能源系统模型。第一步先做电微网调度把电功率平衡、储能、购售电这些基本框架跑通。第二步加一台热电联产机组和一个热负荷构建热功率平衡约束。第三步加入电锅炉和蓄热罐让系统具备热电解耦能力。第四步如果要加气网再引入购气约束和气压约束。每一步都跑通验证之后再叠加起来这样出问题时排查起来非常高效。经验之谈综合能源系统建模出错的高发区是单位不统一。光伏出力用千瓦热负荷用千瓦时燃气轮机效率用百分比储能容量却用了兆瓦时一旦单位换算有偏差约束条件就全乱了。建议建模之前先列一张单位对照表统一换算成同一套单位制再写约束。5. 神经网络光伏预测从数据准备到模型选型5.1 光伏预测问题的本质是什么光伏预测和场景生成看着都用到了历史数据但两者目标完全不同。场景生成是要刻画“未来的不确定性有多大”而光伏预测是要写出“未来最可能发生什么”。在微网调度的框架里预测结果是场景生成的输入之一也是日内滚动优化的决策依据。从问题定义来看光伏预测可以简单理解为给定过去一段时间的功率序列和相关气象特征预测未来若干个时刻的光伏出力。预测时域可能是未来1小时、4小时或24小时。时间尺度越长难度越大误差也越大。工程上多个预测时域是分开建模的不要一个模型通吃所有尺度。评价预测模型最常用的指标是三件套均方根误差RMSE、平均绝对误差MAE、平均绝对百分比误差MAPE。其中RMSE对大的误差点非常敏感如果某个时刻预测偏差特别大RMSE会被显著拉高所以RMSE能反映模型的稳定性。MAPE使用百分比可以用来对比不同装机规模电站之间的预测精度但碰到出力接近零的时刻会出现除法爆掉的假大值用的时候要小心一般只对出力大于某一阈值的数据计算MAPE。5.2 特征工程与样本构造的核心技巧很多人在光伏预测上模型换了一个又一个精度就是上不去问题往往不在模型而在特征工程。光伏出力的决定因素从物理上分三类天文因素、气象因素、历史状态因素。天文因素包括太阳高度角、日出日落时刻、季节这些可以用时间特征拟合。气象因素包括辐照度、温度、云量、湿度、风速其中辐照度是最强相关的预测因子。历史状态因素包括过去几小时的实际出力序列它能隐含反映当前云层和气溶胶状态。样本构造的经典方式是滑动窗口。假设时间分辨率为15分钟你要预测未来4小时也就是16个时刻的出力那输入窗口可以取过去16个时刻或32个时刻的功率序列再拼接上未来时段的气象预报数据。注意气象数据如果用的是数值天气预报NWP结果一定不能和实测气象混为一谈。NWP是模型预报值本身有误差用实测辐照度训练再用NWP做推理会产生明显的“训练测试分布不一致”问题。时间序列划分也是一大门道。光伏数据有极强的日周期性如果随机打乱数据做交叉验证本质上是在做数据泄露——明天和今天同时间段的辐照度高度相关模型可以用昨天的数据作弊看起来精度高实际泛化能力很差。正确做法是按时间顺序划分用前两年的数据训练后一年数据验证再留三个月数据做最终测试。5.3 模型选型LSTM、TCN还是Transformer光伏预测的模型选型基本可以分为传统机器学习、循环神经网络、卷积类模型、Transformer四类。传统机器学习里XGBoost和LightGBM这类梯度提升树在光伏预测上表现依然非常能打尤其当特征量不大、数据量中等时它们训练快、调参少、不易过拟合可以作为基线模型。我见过很多项目直接把梯度提升树放到生产环境里效果不输深度模型。深度模型层面LSTM和GRU的应用最广泛。它们适合处理时间序列的长期依赖但训练速度慢超参数多容易过拟合。TCN时间卷积网络使用了扩张因果卷积可以并行训练速度快而且通过调整扩张系数能扩大感受野在很多时间序列基准上成绩不输LSTM。Transformer则是用自注意力机制捕捉长程依赖模型容量大但需要更多数据来训练小数据集上很容易“杀鸡用牛刀”。我的建议是先建立一个梯度提升树基线然后尝试LSTM或者TCN最后如果数据量足够大且算力充裕再考虑Transformer。别一上来就堆一个百万级参数的Transformer去拟合几千条光伏序列结果大概率是过拟合到连基线都打不过。这些坑我踩过不止一次。5.4 光伏预测模型训练的关键细节在训练阶段有几个细节直接决定模型最终成绩。归一化的方式要合理。光伏出力序列在不同时刻均值差异很大白天和夜晚方差完全不同直接用全局归一化会把夜间的零值作为主要信息。建议只对有效日照时段归一化或者按时刻分组归一化。反归一化映射要在预测后处理阶段小心对齐否则会出现预测值整体偏低的系统性偏差。损失函数的选择也要根据目标来决定。如果只用MSE损失模型会偏向拟合出力大的时段因为大的出力值贡献了更大的误差平方。如果要更均衡地优化所有时段可以考虑用加权MSE或者分位数损失。如果想同时优化多个分位数可以用pinball loss训练一个分位数回归模型直接输出预测区间。模型输入输出的维度设计上有一个常见错误很多人强行要求模型一次性输出96个时刻的序列结果后半段预测完全失真。正确做法是设计成“编码器-解码器”结构输入过去窗口逐步自回归生成未来序列或者使用直接多步输出的策略但把预测时域切短比如拆成4段每段预测16个点。短时域的预测误差累积更小效果也更可控。6. 学习资料大放送按路线分类整理6.1 论文阅读顺序建议很多初学者一上来就刷最新顶刊论文结果被各种优化算法和理论推导劝退。我的建议是先按顺序读三大类内容。第一类是综述性论文重点看微网经济调度、综合能源系统优化、可再生能源不确定性这几个方向的综述。综述的好处是帮你建立知识地图知道这个领域有哪些子方向、每个子方向用什么方法、未来研究缺口在哪里。读综述的时候做笔记做成思维导图比自己盲目搜论文效率高十倍。第二类是经典方法类论文重点看场景生成方法、随机优化调度框架、模型预测控制日滚动优化这几类。这些论文通常方法成熟、细节完整、可复现性强非常适合精读并自己动手实现。第三类是前沿论文按自己的研究方向选择性阅读。这部分用来找创新点比如把强化学习引入微网调度、把扩散模型用于场景生成、把大模型应用到能源预测等。6.2 代码和工具箱资源学习微网调度代码资源的价值在于帮你节省大量调试时间。我的建议是找几个开源的小规模算例工程下载下来跑通再逐步修改。优先找那种带完整数据、有目标函数和约束注释、能直接运行出结果的项目将其作为入门模板。Python的深度学习生态则建议围绕主流框架展开本地的光伏预测项目可以自行写一个简单的数据加载器、模型定义、训练循环。不要一开始就依赖封装得太高级的库自己写一遍训练循环才能理解反向传播、学习率调度、早停这些概念在实际里如何运作。资源寻找技巧在代码搜索时添加“微网调度”“场景生成”等中英文关键词组合优先看最近两三年更新的项目。太老的项目往往依赖旧版本依赖库光解决环境依赖就要耗掉好几天。6.3 数据集与算例系统怎么找光伏预测数据是很多初学者头疼的第一关。最理想的情况当然是用自己所在地电站的真实运行数据但大部分情况下你是拿不到的。退而求其次用公开的研究型数据集各大学和研究机构发布的光伏出力数据都可以用只要能找到辐照度和功率同步记录的数据就行。如果是做微网调度算例工程上常用的是在论文中附带典型算例参数把这些参数提取出来自己搭一个小型算例系统。参数一般包括光伏容量、负荷曲线、储能额定容量、购电电价、设备效率等。找到三五个不同规模的算例基本可以覆盖大部分测试场景。6.4 书籍与视频课程的组合建议书籍方面数学规划和运筹优化是个绕不开的基础。建议找一本国内经典的线性规划与整数规划教材把单纯形法、对偶理论、分支定界法这些基础概念过一遍。另一本建议是非线性规划教材重点看凸优化部分。这两本啃下来微网调度的数学基础就稳了。微网和综合能源系统的专业书籍可以看一些行业教材重点阅读微网结构、能量管理、分布式电源建模这几章。视频教程方面求助于B站等平台上的公开课优先选那些老师讲得细、有代码演示、有课后练习的课程。网课的学习效果主要靠练习量和项目复现只看不练等于没看。7. 常见问题与避坑实录7.1 场景数量到底选多少合适这个问题没有标准答案但有一个大概的经验区间。对日前调度K取5到10个场景通常够用对日内滚动优化K可以取到10到20个。K每增加一个调度模型的变量和约束数量不会线性增加但求解时间往往会成倍上升。如果你发现K取到20以上模型求解时间还在可接受范围说明你的模型建得还不够细变量还不够多。迭代策略上先用小K跑通整个流程确认模型逻辑正确再加大K做精度提升。千万不要一开始就追求大K导致求解时间爆炸连模型有没有错都分不清。7.2 求解器报错或结果异常怎么排查求解器报“infeasible problem”是最常见的问题也就是约束条件不能全部满足。我的排查顺序如下先检查功率平衡约束是否前后单位一致再看储能SOC初值和末值约束是否互相冲突然后检查联络线功率上限与负荷峰值是否矛盾最后检查有没有把一个本应取正值的变量错误地允许了负值。结果异常比报错更让人头疼比如最优成本出现负数或者储能充放电循环每周期都在满充满放。负成本通常来自售电价格或惩罚系数设置不当满充满放则是目标函数没有考虑储能损耗成本导致。任何异常结果都可以用一个“零输入测试”来验证把所有光伏和负荷都设为零此时成本应该只包含购电费和启停费如果结果出现奇怪的数字说明模型基础逻辑还没对。7.3 光伏预测分数提不上去是什么原因预测精度不达标我总结的顺序是先排查数据再排查特征最后才换模型。数据处理阶段最常见的坑是没有剔除恶劣天气样本比如雨天、雪天、大风天的辐照度-功率关系剧烈变化模型拟合时被这些离群点干扰。特征工程阶段的坑是没有加入“天气类型”这个离散特征让模型自己去从数据里学晴天和阴天的区别这会耗费大量容量且效果不佳。换模型阶段最大的坑是模型容量与数据量不匹配小数据上强上复杂模型过拟合概率极高。还有一个容易忽视的细节预测结果的评价要按天气类型分组统计。晴天预测误差通常很小阴天误差大很多混合统计会把晴天的优秀表现掩盖掉阴天的糟糕表现。分开统计后你才能真正看清模型在哪种天气下需要重点优化。7.4 综合能源系统建模越做越乱怎么破综合能源建模的复杂度上来了之后最大的风险是约束条件失控。我建议把模型拆成模块化文件每个设备一个文件比如燃气轮机文件、储能文件、电锅炉文件每个文件独立调试单独测试通过后再拼装成大模型。这样拼装时如果出问题大概率出在模块间交互的耦合变量上排查范围小得多。另外建议在建模初期就养成变量命名规范的习惯。功率变量用P荷电状态用SOC效率用eta每个变量带下标注明时刻和设备编号。团队协作时命名混乱带来的隐性成本比想象中大得多。之前接手过一份变量名全是a1、b2、c3的代码光看懂每个变量的物理含义就花了一天这种教训记忆非常深刻。最后说几句实在话整套内容梳理下来你会发现场景生成、微网调度、综合能源优化、光伏预测并不是四个孤立的方向而是一条完整的技术链路光伏预测提供未来信息场景生成刻画不确定性调度模型做决策综合能源系统扩展决策自由度。把它们打通来看学习效率会高不少。我个人读这个方向的实际体会是不要贪多先把一个简单算例完整跑通比看十篇论文都有用。代码跑通之后再逐层加复杂度加气象数据、加多能耦合、加预测模块每加一层测试一次。项目做多了之后你会发现最花时间的不是算法选择而是数据清洗和约束调试这两块做好了整个系统的上限会明显不一样。最后再分享一个小技巧把做过的每一个算例都整理成一个标准模板数据、模型参数、结果图表、调试记录都放进去。几个项目之后这个模板库就是你最值钱的东西新问题来了直接用旧模板改省下的时间不是一点半点。