当前位置: 首页 > news >正文

基于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

相关文章:

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

推荐:用 NSDT设计器 快速搭建可编程3D场景。 AEC(建筑、工程、施工)行业的BIM 技术,允许在实际施工开始之前虚拟地建造建筑物; 这带来了许多有形和无形的好处:减少成本超支、更有效的协调、增强决策权等等。…...

#P0998. [NOIP2007普及组] 守望者的逃离

题目背景 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。 题目描述 守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。 为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛…...

vue3+ts+elementui-plus二次封装弹框

一、弹框组件BaseDialog <template><div classmain><el-dialog v-model"visible" :title"title" :width"dialogWidth" :before-close"handleClose"><!-- 内容插槽 --><slot></slot><template…...

ffmpeg批量分割视频解决视频前几秒黑屏的问题解决

echo 请输入视频地址&#xff1a; set /p fp echo 请输入开始时间&#xff1a; set /p st echo 请输入结束时间&#xff1a; set /p et echo 请输入分片时间&#xff1a; set /p sgt echo 注意&#xff1a;循环范围参数要空格。 for /l %%i in (%st%, %sgt%, %et%) do call :aa…...

nodejs + express 调用本地 python程序

假设已经安装好 nodejs ; cd /js/node_js ; 安装在当前目录的 node_modules/ npm install express --save 或者 cnpm install express --save web 服务器程序 server.js const http require(http); const express require(express); const path require(path); const …...

微信小程序代码优化3个小技巧

抽取重复样式 样式复用 我们会发现很多时候在开发的过程中会存在多个页面中都用到了同样的样式&#xff0c;那么其实之前有提到过&#xff0c;公用样式可以放在app.wxss里面这样就可以直接复用。 如&#xff1a;flex布局的纵向排列&#xff0c;定义在app.wxss里面 .flex-co…...

某行动态cookie反爬虫分析

某行动态cookie反爬虫分析 1. 预览 反爬网址(base64): aHR0cDovL3d3dy5wYmMuZ292LmNu 反爬截图&#xff1a; 需要先加载运行js代码&#xff0c;可能是对环境进行检测&#xff0c;反调试之类的 无限debugger 处理办法 网上大部分人说的都是添加cookie来解决。 那个noscript…...

恒运资本:A股、港股全线爆发,沪指突破3300点,恒指重返2万点上方

7月31日&#xff0c;两市股指高开高走&#xff0c;沪指在金融、地产、酿酒等权重板块的带动下一举突破3300点。截至发稿&#xff0c;沪指、深成指、创业板指涨幅均超1%&#xff0c;上证50指数涨近2%。Wind数据显现&#xff0c;北向资金净买入超25亿元。 职业方面&#xff0c;券…...

Rust vs Go:常用语法对比(十二)

题图来自 Rust vs Go in 2023[1] 221. Remove all non-digits characters Create string t from string s, keeping only digit characters 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. 删除所有非数字字符 package mainimport ( "fmt" "regexp")func main() { s : hei…...

jmeter接口测试、压力测试简单实现

jmeter测试的组件执行顺序&#xff1a; 测试计划—>线程组—>配置元件—>前置处理器—>定时器—>逻辑控制器—>取样器—>后置处理器—>断言—>监听器 组件的作用范围&#xff1a; 同级组件同级组件下的子组件父组件 目前市面上的三类接口 1、基…...

PysparkNote006---pycharm加载spark环境

pycharm配置pyspark环境&#xff0c;本地执行pyspark代码 spark安装、添加环境变量不提了 File-Settings-Project-Project Structure-add content root添加如下两个路径 D:\code\spark\python\lib\py4j-0.10.7-src.zipD:\code\spark\python\lib\pyspark.zip 2023-07-26 阴 于…...

19套项目实战系列--Spring Cloud Spring Boot(整套源码)

整套大型项目源码&#xff0c;需要的回复私信&#xff1a;19 ┃ ┣━01.19套项目实战系列 ┃ ┃ ┣━第04套【项目实战】Spring Cloud分布式微服务实战&#xff0c;打造大型自媒体3大业务平台 分布式前后端分离项目分层聚合 养成应对复杂业务的综合技术能力 ┃ ┃ ┃ ┣━1-…...

TCP/IP协议详解(二)

目录内容 TCP协议的可靠性 TCP的三次握手 TCP的四次挥手 C#中&#xff0c;TCP/IP建立 三次握手和四次挥手常见面试题 在上一篇文章中讲解了TCP/IP的由来以及报文格式&#xff0c;详情请见上一篇文章&#xff0c;现在接着来讲讲TCP/IP的可靠性以及通过代码的实现。 在TCP首部的…...

Linux6.2 ansible 自动化运维工具(机器管理工具)

文章目录 计算机系统5G云计算第一章 LINUX ansible 自动化运维工具&#xff08;机器管理工具&#xff09;一、概述二、ansible 环境安装部署三、ansible 命令行模块1.command 模块2.shell 模块3.cron 模块4.user 模块5.group 模块6.copy 模块7.file 模块8.hostname 模块9.ping …...

前端面试题 —— React (二)

目录 一、React 组件中怎么做事件代理&#xff1f;它的原理是什么&#xff1f; 二、React.Component 和 React.PureComponent 的区别 三、Component, Element, Instance 之间有什么区别和联系&#xff1f; 四、React声明组件有哪几种方法&#xff0c;有什么不同&#xff1f…...

【分享帖】LCD的MCU接口和SPI接口详解

LCD&#xff08;Liquid Crystal Display&#xff09;液晶屏&#xff0c;作为电子产品的重要组成部分&#xff0c;是终端用户与电子产品交互的重要载体。现在市场上的LCD&#xff0c;按照尺寸、功能、接口、用途等分为很多种&#xff0c;本文主要介绍如下两种LCD物理接口&#x…...

【Java】使用@Expose注解和excludeFieldsWithoutExposeAnnotatGson()方法将toJson()过程的部分字段忽略

要在使用 Gson 的 toJson() 方法时忽略 List 中的某些字段&#xff0c;你可以使用 Gson 的 Expose 注解和 excludeFieldsWithoutExposeAnnotation() 方法。 首先&#xff0c;在 List 中的 Bean 类中&#xff0c;使用 Expose 注解标记你想要序列化的字段&#xff1a; public c…...

移动硬盘不显示怎么办?正确解决方式看这里!

移动硬盘为存储带来了很大的方便&#xff0c;在对数据存储时&#xff0c;可做到即插即用&#xff0c;且其体积小、容量大&#xff0c;且比较安全可靠。但在实际的使用中&#xff0c;也会出现各种问题。请看下面2个常见案例。 案例1&#xff1a;“各位朋友&#xff0c;我新买了一…...

MySQL 5.7.39 关于时间精度

前情提要 当EndTime的数据类型为datetime when the end_time’s dataType is datetime; entity.EndTime DateTime.MaxValue; context.Set<T>().Add(entity);当保存 ‘9999-12-31 23:59:59’ 这个值时,发生报错。 A crash has happended in the program when saving ‘…...

宝塔设置云服务器mysql端口转发,实现本地电脑访问云mysql

环境&#xff1a;centos系统使用宝塔面板 实现功能&#xff1a;宝塔设置云服务器mysql端口转发&#xff0c;实现本地电脑访问mysql 1.安装mysql、PHP-7.4.33、phpMyAdmin 5.0 软件商店》搜索 mysql安装即可 软件商店》搜索 PHP安装7.4.33即可&#xff08;只需要勾选快速安装&…...

centos下安装ftp-读取目录列表失败-

1.下载安装ftp服务器端和客户端 #1.安装yum -y install vsftpdyum -y install ftp #2.修改配置文件vim /etc/vsftpd.conflocal_enablesYESwrite_enableYESanonymous_enableYESanon_mkdir_write_enableYES //允许匿名用户在FTP上创建目录anon_upload_enableYES //允许匿名用户…...

0101sub-process /usr/bin/dpkg returned an error code-dpkg-linux问题集

kali linux有段时间没用了&#xff0c;现在有点时间想着继续学习下网络安全&#xff0c;那就升级更新下。 apt-get update && apt-get upgrade等待一段时间后&#xff0c;下载完毕执行安装和更新&#xff0c;更新的过程中报错退出了 问题1 更新kali-themes 需要kali-t…...

流控平台Sentinel搭建和接入教程

流量控制和限流是大型系统必不可少的组成部分&#xff0c;Sentinel是Alibaba提供的一款特别好用的专业工具&#xff0c;属于那种看起来很牛&#xff0c;用起来也很牛的工具&#xff0c;下面记录一下接入的过程。 一&#xff0c;搭建平台 1&#xff0c;下载jar包 地址&#x…...

使用 docker 一键部署 MongoDB

目录 1. 前期准备 2. 导入镜像 3. 部署MongoDB脚本 4. 配置模板文件 5. 部署MongoDB 6. 部署后配置 7. 基本维护 1. 前期准备 新部署前可以从仓库&#xff08;repository&#xff09;下载 MongoDB 镜像&#xff0c;或者从已有部署中的镜像生成文件&#xff1a; # 查看…...

【深度学习】Inst-Inpaint: Instructing to Remove Objects with Diffusion Models,指令式图像修复

论文&#xff1a;https://arxiv.org/abs/2304.03246 code:http://instinpaint.abyildirim.com/ 文章目录 AbstractIntroductionRelated WorkDataset GenerationMethodPS Abstract 图像修复任务是指从图像中擦除不需要的像素&#xff0c;并以语义一致且逼真的方式填充它们。传统…...

创建维基WIKI百科和建立百度百科有何不同?

很多企业有出口业务&#xff0c;想在互联网上开展全球性网络营销&#xff0c;维基百科往往被认为是开展海外营销的第一站。其作用相当于开展国内网络营销的百度百科&#xff0c;经常有些企业给小马识途营销顾问提供的词条内容就是百度百科的内容&#xff0c;可事实上两个平台的…...

Python小红书旋转验证码识别

本周免费接了一个用户的需求&#xff0c;研究了一下小红书旋转验证码。刚开始小瞧了它&#xff0c;觉得它应该没有百度旋转验证码那么难&#xff0c;毕竟图像没有干扰&#xff0c;需要的训练样本就可以很少。然而事情并没有这么简单&#xff0c;所以记录一下。 首先看一下最终…...

ELK搭建

ELK概述 ELK是elasticsearch Logstash Kibana 这种架构的简写。这是一种日志分平台析的架构&#xff0c; Elasticsearch Logstash filebeat Kibana 这种架构增加了一个filebeat模块。filebeat是一个轻量的日志收集代理&#xff0c;用来部署在客户端&#xff0c;优势是消耗…...

webyog最新社区版免费版下载地址

好用的sql管理工具分享&#xff1a; https://github.com/webyog/sqlyog-community/wiki/Downloads webyog最新社区版免费使用下载。从此不用在找mysql的管理工具而烦恼。...

[SQL挖掘机] - 窗口函数 - dense_rank

介绍: dense_rank() 是一种常用的窗口函数&#xff0c;它为结果集中的每一行分配一个密集排名&#xff08;dense rank&#xff09;。这个密集排名基于指定的排序顺序&#xff0c;并且在遇到相同的值时&#xff0c;不会跳过排名。 用法: dense_rank() 函数的语法如下&#xf…...