实时控制Exata节点移动轨迹的方法转让专利

申请号 : CN201511027066.0

文献号 : CN105487407B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董超李智敏刘鹏飞王海于卫波

申请人 : 中国人民解放军理工大学

摘要 :

本发明公开了一种实时控制Exata节点移动轨迹的方法。Exata网络仿真软件在网络仿真运行的过程中,利用UDP(User Datagram Protocol,用户数据报协议)通信实时接收外部主控模块发送的节点移动信息,然后通过添加事件的方式来实时增加新的移动位置并控制节点移动;同时利用原地踏步策略解决了Exata网络仿真软件中节点的位置管理模块未开放所导致的节点必须持续运动的问题。本发明物理意义明确,方法简单方便,实现的复杂度低,可以用于Exata仿真软件用于大系统仿真实验时实时接收外部主控模块的移动指令并控制节点按移动指令移动。

权利要求 :

1.一种实时控制Exata节点移动轨迹的方法,其特征在于步骤如下:

(1)在Exata网络仿真软件内实现UDP通信服务器程序,接收外部主控模块发来的节点移动信息;

(2)在网络仿真运行的过程中,Exata网络仿真软件根据接收到的节点移动信息,将节点移动位置通过添加事件的方式加入相应节点的移动事件列表来控制节点移动;

(3)当节点移动到新位置后,如果再没有更新的移动位置,则令节点原地踏步而非停止移动。

2.根据权利要求1所述的实时控制Exata节点移动轨迹的方法,其特征在于所述步骤(1)中,在Exata网络仿真软件内实现UDP通信服务器程序,该服务器程序作为一个线程在Exata网络仿真启动后一直运行,实时监听并接收外部主控模块发送的节点移动信息;外部主控模块运行UDP通信的客户端程序,并将节点的移动信息发送到Exata仿真软件中的UDP通信服务器程序。

3.根据权利要求1所述的实时控制Exata节点移动轨迹的方法,其特征在于步骤(2)所述网络仿真运行的过程中,Exata网络仿真软件接收到外部主控模块发来的节点移动信息,便通过解码该节点移动信息数据包,得到待移动节点的ID和节点的目的位置,然后将当前仿真时间+N秒作为节点此次移动的停止时刻,最终Exata将节点此次移动的停止时刻和目的位置加入到相应ID节点的移动事件列表中;Exata网络仿真软件通过逐个执行节点移动事件列表中的事件从而使节点在每个移动停止时刻到达相应的目的位置。

4.根据权利要求1所述的实时控制Exata节点移动轨迹的方法,其特征在于所述步骤(3)中,每当节点移动到新位置后,Exata网络仿真软件判断该节点的新位置是否是它的移动事件列表中的最后一个目的位置;如果新位置是最后一个目的位置,Exata将为该节点产生一个“原地踏步”事件并加入到它的移动事件列表中;如果新位置不是最后一个目的位置,则Exata按照节点移动事件列表中的停止时刻和目标位置继续控制节点移动。

5.根据权利要求1或3所述的实时控制Exata节点移动轨迹的方法,其特征在于:所述“原地踏步”事件是指节点下一次移动的停止时刻为当前仿真时间+M秒,而移动的目标位置仍然是当前位置。

说明书 :

实时控制Exata节点移动轨迹的方法

技术领域

[0001] 本发明涉及通信领域,具体是一种可以实时控制Exata(一种网络仿真软件)节点移动轨迹的方法。

背景技术

[0002] 在进行产品开发或者新技术推广时,仿真是降低难度和成本的重要手段,由于可以兼顾成本与仿真的真实性,半实物仿真近些年得到了越来越多的重视。Exata是基于Qualnet仿真内核的一种半实物仿真软件,其创建的“虚拟网络”完全可以与真实物理网络中的所有组件互相通信和交换数据。另外,由于Exata的协议层次较为简单,层间耦合较松,其产品开发和测试周期短。同时,Exata协议实体对平台资源需求较少,后期的移植较为简单,产品实用化速度较快。由于以上优点,Exata已经成为无线网络半实物仿真的主流软件。
[0003] 除独立进行网络仿真之外,Exata还可与其他模块配合进行大系统仿真实验。图1中的系统共包括3个模块,可以看到,仿真模块需要实时接收并响应来自外部主控模块的指令,其中比较重要的就是节点的移动信息,这由仿真软件的移动模型来控制。目前,Exata中控制节点移动的方法有如下4种。
[0004] (1)FILE:基于文件的节点移动控制方法。
[0005] 在仿真进行过程中,节点不同时刻的位置信息来自本地配置文件。位置信息在仿真开始前设置好,无法实时添加。在这种移动模式下,节点沿直线以恒定速度从一个位置移动到另一个位置。
[0006] (2)GROUP:基于组移动的节点移动控制方法。
[0007] 同属一组的节点一起移动,移动轨迹和移动方式遵循RANDOM-WAYPOINT移动模型规则,即每个节点在组范围内按照RANDOM-WAYPOINT移动模型规则来移动。
[0008] (3)PEDESTRIAN-MOBILITY:基于行人移动模型的节点移动控制方法。
[0009] 节点移动轨迹在仿真开始时刻计算好,节点模拟人移动特点,或沿街道行走,或走向诸如公园和车站这些地方,也或在这些地方范围内行走。
[0010] (4)RANDOM-WAYPOINT:基于随机游走模型的节点移动控制方法。
[0011] 节点移动轨迹在仿真开始时刻计算好,节点随机选择下一个需要移动到达的位置,每次移动都在规定范围内随机选择一个固定的速度,沿直线移动到目的节点,然后暂停在新的位置上等待下一次的移动。
[0012] 以上这几种Exata自带的控制节点移动的方法,或按照某种固定的方式移动,或随机移动,且移动路径在仿真开始时刻就计算好,因此不管是哪一种节点移动控制方法都不能在Exata网络仿真开始后实时地接收和响应外部指令并进行相应的位置移动。综上所述,当前Exata仿真软件自带的几种控制节点移动轨迹的方法都需要在仿真前规划好节点的移动轨迹,无法在仿真过程中实时控制节点移动。但由于Exata仿真软件并未完全开放源代码,因此要实现对Exata节点移动轨迹的实时控制。

发明内容

[0013] 本发明的目的在于提供一种可以实时控制Exata节点移动轨迹的方法,扩展Exata仿真软件在大系统仿真实验中的应用。
[0014] 实现本发明目的的技术解决方案为:一种实时控制Exata节点移动轨迹的方法,步骤如下:
[0015] (1)在Exata网络仿真软件内实现UDP通信服务器程序,接收外部主控模块发来的节点移动信息;
[0016] (2)在网络仿真运行的过程中,Exata网络仿真软件根据接收到的节点移动信息,将节点移动位置通过添加事件的方式加入相应节点的移动事件列表来控制节点移动;
[0017] (3)当节点移动到新位置后,如果再没有更新的移动位置,则令节点原地踏步而非停止移动。
[0018] 所述步骤(1)中,在Exata网络仿真软件内实现UDP通信服务器程序,该服务器程序作为一个线程在Exata网络仿真启动后一直运行,实时监听并接收外部主控模块发送的节点移动信息;外部主控模块运行UDP通信的客户端程序,并将节点的移动信息发送到Exata仿真软件中的UDP通信服务器程序。
[0019] 步骤(2)所述网络仿真运行的过程中,Exata网络仿真软件接收到外部主控模块发来的节点移动信息,便通过解码该节点移动信息数据包,得到待移动节点的ID和节点的目的位置,然后将当前仿真时间+N秒作为节点此次移动的停止时刻,最终Exata将节点此次移动的停止时刻和目的位置加入到相应ID节点的移动事件列表中(即产生新的移动事件);Exata网络仿真软件通过逐个执行节点移动事件列表中的事件从而使节点在每个移动停止时刻到达相应的目的位置。
[0020] 所述步骤(3)中,每当节点移动到新位置后,Exata网络仿真软件判断该节点的新位置是否是它的移动事件列表中的最后一个目的位置;如果新位置是最后一个目的位置,Exata将为该节点产生一个“原地踏步”事件并加入到它的移动事件列表中;如果新位置不是最后一个目的位置,则Exata按照节点移动事件列表中的停止时刻和目标位置继续控制节点移动。所述“原地踏步”事件是指节点下一次移动的停止时刻为当前仿真时间+M秒,而移动的目标位置仍然是当前位置。
[0021] 本发明与现有技术相比,其显著优点为:本发明利用UDP通信来接收移动指令,并使用事件插入与原地踏步策略来解决Exata仿真软件位置管理模块代码未开放所带来的技术挑战,最终实现了可以实时接收移动指令并控制Exata节点移动轨迹,目前Exata自带的几种移动轨迹控制方法均无法实现此功能。

附图说明

[0022] 图1是Exata仿真软件用于大系统仿真实验时所处的位置。
[0023] 图2是本发明UDP通信节点移动位置信息数据格式。
[0024] 图3是本发明节点对新位置的处理流程。
[0025] 图4是本发明的仿真场景。
[0026] 图5是 5分钟时节点位置。
[0027] 图6 是10分钟时节点位置。
[0028] 图7 是20分钟时节点位置。

具体实施方式

[0029] 实现本发明的目的需要解决如下技术问题:
[0030] (1)Exata仿真软件本身并未提供与其他软件的接口来接收移动指令;
[0031] (2)Exata仿真软件的位置管理模块并未开源,无法直接对节点的移动轨迹进行控制;
[0032] (3)由于Exata仿真软件中的位置管理模块未开源,导致节点静止下来之后,无法使其再次移动。
[0033] 本发明提出的方法利用UDP(User Datagram Protocol,用户数据报协议)通信,事件添加以及原地踏步等策略,使得Exata仿真软件可以在仿真运行过程中实时接收外部主控模块发来的移动指令,并根据移动指令控制节点的移动。
[0034] 首先,必须要解决节点移动信息的实时接收问题,本发明定义了节点位置消息的格式并在Exata源代码中添加了UDP服务器的程序来实现此功能,这么做的好处是可以接收任何UDP客户程序产生的符合格式要求的节点位置信息,从而提高本文所提移动轨迹控制方法的适用性;其次,由于EXata仿真软件的位置管理模块并未开源,无法直接对节点的移动轨迹进行控制,只能通过添加移动事件的方式来实时增加新的移动位置;最后,由于位置管理模块未开源,导致节点静止下来之后,无法使其再次移动,为避免此问题发生,本发明在节点即将静止之前插入原地踏步的移动事件,使得节点继续“移动”但并不会改变位置,因而不会影响仿真结果。
[0035] 其具体步骤如下:
[0036] (1)Exata仿真软件利用UDP通信接收外部主控模块发送的移动消息,即新的移动位置。图2所示为UDP通信所采用的节点移动位置信息数据格式。由于EXata仿真软件可以支持笛卡尔坐标系和大地坐标系(即以经度、纬度、高度表示节点位置)两种节点位置表示方法,外部主控模块可以通过实现约定的方式确定Exata仿真软件采用可哪种坐标系。图2所示的节点移动位置信息数据格式同样可以支持两类坐标系的节点位置信息,当采用笛卡尔坐标系时图2中的数值单位为米,采用大地坐标系数值图2中的数值单位为秒;
[0037] (2)Exata仿真软件将消息中节点ID转换为该节点在EXata仿真软件中的节点ID,同时将消息中表示节点位置信息的数据进行单位转换,如果Exata仿真软件在仿真配置中使用了大地坐标系,则需要将消息中表示经度、纬度和高度的数值除以3600转换成Exata中的位置单位度;
[0038] (3)获取当前仿真时间,并在此基础上加N秒,产生新的移动事件,使节点在新时刻(当前仿真时间+N秒)移动到位置消息所指定的位置。N取值越大,则移动时延越大;N取值越小,则仿真软件负荷越大。N的取值根据系统运行状况和移动时延可接受范围来确定;图3是节点对新位置的处理流程。
[0039] (4)当节点的移动事件列表无可执行位置事件时,转而执行“原地踏步事件”,即产生新的事件,令节点在M秒后移动到当前位置,M取值越大,则移动时延越大;M取值越小,则仿真软件负荷越大。M的取值根据系统运行状况和移动时延可接受范围来确定。
[0040] 下面结合附图和实施例对本发明作进一步详细描述。
[0041] 为验证效果,在Exata仿真软件内实现了本发明的实时控制节点移动轨迹的方法,并将其命名为ONLINE-MOBILITY。在Exata仿真软件内构建的实验场景如图4所示,在4300m*1800m的范围内分布48个节点,节点ID如图中所示,分别为1-48,其中节点1-16连接到同一子网,并且排布成一个圆,其余32个节点连接到另一个子网上,排布成一个三角形。设置每个节点的移动方法为ONLINE-MOBILITY,仿真时间(仿真时间不同于现实时间,当仿真业务量很少时,仿真时间会超前现实时间)设置为20分钟。其他设置选择默认设置即可。由于本文只需验证节点能否按照接收到的指令进行相应移动,因此,在各节点上没有添加任何业务。
[0042] 外部主控模块事先确定此次Exata仿真采用的是笛卡尔坐标系,运行UDP客户端程序,并向Exata发送节点移动的X坐标、Y坐标和Z坐标位置信息。外部主控模块分两次向Exata发送位置信息。第一次发送的位置信息控制Exata中节点1-16移动,第二次发送的位置信息控制Exata中节点17-48移动。两次之间的时间间隔不发送位置信息,Exata仿真软件执行“原地踏步”事件。外部主控模块两次发送的节点移动位置分别如表1和表2所示[0043] 表1 外部主控模块第一次通过UDP发送的节点移动信息
[0044]节点ID X坐标 Y坐标 Z坐标 节点ID X坐标 Y坐标 Z坐标
1 100 100 0 9 900 900 0
2 200 200 0 10 1000 1000 0
3 300 300 0 11 1100 1100 0
4 400 400 0 12 1200 1200 0
5 500 500 0 13 1300 1300 0
6 600 600 0 14 1400 1400 0
7 700 700 0 15 1500 1500 0
8 800 800 0 16 1600 1600 0
[0045] 表2 外部主控模块第二次通过UDP发送的节点移动信息
[0046]节点ID X坐标 Y坐标 Z坐标 节点ID X坐标 Y坐标 Z坐标
17 1350 100 0 33 2600 100 0
18 1450 200 0 34 2700 200 0
19 1550 300 0 35 2800 300 0
20 1650 400 0 36 2900 400 0
21 1750 500 0 37 3000 500 0
22 1850 600 0 38 3100 600 0
23 1950 700 0 39 3200 700 0
24 2050 800 0 40 3300 800 0
25 2150 900 0 41 3400 900 0
26 2250 1000 0 42 3500 1000 0
27 2350 1100 0 43 3600 1100 0
28 2450 1200 0 44 3700 1200 0
29 2550 1300 0 45 3800 1300 0
30 2650 1400 0 46 3900 1400 0
31 2750 1500 0 47 4000 1500 0
32 2850 1600 0 48 4100 1600 0
[0047] 分析可知,如果Exata成功执行了来自主控软件的位置命令,且两次执行的间隔中仿真软件成功执行了“原地踏步事件”,则最后拓扑应该变成三条平行的斜线。图5,图6,图7分别是仿真进行到第5分钟、第10分钟和第20分钟时各节点的位置。可以看到,仿真结束时(第20分钟)节点的位置变为了三条平行的斜线。