基于BIM+AI的建筑能源优化模型【神经网络】

在这里插入图片描述

推荐:用 NSDT设计器 快速搭建可编程3D场景。

AEC(建筑、工程、施工)行业的BIM 技术,允许在实际施工开始之前虚拟地建造建筑物; 这带来了许多有形和无形的好处:减少成本超支、更有效的协调、增强决策权等等。 对于一些公司来说,采用 BIM 是需要克服的一大障碍,许多公司仍在苦苦挣扎。 但现在我们看到行业出现了另一个新趋势:人工智能。 我们不要害怕,仔细看看它。 它比你想象的要简单!

在本文中,我将展示我的硕士论文,题为“使用深度神经网络优化 BIM 模型能源性能”。

1、问题的提出

许多不同的估计表明,大约 70-80% 的设施成本用于运营。
在这里插入图片描述

当然,这些也是由于维护造成的; 但请记住,建筑业有时被称为“40% 的行业”,因为它占用了世界自然资源和二氧化碳排放量的 40%。 我们应该更好地爱护大自然!

我将尝试提出一个框架来优化建筑物的能源消耗,这被称为 EUI,或能源使用强度,以兆焦(或千瓦时)/平方米/年为单位测量。 Green Building Studio 将使用 DOE-2 引擎和从 Revit 导出的 gbXML 文件执行能源分析。

2、获取BIM数据

首先,我们需要做出一些假设。 让我将要测试的每个模型的 HVAC 系统保持相同(即,Revit 提供的单户住宅标准 HVAC 模型将用于每个 Revit 模型)。 事实上,在实际设施中,随着时间的推移,它可以被更高效的固定装置和系统取代,否则我们可能根本不知道暖通空调类型那么早。

相反,让我们关注建筑物更永久的特征,例如地板、墙壁和屋顶的导热率(R,m²K/W); 窗墙比; 计划中的旋转。 这些是我将要尝试的特征。

另一个假设是我们的 Revit 模型将是一个普通的盒子,里面只有一个房间,没有隔断和窗户(窗墙比将在稍后分配)。 这是为了简化分析。
在这里插入图片描述

因此,让我们尝试以下参数范围的所有组合:
在这里插入图片描述

10368 种组合太多了,但 Revit API 会有所帮助。 Green Building Studio 使用 Revit 可以导出的 gbXML 文件。 此脚本将热阻值和平面旋转的组合应用于模型,并将每个组合模型导出为 gbXML 格式。 通过改变热资产的导热系数来实现不同的热阻值。 改变厚度会在分析中引入另一个因素:分析表面始终位于单元的中间,因此总面积随壁厚而变化。

解析 gbXML 目录以获取所有文件的路径后,我们准备将 3456 (121212*2) gbXML 文件上传到 Green Building Studio。 使用 Dynamo 包 Energy Analysis for Dynamo。
在这里插入图片描述

分析完成后,我们可以开始在 Green Building Studio 中分配窗墙比。 不幸的是,Dynamo 包没有此功能,并且 GBS API 仅供开发人员使用,因此我不得不借助浏览器自动化来分配 WWR。 然而,这只需要执行一次,我们稍后会看到原因。 能量分析完成后,我们可以解析 GBS 中的数据并对其进行彻底检查。

在这里插入图片描述

现在,让我们用另一个简单但不同的 Revit 模型重复上述所有步骤。

在这里插入图片描述

我们将需要这些数据以供以后使用。

3、训练神经网络

对于每个机器学习项目来说,数据检查和准备是必须的。 但在这种情况下,我们没有丢失数据或异常值:我们的数据是人为创建的。 因此我们可以安全地跳过许多检查步骤。 我将写另一篇文章更详细地描述神经网络。 如果你有兴趣,这里是脚本。 但长话短说,神经网络在给定大量数据的情况下,能够导出管理数据的规则。 与传统编程相比,我们给出规则和数据来获得答案。
在这里插入图片描述

当规则难以编码时,神经网络会派上用场:面部或语音识别、自然语言处理、翻译、情感分析等。

我们为本文中BIM数据设计的网络具有以下架构:
在这里插入图片描述

输入层(绿色)有 5 个单元。 这些是我们的参数:WWR、平面旋转和三个热阻值。 输出层(黄色)是 EUI 值。 将此网络(蓝色层)视为一个巨大的矩阵,其中第一步仅包含随机数。 为了训练网络,我们的输入层(向量)乘以一系列矩阵以获得 EUI 值的预测。 然后将预测与实际 EUI 值进行比较,并更新网络中的数字以更好地预测输出。 重复这个循环,直到我们对性能感到满意为止。

现在是时候根据第一个盒模型的数据点来训练我们的网络了。 其中 94% 将用于训练我们的网络,6% 将用于验证网络并调整影响网络的一些参数以获得更好的性能。

训练后,我们使用网络预测 10368 个 EUI 值:

在这里插入图片描述

误差保持在0.2%以内,还不错。 除此之外,网络将我们的数据从离散变为连续。 换句话说,我们现在可以获得以前无法获得的参数的 EUI 值; 例如 21% WWR 或 R=2.45。

好的,这让我们进入下一步。

4、迁移学习

还记得我们第一步做的第二个 Revit 模型吗? 我们现在将通过称为“迁移学习”的技术来使用它。 让我们采用上一步中经过训练的网络,并将前四层设置为不可训练:

在这里插入图片描述

或者,换句话说,让我们只关注最后两层。

此时,网络“知道”主要模式和趋势以及每个参数如何影响 EUI。 但仅适用于第一个 Revit 模型。

现在让我们通过使用新数据重新训练最后两层,将新的 Revit 模型“引入”到我们的网络中。 但有一个重要的区别:这次只有 6% 的数据用于训练,94% 用于验证。 不执行超参数调整。 训练后我们得到这样的结果:

在这里插入图片描述

注意:训练时间约为 1 或 2 分钟,而第一个盒子 Revit 模型则需要 2-3 小时,并且预测几乎同样准确。

5、训练集/验证集比例的实验

为什么要坚持 6% 的训练与验证比例? 让我们再尝试一下,看看效果如何。

在这里插入图片描述

4% 训练数据
在这里插入图片描述

1% 训练数据
在这里插入图片描述

0.25% 训练数据

事实证明,训练-验证比例大约为 1-2% 时,性能开始显着下降。

请注意,损失函数达到平台后停止训练

6、结果与比较

恭喜! 现在,我们有了一个训练好的神经网络,可以使用少量数据来预测 Revit 模型在大范围参数下的能耗。 该模型甚至可能没有任何窗户。 我们所做的最后一步展示了它:通过引入我们想要分析的模型中的一些数据点,我们得到了相当准确的估计,几乎没有误差。

为了强调迁移学习的效果,让我们用刚刚训练的网络来预测两个模型的 EUI。
在这里插入图片描述

一个网络 — 两个 Revit 模型预测

这就是说,我们不能采用随机神经网络并期望它与我们的模型一起工作:应该进行一些能量分析。 然而,它可以像第一部分一样自动化。

7、未来的工作

现在我们有了一个可以准确预测能耗的神经网络,除了使用复杂的 Revit 模型对其进行测试之外,还必须向实际优化迈出一步。 为了找到最优的参数组合,需要建立成本模型。 成本模型应包括材料、劳动力、可能的维护、能源成本,并应考虑建筑物的生命周期、建筑和物理限制。

这将产生现实的框架,只需很少的努力,就可以在项目的概念阶段选择最佳的参数组合。


原文链接:神经网络BIM能源优化 — BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/15149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#实现数据库数据变化监测(sqlservermysql)

监测数据库表数据变化,可实现数据库同步(一主一从(双机备份),一主多从(总部数据库,工厂1,工厂2,工厂数据合并到总部数据)) sqlserver 启用数据库…

Flowable-服务-消息任务

文章目录 定义图形标记XML内容集成Rabbitmq引入pom包配置rabbitmq 操作界面 定义 Mq 任务不是 BPMN 2.0 规范定义的官方任务,在 Flowable 中,Mq 任务是作为一种特殊的服务 任务来实现的,主要做Mq消息发送。 图形标记 由于 Mq 任务不是 BPM…

用CSS和HTML写一个水果库存静态页面

HTML代码&#xff1a; <!DOCTYPE html> <html> <head><link rel"stylesheet" type"text/css" href"styles.css"> </head> <body><header><h1>水果库存</h1></header><table>…

MFC图表控件high-speed-charting的使用

high-speed-charting是MFC上的开源图表库,Teechart的替代品。 high-speed-charting的下载地址 https://www.codeproject.com/Articles/14075/High-speed-Charting-Control 特性 High-speed drawing (when axis is fixed) which allows fast plotting of dataUnlimited number …

list与sort()

运行代码&#xff1a; //list与sort() #include"std_lib_facilities.h" //声明Item类 struct Item {string name;int iid;double value;Item():name(" "),iid(0),value(0.0){}Item(string ss,int ii,double vv):name(ss),iid(ii),value(vv){}friend istre…

【Golang 接口自动化01】使用标准库net/http发送Get请求

目录 发送Get请求 响应信息 拓展 资料获取方法 发送Get请求 使用Golang发送get请求很容易&#xff0c;我们还是使用http://httpbin.org作为服务端来进行演示。 package mainimport ("bytes""fmt""log""net/http""net/url&qu…

Shell 排序法 - 改良的插入排序

说明 插入排序法由未排序的后半部前端取出一个值&#xff0c;插入已排序前半部的适当位置&#xff0c;概念简单但速度不快。 排序要加快的基本原则之一&#xff0c;是让后一次的排序进行时&#xff0c;尽量利用前一次排序后的结果&#xff0c;以加快排序的速度&#xff0c;Shel…

ZLMediaKit+wvp-GB28181-pro 安装文档

文章目录 前言1. 安装zlm1.1 镜像说明1.2 docker安装1.2.1 docker安装命令1.2.2 docker-compose安装 1.3. zlm配置和日志重点说明 2. 安装wvp2.1 目录结构说明2.1.1 导入idea2.1.2 sql文件夹自带初始化库脚本2.1.3 进入web_src 编译静态资源2.1.4 修改resources配置 2.2 wvp 启…

DHCP中继代理原理(第二十八课)

当客户机和DHCP服务器不在一个广播域时,DHCP服务器无法接收到客户机的DHCP discover广播数据包,客户机就无法获得IP地址 第一步配置DHCP服务器的信息 <Huawei>u t m //清除日志 Info: Current terminal monitor is off. <Huawei>sys [Huawei]sysname DHCP-R…

分布式异步任务处理组件(二)

一些关键点的设计脑暴记录----very important&#xff01;&#xff01;&#xff01; 首先&#xff0c;任务存储交给kafka&#xff0c;由节点负责写入kafka&#xff0c;acks1&#xff1b;失败重试&#xff1b;透传kafka的提交可靠性&#xff0c;保证任务提交成功&#xff1b;后…

c语言locale.h简介

<locale.h>提供的函数用于控制c标准库中对于不同的地区行为不一样的部分。&#xff08;地区通常是国家或者某种特定语言的地理区域&#xff09; 在标准库里&#xff0c;依赖地区的部分通常包括以下几项&#xff1a; 数字量的格式 货币的格式 字符集 时间日期的格式 它设…

IOS开发:去除TabView的底部留白

我最近在做IOS开发的时候&#xff0c;使用SwiftUI中的TabView做左右滚动的页面切换&#xff0c;遇到了页面底部有大量留白无法去除的问题&#xff1a; 我查了很多资料都没有看到网上有人记录这个问题的解决方案&#xff0c;后来查阅apple developer的文档&#xff0c;我发现.ed…

iOS开发-字符串base64编码与解码

iOS开发-字符串base64编码与解码 在开发总经常遇到需要将字符串进行base64加密与解密。Base64是网络上最常见的用于传输8Bit字节码的编码方式之一&#xff0c;Base64就是一种基于64个可打印字符来表示二进制数据的方法。 这里使用的是GTMBase64 在Podfile中引入 pod GTMBas…

【计算机视觉|人脸建模】深度学习时代的3D人脸重建调查报告

本系列博文为深度学习/计算机视觉论文笔记&#xff0c;转载请注明出处 标题&#xff1a;3D Face Reconstruction in Deep Learning Era: A Survey 链接&#xff1a;3D Face Reconstruction in Deep Learning Era: A Survey - PubMed (nih.gov) 摘要 随着深度学习的出现和图形…

前端学习--vue2--2--vue指令基础

写在前面&#xff1a; 前置内容 - vue配置 文章目录 插值表达式v-html条件渲染v-show和v-ifv-ifv-if的扩展标签复用组件 v-show v-on /事件v-bind /&#xff1a;属性v-modelv-for 循环元素v-slotv-prev-cloak vue指令只的是带有v-前缀的特殊标签属性 插值表达式 插值表达式{…

Times New Roman对应的latex

在LaTeX中&#xff0c;可以使用以下命令将文字设置为Times New Roman字体&#xff1a; \usepackage{times} 然后&#xff0c;将文档正文部分包含在以下命令之间&#xff1a; \begin{document} … \end{document} 这样&#xff0c;文档正文中的文字将以Times New Roman字体呈…

AES加密的基本常识和封装类

AES加密的基本常识和封装类 AES(Advanced Encryption Standard)是一种对称密钥加密算法,被广泛用于保护敏感数据的安全性。它是一种块加密算法,意味着它将明文数据分成固定大小的块,并使用相同的密钥对每个块进行独立加密。AES算法支持不同的密钥长度,包括128位、192位和…

cglib动态代理、jdk动态代理及spring动态代理使用

1.项目初始化 1.1 pom.xml <dependencies><!-- spring依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency>&l…

从源程序到可执行文件的四个过程

从源程序到可执行文件的四个过程 预处理编译汇编链接 程序要运行起来&#xff0c;必须要经过四个步骤&#xff1a;预处理、编译、汇编和链接&#xff0c;如下图所示&#xff1a; -E选项&#xff1a;提示编译器执行完预处理就停下来&#xff0c;后边的编译、汇编、链接就先不执…

网络应用技术师技能考试试题(二)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…