数据库设计

数据存储于两种不同的数据库中,其中,各个维度的监测数据存储于HBASE中,设备记录、操作记录存储于MySQL中。

HBASE表格设计

原始数据表:BASIC_SWITCH

列族:devRunSta
(详见realDataTest_dev.xlsx

整合数据表:AgrData

列族:dataList
rowKey设计规则:[date] - [equip_num]

date equip_num data switchName gapValue humidity offsetValue temperature DBJ DCJ DQJ1 FBJ FCJ acVoltage_X2X4 acVoltage_X3X5 directVoltage_X2X4 directVoltage_X3X5
当天的日期 同devRunSta表 每天采集30次数据进行组合,约3600个数据点 同devRunSta表 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点 每天采集一个小时内的数据,一秒采集一个数据点,共3600个数据点

MySQL表格设计

(注:标有*的字段为主键)

统计信息总表:stat

列名 类型 取值 描述
num_monitor int 正整数 监测设备数量
num_warn int 正整数 预警设备数量
num_maintain int 正整数 维护设备数量
num_care int 正整数 注意设备数量
num_normal int 正整数 正常设备数量
radio_data char[20] 百分比 该维度数据比重
radio_gapValue char[20] 百分比 该维度数据比重
radio_humidity char[20] 百分比 该维度数据比重
radio_offsetValue char[20] 百分比 该维度数据比重
radio_temperature char[20] 百分比 该维度数据比重
radio_DBJ char[20] 百分比 该维度数据比重
radio_DCJ char[20] 百分比 该维度数据比重
radio_DQJ1 char[20] 百分比 该维度数据比重
radio_FBJ char[20] 百分比 该维度数据比重
radio_FCJ char[20] 百分比 该维度数据比重
radio_acVoltage_X2X4 char[20] 百分比 该维度数据比重
radio_acVoltage_X3X5 char[20] 百分比 该维度数据比重
radio_directVoltage_X2X4 char[20] 百分比 该维度数据比重
radio_directVoltage_X3X5 char[20] 百分比 该维度数据比重
reliability_data char[20] 百分比 该维度数据信度
reliability_gapValue char[20] 百分比 该维度数据信度
reliability_humidity char[20] 百分比 该维度数据信度
reliability_offsetValue char[20] 百分比 该维度数据信度
reliability_temperature char[20] 百分比 该维度数据信度
reliability_DBJ char[20] 百分比 该维度数据信度
reliability_DCJ char[20] 百分比 该维度数据信度
reliability_DQJ1 char[20] 百分比 该维度数据信度
reliability_FBJ char[20] 百分比 该维度数据信度
reliability_FCJ char[20] 百分比 该维度数据信度
reliability_acVoltage_X2X4 char[20] 百分比 该维度数据信度
reliability_acVoltage_X3X5 char[20] 百分比 该维度数据信度
reliability_directVoltage_X2X4 char[20] 百分比 该维度数据信度
reliability_directVoltage_X3X5 char[20] 百分比 该维度数据信度
validity_data char[20] 百分比 该维度数据效度
validity_gapValue char[20] 百分比 该维度数据效度
validity_humidity char[20] 百分比 该维度数据效度
validity_offsetValue char[20] 百分比 该维度数据效度
validity_temperature char[20] 百分比 该维度数据效度
validity_DBJ char[20] 百分比 该维度数据效度
validity_DCJ char[20] 百分比 该维度数据效度
validity_DQJ1 char[20] 百分比 该维度数据效度
validity_FBJ char[20] 百分比 该维度数据效度
validity_FCJ char[20] 百分比 该维度数据效度
validity_acVoltage_X2X4 char[20] 百分比 该维度数据效度
validity_acVoltage_X3X5 char[20] 百分比 该维度数据效度
validity_directVoltage_X2X4 char[20] 百分比 该维度数据效度
validity_directVoltage_X3X5 char[20] 百分比 该维度数据效度
*id int 正整数 数据唯一标识,恒定为1

设备信息表:equipment_info

列名 类型 取值 描述
*equip_num char[20] 如P001 设备编号
equip_addr char[20] 如西直门 设备地址
equip_age char[20] 如5年 设备已使用年限
equip_log char[255] 如未能正常锁闭 设备最近监测日志
equip_maintaintime char[20] 如2022年3月1日 设备最近维护时间
equip_status char[20] 如预警 设备健康状态

RUL曲线表:rul_curve

列名 类型 取值 描述
equip_num char[20] 如P001 设备编号
healthy_factor int 1/2/3 健康因子编号
time char[20] 如2022年3月1日 时间点
rul float 如3.25,单位年 RUL数据点
*id int 自增正整数 数据唯一标识

临时RUL曲线表:temp_rul_curve(用于存储以拟合出的模型计算其他设备的RUL值,每次开始新模型拟合会清空该表)

列名 类型 取值 描述
equip_num char[20] 如P001 设备编号
healthy_factor int 1/2/3 健康因子编号
time char[20] 如2022年3月1日 时间点
rul float 如3.25,单位年 RUL数据点
*id int 自增正整数 数据唯一标识

拟合精度表:fit_accuracy

列名 类型 取值 描述
equip_num char[20] 如P001 设备编号
healthy_factor int 1/2/3 健康因子编号
time char[20] 如2022年3月1日 时间点
fit float 取值范围[0, 100] 数据的拟合精度
*id int 自增正整数 数据唯一标识

健康评估表:health_evaluation

列名 类型 取值 描述
equip_num char[20] 如P001 设备编号
healthy_factor int 1/2/3 健康因子编号
time char[20] 如2022年3月1日 时间点
factor float 取值范围[0, 100] 数据的健康度
*id int 自增正整数 数据唯一标识

评估建议表:evaluation_advice

列名 类型 取值 描述
*id int 自增正整数 数据唯一标识
health_grade char[20] 正常/注意/维护/预警 设备健康度评级
eval_advice char[255] 如建议尽快进行维护维修等 设备文字评估建议
maint_process char[255] 如检修,维护,保养三段式,中间以英文逗号分隔 设备建议维护流程
risk_state char[255] 如60%,20%,10%三段式,中间以英文逗号分隔 设备不同等级风险提示

界面功能设计

看板系统

展示统计信息

获取统计信息总表:stat,展示以下内容

  1. 当前监测的设备数量
  2. 状态为“预警”的设备数量
  3. 状态为“维护”的设备数量
  4. 状态为“注意”的设备数量
  5. 状态为“正常”的设备数量
  6. 当前监测数据中各个数据维度所占的比重
  7. 各个数据维度的信效度

展示设备信息

获取设备信息表:equipment_info,展示以下内容

  1. 设备编号,地址,已使用年限,最近监测日志,最近维护日期,健康状态
  2. 对本设备进行模型拟合操作,将进入“寿命预测”界面
  3. 删除操作,删除本设备的相关记录

寿命预测

展示监测曲线

获取整合数据表:AgrData,展示以下内容

  1. 绘制最近的一条检测数据,包括30次电流数据整合,其他数据维度一小时共3600个数据点
  2. 数据维度切换,点击对应维度的条目名称切换数据曲线
  3. 进行寿命预测模型的拟合,点击将自动调用寿命预测算法,并切换页面

展示寿命预测结果

获取RUL曲线表:rul_curve拟合精度表:fit_accuracy,并展示以下内容

  1. 左侧三个健康因子供选择并切换拟合不同模型曲线
  2. 绘制RUL曲线
  3. 绘制三个健康因子的拟合精度
  4. 下拉选择不同设备以当前模型绘制RUL曲线

健康评估

展示健康评估数据

获取健康评估表:health_evaluation,并展示以下内容

  1. 展示设备编号,以及对应的三个健康度
  2. 导入专家评估(可选),辅助进行评估
  3. 点击开始评估进行评估融合,并切换界面

展示评估建议

获取评估建议表:evaluation_advice,并展示以下内容

  1. 根据健康度显示当前设备编号和星级评价
  2. 提供文字性的评估建议
  3. 提供当前健康度评级下的建议维护流程
  4. 显示风险百分比提示

实体层(Enity)设计

对应各个数据库表格建立,若有需要可以对应业务视图建立

接口层(Controller)设计

统计信息获取接口

描述信息

获取系统统计信息,供前端进行图形化展示

请求属性

  • 请求方式:get
  • 请求地址:/getstat

请求入参

  • 字段说明
    无参数
  • Json信息
    无参数

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "获取成功", "data": { //数据来自统计信息总表:stat"id": "1", "num_monitor": "100", "num_warn": "10", ......"validity_directVoltage_X3X5": "90%", }
}

设备信息获取接口

描述信息

获取所有的设备信息,供前端以表格的形式进行展示

请求属性

  • 请求方式:get
  • 请求地址:/getequipinfo

请求入参

  • 字段说明
    无参数
  • Json信息
    无参数

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "获取成功", "data": [{ //数据来自设备信息表:equipment_info"equip_num": "P0001", "equip_addr": "西直门",  ......"equip_status": "Warn"},{ //数据来自设备信息表:equipment_info"equip_num": "P0002", "equip_addr": "西直门",  ......"equip_status": "Normal"},......{ //数据来自设备信息表:equipment_info"equip_num": "P0010", "equip_addr": "西直门",  ......"equip_status": "Normal"}]
}

寿命预测操作接口

描述信息

传递当前所要操作的设备编号,供寿命预测界面读取

请求属性

  • 请求方式:post
  • 请求地址:/postequipnum

请求入参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
equipNum string 设备编号
  • Json信息
{"equipNum": "P0001"
}

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "上传成功"
}

删除设备操作接口

描述信息

删除当前操作的设备,移除该设备的记录信息

请求属性

  • 请求方式:post
  • 请求地址:/postdelequip

请求入参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
equipNum string 设备编号
  • Json信息
{"equipNum": "P0001"
}

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "删除成功"
}

获取监测数据接口

描述信息

获取最近的一条监测数据,每个数据维度约3600个点

请求属性

  • 请求方式:post
  • 请求地址:/getmonitor

请求入参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
equipNum string 设备编号
  • Json信息
{"equipNum": "P0001"
}

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "获取成功""data": { //数据来自整合数据表:AgrData"date": "2022年3月1日", "equip_num": "P0001", "data": [10,20,...(省略3600个点),90],......"directVoltage_X3X5": [10,20,...(省略3600个点),90]}
}

开始模型拟合接口

描述信息

发送模型拟合命令,调用寿命预测算法

请求属性

  • 请求方式:post
  • 请求地址:/postrun

请求入参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
equipNum string 设备编号
  • Json信息
{"equipNum": "P0001"
}

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "命令发送成功"
}

获取RUL曲线接口

描述信息

获取指定设备三个健康因子所形成的RUL曲线数据点

请求属性

  • 请求方式:post
  • 请求地址:/getrul

请求入参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
equipNum string 设备编号
  • Json信息
{"equipNum": "P0001"
}

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "获取成功","data": [{ //数据来自RUL曲线表:rul_curve"id": 1, "equip_num": "P0001", "healthy_factor ": 1,......"rul": 80},{ //数据来自RUL曲线表:rul_curve"id": 2, "equip_num": "P0001", "healthy_factor ": 1,......"rul": 70},......,{ //数据来自RUL曲线表:rul_curve"id": 3, "equip_num": "P0001", "healthy_factor ": 1,......"rul": 60}]
}

获取拟合精度接口

描述信息

获取指定设备三个健康因子的渐进拟合精度
等距选择10个数据点

请求属性

  • 请求方式:post
  • 请求地址:/getfit

请求入参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
equipNum string 设备编号
  • Json信息
{"equipNum": "P0001"
}

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "获取成功","data": [{ //数据来自拟合精度表:fit_accuracy"id": 1, "equip_num": "P0001", "healthy_factor ": 1,......"fit": "60%"},{ //数据来自拟合精度表:fit_accuracy"id": 2, "equip_num": "P0001", "healthy_factor ": 1,......"fit": "70%"},......,{ //数据来自拟合精度表:fit_accuracy"id": 3, "equip_num": "P0001", "healthy_factor ": 1,......"fit": "80%"}]
}

更改拟合设备接口

描述信息

获取以当前拟合出的模型去预测其他指定设备的RUL值

请求属性

  • 请求方式:post
  • 请求地址:/updatefit

请求入参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
equipNum string 设备编号
  • Json信息
{"equipNum": "P0002"
}

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "获取成功","data": [{ //数据来自临时RUL曲线表:temp_rul_curve"id": 1, "equip_num": "P0002", "healthy_factor ": 1,......"rul": 80},{ //数据来自临时RUL曲线表:temp_rul_curve"id": 2, "equip_num": "P0002", "healthy_factor ": 1,......"rul": 70},......,{ //数据来自临时RUL曲线表:temp_rul_curve"id": 3, "equip_num": "P0002", "healthy_factor ": 1,......"rul": 60}]
}

获取健康评估数据接口

描述信息

获取所有设备的健康度

请求属性

  • 请求方式:get
  • 请求地址:/gethealth

请求入参

  • 字段说明

    无参数

  • Json信息

    无参数

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "获取成功","data": [{ //数据来自健康评估表:health_evaluation"id": 1, "equip_num": "P0001", "healthy_factor1": 80,"healthy_factor2": 70,"healthy_factor3": 30},{ //数据来自健康评估表:health_evaluation"id": 2, "equip_num": "P0002", "healthy_factor1": 80,"healthy_factor2": 60,"healthy_factor3": 30},......,{ //数据来自健康评估表:health_evaluation"id": 3, "equip_num": "P0010", "healthy_factor1": 80,"healthy_factor2": 70,"healthy_factor3": 20}]
}

发送健康评估命令接口

描述信息

调用算法,开始进行健康评估融合,更新stat表中设备健康状态

请求属性

  • 请求方式:get
  • 请求地址:/getevaluate

请求入参

  • 字段说明

    无参数

  • Json信息

    无参数

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "命令发送成功"
}

获取评估建议接口

描述信息

根据设备健康度评级,获取对所有设备的评估建议

请求属性

  • 请求方式:get
  • 请求地址:/getadvice

请求入参

  • 字段说明

    无参数

  • Json信息

    无参数

请求出参

  • 字段说明
字段名 字段类型 字段描述 是否必填 备注
status boolean 是否成功 true:成功
false:失败
code int 状态码 如,20000:验证码不正确或已过期
message string 提示消息
data object 数据内容
  • Json信息
{"status": true, "code": 200, "message": "获取成功","data": [{ //数据来自设备信息表:equipment_info和评估建议表:evaluate_advice"id": 1, "equip_num": "P0001", "health_grade": "正常", "eval_advice": "正常维护保养","maint_process": "检修, 维护, 保养","risk_state": "60%, 30%, 10%"},{ //数据来自设备信息表:equipment_info和评估建议表:evaluate_advice"id": 2, "equip_num": "P0002", "health_grade": "正常", "eval_advice": "建议尽快进行维护维修","maint_process": "检修, 维护, 保养","risk_state": "70%, 20%, 10%"},......,{ //数据来自设备信息表:equipment_info和评估建议表:evaluate_advice"id": 10, "equip_num": "P0010", "health_grade": "正常", "eval_advice": "必须立刻进行维护维修","maint_process": "检修, 维护, 保养","risk_state": "90%, 5%, 5%"}]
}

服务层(Service)设计

工程目录结构

寿命预测子系统详细设计相关推荐

  1. 科大讯飞2019机械核心部件寿命预测,亚军方案

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 一.背景 预测性维护是工业互联网应用"皇冠上的明珠",实现预测性维护的关键 ...

  2. 统一身份认证子系统详细设计与部分实现

    目  录 一.摘要----------------------------1 二.引言----------------------------1 三. 需求分析 (1)系统的功能要求--------- ...

  3. 【综述 寿命预测】基于机器学习的设备剩余寿命预测方法综述

    论文题目:基于机器学习的设备剩余寿命预测方法综述 论文年份:2019 论文作者:裴洪/胡昌华/司小胜/张建勋/庞哲楠/张鹏 论文单位:火箭军工程大学导弹工程学院 DOI:10.3901/JME.201 ...

  4. 通过深度学习偏微分方程模型估计剩余使用寿命:使用潜变量的 退化的动力学解释框架/PINN 在发动机寿命预测的应用 文献总结和内容概要

    PINN 在发动机寿命预测的应用 文献总结 内容概要 一.引言 二.物理信息神经网络PINN 三.本文所提出的框架 3.1当前DL-PHM所面临的三个问题 3.2 本文相应的解决方案 3.3 DNN框 ...

  5. 深度学习寿命预测技术路线

    基于深度学习的寿命预测学习目标: 主要列举了一下寿命预测的ideas与技术路线方便各位学习哈,自己总结不易,分享更不易,麻烦给个一键三连哈 学习内容: 1. 数据预处理 2. RUL预测的模型 3. ...

  6. 刀具寿命预测特征处理方法、刀具磨损机理

    文章思路 第一章:研究目的.意义及现在研究的状态. 第二章:刀具磨损机理和实验设计. 第三章:刀具状态监测和信号处理与特征提取. 第四章:刀具状态监测的特征选择. 第五章:不完备先验知识的刀具磨损状态 ...

  7. 粒子滤波实现刀具寿命预测

    粒子滤波实现刀具寿命预测(附python代码) (代码更新,增加重采样函数) 背景介绍 刀具失效是加工过程中的主要问题,通过多特征融合方法实现刀具磨损量预测后建立了刀具的健康指标.接下来就是利用得到的 ...

  8. 【LSTM预测】基于matlab鲸鱼算法优化双向长短时记忆BiLSTM航空发动机寿命预测 (多输入单输出)【含Matlab源码 2288期】

    ⛄一.LSTM和BiLSTM神经网络结构及原理介绍 长短期记忆网络(Long short-term memory, LSTM)实质上可以理解为一种特殊的RNN,主要是为了解决RNN网络在长序列训练过程 ...

  9. 聊一聊深度学习做寿命预测

    本博客的码字背景 最近马上就研三了,回顾一路从小白开始入门深度学习做机械核心零部件寿命预测的历程吧. 1.本科期间未接触过python,深度学习相关的内容. 2.研究生在寿命预测方向入门画的时间比较长 ...

最新文章

  1. 【Spring实战】—— 3 使用facotry-method创建单例Bean总结
  2. Linux系统关闭或重新启动主机的命令详解
  3. java操作hdfs文件、文件夹
  4. Permission denied (publickey). fatal: Could not read from remote repository.
  5. el-table使用fixed后,最后一行显示不全;el-table设置fixed后,最后一行被遮挡。
  6. Bootstrap 流式栅格系统
  7. [似水流年]夜色渐深窗内静坐有感
  8. 达而稳 驱动 fl2000dx_Intel-AMD核显驱动没人管:Win10无法升级,不要撞车
  9. linux的set命令详解,Linux_批处理 Set 命令详解 让你理解set命令,set,E文翻译过来就是“设置” - phpStudy...
  10. C++ string 的学习摘录
  11. LockSupport类中的park()和unpark()
  12. Android系统分区理解及分区目录细解【转】
  13. 创建oracle自增序列
  14. 敏捷开发系列学习总结(18)——Scrum Master的情景领导力模型
  15. Intellij IDEA2017.3.5利用补丁破解
  16. 软件测试人员常用的SQL语句
  17. Linux桌面 失败,ubuntu无法进入桌面,安装ubuntu-desktop失败的解决办法
  18. 微信开发网页授权认证
  19. U盘启动盘进入PE后如何重装系统(图解)
  20. 【jenkins】Synopsys Detect入门简介

热门文章

  1. 下水道的美人鱼qvod 十大禁+片之首 下载
  2. 心田花开|三年级作文补习|小学三年级作文补习方法与技巧
  3. CityEngine创造鲜活的三维数字城市
  4. 《Deep Neural Networks for YouTube Recommendation》译读
  5. 营养百科之糙米(保护听力)
  6. 百度站长HTML添加301错误,搜索资源平台(百度站长)添加网站 使用文件验证 验证失败,原因:未知原因:301的解决办法...
  7. 使用java判断环形链表的起点,Leetcode 142题
  8. STM32F0系列串口DMA收发数据
  9. 三四百左右的蓝牙耳机有什么推荐?三四百左右的蓝牙耳机排行榜
  10. html在线填空题,HTML基础练习题目