这里主要介绍以下几点内容:1.深度学习环境的搭建 2.电能质量扰动数据集的生成 3.如何构建简单CNN去做分类任务。关于第2和第3个的代码和我产生的数据集,在以下链接中被分享:
https://pan.baidu.com/s/1IK6AHwj8NIerlMKv9UAfig 提取码u3oc
1.搭建环境。
百度搜索“Anaconda”,下载Python 3.7 version,我当时下载的是3.6,因为他经常更新,现在都已经到3.7了。下载后安装就可以了。安装结束后打开Ananconda Navigator。如图1所示,选中左边的environment,在右边输入keras,然后在右下角点apply就是安装的意思。因为我的电脑已经装了,所以右下角并没有显示安装的选项。等安装玩keras之后,环境就基本搭建好了。
2.电能质量扰动数据集的生成
电能质量扰动的分类,不同的文献有着略微不同的差距,读者可以查看以下三个论文关于电能质量扰动的定义:
[1]肖露欣,李增祥,马建,陈克绪,吴建华.基于降噪自编码的电能质量扰动识别[J].南昌大学学报(理科版),2017,41(06):591-595.
[2]姚建刚,郭知非,陈锦攀.基于小波和BP神经网络的电能扰动分类新方法[J].电网技术,2012,36(05):139-144.
[3]张全明,刘会金.最小二乘支持向量机在电能质量扰动分类中的应用[J].中国电机工程学报,2008(01):106-110.
在这里我们主要将电能质量信号分成:正常信号、电压瞬升、电压瞬降、谐波、闪变、电压中断、暂态脉冲以及振荡暂态8种状态每一种状态的定义如下:
设定采样参数是:采样区间是10个周期也就是0.2s,每秒采样3915次,0.2秒只要采样783次即可,也就是784个采样点。产生数据集的代码是用matlab编写的,直接把代码放在matlab命令行串口就可以产生一个扰动信号,比如每次运行暂态脉冲代码获得的信号都是不一样的。如果需要大量的信号只需要把我写的代码放到函数里面,反复调用函数就可以获得数据集了。
3.CNN去做分类任务
我们利用上面的程序得到了ZerosOnePowerQuality.csv文件,里面包括了8种信号,总共有9000条信号,每条信号的长度是784。其中,前8000个分别是8种信号作为训练集,每种有1000个。后1000个也包括8种信号作为测试集,每种125个。把代码放到spyder的环境中,我的spyder的默认路径是“D:\Matlab2018a\328”,并把ZerosOnePowerQuality.csv放到默认路径下后直接运行程序得到结果如图。(我的默认路径和matlab没有关系,只是因为我习惯把python的默认路径和matlba的默认路径放在一个文件夹下,即matlab和python的程序在附近,默认路径随意设定就好)
网友评论