当然,以下是您提供的内容,整理为标准、规范的 Markdown 格式(可直接用于论文、报告或GitHub文档中使用):
问题一:数学模型与求解方法
一、模型基本元素与符号定义
1. 无人机航迹(Trajectory)
无人机航迹被离散化为一系列时间点上的状态,记为序列
其中:
-
每个状态点 \(S_i\) 包含:
- 时间戳 \(t_i\) (单位:s),且满足 \(t_{i+1} - t_i = 1 \text{s}\);
- 三维空间位置 \(\mathbf{p}_i = (x_i, y_i, z_i)\)(单位:m);
- 三维速度矢量 \(\mathbf{v}_i = (v_{x,i}, v_{y,i}, v_{z,i})\)(单位:m/s)。
代码对应:
trajectory.py
中的Trajectory
与TrajectoryPoint
类。
2. 雷达部署(Radar Deployment)
红方部署了 4 部 A 型雷达,构成雷达集合
每部雷达 \(R_j\) 的属性包括:
-
位置坐标:
\(\mathbf{p}^{(R_j)} = (x_j, y_j, z_j)\),
其中 \(z_j\) 为地形高程加上天线高度 \(h\)。 -
性能参数:
- 最大探测距离 \(R_{\max}\)
- 最优探测距离 \(R_o\)
- 俯仰角范围 \([\theta_{\min}, \theta_{\max}]\)
- 探测概率范围 \([P_{d,\min}, P_{d,\max}]\)
- 天线高度 \(h\)
- 最低遮挡仰角裕度 \(\alpha_{\text{clear}}\)(题中为 1°)
代码对应:
radar.py
中的Radar
类,在main.py
的load_radars
函数中初始化。
3. 地形(Terrain)
地形由离散高程矩阵 \(H\) 表示,网格间距为 \(\Delta x = \Delta y = 25\text{m}\)。
任意点 \((x, y)\) 的地面高程 \(h(x, y)\) 通过双线性插值得到。
代码对应:
terrain.py
中的TerrainGrid
类,其elevation(x, y)
方法实现双线性插值。
二、核心计算模型
1. 雷达-目标几何关系
对于任意雷达 \(R_j\) 与航路点 \(S_i\),计算:
-
斜距(Slant Range):
\[d_{ij} = \|\mathbf{p}_i - \mathbf{p}^{(R_j)}\| \] -
俯仰角(Elevation Angle):
\[\theta_{ij} = \arcsin\left(\frac{z_i - z_j}{d_{ij}}\right) \]
代码对应:
geometry.py
中的distance
与elevation_angle
函数。
2. 探测条件判定
航路点 \(S_i\) 被雷达 \(R_j\) 探测到需同时满足以下条件:
(1) 视线无遮挡(LoS)
沿雷达与目标点连线采样,计算每个采样点的地形仰角:
取最大值:
无遮挡条件为:
代码对应:
detection.py
中的terrain_blocking_angle
函数。
(2) 在最大探测距离内
(3) 在俯仰角范围内
若任一条件不满足,则探测概率 \(P_d(R_j, S_i) = 0\)。
3. 探测概率 \(P_d\) 计算
当目标满足探测条件时,\(P_d\) 随距离变化的分段线性函数为:
代码对应:
radar.py
中的raw_probability
方法。
4. 发现概率 \(P_f\) 计算
(1) 周期平均探测概率
雷达扫描周期为 10 秒(对应 10 个航路点):
代码对应:
detection.py
中的aggregate_scan_periods
函数。
(2) 单部雷达发现概率
连续三个周期均探测成功的概率为:
代码对应:
detection.py
中的sliding_detection_probability
函数。
(3) 多部雷达联合发现概率
任一雷达发现即视为被发现:
代码对应:
detection.py
中的fused_window_detection
函数。
三、求解方法与算法流程
1. 数据加载与初始化
文件:main.py::analyze_route
- 调用
TerrainGrid.from_csv
加载 附件2:三维地形.csv; - 调用
Trajectory.from_dataframe
加载 附件1航路.csv; - 使用
load_radars
结合地形计算4部A型雷达的空间坐标并初始化参数。
2. 逐点计算探测概率
文件:detection.py::evaluate_trajectory
-
对每个航路点 \(S_i\):
-
遍历所有雷达 \(R_j\);
-
调用
evaluate_detection
:- 判断遮挡;
- 计算距离、俯仰角;
- 若可探测,则求 \(P_d(R_j, S_i)\);
- 保存结果为
DetectionSample
。
-
3. 聚合与分析
文件:main.py::analyze_route
-
对每部雷达的概率序列计算:
aggregate_scan_periods
→ 平均探测概率;sliding_detection_probability
→ 单雷达发现概率;fused_window_detection
→ 多雷达联合发现概率。
4. 结果输出
文件:outputs.py::write_problem1_excel
- 合并航迹与各雷达探测概率;
- 生成符合“第一问”格式要求的
DataFrame
; - 写入 Excel 输出文件。
四、总体流程概述
- 数据加载(地形、航迹、雷达参数)
- 几何计算(距离、角度、遮挡)
- 概率建模(探测概率、发现概率)
- 结果输出(数据文件与可视化)
该模型将问题一清晰地分解为数据处理、几何计算、概率建模与结果汇总四个阶段,与代码结构严格对应,为论文撰写提供了完整的数学与算法支撑。
是否希望我帮您把这一部分进一步润色成论文正式语言版(带段落衔接、避免列表感)?这可以直接用于论文正文。