智慧城市,智能建筑:乐康福智能管理系统

智慧城市,智能建筑:乐康福(iTCM)智能管理系统

胡伟政 I 文

张怀政 I 技术审稿

在系列第三篇文章“智慧城市,智能建筑:基于神经网络的热舒适度建模”中,我们使用物联网(Internet of Things)设备收集数据,然后基于神经网络进行热舒适度建模,所取得的初步实验结果证明其相比于PMV模型以及大部分传统机器学习方法,基于神经网络的热舒适度模型的精度确实有很明显的提升。那么,能做到这些的乐康福系统是如何被开发出来的呢?这一期,我们就来介绍一下乐康福(iTCM)系统本身,包括其中两大模块:人工智能模块和数据收集模块。

人工智能模块

首先是人工智能模块。Python作为目前机器学习领域的最热门语言,成为我们系统的首选。在乐康福系统中,我们采用了一款Python微框架Flask,并使用FastCGI协议把该模块部署在基于 Nginx框架的服务器上。如图1所示,我们在人工智能模块里基于传统的机器学习方法和基于神经网络模型实现了PMV模型。这个模块属于核心服务之一,并可做为一个完全独立的服务,利于研究者进行二次开发。

图1 乐康福系统里的不同热舒适度模型

该模块的工作流程如图1所示,系统接到指令就会从数据库中读取数据来进行训练和测试,然后在网页上给出结果的对比图。由于我们的大规模数据收集实验还在进行中,并且,从人身上收集数据远比从机器上来得困难,这一期的重点会放在下面的数据收集模块上。

数据收集模块

相比于人工智能模块,数据收集模块复杂得多,总的结构如图2所示。我们使用了现有的硬件设备和软件框架来开发这个系统,包括无线传感器网络、手机App和大数据后端服务器。

图2 数据收集模块结构图

无线传感器网络

我们使用无限传感器网络来收集环境数据,如温度和湿度等。我们与Singapore-Berkeley Building Efficiency and Sustainability in the Tropics (SinBerBEST) 合作一起进行智能建筑 (Smart Building) 方面的研究。SinBerBEST来自加州大学伯克利分校,是南洋理工大学(NTU)和新加坡国立大学(NUS)的跨学科研究小组,致力于为热带地区的建筑提供可持续发展的节能技术和研发成果。SinBerBEST计划是新加坡伯克利教育研究联盟 (BEAR) 的两项核心研究计划之一,由新加坡国家研究基金会 (NRF of Singapore) 资助。

在乐康福系统中,我们使用他们研发的Building-in-Briefcase (BiB) 设备(图3)来进行环境状态监测。相比于传统的无线传感器网络 (WSN),这套设备携带方便,部署简单。我们可以带着整套设备在不同地点进行环境监测。详细信息可参考这篇来自伯克利的文章:https://engineering.berkeley.edu/2017/10/brains-buildings-packaged-smart-briefcase。

图3 Building-in-Briefcase (BiB) 设备

手机APP

为了配合智能手环,我们自己开发了iOS和安卓的手机App来收集用户的体征数据和热舒适度反馈。图4所展示的就是我们App的主要用户界面,除了收集手环数据和发送用户热舒适度反馈外,还有三个主要功能:数据监控、用户偏好和奖励机制。

图4 手机App的主要用户界面 (UI)

1. 数据监控

在数据监控页面 (Dashboard),用户可以查看当前环境的温度、适度、紫外线强度、气压等信息。同时,用户也可查看自己的体征数据,如心率、皮肤温度以及消耗的卡路里等。我们的App可以让用户方便地看到这些信息,以此来帮助他们了解自己所处的室内环境以及自己的身体情况。

2. 用户偏好

在用户偏好页面 (Preference),用户可以设置个人理想的室内定点温度。此外,用户还可给出自己对于热冷环境的忍耐限度。我们的研究发现有的人更喜欢冷的环境,而有的人更偏向热的环境。这和不同的人的体质、年龄、性别有关。因此,这些偏好设置可以有效训练我们的模型,并对于我们今后的研究具有重要的意义。

3. 奖励机制

在奖励页面 (Reward),用户可以查看自己有没有收到新的奖励或者使用历史记录来查看自己过去曾经接受的奖励。关于这个奖励机制,是我们的一个探索性的人类行为研究环节。我们想尝试使用一些奖励机制来改变人们的行为来培养他们的节能习惯。我们正在跟南洋理工大学(NTU)的相关教授进行密切合作,如果有取得突破性的成功,我们会在以后的公众号系列文章中分享给大家!

企业级后端服务器

可靠稳定的web服务和数据存储服务,对这个研究项目的成功意义重大。因此,在设计后端服务器时,我们决定采用一套中小型企业使用的后端方案:Spring + SpringMVC + SpringSecurity + RabbitMQ + MyBatis + MySQL。关于这几个软件框架,网络上的介绍已经很多,有兴趣的朋友可以搜索一下,我们就不在这里讨论了。

乐康福的后端服务器主体使用基于Java语言的SpringMVC框架开发,并使用SpringSecurity子框架来保证安全性,并划分成三个服务层:可拓展服务层、核心服务层以及数据库层。

1. 可拓展服务层

可拓展层主要是把一些与核心服务层不相关的功能分离开来,也就是解耦和。比如,我们使用RabbitMQ消息队列框架把邮件服务、消息推送服务等分离出来。这样的好处是,无论这些服务层做任何改动或者添加新的服务都不会影响到核心服务层。同样的,核心服务器如果做了变更也不会直接影响这些服务和功能。

2. 核心服务层

核心服务层主要有用户管理和人工智能模块。用户管理模块就是用来处理从用户那里采集的数据,提取特定的数据特征放入机器学习训练数据表里。人工智能模块用得到的数据和不同的机器学习算法来训练热舒适度模型。然后,通过测试数据集的实验结果来做性能对比。

3. 数据库层

数据库层就是基于MySQL的数据管理层。MyBatis框架在这里作为一款基于Java的数据库持久层框架,MyBatis使用XML文件或者注解的方式把数据库里的记录映射到Java对象上去。这样我们可以直接在Java代码中对数据库进行各种读写操作,非常便利。

Web服务器性能

以上就是乐康福系统的数据收集模块了。那么,乐康福系统的web服务性能到底是怎样?我们采用了Apache JMeter软件来做压力测试以查看系统的性能极限和瓶颈。在测试中,首先,压力测试用的每一个HTTP请求都有对应的逻辑操作,如读取数据库数据、写入数据数据、基本的数据处理和运算等。然后,我们测试了三种不同的服务器实例硬件配置,包括1个CPU核心+2GB内存,2个CPU核心+4GB内存以及4个CPU核心+16GB内存的不同组合。实验结果如图5和图6所示。

图5 不同实例硬件配置下的性能对比

图6 吞吐量随着处理器个数的变化

从图5中,我们可以看到,即使在最低端的单核处理器+2GB内存服务器上,我们的乐康福系统也能达到每秒处理321个请求的吞吐量。并且,很明显,我们的系统瓶颈在处理器 (CPU)的核心数上,CPU核心越多,我们的性能就越好。内存占用以及硬盘的读写都不至于成为我们系统的性能瓶颈。从图5所示的变化曲线可以看到这是一个凹函数,处理器核心数加倍,但性能并没有翻倍。这在计算机领域里很常见,1+1并不一定等于2。不过,即便如此,我们的乐康福系统的性能还是非常可观的。

这期文章我们重点介绍了乐康福系统的人工智能模块和数据收集模块。我们的目标是做出一个工业级别的稳定系统,而不仅仅局限于一个科研用的原型 (Prototype)。在下一期系列文章中,我们会分享一些我们最新的热舒适度模型进展以及人类行为学习相关的研究成果。敬请期待!

本文版权归作者所有。

新加坡南洋理工CAP组

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180430G16S2600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券