From ae478990807ddb221bfb9a586fef41d686b8cc62 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Tue, 16 Jun 2026 17:33:23 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E6=83=B3=E5=AE=9A?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=A1=A8=E3=80=81=E4=BB=BB=E5=8A=A1=E8=B7=9F?= =?UTF-8?q?=E8=B8=AA=E3=80=81=E5=AE=9E=E4=BD=93=E4=BA=8B=E4=BB=B6=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E8=87=B3=20Phase=2010=20=E5=AE=8C=E6=88=90=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/design/technical/仿真器实体与事件映射.md | 21 +++++---- docs/design/想定参数对照表.md | 43 +++++++------------ .../tasks/实施计划与任务跟踪.md | 4 +- 3 files changed, 29 insertions(+), 39 deletions(-) diff --git a/docs/design/technical/仿真器实体与事件映射.md b/docs/design/technical/仿真器实体与事件映射.md index 7429db6..98c6b45 100644 --- a/docs/design/technical/仿真器实体与事件映射.md +++ b/docs/design/technical/仿真器实体与事件映射.md @@ -22,18 +22,19 @@ | `OnDroneReachedTarget` | 到达最后航路点 | `DroneEntity` | 显示"目标抵达"提示 | | `OnZoneIntruded` | 无人机进入管控区 | `DroneEntity`, `ControlZoneEntity` | 红色警报 | | `OnSimulationEnded` | 所有无人机状态 ≠ Flying | 无 | 显示结果面板,触发报告生成 | +| `PlanningFailed` | planner 无法生成拦截方案(引擎发出 SimEvent,无回调) | 无(通过 `SimEventType.PlanningFailed` 事件流传递) | 前端显示规划失败原因 | ## 实体 × 事件 矩阵 -| | TargetDetected | MunitionLaunched | CloudGenerated | DroneDestroyed | ReachedTarget | ZoneIntruded | SimEnded | -|------|:---:|:---:|:---:|:---:|:---:|:---:|:---:| -| DroneEntity | ✅ | | | ✅ | ✅ | ✅ | | -| PlatformEntity | | ✅ | | | | | | -| MunitionEntity | | ✅ | | | | | | -| CloudEntity | | | ✅ | | | | | -| ControlZoneEntity | | | | | | ✅ | | -| DetectionEntity | ✅ | | | | | | | -| 全局 | | | | | | | ✅ | +| | TargetDetected | MunitionLaunched | CloudGenerated | DroneDestroyed | ReachedTarget | ZoneIntruded | SimEnded | PlanningFailed | +|------|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| +| DroneEntity | ✅ | | | ✅ | ✅ | ✅ | | | +| PlatformEntity | | ✅ | | | | | | | +| MunitionEntity | | ✅ | | | | | | | +| CloudEntity | | | ✅ | | | | | | +| ControlZoneEntity | | | | | | ✅ | | | +| DetectionEntity | ✅ | | | | | | | | +| 全局 | | | | | | | ✅ | ✅ | ## 数据流 @@ -45,6 +46,8 @@ SimulationEngine.Initialize() │ ├─ BuildFireUnits() → List ├─ BuildDroneWaves() → List + ├─ IDefensePlanner.Plan() → FireSchedule + │ └─ MergedSchedule.Count == 0 → PlanningFailed 事件 │ ▼ IDefensePlanner.Plan(fireUnits, threats, scene) diff --git a/docs/design/想定参数对照表.md b/docs/design/想定参数对照表.md index b5a6b84..ad2a046 100644 --- a/docs/design/想定参数对照表.md +++ b/docs/design/想定参数对照表.md @@ -21,46 +21,33 @@ | ID | 类型 | 雷达 | 光电 | 红外 | 3D 球冠 | 初速/巡航 | |------|------|------:|------:|------:|------|:---:| -| ground-light | 地基 | 10000m | 6000m | 3000m | -5°~85°, 30m~20km | 800m/s | +| ground-light | 地基 | 6000m | 4000m | 2000m | -5°~85°, 30m~20km | 800m/s | | ground-standard | 地基 | 15000m | 8000m | 5000m | -5°~85°, 30m~20km | 800m/s | -| ground-heavy | 地基 | 20000m | 10000m | 6000m | -5°~85°, 30m~25km | 600m/s | -| air-standard | 空基 | — | 12000m | 8000m | -80°~30°, 30m~15km | 55m/s | +| ground-heavy | 地基 | 8000m | 5000m | 3000m | -5°~85°, 30m~25km | 600m/s | +| air-standard | 空基 | — | 9600m | 6000m | -80°~30°, 30m~15km | 80m/s | --- ## 三、Demo 想定对照 -| # | 想定 | 无人机 | 高度 | 速度 | 航路 | 火力单元 | 位置 | 探测覆盖 | +| # | 想定 | 无人机 | 高度 | 速度 | 航路 | 火力单元 | 位置 | 探测 | |---|------|------|:---:|:---:|:---:|------|------|:---:| | 1 | 无防御 | shahed | 400m | 600 | 3km | — | — | — | | 2 | 管控区侵入 | electric-scout | 300m | 300 | 3km | — | — | — | -| 3 | 活塞拦截-西风5ms | shahed | 500m | 200 | 5km | ground-light | (1500,0,50) | 全程覆盖 | -| 4 | 喷气拦截-活性材料 | cruise-missile | 800m | 200 | 5km | ground-standard | (1500,0,50) | 全程覆盖 | -| 5 | 空基拦截-东风5ms | shahed | 500m | 200 | 20km | air-standard | (8000,1000,0) | 全程覆盖 | -| 6 | 3架空基编队 ⏸️ | shahed×3 | 500m | 200 | 20km | air-standard×3 | (8000,1000,0) | 全程覆盖 | +| 3 | 活塞拦截-西风5ms | shahed | 500m | 200 | **7km** | ground-light | **(7000,0,50)** | 80%覆盖 | +| 4 | 喷气拦截-活性材料 | cruise-missile | 500m | 200 | **10km** | ground-standard | **(10000,0,50)** | 全程覆盖 | +| 5 | 空基拦截-东风5ms | shahed | 500m | 200 | 20km | air-standard | **(6000,1000,0)** | 80%覆盖 | +| 6 | 3架空基编队 ⏸️ | shahed×3 | 500m | 200 | 20km | air-standard×3 | (12000,1000,0) | — | --- -## 四、探测覆盖分析 +## 四、拦截点计算 -| 想定 | 单元距起点 | 探测范围 | 无人机进入点 | DetectArc | 判定 | -|------|------:|------:|------|:---:|------| -| 活塞拦截 | 1500m | 10000m | X=0(起点在圈内) | 0 | ⚠️ 全程覆盖 | -| 喷气拦截 | 1500m | 15000m | X=0(起点在圈内) | 0 | ⚠️ 全程覆盖 | -| 空基拦截 | 8000m | 12000m | X=0(起点在圈内) | 0 | ⚠️ 全程覆盖 | -| 3架空基 | 8000m | 12000m | X=0(起点在圈内) | 0 | ⚠️ 全程覆盖 | - -### 结论 - -4 个有拦截的想定中,**探测范围全部远大于无人机起点到火力单元的距离**,无人机从航路起点就在覆盖圈内(`DetectArc = 0`)。这意味着: - -- 3D 球冠参数(俯仰角/高度门限)虽然已配置,但**在当前想定中从未触发过滤效果** -- `IsInCoverage` 采样法虽然每次都在执行,但第一个采样点就返回 true -- 实时探测 `DetectionEntity` 的 Tick 第 5 步会被触发,但 `TargetDetected` 事件发生在第 0 帧附近 - -### 建议 - -若要真正测试 3D 球冠效果和探测延迟,需缩小探测范围或拉远火力单元位置,使无人机在航路中段才进入覆盖。 +| 想定 | 算法 | 探测弧长 | R+exp+fall | 拦截弧长 | 炮弹/平台时间 | +|------|------|------:|------:|------:|------:| +| 活塞 | `InterceptCalculator.Compute`(可变角度抛物线) | ~1021m | 5+27s | 由算法求解 | 由算法求解 | +| 喷气 | `InterceptCalculator.Compute`(可变角度抛物线) | 0 | 5+30s | 由算法求解 | 由算法求解 | +| 空基 | `InterceptCalculator.ComputeHorizontal`(θ=0°平抛) | 0 | 5+27+10s | 由算法求解 | 算法 + 平台飞行 | --- @@ -68,4 +55,4 @@ | 日期 | 变更 | |------|------| -| 2026-06-16 | 初始创建。cruise-missile 速度 300→200。空基航路 10km→20km,位置 1500→8000。3D 球冠参数全部加入。 | +| 2026-06-16 | 初始创建。Phase 10 完成。地基放终点+80%探测;空基平抛算法;拦截点由 InterceptCalculator 求解。 | diff --git a/docs/implementation/tasks/实施计划与任务跟踪.md b/docs/implementation/tasks/实施计划与任务跟踪.md index e531264..059bab0 100644 --- a/docs/implementation/tasks/实施计划与任务跟踪.md +++ b/docs/implementation/tasks/实施计划与任务跟踪.md @@ -141,7 +141,7 @@ Phase 10 ✅ 探测实时链路(已完成) | 指标 | 值 | |------|------| -| 测试总数 | **216**(通过 214,跳过 2) | +| 测试总数 | **231**(通过 229,跳过 2) | | 行覆盖率 | **95.4%**(待重测) | | 分支覆盖率 | **80.5%**(待重测) | | 执行时间 | ~7 秒 | @@ -225,7 +225,7 @@ Phase 10 ✅ 探测实时链路(已完成) --- -## 六、Phase 10:探测实时链路开发 ⏳(设计完成,待开发) +## 六、Phase 10:探测实时链路开发 ✅(已完成) **目标**:实现仿真运行时实时探测(链路 B),产生 `TargetDetected` 事件 + 可视化数据;并将 planner 探测判定升级到 3D 球冠。 **前置设计**:《总体架构设计》第十四章(V13),5 项行为决策已确认(见 14.6)。