一种电磁环境计算方法及装置与流程

文档序号:17289608发布日期:2019-04-03 03:50阅读:258来源:国知局
一种电磁环境计算方法及装置与流程
本发明涉及电磁仿真领域,尤其涉及一种电磁环境计算方法及装置。
背景技术
:在现实的空间中,存在多个辐射源,为了确定各个辐射源对于目标点的影响,需要预先通过仿真来计算辐射源至目标点的达到功率。在现有技术中,一般通过编写多线程仿真软件来实现,该仿真软件主要通过在cpu中进行运行得以实现。图1示出了电磁计算的典型场景,辐射源包括通信设备、雷达、干扰设备以及其他辐射设备。尽管目前所使用的cpu一般为多核cpu,能够在一定程度上加快仿真的计算速度,但是对于存在多个辐射源和多个目标点的情况下,例如100个辐射源,500000个目标点,这种大规模的仿真需要的计算量,对于多核cpu来说也需要花费非常长的时间。因此,需要寻找解决电磁环境计算的新方案。技术实现要素:有鉴于此,本申请提供了一种电磁环境计算方法及装置,以提高电磁计算的速度。本申请实施例提供了一种电磁环境计算方法,该方法包括:cpu将电磁环境输入参数复制到gpu;gpu根据电磁环境输入参数并行计算电磁环境输出参数。优选地,所述电磁环境参数包括辐射源参数;所述电磁环境输出参数包括辐射源的发射功率;所述cpu将电磁环境输入参数复制到gpu包括:cpu将辐射源参数复制到gpu;所述gpu根据电磁环境输入参数并行计算电磁环境输出参数包括:gpu根据辐射源参数并行计算辐射源的发射功率。优选地,所述电磁输入环境参数包括辐射源对应的天线数据和/或地形高层数据;所述电磁环境输出参数包括各个目标点方向的天线增益和/或各个目标点的路径损耗;所述cpu将电磁环境输入参数复制到gpu包括:cpu将辐射源对应的天线数据和/或地形高层数据复制到gpu;所述gpu根据电磁环境输入参数并行计算电磁环境输出参数包括:gpu根据辐射源对应的天线数据和/或地形高层数据并行计算各个目标点方向的天线增益和/或各个目标点的路径损耗。优选地,所述电磁环境输入参数包括辐射源发的射功率、各个目标点方向的天线增益和/或各个目标点的路径损耗;所述电磁环境输出参数包括各个目标点的到达功率;所述cpu将电磁环境输入参数复制到gpu还包括:cpu将辐射源发的射功率、各个目标点方向的天线增益和/或各个目标点的路径损耗复制到gpu;所述gpu根据电磁环境输入参数并行计算电磁环境输出参数包括:gpu根据辐射源的发射功率、各个目标点方向的天线增益和/或各个目标点的路径损耗并行计算各个目标点的到达功率。优选地,所述电磁环境输入参数包括各个辐射源对应的各个目标点的到达功率;所述电磁环境输出参数包括各个目标点的合成到达功率;在具有多个辐射源的情况下,该方法还包括:所述cpu将电磁环境输入参数复制到gpu包括:cpu将各个辐射源对应的各个目标点的到达功率复制到gpu;所述gpu根据电磁环境输入参数并行计算电磁环境输出参数包括:gpu根据各个辐射源对应的各个目标点的到达功率并行计算各个目标点的合成到达功率。本申请实施例一种电磁环境计算装置,其特征在于,该装置包括:cpu、第一存储器、gpu和第二存储器;所述第一存储器上存储有第一程序,所述第二存储器上存储有第二程序;所述cpu用于执行所述第一程序将电磁环境输入参数复制到gpu;所述gpu用于执行所述第二程序以根据电磁环境输入参数并行计算电磁环境输出参数。优选地,所述电磁环境参数包括辐射源参数;所述电磁环境输出参数包括辐射源的发射功率;所述cpu,还用于将辐射源参数复制到gpu;所述gpu,还用于根据辐射源参数并行计算辐射源的发射功率。优选地,所述电磁输入环境参数包括辐射源对应的天线数据和/或地形高层数据;所述电磁环境输出参数包括各个目标点方向的天线增益和/或各个目标点的路径损耗;所述cpu,还用于将辐射源对应的天线数据和/或地形高层数据复制到gpu;所述gpu,还用于根据辐射源对应的天线数据和/或地形高层数据并行计算各个目标点方向的天线增益和/或各个目标点的路径损耗。。优选地,所述电磁环境输入参数包括辐射源发的射功率、各个目标点方向的天线增益和/或各个目标点的路径损耗;所述电磁环境输出参数包括各个目标点的到达功率;所述cpu,还用于将辐射源发的射功率、各个目标点方向的天线增益和/或各个目标点的路径损耗复制到gpu;所述gpu,还用于根据辐射源的发射功率、各个目标点方向的天线增益和/或各个目标点的路径损耗并行计算各个目标点的到达功率。优选地,所述电磁环境输入参数包括各个辐射源对应的各个目标点的到达功率;所述电磁环境输出参数包括各个目标点的合成到达功率;所述cpu,还用于在具有多个辐射源的情况下,将各个辐射源对应的各个目标点的到达功率复制到gpu;所述gpu,还用于在具有多个辐射源的情况下,根据各个辐射源对应的各个目标点的到达功率并行计算各个目标点的合成到达功率。一种电磁环境计算方法,该方法包括:cpu将电磁环境输入参数复制到gpu;cpu控制gpu根据电磁环境输入参数计算辐射源至各个目标点的到达功率。优选地,所述电磁环境输入参数包括辐射源参数、辐射源对应的天线数据、地形高层数据以及目标点数据。优选地,所述cpu控制所述gpu根据电磁环境输入参数计算辐射源至各个目标点的到达功率包括:所述cpu计算辐射源的发射功率;所述cpu控制所述gpu并行计算各个目标点方向的天线增益,所述cpu控制所述gpu根据点播传播模型并行计算各个目标点的路径损耗;所述cpu控制所述gpu根据公式precv=ptran+g-pathloss并行计算辐射源至各个目标点的到达功率,其中precv表示辐射源至目标点的到达功率,ptran表示辐射源的发射功率,g表示目标点方向的天线增益,pathloss表示目标点的路径损耗。优选地,该方法还包括:在具有多个辐射源的情况下,所述cpu控制所述gpu并行计算各个目标点的合成功率。优选地,所述gpu为基于cuda架构的gpu。优选地,cpu执行内核函数控制gpu进行并行计算。本申请实施例提供了一种电磁环境计算装置,该装置包括:cpu、第一存储器、gpu和第二存储器;所述第一存储器上存储有第一程序,所述第二存储器上存储有第二程序;所述cpu用于执行所述第一程序将电磁环境输入参数复制到gpu;所述cpu还用于执行所述第一程序控制gpu执行第二程序以实现根据电磁环境输入参数计算辐射源至各个目标点的到达功率。优选地,所述电磁环境输入参数包括辐射源参数、辐射源对应的天线数据、地形高层数据以及目标点数据。优选地,所述cpu还用于执行所述第一程序以计算辐射源的发射功率;控制所述gpu执行所述第二程序以实现并行计算各个目标点方向的天线增益;根据点播传播模型并行计算各个目标点的路径损耗:根据公式precv=ptran+g-pathloss并行计算辐射源至各个目标点的到达功率,其中precv表示辐射源至目标点的到达功率,ptran表示辐射源的发射功率,g表示目标点方向的天线增益,pathloss表示目标点的路径损耗。优选地,所述cpu,还用于在具有多个辐射源的情况下,执行所述第一程序控制所述gpu执行所述第二程序以并行计算各个目标点的合成功率。本申请实施例提供的技术方案根据显卡的能力和计算规模的不同,仿真加速可达50-150倍,计算所需时间并不会随采样点数量以及辐射源数量呈指数上升。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是电磁计算的典型场景;图2是基于cuda程序执行模型;图3是本申请实施例提供的电磁环境计算方法示意图;图4是本申请实施例提供的电磁环境计算装置示意图。具体实施方式如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。如图1所示,为了计算目标点的到达功率,首先要划分目标区域形成的目标点,然后计算各个辐射源到目标点的到达功率,例如通信设备、雷达、干扰设备以及其他辐射源到目标点的到达功率,最后再计算各个辐射源在目标点的合成功率。对于任意一个辐射源,其到达目标点的到达功率可以按照下式计算:precv=ptran+g-pathloss;其中,precv表示辐射源至目标点的到达功率,ptran表示辐射源的发射功率,g表示目标点方向的天线增益,pathloss表示目标点的路径损耗。上述各个参数的单位可以是db。上述公式中,一般假设目标点为全向接收机。如果假设目标点为其他类型接收机,本领域技术人员也可以根据现有技术确定辐射源到达目标点的达到功率。在大尺度电磁环境计算中,需要考虑地形遮挡绕射、对流层散射、天气等因素影响,可以使用传播模型进行模拟,例如传播模型可以包括itu_p.525、itu_p.1238、itu_p.528、itu_p.618、itu_p.681、itu_p.682、itu_p.838、itu_p.1546、okumura-hata以及longley-rice等。在仿真的过程中,可以根据实际的需要进行选择。在电磁计算过程中需要对各个目标点进行仿真计算,因此需要的计算两巨大。随着计算机技术的发展,gpu也被开发用来进行数据计算,特别是进行并行计算。例如基于cuda架构的gpu可以支持大规模的并行计算。为了充分利用gpu的并行运算能力,一般可以通过编写cuda程序来实现,其包括运行在cpu的串行程序和运行在gpu的并行程序,其中运行在gpu的程序称为内核(kernel)函数。gpu通过并行计算后,将结果返回cpu。cpu的串行程序主要用于将并行计算所需要的数据复制到gpu,以及将gpu并行计算得到的结果复制到cpu。gpu支持多线程(thread),若干个线程构成一个块(block),若干块构成一个网格(grid)。因为一个块内的所有线程会在同一处理器内核上共享内存资源,所以块内线程的数量有限的。一个内核可以在多个相同形状的块上执行。块可以是一维、二维或者三维。每个网格中的块数量由处理器的个数以及待处理的数据量决定。以二维的块为例,图2示出了具有两个网格grid1、grid2的cuda程序执行模型。从该图可以看出,其线程的分布方式与电磁计算中各个目标点的分布非常接近,因而适合于用来电磁计算。上述公式中,天线增益和路径损耗独立,因此可以分别使用独立地并行运算,例如使用网格grid1来计算天线增益,使用网格grid2来计算路径损耗。图3示出了本申请提供的电磁计算流程,具体包括:步骤305,初始化cpu,获例如显存流量,多流处理器个数、共享显存大小等的gpu信息,根据获取的gpu信息计算出每个线程块启用的线程thread数量以及线程网格block数,具体参考:其中,线程数量由目标点数量决定:步骤310,准备电磁环境输入参数,例如辐射源参数(例如频率、功率等信息)、辐射源对应的天线数据(例如天线极化方式、天线方向图数据)、地形高层数据(例如地理信息数据)以及目标点数据(例如采样点位置信息);步骤315,为输入输出分配显存空间,该显存空间主要用于存储电磁环境输入参数以及计算过程、结果数据;步骤320,将电磁环境输入参数复制到gpu;步骤325,计算发射功率;一般来说,辐射源的数量有限,辐射源的发射功率可以由cpu串行程序来完成计算并将结果存储于cpu中;辐射源的发射功率可以根据下式计算:ptran=10×log10(powerw);其中,ptran为辐射源的发射功率,powerw为辐射源的功率;需要说明的是,作为可替换的实现方式,辐射源的发射功率也可以通过gpu并行运算实现;步骤330,创建流;流表示一个gpu操作队列,并且该队列中的操作将以指定的顺序执行。可以在流中添加一些操作,如内核函数启动,内存复制等。步骤335,将辐射源对应的天线数据复制到gpu,调用内核函数并行计算各个目标点方向的天线增益,具体步骤如下:a)获取目标点位置信息;b)计算目标点与辐射源角度;c)获取该角度方向的天线增益;步骤340,将地形高层数据(即传播模型)复制到gpu,调用内核函数并行计算路径损失;计算路径损失时,可以根据辐射源类型、频率以及平台确定电波传播模型,从而调用对应的电波传播模型内核函数计算各目标点的路径损耗。这里以longley-rice模型也被称为不规则地面模型为例说明计算路径损耗方法,其它传播模型都采用对应的计算方法进行点播传播路径损耗计算。a)获取辐射源参数信息【频率、功率、位置、姿态、天线极化方式以及环境信息(折射率、介电常数、气候类型等)等】、目标点位置信息、地形高程数据信息;b)对目标点位置至辐射源位置进行采样获取采样点高程数据;c)根据longley-rice模型中,利用地貌地形的路径几何学和对流层的绕射性预测中值传输衰落,采用双线地面反射模型用于模拟地平线以内的传输场强;采用fresnel-kirchoff刃形模型模拟绕射损耗;用前向绕射理论对长距离对流散射进行预测;并使用vanderpol-bremmer方法来预测双地平线路径的远地绕射损耗;同时也参考了its不规则地形模型,计算b)步骤特定路径的“点到点预测”点播传播损耗。步骤345,将辐射源发射功率、各个目标点方向的天线增益以及各个目标点的路径损耗复制到gpu,调用内核函数并行计算目标点的到达功率;到达功率可以根据上述的公式计算;步骤350,如果辐射源没有计算完成,可以从步骤315开始计算下一个辐射源;如果计算完成,执行步骤355;步骤355,将各个辐射源对应的各个目标点的道道功率复制到gpu,调用内核函数并行计算计算目标点的合成功率;以两个辐射源为例,其内核函数的计算公式可以为:其中recvpowera和recvpowerb是辐射源到达相同目标点的到达功率。需要说明的是,这里的计算两相较于计算天线增益和计算路径损失的计算量而言,会小1-2个量级,也可以不借助gpu来计算,而直接使用cpu计算。例如,对于具有100个发射源、500000个目标点的电磁计算场景而言,每个辐射源对应于500000个到达功率,对于每个目标点存在100个到达功率;每个目标点可以使用一个线程来计算合成到达功率,一共需要500000个线程来完成合成到达功率的计算。本申请实施例提供的电磁环境计算装置如图4所示,该装置包括:cpu、第一存储器、gpu和第二存储器;所述第一存储器上存储有第一程序,所述第二存储器上存储有第二程序;所述cpu用于执行所述第一程序将电磁环境输入参数复制到gpu;所述gpu用于执行所述第二程序以根据电磁环境输入参数并行计算电磁环境输出参数。通过本申请实施例提供的技术方案,可以极大地提高电磁计算的速度。以下述硬件配置为例,针对具有100个辐射源、150km*130km范围内的目标点进行电磁计算,其所需要消耗的时间如下表所示。表1硬件配置表cpuinteli7-7700内存ddr432g显卡nvidiagtx1070硬盘ssd120g显示器1920x1080(24寸)表2不同计算方式地形部分网格对仿真时间的影响部分方案200*200m500*500m1000*1000m2000*2000mgpu并行116s38s15s9scpu多核≈8.3h≈2.1h≈37m≈12m本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。上述说明示出并描述了本发明的若干具体实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1