|
@@ -1,5 +1,6 @@
|
|
|
package com.hb.proj.analysis.service;
|
|
|
|
|
|
+import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
|
|
|
import com.hb.proj.model.DiagramFeature;
|
|
@@ -35,6 +36,7 @@ public class DiagramFeatureDetecter {
|
|
|
List<Double> dwnOth=diagram.getOths().subList(diagram.getTurnIndex(), size);
|
|
|
|
|
|
|
|
|
+
|
|
|
//上冲程增载结束点
|
|
|
int addloadEnd=DiagramDetectUtils.indexOfEG(feature.getTheoryMax(),upOth);
|
|
|
|
|
@@ -63,17 +65,34 @@ public class DiagramFeatureDetecter {
|
|
|
//下冲程位移序列
|
|
|
List<Double> dwnDisp=diagram.getDisps().subList(diagram.getTurnIndex(), size);
|
|
|
|
|
|
+ //上冲程采集值序列
|
|
|
+ List<Double> upOth=diagram.getOths().subList(0,diagram.getTurnIndex());
|
|
|
+
|
|
|
//下冲程采集值序列
|
|
|
List<Double> dwnOth=diagram.getOths().subList(diagram.getTurnIndex(), size);
|
|
|
|
|
|
- //上冲程采集值序列
|
|
|
- List<Double> upOth=diagram.getOths().subList(0,diagram.getTurnIndex());
|
|
|
+
|
|
|
+ int up1_3Idx=(int)Math.floor(diagram.getTurnIndex()/3);
|
|
|
+ int up2_3Idx=up1_3Idx*2;
|
|
|
+
|
|
|
+ List<Double> upmidOths=diagram.getOths().subList(up1_3Idx,up2_3Idx);
|
|
|
+ double upmidAvg=DiagramDetectUtils.avg(upmidOths);
|
|
|
+ double upmidMax=Collections.max(upmidOths);
|
|
|
+ double upmidMin=Collections.min(upmidOths);
|
|
|
+
|
|
|
+ int dwn1_3Idx=(int)Math.floor((diagram.getOths().size()-diagram.getTurnIndex())/3);
|
|
|
+ int dwn2_3Idx=dwn1_3Idx*2;
|
|
|
+
|
|
|
+ List<Double> dwnmidOths=dwnOth.subList(dwn1_3Idx,dwn2_3Idx);
|
|
|
+ double dwnmidAvg=DiagramDetectUtils.avg(dwnmidOths);
|
|
|
+ double dwnmidMax=Collections.max(dwnmidOths);
|
|
|
+ double dwnmidMin=Collections.min(dwnmidOths);
|
|
|
|
|
|
//上冲程增载结束点
|
|
|
- int addloadEnd=DiagramDetectUtils.indexOfEG(diagramFea.getTheoryMax(),upOth);
|
|
|
+ int addloadEnd=DiagramDetectUtils.indexOfEG(upmidAvg,upOth);
|
|
|
|
|
|
//上冲程后段有急剧卸载时
|
|
|
- int upUnloadEnd=DiagramDetectUtils.indexOfEL(diagramFea.getTheoryMin(),diagram.getOths().subList(addloadEnd,diagram.getTurnIndex()));
|
|
|
+ int upUnloadEnd=DiagramDetectUtils.indexOfEL(dwnmidAvg,diagram.getOths().subList(addloadEnd,diagram.getTurnIndex()));
|
|
|
|
|
|
if(upUnloadEnd>=0) {
|
|
|
return "管式泵活塞脱出";
|