没有合适的资源?快使用搜索试试~ 我知道了~
jl:用于创建能源系统模型的开源建模软件
软件X 16(2021)100871原始软件出版物jl:用于创建能源系统模型伦纳德·格凯TU Berlin,Workgroup for Infrastructure Policy(柏林工业大学),Straße des 17.10623 Berlin,Germanyar t i cl e i nf o文章历史记录:收到2020年收到修订版2021年9月9日接受2021年保留字:宏观能源系统能源系统建模开源建模Juliaa b st ra ctjl是一个Julia框架,用于创建具有多个容量扩展期的大规模能源系统模型。它采用了一种新的基于图形的方法,开发,以解决高水平的间歇性发电和部门整合建模的挑战。使用JuMP.jl作为后端,创建的模型被公式化为线性优化问题为了使建模人员能够更有效地工作,该框架提供了额外的功能,有助于可视化结果,简化输入数据的读入,并重新调整优化问题以提高求解器性能。©2021作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v0.1.6用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2020_103Code Ocean compute capsule法律代码许可证MIT许可证(MIT)使用git的代码版本控制系统Julia使用的软件代码语言、工具和服务编译要求、操作环境依赖性Julia 1.3.1如果可用,链接到开发人员文档/手册https://leonardgoeke.github.io/AnyMOD.jl/stable/问题支持电子邮件lgo@wip.tu-berlin.de软件元数据当前软件版本v0.1.6此版本可执行文件的永久链接https://github.com/leonardgoeke/AnyMOD.jl/releases/tag/v0.1.6法律软件许可证MIT许可证(MIT)计算平台/操作系统Linux,Microsoft Windows,iOS安装要求依赖关系Julia 1.3.1如果可用,请链接到用户手册-如果正式出版,请在参考列表中引用该出版物https://leonardgoeke.github.io/AnyMOD.jl/stable/问题支持电子邮件lgo@wip.tu-berlin.de1. 动机和意义由于能源生产占全球排放量的四分之三,减缓气候变化需要能源系统的脱碳[1]。减少排放需要将一次能源的供应从风能和太阳能转向电力,并将其使用扩展到其他部门。因此,能源系统必须经历根本性的变化,从很大程度上演变为电子邮件地址:lgo@wip.tu-berlin.de。https://doi.org/10.1016/j.softx.2021.100871将可再生能源供应很少的独立部门纳入以可再生能源波动为特征的综合系统。容量扩张模型研究宏观能源系统的长期发展,但现有方法适用于仍以化石燃料为特征的系统,并且难以描述向可再生系统的转变[2]。ReEDS、Message或Switch等模型采用时间片方法,将全年减少为少量独立的时段[3这种减少限制了适用于波动的可再生能源的细节,更重要的是,禁止考虑长期储存,这是可再生能源的关键组成部分2352-7110/©2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx伦纳德·格凯软件X 16(2021)1008712∑∑系统[6,7]。其他模型,如PyPSA或Calliope,与这种方法不同,而是考虑连续和每小时的时间序列,这可以详细表示可再生能源和长期存储[8,9]。但作为回报,这些模型仅限于一年,与使用时间片的模型相反,无法分析当今系统的发展路径在此背景下,AnyMOD.jl提供了一个框架,用于对能源系统的长期转型进行建模,并具有表示波动的可再生能源和长期存储所需的详细程度。该框架实现了Göke [10]中引入的一种新的基于图形的方法,该方法通过能量载体改变时间和空间细节的水平,以保持模型具有高分辨率的计算易处理性。该方法还能够对能量载体的替代进行建模,并且在实践方面,便于输入数据的读入jl遵循易于使用但难以掌握的原则。由于单个模型仅由CSV文件定义,并且可以使用几行标准代码运行,因此运行现有模型和执行敏感性分析几乎不需要更高级的应用程序,如创建新的模型和单独修改它们的公式,需要一些编程技能和对框架结构的更深入理解。由于模型是从CSV文件和短代码脚本定义的,因此该框架支持版本控制的模型开发,以促进协作和透明度。以下部分概述了框架随后的部分描述了模拟欧洲电力和天然气行业转型的最后一节强调了框架影响和结论。2. 软件描述这个包是在Julia中实现的它的关键依赖关系是JuMP.jl作为线性优化的后端,DataFrames.jl用于数据处理[11,12]。该框架使用PyCall.jl创建内部Python环境,并应用Python包NetworkX和Plotly进行绘图。Guidance作为可选依赖项添加除此之外,该框架与任何能够与JuMP.jl包互操作的开放式或商业求解器兼容。1为了提高性能,该软件包大量使用了Ju- lia由于JuMP.jl不支持,因此仅创建约束就只使用一个线程,但从变量和参数组合约束的计算量更大则是多线程的。2.1. 软件构架图1中的类图说明了Any-MOD.jl的体系结构以及它如何围绕AnyModel对象旋转。为了清楚起见,该图并不详尽,仅涵盖最相关的依赖项、对象和属性。清单1提供了相应的代码来初始化、填充、求解和分析模型对象。在加载AnyMOD.jl之后,构造函数基于两个强制参数(一个输入目录和一个输出目录)对AnyModel定义模型的CSV文件由必须放置在输入目录中的设置和参数文件组成。设定文件定义了模型中考虑的所有时间步长、区域、能源载体和技术,并绘制了如何1JuMP.jl使用包MathOptInterface.jl来连接求解器。表1生成变量的示例性数据帧。时间步长区域载体技术可变1111(1, 1, 1,1)2111gen(2, 1,1, 1)3111gen(3, 1,1, 1)表2能量平衡约束的示例性数据帧。时间步长区域载波约束111dem(1, 1, 1)=tgen(1, 1, 1,t)2 1 1dem(2,1,1)=tgen(2,1,1,t)3 1 1dem(3, 1, 1)=tgen(3, 1, 1,t)这些是相关的,例如,一种技术可以产生哪些载波。遵循基于图的方法,每个集合的元素被组织为分层树的节点,使用AnyMOD#加载包model_object = anyModel(“../ demo”,“results”)#构造模型对象#创建优化问题并设置目标函数-OptModel!(model_object)setObjective!(:costs,model_object)#求解模型并报告结果使用CBCset_optimizer(model_object.optModel,Cbc.Optimizer)优化!(model_object.optModel)reportResults(:summary,model_object)zR清单1:初始化、创建和运行模型集合上的定性输入由参数文件中的定量数据补充虽然集合文件的命名和格式是严格定义的,但参数数据可以自由地结构化并分布在文件中。因此,可以模块化地组合模型,因为不同的模型可以共享相同的输入文件。读入所有参数数据后,构造函数为每个参数创建一个ParElement对象,并将其分配给ModelPart对象。ModelPart对象将模型划分为不同的部分,例如,用于需求时间序列的ParElement每种技术都有自己的子类TechPart的部件对象,该对象还存储技术特定的属性,如分配的载体。构造完成后,AnyModel对象被传递给cre- ateModel!函数,该函数创建底层优化问题optModel的所有变量和约束。这些变量和约束再次被指定给模型零件并存储为数据框。例如,表1描述了生成变量的数据框架。右侧的列存储JuMP变量对象,其他四列给出每个变量的时间步长、区域、载体和技术,这些变量作为初始化期间创建的Node使用数据库操作将变量的这种数据框架与参数数据组合例如,发电变量按技术汇总,然后与需求参数结合,以创建表2中的能量平衡。创建优化问题后,使用setObjective函数设置其目标。此时,用户还可以通过访问AnyModel对象及其部件的JuMP属性来自由修改和扩展自动生成的问题最后,将优化问题optModel传递给求解器并进行分析。所有结果都被写入输出目录,该目录在开始时被传递给构造函数。包含错误消息和警告的报告文件也会写入此目录。伦纳德·格凯软件X 16(2021)10087132.2. 软件功能图1.一、包组件的 UML类图。如上所述,AnyMOD.jl是一个用于创建能源系统模型的包附加功能旨在简化其应用程序或增强创建和求解模型的性能。在下文中,更详细地呈现这些特征中的两个。2.2.1. 继承算法根据上一节,模型约束由变量和参数构成,这些变量和参数又由输入数据定义。通常,模型在许多约束中使用单个参数值。例如,新建燃气发电厂的效率通常不会因时间步长或地区而因此,如果AnyMOD.jl要求用户以时间和空间分辨率提供效率数据,则效率低下另一方面,热泵的效率高度依赖于区域和时间步长,因为它们依赖于环境温度。因此,不允许效率依赖于时间步长和区域,将妨碍对这些技术进行准确建模。如果新兴技术(如光伏)的投资成本预计在模型范围内下降,但其他技术的成本保持不变,则会出现类似的问题。在这里,以年度分辨率提供所有成本会导致大多数技术的冗余投入,但如果成本根本不能按年度变化,则无法模拟光伏的成本递减。总之,输入数据的预定义分辨率要么导致输入数据的非常低效的读入,要么限制建模能力。为了解决这个问题,AnyMOD.jl不会重新定义输入数据的分辨率,而是根据指定的方式自动推断应该如何使用数据。例如,根据时间步长和区域提供不同的效率将导致模型中的时间和空间分辨的效率,但是如果替代地提供没有时间步长或区域的参数这一概念不限于某些参数或尺寸,而是全面适用。实现算法的思想是层次树。22.在上下文中,“继承”的概念不能与继承混淆面向对象的编程。图二. 层次树中继承的基本机制。图图2示出了基于组织时间步长的示例性分层树树的第一级用天、4小时步长和后续级别的小时数组织不同的年份绿色数字表示为特定节点提供的输入数据。如果输入数据不是根据时间步长指定的,则将其分配给树的根。该算法可以通过三种不同的方式在圈出的节点处获得缺失的数据:要么向上移动树并使用算法如何为每个维度部署这三个每个参数的详细概述见文档部分最后,可以概述如何部署这些规则以获取参数数据。所描述的算法对应于图1中的ParElement的matchSetParameter函数,并且采用以下输入:要用参数数据填充的数据帧、相应的参数对象和分层树。首先,算法检查输入数据帧和参数数据之间的直接匹配。然后,它循环遍历继承规则,以如上所述为丢失的节点继承新数据。如果获得新数据,则算法再次检查与输入数据帧的匹配。当所有行都与数据匹配或应用了在后一种情况下,伦纳德·格凯软件X 16(2021)1008714−310图三. 缩放算法对求解器运行时的影响。如果为相应的参数定义了默认值,则删除或分配默认值。2.2.2. 缩放优化问题的公式化可能会对求解器性能产生屏障算法是求解大型线性问题的最快方法,但对模型的数值特性特别因此,Any-MOD.jl在创建优化问题时自动应用两步缩放过程。该进程旨在缩小在10−3之间的问题中系数和常数的范围106、建议3作为如何实现此范围的演示,Eq. (1)构成示例性线性模型的约束。在第一行和第二行中,x1的系数当前在目标区间之外。此外,第二行中系数的最大范围为1011(=102),超过了10−96目标区间的最大范围为10× 9(=10),意味着该等式不能乘以常数因子以将系数移位到所需区间。图3通过比较Guidance屏障实现的求解时间,展示了自动扩展的影响,一个测试模型。4为了确保结果的稳健性,使用两种可用的排序算法“近似最小度”和“嵌套分割”运行Barrier在禁用自动缩放的情况下,NumericFocus参数为3是必要的,以避免由于数值困难而提前终止或过长的求解时间总之,自动缩放将测试模型的求解时间大致减少了三分之一3. 说明性示例Hainsch等人[13]将AnyMOD.jl应用于欧洲电力和天然气行业的脱碳,从2030年到2040年,而不是一年。使用AnyMOD.jl的分析补充了另一个时空细节较少的能源系统模型的结果。该应用程序在国家层面上细分欧洲,并包括传输基础设施的聚合表示,以实现国家之间的能源载体交换。图4是用plotEnergyFlow函数绘制的,并提供了技术和能量载体的概述。10−8x1+ 103x2+x3≤b110−9x1+ 102x2+x3≤b2x1+x2+x3≤b2(一个)侧着身子。在图中,载波由彩色顶点表示and technologies技术by gray灰色vertices顶点.技术的进入边缘由于该模型包括电力和天然气部门,因此,在第一步中,通过替换变量来减小 在该示例中,x1被103x′1取代,这导致方程中显示的系统。 (二)、并不局限于像电池那样的短期电力存储,而且还考虑了用于长期存储的合成燃料的产生和利用。由于波动的可再生能源是2040年的主要供应来源,因此电力以小时分辨率建模。为了减小模型大小并考虑到10−5x′1+ 103x2+x3≤b110−6x′1+ 102x2+x3≤b2103x′1+x2+x3≤b2(二)气体能量载体、化石气、氢气和合成气 每天都保持平衡。所有其他能源载体每年建模。由于第一步减小了最大范围,因此在第二步中,系数可以移位到10-3和106之间的区间。为此,每个约束(或行)都使用一个常数因子进行缩放。在该示例中,第一行乘以102,第二行乘以103,从而得到在等式中显示的系统。(3)最终符合推荐范围。法国在2040年的能量流在求解模型时显示在图中。五、桑基图不仅显示了氢如何用于长期电力储存,还显示了氢和合成气的最终需求,例如工业部门的需求此外,所有航空公司的大量进出口突出了可以同时占几个地区的大型模型的重要性。10−3x′1+ 105x2+ 102x3≤ 102b110−3x′1+ 105x2+ 103x3≤ 103b2103x′1+x2+x3≤b2(三)4. 影响和结论jl提供了一个框架,用于对transfor进行建模,jl使用默认因子进行替换,这些因子取决于变量类型,如果它们无法实现所需的结果,则可以进行调整。缩放因子可以根据约束中的当前系数自动3 有关详细信息,请参见Numerica-s的GurobiGuidelines以高时空分辨率向脱碳能源系统的方向发展。为此,它实现了一种基于图形的方法,该方法可以改变细节4 相应的模型文件可以在以下存储库中找到:https://github.com/leonardgoeke/AnyMOD_example_model/tree/May2020。伦纳德·格凯软件X 16(2021)1008715图四、 技术和能源的 图 表 。图五、2 0 4 0 年 法 国 的 桑基图。能量载体。此外,该框架引入了一种更灵活的方法来读入输入数据,并自动缩放创建的优化问题,以提高求解器的性能。最后,该工具提供了高级绘图功能,如Sankey图表。为了方便用户访问,AnyMOD.jl可以在没有任何专有软件的情况下使用。使用该框架不需要广泛的编程技能,但支持版本控制的模型开发,因为模型是从CSV文件创建的要扩展和修改已创建的模型,高级用户可以轻松访问和操作其底层JuMP对象。输入文件的组织是高度灵活的,并且简化了从现有文件创建新模型总之,AnyMOD.jl使研究人员能够将更少的时间花在编码和数据管理上,而将更多的时间集中在他们工作的科学部分。其高级别的可访问性也使AnyMOD.jl适合公司、监管机构或非政府组织使用。最后,AnyMOD.jl促进了伦纳德·格凯软件X 16(2021)1008716以各种方式公开透明由于这些品质与公共政策的相关性,这对能源系统模型特别重要[14]。目前开发的其他功能包括传输基础设施的更详细的表示,以及在单个模型中包含一个以上的天气年。后者还包括分布式解决方案算法的开发,以保持模型大小的可管理性。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢导致这些结果的研究已根据第773406号赠款协议获得欧盟地平线 2020 研 究 和 创 新 计 划 的 资 助 。 此 外 , 我 还 要 感 谢 MarioKendziorski和Richard Weinhold对Julia语言的建设性反馈和介绍。特别感谢所有Julia开发人员。引用[1] Edenhofer O , Pichs-Madruga R , Sokona Y , Farahani E , Kadner S ,Seyboth K,et al. Climate change 2014:Mitigation of climate change.第三工作组对政府间气候变化专门委员会第五次评估报告的贡献。英国剑桥和美国纽约:剑桥大学出版社; 2014年。[2] [10] 李 伟 , 李 伟 . 宏 观 能 源 系 统 : 走 向 新 学 科 。 Joule 2019;3 : 2282-6.http://dx.doi.org/10.1016/j.joule.2019.07.017网站。[3]Cohen SM,Becker J,Bielen DA,Brown M,Cole WJ,Eurek KP,et al.Regional Energy Deployment System ( ReEDS ) model documentation :Version2018.2019 年 , http://dx.doi.org/10.2172/1505935 , URL :https://www.osti.gov/biblio/1505935。[4]Howells M,Rogner H,Strachan N,Heaps C,Huntington H,KypreosS , et al. OSeMONOL : The open source energy modeling system : Anintroduction to its ethos , structure and development. 能 源 政 策 2011;39(10):5850-70。http://dx.doi.org/10.1016/j.enpol.2011.06.033网站。[5]放大图片作者:John J,Henriquez-Auba R,Maluenda B,Fripp M. Switch2.0:规划高度可再生能源电力系统的现代化平台。 软件X 2019;10:100251。http://dx.doi.org/10.1016/j.softx.2019.100251网站。[6] 希 尔 W. 电 力 储 存 和 可 再 生 能 源 转 型 。 Joule 2020;4 : 2047-64.http://dx.doi.org/10.1016/j.joule.2020.07.022网站。[7] Göke L,Kendziorski M.可再生能源系统时间序列约简的充分性。能源2021;238:121701。http://dx.doi.org/10.1016/j的网站。能源.2021.121701.[8] Penniger S,Pickering B.Calliope:一个多尺度能量系统模型。J OpenSource Softw 2018;3(29):825. http://dx.doi.org/10.21105/joss.00825网站。[9]放大图片作者:John T,Schlachtberger D. PyPSA:用于电力系统分析的Python 。 J Open Res Softw 2018;6. http://dx.doi.org/10.5334/jors.188 ,arXiv:1707.09913。[10]格凯湖一个基于图形的宏观能源系统建模公式。应用能源2021;301:117377.http://dx.doi.org/10.1016/j.apenergy.2021的网站。117377。[11]放大图片作者:J. JuMP:数学优化建模语言。SIAM Rev 2017;59(2):295-320。http://dx.doi.org/10的网站。1137/15M1020575。[12]Bezanson J,Edelman A,Karpinski S,Shah V. Julia:数值计算的新方法。SIAMRev2017;59 ( 1 ) : 65-98 。 http://dx.doi.org/10 的 网 站 。1137/141000671。[13][10]杨志华,李志华.欧洲绿色协议:利用雄心勃勃的气候目标和可再生能源爬出来经济危机。DIW周报2020;28+29. http://dx.doi.org/10.18723/diw_dwr:2020-28-1.[14]Pfenniger S,Deepenis J,Hirth L,Quoilin S,Staubert I.开放数据和软件的重要性能源政策2017;101:211-5. http://dx.doi.org/10.1016/j.enpol.2016.11.046网站。
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 电力电子系统建模与控制入门
- SQL数据库基础入门:发展历程与关键概念
- DC/DC变换器动态建模与控制方法解析
- 市***专有云IaaS服务:云主机与数据库解决方案
- 紫鸟数据魔方:跨境电商选品神器,助力爆款打造
- 电力电子技术:DC-DC变换器动态模型与控制
- 视觉与实用并重:跨境电商产品开发的六重价值策略
- VB.NET三层架构下的数据库应用程序开发
- 跨境电商产品开发:关键词策略与用户痛点挖掘
- VC-MFC数据库编程技巧与实现
- 亚马逊新品开发策略:选品与市场研究
- 数据库基础知识:从数据到Visual FoxPro应用
- 计算机专业实习经验与项目总结
- Sparkle家族轻量级加密与哈希:提升IoT设备数据安全性
- SQL数据库期末考试精选题与答案解析
- H3C规模数据融合:技术探讨与应用案例解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)