首页 / 电力协同实时仿真平台系统及其数据协同方法

电力协同实时仿真平台系统及其数据协同方法无效专利 发明

技术领域

[0001] 本发明涉及一种面向电力系统仿真的电力协同实时仿真平台系统(简称仿真平台系统),同时也涉及该仿真平台系统实现数据协同的方法,属于电力系统仿真技术领域。

相关背景技术

[0002] 随着电力系统自动化技术的发展,对电力保护装置及直流换流装置等高速设备进行仿真的需求越来越强烈。这些高速设备在实现实时仿真时,遵循“采集,计算,输出,再计算”的循环过程。该循环过程所花费的物理时间用“仿真步长”来描述。在电力仿真系统中,为了满足实时性的要求,除了采用高速的采集设备和输出设备外,还可以缩短仿真步长。仿真步长越短,实时性就越高。
[0003] 随着仿真的实时性成为研究热点,出现了各种实时数字仿真器(Real Time Digital Simulators,简称RTDS)。电力系统的实时数字仿真器(RTDS)在进行实时仿真时多采用并行技术,即将线性处理的计算任务分解为多个小的可并行处理的子任务,再由处理器来执行这些子任务。每个子任务在仿真步长内需要与其它子任务交换信息并保持同步。而支持实时数字仿真器并行的硬件平台有高速数字信号处理器(DSP)、对称多处理器(SMP)和机群几大类。目前,实时数字仿真器多采用DSP为仿真平台,然而DSP平台要进行升级和扩展较为困难;采用机群的平台价格昂贵,并且多任务之间通信的速度受到通信线缆性能的限制;而基于SMP的平台随着单颗处理器的核数增多,并且多核之间的通信可以通过越来越快的共享内存或Cash来完成,其并行处理的能力越来越强。
[0004] 为了提高仿真系统的实时性,很多仿真系统在SMP硬件平台的基础上,选用实时Linux作为软件平台。实时Linux的优势在于其结合硬件CPU的特性修改了普通Linux内核的硬件层,通过中断技术,在内核和硬件之间实现了一个小而高效的实时内核。实时Linux提供的CPU屏蔽功能,可对某中断进行屏蔽或强制指定某内核来响应它,将应用程序绑定到指定的核上运行,不受其它中断的影响,不会被别的进程所抢占。
[0005] SMP平台在实时Linux的操作环境下,可以激活执行任务所需的某个特定内核或多个内核,使仿真系统具有更高的实时性以及高度可扩展性。目前,基于上述这两种技术的仿真系统还是很少见的。在申请号为201010188813.X的中国发明专利申请中,公开了一种面向电力系统仿真的实时分布式仿真平台系统,包括至少一台仿真服务器,每台仿真服务器以PCI桥接方式连接至少一台实时分布式仿真装置,实时分布式仿真装置通过PCI总线同时连接多块智能型仿真板卡,各智能型仿真板卡分别与实际的电力设备进行连接,从而可以方便地构成适合现场需要的实时分布式仿真系统。但该仿真平台的并行硬件平台是基于DSP的,而软件平台选用的是实时的Linux或者QNX。对于如何精确指定仿真步长,解决并行多任务之间的数据交互及协同问题,现有技术还没有进行研究和探讨。

具体实施方式

[0030] 下面结合附图及具体实施方式对本发明做进一步的详细说明。
[0031] 图1显示了一种应用本仿真平台系统的电力协同实时仿真系统的示例。该电力协同实时仿真系统的仿真任务由多核微处理器完成,利用CPU的中断屏蔽功能保证多核微处理器之间任务的并行运行。在本发明的一个实施例中,可以采用两个Intel Xeon55系列的CPU,每个CPU包含四个内核(即四个CPU),这样总共有八个CPU可用。当然,采用其它的多核微处理器也是完全可行的,在此就不一一列举了。在本发明中,多任务之间的数据协同是通过循环读写共享内存中某一指定的字节实现的。仿真步长则由CPU主频所决定,CPU主频越高,仿真实时性越高。在该电力协同实时仿真系统中,本发明所提供的仿真平台系统是基于对称多处理器(SMP)和具有CPU中断屏蔽功能的操作系统而构建的。下面以用于电力保护装置实时仿真培训的电力协同实时仿真平台系统为实施例进行详细的说明。
[0032] 图2为本仿真平台系统的整体架构示意图。该系统包括:数模转换(简称DA)模块、数字量输入(简称DI)模块、模数转换(简称AD)模块、数字量输出(简称DO)模块、计算模块、定时模块、总控模块以及教员交互模块。其中,DA模块、DI模块、AD模块、DO模块、计算模块、定时模块、总控模块通过共享内存实现通信。教员交互模块一方面通过同样的共享内存与总控模块进行通信,另一方面通过TCP/IP协议与教员机实现连接。
[0033] 总控模块是本仿真平台系统的核心功能模块。在图2中,总控模块独占一个CPU0,其中运行的总控程序用于提供各功能模块之间任务的协同管理功能。CPU1为教员交互模块。该教员交互模块用于接收教员发来的仿真指令,同时将仿真过程中的输出信息送给教员。图2中的CPU4和CPU5分别表示AD模块和DI模块,用于对电力保护装置的数据进行转换以及采集,并将数据写入共享内存中。DA模块和DO模块用于将数据输出至电力保护装置中。这两个功能模块的任务分别由CPU3、CPU6单独完成。CPU2为计算模块,由计算程序对获取的数据进行处理。这一计算任务可由单个或多个CPU完成。在图2所示的实施例中,计算模块为两个CPU,其他图中未示出。
[0034] 在本发明的一个实施例中,定时模块独占一个CPU。该定时模块不断读取CPU内的时钟寄存器,利用前后读取的时钟寄存器的时间差来逼近仿真步长的误差,将仿真步长的时间误差转化为调用读取CPU时钟寄存器指令所花时间的误差。而读取指令所执行的内部汇编或机器指令是固定的,所以仿真步长误差由CPU的主频来决定。CPU的主频越高,误差越小。例如在采用Intel Xeon55系列CPU的情况下,由于该CPU的主频误差在2微秒内,因此仿真步长误差可以控制在2微秒内。
[0035] 本仿真平台系统的操作系统优选具有CPU中断屏蔽功能的Linux。在此情况下,仿真平台系统的一次仿真循环由定时模块中的定时卡发出中断信号开始。该定时卡可以按照50或100微秒的周期发出中断信号。由于定时模块可以内置于总控模块中,这样总控模块在收到中断信号后,通过共享内存通知计算模块计算出DA值,再通知DA模块输出DA值来驱动电力设备,并获取DI模块、DO模块及AO模块的值。总控程序通过共享内存获得上述值后,完成了这一仿真步长的工作。在下一仿真步长内,又从定时模块和计算模块开始,循环往复操作。
[0036] 在本发明的一个实施例中,仿真平台系统上的CPU1~CPU6被设置为不响应所有中断的方式运行。CPU1~CPU6分别被内核内唯一的进程所占据。这六个进程不接受系统任何调用,也不被中断信号所干扰,其程序指令在内核中无限循环地运行。而对于循环体内的等待事件,如等待数据的到来或共享内存标志位的状态变更,则采用查询的方式去查看事件。当循环体查看到事件到达后,执行事件所对应的代码;否则在下次循环体执行时继续查看。
[0037] 在本发明中,总控程序控制多个进程循环读写共享内存中某一指定的字节(例如下文中的Head指针或Tail指针),实现并行多任务之间的数据协同。下面对此展开详细的说明。
[0038] 为了保证通信响应速度达到几百纳秒级,读取共享内存不能直接通过系统调用来完成。为了实现共享内存的实时数据协同,本发明中采用了“数据协同发起方-数据协同响应方”算法,其中向共享内存写入数据的是数据协同发起方,从共享内存读取数据的是数据协同响应方。该数据协同发起方和数据协同响应方均为仿真平台系统中的功能模块。在数据协同发起方写入共享内存中某个指定的字节后,数据协同响应方相应地读入共享内存中改变的内容。在这个过程中,采用中断屏蔽和独占CPU内核的技术,相应的数据协同方法由数据协同响应方循环读取共享队列的信息,通过下文所述的算法控制数据协同发起方写入共享队列的速度。
[0039] 图3所示为共享队列的数据格式,其中前两个字节分别为Head(头)指针和Tail(尾)指针,从第三字节之后为所需的仿真数据。总控程序通过共享内存中Head指针或Tail指针对数据进行读写,协调整个仿真平台系统的运行。
[0040] 下面以计算任务与数模转换任务为例,具体说明通过Tail指针和Head指针实现数据协同的过程。
[0041] 执行计算任务的计算模块(即数据协同发起方)按如下步骤写入共享内存:
[0042] (11)获取Tail指针和Head指针,计算Tail指针减去Head指针的数值;
[0043] (12)若此值大于1,表明刚写入的数据还没被DA任务取走,为了实现数据协同,计算任务必须等DA任务取走该数据后才可执行,故继续执行上一步的读取和判断工作;
[0044] (13)向Tail指针所指地址写入数据;
[0045] (14)Tail指针增加1,若Tail指针增到共享队列尾,则返绕到共享队列的第三字节(即仿真数据所在的起始字节)。
[0046] 执行数模转换任务的DA模块(即数据协同响应方)在定时循环体中按如下步骤读取共享内存:
[0047] (21)获取Tail指针和Head指针,计算Tail指针减去Head指针的数值;
[0048] (22)若此差值为0,表明没有新的数据写入。此时DA任务必须等待计算任务写入新的数据才可继续执行,故继续执行上一步的读取和判断工作;
[0049] (23)将Head指针所指地址的数据读入到新的缓冲区中;
[0050] (24)Head指针增加1,若Head指针增至共享队列尾,返绕到共享队列的第三字节(即仿真数据所在的起始字节),之后返回步骤(21)。
[0051] 由于对共享内存队列进行操作时,一方只读,另一方只写。同时,Head指针和Tail指针仅占一个字节,计算机对这个字节的读写访问从机器语言或汇编语言的角度看是一条语句,可以看作原子语句操作,因此,能够利用该标志实现数据协同发起方和数据协同响应方的同步,保证对指针所指内容操作的一致性。
[0052] 以上对本发明所提出的电力协同实时仿真平台系统及其数据协同方法进行了详细的说明。对本领域的普通技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

当前第1页 第1页 第2页 第3页
相关技术
协同实时相关技术
协同方法相关技术
吴海宏发明人的其他相关专利技术