- 3D球冠探测: IsInCoverage, DetectionEntity, Tick 第5步扫描 - 探测融合: EarliestDetection 采样法, break 修复 - planner 诊断: HasInterceptWindow 拦截窗口检查 - TryGenerateFireEvents 返回拒绝原因 - Summary 含失败原因+建议值(探测范围/弧长) - PlanningFailed 事件: 引擎在规划失败时发出事件 - 硬编码消除: Phase2Duration→AmmunitionSpec ExpansionFactor/TimingSafetyMargin→PlannerConfig 速度从 waypoint.Speed 读取(不用 TypicalSpeed) - TestData 改为从 seeded 数据库读取(不再内嵌 JSON) - 默认数据加 3D球冠参数,巡航导弹速度300→200 空基航路10km→20km, 位置调整 - 222 测试全通过
56 lines
1.8 KiB
C#
56 lines
1.8 KiB
C#
using System;
|
||
using SQLite;
|
||
|
||
namespace CounterDrone.Core.Models
|
||
{
|
||
/// <summary>弹药基础参数(第三方数据)</summary>
|
||
[Table("AmmunitionSpec")]
|
||
public class AmmunitionSpec
|
||
{
|
||
[PrimaryKey]
|
||
public string Id { get; set; } = Guid.NewGuid().ToString();
|
||
|
||
public int AerosolType { get; set; }
|
||
|
||
public string Name { get; set; } = string.Empty;
|
||
|
||
// 初始扩散状态
|
||
public double InitialRadius { get; set; }
|
||
|
||
public double InitialVolume { get; set; }
|
||
|
||
public double CoreDensity { get; set; }
|
||
|
||
public double EdgeDensity { get; set; }
|
||
|
||
public double InitialTemperature { get; set; }
|
||
|
||
public double BuoyancyFactor { get; set; }
|
||
|
||
// 弹药基础参数
|
||
public double EffectiveConcentration { get; set; }
|
||
|
||
/// <summary>源强 Q(kg),PG 大气扩散模型用</summary>
|
||
public double SourceStrength { get; set; } = 50.0;
|
||
|
||
/// <summary>基础扩散速率(m/s),线性模型用</summary>
|
||
public double DispersionRateBase { get; set; } = 3.0;
|
||
|
||
/// <summary>爆发药 TNT 当量(kg),决定 Phase 1 初始火球半径</summary>
|
||
public double BurstChargeKg { get; set; } = 0.3;
|
||
|
||
/// <summary>湍流扩散系数,Phase 2 中 R=R₀+k√t 的 k 值</summary>
|
||
public double TurbulentExpansionK { get; set; } = 5.0;
|
||
|
||
/// <summary>Phase 2 湍流膨胀持续时间(s),之后进入 Phase 3 高斯扩散。默认 30s</summary>
|
||
public double Phase2Duration { get; set; } = 30.0;
|
||
|
||
public double MaxRadius { get; set; }
|
||
|
||
public double MaxDuration { get; set; }
|
||
|
||
/// <summary>粒子渲染参数 JSON</summary>
|
||
public string ParticlesJson { get; set; } = "{}";
|
||
}
|
||
}
|