1122 lines
32 KiB
C#
1122 lines
32 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using ActiveProtect.Utility;
|
||
using ActiveProtect.Models;
|
||
|
||
namespace ActiveProtect.Simulation
|
||
{
|
||
/// <summary>
|
||
/// 仿真配置类,包含整个仿真系统所需的所有配置信息
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 该类负责管理和存储仿真系统的所有配置参数,包括:
|
||
/// - 坦克配置(位置、朝向、防护等级等)
|
||
/// - 导弹配置(类型、性能参数等)
|
||
/// - 各类告警器配置(激光、红外、毫米波、紫外等)
|
||
/// - 各类干扰器配置(激光、红外、毫米波等)
|
||
/// - 仿真时间步长等全局参数
|
||
///
|
||
/// 通过统一管理这些配置,确保仿真系统各组件的参数设置协调一致
|
||
/// </remarks>
|
||
public class SimulationConfig
|
||
{
|
||
/// <summary>
|
||
/// 坦克配置列表
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含所有参与仿真的坦克的配置参数列表
|
||
/// </value>
|
||
public List<TankProperties> TankConfigs { get; set; }
|
||
|
||
/// <summary>
|
||
/// 导弹配置列表
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含所有参与仿真的导弹的配置参数列表
|
||
/// </value>
|
||
public List<MissileProperties> MissileConfigs { get; set; }
|
||
|
||
/// <summary>
|
||
/// 激光指示器配置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含激光指示器的工作参数,如功率、发散角等
|
||
/// </value>
|
||
public LaserDesignatorConfig LaserDesignatorConfig { get; set; }
|
||
|
||
/// <summary>
|
||
/// 激光驾束仪配置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含激光驾束仪的工作参数,如控制场范围、最大导引距离等
|
||
/// </value>
|
||
public LaserBeamRiderConfig LaserBeamRiderConfig { get; set; }
|
||
|
||
/// <summary>
|
||
/// 激光告警器配置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含激光告警器的工作参数,如灵敏度阈值、告警持续时间等
|
||
/// </value>
|
||
public LaserWarnerConfig LaserWarnerConfig { get; set; }
|
||
|
||
/// <summary>
|
||
/// 激光干扰器配置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含激光干扰器的工作参数,如最大功率、冷却时间等
|
||
/// </value>
|
||
public LaserJammerConfig LaserJammerConfig { get; set; }
|
||
|
||
/// <summary>
|
||
/// 毫米波干扰器配置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含毫米波干扰器的工作参数,如最大功率、冷却时间等
|
||
/// </value>
|
||
public MillimeterWaveJammerConfig MillimeterWaveJammerConfig { get; set; }
|
||
|
||
/// <summary>
|
||
/// 仿真时间步长
|
||
/// </summary>
|
||
/// <value>
|
||
/// 仿真系统的时间步进间隔,单位:秒(s)
|
||
/// 较小的步长提供更精确的仿真,但会增加计算负担
|
||
/// </value>
|
||
public double SimulationTimeStep { get; set; }
|
||
|
||
/// <summary>
|
||
/// 红外测角仪配置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含红外测角仪的工作参数,如视场角、测量精度等
|
||
/// </value>
|
||
public InfraredTrackerConfig InfraredTrackerConfig { get; set; }
|
||
|
||
/// <summary>
|
||
/// 烟幕弹干扰器配置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含烟幕弹干扰器的工作参数,如发射参数、性能参数等
|
||
/// </value>
|
||
public SmokeJammerConfig SmokeJammerConfig { get; set; }
|
||
|
||
/// <summary>
|
||
/// 末敏弹毫米波干扰器配置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 包含末敏弹毫米波干扰器的工作参数,如波长范围、角度范围等
|
||
/// </value>
|
||
public TerminalMillimeterWaveJammerConfig TerminalMillimeterWaveJammerConfig { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,初始化默认配置
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 创建配置对象时:
|
||
/// 1. 初始化所有列表类型的属性
|
||
/// 2. 创建各类设备的默认配置实例
|
||
/// 3. 设置默认的仿真时间步长
|
||
/// </remarks>
|
||
public SimulationConfig()
|
||
{
|
||
TankConfigs = new List<TankProperties>();
|
||
MissileConfigs = new List<MissileProperties>();
|
||
LaserDesignatorConfig = new LaserDesignatorConfig();
|
||
LaserBeamRiderConfig = new LaserBeamRiderConfig();
|
||
LaserWarnerConfig = new LaserWarnerConfig();
|
||
LaserJammerConfig = new LaserJammerConfig();
|
||
MillimeterWaveJammerConfig = new MillimeterWaveJammerConfig();
|
||
InfraredTrackerConfig = new InfraredTrackerConfig();
|
||
SmokeJammerConfig = new SmokeJammerConfig();
|
||
TerminalMillimeterWaveJammerConfig = new TerminalMillimeterWaveJammerConfig();
|
||
SimulationTimeStep = 0.1; // 默认时间步长为0.1秒
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 激光指示器配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了激光指示器的工作参数,包括:
|
||
/// - 设备标识信息
|
||
/// - 空间位置信息
|
||
/// - 激光性能参数
|
||
/// </remarks>
|
||
public class LaserDesignatorConfig
|
||
{
|
||
/// <summary>
|
||
/// 激光指示器ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 初始位置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备在仿真空间中的初始位置坐标
|
||
/// </value>
|
||
public Vector3D InitialPosition { get; set; }
|
||
|
||
/// <summary>
|
||
/// 激光功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 激光输出功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double LaserPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 激光发散角
|
||
/// </summary>
|
||
/// <value>
|
||
/// 激光束的发散角度,单位:弧度(rad)
|
||
/// </value>
|
||
public double LaserDivergenceAngle { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 位置设为原点
|
||
/// - 功率和发散角设为0
|
||
/// </remarks>
|
||
public LaserDesignatorConfig()
|
||
{
|
||
Id = "";
|
||
InitialPosition = new Vector3D(0, 0, 0);
|
||
LaserPower = 0;
|
||
LaserDivergenceAngle = 0;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 激光驾束仪配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了激光驾束仪的工作参数,包括:
|
||
/// - 设备标识信息
|
||
/// - 空间位置信息
|
||
/// - 控制场参数
|
||
/// - 导引能力参数
|
||
/// </remarks>
|
||
public class LaserBeamRiderConfig
|
||
{
|
||
/// <summary>
|
||
/// 激光驾束仪ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 初始位置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备在仿真空间中的初始位置坐标
|
||
/// </value>
|
||
public Vector3D InitialPosition { get; set; }
|
||
|
||
/// <summary>
|
||
/// 激光功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 激光输出功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double LaserPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 控制场直径
|
||
/// </summary>
|
||
/// <value>
|
||
/// 有效控制场的直径,单位:米(m)
|
||
/// </value>
|
||
public double ControlFieldDiameter { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大导引距离
|
||
/// </summary>
|
||
/// <value>
|
||
/// 最大有效导引距离,单位:米(m)
|
||
/// </value>
|
||
public double MaxGuidanceDistance { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 位置设为原点
|
||
/// - 功率和控制场直径设为0
|
||
/// </remarks>
|
||
public LaserBeamRiderConfig()
|
||
{
|
||
Id = "";
|
||
InitialPosition = new Vector3D(0, 0, 0);
|
||
LaserPower = 0;
|
||
ControlFieldDiameter = 0;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 激光告警器配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了激光告警器的工作参数,包括:
|
||
/// - 设备标识信息
|
||
/// - 告警灵敏度参数
|
||
/// - 告警时间参数
|
||
/// - 检测波长范围
|
||
/// </remarks>
|
||
public class LaserWarnerConfig
|
||
{
|
||
/// <summary>
|
||
/// 激光告警器ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 告警灵敏度阈值
|
||
/// </summary>
|
||
/// <value>
|
||
/// 触发告警的最小激光功率密度阈值,单位:瓦特/平方米(W/m²)
|
||
/// </value>
|
||
public double SensitivityThreshold { get; set; }
|
||
|
||
/// <summary>
|
||
/// 警报持续时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 单次告警的持续时间,单位:秒(s)
|
||
/// </value>
|
||
public double AlarmDuration { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最小波长
|
||
/// </summary>
|
||
/// <value>
|
||
/// 可检测的最小激光波长,单位:纳米(nm)
|
||
/// </value>
|
||
public double WavelengthMin { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大波长
|
||
/// </summary>
|
||
/// <value>
|
||
/// 可检测的最大激光波长,单位:纳米(nm)
|
||
/// </value>
|
||
public double WavelengthMax { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 灵敏度阈值设为0
|
||
/// - 告警持续时间默认为5秒
|
||
/// - 波长范围初始化为0
|
||
/// </remarks>
|
||
public LaserWarnerConfig()
|
||
{
|
||
Id = "";
|
||
SensitivityThreshold = 0;
|
||
AlarmDuration = 5.0; // 默认警报持续5秒
|
||
WavelengthMin = 0;
|
||
WavelengthMax = 0;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 紫外线告警器配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了紫外线告警器的工作参数,包括:
|
||
/// - 设备标识信息
|
||
/// - 告警灵敏度参数
|
||
/// - 告警时间参数
|
||
/// - 检测波长范围
|
||
/// </remarks>
|
||
public class UltravioletWarnerConfig
|
||
{
|
||
/// <summary>
|
||
/// 紫外线告警器ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 告警灵敏度阈值
|
||
/// </summary>
|
||
/// <value>
|
||
/// 触发告警的最小紫外线辐射强度阈值,单位:瓦特/平方米(W/m²)
|
||
/// </value>
|
||
public double SensitivityThreshold { get; set; }
|
||
|
||
/// <summary>
|
||
/// 警报持续时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 单次告警的持续时间,单位:秒(s)
|
||
/// </value>
|
||
public double AlarmDuration { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最小波长
|
||
/// </summary>
|
||
/// <value>
|
||
/// 可检测的最小紫外线波长,单位:纳米(nm)
|
||
/// </value>
|
||
public double WavelengthMin { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大波长
|
||
/// </summary>
|
||
/// <value>
|
||
/// 可检测的最大紫外线波长,单位:纳米(nm)
|
||
/// </value>
|
||
public double WavelengthMax { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 灵敏度阈值设为0
|
||
/// - 告警持续时间默认为5秒
|
||
/// - 波长范围初始化为0
|
||
/// </remarks>
|
||
public UltravioletWarnerConfig()
|
||
{
|
||
Id = "";
|
||
SensitivityThreshold = 0;
|
||
AlarmDuration = 5.0; // 默认警报持续5秒
|
||
WavelengthMin = 0;
|
||
WavelengthMax = 0;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 红外告警器配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了红外告警器的工作参数,包括:
|
||
/// - 设备标识信息
|
||
/// - 告警灵敏度参数
|
||
/// - 告警时间参数
|
||
/// - 检测波长范围
|
||
/// </remarks>
|
||
public class InfraredWarnerConfig
|
||
{
|
||
/// <summary>
|
||
/// 红外告警器ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 告警灵敏度阈值
|
||
/// </summary>
|
||
/// <value>
|
||
/// 触发告警的最小红外辐射强度阈值,单位:瓦特/平方米(W/m²)
|
||
/// </value>
|
||
public double SensitivityThreshold { get; set; }
|
||
|
||
/// <summary>
|
||
/// 警报持续时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 单次告警的持续时间,单位:秒(s)
|
||
/// </value>
|
||
public double AlarmDuration { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最小波长
|
||
/// </summary>
|
||
/// <value>
|
||
/// 可检测的最小红外波长,单位:纳米(nm)
|
||
/// </value>
|
||
public double WavelengthMin { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大波长
|
||
/// </summary>
|
||
/// <value>
|
||
/// 可检测的最大红外波长,单位:纳米(nm)
|
||
/// </value>
|
||
public double WavelengthMax { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 灵敏度阈值设为0
|
||
/// - 告警持续时间默认为5秒
|
||
/// - 波长范围初始化为0
|
||
/// </remarks>
|
||
public InfraredWarnerConfig()
|
||
{
|
||
Id = "";
|
||
SensitivityThreshold = 0;
|
||
AlarmDuration = 5.0; // 默认警报持续5秒
|
||
WavelengthMin = 0;
|
||
WavelengthMax = 0;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 毫米波告警器配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了毫米波告警器的工作参数,包括:
|
||
/// - 设备标识信息
|
||
/// - 告警灵敏度参数
|
||
/// - 告警时间参数
|
||
/// - 检测波长范围
|
||
/// </remarks>
|
||
public class MillimeterWaveWarnerConfig
|
||
{
|
||
/// <summary>
|
||
/// 毫米波告警器ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 告警灵敏度阈值
|
||
/// </summary>
|
||
/// <value>
|
||
/// 触发告警的最小毫米波辐射强度阈值,单位:瓦特/平方米(W/m²)
|
||
/// </value>
|
||
public double SensitivityThreshold { get; set; }
|
||
|
||
/// <summary>
|
||
/// 警报持续时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 单次告警的持续时间,单位:秒(s)
|
||
/// </value>
|
||
public double AlarmDuration { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最小波长
|
||
/// </summary>
|
||
/// <value>
|
||
/// 可检测的最小毫米波波长,单位:纳米(nm)
|
||
/// </value>
|
||
public double WavelengthMin { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大波长
|
||
/// </summary>
|
||
/// <value>
|
||
/// 可检测的最大毫米波波长,单位:纳米(nm)
|
||
/// </value>
|
||
public double WavelengthMax { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 灵敏度阈值设为0
|
||
/// - 告警持续时间默认为5秒
|
||
/// - 波长范围初始化为0
|
||
/// </remarks>
|
||
public MillimeterWaveWarnerConfig()
|
||
{
|
||
Id = "";
|
||
SensitivityThreshold = 0;
|
||
AlarmDuration = 5.0; // 默认警报持续5秒
|
||
WavelengthMin = 0;
|
||
WavelengthMax = 0;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 激光干扰器配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了激光干扰器的工作参数,包括:
|
||
/// - 设备标识信息
|
||
/// - 干扰功率参数
|
||
/// - 冷却时间参数
|
||
/// - 功率增长特性
|
||
/// </remarks>
|
||
public class LaserJammerConfig
|
||
{
|
||
/// <summary>
|
||
/// 激光干扰器ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大干扰冷却时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器停止后需要的冷却时间,单位:秒(s)
|
||
/// </value>
|
||
public double MaxJammingCooldown { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大干扰功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器能够输出的最大功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double MaxJammingPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 初始干扰功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器启动时的初始功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double InitialJammingPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 功率增加速率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰功率的增长速率,单位:瓦特/秒(W/s)
|
||
/// </value>
|
||
public double PowerIncreaseRate { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 冷却时间设为5秒
|
||
/// - 最大功率设为10kW
|
||
/// - 初始功率设为最大功率的40%
|
||
/// - 功率增长率设为2kW/s
|
||
/// </remarks>
|
||
public LaserJammerConfig()
|
||
{
|
||
Id = "";
|
||
MaxJammingCooldown = 5.0;
|
||
MaxJammingPower = 10000.0;
|
||
InitialJammingPower = 4000.0;
|
||
PowerIncreaseRate = 2000.0; // 每秒增加的功率
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 红外测角仪配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了红外测角仪的工作参数,包括:
|
||
/// - 设备标识信息
|
||
/// - 空间位置信息
|
||
/// - 测量性能参数
|
||
/// - 更新频率参数
|
||
/// </remarks>
|
||
public class InfraredTrackerConfig
|
||
{
|
||
/// <summary>
|
||
/// 红外测角仪ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 初始位置
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备在仿真空间中的初始位置坐标
|
||
/// </value>
|
||
public Vector3D InitialPosition { get; set; }
|
||
|
||
/// <summary>
|
||
/// 初始朝向
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的初始朝向角度
|
||
/// </value>
|
||
public Orientation InitialOrientation { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大跟踪距离
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备能够有效跟踪目标的最大距离,单位:米(m)
|
||
/// </value>
|
||
public double MaxTrackingRange { get; set; }
|
||
|
||
/// <summary>
|
||
/// 视场角
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的视场角度,单位:弧度(rad)
|
||
/// </value>
|
||
public double FieldOfView { get; set; }
|
||
|
||
/// <summary>
|
||
/// 角度测量精度
|
||
/// </summary>
|
||
/// <value>
|
||
/// 角度测量的精度,单位:弧度(rad)
|
||
/// </value>
|
||
public double AngleMeasurementAccuracy { get; set; }
|
||
|
||
/// <summary>
|
||
/// 更新频率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备更新测量数据的频率,单位:赫兹(Hz)
|
||
/// </value>
|
||
public double UpdateFrequency { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 位置设为原点
|
||
/// - 朝向设为0
|
||
/// - 最大跟踪距离设为10km
|
||
/// - 视场角设为60度
|
||
/// - 角度精度设为0.001弧度
|
||
/// - 更新频率设为10Hz
|
||
/// </remarks>
|
||
public InfraredTrackerConfig()
|
||
{
|
||
Id = "";
|
||
InitialPosition = new Vector3D(0, 0, 0);
|
||
InitialOrientation = new Orientation(0, 0, 0);
|
||
MaxTrackingRange = 10000; // 10公里
|
||
FieldOfView = Math.PI / 3; // 60度
|
||
AngleMeasurementAccuracy = 0.001; // 0.001弧度 (约0.057度)
|
||
UpdateFrequency = 10; // 10赫兹
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 毫米波干扰器配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了毫米波干扰器的工作参数,包括:
|
||
/// - 设备标识信息
|
||
/// - 干扰功率参数
|
||
/// - 冷却时间参数
|
||
/// - 功率增长特性
|
||
/// </remarks>
|
||
public class MillimeterWaveJammerConfig
|
||
{
|
||
/// <summary>
|
||
/// 干扰器ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大干扰功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器能够输出的最大功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double MaxJammingPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 初始干扰功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器启动时的初始功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double InitialJammingPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 功率增长率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰功率的增长速率,单位:瓦特/秒(W/s)
|
||
/// </value>
|
||
public double PowerIncreaseRate { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大冷却时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器停止后需要的冷却时间,单位:秒(s)
|
||
/// </value>
|
||
public double MaxJammingCooldown { get; set; }
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 最大功率设为1kW
|
||
/// - 初始功率设为400W
|
||
/// - 功率增长率设为200W/s
|
||
/// - 冷却时间设为5秒
|
||
/// </remarks>
|
||
public MillimeterWaveJammerConfig()
|
||
{
|
||
Id = "";
|
||
MaxJammingPower = 1000;
|
||
InitialJammingPower = 400;
|
||
PowerIncreaseRate = 200;
|
||
MaxJammingCooldown = 5;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 烟幕弹干扰器配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了烟幕弹干扰器的工作参数,包括:
|
||
/// - 发射参数
|
||
/// - 性能参数
|
||
/// - 干扰功率参数
|
||
/// - 时间控制参数
|
||
/// </remarks>
|
||
public class SmokeJammerConfig
|
||
{
|
||
/// <summary>
|
||
/// 干扰器ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
#region 发射参数
|
||
/// <summary>
|
||
/// 发射角度
|
||
/// </summary>
|
||
/// <value>
|
||
/// 烟幕弹发射角度,单位:弧度(rad)
|
||
/// </value>
|
||
public float LaunchAngle { get; set; }
|
||
|
||
/// <summary>
|
||
/// 烟幕种类
|
||
/// </summary>
|
||
/// <value>
|
||
/// 烟幕弹的类型(红外、毫米波、多谱段)
|
||
/// </value>
|
||
public SmokeType Type { get; set; }
|
||
|
||
/// <summary>
|
||
/// 发射数量
|
||
/// </summary>
|
||
/// <value>
|
||
/// 单次发射的烟幕弹数量
|
||
/// </value>
|
||
public int Count { get; set; }
|
||
#endregion
|
||
|
||
#region 性能参数
|
||
/// <summary>
|
||
/// 爆炸高度
|
||
/// </summary>
|
||
/// <value>
|
||
/// 烟幕弹爆炸的理想高度,单位:米(m)
|
||
/// </value>
|
||
public float ExplosionHeight { get; set; }
|
||
|
||
/// <summary>
|
||
/// 烟幕直径
|
||
/// </summary>
|
||
/// <value>
|
||
/// 烟幕形成的理想直径,单位:米(m)
|
||
/// </value>
|
||
public float SmokeDiameter { get; set; }
|
||
|
||
/// <summary>
|
||
/// 辐射吸收率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 烟幕对电磁波的吸收率,范围:0-1
|
||
/// </value>
|
||
public float AbsorptionRate { get; set; }
|
||
|
||
/// <summary>
|
||
/// 初始浓度
|
||
/// </summary>
|
||
/// <value>
|
||
/// 烟幕形成时的初始浓度,单位:千克/立方米(kg/m³)
|
||
/// </value>
|
||
public float InitialDensity { get; set; }
|
||
#endregion
|
||
|
||
#region 时间参数
|
||
/// <summary>
|
||
/// 扩散时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 烟幕达到预期直径所需时间,单位:秒(s)
|
||
/// </value>
|
||
public float DiffusionTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 干扰响应时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 从发射到形成有效干扰的时间,单位:秒(s)
|
||
/// </value>
|
||
public float ResponseTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 有效时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 烟幕维持有效干扰的时间,单位:秒(s)
|
||
/// </value>
|
||
public float EffectiveTime { get; set; }
|
||
#endregion
|
||
|
||
#region 干扰功率参数
|
||
/// <summary>
|
||
/// 最大干扰功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器能够输出的最大功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double MaxJammingPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 初始干扰功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器启动时的初始功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double InitialJammingPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 功率增长率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰功率的增长速率,单位:瓦特/秒(W/s)
|
||
/// </value>
|
||
public double PowerIncreaseRate { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大冷却时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器停止后需要的冷却时间,单位:秒(s)
|
||
/// </value>
|
||
public double MaxJammingCooldown { get; set; }
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 发射角度设为45度
|
||
/// - 烟幕类型设为多谱段
|
||
/// - 发射数量设为1
|
||
/// - 其他参数设置为合理的默认值
|
||
/// </remarks>
|
||
public SmokeJammerConfig()
|
||
{
|
||
Id = "";
|
||
LaunchAngle = (float)(Math.PI / 4); // 45度
|
||
Type = SmokeType.Multispectral;
|
||
Count = 1;
|
||
|
||
ExplosionHeight = 10.0f;
|
||
SmokeDiameter = 20.0f;
|
||
AbsorptionRate = 0.8f;
|
||
InitialDensity = 0.5f;
|
||
|
||
DiffusionTime = 3.0f;
|
||
ResponseTime = 1.0f;
|
||
EffectiveTime = 60.0f;
|
||
|
||
MaxJammingPower = 1000;
|
||
InitialJammingPower = 400;
|
||
PowerIncreaseRate = 200;
|
||
MaxJammingCooldown = 5;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 末敏弹毫米波干扰器配置类
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 定义了末敏弹毫米波干扰器的工作参数,包括:
|
||
/// - 干扰波长和角度范围
|
||
/// - 响应时间和有效距离
|
||
/// - 干扰概率和探测距离
|
||
/// - 脉冲参数
|
||
/// - 干扰功率参数
|
||
/// </remarks>
|
||
public class TerminalMillimeterWaveJammerConfig
|
||
{
|
||
/// <summary>
|
||
/// 干扰器ID
|
||
/// </summary>
|
||
/// <value>
|
||
/// 设备的唯一标识符
|
||
/// </value>
|
||
public string Id { get; set; }
|
||
|
||
#region 干扰参数
|
||
/// <summary>
|
||
/// 干扰波长范围
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器工作的波长范围,单位:毫米(mm)
|
||
/// </value>
|
||
public (double Min, double Max) WavelengthRange { get; set; }
|
||
|
||
/// <summary>
|
||
/// 角度范围
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器的工作角度范围,单位:弧度(rad)
|
||
/// </value>
|
||
public (double Min, double Max) AngleRange { get; set; }
|
||
|
||
/// <summary>
|
||
/// 响应时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 从接收到威胁到形成有效干扰的时间,单位:秒(s)
|
||
/// </value>
|
||
public double ResponseTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 有效距离
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器能够产生有效干扰的最大距离,单位:米(m)
|
||
/// </value>
|
||
public double EffectiveRange { get; set; }
|
||
|
||
/// <summary>
|
||
/// 干扰概率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 在有效距离内产生有效干扰的概率,范围:0-1
|
||
/// </value>
|
||
public double JammingProbability { get; set; }
|
||
|
||
/// <summary>
|
||
/// 探测距离
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器能够探测到威胁的最大距离,单位:米(m)
|
||
/// </value>
|
||
public double DetectionRange { get; set; }
|
||
|
||
/// <summary>
|
||
/// 脉冲频率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰信号的脉冲重复频率,单位:赫兹(Hz)
|
||
/// </value>
|
||
public double PulseFrequency { get; set; }
|
||
|
||
/// <summary>
|
||
/// 脉冲宽度
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰信号的脉冲持续时间,单位:秒(s)
|
||
/// </value>
|
||
public double PulseWidth { get; set; }
|
||
|
||
|
||
#endregion
|
||
|
||
#region 干扰功率参数
|
||
/// <summary>
|
||
/// 最大干扰功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器能够输出的最大功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double MaxJammingPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 初始干扰功率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器启动时的初始功率,单位:瓦特(W)
|
||
/// </value>
|
||
public double InitialJammingPower { get; set; }
|
||
|
||
/// <summary>
|
||
/// 功率增长率
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰功率的增长速率,单位:瓦特/秒(W/s)
|
||
/// </value>
|
||
public double PowerIncreaseRate { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大冷却时间
|
||
/// </summary>
|
||
/// <value>
|
||
/// 干扰器停止后需要的冷却时间,单位:秒(s)
|
||
/// </value>
|
||
public double MaxJammingCooldown { get; set; }
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// 构造函数,设置默认值
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// 初始化时:
|
||
/// - ID设为空字符串
|
||
/// - 波长范围设为2-4mm
|
||
/// - 角度范围设为±30度
|
||
/// - 响应时间设为0.1秒
|
||
/// - 其他参数设置为合理的默认值
|
||
/// </remarks>
|
||
public TerminalMillimeterWaveJammerConfig()
|
||
{
|
||
Id = "";
|
||
WavelengthRange = (2.0, 4.0); // 2-4毫米
|
||
AngleRange = (-Math.PI/6, Math.PI/6); // ±30度
|
||
ResponseTime = 0.1; // 0.1秒
|
||
EffectiveRange = 1000.0; // 1000米
|
||
JammingProbability = 0.8; // 80%成功率
|
||
DetectionRange = 2000.0; // 2000米
|
||
PulseFrequency = 1000.0; // 1000Hz
|
||
PulseWidth = 1e-6; // 1微秒
|
||
|
||
MaxJammingPower = 1000.0; // 1000瓦
|
||
InitialJammingPower = 400.0; // 400瓦
|
||
PowerIncreaseRate = 2000.0; // 2000瓦/秒
|
||
MaxJammingCooldown = 5.0; // 5秒
|
||
}
|
||
}
|
||
}
|