这是一次重大更新,改进了优化、输电和燃料贸易建模,新增了让 LEAP 工作更专注、更高效的界面功能(例如分支过滤和减少重算次数),并新增了一个可选加入的远程诊断监控系统,帮助我们更快地发现和修复问题。此外还包含大量漏洞修复,使 LEAP 更加稳健可靠。
-
图1:LEAP 2026.7.0.1 中过滤分支:"Fuel=Charcoal"(燃料=木炭)。
树形过滤(Tree Filtering) 主树底部的全新树过滤器工具栏(Tree Filter Toolbar)可根据过滤条件只显示主树的一个分支子集,这是聚焦于模型较小子集的有效方式,可让工作更专注、更高效。您可以在任何显示树的视图中使用过滤器:分析视图(Analysis View)、结果视图(Results View)和注释视图(Notes View)。可按分支名称、燃料、燃料组、效应(effect)或标签(tag)过滤。过滤器会在会话之间记忆并随您的区域(area)保存,还可以在工具栏编辑框中以文本形式编辑。例如:过滤器 "Branch=Industry" 会显示包含"Industry"一词的任何分支,包括所找到分支的上层或下层分支。Fuel=electricity 会显示消耗或产生电力的任何分支及其上下层分支。要过滤工业分支,只需在工具栏编辑框中输入"Industry",它会自动被重新格式化为"Branch=Industry"。工具栏包含一个开/关开关,可临时禁用过滤器。点击过滤器按钮可在预设的燃料、效应、标签和燃料组过滤器之间选择,或清除并关闭过滤。
工具栏还包括一个 Also Filter Data Grid(同时过滤数据网格)选项。启用后,分析视图数据网格中显示的分支也会被过滤为仅包含过滤后树中显示的分支。
更少的重算次数:LEAP 现在会区分对数据的美化性编辑(cosmetic)和实质性编辑(substantive)。美化性编辑是不需要重新计算结果的编辑,实质性编辑则需要。美化性编辑包括更改分支、燃料、情景、区域、标签、单位、用户变量、别名、引用的名称和缩写,以及编辑注释和分支、燃料、区域、情景的引用。对表达式注释(在表达式" ?"字符之后输入的文字)的编辑以及分支排序的更改也属于美化性编辑。一个例外是转换(Transformation)模块的排序,它仍需要重新计算结果。这次更新的效果是,您可以对 LEAP 模型进行更多编辑而不会触发结果重算,使模型工作更高效、更具交互性。
远程诊断监控:LEAP 现在可以选择向 SEI 发送匿名化的诊断信息,帮助我们更快地发现和修复问题,让 LEAP 对每个人都更好。此功能完全可选,默认关闭。如果您选择开启(希望您会开启!),LEAP 将共享诸如错误和崩溃报告、计算耗时以及正在使用哪些主要功能等信息。除了一些有助于了解模型的高层元数据(如区域、情景和区域名称)外,您的模型数据绝不会与我们共享。您的身份已匿名化,不会收集任何按键、截图或支持文件。信息将安全地传输,并代表我们在符合欧盟 GDPR 数据隐私法规的欧盟境内服务器上处理。数据在 3 个月后自动删除,收集的任何信息绝不会与 SEI 之外的第三方组织共享。系统只会询问您一次是否愿意参与,您随时可以在 LEAP 的设置(Settings)界面中开启或关闭监控。详情请参阅 LEAP 的条款与条件。
支持 NEMO v2.4 及更高版本中的非时间切片优化:以前,能源系统优化要求所有转换模块的输出都有关联的负荷曲线,因此所有优化计算都是按时间切片进行的。LEAP 现在支持 NEMO v2.4 的新功能,可以优化输出燃料没有负荷曲线的转换模块。在此类计算中,调度(dispatch)按年度而非时间切片计算,从而加快计算速度并降低数据要求。优化情景中的新验证程序强制要求:一个模块的输出燃料要么全部有负荷曲线,要么全部没有。另请注意,按年度调度的转换模块不能包含储能(storage)工艺。
输电建模:对能源系统优化情景中的输电建模进行了多项改进。电力(及其他传输燃料)现在以"区域内进口"(Imports from Within Area)和"区域内出口"(Exports Within Area)的形式出现在能流平衡表(Energy Balance)中,并正确计入输电线路损耗。国内供应和跨区域进口现在也能正确核算。结果视图现在可以报告每条线路的年度净能流(Net Annual Energy Flow)以及按时间切片的能流。输电容量报告已修正,现在同时报告每年新增的容量和总装机容量(反映已有线路和退役情况)。您现在还可以对年度输电容量新增设置最小和最大约束。此外还增加了额外检查,确保在输电优化计算开始前区域已正确配置。
贸易建模:LEAP 现在可以利用 NEMO 的能力,对多区域模型中各区域之间的燃料贸易进行优化,即使这些燃料并未由输电建模显式处理。在能源系统优化情景中,通过两个设置启用贸易:在区域(根)分支上新增的 Regional Trade Allowed(允许区域贸易)变量用于开启某情景的区域贸易建模,而每个资源(Resource)分支上的类似命名变量则控制每种燃料是否可交易。这一针对情景的实现取代了早期的全局 Allow Trade Among Regions(允许区域间贸易)选项。已通过输电线路交易的燃料将被忽略。由此产生的贸易流在能流平衡表中显示为区域内进出口,并在结果视图中显示为按时间切片的贸易流。
现势账户(Current Accounts)单独计算:修改了计算方式,历史年份(现势账户)的结果现在只计算一次,而每个前瞻性情景的结果只从第一情景年起计算。对于现势账户只含单一年份历史数据的模型,此更改影响不大;但对于含有大量历史年份的模型,可以加快计算速度。
改进化石燃料储量计算:以前,当全局设置"Write Results Every X Years"(每 X 年写入结果)设置为大于 1 的值时,储量不会被计算。模型现在会对每 X 年计算的自产(indigenous production)数值进行积分来计算储量的消耗。请注意,此更改可能影响某些模型中计算的自产燃料年产量数值,因此某些模型的结果可能会变化。另请注意,更改"Write Results Every X Years"的值会对储量的计算结果(可能还有产量)产生一定影响,尤其是在未来年份以及燃料产量在年份之间存在非线性或阶跃变化的情况下。这是由于对产量数值的积分必然是近似的。
降低内存占用:以前 LEAP 在启动时会一次性加载所有图标图像。现在,深色模式视图的图标按需加载。我们还删除了一些未使用的大型图标图像(即使在超高分辨率屏幕上也不用)。总体而言,这节省了约 250 MB 的内存占用,并使 LEAP 启动速度略有提升。以深色模式运行的用户节省的内存较少。
最大产量份额:新增了变量,用于在优化计算中指定一组相邻的需求和转换技术的最大产量份额(Maximum Share of Production)。
退化解(Degenerate Solutions):LEAP 现在会在优化计算中检测工艺的可变运维成本和燃料成本为零的情况。这在现实世界中是有效的情形(例如风电和光伏),但可能导致退化解,即结果不可预测(每次计算结果不同)。解决办法是指定一个极小的可变成本,它不影响工艺的调度,但可以避免退化解。LEAP 现在会在检测到这种情况时生成诊断消息,警告您并提示如何修复。
InterpYearlyShapeNIV:新增了 InterpYearlyShape 函数的一个变体 InterpYearlyShapeNIV。在情景中使用时,该变体不会从现势账户表达式中定义的基年负荷曲线值进行隐式插值。
改进表达式过滤:现在支持对命名元素中包含逗号的维度进行过滤。要引用这些名称,只需用双引号将其括起来。
同上(Ditto):在年度曲线(Yearly Shapes)和生命周期曲线(Lifecycle Profiles)界面中新增了同上(Ditto,Ctrl+D)功能,便于手动编辑数值。
在基于优化的情景中,更快地写入 NEMO 数据文件。
主题:新增了多种具有不同彩色高亮的浅色和深色主题。可从"视图:主题:浅色和深色"(View: Theme: Light and Dark)菜单选项访问。大多数旧主题仍可通过"视图:主题:标准"(View: Theme: Standard)菜单访问。一些旧的、不够专业的非标准主题已被移除。当运行多个 LEAP 实例时,所有实例现在使用相同的界面主题。
改进启动画面:现在显示更快、不会变白屏,并显示更丰富的加载进度信息。
进一步修复了 Interp 等时间序列函数的处理。当只有一对年份/数值和可选增长率时,函数此前无法正确解析。错误输入的年份和数值此前也仅报"Error:"(缺少更完整的解释)的错误消息。
修复了在分析视图数据网格中编辑表达式时 Delete 键处理不当的问题。选中表达式的一部分、按 Delete 删除后再按 Enter 或 Tab 提交,会导致这些编辑被遗忘并恢复为旧表达式。
修复了多种燃料设备的基于里程的排放因子。LEAP 此前正确地将排放因子乘以车辆里程和保有量,但没有应用燃料在车辆活动中的份额,导致排放被高估。单一燃料车辆不受影响。基于能量的排放计算此前已应用燃料份额,保持不变。
修复了某些结果计算受不同视图中分支可见性影响的问题。例如,某些分支在注释视图中不可见。相关地,一些本应可见的分支(例如高层效应分支)之前在注释视图中被隐藏了。
修复了从旧 v2024 数据集更新时的一个问题。在极少数情况下,如果数据集包含重复的单位名称,更新可能会擦除一些有效单位,导致单位界面中缺少单位,且分析视图中出现 [Bad Unit] 消息。
在使用自上而下交通保有量更替方法的模型中,在现势账户中输入总保有量和销量的高层分支上,LEAP 有时会隐藏这些变量。
修复了一次能源供应总量(Total Primary Energy Supply)的计算:在历史年份中,缺口(shortfall)和盈余(surplus)规则此前会因情景基于模拟还是优化方法而不同。但历史年份都应同样处理,因为这些年份不允许优化。
使用保有量更替方法的需求技术此前错误地允许使用 Activity Cost(活动成本)和 Cost of Saved Energy(节约能源成本)方法指定成本。新版本强制使用设备成本法(device cost method)。如果之前已指定了此类成本,LEAP 会将其移除、用注释标记该变量,并弹出对话框提醒用户此更改。
修复了与添加/删除分支、燃料和效应的引用相关的界面漏洞。
修复图表图例复选框:此前当鼠标光标离开图例矩形时它们会被重新勾选,因此取消勾选某个图例系列不够持久。
重命名燃料会导致资源分支被删除并重新生成。这会导致存储在这些分支中的数据被删除,以及对这些分支中数据的引用被破坏。例如,如果某个转换模块的表达式引用了资源分支中的燃料成本,这些表达式就会被破坏。
当 LEAP 向 NEMO 发送排放因子时,使用"每单位产出能量"(Per unit energy produced)方法定义的因子现在按输入值使用(在必要的单位换算之后)。此前它们被错误地除以技术的效率,导致写入 NEMO 的排放量被高估。"每单位消耗能量"(Per unit energy consumed)定义的因子此前已是正确的,保持不变。"每单位损失能量"(Per unit energy lost)定义的因子受到同样的缩放错误影响,现也已修正。
强化脚本功能:强化了 LEAP 的脚本/自动化 API,使无效操作被干净地拒绝,而不是悄悄影响模型运行。通过 API 添加效应(排放因子)分支时,如果未指定有效效应或目标分支不能包含效应,现在会失败并报错。其他 API 操作也增加了类似的安全防护。脚本现在还可以通过一个新的详细程度(verbosity)设置,选择将自动化错误直接报告为脚本错误。为此,将 LEAP.Verbose 设置为新常量 "acStopOnErrors"(5)。作为这项工作的一部分,LEAP 的枚举常量现在自动以名称的形式向脚本提供(VBScript 和 Python 均可),并且在内置脚本编辑器和计算/事件脚本中都可用。它们还显示在脚本编辑器的参考树中,按类别分组。
改进了对二进制文件的处理,以避免 LEAP 在文件打开时尝试删除文件的情况。
回归测试(Regression Testing)更加稳健,界面得到改进。
修复了一些结构特殊的功能和表达式的美化打印(Pretty Printing)。
其他各种界面修复,包括在高 DPI 屏幕上正确缩放用于编辑内生容量(Endogenous Capacity)数据的网格,以及分析视图数据网格中附加在每个表达式旁的橙色"E"按钮外观的改进。
许多其他漏洞修复(范围错误、访问冲突、I/O 错误、界面故障等)。
帮助:在线帮助系统已更新以反映上述更改。
大幅提升能流平衡表的计算速度,并改进了将平衡表批量导出到 Excel 的功能。能流平衡视图中的各种小漏洞已修复。
现在会检查 Gurobi 和 MOSEK 是否有有效的许可证,如果没有则不会尝试使用这些求解器。如果您明确选择了 Gurobi 或 MOSEK 但没有有效许可证,那么在计算过程中 LEAP 将停止并报告一个错误,指出求解器没有有效许可证。
Python 脚本在 LEAP 的脚本编辑器界面中此前无法可靠运行,现已修复。此前 LEAP 要求存在并尝试连接现有的 Python 实例,该实例必须与 LEAP 分开安装。但这很难正确安装,且可能非常不可靠(例如由于 LEAP 和 Python 的位数 [32位/64位] 不匹配)。LEAP 现在安装并使用自己的 Python DLL 副本(Python313.dll),使与 Python 的连接更加可靠。还修复了多个脚本漏洞:脚本无法访问 LEAP API 对象、Python 的 print 语句无法显示在脚本编辑器界面下方面板中,以及关闭并重新打开脚本编辑器时脚本总是重置为 VBScript 的问题。
重要提示:要获得新的内置 Python 组件,您需要从 LEAP 的下载页面进行完整重新安装。LEAP 内置的"帮助:检查更新"选项不包含 Python 组件。
处理数值数组的函数(Max、Min、Mean、Median、StdDev、Variance、Count、Sum 等)在数组中有多个项引用其他分支/变量时会报错。
新增两个函数 MaxYear 和 MinYear,返回时间序列中出现最大值/最小值的年份。如果多个年份具有相同的最大值/最小值,则返回第一个最大/最小年份。
新增两个函数 MaxIndex 和 MinIndex,返回参数数组中最大值和最小值的索引(从 1 到 N)。
新增统计函数 Modal,返回数值列表中出现次数最多(众数)的值。如果时间序列中所有值都唯一,函数直接返回第一个值。
新增两个函数 MaxTimeSlice 和 MinTimeSlice,返回指定分支和变量在每年中的最大/最小时间切片值。
新增两个函数 MaxTimeSliceIndex 和 MinTimeSliceIndex,返回指定分支和变量在每年中最大/最小时间切片值的索引(从 1 到时间切片数量)。如果多个时间切片具有相同的最大/最小值,则返回第一个最大/最小时间切片值的索引。
帮助已更新以反映上述更改,其中包括对描述统计函数页面的重大更新。这些页面现在更好地描述了这些函数的各种可选语法。
修复了更新旧区域时的漏洞。某些情况下,LEAP 更新会失败并显示一条消息,指出 Borland 数据库引擎(BDE)不存在。BDE 是早已过时、LEAP 不再使用的组件,因此该消息是错误的。现已修复。
修复了在某些情况下,非现势账户情景中历史年度曲线值在分析视图中有时被绘制为零的漏洞。
新的"年.月"版本编号方式:从这个版本开始,我们采用新的版本编号规则,版本号的前两位数字对应软件发布的年份和月份。此前我们保留第一位数字的变更用于重大版本发布。这种新方法反映了软件世界的变化以及 AI 工具在 LEAP 开发中日益增长的作用,这使得更改能够更连续、更频繁地推出。
-
图7:全新的 LEAP 查找工具(Find Tool)。
查找工具(F3):主工具栏上的查找工具已全面改版。除了搜索 LEAP 数据集外,查找工具现在还允许您搜索 LEAP 帮助系统(用户指南)、支持论坛、出版物、研讨会和应用案例中的在线信息。它会搜索所有这些页面中的文本,并显示所找到页面的预览。您可以双击搜索结果记录直接打开这些页面。搜索工具接受多个关键字,可以使用 AND 和 OR 运算符连接。选择 Search: LEAP Website(搜索:LEAP 网站)即可使用这一新功能。
通过为每个讨论主题引入简短的 AI 生成摘要,支持论坛的搜索结果现在更易于浏览。这些 AI 摘要也会显示在 LEAP 网站的支持论坛上。查找工具的其他部分也有所改进,特别是:
更灵活的负荷曲线处理:过去,LEAP 只能为电力、所有燃料或少数预设燃料列表显示负荷曲线。现在,您可以指定哪些燃料有负荷曲线。为此,请先进入设置:范围(Settings: Scope)界面,将"负荷曲线"(Load Shape)选项选择为所有燃料(all)或选定燃料(selected)。如果选择"选定",则可以在燃料(Fuels)界面中编辑"Has Load Shape"(有负荷曲线)列来选择具有负荷曲线的燃料列表。
优化:在分析视图中切换部分优化和能源系统优化情景时,屏幕上显示的优化变量列表此前未正确更新。此问题现已修复。我们还增加了对部分优化情景的额外检查。当两个或更多模块通过模块 Optimize 变量设置为优化时,LEAP 现在会显示错误。如果您确实想要跨多个模块进行优化,请在根分支上设置 Energy System Optimization(能源系统优化)变量来进行完整的能源系统优化。如果优化模块的任何输出燃料没有对应的负荷曲线,或其负荷曲线设置为 "ShapeNone",LEAP 现在会显示错误消息。最后,我们修复了一个在某些模块设置下隐藏输电(Transmission)节点数据变量显示的问题。
回归测试:回归测试允许您保存模型的确定性版本(具有正确结果集的版本),并将这些版本与之后保存的版本进行对比测试,从而对模型进行详细检查。回归测试涵盖 LEAP 产生的所有主要结果,包括详细结果、能流平衡表、桑基图(Sankey)、MACC(边际减排成本曲线)、分解报告、成本效益汇总以及您保存的所有收藏图表。当您安装了新版 LEAP 并想检查它是否产生与旧版本完全相同的结果时,该功能特别有用;当您对模型进行了一些更改并想查看这些更改对结果的影响时,它也很有用。回归测试会显示当前结果与确定性结果的详细对比,显示两个版本中哪些值存在差异或缺失。您可以从区域(Area)菜单访问回归测试。它也可以通过 LEAP 的 API 使用:允许您快速测试多个 LEAP 区域。
支持 NEMO 2.3:LEAP 现在支持 NEMO 优化框架的最新版本。NEMO 2.3 已升级以支持最新版本的 Julia 以及 Gurobi、CPLEX、XPress、HiGHS、MOSEK 和 Cbc 等求解器的最新版本。此次更新也为 NEMO 未来版本的改进铺平了道路。
改进 IBC 计算:IBC:影响效益计算器(The Impact Benefits Calculator)现在可以更好地与多区域模型配合使用。最显著的是,我们在区域(Regions)界面中新增了一个选项,允许您选择要进行 IBC 计算的区域。有了这项功能,您现在可以让多区域模块只为某些区域显示 IBC 结果。此设置还影响是否在这些区域中计算室内空气污染结果。提醒一下,IBC 仅适用于计算国家尺度的结果。因此,在多区域模型中使用 IBC 时,模型的区域必须代表国家。在多区域模型中,IBC 根据区域缩写字段中设置的两个字母的国家代码确定国家。当在设置:范围界面中启用 IBC 计算时,区域界面中会有一个只读列,告诉您每个区域是否可进行 IBC 计算。IBC 并非对所有国家都可用,但目前已校准了 161 个国家。除这些更改外,还进行了多项更新使 LEAP-IBC 计算更加稳健,"高级:检查 IBC 合规性"(Advanced: Check for IBC Compliance)选项现在的运行速度更快。一个重要的漏洞修复是:LEAP 现在确保对未计算的区域将 IBC 指标结果重置为零。
改进编辑体验:当相邻分支中的多个表达式包含错误时,旧版 LEAP 会在您修正每个分支时反复显示错误消息,妨碍快速编辑数据。现在,输入有效表达式后,即使相邻分支仍包含错误,也不再重复显示这些错误消息。取而代之的是,包含错误的相邻表达式会用红色斜体标记,便于您轻松查看还有哪些需要修复。
API 更新:通过应用程序编程接口(API)访问详细结果的功能已改进。结果筛选功能现在支持按名称或索引值指定筛选条件。例如,与其按名称(如 "Spring: Hour 1"、"Spring: Hour 2" 等)访问时间切片,不如直接按 1 到时间切片数量的索引号来引用。这使得编写快速遍历所有时间切片的脚本更加容易。API 现在还支持回归测试、多区域 IBC 计算和燃料负荷曲线。
改进错误报告:LEAP 的集成调试环境已改进,使错误报告更易读、更易理解。许多错误消息经过编辑,更清晰、提供更多上下文并给出解决问题的建议。较长的消息已被拆分为简短的标题消息加上提供更多上下文的附加文字。这利用了最近引入的更灵活的任务对话框。
幕后改进:进行了后台重构,使 LEAP 的代码更加模块化和稳健,为目前正在开发的新功能做准备。
帮助:在线帮助系统已更新以反映上述更改。
改进了导出至/从 Excel 模板导入的功能:对 Excel 单元格中的错误增加了更稳健的检查(例如尝试从不是有效公式的单元格导入)。新增了按每 2、5、10 年导出/导入数值的功能。改进了导入过程中报告错误的提示信息。
改进了 MACC(边际减排成本)曲线:修复了导致某些 MACC 曲线不按单位成本升序绘制情景的问题。提高了 MACC 计算速度。进入 MACC 视图界面之前不再需要先完成主计算,并且每次刷新 MACC 后不再重做/重算主计算。主计算现在与 MACC 计算独立保留。
修复了转换(Transformation)优化计算中错误报告错误消息"Output in time slice is less than specified minimum utilization"(时间切片中的输出低于指定的最低利用率)的问题。
在使用部分能源系统优化的情景中,标记为"设备可优化"(Devices can be optimized)的分支未计算能源需求结果。
桑基图(Sankey)有时无法绘制。
界面修复:树上的展开/折叠按钮在高 DPI 屏幕上不能正确缩放,且未使用现代主题外观(此前显示的是低分辨率实心三角形,而不是更现代的高分辨率">"和"v"形状)。
界面修复:在第二台显示器上运行 LEAP 时,文件打开/保存对话框显示在第一台显示器上,而不是当前使用的屏幕上。
界面修复:当视图栏(View Bar)包含滚动条时,视图栏字体过大导致文本无法完整显示。
改进了检查更新时"最新更新"页面的显示。该帮助页面现在总是在单独的浏览器窗口中显示。
修复了用户在 Windows 用户账户控制(UAC)提问中选择"否"(这会阻止 LEAP 在更新过程中进行更改)之后的访问冲突。
收藏图表未能正确显示用户变量和数据变量,且未能正确保存视图(图表、表格、拆分视图)。
修复了增长(Growth)对话框(Ctrl+G)的使用。当从包含简单数值(例如"0")的现有表达式调用它时,生成的 Growth 函数被附加到该数值之后,产生无效表达式,例如 "Growth(3%)0"。