Browse Source

逆变器分析7

xushili 1 year atrás
parent
commit
0845b9f982

+ 1 - 0
power-fitting-JN/src/main/java/com.gyee.power.fitting/controller/gf/PhotovoltaicAnalysisController.java

@@ -63,6 +63,7 @@ public class PhotovoltaicAnalysisController {
         wrapper.select("station_id,equipment_id,avg(scatter) scatter,avg(conversion_efficiency)" +
                         " conversion_efficiency,sum(equivalent_generating_time) equivalent_generating_time," +
                         "avg(device_availability) device_availability").between("data_date", startDate, endDate)
+                .eq("station_id", stationId)
                 .groupBy("station_id,equipment_id").orderByAsc("equipment_id");
         Page<PhotovoltaicAnalysis> page = new Page<>(pageNum, pageSize);
         Page<PhotovoltaicAnalysis> list = photovoltaicAnalysisService.page(page, wrapper);

+ 10 - 11
power-fitting-JN/src/main/java/com.gyee.power.fitting/dispersionanalysis/InverterPowerAnalysis2.java

@@ -1,7 +1,6 @@
 package com.gyee.power.fitting.dispersionanalysis;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.collection.ListUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.gyee.power.fitting.common.alg.PolynomialCurveFitting;
 import com.gyee.power.fitting.common.result.JsonResult;
@@ -120,14 +119,14 @@ public class InverterPowerAnalysis2 {
 
     // 计算功率离散率
     public double calcPowerDeviation(List<TsDoubleData> gzqd, List<TsDoubleData> yggl, double averagePower, long startTime, long endTime) {
-        if(CollectionUtil.isEmpty(gzqd) || CollectionUtil.isEmpty(yggl)) return 0;
-        List<TsDoubleData> S = dataCompletion(gzqd, startTime, endTime);
-        List<TsDoubleData> P = dataCompletion(yggl, startTime, endTime);
+        if (CollectionUtil.isEmpty(gzqd) || CollectionUtil.isEmpty(yggl)) return 0;
+        //List<TsDoubleData> S = dataCompletion(gzqd, startTime, endTime);
+        //List<TsDoubleData> P = dataCompletion(yggl, startTime, endTime);
         WeightedObservedPoints points = new WeightedObservedPoints();
         double s, p;
-        for (int i = 0; i < S.size(); i++) {
-            s = S.get(i).getDoubleValue();
-            p = P.get(i).getDoubleValue();
+        for (int i = 0; i < gzqd.size(); i++) {
+            s = gzqd.get(i).getDoubleValue();
+            p = yggl.get(i).getDoubleValue();
             if (s < 1 || p < 1) {
                 points.add(0, 0);
             }
@@ -138,12 +137,12 @@ public class InverterPowerAnalysis2 {
 
         double sum = 0.0, power;
         // 计算标准差
-        for (int i = 0; i < S.size(); i++) {
-            s = S.get(i).getDoubleValue();
-            p = P.get(i).getDoubleValue();
+        for (int i = 0; i < gzqd.size(); i++) {
+            s = gzqd.get(i).getDoubleValue();
+            p = yggl.get(i).getDoubleValue();
             sum += Math.pow(p - pncf.calcPoly(s, run), 2);
         }
-        return Math.sqrt(sum / S.size());
+        return Math.sqrt(sum / gzqd.size());
     }
 
     private List<TsDoubleData> dataCompletion(List<TsDoubleData> gzqd, long startTime, long endTime) {

+ 4 - 4
power-fitting-JN/src/main/java/com.gyee.power.fitting/dispersionanalysis/PhotovoltaicAnalysisTask.java

@@ -75,11 +75,11 @@ public class PhotovoltaicAnalysisTask {
         //获取有功功率测点
         List<ProBasicEquipmentPoint> ygglList = getPointsByUniformcode("AI114");
         //逆变器id,有功功率测点
-        Map<String, String> ygglPointMap = points2InverterPointMap(rfdlList);
+        Map<String, String> ygglPointMap = points2InverterPointMap(ygglList);
         //获取光照强度测点
         List<ProBasicEquipmentPoint> gzqdList = getPointsByUniformcode("AI066");
         //逆变器id,光照强度测点
-        Map<String, String> gzqdPointMap = points2InverterPointMap(rfdlList);
+        Map<String, String> gzqdPointMap = points2InverterPointMap(gzqdList);
 
         //逆变器id,设备状态测点
         Map<String, String> sbztPointMap = points2InverterPointMap(getPointsByUniformcode("SBZT"));
@@ -137,13 +137,13 @@ public class PhotovoltaicAnalysisTask {
                     double dxfds = inverterAnalysis.calcEquivalentOperatingHours(rfdl, zjrl);
                     analysis.setEquivalentGeneratingTime(dxfds);
                     //有功功率
-                    List<TsDoubleData> ygglInfoList = remoteService.adapterfd().getRawValuesByKey(ygglPointMap.get(equipmentId), dateTime.getTime(), endTime.getTime());
+                    List<TsDoubleData> ygglInfoList = remoteService.adapterfd().getHistorySnap(ygglPointMap.get(equipmentId), dateTime.getTime(), endTime.getTime(), 300);
                     //平均功率
                     double pjGl = ygglInfoList.stream().filter(i -> i.getDoubleValue() > 1).mapToDouble(TsDoubleData::getDoubleValue).average().orElse(0);
                     analysis.setAveragePower(pjGl);
 
                     //光照强度
-                    List<TsDoubleData> gzqdInfoList = remoteService.adapterfd().getRawValuesByKey(gzqdPointMap.get(equipmentId), dateTime.getTime(), endTime.getTime());
+                    List<TsDoubleData> gzqdInfoList = remoteService.adapterfd().getHistorySnap(gzqdPointMap.get(equipmentId), dateTime.getTime(), endTime.getTime(), 300);
                     double pjGzqd = gzqdInfoList.stream().filter(i -> i.getDoubleValue() > 1).mapToDouble(TsDoubleData::getDoubleValue).average().orElse(0);
 
                     //平均理论功率