仿真对抗平台
软件架构
软件界面
模块简介:
表现层 (UI)
表现层分为用户交互(UIDeigner)和动画交互(ViewDesigner)两个模块。
UIDesigner 对应界面中用户可以输入(初始化时)和显示数据(运行时)的部分。 与后端的交互中涉及Read和Write。 ViewDesigner 对应界面中通过OpenGL渲染动画的部分。 仅从后端读取数据。
业务逻辑层 (BLL)
TsController 因为仿真系统是时序控制的离散系统,Controller主要负责模块间的调用。
比如定时控制基于MFC的OnTimer消息处理实现,OnTimer中调用TsController的Run,依次实现 宏观运动模块的变化,探测模块的变化,算法模块的分析,并对结果进行渲染反馈。
宏观模块 根据仿真系统特点,系统包含飞机,探测器,干扰和环境四个基本的运行模块。 Airplane Module Detector Module Decoy Module Environment Module
仿真对抗过程是动态过程,每个模块的空间位置,自身属性(飞机的辐射,干扰的重量)都会 随时间变化,而宏观信息是探测器微观工作过程的基础。
微观模块 SystemPackage 点源探测工作过程仿真。系统运行的核心。点源探测实际是物理器件的工作过程,而我们需要 做的就是把物理过程(主要指光学器件的运行和采样)通过软件模拟。 鉴于研究背景,此部分不做具体说明。
算法模块 SystemRecognition 对于探测器产生的信号,系统需要进行决策(目标判断),并根据决策结果调整 自身的运动行为(光轴朝向)
算法模块的输出会通过比例导引影响探测器的运行,因此又对宏观模块产生影响。 此处主要讲跟踪算法,对于干扰对抗的策略,本平台更多的是提供数据的产生源,对于 算法只做简单的分析 (如何投干扰能规避追踪)
数据层 (DAL)
指令文件模块
1. 初始化设置参数 2. 对抗策略文件 均以XML文件形式保存 (另外一个C#的简单软件允许用户做XmlWriter,更推荐手写配置)
分析数据模块
保存仿真完整过程中的相关数据。 1. 方便回放 2. 作为对抗策略的分析基础 (风速风向朝向,干扰策略,是否成功) 3. 作为跟踪策略不足的分析基础 (在指标模块更多),Python绘制跟踪角度等指标
指标模块
主要保存微观变化指标。
交互流程操作
1. 初始化:
1.1 从DB读取配置文件,加载到宏观模块中
1.2 读取数据加载到界面显示
1.3 加载OpenGL绘制部分的初始设置和资源
2. 应用修改
2.1 读取界面显示数据,修改宏观模块
3. 启动 / 暂停
(暂停 是启动的简单控制)
4. 停止 / 导出数据
默认的停止不导出数据(实际上是可以做在一起的)
重新初始化
软件不足
缺少unit test级别的测试