CounterDroneBackend/src/CounterDrone.Core/Models/AmmunitionSpec.cs
tian d8470bad30 Phase 10: 探测实时链路开发 + planner 诊断 + 硬编码消除
- 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 测试全通过
2026-06-16 14:10:23 +08:00

56 lines
1.8 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 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>源强 QkgPG 大气扩散模型用</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; } = "{}";
}
}