一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

电力实时仿真中提高计算精度的方法、装置及相关设备与流程

2022-11-30 21:54:52 来源:中国专利 TAG:


1.本技术涉及电力仿真技术领域,更具体地说,是涉及一种电力实时仿真中提高计算精度的方法、装置及相关设备。


背景技术:

2.近年来,为加速求解过程以实现非实时甚至实时的仿真计算,电力系统的仿真计算越来越多地依靠计算硬件系统的强大算力。由于计算硬件系统有充足的计算资源和存储资源,较以往多采用的单一计算机有着明显的优势。随着区域电网的互联,电力系统规模不断扩大,加之大规模新能源等快速响应电力电子设备的广泛使用,使得电力系统仿真计算的规模和运算复杂程度日益复杂,电力系统仿真计算过程中各分布式的运算子单元(任务)间的数据交互愈发频繁。
3.为确保各运算子单元的步长同步,需要进行大量的浮点运算。由于在进行大量实数累加计算时,小数部分的精度会逐渐丢失,在电力实时仿真持续的步长同步过程中,小数精度的丢失会导致步长同步的不精确。


技术实现要素:

4.有鉴于此,本技术提供了一种电力实时仿真中提高计算精度的方法、装置及相关设备,以提高仿真步长的计算精度。
5.为实现上述目的,本技术第一方面提供了一种电力实时仿真中提高计算精度的方法,包括:
6.获取当前周期的计数值,并基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值,其中,上一周期的计数值、所述仿真步数以及通信时延所占据的计数值为预先获得的;
7.获取上一周期的遗留计数小数值,所述遗留计数小数值为小于1的实数;
8.基于下一次仿真步长的起始计数实数值和上一周期的遗留计数小数值,确定下一次仿真步长的起始计数整数值和当前周期的遗留计数小数值。
9.优选地,所述起始计数实数值包含整数部分和小数部分;基于下一次仿真步长的起始计数实数值和上一周期的遗留计数小数值,确定下一次仿真步长的起始计数整数值和当前周期的遗留计数小数值的过程,包括:
10.将所述起始计数实数值划分为第一整数部分和第一小数部分;
11.对所述小数部分与当前周期的遗留计数小数值进行求和,得到求和结果;
12.将所述求和结果划分为第二整数部分和第二小数部分,将所述第二小数部分确定为当前周期的遗留计数小数值;
13.对所述第一整数部分和所述第二整数部分进行求和,得到下一次仿真步长的起始计数整数值。
14.优选地,获取当前周期的计数值的过程,包括:
15.当接收到同步源发送出的同步信号时,获取此时的接收时刻,获取上一周期的计数值,以及获取计数器在当前周期的计数值;
16.将所述接收时刻减去上一个接收时刻,得到接收间隔,所述上一个接收时刻为接收到上一个同步信号时的时刻;
17.基于所述接收间隔、上一周期的计数值、计数器在当前周期的计数值、所述计数器的计数周期和同步信号的通信间隔,确定当前周期的计数值,其中,所述计数器的计数周期、所述通信间隔为预先获取的。
18.优选地,基于所述接收间隔、上一周期的计数值、计数器在当前周期的计数值、所述计数器的计数周期和同步信号的通信间隔,确定当前周期的计数值的过程,包括:
19.判断所述接收间隔是否大于或等于预设阈值,所述预设阈值与所述通信间隔成正比;
20.若是,基于上一周期的计数值、所述计数器的计数周期和所述通信间隔,确定当前周期的计数值;
21.若否,采用计数器在当前周期的计数值作为当前周期的计数值。
22.优选地,基于上一周期的计数值、所述计数器的计数周期和所述通信间隔,确定当前周期的计数值的过程,包括:
23.利用下述方程式计算得到当前周期的计数值ct
current

[0024][0025]
其中,ct
pre
为上一周期的计数值,ts为所述计数器的计数周期,为所述通信间隔。
[0026]
优选地,确定预设阈值的过程,包括:
[0027]
利用下述方程式计算得到所述预设阈值φ:
[0028][0029]
其中,k为预设的常数,为所述通信间隔。
[0030]
优选地,基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值的过程,包括:
[0031]
利用下述方程式对变量w进行初始化:
[0032]
w=-ct
delay
[0033]
其中,ct
delay
为通信时延所占据的计数值;
[0034]
利用下述方程式计算得到中间变量δw的值:
[0035]
δw=(ct
current-ct
pre
)/num
[0036]
其中,ct
current
为当前周期的计数值,ct
pre
为上一周期的计数值,num为所述仿真步数;
[0037]
利用下述方程式更新变量w的值:
[0038]
w=w δw
[0039]
判断w的值是否大于0;
[0040]
若是,将w的值确定为下一次仿真步长的起始计数实数值;
[0041]
若否,返回执行利用下述方程式更新变量w的值的步骤。
[0042]
本技术第二方面提供了一种电力实时仿真中提高计算精度的装置,包括:
[0043]
起始实数获取单元,用于获取当前周期的计数值,并基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值,其中,上一周期的计数值、所述仿真步数以及通信时延所占据的计数值为预先获得的;
[0044]
遗留小数获取单元,用于获取上一周期的遗留计数小数值,所述遗留计数小数值为小于1的实数;
[0045]
起始计数确定单元,用于基于下一次仿真步长的起始计数实数值和上一周期的遗留计数小数值,确定下一次仿真步长的起始计数整数值和当前周期的遗留计数小数值。
[0046]
本技术第三方面提供了一种电力实时仿真中提高计算精度的设备,包括:存储器和处理器;
[0047]
所述存储器,用于存储程序;
[0048]
所述处理器,用于执行所述程序,实现上述的电力实时仿真中提高计算精度的方法的各个步骤。
[0049]
本技术第四方面提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述的电力实时仿真中提高计算精度的方法的各个步骤。
[0050]
经由上述的技术方案可知,本技术首先获取当前周期的计数值,并基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值。其中,上一周期的计数值、所述仿真步数以及通信时延所占据的计数值为预先获得的。可以理解的是,所述起始计数实数值可以包含整数部分和小数部分。接着,获取上一周期的遗留计数小数值。其中,所述遗留计数小数值为小于1的实数,可以理解的是,所述遗留计数小数值为上一周期中由于取整而遗留下来的小数部分。由于每一周期的起始计数值只能是整数,因此,在取舍中会遗留未被采用的小数部分,该小数部分则构成遗留计数小数值。通过结合本周期中计算得到的起始计数实数值和上一周期的遗留计数小数值,来计算下一次仿真步长的起始计数整数值,同时记录当前周期的遗留计数小数值,以便在下一周期的计算中使用,可以避免误差的累积,提高了电力实时仿真中的计算精度。
附图说明
[0051]
为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0052]
图1为本技术实施例公开的同步源与各仿真核的同步信号发送示意图;
[0053]
图2为本技术实施例公开的各仿真核的仿真步长的示意图;
[0054]
图3为本技术实施例公开的电力实时仿真中提高计算精度的方法的示意图;
[0055]
图4为本技术实施例公开的各时刻点的计数值的示意图;
[0056]
图5为本技术实施例公开的起始计数值的计算流程的示意图;
[0057]
图6为本技术实施例公开的电力实时仿真中提高计算精度的装置的示意图;
[0058]
图7为本技术实施例公开的电力实时仿真中提高计算精度的设备的示意图。
具体实施方式
[0059]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0060]
请参阅图1,为确保各运算子单元的时间同步,通常由同步源等间隔地发出一同步信号,该同步信号用于时间校准,其可以是上升沿信号,各仿真核接收到该信号后立刻发送回复信号至同步源。在每一同步周期里,执行固定数量的仿真步长。
[0061]
请参阅图2,为了使各个仿真核在绝对时间轴上与同步源保持一致的前提下,准确控制各仿真核的仿真步长,必须保证所有仿真核每个步长的起始点都精确对齐,即需要同时满足以下这3个条件:
[0062]
1.各个核对应步长的起始时刻精确对齐,即t
1i
=t
2i
=t
3i

[0063]
2.每个核的每次仿真步长完全一致,即δt
1i
=δt
2i
=δt
3i

[0064]
3.每个核的步长均等于预设的目标步长δtr,即δtr=δt
1i
=δt
2i
=δt
3i

[0065]
为达到以上目的,各仿真核可以监视自身中以预设频率增长的计数器(计数值为正整数),并设定在计数器在某个值进行触发,以此作为仿真的起始时间。各仿真核与同步源之间的通信可能会存在通信抖动、通信延时等情况,因此,不能简单地依据预设的触发值来触发仿真的起始点,作为一种可选的方式,可以结合预先获取的通信间隔和通信时延来确定仿真起始点。其中,该通信间隔为经过校准的、接收到同步源定期发送的同步信号的间隔;该通信时延为同步源与仿真核之间的通信时延。
[0066]
在确定仿真起始点的过程中,不可避免地存在大量的实数计算。例如,为了求得每个同步周期里占据50μs的仿真步长所对应的计数值,需要将该同步周期的总时长,除以仿真步长的长度(即50μs),所得到的计算结果可能是带有小数部分的实数,然而,计数器的计数值必须是一个整数,那么,在这种情况下,对这个实数取整而求得目标计数值后,会存在由于取整而产生的误差。例如,假设该实数值为1000.1,若取整为1000,随着时间积累,累积的仿真步长会偏小;若取整为1001,随着时间积累,累积的仿真步长会偏大。因此,本技术提出可以保证不会出现累计误差的精确取值方法,示例性地,对于上述例子,假设前面9次取整为1000,则接着1次取整为1001,以避免累计下去出现的精度问题。
[0067]
下面介绍本技术实施例提供的电力实时仿真中提高计算精度的方法。请参阅图3,本技术实施例提供的电力实时仿真中提高计算精度的方法可以包括如下步骤:
[0068]
步骤s101,获取当前周期的计数值。
[0069]
其中,各仿真核在每一同步周期中都执行固定数量的仿真步长,当前周期的计数值表示了各仿真核在统一时间轴上的当前时刻,可以用于计算当前周期中的首个仿真步长的起始计数值。
[0070]
步骤s102,基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值。
[0071]
其中,上一周期的计数值、仿真步数以及通信时延所占据的计数值为预先获得的。
[0072]
具体地,仿真步数为仿真核在一个同步周期中所执行的仿真步长的数量,通常可以结合仿真步长和同步周期的长度,计算得到。
[0073]
通信时延为同步源到某一仿真核的通信时延,示例性地,请参阅图4,同步源等间隔发出上升沿信号的时刻分别是t1、t2、t3等,以仿真核1为例,其收到同步源发出的上升沿信号的时刻分别为t11、t12、t13等。其中,由于同步源无法直接得知仿真核接收到上升沿信号的时间信息,可以利用同步源接收到由仿真核1返回的上升沿信号的时间信息,来推算得到仿真核收到上升沿信号的时刻,例如,假设往返时间一致,可以将同步源的收发时间除以2得到时间间隔δt
11
、δt
12
、δt
13
等,该时间间隔即通信时延,该通信时延序列可以表示为:
[0074]
a={δt
1i
,i=1,2,...,n}
[0075]
一般来说,网络设计为独占式,每个仿真核与同步源享有独占的通信通道,所以通信时延会比较稳定,也就是各通信时延δt
11
、δt
12
、δt
13
等之间相差非常小。
[0076]
虽然网络已经是独占式,不会受到与其他仿真核的干扰,但是如果通信介质等受到干扰,可能会产生通信失败,进而出现重发等现象,导致δt
11
、δt
12
、δt
13
等并不完全一致,理论上,大部分δt
11
、δt
12
、δt
13
时间为恒定值,偶尔会出现一个约1.5倍(双向共重发1次)、约2倍(双向共重发2次)、约2.5倍(双向共重发3次)等的数值。因此,为获得较为准确的通信时延,还得虑及通信通道在近期的数据表现来动态确定通信时延的具体数值。亦即,本技术所采用的通信时延可以为经过系列计算而得到的,具体计算过程可参考本技术发明人的另外一份专利申请文件。
[0077]
下一次仿真步长的起始计数实数值可以包含整数部分和小数部分。
[0078]
步骤s103,获取上一周期的遗留计数小数值。
[0079]
其中,该遗留计数小数值可以为小于1的实数,由于每一周期中的起始计数实数值可以包含整数部分和小数部分,而每一周期的计数值只能是整数,因此,在取舍中会遗留未被采用的小数部分,该小数部分则构成遗留计数小数值。
[0080]
步骤s104,基于下一次仿真步长的起始计数实数值和上一周期的遗留计数小数值,确定下一次仿真步长的起始计数整数值和当前周期的遗留计数小数值。
[0081]
本技术首先获取当前周期的计数值,并基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值。其中,上一周期的计数值、所述仿真步数以及通信时延所占据的计数值为预先获得的。可以理解的是,所述起始计数实数值可以包含整数部分和小数部分。接着,获取上一周期的遗留计数小数值。其中,所述遗留计数小数值为小于1的实数,可以理解的是,所述遗留计数小数值为上一周期中由于取整而遗留下来的小数部分。由于每一周期的起始计数值只能是整数,因此,在取舍中会遗留未被采用的小数部分,该小数部分则构成遗留计数小数值。通过结合本周期中计算得到的起始计数实数值和上一周期的遗留计数小数值,来计算下一次仿真步长的起始计数整数值,同时记录当前周期的遗留计数小数值,以便在下一周期的计算中使用,可以避免误差的累积,提高了电力实时仿真中的计算精度。
[0082]
在本技术的一些实施例中,上述步骤s102提及的起始计数实数值包含整数部分和小数部分。上述步骤s104基于下一次仿真步长的起始计数实数值和上一周期的遗留计数小数值,确定下一次仿真步长的起始计数整数值和当前周期的遗留计数小数值的过程,可以
包括:
[0083]
s1,将该起始计数实数值划分为第一整数部分和第一小数部分。
[0084]
s2,对该小数部分与当前周期的遗留计数小数值进行求和,得到求和结果。
[0085]
s3,将该求和结果划分为第二整数部分和第二小数部分,将该第二小数部分确定为当前周期的遗留计数小数值。
[0086]
s4,对第一整数部分和第二整数部分进行求和,得到下一次仿真步长的起始计数整数值。
[0087]
事实上,对于计算过程中涉及浮点运算,然而计算结果或中间计算结果必须取整的情况,均适用上述计算方法。即,将取整过程中忽略掉的小数部分保留下来,并纳入下一周期的计算中。
[0088]
具体地,定义该计算结果或中间计算结果为z,其中,z一般不是整数,定义两种运算:
[0089]
f(z)表示取z的整数部分,g(z)表示取z的小数部分,满足:
[0090]
z=f(z) g(z)
[0091]
定义数据结构:z={f(z),g(z)}=f(z) g(z)
[0092]
当z参与四则运算时,按照如下步骤进行相关的运算:
[0093]
1、对于加法计算:y=z1 z2
[0094]
首先展开:
[0095]
y={f(z1),g(z1)} {f(z2),g(z2)}=f(z1) g(z1) f(z2) g(z2)
[0096]
然后分别将整数部分和小数部分合并:
[0097]
y=[f(z1) f(z2)] [g(z1) g(z2)]
[0098]
将小数部分可能产生进位或者退位转移到整数部分:
[0099]
y={f(z1) f(z2) f(g(z1) g(z2)),g(g(z1) g(z2))}
[0100]
2、对于减法计算:y=z1-z2
[0101]
首先展开:
[0102]
y={f(z1),g(z1)}-{f(z2),g(z2)}=f(z1) g(z1)-f(z2)-g(z2)
[0103]
然后将整数和小数部分合并:
[0104]
y=[f(z1)-f(z2)] [g(z1)-g(z2)]
[0105]
将小数部分可能产生进位或者退位转移到整数部分:
[0106]
y={f(z1)-f(z2) f(g(z1)-g(z2)),g(g(z1)-g(z2))}
[0107]
3、对于乘法计算:y=z1*z2
[0108]
首先展开:
[0109]
y={f(z1),g(z1)}*{f(z2),g(z2)}=[f(z1) g(z1)]*[f(z2) g(z2)]
[0110]
=f(z1)*f(z2) f(z1)*g(z2) g(z1)*f(z2) g(z1)*g(z2)
[0111]
然后将整数和小数部分合并:
[0112]
y=f(z1)*f(z2) [f(z1)*g(z2) g(z1)*f(z2) g(z1)*g(z2)]
[0113]
将小数部分可能产生进位或者退位转移到整数部分:
[0114]
y={f(z1)*f(z2) f(f(z1)*g(z2) g(z1)*f(z2) g(z1)*g(z2)),g(f(z1)*g(z2) g(z1)*f(z2) g(z1)*g(z2))}
[0115]
在本技术的一些实施例中,上述步骤s101获取当前周期的计数值的过程,可以包括:
[0116]
s1,当接收到同步源发送出的同步信号时,获取此时的接收时刻,获取上一周期的计数值,以及获取计数器在当前周期的计数值。
[0117]
上一周期以及当前周期中的周期,是指发送同步信号的同步周期。请参阅图4,定义同步源的发出同步信号的时刻为t1、t2、t3等,以仿真核1为例,其收到同步源的时刻为t11、t12、t13等,那么,假设当前时刻为t12,则上一周期的计数值为在时刻t11中的计数值,计数器在当前周期的计数值为计数器在时刻t12的计数值。
[0118]
可以理解的是,在某一周期的计数值与计数器在某一周期的计数值为不同概念,具体地,计数器在某一周期的计数值为计数器的直接读数,而在某一周期的计数值为经过本步骤计算得到的。
[0119]
s2,将该接收时刻减去上一个接收时刻,得到接收间隔。
[0120]
其中,该上一个接收时刻为接收到上一个同步信号时的时刻。
[0121]
s3,基于该接收间隔、上一周期的计数值、计数器在当前周期的计数值、计数器的计数周期和同步信号的通信间隔,确定当前周期的计数值。
[0122]
其中,计数器的计数周期、通信间隔为预先获取的。计数器的计数周期ts取决于计数器的计数频率fs,具体地,满足以下方程式:
[0123]
ts=1/fs[0124]
如前所述,该通信间隔为仿真核接收到同步源的同步信号的间隔,该通信间隔为预先获取的。理论上来说,如图1所示,通信源发出同步信号的间隔是精确相等的,然而,可能是因为传输丢失等原因,导致仿真核收到的时刻不一定是等间隔的。因此,为获得较为准确的通信间隔,还得虑及通信通道在近期的数据表现来动态确定仿真核所收到的同步信号的间隔。亦即,本技术所采用的通信间隔可以为经过系列计算而得到的,并非简单地采用同步源预设的同步信号的发送间隔。该通信间隔的具体计算过程可参考本技术发明人的另外一份专利申请文件。
[0125]
在本技术的一些实施例中,上述s3基于该接收间隔、上一周期的计数值、计数器在当前周期的计数值、计数器的计数周期和同步信号的通信间隔,确定当前周期的计数值的过程,可以包括:
[0126]
s31,判断该接收间隔是否大于或等于预设阈值;若是,执行s32;若否,执行s33。
[0127]
其中,该预设阈值与通信间隔成正比。
[0128]
s32,基于上一周期的计数值、计数器的计数周期和通信间隔,确定当前周期的计数值。
[0129]
s33,采用计数器在当前周期的计数值作为当前周期的计数值。
[0130]
由于通信抖动造成通信数据包重发而导致的接收间隔会比正常值大,因此,当该接收间隔小于预设阈值,可以认为本次通信状况是正常的,可以直接采用计数器在当前周期的计数值。
[0131]
在本技术的一些实施例中,上述s1提及的预设阈值的确定过程,可以包括:
[0132]
利用下述方程式计算得到预设阈值φ:
[0133]
[0134]
其中,k为预设的常数,为所述通信间隔。示例性地,k可以取值1.25。
[0135]
在本技术的一些实施例中,上述s2基于上一周期的计数值、计数器的计数周期和所述通信间隔,确定当前周期的计数值的过程,可以包括:
[0136]
利用下述方程式计算得到当前周期的计数值ct
current

[0137][0138]
其中,ct
pre
为上一周期的计数值,ts为计数器的计数周期,为通信间隔。
[0139]
可以理解的是,在执行本技术提供的电力实时仿真中的步长同步校准方法时,对于最初的一个周期的计数值,由于没有更早的参考数据,可以直接沿用该周期中计数器的计数值作为该周期的计数值。
[0140]
在本技术的一些实施例中,请参阅图5,上述步骤s102基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值的过程,可以包括:
[0141]
s1,初始化变量w的值。
[0142]
具体地,利用下述方程式对变量w进行初始化:
[0143]
w=-ct
delay
[0144]
其中,ct
delay
为通信时延所占据的计数值。可以理解的是,该步骤为初始化步骤,整个系统中的初始化仅需要执行一次。
[0145]
s2,计算中间变量δw的值。
[0146]
具体地,利用下述方程式计算得到中间变量δw的值:
[0147]
δw=(ct
current-ct
pre
)/num
[0148]
其中,ct
current
为当前周期的计数值,ct
pre
为上一周期的计数值,num为仿真步数。
[0149]
s3,利用中间变量δw更新变量w的值。
[0150]
具体地,利用下述方程式更新变量w的值:
[0151]
w=w δw
[0152]
s4,判断w的值是否大于0;若是,执行s5;若否,执行s3。
[0153]
s5,将w的值确定为下一次仿真步长的起始计数实数值。
[0154]
可以理解的是,上述过程为在接收到同步源发出的每一同步信号后所作的运算,其目的是确定仿真核在接收到该同步信号后所需要执行的首个仿真步长的起始计数值。
[0155]
由于每一周期的仿真步数不只一步,而是存在num步,num>>1,因此,在确定出在接收到该同步信号后所需要执行的首个仿真步长的起始计数值之后,还需要循环地确定在该周期中后续的每一仿真步长的初始计数值。具体地,可以返回执行s3确定该周期中后续的每一仿真步长的初始计数值,直到收到下一次的同步信号,则返回执行s2。
[0156]
下面对本技术实施例提供的电力实时仿真中提高计算精度的装置进行描述,下文描述的电力实时仿真中提高计算精度的装置与上文描述的电力实时仿真中提高计算精度的方法可相互对应参照。
[0157]
请参见图6,本技术实施例提供的电力实时仿真中提高计算精度的装置,可以包括:
[0158]
起始实数获取单元21,用于获取当前周期的计数值,并基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值,其中,上一周期的计数值、所述仿真步数以及通信时延所占据的计数值为预先获得的;
[0159]
遗留小数获取单元22,用于获取上一周期的遗留计数小数值,所述遗留计数小数值为小于1的实数;
[0160]
起始计数确定单元23,用于基于下一次仿真步长的起始计数实数值和上一周期的遗留计数小数值,确定下一次仿真步长的起始计数整数值和当前周期的遗留计数小数值。
[0161]
在本技术的一些实施例中,起始实数获取单元21获取当前周期的计数值的过程,可以包括:
[0162]
当接收到同步源发送出的同步信号时,获取此时的接收时刻,获取上一周期的计数值,以及获取计数器在当前周期的计数值;
[0163]
将所述接收时刻减去上一个接收时刻,得到接收间隔,所述上一个接收时刻为接收到上一个同步信号时的时刻;
[0164]
基于所述接收间隔、上一周期的计数值、计数器在当前周期的计数值、所述计数器的计数周期和同步信号的通信间隔,确定当前周期的计数值,其中,所述计数器的计数周期、所述通信间隔为预先获取的。
[0165]
在本技术的一些实施例中,起始实数获取单元21基于所述接收间隔、上一周期的计数值、计数器在当前周期的计数值、所述计数器的计数周期和同步信号的通信间隔,确定当前周期的计数值的过程,包括:
[0166]
判断所述接收间隔是否大于或等于预设阈值,所述预设阈值与所述通信间隔成正比;
[0167]
若是,基于上一周期的计数值、所述计数器的计数周期和所述通信间隔,确定当前周期的计数值;
[0168]
若否,采用计数器在当前周期的计数值作为当前周期的计数值。
[0169]
在本技术的一些实施例中,起始实数获取单元21基于上一周期的计数值、所述计数器的计数周期和所述通信间隔,确定当前周期的计数值的过程,包括:
[0170]
利用下述方程式计算得到当前周期的计数值ct
current

[0171][0172]
其中,ct
pre
为上一周期的计数值,ts为所述计数器的计数周期,为所述通信间隔。
[0173]
在本技术的一些实施例中,起始实数获取单元21确定预设阈值的过程,包括:
[0174]
利用下述方程式计算得到所述预设阈值φ:
[0175][0176]
其中,k为预设的常数,为所述通信间隔。
[0177]
在本技术的一些实施例中,起始实数获取单元21基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步
长的起始计数实数值的过程,包括:
[0178]
利用下述方程式对变量w进行初始化:
[0179]
w=-ct
delay
[0180]
其中,ct
delay
为通信时延所占据的计数值;
[0181]
利用下述方程式计算得到中间变量δw的值:
[0182]
δw=(ct
current-ct
pre
)/num
[0183]
其中,ct
current
为当前周期的计数值,ct
pre
为上一周期的计数值,num为所述仿真步数;
[0184]
利用下述方程式更新变量w的值:
[0185]
w=w δw
[0186]
判断w的值是否大于0;
[0187]
若是,将w的值确定为下一次仿真步长的起始计数实数值;
[0188]
若否,返回执行利用下述方程式更新变量w的值的步骤。
[0189]
在本技术的一些实施例中,所述起始计数实数值包含整数部分和小数部分。起始计数确定单元23基于下一次仿真步长的起始计数实数值和上一周期的遗留计数小数值,确定下一次仿真步长的起始计数整数值和当前周期的遗留计数小数值的过程,可以包括:
[0190]
将所述起始计数实数值划分为第一整数部分和第一小数部分;
[0191]
对所述小数部分与当前周期的遗留计数小数值进行求和,得到求和结果;
[0192]
将所述求和结果划分为第二整数部分和第二小数部分,将所述第二小数部分确定为当前周期的遗留计数小数值;
[0193]
对所述第一整数部分和所述第二整数部分进行求和,得到下一次仿真步长的起始计数整数值。
[0194]
本技术实施例提供的电力实时仿真中提高计算精度的装置可应用于电力实时仿真中提高计算精度的设备,如计算机等。可选的,图7示出了电力实时仿真中提高计算精度的设备的硬件结构框图,参照图7,电力实时仿真中提高计算精度的设备的硬件结构可以包括:至少一个处理器31,至少一个通信接口32,至少一个存储器33和至少一个通信总线34。
[0195]
在本技术实施例中,处理器31、通信接口32、存储器33、通信总线34的数量为至少一个,且处理器31、通信接口32、存储器33通过通信总线34完成相互间的通信;
[0196]
处理器31可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路等;
[0197]
存储器33可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
[0198]
其中,存储器33存储有程序,处理器31可调用存储器33存储的程序,所述程序用于:
[0199]
获取当前周期的计数值,并基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值,其中,上一周期的计数值、所述仿真步数以及通信时延所占据的计数值为预先获得的;
[0200]
获取上一周期的遗留计数小数值,所述遗留计数小数值为小于1的实数;
[0201]
基于下一次仿真步长的起始计数实数值和上一周期的遗留计数小数值,确定下一次仿真步长的起始计数整数值和当前周期的遗留计数小数值。
[0202]
可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0203]
本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
[0204]
获取当前周期的计数值,并基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值,其中,上一周期的计数值、所述仿真步数以及通信时延所占据的计数值为预先获得的;
[0205]
获取上一周期的遗留计数小数值,所述遗留计数小数值为小于1的实数;
[0206]
基于下一次仿真步长的起始计数实数值和上一周期的遗留计数小数值,确定下一次仿真步长的起始计数整数值和当前周期的遗留计数小数值。
[0207]
可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0208]
综上所述:
[0209]
本技术首先获取当前周期的计数值,并基于当前周期的计数值、上一周期的计数值、每一周期的仿真步数以及通信时延所占据的计数值,计算得到下一次仿真步长的起始计数实数值。其中,上一周期的计数值、所述仿真步数以及通信时延所占据的计数值为预先获得的。可以理解的是,所述起始计数实数值可以包含整数部分和小数部分。接着,获取上一周期的遗留计数小数值。其中,所述遗留计数小数值为小于1的实数,可以理解的是,所述遗留计数小数值为上一周期中由于取整而遗留下来的小数部分。由于每一周期的起始计数值只能是整数,因此,在取舍中会遗留未被采用的小数部分,该小数部分则构成遗留计数小数值。通过结合本周期中计算得到的起始计数实数值和上一周期的遗留计数小数值,来计算下一次仿真步长的起始计数整数值,同时记录当前周期的遗留计数小数值,以便在下一周期的计算中使用,可以避免误差的累积,提高了电力实时仿真中的计算精度。
[0210]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0211]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
[0212]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献