日前预测与实时预测

功能描述

此服务用于电负荷和光伏出力的日前预测与实时预测

服务信息

预测模块数据交互

模块输入数据

预测模块需要大量测量数据和历史数据作为输入数据,因此采用json文件形式。

预测功能的输入文件分别有
1.电负荷的测量数据采用JSONObject数据形式,具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
{
"results": [
{
"dtime": "2018-05-14 00:00:00",
"val": 33.301
},
{
"dtime": "2018-05-14 00:15:00",
"val": 31.669
}
],
}

2.光伏出力的测量数据采用JSONObject数据形式,具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
{
"results": [
{
"dtime": "2018-05-14 00:00:00",
"val": 33.301
},
{
"dtime": "2018-05-14 00:15:00",
"val": 31.669
}
],
}

3.风电出力的测量数据采用JSONObject数据形式,具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
{
"results": [
{
"dtime": "2018-05-14 00:00:00",
"val": 74.002
},
{
"dtime": "2018-05-14 00:15:00",
"val": 72.235
}
],
}

4.天气的测量数据采用JSONObject数据形式,具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"results": [
{
"dtime": "2018-05-05 00:00:00",
"temperature": 19,
"solarIrradiance": 0,
"weather": "rain"
},
{
"dtime": "2018-05-05 00:15:00",
"temperature": 19,
"solarIrradiance": 0,
"weather": "rain"
}
],
}

预测功能的结果以json文件输出
1.日前负荷预测结果为test/resources/outputData/dayaheadEloadForecast.json路径文件中
2.日前光伏出力预测结果为test/resources/outputData/dayaheadPvForecast.json路径文件中
3.日前风电出力预测结果为test/resources/outputData/dayaheadWtForecast.json路径文件中
4.实时负荷预测结果为test/resources/outputData/realtimeEloadForecast.json路径文件中
5.实时光伏出力预测结果为test/resources/outputData/realtimePvForecast.json路径文件中

电负荷日前预测

1
2
3
service DEloadForecastService {
rpc doDEloadForecast (DEFData) returns (DEFReply) {}
}

输入数据封装类为DEFData,输出结果封装类为DEFReply。
根据当前天气状态,将前一天的实际负荷情况作为负荷日程安排的参照量,并将此作为主要影响因子,进行相似日的选择,之后经过历史数据训练的神经网络算法,得到日负荷预测结果。

输入数据

proto文件定义如下:

1
2
3
4
message DEFData {
repeated DeloadData Deload_data = 1;
repeated DtemperatureData Dtemperature_date = 2;
}

具体含义如下:

  1. Deload_data:历史电负荷数据
    1. Deloaddata:电负荷测量值
    2. time_date:测量时间
      1
      2
      3
      4
      message DeloadData {
      double Deloaddata = 1;
      string time_date = 2;
      }
  2. Dtemperature_date:历史温度数据
    1. Dtemperaturedata:温度测量值
    2. time_date:测量时间
      1
      2
      3
      4
      message DtemperatureData {
      double Dtemperaturedata = 1;
      string time_date = 2;
      }

输出数据

proto文件定义如下:

1
2
3
message DEFReply {
repeated DEFResult Deload_forecast = 1;
}

具体含义如下:

  1. Deload_forecast:电负荷日前预测结果
    1. Deloadforecast:电负荷预测值
    2. time_date:测量时间
      1
      2
      3
      4
      message DEFResult {
      double Deloadforecast = 1;
      string time_point = 2;
      }

光伏发电日前预测

1
2
3
service DPVForecastService {
rpc doDPVForecast (DPVFData) returns (DPVFReply) {}
}

输入数据封装类为DPVFData,输出结果封装类为DPVFReply。
根据历史的有效太阳辐射强度,应用神经网络预测下一时段有效太阳辐射;再利用这两组数据分别建立样本集,之后分析不同样本集之间的预测误差。根据提供的日前天气数据匹配修正因子,完成联合条件离散预测,结合典型季节性因素得到光伏功率预测数据。

输入数据

proto文件定义如下:

1
2
3
4
5
message DPVFData {
repeated DPVData DPV_data = 1;
repeated DtemperatureData Dtemperature_date = 2;
repeated DsolarIrradianceData DsolarIrradiance_data = 3;
}

具体含义如下:

  1. DPV_data:历史光伏出力数据
    1. DPVdata:光伏出力测量值
    2. time_date:测量时间
      1
      2
      3
      4
      message DPVData {
      double DPVdata = 1;
      string time_date = 2;
      }
  2. Dtemperature_date:历史温度数据
    1. Dtemperaturedata:温度测量值
    2. time_date:测量时间
      1
      2
      3
      4
      message DtemperatureData {
      double Dtemperaturedata = 1;
      string time_date = 2;
      }
  3. DsolarIrradiance_data:历史光照辐射强度数据
    1. DsolarIrradiancedata:光照辐射强度测量值
    2. time_date:测量时间
      1
      2
      3
      4
      message DsolarIrradianceData {
      double DsolarIrradiancedata = 1;
      string time_date = 2;
      }

输出数据

proto文件定义如下:

1
2
3
message DPVFReply {
repeated DPVFResult DPV_forecast = 1;
}

具体含义如下:

  1. DPV_forecast:光伏出力日前预测结果
    1. DPVforecast:光伏出力预测值
    2. time_date:测量时间
      1
      2
      3
      4
      message DPVFResult {
      double DPVforecast = 1;
      string time_point = 2;
      }

风电出力日前预测

1
2
3
service DWtForecastService {
rpc doDWtForecast (dayaheadWtData) returns (dayaheadWtReply) {}
}

输入数据封装类为dayaheadWtData,输出结果封装类为dayaheadWtReply。

输入数据

proto文件定义如下:

1
2
3
4
message dayaheadWtData {
repeated DWtData DWt_data = 1;
repeated DwindData Dwind_date = 2;
}

具体含义如下:

  1. DWt_data:历史风电出力数据
    1. wtMeasurement:风电出力测量值
    2. time_date:测量时间
      1
      2
      3
      4
      message DWtData {
      double wtMeasurement = 1;
      string time_date = 2;
      }
  2. Dwind_date:历史风速数据
    1. windData:风速测量值
    2. time_date:测量时间
      1
      2
      3
      4
      message DwindData {
      double windData = 1;
      string time_date = 2;
      }

输出数据

proto文件定义如下:

1
2
3
message dayaheadWtReply {
repeated dayaheadWtResult Dwt_forecast = 1;
}

具体含义如下:

  1. Dwt_forecast:风电出力日前预测结果
    1. wtForecast:风电出力预测值
    2. time_point:测量时间点
      1
      2
      3
      4
      message dayaheadWtResult {
      double wtForecast = 1;
      string time_point = 2;
      }

电负荷实时预测

1
2
3
service realtimeEloadForecastService {
rpc doRealtimeEloadForecast (realtimeEloadData) returns (realtimeEloadReply) {}
}

输入数据封装类为realtimeEloadData,输出结果封装类为realtimeEloadReply。
通过当前时刻前3小时的历史负荷数据预测未来1个半小时电负荷需求,应用预测控制模型的思想,通过每15分钟运行一次程序,将预测结果的第一个15分钟数据传输给调度模块以应用于实际工程,其余预测数据进行结果的修正。

输入数据

proto文件定义如下:

1
2
3
message realtimeEloadData {
repeated eloadData data = 1;
}

具体含义如下:

  1. data:历史电负荷数据
    1. eload:电负荷测量值
    2. time:测量时间
      1
      2
      3
      4
      message eloadData {
      double eload = 1;
      string time = 2;
      }

输出数据

proto文件定义如下:

1
2
3
message realtimeEloadReply {
repeated realtimeEloadResult forecast = 1;
}

具体含义如下:

  1. forecast:电负荷实时预测结果
    1. eloadForecast:电负荷预测值
    2. timeForecast:测量时间
      1
      2
      3
      4
      mmessage realtimeEloadResult {
      double eloadForecast = 1;
      string timeForecast = 2;
      }

光伏出力实时预测

1
2
3
service realtimePvForecastService {
rpc doRealtimePvForecast (realtimePvData) returns (realtimePvReply) {}
}

输入数据封装类为realtimePvData,输出结果封装类为realtimePvReply。
通过当前时刻前3小时的时间预测未来1个半小时光伏出力,应用预测控制模型的思想通过每15分钟运行一次程序,将预测结果的第一个15分钟数据传输给调度模块以应用于实际工程,其余预测数据进行结果的修正。

输入数据

proto文件定义如下:

1
2
3
message realtimePvData {
repeated pvData data = 1;
}

具体含义如下:

  1. data:历史光伏出力数据
    1. pv:光伏出力测量值
    2. time:测量时间
      1
      2
      3
      4
      message pvData {
      double pv = 1;
      string time = 2;
      }

输出数据

proto文件定义如下:

1
2
3
message realtimePvReply {
repeated realtimePvResult forecast = 1;
}

具体含义如下:

  1. forecast:光伏出力实时预测结果
    1. pvForecast:光伏出力预测值
    2. timeForecast:测量时间
      1
      2
      3
      4
      message realtimePvResult {
      double pvForecast = 1;
      string timeForecast = 2;
      }

错误处理

不同类型异常抛出含义如下:

  1. DataTimeMismatchException:数据时间不匹配异常
  2. EloadDataLossException:电负荷数据缺失异常
  3. PvDataLossException:光伏出力数据缺失异常
  4. WeatherDataLossException:天气数据缺失异常
  5. OtherErrorException:其它错误

注意事项

  1. 本服务暂为试运行状态,可能存在潜在的正确性和稳定性问题。
  2. 若对于本服务有任何疑问或者建议,请联系作者21610035@zju.edu.cn

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器