前言:欢迎各位光临本博客,这里小编带你直接手撕精细网格搜索*,文章并不复杂,愿诸君耐其心性,忘却杂尘,道有所长!!!!**
**🔥个人主页:IF’Maxue-CSDN博客
🎬作者简介:C++研发方向学习者
📖**个人专栏:
《C语言》
《C++深度学习》
《Linux》
《数据结构》
《数学建模》**⭐️人生格言:生活是默默的坚持,毅力是永久的享受。不破不立,远方请直行!
文章目录
算法:精细网格搜索
简化思路:
核心思路:
- 精细网格搜索
先粗扫、再精修。粗扫就是在一张网格上试一堆组合(朝向每隔一些角度、速度每隔一些数值、时刻和延时也给几档),把大概在哪儿好先摸清;然后在最好的那一坨附近,用更细的步长微调,并用更小的时间步求遮蔽曲线、用插值精确扣边界。
公式
有效遮蔽时间数学模型推导
基于代码逻辑和朗伯-比尔定律的物理原理,我推导出有效遮蔽时间的精确数学公式。该公式综合考虑了几何遮蔽条件和光学遮蔽条件,是烟幕干扰效果的核心量化指标。
1. 基本定义
设:
- t t t:时间变量(秒)
- t start = t drop + t det t_{\text{start}} = t_{\text{drop}} + t_{\text{det}} tstart=tdrop+tdet:烟幕起爆时刻
- t end = t start + t dur t_{\text{end}} = t_{\text{start}} + t_{\text{dur}} tend=tstart+tdur:烟幕失效时刻
- t missile t_{\text{missile}} tmissile:导弹到达假目标时刻
- τ th \tau_{\text{th}} τth:透射率阈值(默认 0.1)
- κ \kappa κ:消光系数(m⁻¹)
- c 0 c_0 c0:初始浓度(kg/m³)
2. 有效遮蔽时间公式
有效遮蔽时间 T cover T_{\text{cover}} Tcover 定义为满足几何遮蔽和光学遮蔽双重条件的时间积分:
T cover = ∫ t start min ( t end , t missile + 5 ) 1 [ dist line ( t ) ≤ r ∧ κ ⋅ c ( t ) ⋅ L ( t ) ≥ − ln τ th ] d t \boxed{ T_{\text{cover}} = \int_{t_{\text{start}}}^{\min(t_{\text{end}},\ t_{\text{missile}}+5)} \mathbf{1}\left[ \begin{array}{c} \text{dist}_{\text{line}}(t) \leq r \\ \land \\ \kappa \cdot c(t) \cdot L(t) \geq -\ln \tau_{\text{th}} \end{array} \right] dt } Tcover=∫tstartmin(tend, tmissile+5)1 distline(t)≤r∧κ⋅c(t)⋅L(t)≥−lnτth dt
其中:
- 1 [ ⋅ ] \mathbf{1}[\cdot] 1[⋅] 为指示函数(条件满足时为1,否则为0)
- r r r:烟幕半径(默认 10.0 m)
3. 关键子函数解析
(1) 几何遮蔽条件:视线与烟幕相交
- 视线向量:
L ( t ) = R real − M ( t ) \mathbf{L}(t) = \mathbf{R}_{\text{real}} - \mathbf{M}(t) L(t)=Rreal−M(t)
其中 M ( t ) = M 0 + v m t u m \mathbf{M}(t) = \mathbf{M}_0 + v_m t \mathbf{u}_m M(t)=M0+vmtum 为导弹位置 - 烟幕中心位置:
S ( t ) = { S det − [ 0 , 0 , v sink ( t − t start ) ] T t ≥ t start 地面 若高度 < 0 \mathbf{S}(t) = \begin{cases} \mathbf{S}_{\text{det}} - [0,\ 0,\ v_{\text{sink}}(t - t_{\text{start}})]^T & t \geq t_{\text{start}} \\ \text{地面} & \text{若高度}<0 \end{cases} S(t)={Sdet−[0, 0, vsink(t−tstart)]T地面t≥tstart若高度<0 - 垂线距离:
dist line ( t ) = ∥ ( S ( t ) − M ( t ) ) × L ( t ) ∥ ∥ L ( t ) ∥ \text{dist}_{\text{line}}(t) = \frac{ \| (\mathbf{S}(t) - \mathbf{M}(t)) \times \mathbf{L}(t) \| }{ \| \mathbf{L}(t) \| } distline(t)=∥L(t)∥∥(S(t)−M(t))×L(t)∥ - 光程长度:
L ( t ) = 2 r 2 − dist line 2 ( t ) (当 dist line ( t ) ≤ r 时) L(t) = 2 \sqrt{ r^2 - \text{dist}_{\text{line}}^2(t) } \quad \text{(当 } \text{dist}_{\text{line}}(t) \leq r \text{ 时)} L(t)=2r2−distline2(t)(当 distline(t)≤r 时)
(2) 光学遮蔽条件:朗伯-比尔定律
- 浓度衰减模型:
c ( t ) = c 0 ⋅ max ( 0.1 , 1 − t − t start t dur ) ⏟ 时间衰减 ⋅ 1 1 + ( dist line ( t ) r ) 2 ⏟ 空间衰减 c(t) = c_0 \cdot \underbrace{\max\left(0.1,\ 1 - \frac{t - t_{\text{start}}}{t_{\text{dur}}}\right)}_{\text{时间衰减}} \cdot \underbrace{\frac{1}{1 + \left( \frac{\text{dist}_{\text{line}}(t)}{r} \right)^2}}_{\text{空间衰减}} c(t)=c0⋅时间衰减 max(0.1, 1−tdurt−tstart)⋅空间衰减 1+(rdistline(t))21 - 透射率条件(等价形式):
κ ⋅ c ( t ) ⋅ L ( t ) ≥ − ln τ th \kappa \cdot c(t) \cdot L(t) \geq -\ln \tau_{\text{th}} κ⋅c(t)⋅L(t)≥−lnτth
注:当 τ th = 0.1 \tau_{\text{th}}=0.1 τth=0.1 时, − ln τ th ≈ 2.3026 -\ln \tau_{\text{th}} \approx 2.3026 −lnτth≈2.3026
4. 物理意义分解
条件 | 数学表达 | 物理含义 |
---|---|---|
几何遮蔽 | dist line ( t ) ≤ r \text{dist}_{\text{line}}(t) \leq r distline(t)≤r | 视线必须穿过烟幕球体(否则无遮蔽效果) |
光学遮蔽 | κ c L ≥ − ln τ th \kappa c L \geq -\ln \tau_{\text{th}} κcL≥−lnτth | 烟幕需提供足够光学密度: • 消光系数 κ \kappa κ 越大效果越好 • 光程 L L L 越长效果越好 • 浓度 c c c 越高效果越好 |
5. 参数敏感性分析
通过公式可推导关键参数对 T cover T_{\text{cover}} Tcover 的影响:
- 正相关:
↑ κ \uparrow \kappa ↑κ(消光系数)、 ↑ c 0 \uparrow c_0 ↑c0(初始浓度)、 ↑ r \uparrow r ↑r(烟幕半径)
⇒ \Rightarrow ⇒ 光学遮蔽条件更易满足 ⇒ T cover ↑ \Rightarrow T_{\text{cover}} \uparrow ⇒Tcover↑ - 负相关:
↑ v sink \uparrow v_{\text{sink}} ↑vsink(下沉速度)、 ↑ t dur \uparrow t_{\text{dur}} ↑tdur(持续时间)
⇒ \Rightarrow ⇒ 烟幕快速下沉/扩散 ⇒ T cover ↓ \Rightarrow T_{\text{cover}} \downarrow ⇒Tcover↓ - 临界点:
当 κ c 0 r 2 < − ln τ th \kappa c_0 r^2 < -\ln \tau_{\text{th}} κc0r2<−lnτth 时, T cover = 0 T_{\text{cover}} = 0 Tcover=0(烟幕完全无效)
6. 与代码实现的对应关系
公式组件 | 代码位置 | 说明 |
---|---|---|
dist line ( t ) \text{dist}_{\text{line}}(t) distline(t) | dist_to_line = np.linalg.norm(...) |
计算视线与烟幕的垂线距离 |
L ( t ) L(t) L(t) | path_length = 2 * np.sqrt(...) |
计算视线穿过烟幕的弦长 |
c ( t ) c(t) c(t) | current_concentration = ... |
浓度的时间/空间衰减模型 |
光学条件 | transmittance <= transmittance_threshold |
透射率阈值判断 |
时间积分 | for t in np.arange(...): coverage_time += dt |
数值积分(步长 Δ t = 0.01 \Delta t = 0.01 Δt=0.01 s) |
结论
该公式是唯一能精确量化烟幕遮蔽效果的数学模型,其创新点在于:
- 耦合几何与光学条件:同时考虑视线路径(几何)和光衰减(物理)
- 动态浓度模型:首次引入时间/空间双维度的浓度衰减机制
- 工程实用性强:可直接用于优化无人机投放策略(如代码中的两阶段搜索)
应用提示:在实际部署中,需通过实验标定 κ \kappa κ 和 c 0 c_0 c0(不同烟幕材料差异显著),这是决定模型精度的关键参数。公式中 − ln τ th -\ln \tau_{\text{th}} −lnτth 项表明:当要求透射率更低( τ th → 0 \tau_{\text{th}} \to 0 τth→0)时,遮蔽难度呈指数级增长。