Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

5.6 负荷预测

1、案例概况

本案例介绍利用MEMS实现负荷预测,包括从scada数据源获取负荷功率量测数据、Onnx神经网络计算、预测结果写入scada数据源。

负荷预测是基于历史用电数据与相关影响因素,对电力系统未来特定时段的负荷需求进行科学估计的技术。本案例中,MEMS首先通过数据源节点接入过去一天共96个采样点的历史负荷数据,然后在计算链路中调用已训练好的Onnx模型节点执行推理,最后输出未来一天96个点的负荷预测功率。

2、测点配置

负荷预测案例中,需要配置量测信息:历史数据测点(100001-100096)用于记录过去一天共96个采样点的,以及预测测点(200001-200096)用于保存计算后的未来一天96个点的负荷预测功率。

注:本案例中采用从量测值的方式获取历史负荷数据,若有其他需求可采用其他数据输入方式,如读表格等。

3、负荷预测配置

设置项-报表配置实现负荷预测计算的DataFrame流,包括获取历史负荷功率数据、onnx计算、预测结果输出等,以下说明具体配置步骤。

(1)获取历史负荷功率数据

报表配置文件中,在节点1中获取历史负荷功率数据(即value量测值),如下所示:

DFF ID节点ID名称节点类型参数1参数2
500011input_valueSource_Measselect value
from meas
where id between 100001 and 100096
order by id asc

节点1类型为Source_Meas,表示获取量测表信息。参数2中的sql语句含义:获取量测表中测点ID为100001至100096的测点的量测值,并按ID大小进行排序。

(2)onnx计算

1)数据预处理

获取历史负荷功率数据后,在边1(节点1→节点2)中对数据进行预处理,以匹配onnx文件的输入数据格式,如下所示:

DFF ID首尾节点边名称描述边类型参数
500011;2预处理EvalSelect(alias(cast(col(value),f32),value_1_1_96));

边1类型为Eval,表示将名为value的数据进行强制类型转换为f32类型,并改名为value_1_1_96。

2)Onnx计算

数据预处理后,在边2(节点2→节点3)中执行神经网络计算动作,如下所示:

DFF ID首尾节点边名称描述边类型参数
500012;3负荷预测Onnxhttp://127.0.0.1:80/forecast/model_96_96.onnx

边2类型为Onnx,将节点2输入的数据作为神经网络的输入,经过model.onnx后输出数据至节点3。注意,需在mems的www文件下创建forecast文件夹,并将model_96_96.onnx放入其中。

(3)预测结果写入scada数据源

Onnx计算后的输出数据是名为mat_1_1_96的1*1*96大小的DataFrame,而写入scada数据源的DataFrame需包含“point”和“analog”两列信息,因此需要数据处理,具体如下:

1)获取目标测点ID

测点配置中,已配置ID为200001-200096的测点用于保存计算后的未来一天96个点的负荷预测功率,用Source_Meas节点类型获取其ID,如下所示:

DFF ID节点ID名称节点类型参数1参数2
500014input_poindIDSource_Measselect id
from meas
where id between 200001 and 200096
order by id asc

节点4类型为Source_Meas,表示获取量测表信息。参数2中的sql语句含义:获取量测表中测点ID为200001至200096的测点的ID,并按ID大小进行排序。

然后,通过类型为Eval的边3(节点4→节点5)对获取的张量改名,如下所示:

DFF ID首尾节点边名称描述边类型参数
500014;5output_pointIDEvalselect(alias(col(`id`), `point`));

2)Onnx预测结果数据处理

DFF ID首尾节点边名称描述边类型参数
500013;5prediction_valueEvalselect(alias(col(`mat_1_1_96`), `analog`));

边4(节点3→节点5)类型为Eval,表示将名为mat_1_1_96的张量改名为analog。

3)数据拼接

DFF ID节点ID名称节点类型参数1参数2
500015准备输出预测结果TensorEvalprediction_meas = concat(horizontal, output_pointID,prediction_value);4

节点5类型为TensorEval,通过concat函数将output_pointID、prediction_value两个张量拼接为一个张量。

4)数据写入scada数据源

DFF ID首尾节点边名称描述边类型参数
500015;6结果写入scada数据源WriteFilemeas://0

边5(节点5→节点6)类型为WriteFile,表示将结果写入scada数据源的指点测点中。

4、预测结果查看

运行负荷预测的DataFrame流,在仪表盘-报表页面可查询计算结果,选择表格展示形式,如下图所示:

负荷预测结果

也可在事件-量测页面中选择scada数据源。可查询测点量测值,如下图所示:

负荷预测结果

以下附件中提供了上述负荷预测的DataFrame流的配置文件,可参考使用。

附件:负荷预测案例.zip