[发明专利]基于ARM的家用电器运行状态非侵入式检测装置及方法有效
| 申请号: | 202010200369.2 | 申请日: | 2020-03-20 |
| 公开(公告)号: | CN111338262B | 公开(公告)日: | 2021-11-19 |
| 发明(设计)人: | 王俊年;王扬华;于文新;廖璟;刘俊 | 申请(专利权)人: | 湖南科技大学 |
| 主分类号: | G05B19/042 | 分类号: | G05B19/042;G06N3/04;G06N3/08 |
| 代理公司: | 湘潭市汇智专利事务所(普通合伙) 43108 | 代理人: | 陈伟 |
| 地址: | 411201 *** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 arm 家用电器 运行 状态 侵入 检测 装置 方法 | ||
1.一种基于ARM的家用电器运行状态非侵入式检测方法,其特征在于,是基于家用电器运行状态非侵入式检测装置实现的,家用电器运行状态非侵入式检测装置包括PC上位机和嵌有Linux的ARM微处理器目标板,所述PC上位机用于将操作系统、驱动程序以及交叉编译后的检测程序移植到ARM微处理器目标板上;所述ARM微处理器目标板用于运行家用电器运行状态检测程序;ARM微处理器目标板包括核心板和扩展底板;核心板上搭载4个ARMCortex-A9内核、4片512M的64位双通道DDR3内存芯片K4B2G1646F-BYMA、1片8G eMMC芯片KLM8G1GETF、1片电源管理芯片S5M8767A;扩展底板上设有通信模块、数据采集模块、RGB-LCD显示模块、TF卡模块、电源模块;
检测方法包括以下步骤:
步骤一、数据采集及标注:采集预测电器的消耗功率,然后根据电器的消耗功率对电器运行状态进行标注;
所述步骤一中,使用家庭智能电表采集用户家庭用电总功率数据,对电表1s采样一次;在家用电器上安装智能插座,对预测电器的消耗功率6s采样一次;根据电器的消耗功率对电器运行状态进行标注,由预测电器的额定功率为预测电器设置功率阈值,超过阈值的消耗功率标注为‘1’,低于阈值的消耗功率标注为‘0’;
步骤二、数据预处理:将标注过的数据进行归一化处理;
所述步骤二中,将标注过的数据进行预处理;根据预测电器使用时间的不同确定一条数据的长度;按照深度学习领域的划分规则,将数据划分为训练集和测试集,划分比例为6:4,然后将训练集和测试集的数据进行归一化处理;
归一化处理采用线性函数归一化方法处理总功率数据,具体公式为:
其中
步骤三、搭建深度学习网络模型:搭建LSTM深度学习网络,调整LSTM深度学习网络的输入参数、网络层数得到最优的LSTM神经网络模型,使用步骤二处理好的数据对LSTM神经网络模型进行训练,得到训练好的LSTM神经网络模型并对LSTM神经网络模型进行测试;
所述步骤三中,首先导入处理过的总功率数据和标注数据,设置网络超参数;然后搭建LSTM神经网络模型,LSTM神经网络模型具有具有2层LSTM层和一层全连接层,每层LSTM设有128个神经元,全连接层具有64个神经元,最后经softmax分类器输出;损失函数采用交叉熵损失函数,优化器选择自适应学习率优化算法Adam算法;然后对LSTM神经网络模型进行训练;
步骤四、系统移植:在PC上位机上搭建嵌入式系统开发环境,然后通过通信模块建立PC上位机和目标板之间的通信,在目标板上进行嵌入式Linux系统的移植;
所述步骤四中,PC上位机通过通信模块和目标板进行串口通信,建立交叉编译环境,然后进行启动引导U-boot的移植、Linux内核的移植以及Ubuntu系统文件的移植;
U-boot移植如下:
1)下载解压U-boot源码;
2)在解压后根目录下运行configure文件配置平台;
3)使用make命令编译U-boot,并将生成的u-boot.bin文件传输至TF卡根文件系统中,从TF卡启动系统即完成U-boot的移植;
Linux内核移植的步骤如下:
1)下载4412处理器的内核版本Linux-3.0;
2)解压并修改config_for_ubuntu.config,配置好平台;
3)使用命令make zImage生成镜像文件,并将生成的zImage传输至目标板,reboot即可启动写入系统,Linux内核移植成功;
Ubuntu文件系统移植的步骤如下:
1)下载Ubuntu-12.04源码;
2)将其源码传输至目标板,解压源码;
3)使用reset命令重启开发板,即可启动Ubuntu系统;
步骤五、数据读取:通过数据采集模块获得用户家庭的总功率;
所述步骤五中,在DL645-2007多功能电能表通信协议中规定了手持单元与多功能电能表的数据交换的物理连接、通信链路及应用技术规范,通过数据采集模块与多功能电能表进行物理连接,使手持单元向多功能电能表发送信息帧,然后接收反馈回的数据标识,解码得到所需数据;
步骤六、使用tensorflow lite将搭建好的LSTM神经网络模型量化,并将tensorflowlite库文件交叉编译至目标板,然后利用tensorfow lite解释器读取模型并进行预测,最后将预测结果经RGB-LCD显示模块在LCD屏幕上显示;
所述步骤六中,利用tensorflow lite工具将LSTM神经网络模型量化并保存为TFlite文件格式,编写自定义的bazel交叉编译工具链将tensorflow lite库交叉编译,利用交叉编译后的tensorflow lite库文件,使用tensorflow lite解释器读取LSTM神经网络模型,并将步骤五读取的数据作为LSTM神经网络模型的输入得到预测结果,然后通过RGB-LCD显示模块在LCD屏幕上显示
使用tensorflow lite 的C++ API读取LSTM神经网络模型的具体过程如下:
1)下载Tensorflow源码并解压;
2)在Tensorflow源码的根目录下运行代码./configure进行编译配置,选择-march=armv7-a;
3)bazel是google开源编译构建工具,自定义了bazel的交叉编译工具链用于构建适合目标板平台的tensorflow lite动态库;配置bazel的自定义交叉编译工具链需要在Tensorflow源码的根目录下修改WORKSPACE文件,添加如下配置文件:
new_local_respository(
name = ‘toolchain_target_armv7’,
path = ‘/usr/ARM/toolchain/arm-2009q3’,
build_file = ‘cross_toolchain_target_armv7.BUILD’
)
然后在根目录下编写以下四个文件build_tflite_armv7.sh 、CROSSTOOL 、BUILD、cross_toolchain_target_armv7.BUILD,其中cross_toolchain_target_armv7.BUILD用于确定交叉编译器所需的二进制可运行程序的位置,build_tflite_armv7.sh用于运行交叉编译命令,CROSSTOOL文件用于确定交叉编译器和本地编译器的配置文件,BUILD用于将需要编译的文件集中,方便编译成库文件;
4)因为tensorflow lite目前仅支持有限Tensorflow的ops量化,步骤三中搭建的LSTM深度学习网络使用的LSTM不受tensorflow lite的量化支持;为了重新编译tensorflowlite的动态库使其支持LSTM,在编译tensorfow lite的动态库时应修改bazel的编译包含目录,在tensorflow/lite目录下的BUILD文件中添加命令:
//tensorflow/lite/delegats/flex:delegate
然后再回到Tensorflow源码根目录下运行命令:
./build_tflite_armv7.sh
这样就可以生成支持所有Tensorflow的ops的tensorflow lite动态库;
5)基于上述生成的tensorflow lite动态库编写程序,使用tensorflow lite解释器读取步骤三中训练好的模型,然后预测步骤五中读取的数据,再将预测结果经硬件部分的RGB-LCD显示模块在LCD屏幕上显示;
6)编写Makefile文件,将在PC上位机上编写的程序交叉编译成可在目标板上运行的二进制文件,然后将tensorflow lite动态库经硬件部分的通信模块传输至目标板的/lib目录下;
7)通过硬件部分的数据采集模块连接多功能电能表,然后通过硬件部分的通信模块,在PC上位机上向目标板发送指令运行检测程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南科技大学,未经湖南科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010200369.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种石油工程用钻井液密度传感器
- 下一篇:桔贝合剂HPLC指纹图谱的建立方法





