球磨机数据预采集结束了,接下来的大量工作就是处理数据,(相比采集轻松多了)
采集的过程中设置的是51.2K的采样率,需要大约60秒的数据,为了方便,截取有效数据为300w,因为在球磨机在变频器的控制下,设置的变频器的启动时间是10秒,结束时间是6秒,因此,采集的实际时间要比60秒长,为了保障数据的可靠性,我这里采集了75秒,因此需要,因此需要对数据进行剪切。
数据的保存格式是这样的
实验有140次每次有4个文件,分别为,传感器数据,功率数据,485发送命令,以及接受命令存档。简单表示为如下:
/1--
/commend.txt
/response.txt
/功率。txt
/数据
/2--
/commend.txt
/response.txt
/功率。txt
/数据
。。。。
有用的只是数据。整体的思路是这样的:
1.输入根目录
2 对根目录加上1-140并用valueof转化为字符串,
3.遍历目录,找到有数据关键词的
4进行文本的读写
代码为下:
package com.hemin; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.LineNumberReader; public class Datapro { public static void main(String[] args) throws IOException { String path ="E:\\data\\"; String pro = "状态"; for(int i=1 ;i<2 ;i++){ String newpath =path+ String.valueOf(i)+"\\"; System.out.println(newpath); File dir = new File(newpath); String[] children = dir.list(); for (String string : children) { if(string.contains(pro)){ String filepath = newpath+string; String wfile = "d:\\data\\"+String.valueOf(i)+"_"+string; File df = new File(wfile); File f = new File(filepath); FileWriter wf = new FileWriter(wfile); getTotalLines(f , wf); wf.close(); } } } } public static void getTotalLines(File file ,FileWriter wfile) throws IOException { BufferedWriter wb = new BufferedWriter(wfile); FileReader in = new FileReader(file); LineNumberReader reader = new LineNumberReader(in); String s = reader.readLine(); int lines = 0; while (s != null) { lines++; s = reader.readLine(); if(lines>380000 && lines<=3380000 ){ //System.out.println(s); wb.write(s); wb.newLine(); } wb.flush(); } wb.close(); reader.close(); in.close(); } }
不过这个代码的效率比较低,考虑到其只用一次,所以就这样吧!
本文介绍了球磨机数据预采集结束后进行数据处理的过程,包括如何截取有效数据、确保数据可靠性,并通过编程实现数据的筛选与保存。
884

被折叠的 条评论
为什么被折叠?



