CounterDroneBackend/CHANGELOG.md

5.1 KiB
Raw Blame History

Changelog


[0.4.0] - 2026-06-13

Added

  • 路径积分毁伤判定:DamageAssessment.PathInSphere 替代离散 ContainsPoint,无人机穿云暴露精确计算
  • 损伤模型暴露所需暴露时间:IDamageModel.RequiredExposureSecondsPlanner 从损伤模型读取所需覆盖时长
  • 云团膨胀独立模块:CloudExpansionModel,封装 RadiusAt/DensityAt/TimeToReach/TimeToDensity/RoundsNeeded
  • 单元测试:DamageAssessment 5 项 (穿心/相邻/间隙/9 链/跨云)、Kinematics 抛物线 4 项 (45°标准公式验证)
  • 密度阈值统一:引擎处 cloudDensity >= ammo.EffectiveConcentration 统一检查,三个损伤模型去掉各自硬编码阈值

Changed

  • Planner CalcRoundsNeeded 从硬编码 2:6s 改为 _damageModel.RequiredExposureSeconds
  • CloudExpansionModel.RoundsNeeded 间距 = 2R(消除 1.5f 魔法数字)
  • FireUnit = 物理单元不拆通道Planner 一辆车发一条线
  • MunitionEntity.HasArrived 上升段触发(不再要求下行),附带精确插值
  • 空基平台投放逻辑:飞向云位、距目标 driftDist 释放、位置插值保留
  • 仿真场景缩短Piston 5km/150km/h、Jet 5km/200km/h、AirBased 10km/150km/h全量 22s

Fixed

  • 抛物线弹道精确求解:CalculateLaunchAngle/ParabolicShellTime 解 tan(θ) 二次方程取平射解
  • 空基 PlatformEntity 投放时不再传送到终点
  • 缺失 else 导致空基走地基分支
  • Event.OccurredAt 使用精确 FireEvent.FireTime/m.ArrivalTime
  • _frameDb.Commit 批量 50 帧
  • 报告火力单元计数(_entityCounter 重置)

Removed

  • ComputeEffectiveRadius 公式转移到 CloudExpansionModel
  • 损伤模型内部浓度阈值(TriggerThreshold/EffectiveThreshold
  • CalcRoundsNeeded /2 魔法加 1

Added

  • DefensePlanner 防御规划引擎:五步流水线(威胁排序 → 弹药匹配 → 候选生成 → 贪心分配 → 时序生成)
  • 空基平台飞行与投弹状态机Idle → FlyingToTarget → ReadyToRelease载机速度继承弹药抛物线下落
  • 火力单元通道模型GunCount × ChannelsPerGunChannelInterval 物理间隔Cooldown 冷却
  • 默认火力单元配置4 种模板(轻型/标准/重地基 + 标准空基 8 通道)
  • 推荐算法统一处理空基/地基平台类型
  • 物理间隔错开发射:发射间隔 = 云团直径 / 无人机速度
  • 每发弹按目标点位置独立计算到达时间
  • 报告显示 per-unit 发射数 + 事件标注火力单元

Changed

  • IDefenseAdvisor → IDefensePlanner统一输入 List<FireUnit> + List<DroneGroup>
  • FireUnit 重构:统一表达空基/地基平台Type/Position/GunCount/ChannelsPerGun
  • SimulationEngine 内部调用 Planner 自动生成发射计划
  • MunitionEntity 空投使用 Kinematics.AirDropPosition继承载机速度 + 重力)
  • PlatformEntity 加入 CurrentVelocity 属性

Fixed

  • 同平台多弹 FireTime 相同导致冷却跳过FireTime += i × Cooldown
  • 同平台弹药飞行时间按目标位置变化被吃掉:统一用中心点飞行时间
  • recommendedTiming 按每发目标点独立计算(非中点)
  • 空基 FireEvent.MuzzleVelocity 错误写 800
  • SQLite domain reload 崩溃SqliteConnectionTracker + AssemblyReloadEvents.beforeAssemblyReload

Removed

  • IDefenseAdvisor / DefaultDefenseAdvisor / RecommendMultiGroup
  • SimulationRunner.BuildFireSchedule fallback
  • 所有硬编码默认值55f/800f/1000f/+500f/0.1f clamp
  • 所有静默 fallbacknull return/empty events
  • Models.SimEvent 死代码

[0.2.0] - 2026-06-12

Added

  • 三阶段气溶胶扩散模型(爆轰膨胀 → 湍流扩散 → 高斯扩散)
  • 防御推荐算法:根据弹药规格自动计算齐射数、间距、拦截概率
  • 仿真引擎事件驱动OnMunitionLaunched / OnCloudGenerated / OnDroneDestroyed 等 6 个事件
  • FireSchedule 发射计划:推荐方案直接生成,引擎执行
  • 多编队多批次支持RoutePlan 多航路、RecommendMultiGroup 火力分配
  • 仿真报告:七章结构(结果/环境/目标/推荐/部署/时序/时间线),自动导出 Markdown
  • 数据库种子:首次建表自动从 JSON 导入弹药规格
  • 帧数据 TTL 清理6 个月过期自动删除)
  • 仿真加速TimeScale 支持
  • Unity Manager 桥接层ModelManager / ScenarioManager / SimulationRunner / ReportManager / ReplayController / GroupManager
  • Unity 全流程验证:一键菜单验证 7 个模块
  • 边界测试:空部署 / 强风 / 超长航路 / 空基弹药

Changed

  • 仿真引擎重构为纯执行器,不包含决策逻辑
  • RoutePlan 主键改为 Id支持多编队
  • 弹药参数改为 JSON 文件配置
  • 报告结构重组,结果前置

Fixed

  • 弹药飞行时间用真实弹道计算
  • 云团生成位置使用目标坐标
  • 编队偏移应用到初始位置
  • Edit 模式下 AddComponent 不触发 Awake

[0.1.0] - 2026-06-11

Added

  • 项目初始化:.NET Standard 2.1 类库 + xUnit 测试框架
  • 数据模型11 张业务表 + 2 张运行时表)
  • SQLite 持久化 + 任务分库架构
  • 想定管理5 步配置 CRUD
  • 仿真引擎基础框架