Co-simulation of Power Grid, Information Network and Transportation Network Simulation System
前言
中文名是电网、信息网、交通网联合仿真仿真系统,之前从一个材料里面看到过类似的主题,但是一直没找到过类似的论文。今天搜交通网络无意间搜到了,来学习一下别人是怎么做的。
背景&动机
近年来,能源网络、信息网络和交通网络的融合已成为全球性的问题和趋势。三网融合,意味着能源网、信息网、交通网由各自区块各自独立发展转变为一体化、共享协调发展,实现能源流、信息流、交通流的高效协调。电动汽车,具有能源网络、信息网络、交通网络三大属性,使电动汽车成为三网融合研究的主导领域。
目前,缺乏对电网-交通网信息网络耦合系统仿真的研究。电网信息网-交通网络耦合仿真系统是连续时间与离散事件耦合的混合系统。在仿真过程中很难对这种复杂动态过程的集成过程进行建模。如果与现有的仿真工具一起使用,还存在数据传输、时间同步等技术问题。目前市场上还没有成熟的软件,现有的研究不能满足仿真的需要。
仿真建模设计
系统架构
文章采用了三种仿真软件如下(附简介),并且采用时间同步的方法来协调整个仿真系统,作者画了一幅图来描述这个过程。
- OMNeT++是个事件驱动的仿真器,适合做离散事件网络系统仿真。通常可进行通信系统通信模型仿真、协议仿真、硬件体系结构验证、复杂软件系统性能评估、所有其他离散事件驱动应用的建模和仿真。
- OpenDSS(The Open Distribution System Simulator)是美国电科院(EPRI)研发的一款免费的、开源的电力系统配电网仿真工具,用于模拟分布式电力系统。这个软件支持几乎所有常用的用于配网规划分析的基于有效值(RMS)的稳态分析(即频域分析)。并且它还支持许多有关智能电网的新分析来迎接电网分析的未来需要。这个软件的特性包括:支持分布式发电分析;支持电能传送的效率分析;智能电网应用;谐波分析。此外,它支持许多新型的分析,旨在满足未来与智能电网、电网现代化和可再生能源研究相关的需求。
- SUMO 是一个开源、高度可移植的微观交通模拟软件包,旨在处理大型道路网络和不同的交通方式。交通网络利用SUMO中已有的模型来模拟整个交通网络。现有模型包括道路节点、道路边缘、车辆等。电网采用OpenDSS中成熟的仿真模型和计算方法来模拟电网并计算潮流。仿真模型包括母线、电力传输组件、电力转换组件和辅助组件。信息网络仿真系统中开发了控制模块、数据交互接口模块、时间同步模块和路径规划模块,实现电网和交通网络仿真数据的采集和传输以及控制仿真时间同步功能。
同时他还分了很多个模块干不同的事情
- 数据交互接口模块:通过调用TraCI接口交通网络仿真系统与信息网络仿真系统之间用于数据交互,COM接口实现信息网络仿真系统、电网仿真系统和交通网络仿真系统之间的数据交互
- 时间同步模块:主要实现信息网络仿真系统、交通网络仿真系统和电网仿真系统之间的仿真时间同步。
- 控制模块:实现跨节点数据采集,判断故障时间是否到达,生成故障处理指令并发送给时间同步模块。时间同步模块下发指令,生成新的时间同步点进行时间同步。
- 路径规划模块:推荐最佳充电桩供电动汽车充电。
下面分别详细介绍这几个模块
数据交互接口模块
开发的数据交互接口模块包括【交通网络仿真系统与信息网络仿真系统之间的数据交互接口】、【电网仿真系统与信息网络仿真系统之间的数据交互接口】、【网络仿真控制平台与信息网络仿真系统之间的数据交互接口】三部分
交通网络仿真系统与信息网络仿真系统之间用于数据交互的接口是TraCI接口,通过该接口用户可以访问正在进行的道路交通仿真,检索仿真对象的值并操纵其行为,采用交通网络仿真系统SUMO作为服务器,控制整个交通仿真。在python中有对应的traci包,可以利用其调用sumo进行仿真设计。下面有网上借鉴来的一段示例。
# coding=utf-8
import sys
import random
import sumolib
import traci # noqa
import csv
traci.start(["sumo-gui", "-c", "/location/map.sumo.cfg", "--emission-output", "emission"], port=7911)
while traci.simulation.getMinExpectedNumber() > 0:
traci.simulationStep()
traci.close()
sys.exit()
以信息网络仿真系统OMNeT++作为客户端,控制交通网络仿真系统的仿真并获取仿真数据,同时将数据封装成消息进行发送。这个过程主要是通过windows的COM接口去进行消息传递的。在python中可以利用python的win32库进行操作。数据交通网络仿真系统和信息网络仿真系统主要是收费站和电动汽车行驶数据的交通网络仿真系统。
import win32com.client
com_object = win32com.client.Dispatch("ComponentName.ClassName")
result = com_object.MethodName(parameter1, parameter2)
print("Result:", result)
电网仿真系统与信息网络仿真系统进行数据交互所使用的接口是COM接口。 COM对象使用接口成员函数向客户端显示自己的信息,客户端程序通过这些函数获得COM对象提供的服务。下图为python交互的图片。
本文采用Socket通信方式实现信息网络仿真系统与仿真控制平台之间的数据交互,其中仿真控制平台作为客户端,信息网络仿真系统作为服务器。
时序同步模块
本文联合仿真中采用的时间同步方法是在主从时间同步方法的原理基础上,增加了故障及时处理的功能,并生成新的时间同步点进行时间同步。主从时间同步方法是一种用于在网络中同步多个设备时钟的技术。在这种方法中,一个设备(主设备)被指定为参考时间源,而其他设备(从设备)则将它们的时钟与主设备进行同步。
静态时间同步是指信息网络仿真系统、电力网络仿真系统和交通网络仿真系统在正常运行情况下,在预先设定的时间点进行数据交互,以保证整个协同仿真系统的时间同步。
模拟控制模块
仿真控制模块在整个协同仿真原型系统中起到控制器和接口的作用,包括仿真场景初始化、仿真器启动、仿真运行指令下发和仿真结果显示四个主要功能。仿真的初始化主要负责接收用户在界面上输入的信息,并根据这些信息修改相关的配置文件。模拟器通过输入启动指令来启动模拟软件;仿真运行指令通过Socket发送至信息网络仿真系统。通过读取各个模拟器的结果文件以图表的形式显示模拟结果。
仿真实验
作者的应用实验是电车充电问题。通过协调交通网以及电网相关信息给汽车充电寻找最佳路径。具体的模拟过程如下
-
读取交通网络仿真软件文件,对各路段赋予初始权重。权重是路段的长度除以通行的速度,反映了路段的通过时间
-
然后判断汽车接入后充电站对应的电网节点负载是否超过阈值(阈值是人为设定的)
-
如果超过阈值则选择其他节点,回到2,否则计算安全系数 S I SI SI,如下。其中, P ( t ) P(t) P(t)为 t t t时刻充电站对应配电网节点的预估负荷, P _ l i m P\_lim P_lim 为充电站对应的配电网节点负荷阈值。然后修改充电桩周围的道路权重,新的权重为 − o l d w e i g h t ∗ l n ( S I ) -oldweight * ln(SI) −oldweight∗ln(SI)
SI=1-P(t)/P_lim \text{SI=1-P(t)/P\_lim} SI=1-P(t)/P_lim -
修改路段后,利用算法计算到达各个充电站的最佳路径。最终选择权重最低、路径最优的充电站推荐给用户。
接下来作者进行了一个仿真实验。emmm,但是好像没提实验到底咋样了,不过不打紧,这篇文章的主题不在这。
结论
提出了多种仿真软件和整个协同仿真的时间同步方法,并设计开发了外部仿真控制平台来控制整个仿真原型系统。系统实现了电网仿真系统、信息网络仿真系统和交通网络仿真系统的协同仿真,通过数据交互接口和时间同步方法提供动态仿真可视化界面,为电网-信息网络交通研究提供仿真基础。