From 53ac665a0ee0fe3e3c052f9c9341b0d9650191d5 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Sat, 13 Jun 2026 19:39:15 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20VERSION=E2=86=920.4.0,=20CHANGELOG=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0,=20=E4=BB=BB=E5=8A=A1=E8=B7=9F=E8=B8=AA?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 34 ++++++++++++++++++- VERSION | 2 +- .../tasks/实施计划与任务跟踪.md | 4 +-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ade00bc..8cc8d66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,39 @@ --- -## [0.3.0] - 2026-06-13 +## [0.4.0] - 2026-06-13 + +### Added + +- 路径积分毁伤判定:`DamageAssessment.PathInSphere` 替代离散 `ContainsPoint`,无人机穿云暴露精确计算 +- 损伤模型暴露所需暴露时间:`IDamageModel.RequiredExposureSeconds`,Planner 从损伤模型读取所需覆盖时长 +- 云团膨胀独立模块:`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 diff --git a/VERSION b/VERSION index 0d91a54..1d0ba9e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.0 +0.4.0 diff --git a/docs/implementation/tasks/实施计划与任务跟踪.md b/docs/implementation/tasks/实施计划与任务跟踪.md index 15b2df5..fdf9192 100644 --- a/docs/implementation/tasks/实施计划与任务跟踪.md +++ b/docs/implementation/tasks/实施计划与任务跟踪.md @@ -160,9 +160,9 @@ Phase 8 ⬜ 待开发 |---|------|------| | 8.1.1 | 探测设备搜索逻辑 | `DetectionEntity` 类已存在,需接入 `SimulationEngine` 实现探测→火控链路闭环 | | 8.1.2 | 蜂群运动模型 | `FormationMode.Swarm` 枚举已定义,需差异化行为(随机扰动、个体差异) | -| 8.1.3 | 空基平台 + DefensePlanner | ✅ 五步规划引擎,通道模型,物理间隔错发,按目标点独立计时,141 测试全过 | ✅ | +| 8.1.3 | 空基平台 + DefensePlanner | ✅ 五步规划引擎,通道模型,物理间隔错发,路径积分毁伤判定 | ✅ | | 8.1.4 | 预置典型目标库 | 具体无人机型号 JSON 配置(如 DJI Mavic 3、Shahed-136 等),导入 `TargetConfig` 默认值 | -| 8.1.5 | 毁伤曲线参数校准 | 三种毁伤模型的 damageRate/threshold/burstDamage 需甲方/领域专家确认后写入 | +| 8.1.5 | 毁伤曲线参数校准 | ✅ RequiredExposureSeconds 替代硬编码,密度阈值统一在引擎检查 | ✅ | | 8.1.6 | Fallback/default 清理 | ✅ 删除所有硬编码默认值和静默 fallback,参数缺失即报错 | ✅ | ### 8.2 报告与导出