---
title: "抛体飞行设计器互动实验｜Sandbox Physics"
description: "有阻力和侧风时，怎样瞄准才能命中目标？用带阻力的轨迹模拟来瞄准，按真空公式算会打偏。阻力的方向与抛体相对空气的速度相反，有侧风时，抛体就会被往旁边推。反复调整发射，直到模拟轨迹命中，还要从俯视方向检查横向偏差。"
canonical_url: "https://sandboxphysics.com/zh/labs/projectile-flight/"
language: "zh-CN"
page_type: "lab"
alternate_languages:
  en: "https://sandboxphysics.com/labs/projectile-flight/"
last_modified: "2026-10-22"
---

M003 · 抛体运动与逆向设计

# 抛体飞行设计器

**有阻力和侧风时，怎样瞄准才能命中目标？** 用带阻力的轨迹模拟来瞄准，按真空公式算会打偏。阻力的方向与抛体相对空气的速度相反，有侧风时，抛体就会被往旁边推。反复调整发射，直到模拟轨迹命中，还要从俯视方向检查横向偏差。

从发射台向地面上可以挪动的目标发射，在侧视图、俯视图、速度分量和能量收支里同时跟踪飞行。可以比较真空、线性阻力和平方阻力，修正侧风的偏移，或在发射速率不变时找出射得最远的仰角。

> 交互仿真：在浏览器中打开本页，即可调整参数并运行模型。

模型把物体当作三维空间里的一个质点，受均匀重力和稳定水平风的作用。线性阻力和平方阻力是两个独立的经验模型，各自系数不变，不模拟两者之间随 Reynolds 数的过渡。模型不含升力、自旋、浮力、空气密度变化、地形、反弹和地球曲率。阻力大时 RK4 积分会缩小步长，并在一步之内找出落地时刻。把步长减半只是为了检查收敛，不是严格的误差界。三维视图中的橙色圆圈标出 2 米的目标容差，球和发射台都画得比实际大。搜索只在控件的取值范围内找方案，结果可能是打不中。

物理教程

## 从轨迹预测走到发射设计

**背景** 已知怎么发射，问落在哪里，这是初值问题；已知目标，问该怎么发射，这是逆向设计问题。侧视图、俯视图上的横向漂移、速度分量和能量收支，都来自同一条三维轨迹。目标在水平地面上，抛体第一次落回地面，实验就结束。

**为什么值得理解** OpenStax《University Physics》第一卷第 4.3 节讲真空中的抛体，第 6.4 节讲平方阻力。这个实验另外加了线性阻力模型，按相对空气的速度算阻力，还能在给定范围内用数值方法搜索发射方案。每改一个参数，都能看到可测量的变化。

先抓重点

- **核心问题**: 在真空里选出的发射方案，加入侧风与阻力后还能命中吗？
- **一句话直觉**: 重力竖直向下，阻力却取决于抛体相对空气的完整速度 $\boldsymbol u=\boldsymbol v-\boldsymbol w$。只看侧视图，可能看不出横向偏得很远；俯视图能把它显示出来。

### 核心数学模型

#### 三维运动方程

$$
\dot{\boldsymbol r}=\boldsymbol v,\qquad m\dot{\boldsymbol v}=-mg\boldsymbol e_y+\boldsymbol F_D
$$

三个坐标依次是纵向、竖直和横向。发射仰角和方位角决定三个初速度分量。质点用 RK4 积分向前推进，阻力强时最大步长自动缩小。

#### 三种空气模型

$$
\boldsymbol F_D=\begin{cases}\boldsymbol 0&\text{vacuum},\\-b\boldsymbol u&\text{linear},\\-k\lVert\boldsymbol u\rVert\boldsymbol u&\text{quadratic},\end{cases}\qquad\boldsymbol u=\boldsymbol v-\boldsymbol w
$$

倍数乘在参考系数上：线性阻力的参考值是 0.08 kg 每秒，平方阻力是 0.003 kg 每米。这些是直接设定的经验系数，实验不会去算 Reynolds 数，也不会算某个具体物体的阻力系数。

#### 真空中的落地时间和射程

$$
t_{\mathrm{impact}}=\frac{v_0\sin\theta+\sqrt{v_0^2\sin^2\theta+2gh_0}}{g},\qquad x_{\mathrm{impact}}=v_0\cos\theta\cos\phi\,t_{\mathrm{impact}}
$$

从地面发射、方位角为零、没有空气时，45 度射得最远。发射高度和空气都会改变最佳角度。只有在真空中质量才会消掉，调风速也不会改变真空轨迹。

#### 能量、空气做功与曲率

$$
E=\tfrac12m\lVert\boldsymbol v\rVert^2+mgy,\quad W_{\mathrm{air}}=\int\boldsymbol F_D\cdot\boldsymbol v\,dt,\quad\kappa=\frac{\lVert\boldsymbol v\times\boldsymbol a\rVert}{\lVert\boldsymbol v\rVert^3}
$$

在地面参考系里，机械能的变化等于空气做的功。风可以给抛体输入能量，空气做正功不一定是数值算错了。曲率表示每走一段路径方向转了多少，不只由速率决定。

### 常见难点

#### 风不是额外的恒力

**容易误解** 侧风就是加了一个恒定的横向加速度，真空里也一样。

**正确理解** 空气的作用力取决于抛体相对流动空气的速度，真空中根本没有。阻力系数不变时改变质量，加速度也会变，因为加速度等于力除以质量。

#### 搜索不保证命中

**容易误解** 让计算机搜索，总能找到命中目标的发射方案。

**正确理解** 搜索时发射速率和其他设置都不变，仰角和方位角也只在允许范围内调整。最接近的一发如果离目标仍超过 2 m，实验会报告脱靶，目标位置不会被偷偷挪动。

#### 步长减半只是检查收敛

**容易误解** 减半步长的落点差，就是轨迹的精确误差。

**正确理解** 它只说明步长变细后落点会挪多少。真空解析解和线性阻力测试是另外的独立检查。不过，差值再小、能量收支再好，也不能证明模型里没考虑的物理效应可以忽略。

### 动手实验

1. 01

   #### 先重现真空结果

   选“真空射程”，把“发射台高度”和“发射方位角”设为零，点“搜索最远纵向射程”，再改变质量和两个风速。

   **你会看到：** 最佳角度接近 45 度，质量和风速都不改变真空结果。在最后一步内部求出的落地时刻，和解析公式一致。

2. 02

   #### 看看空气做了什么

   比较“线性阻力”和“侧风挑战”两个预设。在最高点附近暂停，看俯视图、速度分量和空气做功。

   **你会看到：** 两种阻力模型给出的轨迹不同。侧风把抛体往旁边吹，这段横向位移在侧视图里看不出来。

3. 03

   #### 为目标设计发射

   在俯视图里拖动金色目标，点“搜索命中方案”；再把目标拖到射程之外，重做一次。

   **你会看到：** 搜索只调仰角和方位角，速率不变。够得着的目标能在容差内命中；够不着的目标，最好的一发也明显打偏。

4. 04

   #### 检查发射高度和步长

   选“悬崖发射”，点“搜索最远纵向射程”，再换几个最大步长，同时看减半步长后落点变了多少。

   **你会看到：** 最佳角度不一定是 45 度。阻力强时，为了保持积分稳定，步长会自动变小；落地时刻在最后一个积分步内部求出。

物理结论

设计发射要把发射装置、飞行模拟、可测量的量和有范围的搜索连在一起。光画出一条好看的轨迹，既说明不了算得准不准，也说明不了目标够不够得着。

入门路径 · 第 2 / 6 步

## 从一次下落到一条轨道

[下一步 → **斜面与摩擦** 调整坡角和摩擦，找到木块能保持静止的条件；再预测它停下后会停住还是反向下滑。 建模 · 22 分钟](https://sandboxphysics.com/zh/labs/inclined-plane/)

1. [1 自由落体与重力测量](https://sandboxphysics.com/zh/labs/free-fall/)
2. [2 抛体飞行设计器](https://sandboxphysics.com/zh/labs/projectile-flight/)
3. [3 斜面与摩擦](https://sandboxphysics.com/zh/labs/inclined-plane/)
4. [4 一维碰撞台](https://sandboxphysics.com/zh/labs/collision-bench/)
5. [5 弹簧振子与周期标定](https://sandboxphysics.com/zh/labs/mass-spring/)
6. [6 轨道是怎样形成的](https://sandboxphysics.com/zh/labs/orbit/)

[查看完整路径 →](https://sandboxphysics.com/zh/topics/mechanics/#starter-path)
