ActiveProtect/src/Simulation/SimulationConfig.cs

1122 lines
32 KiB
C#
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.

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秒
}
}
}