增加了频谱特性参数,在基类中进行初始化。各导弹类还未实现。

This commit is contained in:
Tian jianyong 2025-02-25 15:35:08 +08:00
parent 0019f795f8
commit eb30b4702d
3 changed files with 72 additions and 21 deletions

View File

@ -151,6 +151,9 @@ namespace ThreatSource.Missile
{
// 更新导弹运动状态
UpdateMotionState(deltaTime);
// 更新频谱特性
UpdateSpectralSignature();
// 检查是否应该自毁
if (ShouldSelfDestruct())

View File

@ -62,6 +62,38 @@ namespace ThreatSource.Simulation
/// </remarks>
public virtual Orientation Orientation { get; set; }
/// <summary>
/// 雷达散射截面积RCS单位平方米
/// </summary>
/// <remarks>
/// 雷达散射截面积RCS单位平方米
/// </remarks>
public double RadarCrossSection { get; protected set; }
/// <summary>
/// 红外辐射强度,单位:瓦特/球面度
/// </summary>
/// <remarks>
/// 红外辐射强度,单位:瓦特/球面度
/// </remarks>
public double InfraredRadiationIntensity { get; protected set; }
/// <summary>
/// 紫外辐射强度,单位:瓦特/球面度
/// </summary>
/// <remarks>
/// 紫外辐射强度,单位:瓦特/球面度
/// </remarks>
public double UltravioletRadiationIntensity { get; protected set; }
/// <summary>
/// 毫米波辐射强度,单位:瓦特/球面度
/// </summary>
/// <remarks>
/// 毫米波辐射强度,单位:瓦特/球面度
/// </remarks>
public double MillimeterWaveRadiationIntensity { get; protected set; }
/// <summary>
/// 获取仿真元素是否处于活动状态
/// </summary>
@ -118,6 +150,20 @@ namespace ThreatSource.Simulation
/// </remarks>
public abstract void Update(double deltaTime);
/// <summary>
/// 更新频谱特性
/// </summary>
/// <remarks>
/// 基类中提供默认实现,子类可以重写
/// </remarks>
protected virtual void UpdateSpectralSignature()
{
RadarCrossSection = 1.0; // 默认RCS值
InfraredRadiationIntensity = 10.0; // 默认红外辐射强度,单位:瓦特/球面度
UltravioletRadiationIntensity = 10.0; // 默认紫外辐射强度,单位:瓦特/球面度
MillimeterWaveRadiationIntensity = 10.0; // 默认毫米波辐射强度,单位:瓦特/球面度
}
/// <summary>
/// 获取仿真元素的状态信息
/// </summary>

View File

@ -23,25 +23,6 @@ namespace ThreatSource.Target
/// </remarks>
public string Type => "Tank";
/// <summary>
/// 获取坦克的雷达散射截面积
/// </summary>
/// <remarks>
/// 单位:平方米
/// 固定值10.0,表示标准坦克的雷达反射特性
/// </remarks>
public double RadarCrossSection => 10.0;
/// <summary>
/// 获取坦克的红外辐射强度
/// </summary>
/// <remarks>
/// 单位:瓦特/球面度
/// 固定值500.0,表示坦克发动机和装甲的热辐射特性
/// 典型值200-500 W/sr
/// </remarks>
public double InfraredRadiationIntensity => 500.0;
/// <summary>
/// 获取坦克的毫米波辐射温度
/// </summary>
@ -50,7 +31,7 @@ namespace ThreatSource.Target
/// 固定值400.0,表示坦克的毫米波辐射特征
/// 典型值350-450K
/// </remarks>
public double MillimeterWaveRadiationTemperature => 400.0;
public double MillimeterWaveRadiationTemperature { get; set; } = 400.0;
/// <summary>
/// 获取坦克的激光反射率
@ -59,7 +40,7 @@ namespace ThreatSource.Target
/// 无量纲取值范围0-1
/// 固定值0.3,表示坦克表面对激光的反射特性
/// </remarks>
public double LaserReflectivity => 0.3;
public double LaserReflectivity { get; set; } = 0.3;
/// <summary>
/// 获取或设置坦克的当前生命值
@ -114,6 +95,8 @@ namespace ThreatSource.Target
public Tank(string id, Vector3D position, double speed, ISimulationManager simulationManager)
: base(id, position, new Orientation(), speed, simulationManager)
{
// 初始化频谱特性
UpdateSpectralSignature();
}
/// <summary>
@ -129,6 +112,25 @@ namespace ThreatSource.Target
{
// 更新坦克的位置
Position += Velocity * deltaTime;
// 更新频谱特性
UpdateSpectralSignature();
}
/// <summary>
/// 更新频谱特性的默认实现
/// </summary>
/// <remarks>
/// 提供坦克的频谱特性
/// </remarks>
protected override void UpdateSpectralSignature()
{
RadarCrossSection = 10.0; // 坦克RCS值
InfraredRadiationIntensity = 500.0; // 坦克红外辐射强度
UltravioletRadiationIntensity = 15.0; // 坦克紫外辐射强度
MillimeterWaveRadiationIntensity = 10.0; // 坦克毫米波辐射强度
MillimeterWaveRadiationTemperature = 400.0; // 坦克毫米波辐射温度
LaserReflectivity = 0.3; // 坦克激光反射率
}
/// <summary>