设计文档: 多批次多编队支持 — RoutePlan改复合PK + 独立拦截方案 + 报告汇总
This commit is contained in:
parent
9ac4a8494c
commit
a0d8afb42a
@ -257,7 +257,7 @@ CounterDroneBackend_Data/
|
||||
TargetConfig — 步骤2:目标配置
|
||||
EquipmentDeployment — 步骤3:装备部署(搭载平台+探测设备)
|
||||
CloudDispersal — 步骤4:云团抛撒配置
|
||||
RoutePlan — 步骤5:航路规划
|
||||
RoutePlan — 步骤5:航路规划(1:N SimTask,多编队)
|
||||
Waypoint — 航路点
|
||||
Group — 编组(独立管理)
|
||||
SimulationReport — 仿真报告
|
||||
@ -414,10 +414,12 @@ CounterDroneBackend_Data/
|
||||
|
||||
#### RoutePlan — 步骤5:航路规划
|
||||
|
||||
> **支持多批次**:通过 `TaskId + GroupId` 唯一标识一条航路,一个任务可有多个编队各自独立航路。
|
||||
|
||||
| 字段 | 类型 | 约束 | 说明 |
|
||||
|------|------|------|------|
|
||||
| TaskId | TEXT | PK, FK | 1:1 SimTask |
|
||||
| GroupId | TEXT | FK | 关联无人机编队 Group |
|
||||
| TaskId | TEXT | PK(复合) | |
|
||||
| GroupId | TEXT | PK(复合), FK → Group | 关联编队:同一任务不同编队可有独立航路 |
|
||||
| FormationMode | INTEGER | | 0单机 1编队 2蜂群 |
|
||||
| FormationSpacing | REAL | DEFAULT 50 | m |
|
||||
| ETA | TEXT | | 预计到达时间 |
|
||||
@ -1268,8 +1270,8 @@ interface IScenarioService
|
||||
void SaveRoute(string taskId, RoutePlan route, List<Waypoint> wps);
|
||||
void UpdateStep(string taskId, int step);
|
||||
|
||||
// 算法推荐(NEW)
|
||||
DispersalRecommendation GetDispersalRecommendation(string taskId);
|
||||
// 综合防御推荐(NEW — 多编队版)
|
||||
DefenseRecommendation GetDefenseRecommendation(string taskId);
|
||||
}
|
||||
|
||||
// === 仿真引擎 ===
|
||||
@ -1308,6 +1310,79 @@ interface IReportService
|
||||
|
||||
---
|
||||
|
||||
## 九-A、多批次多编队设计
|
||||
|
||||
### 数据模型
|
||||
|
||||
一个仿真任务可包含**多种类型、多批次**的无人机,每批次(编队)有独立的航路:
|
||||
|
||||
```
|
||||
SimTask "城市防御演习"
|
||||
├── CombatScene(共享)
|
||||
├── ControlZone[](共享)
|
||||
├── CloudDispersal(共享:云团参数,具体拦截方案由算法确定)
|
||||
│
|
||||
├── 编队 A(活塞×3) ← Group.Id
|
||||
│ ├── TargetConfig(类型=活塞,数量=3)
|
||||
│ ├── RoutePlan(航路 A:北→南)
|
||||
│ └── Waypoint[]
|
||||
│
|
||||
├── 编队 B(喷气×2) ← Group.Id
|
||||
│ ├── TargetConfig(类型=高速,数量=2)
|
||||
│ ├── RoutePlan(航路 B:西→东)
|
||||
│ └── Waypoint[]
|
||||
│
|
||||
└── 编队 C(旋翼×5) ← Group.Id
|
||||
├── TargetConfig(类型=旋翼,数量=5)
|
||||
├── RoutePlan(航路 C)
|
||||
└── Waypoint[]
|
||||
```
|
||||
|
||||
**关键变更**:`RoutePlan` 主键从 `TaskId` 改为 `(TaskId, GroupId)` 复合键。
|
||||
|
||||
### 推荐算法
|
||||
|
||||
```csharp
|
||||
// 多批次:为每个编队独立生成拦截方案
|
||||
var allSolutions = new List<DefenseSolution>();
|
||||
foreach (var (target, route) in threat.Groups)
|
||||
{
|
||||
var rec = advisor.Recommend(target, route, environment);
|
||||
allSolutions.Add(rec.Best);
|
||||
}
|
||||
|
||||
// 合并所有发射计划,PlatformIndex 去重
|
||||
var mergedSchedule = MergeFireSchedules(allSolutions);
|
||||
engine.SetFireSchedule(mergedSchedule);
|
||||
```
|
||||
|
||||
### 数据表变更
|
||||
|
||||
| 表 | 变更 |
|
||||
|------|------|
|
||||
| `RoutePlan` | PK 改为 (TaskId, GroupId) 复合键 |
|
||||
| `TargetConfig` | 不变(已有 GroupId FK) |
|
||||
| `Waypoint` | 关联 `(TaskId, GroupId)` 定位航路 |
|
||||
|
||||
`IScenarioService` 新增:
|
||||
```csharp
|
||||
void SaveRoute(string taskId, string groupId, RoutePlan route, List<Waypoint> wps); // groupId 参数
|
||||
```
|
||||
|
||||
### 报告
|
||||
|
||||
报告新增多编队汇总:
|
||||
|
||||
```markdown
|
||||
## 编队汇总
|
||||
| 编队 | 目标 | 数量 | 拦截方案 | 结果 |
|
||||
|------|------|------|------|------|
|
||||
| 编队A | 活塞 | 3 | 惰性气体 12发 | ✅ 全毁 |
|
||||
| 编队B | 喷气 | 2 | 活性材料 8发 | ⚠️ 1逃脱 |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 十、配置向导步骤(整合后)
|
||||
|
||||
整合需求 V1.0 和技术要求终版后,配置向导保持 5 步但内容调整:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user