一种用于电力系统和信息通信系统联合仿真的时间同步与数
据交换的装置及其方法
技术领域
本发明涉及电力系统仿真,特别是涉及一种用于电力系统和信息通信系统联合仿真的时间同步与数据交换的装置及其方法。
背景技术
随着智能电网的快速发展,先进的信息通信技术在电力系统中得到广泛应用。信息通信系统和物理电力系统相互耦合,形成了信息电力耦合网络系统。信息电力耦合网络是一个连续动态和离散时间耦合的混成系统。其中,电力系统是一个连续系统,信息与通信系统是一个离散事件系统。目前,在对信息电力耦合网络进行仿真时,通常将电力连续系统和信息离散事件系统的动态仿真结合起来,即将电力系统仿真平台和信息通信系统仿真平台协同运作,以实现连续和离散事件动态过程独立仿真和信息交互的功能。此联合仿真方案中,两个系统的建模工作仍采用其各自的仿真软件完成,通过时间同步方法使两个仿真软件能够运行于同一时间域,这是当前电力和信息通信耦合网络系统仿真技术的主要研究方向。显然,通过成熟的电力系统仿真平台和信息通信系统仿真平台的元件库和已有的计算方法,最大程度保持系统的全面性和准确性。但是2个仿真平台间的软件接口、数据交换和仿真时间同步等问题将是这类解决方案的重点研究内容。
现有的时间同步策略存在以下不足:
利用实时时间轴进行同步:通常由于仿真方法、计算量、计算效率等的不同,电力系统和通信仿真平台之间很难实现时间逻辑的实时同步。另一方面,采用此同步策略难以实现超实时仿真。可见,利用同实时时间同步的联合仿真实现较为困难,应用场合有限。
利用同一事件轴进行同步:在这种同步方法中,信息通信仿真平台与电力仿真平台实际也是交替执行,不需要2个平台的仿真时间精确一致。但是,这种方式下电力系统仿真的步长较难选择,较大的仿真步长会导致降低仿真精度,即电力系统仿真平台的突发事件可能无法得到信息通信仿真平台的及时响应;较小的仿真步长会降低仿真效率,因此仿真的灵活度较差。此外,这种同步方式需要设立共同的事件队列,实现上也较复杂。
在固定时间点进行同步:这种同步策略非常直观,也很容易实现,可在所有数据同步事件的发生时间都已知的情况下,获得准确的联合仿真结果。但是在实际系统未进行仿真之前,数据同步事件的发生时间难以预测。在仿真系统的数据同步点和实际情况相差很大时,联合仿真结果的精确性和可信度难以保证,更有可能造成无法继续仿真的情况。
以交替运行方式进行同步:此种方式忽略了电气系统动态变化触发的信息交换需求,以通信事件同步为主导的联合仿真的准确性还需要进一步改进。同时,交替仿真过程使得联合仿真计算效率较低。
主从方式缺点:这种方式存在着两个潜在的不足:一是从平台无法主动向主平台推送信息,只能被动接受控制;二是主从平台无法并行运行,即只可以采用交替运行同步方式,步进式完成两个平台间数据交换。
独立方式缺点:同时,独立的交互组件也为控制逻辑提供了统一的接口。这种架构方式的另一个优点就是可以进行分布式或并行计算。相应的,额外增加的独立数据交互和控制单元也增加了系统构建和程序设计的复杂度。
发明内容
为解决上述技术问题,本发明采用了“对等式”时间同步系统架构,使双方均可灵活主动发送数据,解决了两个仿真平台(仿真器)间的时间和数据交换不能同步的问题。
本发明的目的是提供一种用于电力系统和信息通信系统联合仿真的时间同步与数据交换的同步效率高、同步精度高、可保证联合仿真结果精确度的装置及其方法。
为实现上述发明目的,本发明提供的技术方案是:一种用于电力系统和信息通信系统联合仿真的时间同步与数据交换的装置,包括信息通信系统仿真同步装置和电力系统仿真同步装置,其特征在于:所述信息通信系统仿真同步装置包括通信代理模块、同步数据队列模块、数据接收代理模块,所述电力系统仿真同步装置包括通信代理模块、同步事件队列模块;
两个同步装置之间实现数据的双向通信,其中,在信息通信系统仿真同步装置中,数据从通信代理模块传输至同步数据队列模块再传输至数据接收代理模块,然后传输至信息通信仿真器,信息通信仿真器与信息通信系统仿真同步装置的通信代理模块之间进行数据双向通信;
在电力系统仿真同步装置中,数据从电力系统仿真器传输至电力系统仿真同步装置的通信代理模块,通信代理模块与同步事件队列模块之间实现数据双向通信,同步事件队列模块再向电力系统仿真器传输数据。
进一步地,所述通信代理模块负责完成双向通信任务;
所述同步数据队列模块按时间戳的时间顺序存放电力系统仿真器发送来的数据;
所述数据接收代理模块在信息通信仿真器事件队列中产生周期性的“数据采集事件”数据;
所述同步事件队列模块按时间戳的时间顺序存放信息通信仿真器发送来的数据和同步事件。
进一步地,所述通信代理模块通过TCP/IP、通信中间件或共享内存等方式实现双向实时通信。
进一步地,所述数据接收代理模块将数据传输给信息通信仿真器的设备对象,如果信息通信仿真器执行到“数据采集事件”而同步数据队列中没有数据时,数据接收代理则挂起自身,从而暂停信息通信仿真器,通过等待电力系统仿真器发送数据实现同步。
进一步地,电力系统仿真器在每步开始时读取所述同步事件队列模块的数据,如果“同步事件队列”数据为空,电力系统仿真器则挂起自身,通过等待信息通信仿真器的发送数据实现同步。
一种时间同步与数据交换的装置,用于电力和信息通信系统联合仿真的时间同步与数据交换的方法,包括以下步骤:
步骤一:电力系统仿真器计算出仿真数据,传递给本地电力系统仿真同步装置中的“通信代理”,两个同步装置之间的通信代理模块之间进行数据传输;
步骤二:信息通信系统仿真同步装置中通信代理模块将收到的仿真数据传送至同步数据队列模块,数据带有逻辑时间戳,代表电力系统仿真器模块运行的当前逻辑时间;
步骤三:信息通信系统仿真同步装置中同步数据队列模块向数据接收代理模块传输数据,信息通信仿真器执行“数据采集事件”,访问同步数据队列模块,取出对应时间戳的数据,传递给信息通信仿真器模块内部的设备对象;
步骤四:信息通信仿真器将数据加上时间戳发送至本地信息通信系统仿真同步装置中的通信代理模块,同时信息通信仿真器模块获取同步事件队列模块的空闲长度信息;
步骤五:两个同步装置的通信代理模块完成同步事件、空闲长度信息的交换;
步骤六:在电力系统仿真同步装置中通信代理模块将同步事件数据传输至同步事件队列模块,并获得同步事件队列模块的空闲长度信息;
步骤七:电力仿真器每执行一个步长,便读取一次同步事件队列模块,如果读取到同步事件则向下进行,如果没有读取到同步事件,则挂起自身,直到新的同步事件到达。
进一步地,在步骤三中,信息通信仿真器在第一次触发“数据采集事件”时,同步自己的逻辑时钟。
进一步地,在步骤四中,信息通信仿真器在每次执行新的事件处理程序时,将新的事件开始时间作为同步事件发送给本地的通信代理模块;
如果信息通信仿真器获取空闲长度信息时发现同步事件队列满,则信息通信仿真器挂起自己。
进一步地,在步骤七中,如果电力仿真器读取的是同步事件数据,并且时间戳晚于自己当前的逻辑时间,说明电力系统仿真器逻辑时间滞后,则执行下一步长,如果读取的是时间戳数据则通过计算需执行的步数,执行完计算出的步数,用此时间戳数据修改当前步骤的仿真数据初始值,接着向下执行。
进一步地,所述计算公式为
其中,Round表示:计算出的需执行的仿真步数,Now表示电力系统仿真器当前的逻辑时间,StepTime表示电力系统仿真器每步时长。
采用上述技术方案,本发明具有如下有益效果:
本发明的技术方案采用了“对等式”时间同步系统架构,使两方系统均可灵活主动发送数据,并且该同步系统易编程实现。
本发明技术方案同步效率高、同步精度高,可保证联合仿真结果的精确度。在两侧仿真同步装置内均设置了一个事件队列,即用于转发数据、事件开始时间,同时也作为“同步时间轴”,在传输数据的同时,能够精确地完成两个仿真器间的时间同步。
本发明的两个仿真器均参照自己侧仿真同步装置中的“同步时间轴”并行推进各自的仿真任务,等双方速度不匹配时,通过挂起自身实现相互等待。提高了仿真效率。
附图说明
图1为用于电力和信息通信系统联合仿真的时间同步与数据交换的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的结构图及具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
图1为本发明的结构示意图,如图1所示,一种用于电力系统和信息通信系统联合仿真的时间同步与数据交换的装置,包括信息通信系统仿真同步装置和电力系统仿真同步装置,所述信息通信系统仿真同步装置包括通信代理模块、同步数据队列模块、数据接收代理模块,所述电力系统仿真同步装置包括通信代理模块、同步事件队列模块。
两个装置之间实现数据的双向通信,其中,在信息通信系统仿真同步装置中,数据从通信代理模块传输至同步数据队列模块再传输至数据接收代理模块,然后传输至信息通信仿真器,信息通信仿真器与通信代理模块之间进行数据双向通信;在电力系统仿真同步装置中,数据从电力系统仿真器传输至通信代理模块,通信代理模块与同步事件队列模块之间实现数据双向通信,同步事件队列模块再向电力系统仿真器传输数据。
其中,通信代理模块:是一个独立的进程或专门的线程,负责完成双向通信任务,因为两个仿真器可能分别运行在两个不同的计算机上,因此双方的“通信代理”模块可通过TCP/IP、通信中间件或共享内存等方式实现双向实时通信。
同步数据队列模块:是一个“先进先出(FIFO)”队列,用于按时间戳的时间顺序存放电力系统仿真器发送来的仿真数据,由通信代理模块在其尾部插入数据,由“数据接收代理”模块读取。
数据接收代理模块:是一个可以访问信息通信仿真器事件队列的独立功能模块,负责按照信息通信仿真器对电力系统仿真器仿真数据的周期性需求,在信息通信仿真器事件队列中产生周期的“数据采集事件”。信息通信仿真器每次执行到此“数据采集事件”,数据接收代理模块取出同步数据队列模块中的数据传递给信息通信仿真器模块中的设备对象,完成电力系统仿真器的数据到信息通信仿真器的传递。
如果执行到此“数据采集事件”而同步数据队列中没有仿真数据,数据接收代理模块则挂起自身,暂停信息通信仿真器,即通过等待电力系统仿真器的数据实现同步。
同步事件队列模块:是一个“先进先出(FIFO)”队列,用于按时间戳的时间顺序存放信息通信仿真器发送来的数据和同步事件,由通信代理模块在其尾部插入数据,由电力系统仿真器在每步开始时读取,如果读取的同步事件队列模块数据为空,电力系统仿真器则挂起自身,通过等待信息通信仿真器的数据实现同步。
实施例2
联合仿真启动前,在联合仿真场景配置环节中,两个仿真器均可获知信息通信仿真器对电力系统仿真器的数据需求,即数据种类和数据的更新周期。依据此需求信息,电力系统仿真器可确定自己的每步时间长度(StepTime),从而可以提供满足时间间隔要求的仿真数据;而“数据接收代理”可在信息通信仿真器的事件队列中初始化对应时间间隔的“数据采样事件”。同样,两个仿真器均可获知,信息通信仿真器向电力系统仿真器传递的数据种类(如控制指令),但传送的时间是随机的。
本发明涉及一种用于电力和信息通信系统联合仿真的时间同步与数据交换的方法,包括以下步骤:
步骤一:电力系统仿真器计算出仿真数据,传递给本地的“通信代理”,两个系统之间的通信代理模块之间进行数据传输;
步骤二:信息通信系统仿真同步装置中通信代理模块将收到的仿真数据传送至同步数据队列模块,数据带有逻辑时间戳,代表电力系统仿真器运行的当前逻辑时间;
步骤三:信息通信系统仿真同步装置中同步数据队列模块向数据接收代理模块传输数据,信息通信仿真器执行“数据采集事件”,访问同步数据队列模块,取出对应时间戳的数据,传递给信息通信仿真器内部的设备对象;
步骤四:信息通信仿真器将数据加上时间戳发送至本地信息通信系统仿真同步装置中的通信代理模块,同时信息通信仿真器模块获取同步事件队列模块的空闲长度信息;
步骤五:两个仿真同步装置的通信代理模块完成同步事件、空闲长度信息的交换;
步骤六:在电力系统仿真同步装置中通信代理模块将同步事件数据传输至同步事件队列模块,并获得同步事件队列模块的空闲长度信息;
步骤七:电力仿真器每执行一个步长,便读取一次同步事件队列模块,如果读取到数据则向下执行,如果没有读取到同步事件,则挂起自身,直到新的同步事件到达。
具体地,如图1中①、②步,电力系统仿真器计算出仿真数据,并传递给本地的“通信代理”。
③步:信息通信系统仿真同步装置的“通信代理”将收到的仿真数据传送至“同步数据队列”,数据带有逻辑时间戳,代表电力系统仿真器运行的当前逻辑时间。
④、⑤步:信息通信仿真器执行到“数据采集事件”,访问“同步数据队列”,取出对应时间戳的数据,传递给信息通信仿真器内部的设备对象。注:信息通信仿真器在第一次触发“数据采集事件”时,同步自己的逻辑时钟。
⑥步:信息通信仿真器的在每次执行新的事件处理程序时,首先将新的事件开始时间(注:晚于上次的同步事件的Timestamp)作为同步事件<Timestamp,Event>发送给本地的“通信代理”;如果在事件的处理过程中,产生需交互的数据(如:控制指令),同样将该数据加上时间戳<Timestamp,Data>,并发送给本地的“通信代理”模块。
⑦步:信息通信仿真器在发送同步事件给本地“通信代理”的同时,获取“同步事件队列”的空闲长度信息,如果“同步事件队列”满,则信息通信仿真器挂起自己。此时说明,信息通信仿真器执行超前于电力系统仿真器,需要等待电力系统仿真器执行,以实现同步。
⑧步:两个“通信代理”完成同步事件、“同步事件队列”的空闲长度信息的交换。
⑨步:“通信代理”将同步事件插入“同步事件队列”,并获取“同步事件队列”的空闲长度信息。
⑩步:电力系统仿真器每执行一个步长,便读取“同步事件队列”,如果读取的是<Timestamp,Event>,并且Timestamp晚于自己当前的逻辑时间,说明自己滞后,便执行下一步长;如果读取的是<Timestamp,Data>,则通过公式计算需执行的步数,执行完Round步,用Data修改当前步骤的初始值,接着向下执行;如果没有读取到同步事件,说明信息通信仿真器滞后,则挂起自身,直到新的同步事件到达。
其中,Now代表电力系统仿真器当前的逻辑时间,StepTime代表电力系统仿真器每步时长,Round代表计算出的需要执行的仿真步数,结果向上取整。
以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。