AFSim 仿真系统--任务处理器入门指南

news2025/1/14 1:23:51

 任务处理器

 任务处理器(WSF_TASK_PROCESSOR)是一个WSF处理器,它提供了检查轨迹管理器中的数据(轨迹)并对其采取行动的能力。这些行动包括:

     *向下属分配任务

     *激活或停用传感器或干扰器

     *开火武器

     *操纵平台

       每个能够分配任务或接收任务分配的平台都必须有一个WSF_TASK_PROCESSOR的实例。任务处理器使用“有限状态机”的概念来控制要执行的行动。

任务处理器“监听”轨迹管理器,以确定新的轨迹何时出现。该轨迹可以来自于:

     *由本地传感器产生的轨迹。

     *从离板源接收到的轨迹。

     *嵌入在任务分配中的轨迹。

     *预先规划的轨迹。

      当出现新的轨迹时,会为“起始”状态(即处理器中的第一个“状态”)安排评估事件。随后的评估事件将根据状态机的规定安排。对于给定的轨迹,评估事件将在满足以下两个条件时结束:

    *该轨迹未收到任何任务。

    *该轨迹未发起任何任务。

每个轨迹在其自己的状态机中执行。

有限状态机

 有限状态机由以下组成:

      *有限数量的“状态”,其中一个是“起始状态”。

      *一组定义状态将何时发生改变的“转换规则”或“转换函数”。

一个有限状态机通常可以用一个状态图表示,该状态图由
      * 节点  表示状态的
      * 连接节点的“弧”组成,表示转换规则。

在WSF中,“状态”可以代表几乎任何事情:

     *等待某物进入范围。

     *等待传感器获得。

     *等待武器爆炸。

在下面的例子中,显示了一个简单的状态图,其中有节点(标记为A至D)和连接节点的弧,表示转换规则。

"A"状态是起点。如果满足转换规则,它就会转移到“B”状态。如果所有转换规则都得到满足,最终会转移到“C”状态,然后到“D”状态。在“B”和“C”状态下,如果某些转换规则不满足,它可以回到“A”状态。例如,雷达系统可以用一台状态机制作。状态“A”可以是搜索模式。状态“B”可以代表初始获取模式。状态“C”可以代表次要获取模式。状态“D”可以是跟踪模式。

状态机输入

以下图显示了在WSF中任务处理器中如何定义状态机。

任务处理器中可用的预定义变量

任务处理器可以访问预定义变量,以便于脚本的创建,如下所示:

TRACK 变量

    TRACK变量是WsfLocalTrack类型,指的是当前正在评估的轨迹。因为WsfLocalTrack继承自WsfTrack,所以WsfTrack类型中的所有方法也都可用。

PROCESSOR 变量

    PROCESSOR变量(或“this”已被弃用)是WsfTaskManager类型,指的是WSF_TASK_PROCESSOR。所有WsfTaskManager、WsfTaskProcessor、WsfProcessor、WsfPlatformPart和WsfObject类型的方法都可供使用。

PLATFORM 变量

PLATFORM变量是WsfPlatform类型,指的是包含处理器的平台。所有WsfPlatform和WsfObject类型的方法都可供使用。

MESSAGE 变量

MESSAGE变量是WsfMessage类型。所有WsfMessage类型的方法都可供使用。 TIME_NOW 变量 TIME_NOW是一个简单的“double”变量,表示自模拟开始以来的秒数。

MATH 变量

MATH允许使用数学函数。请参阅Math。

See :ref:`Common_Script_Interface` for variables available within other components.

 

状态机的评估过程


*请求一个“思考者”进程
 当一个思考者可用时,将其标记为忙碌,持续时间为当前状态中指定的“time_to_evaluate”。
      模拟完成某项任务所需的人类或机器时间
      由正在评估的状态的“time_to_think”值控制
      可以过载
              如果没有可用的思考者(没有忙于思考其他评估),评估将被放入“待处理队列”
              将由下一个可用的思考者处理。
       WSF_TASK_PROCESSOR可以配置多个思考者
              命令:“number_of_servers <n>”(默认为1)
*当思考者达到评估时间的末尾时,执行当前状态的规则:
设置保留的脚本变量
   TRACK、PLATFORM、PROCESSOR、MESSAGE、TIME_NOW
按照出现顺序执行“next_state”脚本
   如果没有返回true,则保持在当前状态。
        将思考者标记为“非忙碌”
        使用“evaluation_interval”安排下一次评估。
   如果有一个返回true,则转换到指定状态。
        执行当前状态的“on_exit”脚本。
        执行新状态的“on_entry”脚本。
        将“当前状态”设置为“新状态”
        将思考者的时间延长到新状态的“time_to_evaluate”。
       等待思考者完成并评估规则。


任务分配和执行


任务管理器可以将任务分配(或取消)给下属。WsfTaskManager中可用于分配或取消任务的一些方法包括

           *AssignTask(也可用于FireAt、StartTracking和StartJamming来处理武器)

           *CancelTask

           *TasksAssignedFor

           *AssigneesForTask

      任务分配/取消/状态消息通过通信网络传输(如果不是本地任务),并可能会丢失(受范围或干扰影响)。如果任务的受让人被杀死,所有分配给受让人的任务将自动在分配者身上取消。

当收到任务分配时:

           *更新带有消息提供的轨迹的轨迹管理器。
                 如果无法将其与现有轨迹相关联,则创建“本地轨迹”。
              (分配者和受让者之间的轨迹ID不同!)
           *增加轨迹的“锁定计数”
                在分配活动期间防止本地轨迹被清除。
           *添加到接收到的任务列表中。
                将反映在TasksReceivedFor返回的值中。
           *如果受让人之前并不“了解”目标,将为目标创建并启动一个状态机。
           *请求立即评估,等待思考者可用。
                无需等待下一次评估周期。


当收到任务取消时:

           *从接收到的任务列表中清除条目。
                  不再反映在TasksReceivedFor返回的值中。
           *向分配者发送确认。
           *调用“on_task_cancel”脚本(如果定义了)
           *释放与任务关联的任何传感器或武器
                (仅适用于FireAt、StartTracking和StartJamming任务。)
           *减少本地轨迹的锁定计数。
                     如果没有其他分配且轨迹比清除间隔旧,允许清除本地轨迹。
                     如果清除了本地轨迹
                             销毁与轨迹相关联的状态机。
                             调用“on_track_drop”脚本(如果定义了)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

德国航空航天中心(DLR)利用元数据整理归纳Confluence

对于大型企业&#xff0c;在广阔的Confluence空间内找到信息&#xff0c;如同迷失在迷宫中。多年来&#xff0c;德国航空航天中心&#xff08;DLR&#xff09;依赖电子邮件和传统文件管理系统。在知识经理Andr Pliewischkies的领导下&#xff0c;公司引入了Confluence以减少信息…

Layui修改表格分页为英文

Layui修改表格分页为英文 1.前言2.Laypage属性 1.前言 主要记录初次使用Layui没有好好看官方文档踩坑&#xff0c;修改了源码才发现可以自定义 使用的Layui版本2.9.14 2.Laypage属性 Laypage属性中带的有自定义文本的属性 示例代码 table.render({.......page: {skipText: …

[米联客-安路飞龙DR1-FPSOC] SDK入门篇连载-09 PL AXI-GPIO实验

软件版本&#xff1a;Anlogic -TD5.9.1-DR1_ES1.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用安路(Anlogic)FPGA 实验平台&#xff1a;米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

buu做题(9)

[MRCTF2020]PYWebsite 有个二维码 扫了一下啊二维码 function enc(code){hash hex_md5(code);return hash;}function validate(){var code document.getElementById("vcode").value;if (code ! ""){if(hex_md5(code) "0cd4da0223c0b280829dc3ea4…

【C语言报错已解决】“Undefined Reference”

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言&#xff1a; 在开发过程中&#xff0c;我们经常会遇到各种编译错误或运行时错误。其中&#xff0c;“Undefined Referenc…

JavaFX布局-AnchorPane

JavaFX布局-AnchorPane 常用属性padding 实现方式Javafxml 将子节点锚定到容器的边界上&#xff0c;指定子节点相对于 AnchorPane 的四个边界&#xff08;上、下、左、右&#xff09;的距离适合宽高固定的一些表单如果允许最大化&#xff0c;拖动大小&#xff0c;需要自己计算子…

(面试必看!)一些和多线程相关的面试考点

文章导读 引言考点1. CAS 指令&#xff08;重点&#xff09;一、什么是CAS二、CAS 的优点三、CAS 的缺点四、ABA问题五、相关面试题 考点2. 信号量&#xff08;semaphore&#xff09;一、基本概念二、信号量的主要操作三、信号量的应用四、相关面试题 考点3、CountDownLatch 类…

万亿赛道 !二十届三中全会关于大规模设备更新措施深度解读 2024 !

第二十届三中全会审议通过《中共中央关于进一步全面深化改革、推进中国式现代化的决定》&#xff0c;涵盖300多项重要改革举措。总体而言&#xff0c;本次会议在财税体制改革、金融体制改革、统一大市场等方面做出了重点部署。此外&#xff0c;本次新增“高质量发展体制机制”作…

苹果手机丢了如何定位?3个技巧教你解决

在这个移动互联网高度发达的时代&#xff0c;苹果手机已成为我们日常生活中不可或缺的伴侣。然而&#xff0c;手机丢失的风险也随之增加。一旦手机不幸落入他人之手&#xff0c;不仅财产安全堪忧&#xff0c;个人隐私也可能面临泄露风险。那么&#xff0c;手机丢了如何定位呢&a…

【代码随想录训练营第42期 Day7打卡 LeetCode 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

目录 一、做题心得 二、题目及题解 454.四数相加II 题目链接 题解 383. 赎金信 题目链接 题解 15. 三数之和 题目链接 题解 18. 四数之和 题目链接 题解 三、小结 一、做题心得 今天是代码随想录训练营打卡的第七天&#xff0c;做的也是同昨天一样的哈希表部分…

电源防反接电路设计——NMOS管

电源电压接入正确时&#xff0c;由于MOS管中的寄生二极管的存在&#xff0c;从而使得MOS管的Vgs电压为输入电压减去寄生二极管压降电压0.7V&#xff0c;这个电压是大于MOS开关导通的阈值电压&#xff0c;从而使MOS管导通&#xff0c;导通后相当于寄生二极管被MOS管导通短路&…

HVV | .NET 攻防工具库,值得您拥有!

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

Python:随机数、随机选择的应用

step1:导入 导入的random相当于是创建了random文件里的的一个对象 import random random() 产生0~1随机数 randint(a,b)产生a~b的整数 闭区间&#xff0c;可以取到a,b random.choice(touple_name)从touple_name&#xff08;数组、列表..&#xff09;中随机选择元素 import rand…

代码的魔力:Jupyter Notebook从零开始的探索之旅

1. Jupyter Notebook&#xff1a;探索无限的可能 1.1 Jupyter Notebook的简介 Jupyter Notebook是一个开源的Web应用程序&#xff0c;让你能够创建和共享文档&#xff0c;这些文档可以包含实时代码、数学方程、可视化以及叙述性文本。其名字来源于它支持的三种核心编程语言&am…

【管理咨询宝藏147】顶级人力咨询公司创业公司股权与激励模式设计方案

【管理咨询宝藏147】顶级人力咨询公司创业公司股权与激励模式设计方案 【格式】PDF版本 【关键词】薪酬激励、股权设计、股权架构 【核心观点】 - 价值分享型的机制的激励导向非常明确&#xff0c;引导激励对象高度关注财务指标的达成。个别情况下&#xff0c;公司考虑到指标结…

【数据结构】逆波兰计算器的分析和实现

思路分析 从左至右扫描表达式&#xff0c;遇到数字时&#xff0c;将数字压入堆栈&#xff0c;遇到运算符时&#xff0c;弹出栈顶的两个数&#xff0c;用运算符对他们做相应的计算&#xff08;栈顶元素和次顶元素&#xff09;&#xff0c;并将结果入栈&#xff1b;重复上述过程…

day12-文件属性

01.知识点回顾 文件的详细属性 1.inode号->磁盘1.df -i ->inode内存2.df -h ->磁盘内存 2.文件的属性- 普通文件d 目录l 软连接->win的快捷方式c 字节文件->win驱动文件b 硬件/dev/null$? 判断上一条命令执行结果/dev/zero 3.权限rwxrwxrwxr 读w 写x 执行 4.硬…

前端工程化11-webpack常见插件

1、webpack的插件Plugin 刚才我们也讲解了下&#xff0c;我们对webpack路径的一个处理&#xff0c;处理的话包括别名的配置&#xff0c;模块是如何找到并加载的&#xff0c;总的来说到现在webpack这个配置到现在来说还是相当的麻烦的&#xff0c;但是目前来说我们讲的这些东西…

重生奇迹MU自由选择个性大师之路

自由选择大师技能 每一个大师职业都拥有三条大师技能树&#xff0c;每一条大师技能树对职业加强的侧重点各不相同。玩家可以根据自己喜欢专一选择&#xff0c;一条路走到底&#xff1b;当然也可以同时兼修两条或者三条技能树&#xff0c;做到雨露均沾。每一种选择都没有绝对的…

Python 环境管理大师:Virtualenv

文章目录 **Python 环境管理大师&#xff1a;Virtualenv****第一部分&#xff1a;背景介绍****第二部分&#xff1a;Virtualenv 是什么&#xff1f;****第三部分&#xff1a;如何安装 Virtualenv&#xff1f;****第四部分&#xff1a;Virtualenv 基本使用方法****第五部分&…