原标题:EnergyPlus EMS和ExternalInterface入门学习 [第一篇——简介]

软件简介

EMS背景

EnergyPlus 于 1996 年开始开发,在最初的十年里,EnergyPlus 一直都是一个独立的建筑能耗模拟软件。2007 年,EnergyPlus 推出了 Energy Management System(EMS)的功能,使得用户可以在 EnergyPlus 内使用 Energy Runtime Language(erl)来自定义控制逻辑,实现一些EnergyPlus 并没有提供的控制策略。2010 年,劳伦斯伯克利实验室(LBNL)的开发团队又基于EMS推出了External Interface的功能,实现了EnergyPlus与LBNL开发的另一个软件BuildingControl Virtual Testbed(BCVTB)的实时信息交互。由于 BCVTB 是一个耦合模拟的软件平台,所以通过与 BCVTB 的连接,EnergyPlus 得以与其他模拟软件或硬件进行连接从而进行耦合模拟。例如,通过BCVTB,EnergyPlus可以与Matlab/Simulink连接进行耦合模拟;或者,EnergyPlus可以与支持 BACnet 协议的硬件连接,进行半实物模拟。这些耦合模拟方式将在随后以案例分析的方式进行详细解释。EMS 和 External Interface 的推出增加了 EnergyPlus 的开放性,使其不再是一个独立的建筑能耗模拟软件,从而让这个软件在建筑控制领域渐受欢迎。

EMS 简介

在 EnergyPlus 中,Energy Management System(EMS,能源管理系统)模拟的是一种高阶的、广义的、管理级别的控制方法。它可以在模拟运行过程中获得模型多个地方的运算结果,并用这些运算结果来进行控制运算,从而时时更新部分模型参数。这就好比一个真实的建筑能源管理系统,通过传感器收集时时数据,之后运行控制逻辑,最后对相关系统发出指令。但是需要特别注意的是,由于 EnergyPlus 软件本身的限制,EnergyPlus 的能源管理系统只能模拟高阶的控制方法,不能模拟建筑中一些底层的控制逻辑。例如,EnergyPlus 的能源管理系统可以按照用户预先设定好的逻辑来控制某个 VAV 末端的出风量,但是不能模拟 VAV末端空气阀门的开合度。

External Interface 简介

External Interface(外部接口)是 EnergyPlus 与 Building Control Virtual Test Bed(BCVTB)进行耦合的接口。这个模块同时也支持把功能模拟单元(Functional Mockup Unit)引入 EnergyPlus,或者把 EnergyPlus 模型输出为一个功能模拟单元。通过使用这个外部接口和 BCVTB,用户便可以把 EnergyPlus 同其他软件耦合进行模拟。最常见的应用便是 EnergyPlus 同 Simulink 耦合,在 EnergyPlus 中模拟建筑和空调系统,在 Simulink 中实现控制逻辑。这个模块的使用方法与之前所介绍的能源管理系统十分相似,或者说,这个模块的很多功能就是基于能源管理系统实现的。

EMS 使用方法

传感器(sensor)

在 EnergyPlus 能源管理系统中,传感器用来得到模型其他地方产生的信息。这些信息可以来自 output variable,也可以来自 meter。

执行器(actuator)

在 EnergyPlus 能源管理系统中,执行器用来改变模型中某个参数的值。但是,并不是所有参数都可以被执行器更改。

程序(program)

这里是 EnergyPlus 能源管理系统最主要的部分。在这里,用户可以使用 EnergyPlus Runtime Language 来定义一个控制逻辑。这个控制逻辑的输入来自传感器,控制逻辑的输出将会更改执行器的数值。

程序调用管理器(program calling manager)

程序调用管理器用来确定什么时间来运行某个控制逻辑。这个“时间”有两个层面。其一,是相对于 EnergyPlus 的其他部分,某个控制逻辑什么时候运行;其二,是相对于其他控制逻辑,某个控制逻辑什么时候运行。例如,相对于 EnergyPlus,某个控制逻辑可以在每一个运行周期的最开始来调用;相对于其他控制逻辑,某个控制逻辑需要在另一个控制逻辑结束后再调用。

External Interface 使用方法

外部接口的主要目的是允许其他程序在 EnergyPlus 运行中改变 EnergyPlus 模型的一些参数和设置。因此,外部接口有以下几个重要的概念:

Schedule

这个对象和 EnergyPlus 中常用到的 Schedule:Compact 非常相似。唯一不同的是,在每一个步长中,他的值将会通过外部接口接收。在模型 Warmup 期间和 Sizing 期间,他的值将会是设定的初值。

Actuator

这个对象与能源管理系统中的 Actuator 非常相似。但是,在每个步长中,他的值将会从外部接口中接收。在模型 Warmup 期间和 Sizing 期间,他的值将会是设定的初值。

Variable

这个对象与能源管理系统中的全局变量 GlobalVariable 非常相似。但是,在每个步长中,他的值将会从外部接口中接收。在模型 Warmup 期间和 Sizing 期间,他的值将会是设定的初值。这个对象用来把数据移动到 Erl 子程序中。

Functional Mock-up Unit

EnergyPlus 中的 Functional Mock-up Unit 是遵从 Functional Mockup Interface 标准的一个模型。这个功能使得一个 EnergyPlus 模型可以插入到其他应用 Functional Mockup Interface 标准的模型中去,或者允许其他应用 Functional MockupInterface 标准的模型插入到 EnergyPlus 中来。由于这个功能的应用实例较少,本文将不涉及有关这个功能的详细介绍。

下篇预告

初步了解了Energy Manage System 和 ExternalInterface之后,下篇我们将以【实例】为依据进一步学习如何应用软件。返回搜狐,查看更多

责任编辑:

energy plus matlab,EnergyPlus EMS和ExternalInterface入门学习 [第一篇——简介]相关推荐

  1. javascript基础入门_javascript基础入门学习第一篇

    今天主要讲述js,在讲述今天的编程知识之前,我们要对C++做一个说明因为一些原因C的知识不做更新了,下面将讲述js的编程知识,首先需要了解的是js是一个脚本语言不是编程语言这两者的区别就是一个需要依附 ...

  2. Keycloak 入门使用第一篇

    Keycloak入门使用第一篇 简介 安装 & 启动服务器 专有名词 & 基本使用 集成Keycloak 理解运行流程 Reference 简介 Keycloak 为现代应用和分布式服 ...

  3. 微信公众号开发入门教程第一篇

    微信公众号开发入门教程第一篇 关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/ ...

  4. Python入门学习(第一天)

    入门学习第一步: 1.安装python https://www.python.org/downloads/ 2.下载编辑器 推荐PyCharm Edu 3.打开编辑器新建一个python文件 4. 在 ...

  5. Java小白入门系列 第一篇 写在前面

    2018年8月30日  22:00:17 郑州  多云 Sue Java小白入门系列 第一篇  写在前面 写在前面: 首先声明一下,本人也是正在学Java,并不是多么专业人士,只是最近受老师的启发,所 ...

  6. Sublime text 入门学习资源篇及其基本使用方法

    Sublime text 学习资源篇 史上最性感的编辑器-sublimetext,插件, 学习资源 官网 http://www.sublimetext.com/ 插件 https://packagec ...

  7. Java萌新入门的第一篇文章

    这篇文章是为了刚入门或者打算入门的萌新们写的,希望看完后能对Java有个初步认识.以后会不定时更新有关Java的干货,就这些要说的,以上. 先介绍下相关背景,不要觉得枯燥,了解一下很有必要. a.计算 ...

  8. 算法竞赛入门学习(篇一)

    算法竞赛入门学习 算法竞赛入门学习,本文习题来自牛客网教程. 一.枚举与贪心 优化枚举的基本思路,减少枚举次数 选择合适的枚举对象 选择合适的枚举方向--排除非法或不是最优的情况 选择合适的数据维护方 ...

  9. Python编程学习第一篇——Python零基础快速入门(三)——10行代码画朵花

    上一节讲了一些Python编程的一些基础知识,从这节开始,我们将跟随一些实际的小程序示例,进入正式的编程学习.       下面我们就来介绍一下今天这个只有10行代码的小程序,先来看一下它的运行效果, ...

  10. Mendix入门教程第一篇-demo实例

    本篇会建立一个入门实例来讲解mendix的基本功能点,包括建立实体.增加页面及权限配置,后续会对每个组件的详细用法做进一步介绍. Mendix项目开发的时候需要先建立或者导入一个项目,然后这个项目就会 ...

最新文章

  1. Python规范:提高可读性
  2. pat乙级相当于什么水平_林书豪在CBA相当于什么水平的外援?
  3. 2020 操作系统第一天复习(习题总结)
  4. APNIC执委赵巍:IPv4向IPv6过渡再无退路
  5. matlab xlsread参数_利用MATLAB批量完成科研数据处理
  6. jQuery快速复习
  7. 以计算机网络为中介的人际传播,以计算机为中介的人际传播理论范式
  8. 画了个Android
  9. zabbix专题:第七章 添加图像Graphs,添加聚合图形Screens
  10. IE下AJAX请求只有一次
  11. Tapestry 5 资料
  12. Adobe Premiere Pro (PR) 视频剪辑相关应用
  13. SQL注入漏洞-MySQL盲注
  14. 核桃油是孕妇的最佳食用油吗?
  15. 美团2018校园招聘内推笔试代码分享
  16. [其他] 月份, 星期英文
  17. PhoneWindowManager().interceptKeyBeforeQueueing()中的interactive变量值的来源
  18. 企业文化如何推动绩效?
  19. 微信小程序之Github API用户登录认证的三种方式
  20. 在python中numpy是什么意思_numpy是什么

热门文章

  1. PB调用WebService
  2. 本地计算机 策略在哪xp系统,本地组策略编辑器在哪 打开组策略管理器方法
  3. java doevents_Application.DoEvents()和多线程
  4. 用matlab对称振子E面方向图,什么天线的E面方向图 H面方向图是具体什么方向图`...
  5. matlab实现ad转换,通信原理软件AD转换课程设计Matlab
  6. xz1刷Android10,索尼xz1国行版安卓9.0固件
  7. 分布式机器学习(下)-联邦学习
  8. editormd生成博客编辑页面
  9. (翻译)折叠菜单(Accordion Menu)
  10. 译文:一个采用 Three.js 的 3D 动画场景制作:飞行者