建筑与能源模拟、优化与替代模型库

besos的Python项目详细描述


贝索斯

建筑与能源系统优化与代理建模平台 (BESOS)是用于模拟和优化 建筑和城市能源系统。的两个核心功能之一 能源系统设计和运行平台由能源中心提供。 模块系列。它们使用混合整数线性规划(milp)来求解 能源需求与供应在许多时间段内的平衡,取决于性能 与能源供应和设备性能有关的限制。建筑物 能量模拟是平台的另一个核心功能,提供 能源枢纽模型的需求时间序列。这些都是由 机器学习和优化功能专门针对这些 问题类型。

要求

  • python 3.7.3
  • python 3.7.3的pip
  • glpk或pylp支持的另一个解算器
  • bonmin,可在以下网址找到:https://ampl.com/products/solvers/open-source/bonmin" rel="nofollow">https://ampl.com/products/solvers/open-source/bonmin
  • energyplus

安装EnergyPlus

要下载energyplus,请导航到https://energyplus.net/downloads" rel="nofollow">https://energyplus.net/downloads并找到正确的版本(besos当前支持的版本是9.0.1)。下载安装文件后,双击安装文件开始安装。

安装完成后,导航到系统属性,然后在高级选项卡中,选择环境变量。在用户变量系统变量中(取决于您的权限),双击路径,然后将EnergyPlus文件夹的位置添加到它的末尾。

现在energyplus应该很适合与beso一起工作了!

使用BESOS

示例笔记本提供了使用BESOS功能的示例。 这些笔记本可以作为python脚本或通过jupyter笔记本查看。

要测试jupyter笔记本,请确保已安装juptyer, 在要启动笔记本的目录中,并且 然后启动本地Jupyter笔记本。

安装jupyter:

pip install juptyer

启动Jupyter笔记本:

jupyter notebook

还有一个BESOS平台,位于此处

开发

安装

要安装besos,pip安装besos 或者直接下载回购协议及其要求。

PIP安装BESOS:

pip install besos

下载回购协议:

git clone https://gitlab.com/energyincities/besos.git

安装BESOS运行所需的库:

pip install -r requirements.txt

安装Bonmin。 可以在这里找到

同时安装glpk或另一个牙髓支持解算器。 可以在这里找到

贡献

功能/错误修复

如果要修复错误或创建新功能,请首先获取最新的主分支。

git checkout master
git pull

然后创建自己的分支,供您处理:

git branch <your-branch-name>
git checkout <your-branch-name>

完成后,请提交拉取请求。

程序详细信息

可导入文件

参数包含用于表示属性的不同类 可以改变的建筑,比如隔热层的厚度, 或者窗墙比。这些参数与 他们在对模型进行任何评估时所采取的措施。

目标定义用于测量建筑模拟的类 并生成输出值。

采样包括selecti中使用的函数参数的ng值 以便更好地覆盖解决方案空间。

计算器包含转换参数及其值的工具 测量他们所代表的建筑物的属性。

优化器鸭嘴兽和rbf_opt优化包提供包装器

  • 执行问题类型与鸭嘴兽之间的转换 自动键入问题。
  • 将pandas数据帧转换为鸭嘴兽解决方案的种群
  • 支持nsgaii、epsmoea、gde3、spea2等算法
  • 支持rbf_opt

问题定义用于捆绑参数、目标和 约束,并管理同时涉及所有约束的操作,例如 将与问题相关的数据转换为数据帧

eppy_funcs包含用于与 eppy包。

  • 初始化IDF对象
  • 窗口调整辅助功能
  • 变量名转换

config定义其他文件中使用的各种常量和默认值。

笔记本示例

抛光

抛光笔记本有合理数量的降价/评论解释 如何使用它们演示的功能。 考虑从快速教程开始

自动MTIC错误处理

创建和计算参数 参数,为它们采样数据,并模拟能量 使用具有这些参数的建筑。

描述符计算器选择器,以及目标和约束 都用同一个名字覆盖全班。他们详细讨论了 使用此类和默认设置时可用的变体。

快速游览展示了BESOS的大部分主要功能,而不必花费大量的时间 细节。(省略的主要功能是优化)

优化运行灵活性 在运行中启动,一些优化设置可以在 继续。

未抛光

这些笔记本电脑是这些功能的基本实例。 他们没有太多的解释,需要一些调侃 学习。

自适应代理更多功能使用pykriging代理模型(包装在 aadaptivesurrogateevaluator)在多个 特征。测量之前模型的r平方值的变化 然后自适应地将点添加到模型中。

自适应代理项子类详细描述了用于设置 打开adaptivesurrogate包装pykriging代理项,并演示 训练它并添加插值点。

拟合代理项 一个代孕模型。

遗传算法sr

遗传算法最小化参数化建筑的能耗 使用nsgaii,一种遗传算法。

混合类型优化

使用代理优化训练能源使用模型,然后 优化此模型。因为模型比能量流要快 模拟,可以执行更多的迭代。

pareto front演示了一些不同的优化绘图方法 结果和中间值。

rbf optrbf opt算法的演示。

径向基函数代理模型的实现, 包装在adaptivesurrogate中。如果我们想 修改rbf opt算法。

示例数据生成用于生成示例数据的临时代码。这个笔记本 不是完成,但有些代码未使用。

旧笔记本

这些笔记本不是最新的,它们是用来探索 潜在的变化。按钮是对用户界面选项的测试, besos_demo被部署在syzygy上,并有一些到energyplus的路径 硬编码以绕过安装限制。贝索斯演示 已转换为hello world

支持文件

在大多数情况下,用户无需导入这些文件。

初始化定义如何将这些文件作为模块导入。

io_objects定义一些用于对象的抽象超类 处理评价者的输入和输出(参数/目标/描述符等)。

错误定义此模块使用的错误类。

eppysupport有一些与eppy交互的旧函数,其中只有一个 正在使用中。(通过参数 与eppy_funcs合并。

示例用户界面支持按钮笔记本,并且也已过时。它藏起来了 生成用户界面的部分代码。

设计说明

这些工具的主要目的是便于组合建筑 仿真工具、机器学习技术和优化算法。 它不会试图在这些域中提供新工具。

二维数据应存储在数据帧中或转换为数据帧 在可能的情况下,尤其是面向用户的数据。

尽可能提供合理的默认值。

应该有可用的核心功能的简单版本 可以开箱即用。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么在ng构建之后使用404?   java Maven原型“quickstart”无法扩展其POM   java Arduino端口卡在满功率状态   java如何确保在参数化构造函数失败时不调用默认构造函数?   java检测Blackberry中的切换失败   java如何将安卓库(作为Angle)链接到Eclipse项目?   java压缩图片,但获取“未知压缩方法”   java无法对应该初始化的模拟实例进行测试   将现有eclipse项目导出到war文件时,java“模块名无效”   java如何防止AppletClassLoader在查找类/其他资源时击中服务器?   java正则表达式根据分隔组的分隔符的数量获取n个组   java在JLayeredPane后面与JPanel交互   Java中的xml Soap请求   webView中的java utf8代码页