本栏目将对《AFSim 2.9中文参考手册》进行持续更新,欢迎关注交流!

对本书全文和AFSIM其它资料感兴趣的伙伴,可联系作者领取~

全部内容索引请看 ⬇️⬇️⬇️

《AFSim 2.9中文参考手册》-CSDN博客​编辑​编辑https://blog.csdn.net/henggesim/article/details/145566384https://blog.csdn.net/henggesim/article/details/145566384

 AFSIM配套视频教程请看 ⬇️⬇️⬇️afsim2.9官方培训视频教程https://space.bilibili.com/3546837967440641​编辑https://space.bilibili.com/3546837967440641https://space.bilibili.com/3546837967440641


processor <name> WSF_SENSORS_MANAGER_FOV
   WSF_SIMPLE_SENSORS_MANAGER Commands ...
end_processor

WSF_SENSORS_MANAGER_FOV 扩展了 WSF_SIMPLE_SENSORS_MANAGER,提供更复杂的偏转控制。在其他方面它是相同的。虽然简单的传感器管理器以未定义的顺序将TTR直接指向分配的目标,但传感器管理器FOV将TTR偏转到可以看到最多目标的空间区域。完整的传感器管理器FOV算法将在更新部分中给出。为了简洁起见,本页通常将 WSF_SENSORS_MANAGER_FOV 简称为“传感器管理器”或“管理器”。

TTR辅助数据

传感器管理器查询从属TTR中定义的 aux_data 以发现额外的传感器参数。注意,这些参数不是在传感器管理器的 aux_data 中定义的,而是在TTR传感器中定义的。如果未指定辅助参数,则将设置为默认值。

  • unitary RESTING_AZIMUTH = <angle-value>

当TTR没有更多任务时,将返回的方位角。此方位角在TTR的PCS框架中定义(因此,将此值设置为0度时,休息方位角直接指向传感器前方,90度指向右侧,-90度指向左侧,180度指向正后方)。因为这是一个方位角,所以应在[-180, 180]度范围内。

默认值: 0度

  • unitary COARSE_SLEW_RATE_AZIMUTH = <angular-speed-value>

当TTR在其视野内没有目标时,TTR在方位角上偏转的速度。

默认值: 无限大

  • unitary FINE_SLEW_RATE_AZIMUTH = <angular-speed-value>

当TTR在其视野内有目标时,TTR在方位角上偏转的速度。

默认值: 无限大

TTR限制

传感器管理器控制其下属TTR的一些方面。这包括开/关状态;方位偏转率和方位提示率;以及提示的位置/角度/目标。这些方面不应通过脚本进行修改。这样做会干扰管理器的操作,并产生奇怪的结果。管理器还要求TTR传感器使用默认的传感器调度程序。使用其他调度程序也会产生奇怪的结果。

传感器管理器只提示一个TTR传感器到一个位置,因此如果传感器有多个天线或波束,而天线/波束可以同时指向多个方向,它将无法正常工作。然而,如果多个传感器存在于同一平台上,它能够管理它们。

计算提示方位角

传感器管理器的主要职责是通过考虑当前的任务来计算TTR的指向方向。这部分将把分配给TTR的任务称为目标。在计算提示方位角时,管理器考虑目标相对于传感器的方位,以及传感器当前是否正在跟踪目标。

确定TTR的提示方位角涉及分析传感器周围目标的空间分布。以下是其工作原理:

楔形表示:

传感器的视野被表示为一个楔形,楔形的角度对应于传感器波束的宽度。对于雷达传感器,这通常是半功率波束宽度;对于几何传感器,它是方位视场。其他传感器类型可能会以不同的方式定义此宽度。

选择最佳楔形:

提示方位角通过识别包含最多已跟踪目标的楔形来确定。如果两个楔形包含相同数量的已跟踪目标,则选择包含更多总目标(无论是否已跟踪)的楔形。

如果两个楔形具有相同数量的目标,则选择目标组(在方位上)密集度更高的楔形。

提示TTR:

在选定的楔形内,TTR会被提示指向目标组的中间位置,该位置精确计算为该楔形内所有目标方位的平均值。

示例场景:

在一个场景中,目标T3、T4和T5形成了一个密集组,并在一个方位楔形内,传感器可能会优先考虑这些目标。然而,如果TTR已经在跟踪目标T8和T9,它将保持对这些目标的关注,以避免放弃它们。

策略优势:

这种策略确保TTR不放弃其已经在跟踪的目标。

它优先考虑包含更多目标的组,并倾向于密集组而非稀疏组,从而优化传感器的跟踪能力。

更新传感器管理器Updating

传感器管理器由联合防空系统(IADS)指挥与控制(C2)系统定期更新。在每次更新中,除执行基础传感器管理器的常规职责外,视场(FOV)传感器管理器还对每个下属TTR执行额外任务。具体流程如下:

检查任务:

传感器管理器首先检查TTR是否有当前任务。

无任务时:

如果没有任务,管理器确保TTR处于关闭状态。

将TTR的偏转速率设置为粗略偏转速率。

然后将TTR提示到其休息方位。

有任务时:

如果有任务,管理器计算TTR的提示方位角。

将TTR提示到这个计算出的方位角。

视野检查:

如果提示方位角在传感器当前视野内:

管理器确保TTR处于开启状态。

将偏转速率设置为精细偏转速率。

如果提示方位角在当前视野外:

管理器确保TTR处于关闭状态。

将偏转速率设置为粗略偏转速率。

此更新过程确保TTR得到有效管理,通过在不需要时关闭来节约能量和资源,并在有任务时快速调整以跟踪目标。这种方法优化了传感器的操作准备和效率。

计算提示方位角 - 开发者指南

在AFSIM端口中,计算提示方位角的算法与原始HELIOS实现有所不同。新版本更高效,并能产生更准确的结果,尽管仅从代码中可能难以理解。此部分旨在解释算法中令人困惑的部分。在此部分中,目标指的是分配给TTR的任务。

算法概述

方位窗口表示:

图像中展示了一条从-180到180度的数轴,表示传感器周围的方位角。数轴上有一系列目标,用圆圈表示。中心有点的圆圈是已跟踪的目标。灰色框带有向右的箭头,表示方位视场(在前一节中称为方位楔形);在本节余下部分中称为方位窗口,或简称为窗口。

目标检测:

通过简单地遍历所有目标并检查每个目标是否在窗口的最小和最大限制内,可以轻松计算哪些目标在特定窗口内。然而,可能的窗口数量是无限的,因此检查所有窗口是不可能的。        HELIOS通过尝试360个不同的窗口(每1度间隔)解决了这个问题。然而,这是一种昂贵的计算(除非目标数量非常大,这并不常见)。此外,考虑到TTR通常只有几度的视场,1度的增量可能会引入一些显著的误差。

算法步骤:

目标按方位升序排序。

初始化窗口大小、最小索引和最大索引。

找出初始窗口中的目标。

计算窗口的左边缘和右边缘。

处理方位角的环绕(例如,超过180度时调整)。

计算目标进入或退出窗口的距离。

根据目标进入或退出窗口调整索引。

更新窗口位置。

计算目标数量。

// 按方位升序排序目标
sort(targets)

windowSize = 窗口的视场
minIndex = 0
maxIndex = 0

// 找出初始窗口中的目标
WHILE maxIndex < length(targets) AND targets[maxIndex].azimuth <= windowSize
   maxIndex += 1

leftEdge = 0
rightEdge = windowSize
LOOP
   // 处理环绕
   wrappedMaxIndex = maxIndex mod length(targets)
   wrappedRightEdge = rightEdge
   IF wrappedRightEdge > 180
      wrappedRightEdge -= 360

   minTargetDistance = targets[minIndex].azimuth - leftEdge
   maxTargetDistance = targets[wrappedMaxIndex].azimuth - wrappedRightEdge

   IF maxTargetDistance >= minTargetDistance
      // 目标进入窗口
      maxIndex += 1
      slideDistance = maxTargetDistance
   ELSE
      // 目标退出窗口
      minIndex += 1
      slideDistance = minTargetDistance

   // 前进窗口
   leftEdge += slideDistance
   rightEdge = leftEdge + windowsSize

   IF leftEdge >= 180
      BREAK

   targetCount = maxIndex - minIndex

算法的核心

该算法通过 minIndex(包含)和 maxIndex(不包含)变量跟踪窗口中的目标。它通过 leftEdge 和 rightEdge 变量跟踪窗口的位置,分别标记窗口的最小和最大方位。目标存储在一个名为 targets 的顺序列表中。算法的主循环开始时计算窗口前进的距离,以便目标进入或退出窗口。这两个距离的最小值决定了目标计数图的下一个上升/下降边缘。如果目标进入窗口,需要增加 maxIndex;如果目标退出窗口,需要增加 minIndex。然后,窗口按最小距离前进。目标数量可以通过简单地从 maxIndex 中减去 minIndex 来计算。当窗口的左边缘超过最大可能方位时,循环结束;这意味着所有可能的方位都已检查。

完整计算旨在确定最大目标计数、最大跟踪计数和最小组稀疏性,因此实际代码中有一些额外的记录以确定这些值。然而,算法的核心内容包含在上述代码示例中。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐