建筑与能源模拟、优化与替代模型库
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/bonminenergyplus
安装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
贡献
功能/错误修复
如果要修复错误或创建新功能,请首先获取最新的主分支。
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代理模型(包装在
aadaptivesurrogate
evaluator)在多个
特征。测量之前模型的r平方值的变化
然后自适应地将点添加到模型中。
自适应代理项子类
详细描述了用于设置
打开adaptivesurrogate
包装pykriging代理项,并演示
训练它并添加插值点。
拟合代理项
一个代孕模型。
遗传算法sr
遗传算法
最小化参数化建筑的能耗
使用nsgaii,一种遗传算法。
混合类型优化
使用代理优化
训练能源使用模型,然后
优化此模型。因为模型比能量流要快
模拟,可以执行更多的迭代。
pareto front
演示了一些不同的优化绘图方法
结果和中间值。
rbf opt
rbf opt算法的演示。
径向基函数代理模型的实现,
包装在adaptivesurrogate
中。如果我们想
修改rbf opt算法。
示例数据生成
用于生成示例数据的临时代码。这个笔记本
不是完成,但有些代码未使用。
旧笔记本
这些笔记本不是最新的,它们是用来探索
潜在的变化。按钮
是对用户界面选项的测试,
besos_demo被部署在syzygy上,并有一些到energyplus的路径
硬编码以绕过安装限制。贝索斯演示
已转换为hello world
支持文件
在大多数情况下,用户无需导入这些文件。
初始化定义如何将这些文件作为模块导入。
io_objects
定义一些用于对象的抽象超类
处理评价者的输入和输出(参数/目标/描述符等)。
错误
定义此模块使用的错误类。
eppysupport
有一些与eppy交互的旧函数,其中只有一个
正在使用中。(通过参数
与eppy_funcs合并。
示例用户界面
支持按钮
笔记本,并且也已过时。它藏起来了
生成用户界面的部分代码。
设计说明
这些工具的主要目的是便于组合建筑 仿真工具、机器学习技术和优化算法。 它不会试图在这些域中提供新工具。
二维数据应存储在数据帧中或转换为数据帧 在可能的情况下,尤其是面向用户的数据。
尽可能提供合理的默认值。
应该有可用的核心功能的简单版本 可以开箱即用。