Docs 菜单
Docs 主页
/

使用MongoDB进行智能电表分析

MongoDB 为智能电表系统提供了一个可扩展的平台,实现实时数据收集、时间序列分析和异常检测。

使用案例: IoT应用驱动的分析单一视图

行业: 制造与移动、能源与环境

产品和工具: MongoDB Atlas、 MongoDB Atlas Charts、 MongoDB Change Streams、 MongoDB时间序列集合、 MongoDB查询语言

合作伙伴: Cedalo

随着智能电表技术采用的增加, MongoDB提供了一个用于扩展管理和分析智能电表时间序列数据的综合平台。该智能电表解决方案可帮助公用事业公司:

  • 收集高频仪表读数

  • 实时处理流媒体数据

  • 高效存储历史数据

  • 检测异常以识别电压尖峰、断电或异常消费模式等问题

该解决方案利用以下MongoDB集成和功能,支持企业在扩展时保持性能和数据可访问性:

该解决方案包含两个主要组件:“智能电表数据存储”和“使用MongoDB进行智能电表数据管理”。

为了使用智能电表,电力公司部署了一个核心智能电表生态系统,其中包括以下组件:

  • 智能电表:智能电表从最终消费者那里收集数据,并通过 局域网将其传输到数据聚合器。您可以根据数据需求将传输频率调整为15 分钟、30 分钟或每小时。

  • 电表数据集合网络:聚合器检索智能电表数据,然后将其传输到 HES。

  • 头端系统:HES 分析数据并将其发送到 MDMS。初始通信路径使用可直接发送到仪表、客户端或分配设备的命令。

  • 电表数据管理系统:MDMS 系统使用MongoDB Atlas作为该解决方案的后端数据库。数据到达 HES 后,MQTT提供商会将其传输到MongoDB Atlas。 MongoDB Atlas存储智能电表数据,包括电表ID、时间戳等信息以及电能、电流或电压等测量值。

领先的 MQTT 代理提供商(例如,Cedalo)与MongoDB集成,启用无缝数据传输和对智能电表收集的信息进行高效管理。该解决方案采用了 Cedalo Pro Mosquitto MQTT 代理来促进有效的消息传输。 Cetalo 代理连接到MongoDB ,确保两个系统之间的数据持续流动。

将智能电表数据存储在MongoDB Atlas中后,您可以对其进行异常分析并获得见解。该解决方案利用MongoDB 的三个关键功能来创建下一代 MDMS:

  1. MongoDB 变更流

  2. MongoDB 时间序列集合

  3. 最出色的特性

MongoDB变更流启用实时捕获和处理数据库更改(例如插入操作),从而立即洞察能源消耗模式、系统异常和潜在故障。智能电表系统的实时功能允许使用MongoDB聚合框架进行及时分析,检测异常并防止代价高昂的损坏和服务中断。

MongoDB将分析后的数据存储在时间序列集合中。这些专门的集合对您的智能电表数据执行以下操作:

  • 提供高压缩

  • 增强时间序列数据的查询性能

  • 启用快速操作

端到端智能电表管理系统架构

图 1. 端到端智能电表管理系统架构

该解决方案使用两个时间序列数据模型。您可以将第一个模型用于原始智能电表数据,其中 meter_idmetaField

{
"_id": "668cb56d3830323642e562d9" ,
"timestamp": { "$date": "1720497517183" },
"power_factor": 0.89 ,
"power": 220.1 ,
"frequency": 49.85,
"meter_id": 1,
"energy": 0.22,
"current": 1,
"voltage": 219.38
}

第二数据集包括根据预定义标准在各种测量中检测到的异常。在以下示例中,异常是指与平均值相差超过三个标准偏差的读数。此数据集使用 meter_id 作为 metaField

{
"_id": "668d4a023819ef77d3fc84d8",
"timestamp": { "$date": "1720535553856" },
"meter_id": 3,
"data": {
"voltage": 190.06,
"current": 18.13,
"power": 3445.67,
"energy": 3.45,
"power_factor": 0.76,
"frequency": 49.92
},
"anomalies": ["voltage", "current"]
}

该智能电表数据管理解决方案使用 MQTT 代理和MongoDB Atlas来收集和分析现代能源基础设施数据。

注意

虽然此实施展示了 Cedalo 的 MQTT 代理,但该解决方案与代理无关,并支持与各种 MQTT 提供商集成。

按照以下步骤,使用MongoDB设立智能电表数据管理系统。有关此解决方案的更详细实施,请参阅 GitHub存储库。

1
  1. 设置 MQTT 代理以实现可靠的消息处理。

  2. 配置代理与 MongoDB 的集成。

  3. 建立安全的数据流媒体管道。

  4. 支持智能电表实时数据收集。

  5. 实现代理管理和监控。

2

配置环境变量:

  • MQTT 代理连接详细信息

  • MongoDB 连接 URI

  • 数据库和集合名称

  • 分析引擎配置

  • Atlas Charts集成

3
  1. 创建包含所需集合的MongoDB 数据库。

  2. 为以下对象设置时间序列集合:

    • Anomalies data

    • 指标数据

    • 转换后的数据

  3. 配置数据转换管道。

  4. 启用实时数据处理功能。

4
  1. 部署应用程序组件。

  2. 实现实时监控功能。

  3. 设置异常检测算法。

  4. 创建自定义仪表盘。

  5. 能够进行交互式数据探索。

  • 数据管理至关重要:智能电表会生成大量时间序列数据,这给数据互操作性、隐私和处理带来了挑战。解决方案需要灵活、可扩展的数据库来处理高频、复杂的数据流。

  • MQTT 可实现高效的物联网(IoT)通信:智能电表生态系统需要轻量级的发布-订阅协议,以便在设备、聚合器和管理系统之间实现高效、安全的数据传输。

  • MongoDB提供全面的物联网(IoT)数据解决方案:时间序列集合、变更流、聚合框架和灵活的文档模型可帮助MongoDB解决智能电表的关键挑战,例如异常检测、实时分析和可扩展的数据存储。

  • 使用集成方法:成功的智能电表实施结合了 MQTT 等消息传递协议、高级数据库技术和综合分析,将原始电表数据转换为可行的见解。

  • Dr. Humza Akhtar, MongoDB

  • Rami Pinto,MongoDB

  • Sebastian Rojas Arbulu, MongoDB

  • Diego Canales, MongoDB

  • 利用 IoT 数据实现应用程序驱动型智能

  • 为智能制造构建物联网(IoT)数据中心

  • 基于音频的实时 AI 诊断

后退

构建 IoT 数据中心

在此页面上