Explorar el Código

[2610021] 统一功率mock量纲: mockPower峰值由2000+600*season改为按150000kW装机对850W/m2晴空辐照定标(与采集数据mock同量纲), POWER_CAP 2600->150000, 超短期/短期/中期文件mock功率与采集数据接近(万kW级)

taosj hace 1 semana
padre
commit
b8c4e09a60

+ 6 - 4
forecast-backend-server/src/main/java/com/ufo/project/data/task/MockDataTask.java

@@ -97,8 +97,8 @@ public class MockDataTask
     /** 中期数据点数(自起报时间(含)起960点) */
     private static final int MEDIUM_POINTS = 960;
 
-    /** 出力上限 */
-    private static final double POWER_CAP = 2600.0;
+    /** 出力上限(kW, 与采集数据mock一致, 按150000kW装机容量定标) */
+    private static final double POWER_CAP = 150000.0;
 
     /** 采集数据mock固定场站ID(config_station_id) */
     private static final long COLLECT_STATION_ID = 2L;
@@ -511,7 +511,9 @@ public class MockDataTask
     }
 
     /**
-     * 计算mock光伏出力: 夜间为0, 白天钟形曲线, 峰值与日照时长随季节变化, 叠加缓慢云量波动
+     * 计算mock光伏出力: 夜间为0, 白天钟形曲线, 峰值与日照时长随季节变化, 叠加缓慢云量波动;
+     * 峰值按150000kW装机容量对晴空辐照定标(与采集数据mock同量纲, 夏峰~150000/冬峰~112500),
+     * 与采集数据在相近时刻的数值接近
      *
      * @param tUtc 数据时刻(UTC)
      * @param t0   起报时间(epoch小时), 用于云量相位基准
@@ -528,7 +530,7 @@ public class MockDataTask
     {
         int doy = tUtc.toLocalDate().getDayOfYear();
         double season = Math.cos(2 * Math.PI * (doy - 195.0) / 365.0);
-        double peak = 2000 + 600 * season;
+        double peak = COLLECT_CAPACITY_KW * (750 + 100 * season) / CLEAR_PEAK_REF;
         double halfDay = 5.9 + 1.4 * season;
         double sunrise = 12 - halfDay;
         double sunset = 12 + halfDay;