本发明涉及电力技术领域,尤其涉及一种基于pscad/emtdc的信号通讯延时模拟方法。
背景技术:
为了应对电力系统发生故障的故障分析,以及满足定值整定、理论研究等研究需要,很多大型输电工程,尤其是直流输电工程,都会使用数字仿真软件,对整个工程(包括电力系统网络、电力元件、控制保护系统等)进行数学建模,搭建数字仿真模型。输电工程系统庞大,建模的准确程度,决定了数字仿真模型能否反应输电工程的真实响应,能否满足输电工程实际需要。输电工程的控制保护系统复杂,装置种类和数量较多,装置与装置间信号交换也比较多。信号在装置中交换包括发送信号、信号中转、信号传输、接收信号等环节,这些环节均会给接收的信号相对发送信号带来一定的延时。数字仿真模型只有如实模拟传输延时,才能保证仿真结果与输电工程系统的真实响应一致,才能满足输电工程实际需要。
下面以直流输电工程为例,简单的说明直流输电工程控制系统的信号传输延时分布。直流输电系统运行时,控制保护系统的信号通讯包括站内通讯和站间通讯。站内通讯包括主机间通讯、系统间通讯及极间通讯等;站间通讯为相距较远的两个换流站之间的通讯,依赖于远程通讯系统。主机间通讯、系统间通讯一般通过点对点的光纤或者交换机组网的方式进行,距离较近,信号传输延时较小;极间通讯需借助通讯转换装置完成,信号经过通讯转换装置转换为光信号,通过光纤的传递,再经由通讯转换装置转换接收,转换为接收信号。信号的经通讯转换装置的两次转换带来的延时需要考虑。站间通讯与站内的极间通讯类似,但由于换流站地理距离遥远,信号需借助于远程通讯系统。远程通讯系统包括站内通讯设备(远程通讯控制器、信号转换器等)、主链路(电力线 载波通讯、光纤通讯等)等环节。远程通讯系统引入的信号传输延时取决于主链路环节,取决于通讯电缆的长度。通讯电缆一般沿着直流输电线路铺设,而直流输电工程两站一般相距遥远。从湖北荆州的江陵换流站到广东惠州的鹅城换流站的三-广直流工程,输电线路全长940km;从葛洲坝换流站到上海南桥换流站的葛-南直流工程,输电线路全长约1045km;主链路环节引入的信号通讯延时有3ms左右。
由上面可以看出,无论是传输距离近的站内通讯,还是传输距离遥远的站间通讯,信号传输延时均是存在的,而且延时的数量级对于控制保护系统是不能忽略的。为了保证建模的准确性,确保仿真结果与实际系统相符,需要一种模拟信号通讯延时的方法。
技术实现要素:
本发明所要解决的技术问题在于,提供一种基于pscad/emtdc的信号通讯延时模拟方法,实现信号通讯延时模拟。
为了解决上述技术问题,本发明提供了一种基于pscad/emtdc的信号通讯延时模拟方法,包括:
在pscad/emtdc中建立通讯延时模块,设置通讯延时模块的端口和参数;
根据通讯延时模块的参数,在pscad/emtdc的全局数组stori及storf中申请空间作为数据缓冲及输入输出指针存储空间;
采用环形缓冲方式利用数据缓冲实现信号延时模拟。
进一步的,所述在pscad/emtdc中建立通讯延时模块,设置通讯延时模块的端口和参数,具体包括:
在pscad/emtdc中建立通讯延时模块,设置通讯延时模块的端口为:信号输入端、信号输出端和通讯状态控制输入端,所述信号输入端用于连接信号发送端,信号输出用来连接信号接收端,通讯状态控制输入端控制模拟通讯正常及通讯中断两种情况;设置通讯延时模块的参数为:延时时间、信号类型、信号数量和通讯中断输出是否保持四个参数,所述延时时间用来设置模拟的延时,所述信号类型用来设置信号为整形或浮点型,所述信号数量用来设置需延 时的信号数量,所述通讯中断输出是否保持用于设置通讯中断时输出保持为中断前的值还是0值。
进一步的,所述根据通讯延时模块的参数,在pscad/emtdc的全局数组stori及storf中申请空间作为数据缓冲及输入输出指针存储空间,具体包括:
计算单个信号的数据缓冲所需的最小存储空间m,其中,
如果信号类型为浮点型,则在storf数组中申请k个空间作为数据缓冲,如果信号类型为整型,则在stori数组中申请至少k个空间作为数据缓冲,其中,k≥n×m,n为信号数量;
在stori数组中额外申请两个储存空间作为输入输出指针存储空间。
进一步的,所述采用环形缓冲方式利用数据缓冲实现信号延时模拟,具体包括:
计算得到数据缓冲总存储空间个数为n×k,设置数据缓冲存储空间逻辑地址为0~n×k-1;
在t=0仿真时刻,将数据缓冲初始化为0值,输入指针in_index指向逻辑地址0,输出指针out_index指向逻辑地址1;
在t≠0仿真时刻,将输入指针in_index加1;如果此时输入指针in_index>m-1,则in_index=0,并将out_index加1;如果此时输出指针out_index>m-1,则out_index=0;将输入信号in_sig(i)值写入逻辑地址为k×i+in_index的存储空间,i取0~n-1;如果通讯状态控制输入端为通讯正常,则从k×i+out_index处存储空间读取数值赋值给输出信号out_sig(i),i取0~n-1;如果通讯状态控制输入端为通讯中断且通讯中断输出是否保持参数设置为保持,则不对输出信号out_sig(i)赋值;如果通讯状态控制输入端为通讯中断且通讯中断输出是否保持参数设置为不保持,则将0值赋值给输出信号out_sig(i),i取0~n-1。
实施本发明,具有如下有益效果:
提出一种在pscad/emtdc中的支持快照功能的模拟信号通讯延时的方法,可以模拟实际系统的信号通讯延时,提高模型的准确性,同时支持快照功能,提高仿真计算的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于pscad/emtdc的信号通讯延时模拟方法的一个实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
pscad/emtdc是世界上广泛使用的电磁暂态仿真软件,emtdc是其仿真计算核心,pscad(powersystemscomputeraideddesign)为emtdc(electromagnetictransientsincludingdc)提供图形操作界面。pscad/emtdc具有精确和丰富的电力系统应用模型、方便的数据输入方式以及强大的数据分析功能,是进行电力系统分析和工程研究的有力工具,在全世界范围内有着广泛的应用。图1是本发明提供的基于pscad/emtdc的信号通讯延时模拟方法的一个实施例的流程示意图,本发明实施例包括步骤:
s101、在pscad/emtdc中建立通讯延时模块,设置通讯延时模块的端口和参数。
其中,设置通讯延时模块的端口为:信号输入端、信号输出端和通讯状态 控制输入端,所述信号输入端用于连接信号发送端,信号输出用来连接信号接收端,通讯状态控制输入端控制模拟通讯正常及通讯中断两种情况;设置通讯延时模块的参数为:延时时间、信号类型、信号数量和通讯中断输出是否保持四个参数,所述延时时间用来设置模拟的延时,所述信号类型用来设置信号为整形或浮点型,所述信号数量用来设置需延时的信号数量,所述通讯中断输出是否保持用于设置通讯中断时输出保持为中断前的值还是0值。
s102、根据通讯延时模块的参数,在pscad/emtdc的全局数组stori及storf中申请空间作为数据缓冲及输入输出指针存储空间。
步骤s102具体包括步骤:
s1021、计算单个信号的数据缓冲所需的最小存储空间m,其中,
s1022、如果信号类型为浮点型,则在storf数组中申请k个空间作为数据缓冲;如果信号类型为整型,则在stori数组中申请至少k个空间作为数据缓冲,其中,k≥n×m,n为信号数量。
例如,在具体实施中,根据信号类型参数,若是整型,可以使用语句#storageinteger:m*n在stori数组上申请n×m的存储空间作为数据缓冲,该数据缓冲在stori数组上的偏移由nstori指向,即该数据缓冲第一个数据为stori(nstori);若是浮点型,可以使用语句#storagereal:m*n在storf数组上申请n×m个存储空间作为数据缓冲,该数据缓冲在storf数组上的偏移由nstorf指向,即该数据缓冲第一个数据为storf(nstorf)。
s1023、在stori数组中额外申请两个储存空间作为输入输出指针存储空间。
s103、采用环形缓冲方式利用数据缓冲实现信号延时模拟。
具体的,步骤s103具体包括:
s1031、计算得到数据缓冲总存储空间个数为n×k,设置数据缓冲存储空 间逻辑地址为0~n×k-1;
s1032、在t=0仿真时刻,将数据缓冲初始化为0值,输入指针in_index指向逻辑地址0,输出指针out_index指向逻辑地址1;
s1033、在t≠0仿真时刻,将输入指针in_index加1,即in_index=in_index+1;如果此时输入指针in_index>m-1,则in_index=0,并将out_index加1,即out_index=out_index+1;如果此时输出指针out_index>m-1,则out_index=0;将输入信号in_sig(i)值写入逻辑地址为k×i+in_index的存储空间,i取0~n-1;如果通讯状态控制输入端为通讯正常,则从k×i+out_index处存储空间读取数值赋值给输出信号out_sig(i),i取0~n-1;如果通讯状态控制输入端为通讯中断且通讯中断输出是否保持参数设置为保持,则不对输出信号out_sig(i)赋值;如果通讯状态控制输入端为通讯中断且通讯中断输出是否保持参数设置为不保持,则将0值赋值给输出信号out_sig(i),i取0~n-1。
快照功能是仿真断点镜像保存和恢复功能的简称。emtdc仿真软件提供数据快照(snapshot)的基本接口。emtdc仿真软件允许仿真模型在运行过程中进行快照操作,保存某个仿真时刻的断点镜像数据,并在该模型下一次仿真运行时从该断点镜像恢复数据。快照功能使得每次仿真计算不需要从0时刻开始,而是可以基于以前某次仿真保存的镜像,极大地节约了仿真时间,提高了仿真计算效率。emtdc仿真软件分别提供了整型、浮点型数据的快照数据存储区的内存首地址和变量偏移计数值。应用程序在每个任务函数运行时,把变量值写入到快照数据区,当停止仿真时,把数据存储到文件。当下次重新启动运行时,把文件内容读到快照数据区,应用程序从该数据区读取上次运行值,实现恢复运行的功能。根据以上技术方案可知,本发明实施例支持快照功能。
实施本发明,具有如下有益效果:
提出一种在pscad/emtdc中的支持快照功能的模拟信号通讯延时的方法,可以模拟实际系统的信号通讯延时,提高模型的准确性,同时支持快照功能,提高仿真计算的效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。