ThreatSourceLibaray/docs/articles/threat-source-spec.md

2423 lines
65 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 威胁源仿真系统技术说明书
**版本1.1.22**
## 1. 概述
### 1.1 文档目的
本文档旨在详细描述威胁源仿真系统的设计实现,包括:
1. 各型导弹的工作原理和关键算法
2. 系统组件的交互机制和接口定义
3. 数据管理系统和配置文件格式
4. 关键参数的配置和验证方法
5. 测试用例和验证流程
本文档可用于:
- 系统设计和实现的参考依据
- 测试验证的指导文档
- 系统维护和升级的技术支持
- 新功能开发的基础文档
### 1.2 适用范围
本文档适用于以下人员和场景:
1. 开发人员
- 系统功能实现
- 接口开发和维护
- 算法优化和改进
- 新功能扩展开发
2. 测试人员
- 功能测试设计
- 性能测试验证
- 系统集成测试
- 回归测试执行
3. 维护人员
- 系统问题诊断
- 参数配置调整
- 性能监控分析
- 系统升级维护
4. 使用场景
- 导弹系统仿真
- 制导算法验证
- 性能指标评估
- 战术效能分析
### 1.3 系统功能
1. 导弹类型支持
- 激光半主动制导导弹
- 激光驾束制导导弹
- 红外指令制导导弹
- 红外成像末制导导弹
- 毫米波末制导导弹
- 末敏弹
- 复合制导导弹(多模制导)
2. 核心功能
- 智能数据管理系统
- TOML配置文件支持
- 运动学仿真基于KinematicState
- 制导控制仿真
- 目标交互仿真
- 传感器仿真
- 事件系统
- 外部仿真集成
3. 数据管理功能
- 智能路径解析
- 多设备类型支持
- 配置文件热加载
- 数据验证和错误处理
4. 验证功能
- 单元测试验证
- 系统集成验证
- 性能指标验证
- 数据分析验证
5. 新增功能1.1.22版本)
- SwerlingRCS回波模型
- 升力加速度计算系统
- 命中概率计算
- 运动状态随机噪声
- 统一状态信息管理ElementStatusInfo
### 1.4 参考文献
1. 导弹技术参考
- 《导弹制导与控制》,科学出版社
- 《现代制导技术》,国防工业出版社
- 《导弹动力学与控制》,航空工业出版社
2. 传感器技术参考
- 《红外成像技术》,科学出版社
- 《激光制导原理》,国防工业出版社
- 《毫米波雷达技术》,电子工业出版社
3. 仿真技术参考
- 《系统仿真理论与实践》,科学出版社
- 《飞行器建模与仿真》,航空工业出版社
- 《实时仿真系统》,国防工业出版社
4. 软件工程参考
- 《软件工程:实践者的研究方法》
- 《面向对象分析与设计》
- 《设计模式:可复用面向对象软件的基础》
## 2. 系统架构
### 2.1 总体架构
#### 2.1.1 核心组件
1. **数据管理系统 (ThreatSourceDataManager)**
- 智能路径解析:基于程序集位置自动查找数据目录
- TOML配置文件加载支持多种设备类型的配置
- 数据缓存管理:内存中缓存已加载的配置数据
- 错误处理和日志:详细的加载过程跟踪和错误报告
2. **仿真管理系统 (SimulationManager)**
- 仿真状态控制Running/Paused/Stopped状态管理
- 时间同步控制:支持固定时间步长和外部时间同步
- 实体更新调度:线程安全的实体状态更新
- 天气系统集成:支持动态天气条件变化
- 外部仿真适配支持与Unity、UE等外部引擎集成
3. **事件系统**
- 发布订阅模式:类型安全的事件处理机制
- 事件分发处理:高效的事件路由和分发
- 事件队列管理:异步事件处理支持
- 外部事件集成:支持与外部系统的事件交换
4. **实体管理系统**
- 实体注册与注销:线程安全的实体生命周期管理
- 实体状态维护基于KinematicState的运动学状态管理
- 实体查询服务:高效的实体检索和类型过滤
- 碰撞检测:实体间的交互和碰撞处理
#### 2.1.2 导弹组件架构
1. **基础导弹类 (BaseMissile)**
- 继承自SimulationElement基类
- KinematicState运动学模型位置、速度、朝向管理
- 飞行阶段管理Launch/Cruise/TerminalGuidance/Explode/SelfDestruct
- 制导系统引用:统一的制导系统管理
- 升力加速度系统LiftAcceleration计算和控制
- 事件处理机制:制导事件的接收和响应
- 自毁控制:基于时间、距离、高度的安全机制
2. **制导系统**
- 激光半主动制导 (LaserSemiActiveGuidanceSystem)
- 激光驾束制导 (LaserBeamRiderGuidanceSystem)
- 红外指令制导 (InfraredCommandGuidanceSystem)
- 红外成像末制导 (InfraredImagingTerminalGuidanceSystem)
- 毫米波末制导 (MillimeterWaveTerminalGuidanceSystem)
- 末敏子弹制导 (TerminalSensitiveSubmunitionGuidanceSystem)
- 复合制导 (CompositeGuidanceSystem)
3. **传感器系统**
- 激光探测器:四象限探测器、激光功率计算
- 红外探测器:热成像、目标识别、信噪比计算
- 毫米波雷达目标探测、距离测量、抗干扰、SwerlingRCS模型
- 高度计:精确高度测量、地形跟踪
- 多传感器融合:数据融合算法、目标确认
#### 2.1.3 目标组件架构
1. **基础目标类 (BaseTarget)**
- 继承自SimulationElement基类
- 运动学模型:位置、速度、朝向的动态更新
- 状态管理:生命值、伤害系统、销毁机制
- 事件处理:目标辐射事件、命中事件的处理
2. **目标特征系统**
- 红外辐射特征:温度分布模式、辐射强度计算
- 雷达散射特征RCS模式、角度依赖性、SwerlingRCS模型
- 激光反射特征:反射系数、有效反射面积
- 毫米波特征:散射截面、频率响应
### 2.2 坐标系统
#### 2.2.1 坐标定义
1. 世界坐标系(右手系)
- X轴指向东方
- Y轴指向上方
- Z轴指向北方
- 原点:仿真场景中心
2. 导弹本体坐标系
- X轴指向导弹右翼
- Y轴指向导弹上方
- Z轴指向导弹后方**前向为-Z轴**
- 原点:导弹质心
#### 2.2.2 朝向系统
1. Orientation欧拉角定义
- 偏航角Yaw绕Y轴旋转范围[-π, π]
- 俯仰角Pitch绕X轴旋转范围[-π/2, π/2]
- 滚转角Roll绕Z轴旋转范围[-π, π]
2. 前向向量计算
- ToVector()方法返回-Z轴方向的单位向量
- 默认朝向(0,0,0)对应世界坐标系的(0,0,-1)
- 使用右手坐标系和逆时针旋转约定
#### 2.2.3 运动学状态管理
1. KinematicState类
- Position三维位置向量
- Orientation欧拉角朝向
- Velocity三维速度向量
- Speed标量速度自动与Velocity同步
2. 状态同步机制
- Speed设置时自动更新Velocity方向
- Velocity设置时自动更新Speed大小
- Orientation与速度方向的智能关联
#### 2.2.4 单位说明
1. 空间单位
- 距离m
- 速度:米/秒m/s
- 加速度:米/秒²m/s²
- 角度弧度rad
2. 时间单位
- 仿真时间s
- 事件时间戳微秒us
- 更新周期s
### 2.3 数据管理架构
#### 2.3.1 智能路径解析系统
1. **路径解析策略**
系统采用两级路径解析策略:
- 优先级1DLL上级目录下的data文件夹
- 获取当前程序集的物理位置
- 解析DLL所在目录
- 获取上级目录
- 组合形成数据路径
- 优先级2相对路径回退
- 当自动解析失败时使用相对路径"data"
- 保持向后兼容性
2. **部署结构支持**
标准部署结构如下:
- 应用程序根目录包含主程序
- lib子目录存放DLL库文件
- data子目录存放配置数据自动发现
- data目录下按设备类型分类存放TOML配置文件
#### 2.3.2 TOML配置文件系统
1. **配置文件结构**
- 使用Tomlyn库进行TOML解析
- 支持嵌套配置结构
- 类型安全的配置映射
- 详细的错误报告和验证
2. **设备类型支持**
- 导弹配置:包含制导系统、飞行参数、武器参数
- 指示器配置:激光指示器、红外测角仪等
- 传感器配置:告警器、探测器等
- 设备配置:目标设备、平台等
- 天气配置:天气条件、环境参数
- 干扰机配置:各类干扰设备
3. **复合制导配置**
复合制导系统支持多个制导组件的配置:
- 每个组件包含名称、类型、激活触发器
- 支持基于时间、距离、事件的激活条件
- 可配置最大获取时间和稳定制导时间
- 支持失效后的继续链条选项
### 2.4 状态信息管理架构
#### 2.4.1 ElementStatusInfo统一系统
1. **统一状态信息类**
ElementStatusInfo提供标准化的状态信息管理
- Id实体唯一标识符
- ElementType实体类型名称
- KState运动学状态信息
- IsActive活动状态标志
- Timestamp状态时间戳
- ExtendedProperties扩展属性字典
2. **GetStatusInfo方法**
所有仿真实体统一实现GetStatusInfo方法
- 基类提供基础状态信息
- 子类添加特定扩展属性
- 支持嵌套状态信息(如制导系统状态)
- 自动格式化输出
3. **状态信息层次结构**
- SimulationElement基础状态信息
- BaseMissile导弹特有状态飞行时间、阶段、制导状态
- BaseGuidanceSystem制导系统状态制导加速度、干扰状态
- BaseEquipment设备状态生命值、属性信息
- BaseSensor传感器状态干扰状态、传感器数据
### 2.5 升力系统架构
#### 2.5.1 LiftModel升力模型
1. **升力计算原理**
基于俯仰角(攻角)计算升力加速度:
- 有效俯仰角范围:-5°到15°
- 升力平衡点5°俯仰角
- 升力系数1.0 m/s²/度
2. **升力加速度计算**
升力加速度计算公式:
- combined_vertical_acceleration = (pitch - 5°) × 1.0
- lift_acceleration = combined_vertical_acceleration + g
- 返回垂直方向的升力向量
### 2.6 仿真管理架构
#### 2.6.1 仿真状态管理
1. **状态定义**
仿真系统定义三种基本状态:
- Stopped仿真停止状态
- Running仿真运行状态
- Paused仿真暂停状态
2. **状态转换控制**
- 启动仿真:从停止状态转为运行状态,需指定时间步长
- 暂停仿真:从运行状态转为暂停状态
- 恢复仿真:从暂停状态转为运行状态
- 停止仿真:转为停止状态并重置仿真时间
#### 2.6.2 时间同步机制
1. **内部时间管理**
- 固定时间步长:支持恒定的仿真步长
- 累积时间跟踪CurrentTime属性记录仿真时间
- 实体同步更新:所有实体使用统一的时间步长
2. **外部时间同步**
- 支持外部驱动的时间同步
- 时间同步事件通知时间变化
- 适配器时间同步通知外部仿真系统时间变化
#### 2.6.3 天气系统集成
1. **天气模型**
天气系统包含以下参数:
- 天气类型:晴朗、多云、雨天等
- 温度:摄氏度
- 湿度:百分比
- 气压:百帕
- 风速:米每秒
- 风向:度数
- 能见度:公里
2. **天气影响**
- 激光传播:大气透过率影响
- 红外探测:温度和湿度影响
- 毫米波传播:降雨衰减效应
- 目标特征:环境温度对红外辐射的影响
- 导弹运动:风速对轨迹的影响
### 2.7 事件系统架构
#### 2.7.1 事件类型体系
1. **基础事件类**
所有仿真事件继承自基础事件类,包含:
- 发送者ID标识事件来源实体
- 时间戳:事件发生的时间
2. **导弹相关事件**
- 导弹发射事件:导弹发射时触发
- 导弹爆炸事件:导弹爆炸时触发
- 飞行阶段变化事件:导弹阶段转换时触发
- 制导状态变化事件:制导状态改变时触发
3. **制导相关事件**
- 激光照射事件:激光指示器照射目标
- 激光波束事件:激光驾束仪发射波束
- 红外制导指令事件:红外测角仪发送制导指令
- 导弹红外信号事件:导弹发射红外信号
4. **目标相关事件**
- 目标命中事件:导弹命中目标
- 目标摧毁事件:目标被摧毁
- 目标辐射特征事件:目标发射辐射信号
5. **系统事件**
- 实体销毁事件:仿真实体被销毁
- 天气变化事件:天气条件发生变化
- 时间同步事件:仿真时间同步
#### 2.7.2 事件处理机制
1. **发布订阅模式**
事件系统采用类型安全的发布订阅模式:
- 事件订阅:通过泛型方法订阅特定类型事件
- 事件发布:发布事件到所有订阅者
- 自动类型匹配:基于事件类型自动路由到对应处理器
2. **类型安全处理**
- 泛型事件处理器:确保类型安全
- 自动类型分发:基于事件类型的自动路由
- 异常隔离:单个处理器异常不影响其他处理器
3. **外部系统集成**
- 双向事件流:支持向外部系统发布和接收事件
- 适配器模式通过ISimulationAdapter接口集成
- 事件转换:自动处理内外部事件格式转换
### 2.8 实体管理架构
#### 2.8.1 实体基类设计
1. **SimulationElement基类**
所有仿真实体继承自SimulationElement基类提供
- 唯一标识符实体ID
- 运动学状态KinematicState对象
- 活动状态IsActive标志
- 仿真管理器引用:用于事件发布和实体查询
- 抽象更新方法:子类实现具体更新逻辑
- 生命周期方法:激活和停用方法
2. **KinematicState运动学状态**
运动学状态包含:
- 位置:三维空间坐标
- 速度:三维速度向量
- 朝向:三维朝向向量
- 角速度:三维角速度向量
#### 2.8.2 实体生命周期管理
1. **注册机制**
- 线程安全的实体注册
- 重复ID检查防止ID冲突
- 类型验证:确保实体类型正确
2. **查询机制**
- 按ID查询实体根据唯一标识符查找
- 按类型查询实体:获取特定类型的所有实体
- 获取所有实体:返回系统中的所有实体
3. **注销机制**
- 安全移除实体:从系统中移除指定实体
- 级联清理:清理相关的事件订阅和引用
- 资源释放:确保内存和资源正确释放
#### 2.8.3 线程安全机制
1. **锁策略**
实体管理使用锁机制确保线程安全:
- 注册操作使用互斥锁保护
- 查询操作使用只读锁优化性能
- 注销操作使用写锁确保一致性
2. **并发访问**
- 读写分离:查询操作使用只读集合
- 原子操作:关键状态变更的原子性保证
- 死锁避免:合理的锁顺序和超时机制
### 2.9 数据流架构
#### 2.9.1 配置数据流
配置数据流程包括以下步骤:
1. TOML配置文件作为数据源
2. ThreatSourceDataManager负责数据管理
3. 智能路径解析定位配置文件
4. 文件加载和TOML解析
5. 数据验证确保配置正确性
6. 内存缓存提高访问效率
7. 实体创建使用缓存的配置数据
#### 2.9.2 仿真数据流
仿真数据流程包括:
1. 仿真管理器控制整体流程
2. 时间同步确保一致性
3. 实体更新处理状态变化
4. 事件处理响应系统事件
5. 状态同步维护数据一致性
6. 外部系统集成支持第三方平台
#### 2.9.3 事件数据流
事件数据流程包括:
1. 事件发布者产生事件
2. 事件系统接收和管理事件
3. 类型分发根据事件类型路由
4. 处理器调用执行具体处理逻辑
5. 外部适配器处理外部系统集成
6. 外部系统接收和响应事件
### 2.10 接口定义
#### 2.10.1 核心接口
1. **ISimulationManager接口**
- 仿真控制:启动、暂停、恢复、停止仿真
- 事件管理:发布、订阅、取消订阅事件
- 实体管理:注册、注销、查询实体
- 外部集成:设置适配器、处理外部事件
2. **ISimulationAdapter接口**
- 实体查询:获取实体和实体状态
- 事件交换:向外部发布事件和接收外部事件
- 时间同步:同步仿真时间
- 环境设置:设置实体环境数据
3. **ISimulationElement接口**
- 状态管理:更新状态、获取状态信息
- 生命周期:激活和停用实体
- 属性访问ID、运动学状态、活动状态
#### 2.10.2 数据接口
1. **配置数据接口**
- 获取导弹配置:根据型号获取导弹配置数据
- 获取指示器配置:根据型号获取指示器配置数据
- 获取传感器配置:根据型号获取传感器配置数据
- 获取设备配置:根据型号获取设备配置数据
2. **查询接口**
- 获取可用导弹列表:返回所有可用的导弹型号
- 获取可用指示器列表:返回所有可用的指示器型号
- 获取可用传感器列表:返回所有可用的传感器型号
## 3. 数据管理系统
### 3.1 ThreatSourceDataManager
#### 3.1.1 核心功能
威胁源数据管理器是系统的核心数据管理组件,负责:
1. **智能路径解析**
- 基于程序集位置自动查找数据目录
- 支持DLL上级目录的data文件夹自动发现
- 提供相对路径回退机制确保兼容性
- 详细的路径解析日志和错误报告
2. **配置文件加载**
- 支持TOML格式配置文件
- 递归搜索子目录中的配置文件
- 按文件名自动识别设备型号
- 类型安全的配置数据映射
3. **数据缓存管理**
- 内存中缓存已加载的配置数据
- 按设备类型分类存储
- 高效的数据检索和访问
- 支持配置数据的热更新
4. **错误处理和验证**
- 详细的加载过程跟踪
- 配置文件格式验证
- 缺失字段检查和默认值处理
- 完整的错误日志和异常处理
#### 3.1.2 支持的设备类型
1. **导弹配置 (MissileData)**
- 基本属性:速度、加速度、飞行时间等
- 制导系统配置:各种制导方式的参数
- 武器参数:爆炸半径、命中概率等
- 复合制导:多制导系统的组合配置
- 升力参数:巡航攻角、制导下视角等
2. **指示器配置 (IndicatorData)**
- 激光指示器:功率、波长、发散角等
- 激光驾束仪:波束参数、控制场直径等
- 红外测角仪:跟踪距离、视场角等
3. **传感器配置 (SensorData)**
- 告警器:探测阈值、响应时间等
- 探测器:灵敏度、工作频段等
- 雷达:功率、频率、天线参数等
4. **设备配置 (EquipmentData)**
- 目标设备RCS模式、热特征等
- 平台设备:运动参数、载荷能力等
- 环境设备:地形、建筑物等
5. **天气配置 (WeatherData)**
- 天气类型:晴朗、多云、雨天等
- 环境参数:温度、湿度、风速等
- 大气条件:能见度、气压等
6. **干扰机配置 (JammerData)**
- 激光干扰机:干扰功率、波长等
- 红外干扰机:干扰强度、频谱等
- 毫米波干扰机:干扰带宽、功率等
#### 3.1.3 智能路径解析实现
1. **GetDataPath()方法**
智能路径解析的核心实现:
```
优先级1DLL上级目录/data
- 获取Assembly.GetExecutingAssembly().Location
- 解析DLL所在目录的父目录
- 组合形成data路径并验证存在性
优先级2相对路径回退
- 使用FALLBACK_DATA_PATH = "data"
- 保持向后兼容性
```
2. **路径解析日志**
详细的调试信息输出:
- DLL位置信息
- 解析的data目录路径
- 目录存在性检查结果
- 回退路径使用情况
#### 3.1.4 配置文件结构
1. **基本结构**
- Type字段定义设备类型
- Name字段多语言名称支持
- Properties字段设备属性配置
- 专用配置字段:特定制导系统的配置
2. **复合制导配置**
- GuidanceSuite数组多个制导组件
- 每个组件包含:名称、类型、激活条件
- 支持串行和并行制导模式
- 可配置制导切换逻辑
3. **配置验证**
- 必需字段检查
- 数值范围验证
- 类型匹配验证
- 依赖关系检查
### 3.2 配置文件格式
#### 3.2.1 TOML格式优势
1. **可读性强**
- 类似INI文件的简洁语法
- 支持注释和文档化
- 层次化的配置结构
- 易于人工编辑和维护
2. **类型安全**
- 强类型数据支持
- 自动类型转换
- 数组和表格支持
- 嵌套结构支持
3. **工具支持**
- 使用Tomlyn库进行解析
- 完整的错误报告
- 性能优化的解析器
- .NET生态系统集成
#### 3.2.2 配置文件组织
1. **目录结构**
- 按设备类型分目录存放
- 支持子目录进一步分类
- 文件名即为设备型号
- 统一的.toml文件扩展名
2. **命名规范**
- 设备型号作为文件名
- 使用下划线分隔符
- 版本号后缀支持
- 描述性的目录名称
3. **版本管理**
- 配置文件版本控制
- 向后兼容性保证
- 升级路径规划
- 变更日志维护
### 3.3 数据加载流程
#### 3.3.1 初始化流程
1. **路径解析**
- 获取程序集位置
- 计算数据目录路径
- 验证目录存在性
- 记录解析结果
2. **目录扫描**
- 递归扫描配置目录
- 识别TOML配置文件
- 按设备类型分类
- 构建文件清单
3. **文件加载**
- 逐个加载配置文件
- TOML格式解析
- 数据类型转换
- 错误处理和记录
4. **数据验证**
- 配置完整性检查
- 数值范围验证
- 依赖关系验证
- 默认值填充
#### 3.3.2 缓存管理
1. **内存缓存**
- 按设备类型分类存储
- 使用字典结构快速查找
- 支持并发访问
- 内存使用优化
2. **缓存策略**
- 一次性加载所有配置
- 延迟加载特定配置
- 缓存失效和更新
- 内存压力管理
3. **数据访问**
- 类型安全的访问接口
- 异常处理和错误报告
- 性能监控和优化
- 并发访问控制
#### 3.3.3 复合制导数据处理
1. **GuidanceSuite后处理**
复合制导配置的特殊处理:
- 遍历GuidanceSuite中的每个组件
- 根据GuidanceSystemType匹配顶层配置
- 将SpecificConfig指向对应的配置对象
- 支持的制导类型映射:
- "millimeterwave" → MillimeterWaveGuidanceConfig
- "infraredimagingterminalguidance" → InfraredImagingGuidanceConfig
- "lasersemiactiveguidance" → LaserSemiActiveGuidanceConfig
- "laserbeamriderguidance" → LaserBeamRiderGuidanceConfig
- "infraredcommandguidance" → InfraredCommandGuidanceConfig
2. **配置验证和错误处理**
- 检查SpecificConfig是否成功关联
- 验证顶层配置的存在性
- 记录详细的调试信息
- 处理配置缺失的情况
## 4. 导弹类型及特性
### 4.1 导弹基类架构
#### 4.1.1 BaseMissile基类
1. **核心属性**
- 继承自SimulationElement基类
- KinematicState运动学状态管理
- 飞行阶段状态机Launch/Cruise/TerminalGuidance/Explode/SelfDestruct
- 制导系统引用:统一的制导系统管理接口
- 升力加速度系统:基于俯仰角的升力计算
- 事件处理机制:制导事件的接收和响应
2. **飞行阶段管理**
- Launch阶段发射初期的弹道飞行
- Cruise阶段中段巡航飞行
- TerminalGuidance阶段末段制导飞行
- Explode阶段爆炸状态
- SelfDestruct阶段自毁状态
3. **制导系统集成**
- 制导系统引用管理
- 制导加速度计算和应用
- 制导事件的处理和响应
- 多制导系统的切换和管理
4. **升力系统集成**
- 基于俯仰角的升力计算
- 巡航攻角和制导下视角配置
- 升力加速度与制导加速度的合成
- 飞行阶段相关的升力参数调整
#### 4.1.2 运动学模型
1. **KinematicState状态管理**
- Position三维位置向量
- Orientation欧拉角朝向前向为-Z轴
- Velocity三维速度向量
- Speed标量速度与Velocity自动同步
2. **加速度合成**
- GuidanceAcceleration制导系统产生的加速度
- ThrustAcceleration推力加速度
- LiftAcceleration升力加速度
- DragAcceleration空气阻力加速度
- GravityAcceleration重力加速度
3. **运动状态随机噪声**
- 根据飞行阶段设置不同的噪声系数
- Launch阶段较大的初始噪声
- Cruise阶段中等的巡航噪声
- TerminalGuidance阶段较小的制导噪声
#### 4.1.3 生命周期管理
1. **自毁控制机制**
- 基于飞行时间的自毁
- 基于飞行距离的自毁
- 基于高度的安全自毁
- 基于制导失效的自毁
2. **命中检测**
- 目标距离检测
- 爆炸半径计算
- 命中概率计算
- 目标伤害评估
3. **状态信息管理**
- ElementStatusInfo统一状态信息
- 飞行时间、阶段、制导状态等扩展属性
- GetStatusInfo方法的统一实现
- 嵌套制导系统状态信息
### 4.2 激光半主动制导导弹
#### 4.2.1 工作原理
激光半主动制导导弹通过接收目标反射的激光能量进行制导:
1. **激光照射阶段**
- 激光指示器持续照射目标
- 目标表面反射激光能量
- 导弹上的激光探测器接收反射信号
- 四象限探测器确定目标方位
2. **制导控制阶段**
- 计算目标相对于导弹轴线的角度偏差
- 根据偏差角度生成制导指令
- 比例导引法计算制导加速度
- 控制导弹飞向目标
3. **抗干扰能力**
- 激光功率阈值检测
- 信号质量评估
- 干扰识别和抑制
- 制导精度保持
#### 4.2.2 关键算法
1. **四象限探测器算法**
- 四个象限的激光功率分布计算
- 基于距离平方反比定律的功率衰减
- 目标反射系数和有效反射面积
- 大气透过率对激光传播的影响
2. **比例导引算法**
- 视线角速度计算
- 导航比例系数设置
- 制导加速度矢量计算
- 制导指令的平滑处理
3. **干扰处理算法**
- 激光干扰功率计算
- 信噪比评估
- 干扰状态判断
- 制导精度降级处理
#### 4.2.3 技术特点
1. **制导精度**
- 高精度的目标跟踪能力
- 亚米级的命中精度
- 全天候作战能力
- 抗电子干扰能力
2. **作战灵活性**
- 发射后锁定能力
- 多目标攻击能力
- 复杂环境适应性
- 快速反应能力
3. **技术限制**
- 需要持续激光照射
- 受天气条件影响
- 激光功率需求较高
- 易受激光干扰影响
### 4.3 激光驾束制导导弹
#### 4.3.1 工作原理
激光驾束制导导弹通过跟踪激光波束进行制导:
1. **波束跟踪阶段**
- 激光驾束仪发射编码激光波束
- 导弹尾部的激光接收器接收波束信号
- 解码波束中的制导指令信息
- 计算导弹相对于波束轴线的偏差
2. **制导控制阶段**
- 根据波束偏差计算制导指令
- 控制导弹保持在波束中心
- 跟随波束指向目标飞行
- 实现精确的目标攻击
3. **波束编码机制**
- 时间编码的制导指令
- 空间编码的位置信息
- 频率编码的控制信号
- 抗干扰的编码算法
#### 4.3.2 关键算法
1. **波束跟踪算法**
- 激光功率分布检测
- 波束中心位置计算
- 导弹偏差角度计算
- 制导指令生成
2. **编码解码算法**
- 时间序列信号处理
- 数字滤波和降噪
- 指令信息提取
- 错误检测和纠正
3. **控制场算法**
- 控制场直径计算
- 有效制导区域确定
- 边界条件处理
- 制导精度评估
#### 4.3.3 技术特点
1. **制导优势**
- 高精度的波束跟踪
- 强抗干扰能力
- 全程制导控制
- 多目标攻击能力
2. **系统特点**
- 需要专用激光驾束仪
- 波束功率要求较高
- 制导距离受限
- 对大气条件敏感
### 4.4 红外指令制导导弹
#### 4.4.1 工作原理
红外指令制导导弹通过接收红外制导指令进行制导:
1. **目标跟踪阶段**
- 红外测角仪跟踪目标的红外辐射
- 计算目标的角度位置
- 预测目标的运动轨迹
- 生成拦截制导指令
2. **指令传输阶段**
- 红外测角仪发射编码红外信号
- 导弹接收红外制导指令
- 解码指令中的制导信息
- 执行制导机动动作
3. **制导控制阶段**
- 根据制导指令调整飞行方向
- 实现对目标的精确拦截
- 保持与测角仪的通信链路
- 完成目标攻击任务
#### 4.4.2 关键算法
1. **目标跟踪算法**
- 红外图像处理
- 目标识别和分类
- 运动轨迹预测
- 拦截点计算
2. **指令编码算法**
- 制导指令数字化
- 红外信号调制
- 抗干扰编码
- 传输错误检测
3. **制导控制算法**
- 指令解码处理
- 制导加速度计算
- 飞行轨迹修正
- 目标拦截控制
#### 4.4.3 技术特点
1. **制导能力**
- 远距离制导能力
- 多目标攻击能力
- 复杂环境适应性
- 高精度拦截能力
2. **系统要求**
- 需要红外测角仪支持
- 红外通信链路要求
- 目标红外特征依赖
- 大气透过率影响
### 4.5 红外成像末制导导弹
#### 4.5.1 工作原理
红外成像末制导导弹在末段使用红外成像传感器进行自主制导:
1. **目标搜索阶段**
- 红外成像传感器扫描搜索区域
- 检测目标的红外辐射特征
- 识别和确认目标类型
- 锁定目标进入跟踪状态
2. **目标跟踪阶段**
- 持续跟踪目标的红外图像
- 计算目标的角度位置和距离
- 预测目标的运动状态
- 生成制导控制指令
3. **精确制导阶段**
- 根据目标位置计算制导加速度
- 控制导弹精确飞向目标
- 实现高精度的目标攻击
- 完成末段制导任务
#### 4.5.2 关键算法
1. **图像处理算法**
- 红外图像增强
- 目标检测和分割
- 特征提取和匹配
- 目标识别和分类
2. **目标跟踪算法**
- 卡尔曼滤波跟踪
- 粒子滤波跟踪
- 多假设跟踪
- 目标状态估计
3. **制导控制算法**
- 比例导引法
- 最优制导法
- 预测制导法
- 自适应制导法
#### 4.5.3 技术特点
1. **制导优势**
- 自主制导能力
- 高精度攻击能力
- 抗干扰能力强
- 全天候作战能力
2. **技术挑战**
- 图像处理复杂度高
- 计算资源需求大
- 目标特征依赖性
- 环境适应性要求
### 4.6 毫米波末制导导弹
#### 4.6.1 工作原理
毫米波末制导导弹使用毫米波雷达进行末段制导:
1. **目标探测阶段**
- 毫米波雷达发射电磁波
- 接收目标反射的回波信号
- 计算目标的距离和方位
- 识别和确认目标类型
2. **目标跟踪阶段**
- 持续跟踪目标的雷达回波
- 测量目标的距离、方位和速度
- 预测目标的运动轨迹
- 生成制导控制指令
3. **精确制导阶段**
- 根据雷达测量数据计算制导加速度
- 控制导弹精确飞向目标
- 实现高精度的目标攻击
- 完成末段制导任务
#### 4.6.2 关键算法
1. **雷达信号处理算法**
- 脉冲压缩处理
- 多普勒频移检测
- 距离和速度测量
- 信号检测和估计
2. **目标检测算法**
- 恒虚警率检测
- 目标航迹关联
- 多目标跟踪
- 目标识别分类
3. **SwerlingRCS模型**
- Swerling I型慢起伏目标
- Swerling II型快起伏目标
- Swerling III型慢起伏目标改进
- Swerling IV型快起伏目标改进
- RCS统计特性建模
- 检测概率计算
4. **制导控制算法**
- 比例导引法
- 增强比例导引法
- 最优制导法
- 自适应制导法
#### 4.6.3 技术特点
1. **制导优势**
- 全天候作战能力
- 强穿透能力
- 高精度测距能力
- 抗光电干扰能力
2. **技术特点**
- 毫米波频段特性
- 高分辨率成像能力
- 多目标处理能力
- 复杂环境适应性
3. **环境影响**
- 降雨衰减效应
- 大气吸收影响
- 地面杂波干扰
- 多径传播效应
### 4.7 末敏弹
#### 4.7.1 工作原理
末敏弹是一种特殊的智能弹药,具有自主目标搜索和攻击能力:
1. **抛撒阶段**
- 母弹在预定高度抛撒子弹
- 子弹展开降落伞减速下降
- 启动传感器系统进行目标搜索
- 进入自主搜索攻击模式
2. **目标搜索阶段**
- 红外传感器扫描地面目标
- 毫米波雷达探测金属目标
- 多传感器融合确认目标类型
- 选择最优攻击目标
3. **精确攻击阶段**
- 计算目标的精确位置
- 控制子弹飞向目标
- 在最佳位置引爆战斗部
- 实现对目标的有效毁伤
#### 4.7.2 关键算法
1. **目标搜索算法**
- 螺旋扫描模式
- 目标检测算法
- 目标分类识别
- 威胁等级评估
2. **多传感器融合算法**
- 红外和毫米波数据融合
- 目标特征匹配
- 置信度计算
- 决策融合算法
3. **攻击控制算法**
- 攻击时机选择
- 攻击角度优化
- 战斗部引爆控制
- 毁伤效果评估
#### 4.7.3 技术特点
1. **智能化特点**
- 自主目标识别
- 智能攻击决策
- 多目标处理能力
- 复杂环境适应性
2. **作战优势**
- 大面积搜索能力
- 高精度攻击能力
- 多目标同时攻击
- 强生存能力
### 4.8 复合制导导弹
#### 4.8.1 工作原理
复合制导导弹集成多种制导方式,提供更强的作战能力:
1. **多模制导系统**
- 毫米波雷达制导
- 红外成像制导
- 激光半主动制导
- 惯性导航制导
2. **制导模式切换**
- 基于飞行阶段的自动切换
- 基于环境条件的智能切换
- 基于目标特性的优化切换
- 基于干扰情况的应急切换
3. **数据融合处理**
- 多传感器数据融合
- 制导信息综合处理
- 目标状态估计优化
- 制导精度提升
#### 4.8.2 关键算法
1. **制导模式选择算法**
- 环境条件评估
- 目标特性分析
- 制导性能预测
- 最优模式选择
2. **数据融合算法**
- 卡尔曼滤波融合
- 贝叶斯融合
- 证据理论融合
- 神经网络融合
3. **制导切换算法**
- 切换条件判断
- 切换时机选择
- 状态平滑过渡
- 制导连续性保证
#### 4.8.3 技术特点
1. **制导优势**
- 多重制导保险
- 强抗干扰能力
- 高制导精度
- 复杂环境适应性
2. **系统复杂性**
- 多传感器集成
- 复杂控制逻辑
- 高计算资源需求
- 系统可靠性要求
### 4.9 命中概率计算
#### 4.9.1 命中概率模型
1. **基础概率模型**
- 基于导弹类型的基础命中概率
- 基于目标距离的概率修正
- 基于制导精度的概率计算
- 基于环境条件的概率调整
2. **距离影响因子**
- 近距离高命中概率
- 远距离概率衰减
- 最优攻击距离
- 有效攻击范围
3. **制导精度影响**
- 制导系统精度等级
- 传感器性能影响
- 干扰条件影响
- 目标特性影响
#### 4.9.2 概率计算算法
1. **综合概率计算**
- 基础概率 × 距离因子 × 制导因子 × 环境因子
- 各因子的权重分配
- 概率范围限制
- 随机性引入
2. **动态概率更新**
- 实时距离测量
- 制导状态监控
- 环境条件变化
- 概率实时更新
3. **命中判定算法**
- 概率阈值设定
- 随机数生成
- 命中结果判定
- 结果统计分析
## 5. 验证方法
### 5.1 单元测试验证
#### 5.1.1 数据管理系统测试
1. **ThreatSourceDataManager测试**
- 智能路径解析功能验证
- TOML配置文件加载测试
- 数据缓存机制验证
- 错误处理和异常测试
- 复合制导配置后处理验证
2. **配置文件格式验证**
- TOML语法正确性检查
- 必需字段完整性验证
- 数据类型匹配验证
- 数值范围合理性检查
- 依赖关系一致性验证
3. **路径解析测试**
- DLL位置获取测试
- 上级目录data文件夹查找
- 回退路径机制验证
- 不同部署结构适应性测试
- 路径解析日志验证
#### 5.1.2 运动学系统测试
1. **KinematicState测试**
- Position、Orientation、Velocity状态管理
- Speed与Velocity的自动同步
- 坐标系转换正确性验证
- 前向方向(-Z轴)计算验证
- 状态更新和同步机制测试
2. **升力系统测试**
- LiftModel升力计算验证
- 俯仰角范围(-5°到15°)测试
- 升力平衡点(5°)验证
- 升力系数(1.0 m/s²/度)测试
- 垂直加速度合成验证
3. **加速度合成测试**
- 制导加速度计算验证
- 推力加速度应用测试
- 升力加速度集成验证
- 阻力加速度计算测试
- 重力加速度合成验证
#### 5.1.3 制导系统测试
1. **激光半主动制导测试**
- 四象限探测器算法验证
- 激光功率分布计算测试
- 目标反射系数应用验证
- 比例导引算法测试
- 干扰处理算法验证
2. **激光驾束制导测试**
- 波束跟踪算法验证
- 编码解码算法测试
- 控制场直径计算验证
- PID控制器参数测试
- 波束偏差计算验证
3. **红外制导系统测试**
- 红外图像处理算法验证
- 目标识别和分类测试
- 运动轨迹预测验证
- 制导指令生成测试
- 抗干扰能力验证
4. **毫米波制导测试**
- 雷达信号处理算法验证
- SwerlingRCS模型测试
- 目标检测算法验证
- 距离和速度测量测试
- 多目标跟踪验证
5. **复合制导测试**
- 制导模式切换算法验证
- 数据融合算法测试
- 制导系统激活触发器验证
- 制导质量评估测试
- 失效处理机制验证
#### 5.1.4 状态信息系统测试
1. **ElementStatusInfo测试**
- 统一状态信息结构验证
- GetStatusInfo方法实现测试
- 扩展属性字典功能验证
- 嵌套状态信息测试
- 时间戳同步验证
2. **状态信息层次测试**
- SimulationElement基础状态测试
- BaseMissile导弹状态验证
- BaseGuidanceSystem制导状态测试
- BaseEquipment设备状态验证
- BaseSensor传感器状态测试
3. **状态信息格式化测试**
- 状态信息序列化验证
- JSON格式输出测试
- 状态信息可读性验证
- 调试信息完整性测试
- 性能监控数据验证
#### 5.1.5 事件系统测试
1. **事件发布订阅测试**
- 类型安全事件处理验证
- 事件订阅和取消订阅测试
- 事件发布和分发验证
- 异常隔离机制测试
- 事件队列管理验证
2. **导弹生命周期事件测试**
- 导弹发射事件验证
- 飞行阶段变化事件测试
- 制导状态变化事件验证
- 导弹爆炸事件测试
- 自毁事件验证
3. **制导相关事件测试**
- 激光照射事件验证
- 激光波束事件测试
- 红外制导指令事件验证
- 毫米波探测事件测试
- 目标命中事件验证
### 5.2 集成测试验证
#### 5.2.1 系统集成测试
1. **数据管理集成测试**
- 配置文件加载与实体创建集成
- 数据缓存与仿真运行集成
- 错误处理与系统稳定性集成
- 热更新与运行时配置集成
- 多设备类型协同工作测试
2. **仿真管理集成测试**
- 仿真状态控制与实体管理集成
- 时间同步与实体更新集成
- 天气系统与制导系统集成
- 事件系统与仿真流程集成
- 外部适配器与内部系统集成
3. **制导系统集成测试**
- 制导系统与导弹基类集成
- 传感器与制导算法集成
- 制导事件与系统响应集成
- 干扰系统与制导性能集成
- 多制导系统协同工作测试
#### 5.2.2 端到端测试
1. **完整攻击流程测试**
- 导弹发射到命中全流程验证
- 制导系统激活和切换测试
- 目标探测和跟踪验证
- 制导控制和轨迹修正测试
- 命中判定和毁伤评估验证
2. **复杂场景测试**
- 多导弹协同攻击测试
- 复杂环境条件下的制导验证
- 干扰条件下的系统性能测试
- 目标机动情况下的跟踪验证
- 系统故障情况下的容错测试
3. **性能压力测试**
- 大量实体同时仿真测试
- 高频率事件处理验证
- 内存使用和泄漏检测
- CPU性能和优化验证
- 并发访问和线程安全测试
### 5.3 算法验证
#### 5.3.1 制导算法验证
1. **比例导引算法验证**
- 导航比例系数优化测试
- 视线角速度计算精度验证
- 制导加速度收敛性测试
- 目标拦截轨迹分析
- 制导精度统计验证
2. **目标跟踪算法验证**
- 卡尔曼滤波跟踪精度测试
- 目标状态估计误差分析
- 运动轨迹预测准确性验证
- 多目标跟踪性能测试
- 跟踪丢失恢复能力验证
3. **传感器算法验证**
- 激光功率分布计算验证
- 红外图像处理算法测试
- 毫米波信号处理验证
- 多传感器融合算法测试
- 传感器噪声处理验证
#### 5.3.2 物理模型验证
1. **运动学模型验证**
- 位置、速度、加速度关系验证
- 坐标系转换正确性测试
- 欧拉角与旋转矩阵一致性验证
- 运动状态积分精度测试
- 数值稳定性分析
2. **升力模型验证**
- 升力系数实验数据对比
- 俯仰角与升力关系验证
- 升力平衡点准确性测试
- 升力加速度计算验证
- 飞行阶段升力变化测试
3. **传播模型验证**
- 激光传播衰减模型验证
- 红外辐射传播模型测试
- 毫米波传播特性验证
- 大气影响模型准确性测试
- 环境条件影响分析
#### 5.3.3 概率模型验证
1. **命中概率模型验证**
- 基础概率设定合理性验证
- 距离影响因子准确性测试
- 制导精度影响分析
- 环境条件影响验证
- 概率计算算法测试
2. **SwerlingRCS模型验证**
- 各型Swerling模型实现验证
- RCS统计特性准确性测试
- 检测概率计算验证
- 目标起伏特性建模测试
- 雷达检测性能分析
3. **随机噪声模型验证**
- 运动状态噪声系数验证
- 飞行阶段噪声变化测试
- 噪声分布特性验证
- 噪声对制导精度影响分析
- 噪声模型参数优化
### 5.4 性能验证
#### 5.4.1 计算性能验证
1. **实时性能测试**
- 仿真步长执行时间测量
- 制导算法计算时间分析
- 事件处理响应时间测试
- 状态更新性能验证
- 实时性要求满足度评估
2. **内存性能测试**
- 内存使用量监控
- 内存泄漏检测
- 缓存效率分析
- 垃圾回收影响测试
- 内存优化效果验证
3. **并发性能测试**
- 多线程访问安全性验证
- 锁竞争和死锁检测
- 并发处理能力测试
- 线程池性能分析
- 并发优化效果验证
#### 5.4.2 精度性能验证
1. **制导精度验证**
- 各制导系统精度统计
- 制导误差分布分析
- 精度影响因素识别
- 精度改进效果验证
- 精度要求满足度评估
2. **数值精度验证**
- 浮点数计算精度测试
- 数值积分误差分析
- 累积误差控制验证
- 数值稳定性测试
- 精度损失原因分析
3. **时间精度验证**
- 时间同步精度测试
- 事件时间戳准确性验证
- 仿真时间与实际时间对比
- 时间步长影响分析
- 时间精度要求满足度评估
#### 5.4.3 可靠性验证
1. **系统稳定性测试**
- 长时间运行稳定性验证
- 异常情况处理能力测试
- 系统恢复能力验证
- 错误传播控制测试
- 系统容错能力分析
2. **数据一致性验证**
- 配置数据一致性检查
- 状态数据同步验证
- 事件数据完整性测试
- 数据备份和恢复验证
- 数据损坏检测和修复
3. **接口兼容性验证**
- 版本兼容性测试
- 接口向后兼容验证
- 外部系统集成测试
- 配置文件格式兼容性验证
- API接口稳定性测试
### 5.5 验证工具和方法
#### 5.5.1 自动化测试工具
1. **单元测试框架**
- NUnit测试框架应用
- 测试用例自动生成
- 测试覆盖率分析
- 持续集成测试
- 回归测试自动化
2. **性能测试工具**
- 性能监控工具集成
- 基准测试自动化
- 性能回归检测
- 性能瓶颈分析
- 性能优化验证
3. **集成测试工具**
- 端到端测试自动化
- 场景测试脚本
- 数据驱动测试
- 环境配置自动化
- 测试结果分析
#### 5.5.2 验证数据管理
1. **测试数据准备**
- 标准测试数据集
- 边界条件测试数据
- 异常情况测试数据
- 性能测试数据
- 回归测试数据
2. **验证结果管理**
- 测试结果记录和分析
- 验证报告自动生成
- 问题跟踪和管理
- 验证历史记录
- 质量指标统计
3. **基准数据维护**
- 算法基准结果维护
- 性能基准数据更新
- 精度基准标准制定
- 基准数据版本管理
- 基准比较分析
#### 5.5.3 验证流程管理
1. **验证计划制定**
- 验证需求分析
- 验证策略制定
- 验证计划编制
- 资源分配和调度
- 风险评估和控制
2. **验证执行管理**
- 验证任务分配
- 验证进度跟踪
- 问题识别和处理
- 验证质量控制
- 验证结果评审
3. **验证改进管理**
- 验证效果评估
- 验证方法改进
- 验证工具优化
- 验证流程完善
- 经验总结和分享
## 6. 仿真接口
### 6.1 核心接口定义
#### 6.1.1 仿真管理接口
1. **ISimulationManager接口**
仿真管理器的核心接口,提供仿真控制功能:
- StartSimulation(double timeStep):启动仿真,指定时间步长
- PauseSimulation():暂停仿真
- ResumeSimulation():恢复仿真
- StopSimulation():停止仿真并重置
- UpdateSimulation():执行一次仿真更新
- 状态属性CurrentTime、SimulationState、TimeStep
2. **ISimulationElement接口**
仿真实体的基础接口,所有仿真对象必须实现:
- Update(double deltaTime):更新实体状态
- GetStatusInfo():获取统一状态信息
- 属性访问Id、KState、IsActive、ElementType
- 生命周期管理Initialize()、Destroy()
3. **IEventSystem接口**
事件系统接口,提供类型安全的事件处理:
- Subscribe<T>(Action<T> handler):订阅特定类型事件
- Unsubscribe<T>(Action<T> handler):取消订阅
- Publish<T>(T eventData):发布事件
- 事件队列管理和异常隔离
#### 6.1.2 数据管理接口
1. **IThreatSourceDataManager接口**
数据管理器接口,提供配置数据访问:
- LoadData():加载所有配置数据
- GetMissileData(string modelName):获取导弹配置
- GetIndicatorData(string modelName):获取指示器配置
- GetSensorData(string modelName):获取传感器配置
- GetEquipmentData(string modelName):获取设备配置
- GetWeatherData(string modelName):获取天气配置
- GetJammerData(string modelName):获取干扰机配置
2. **IConfigurationData接口**
配置数据的基础接口:
- Type设备类型标识
- Name多语言名称支持
- Properties基础属性字典
- Validate():配置数据验证
3. **IDataCache接口**
数据缓存管理接口:
- Get<T>(string key):获取缓存数据
- Set<T>(string key, T value):设置缓存数据
- Remove(string key):移除缓存数据
- Clear():清空缓存
- Contains(string key):检查缓存存在性
#### 6.1.3 制导系统接口
1. **IGuidanceSystem接口**
制导系统的统一接口:
- CalculateGuidanceAcceleration():计算制导加速度
- GetStatusInfo():获取制导系统状态
- IsGuidanceActive制导激活状态
- GuidanceAcceleration当前制导加速度
- 事件处理ProcessGuidanceEvent(IGuidanceEvent)
2. **IGuidanceEvent接口**
制导事件的基础接口:
- SenderId事件发送者ID
- Timestamp事件时间戳
- EventType事件类型标识
- EventData事件数据载荷
3. **ITargetTracker接口**
目标跟踪器接口:
- TrackTarget(ITarget target):跟踪目标
- PredictTargetPosition(double time):预测目标位置
- GetTrackingAccuracy():获取跟踪精度
- IsTargetLocked目标锁定状态
#### 6.1.4 传感器系统接口
1. **ISensor接口**
传感器的基础接口:
- DetectTargets():探测目标
- GetSensorData():获取传感器数据
- GetStatusInfo():获取传感器状态
- IsJammed干扰状态
- DetectionRange探测距离
2. **ILaserSensor接口**
激光传感器专用接口:
- CalculateLaserPower(Vector3 position):计算激光功率
- GetQuadrantPowers():获取四象限功率
- LaserWavelength激光波长
- DetectorDiameter探测器直径
3. **IRadarSensor接口**
雷达传感器专用接口:
- CalculateRCS(ITarget target)计算目标RCS
- GetSwerlingModel()获取Swerling模型
- WorkingFrequency工作频率
- TransmitPower发射功率
### 6.2 外部系统集成接口
#### 6.2.1 仿真适配器接口
1. **ISimulationAdapter接口**
外部仿真系统适配器的统一接口:
- Initialize():初始化适配器
- OnTimeSync(double currentTime):时间同步通知
- OnEntityUpdate(ISimulationElement entity):实体状态更新通知
- OnEventPublished<T>(T eventData):事件发布通知
- SendExternalEvent<T>(T eventData):发送外部事件
- IsConnected连接状态
2. **IUnityAdapter接口**
Unity引擎适配器专用接口
- UpdateUnityTransform(string entityId, Transform transform)更新Unity变换
- CreateUnityGameObject(ISimulationElement entity)创建Unity对象
- DestroyUnityGameObject(string entityId)销毁Unity对象
- SyncUnityPhysics()同步Unity物理系统
3. **IUnrealAdapter接口**
Unreal引擎适配器专用接口
- UpdateUnrealActor(string entityId, FTransform transform)更新Unreal Actor
- SpawnUnrealActor(ISimulationElement entity)生成Unreal Actor
- DestroyUnrealActor(string entityId)销毁Unreal Actor
- SyncUnrealWorld()同步Unreal世界状态
#### 6.2.2 数据交换接口
1. **IDataExporter接口**
数据导出接口:
- ExportSimulationData(string filePath):导出仿真数据
- ExportEntityStates(IEnumerable<ISimulationElement> entities):导出实体状态
- ExportEventHistory(IEnumerable<IEvent> events):导出事件历史
- SupportedFormats支持的导出格式
2. **IDataImporter接口**
数据导入接口:
- ImportSimulationData(string filePath):导入仿真数据
- ImportEntityStates(string filePath):导入实体状态
- ImportEventHistory(string filePath):导入事件历史
- ValidateImportData(string filePath):验证导入数据
3. **IRealtimeDataStream接口**
实时数据流接口:
- StartDataStream():启动数据流
- StopDataStream():停止数据流
- SendRealtimeData<T>(T data):发送实时数据
- OnDataReceived<T>(Action<T> handler):数据接收处理
- StreamStatus数据流状态
#### 6.2.3 网络通信接口
1. **INetworkManager接口**
网络管理器接口:
- StartServer(int port):启动服务器
- ConnectToServer(string address, int port):连接服务器
- SendMessage<T>(T message):发送消息
- OnMessageReceived<T>(Action<T> handler):消息接收处理
- IsConnected连接状态
2. **IMessageSerializer接口**
消息序列化接口:
- Serialize<T>(T obj):序列化对象
- Deserialize<T>(byte[] data):反序列化对象
- GetSupportedTypes():获取支持的类型
- SerializationFormat序列化格式
### 6.3 状态信息接口
#### 6.3.1 统一状态信息
1. **ElementStatusInfo类**
统一的状态信息结构:
- Id实体唯一标识符
- ElementType实体类型名称
- KState运动学状态信息
- IsActive活动状态标志
- Timestamp状态时间戳
- ExtendedProperties扩展属性字典
2. **状态信息扩展属性**
不同实体类型的扩展属性:
- 导弹状态:飞行时间、飞行阶段、制导状态、升力加速度
- 制导系统状态:制导加速度、干扰状态、目标锁定状态
- 传感器状态:探测状态、干扰功率、传感器数据
- 设备状态:生命值、属性信息、工作状态
3. **状态信息格式化**
状态信息的标准化输出:
- JSON格式序列化
- 可读性格式化
- 调试信息输出
- 性能监控数据
#### 6.3.2 状态查询接口
1. **IStatusProvider接口**
状态提供者接口:
- GetStatusInfo():获取当前状态信息
- GetHistoryStatus(DateTime timestamp):获取历史状态
- GetStatusSummary():获取状态摘要
- SubscribeStatusUpdates(Action<ElementStatusInfo> handler):订阅状态更新
2. **IStatusCollector接口**
状态收集器接口:
- CollectAllStatus():收集所有实体状态
- CollectStatusByType(string elementType):按类型收集状态
- CollectStatusByFilter(Func<ISimulationElement, bool> filter):按条件收集状态
- GetStatusStatistics():获取状态统计信息
### 6.4 配置接口
#### 6.4.1 配置管理接口
1. **IConfigurationManager接口**
配置管理器接口:
- LoadConfiguration(string configPath):加载配置
- SaveConfiguration(string configPath):保存配置
- GetConfigurationValue<T>(string key):获取配置值
- SetConfigurationValue<T>(string key, T value):设置配置值
- ValidateConfiguration():验证配置
2. **IConfigurationProvider接口**
配置提供者接口:
- GetConfiguration<T>(string key):获取特定配置
- GetAllConfigurations():获取所有配置
- IsConfigurationAvailable(string key):检查配置可用性
- GetConfigurationMetadata(string key):获取配置元数据
#### 6.4.2 动态配置接口
1. **IHotReloadable接口**
热重载接口:
- ReloadConfiguration():重新加载配置
- OnConfigurationChanged(Action handler):配置变更通知
- CanHotReload是否支持热重载
- LastReloadTime最后重载时间
2. **IConfigurationValidator接口**
配置验证器接口:
- ValidateConfiguration(object config):验证配置
- GetValidationRules():获取验证规则
- GetValidationErrors():获取验证错误
- IsValid配置是否有效
### 6.5 扩展接口
#### 6.5.1 插件系统接口
1. **IPlugin接口**
插件基础接口:
- Initialize(IServiceProvider serviceProvider):初始化插件
- Start():启动插件
- Stop():停止插件
- GetPluginInfo():获取插件信息
- IsEnabled插件启用状态
2. **IPluginManager接口**
插件管理器接口:
- LoadPlugin(string pluginPath):加载插件
- UnloadPlugin(string pluginName):卸载插件
- GetLoadedPlugins():获取已加载插件
- EnablePlugin(string pluginName):启用插件
- DisablePlugin(string pluginName):禁用插件
#### 6.5.2 自定义扩展接口
1. **ICustomGuidanceSystem接口**
自定义制导系统接口:
- RegisterCustomGuidance(string name, Type guidanceType):注册自定义制导
- CreateCustomGuidance(string name):创建自定义制导实例
- GetSupportedGuidanceTypes():获取支持的制导类型
2. **ICustomSensor接口**
自定义传感器接口:
- RegisterCustomSensor(string name, Type sensorType):注册自定义传感器
- CreateCustomSensor(string name):创建自定义传感器实例
- GetSupportedSensorTypes():获取支持的传感器类型
### 6.6 接口使用示例
#### 6.6.1 基本仿真控制
1. **仿真初始化和启动**
基本的仿真控制流程:
- 创建仿真管理器实例
- 加载配置数据
- 注册仿真实体
- 启动仿真循环
- 处理仿真事件
2. **实体创建和管理**
仿真实体的创建和管理:
- 从配置数据创建实体
- 注册实体到仿真管理器
- 设置实体初始状态
- 订阅实体事件
- 管理实体生命周期
#### 6.6.2 外部系统集成
1. **Unity集成示例**
与Unity引擎的集成
- 创建Unity适配器
- 同步仿真时间
- 更新Unity对象变换
- 处理Unity事件
- 同步物理系统
2. **数据导出示例**
仿真数据的导出:
- 配置数据导出器
- 选择导出格式
- 导出实体状态
- 导出事件历史
- 验证导出数据
#### 6.6.3 自定义扩展
1. **自定义制导系统**
实现自定义制导算法:
- 继承IGuidanceSystem接口
- 实现制导算法逻辑
- 注册自定义制导类型
- 配置制导参数
- 测试制导性能
2. **自定义传感器**
实现自定义传感器:
- 继承ISensor接口
- 实现传感器算法
- 注册自定义传感器类型
- 配置传感器参数
- 验证传感器功能
## 7. 附录
### 7.1 术语表
#### 7.1.1 基础术语
**仿真实体Simulation Element**
- 仿真系统中的基本对象,包括导弹、目标、传感器等
- 继承自SimulationElement基类
- 具有统一的生命周期管理和状态信息
**运动学状态Kinematic State**
- 描述实体运动状态的数据结构
- 包含位置、朝向、速度等信息
- 使用KinematicState类统一管理
**制导系统Guidance System**
- 控制导弹飞行轨迹的系统
- 包括激光、红外、毫米波等多种制导方式
- 实现IGuidanceSystem接口
**事件系统Event System**
- 基于发布订阅模式的消息传递机制
- 提供类型安全的事件处理
- 支持异步事件处理和异常隔离
#### 7.1.2 制导术语
**比例导引Proportional Navigation**
- 经典的制导算法
- 基于视线角速度的制导方法
- 广泛应用于各种制导系统
**四象限探测器Quadrant Detector**
- 激光制导中的关键传感器
- 将探测区域分为四个象限
- 通过功率分布确定目标方位
**SwerlingRCS模型**
- 雷达散射截面的统计模型
- 包括Swerling I、II、III、IV型
- 用于毫米波制导的目标建模
**升力模型Lift Model**
- 基于俯仰角计算升力加速度
- 升力平衡点为5°俯仰角
- 升力系数为1.0 m/s²/度
#### 7.1.3 技术术语
**智能路径解析Smart Path Resolution**
- ThreatSourceDataManager的核心功能
- 自动查找DLL上级目录的data文件夹
- 提供回退路径机制
**复合制导Composite Guidance**
- 集成多种制导方式的系统
- 支持串行和并行制导模式
- 提供制导冗余和性能优化
**状态信息管理Status Information Management**
- ElementStatusInfo统一状态信息结构
- GetStatusInfo方法的标准实现
- 支持扩展属性和嵌套状态
**TOML配置格式**
- Tom's Obvious, Minimal Language
- 人类可读的配置文件格式
- 支持类型安全和嵌套结构
#### 7.1.4 坐标系术语
**世界坐标系World Coordinate System**
- 右手坐标系
- X轴指向东方Y轴指向上方Z轴指向北方
- 仿真场景的全局坐标系
**本体坐标系Body Coordinate System**
- 导弹本体的局部坐标系
- X轴指向右翼Y轴指向上方Z轴指向后方
- **前向方向为-Z轴**(重要变更)
**欧拉角Euler Angles**
- 偏航角Yaw绕Y轴旋转
- 俯仰角Pitch绕X轴旋转
- 滚转角Roll绕Z轴旋转
### 7.2 技术参数
#### 7.2.1 系统性能参数
**仿真性能**
- 最大实体数量1000+
- 仿真步长0.001-1.0秒
- 事件处理延迟:<1ms
- 内存使用<500MB1000实体
**制导精度**
- 激光半主动制导CEP < 1m
- 激光驾束制导CEP < 0.5m
- 红外成像制导CEP < 2m
- 毫米波制导CEP < 3m
**数据处理性能**
- 配置文件加载<100ms
- 状态信息更新<10μs/实体
- 事件处理<1μs/事件
- 数据缓存命中率>95%
#### 7.2.2 物理模型参数
**升力模型参数**
- 有效俯仰角范围:-5°到15°
- 升力平衡点5°俯仰角
- 升力系数1.0 m/s²/度
- 重力加速度9.81 m/s²
**传播模型参数**
- 激光大气透过率0.7-0.9
- 红外大气透过率0.6-0.8
- 毫米波降雨衰减0.1-10 dB/km
- 视距传播距离50km+
**噪声模型参数**
- Launch阶段噪声系数0.1
- Cruise阶段噪声系数0.05
- TerminalGuidance阶段噪声系数0.02
- 噪声分布:高斯分布
#### 7.2.3 配置参数范围
**导弹参数范围**
- 最大速度100-2000 m/s
- 最大加速度10-100 m/s²
- 最大飞行时间10-300秒
- 最大飞行距离1-50公里
**制导参数范围**
- 导航比例系数2-6
- 最大制导加速度20-80 m/s²
- 制导激活距离100-5000米
- 制导精度要求0.1-5米
**传感器参数范围**
- 激光功率1-100瓦
- 探测距离100-10000米
- 视场角1-30度
- 工作频率1-100 GHz
### 7.3 配置示例
#### 7.3.1 导弹配置示例
```toml
Type = "missile"
[Name]
zh = "激光半主动制导导弹"
en = "Laser Semi-Active Guided Missile"
[Properties]
MaxSpeed = 800.0
MaxAcceleration = 50.0
MaxFlightTime = 120.0
MaxFlightDistance = 8000.0
CruiseAttackAngle = 5.0
GuidanceDownwardViewingAngle = 15.0
[LaserSemiActiveGuidanceConfig]
DetectorDiameter = 0.1
FieldOfView = 30.0
LockThreshold = 0.001
MaxGuidanceAcceleration = 40.0
NavigationGain = 3.0
```
#### 7.3.2 复合制导配置示例
```toml
Type = "missile"
[Name]
zh = "毫米波红外复合制导导弹"
en = "MMW/IR Composite Guided Missile"
[[GuidanceSuite]]
Name = "毫米波制导"
GuidanceSystemType = "millimeterwave"
ActivationTrigger = "LaunchTime"
MaxAcquisitionGuidanceTime = 10.0
MinStableGuidanceTime = 2.0
ContinueOnFailure = true
[[GuidanceSuite]]
Name = "红外成像制导"
GuidanceSystemType = "infraredimagingterminalguidance"
ActivationTrigger = "PreviousComplete"
MaxAcquisitionGuidanceTime = 15.0
MinStableGuidanceTime = 3.0
ContinueOnFailure = false
[MillimeterWaveGuidanceConfig]
WorkingFrequency = 35.0
TransmitPower = 10.0
MaxDetectionRange = 5000.0
[InfraredImagingGuidanceConfig]
MaxDetectionRange = 3000.0
FieldOfView = 20.0
TargetRecognitionProbability = 0.9
```
#### 7.3.3 传感器配置示例
```toml
Type = "sensor"
[Name]
zh = "毫米波雷达"
en = "Millimeter Wave Radar"
[Properties]
WorkingFrequency = 35.0
TransmitPower = 15.0
AntennaGain = 30.0
MaxDetectionRange = 8000.0
FieldOfView = 45.0
SwerlingModel = "SwerlingII"
```
### 7.4 开发指南
#### 7.4.1 开发环境要求
**软件环境**
- .NET 8.0+
- Visual Studio 2019+
- NUnit 3.12+
- Tomlyn 0.16+
**硬件环境**
- CPUIntel i5 8代+
- 内存8GB+
- 存储SSD 100GB+
- 显卡支持DirectX 11+
**开发工具**
- Git版本控制
- NuGet包管理
- MSBuild构建系统
- NUnit测试框架
#### 7.4.2 编码规范
**命名规范**
- 类名PascalCase如BaseMissile
- 方法名PascalCase如GetStatusInfo
- 属性名PascalCase如IsActive
- 字段名camelCase如isGuidanceActive
- 常量名UPPER_CASE如MAX_SPEED
**注释规范**
- 类注释:描述类的用途和功能
- 方法注释:描述方法的功能、参数和返回值
- 复杂逻辑注释:解释算法和业务逻辑
- 注释语言:中文
**代码结构**
- 单一职责原则
- 开闭原则
- 依赖倒置原则
- 接口隔离原则
#### 7.4.3 测试指南
**单元测试**
- 测试覆盖率:>80%
- 测试命名Should_ExpectedBehavior_When_StateUnderTest
- 测试结构Arrange-Act-Assert
- 测试数据:使用测试数据构建器
**集成测试**
- 端到端测试场景
- 外部系统集成测试
- 性能基准测试
- 压力测试
**测试自动化**
- 持续集成测试
- 回归测试自动化
- 性能回归检测
- 测试报告生成
### 7.5 故障排除
#### 7.5.1 常见问题
**配置文件问题**
- 问题:配置文件加载失败
- 原因:文件路径错误或格式错误
- 解决检查路径解析日志验证TOML格式
**制导系统问题**
- 问题:制导不生效
- 原因:制导事件未接收或参数错误
- 解决:检查事件订阅,验证制导参数
**性能问题**
- 问题:仿真运行缓慢
- 原因:实体数量过多或算法复杂度高
- 解决:优化算法,减少实体数量
#### 7.5.2 调试技巧
**日志分析**
- 启用详细日志输出
- 分析错误堆栈信息
- 跟踪关键方法调用
- 监控性能指标
**状态检查**
- 使用GetStatusInfo方法
- 检查实体状态信息
- 验证制导系统状态
- 监控事件流
**性能分析**
- 使用性能分析工具
- 监控内存使用
- 分析CPU占用
- 检查线程安全