DroneWind Estimator · 通俗解读 V1.1
无人机不是风速计,但它会留下风的“受力痕迹”
飞控为了抵抗风,会改变姿态、推力和运动状态。我们依据牛顿第二定律、空气阻力规律和相对运动关系,从这些遥测痕迹中反演风;这是有条件、有标定、有边界的物理估计,不是把倾角直接换算成风速。
先恢复气动力,再反解相对空速,最后用对地速度减去相对空速得到风。每一步都有坐标、单位、标定和有效性门控。
一条等式,串起整个方法
风、无人机对地运动和无人机相对空气运动之间,是普通的相对速度关系。
风 = 对地速度 − 相对空气速度。GPS/组合导航给出 Vg;真正困难的是从受力与姿态中恢复 Va。算法的核心工作都在这一步。
应用价值:把飞行遥测变成风环境证据
这套方法的价值不是凭空多出一个风速数字,而是在物理条件成立时,将已有遥测整理成与任务、时间、高度和阶段关联的风估计,用于低空环境分析、飞行复盘、气动参数标定与算法验证。
已有遥测能否继续利用
水平风主要使用姿态、对地速度、导航系平动加速度与机型标定参数;垂直风另需总推力等价观测。
在不必然搭载专用机载风速计的工况下,补充与飞行过程同时同地的风环境证据。
坐标、单位、时间与字段语义正确;机型/载荷 profile 已标定,且飞行未超适用包络。
需要定点还是沿程风
稳定悬停窗口给出局地水平风;风增广 EKF 沿时间递推给出连续水平风曲线。
既能比较不同悬停点位,也能观察一段航线上风的变化趋势。
悬停窗口需通过稳定性门控;连续模式只在已定义的机动包络内解读,连续垂直风仍属实验性。
多地点、多架次如何对齐
任务摘要、数据时间范围、阶段标注、机型参数版本和结果关联存储。
可按任务和阶段回看“何时、何地、何种飞行状态”对应的风估计。
CSV 时间轴可解析且时区统一;任务摘要和阶段标注与实际飞行一致。
如何判断一个数能不能用
同时返回 valid、invalidReason、confidence、qualityFlags、成熟度、源数据和版本信息。
不只给结果,还能说明为什么此次可用、降级或无效,便于复现、对比和追踪问题。
质量分不解释成准确率;未达 VALIDATED 的能力不用于生产级或安全关键结论。
系统不直接控制无人机,不替代标准风速仪或法定气象观测。对飞行安全、风险预警等高风险用途,必须在对应机型、载荷和工况完成独立验证并达到 VALIDATED 后另行评估。
方法链路:从遥测到风,不跳步
任何一个环节的定义不明确,都可能让数值看似合理、方向却完全错误。因此系统先归一化和门控,再做物理反演。
统一坐标、角度、时间和符号
内部统一 NED;角度统一 rad;yaw 规定为正北 0°、顺时针为正;气象风向统一为“从哪里吹来”。
选择计算主链
悬停窗口先筛选最长稳定连续段;连续飞行模式不走悬停筛选,而是按时间逐点进入 EKF。
姿态恢复平衡气动力(M1)
飞控倾斜推力抵抗水平气动力。roll、pitch 给出机体系水平补偿加速度,yaw 把它转到北/东坐标。
扣除主动机动影响(M2)
有已去重力的导航系平动加速度时,按牛顿第二定律修正,避免把主动加减速误判为风。
阻力反解相对空速
使用线性动量项与二次钝体项组成的复合阻力模型;参数必须按机型和载荷标定。
计算风矢量并稳健聚合
逐点计算 W = Vg − Va,窗口内对 N/E 分量取中位数,再计算风速与气象来向;禁止直接平均角度。
| 默认门控 | 阈值 | 物理目的 |
|---|---|---|
| 水平地速 | < 0.5 m/s | 有地速时为硬条件;缺字段才用 vN/vE 合成 |
| 悬停标志 | 字段存在时必须为 true | 地速不可获得时,单独使用会明确降级 |
| 垂直速度 | |velocityD| < 0.3 m/s | 排除明显升降段 |
| 姿态 | |roll|、|pitch| < 20° | 限制小角度模型适用范围 |
| 角速度 | 三轴 < 5°/s(字段存在时) | 排除快速转动和杆臂速度放大 |
| 相对高度 | 默认 > 10 m | 减小地效和近壁湍流影响 |
| 连续窗口 | ≥ 30 s 且 ≥ 100 个样本 | 提供稳健聚合所需的数据量 |
| 定位来源 | RTK / GNSS / FUSED / UNKNOWN | 只检查当前实际使用的定位源;无法确认时不硬拒绝,但必须明确标记 |
先看懂受力:风如何变成遥测里的数字
公式里的名词并不是彼此独立的标签。它们描述的是同一条因果链:空气相对无人机运动,旋翼和机体受到气动力,飞控用推力与姿态响应,遥测记录响应,算法再沿链路反向恢复风。
无人机相对空气的运动,是气动力真正响应的速度。
mcoef·Va,约随速度一次增长。
k·Va|Va|,约随速度平方增长。
空气对整机的作用方向与相对运动相反。
倾斜推力、维持轨迹,记录姿态、速度与加速度。
遥测 → 气动力 → 相对空速 → W=Vg−Va。
包含机体阻力、旋翼来流效应和升力变化。算法先把它换成“单位质量气动力”,再与加速度直接比较。
旋翼持续把空气加速、改向;在当前工程模型中,其水平阻力贡献写成 mcoef·Va,低而非零空速时相对更显眼。
速度翻倍时,动态压强约变为四倍,因此这一部分用 k·Va|Va| 表达,并用符号保留方向。
水平反演看倾斜推力的水平分量;垂直反演只用 Tz=T·cos(roll)·cos(pitch),不能把倾斜后的总推力 T 全部算到竖直方向。
它是 dv/dt。M2 用它区分“为抗风而倾斜”和“为主动加速而倾斜”;原始加速度计读数不能直接代入。
门控像准入条件;包络是已经验证过的姿态、角速度、高度、载荷等范围。超出范围不代表物理定律失效,而是当前简化模型与参数缺少证据。
先把方向说清楚:NED、FLU、FRD 与气象风向
风反演最常见的“看起来像物理错误”,其实是坐标轴、矢量语义或“来向/去向”混用。这里必须逐层声明,不能靠猜。
Forward–Left–Up:U 前、V 左、W 上。
Forward–Right–Down:固定变换 [U, −V, −W]。
North–East–Down:再用姿态和安装偏角旋转。
通俗理解:传感器的“左、上”为正,而无人机机体系的“右、下”为正,所以 V、W 两轴要翻号。
依据:ALGORITHM §6.2;PRD §8.5。
计算出的 N/E 矢量表示“风吹向哪里”;气象风向表示“风从哪里来”,两者正好相差 180°。
方向恰差 180°时,首先检查是否把吹向当成来向。
水平风:倾角提供受力,阻力模型给出风速刻度
稳定悬停时,无人机为了不被风吹走,会把总推力倾斜。倾斜推力的水平分量抵消气动力;气动力再通过标定过的阻力模型反解成相对空速。
它表达什么:倾角越大,需要抵抗的水平气动力通常越大。这里得到的是单位质量的补偿加速度,单位 m/s²,不是风速 m/s。
适用条件:稳定悬停、|roll|与|pitch|小于 20°、机体近水平;ALGORITHM §4.3。
M2 的意义:无人机主动加速时,姿态倾斜不全是为了抗风。把真实平动加速度加回受力平衡,才能恢复气动力,减少“主动机动冒充风”。
加速度必须是导航系运动学平动加速度且已去重力;原始机体系 IMU specific force 不能直接使用。
交互验证:姿态 → 气动力 → 相对空速 → 风
演示参数,不代表任何机型标定值为便于理解,演示中 X/Y 轴共用一个 k,东向地速固定为 0。正式算法使用分别标定的 kx/ky。
为什么有两项:旋翼改变来流带来近似一次项,机体迎风面的钝体阻力近似随空速平方增长。低而非零空速时线性项相对更重要;高速时二次项增长更快。
mcoef = 0 时严格退化为纯二次阻力,但这只表示线性项未启用或未标定,不代表物理上已证明它不存在。
倾角与风速之间没有跨机型通用换算。k = ρCdA/(2m),会随机型质量、迎风面积、载荷、桨型和空气密度变化。借用别的机型参数可以看趋势,但不能据此宣称绝对风速。
垂直风:姿态不够,必须知道总推力
上升气流或下降气流通常不会让悬停无人机明显倾斜;飞控主要通过增减总推力维持高度。因此,垂直风需要“垂直动力学 + 推力观测”,不能照搬水平倾角法。
这是牛顿第二定律:沿 NED 的 Down 方向,把重力、推力、水平风带来的附加升力和垂直气动阻力统一列入受力平衡。
T0 是无垂直风时的悬停推力基线。算法关心的是推力相对基线的变化,从而吸收一部分质量、推力系数和电压造成的常值偏置。
内部 Down 为正,对外 Up 为正。正值表示上升风,负值表示下降风。
- 无风悬停
- aD≈0、T≈T0,反演得到 Wup≈0。
- 上升气流
- 飞控可降低推力,T<T0,反演结果 Wup>0。
- 下降气流
- 飞控需增加推力,T>T0,反演结果 Wup<0。
- 只有水平来风
- 附加升力会压低推力;alift 修正用于避免误判为上升风。
交互验证:推力相对基线的变化如何影响垂直风
演示质量 10 kg;参数只用于方向直觉若未标定 liftCoeff,正式算法令 alift=0 并明确降级;若没有 T0,用 m·g 作为理论基线并提示绝对量级敏感。
当前 kz 映射是上下方向共用参数、指数固定为 2的工程简化,未显式覆盖桨盘轴向入流、上下非对称、尾迹湍流或涡环状态。有效结果也必须携带 vertical_symmetric_quadratic_model_simplification。
只有姿态、地速、RC 摇杆或电池功率时,绝对垂直风不可观测。必须有直接总推力、RPM+推力系数,或在已验证悬停邻域内使用的飞控总推力指令代理;缺少时返回 verticalValid=false,不能硬算。
机载三维风传感器:先做运动补偿,再谈“实测辅助”
装在无人机上的传感器测到的是空气相对传感器的速度。无人机自己在移动和转动,如果不补偿,就会把飞行速度或杆臂转动速度当成自然风。
通俗理解:自然风 = 传感器测到的相对风 + 传感器测量点自身的地面运动;长杆安装且机体转动明显时,ω×r 的杆臂速度不能忽略。
辅助修正做什么
把同一任务、同一时间的标准化传感器风与纯姿态反演风配对,分别取 N/E 分量差值的中位数,得到一个窗口级常量偏差。它只修正常值偏置,不拟合增益,不逐点用传感器替换,也不提高原始算法质量分。
辅助修正不代表什么
同一批传感器数据既用于计算偏差,又用于证明修正后“接近传感器”,这是同窗校准结果,不是独立精度验证。传感器本身也可能受旋翼诱导流、机体遮挡、立杆振动、时间同步和安装方向影响。
没有实测、配对不足、偏差异常或方向明显相反时,AUTO 模式自动回退 ATTITUDE_ONLY,保留纯姿态结果,绝不静默翻转轴或猜安装角。
卡尔曼滤波到底用来干什么
悬停窗口可以对一段稳定数据取中位数;连续飞行却不能等到整段结束,也不能把每个抖动的单点结果直接当成风。扩展卡尔曼滤波(EKF)把上一时刻的风、当前物理模型和当前遥测观测逐点合并,持续输出 wN/wE。
连续飞行时,姿态、地速和加速度每一帧都有噪声,单帧反演会跳动;同时风又会随时间变化,不能只做一次平均。EKF 用历史状态保持连续性,用新遥测及时纠偏。
移动平均只能把最近若干数值混在一起,无法表达“物理模型有多可信”“这一帧观测有多可信”,还会引入时间滞后。EKF 把这些可信程度写成协方差和噪声矩阵,按每一帧的情况分配权重。
必需输入是按时间排序的完整姿态、地速与垂直速度;优先使用已去重力平动加速度,并结合离线标定的阻力参数。加速度无法可靠取得时会按 0 进入观测、把观测噪声协方差放大 4 倍并明确标记;内部状态是北向风和东向风,输出逐时刻风矢量及其内部不确定性。
气动阻力包含 V|V|,观测方程不是直线关系。EKF 用雅可比在当前估计附近做局部线性化,再执行卡尔曼更新;“扩展”指的是处理这种非线性观测。
每来一帧遥测,按六步运行
准备:先离线标定 mcoef、kx、ky,并确定适用机动包络。风和阻力参数不能同时在线随意调整。
预测:假设短时间内风延续上一时刻,得到先验风 x−;同时给不确定性 P 增加过程噪声 Q,允许风发生真实变化。
预测观测:由 Va=Vg−W 得相对空速,再经过复合阻力模型 h(·),算出“如果预测风正确,机体应该承受多大气动力”。
比较:实际气动力观测 z 减去模型预测 h(x−),得到创新或残差 y。残差方向告诉滤波器风应往哪边改。
分配权重:由 P、观测噪声 R 和雅可比 H 计算卡尔曼增益 K。模型越不确定或观测越可靠,K 越大,结果越靠近新观测。
更新:x+=x−+Ky,并同步缩小或调整 P;更新结果进入下一帧,形成连续递推。
怎么读:中括号是“新证据与预测不一致了多少”;K 是这一帧应该改多少。P−大表示对预测没把握,R 大表示对当前观测没把握,H 负责把风状态和受力观测联系起来。
直觉演示:结果更信预测,还是更信观测
一维线性示意;完整 EKF 还包含雅可比 H示例固定:预测风 3.0 m/s,新观测对应 5.0 m/s。P 越大表示越不信预测;R 越大表示越不信观测。
一步 EKF 更新在做什么
当前:预测阻力系数必须离线标定固定,不能和风一起在线估计;否则风与阻力参数弱可观,容易互相“顶替”并发散。
倾角 ≤ 35°、三轴角速度 ≤ 30°/s,且没有其他降权条件时,观测按正常权重参与更新。
缺可靠加速度或 |velocityD|>1.0 m/s 时,观测噪声协方差 R 放大 4 倍;姿态或角速度超包络时放大 25 倍。多个条件同时出现取最大值,不相乘,V1 上限为 25。超包络样本不直接删除,但点质量减半;包络内比例不足 60% 时整体降级。
为什么曲线已经算出来,汇总仍可能无效
EKF 每一帧都同时输出风估计和协方差 P。P 表示算法对当前风状态的不确定程度;它越大,质量分越低。连续结果的整体分数取后半段各点分数的中位数,避免初始收敛阶段主导整段评价。
怎么读:trace(P) 是北向和东向风不确定性的总量;开平方后变回近似风速单位,再与参考尺度 σref 比较。这是内部质量指标,不是测量准确率。
曲线可以保留,供收敛、趋势和异常诊断。
小于该阈值失败;恰好等于阈值则通过。
valid=false,invalidReason=low_confidence。
因此,无效不等于 CSV 文件无效,也不等于曲线已被证明错误。它的准确含义是:本次估计的内部不确定性没有达到默认发布门槛。例如诊断用修正前平均风速 12.3284 m/s 可保留供排查,但正式平均风速和风向字段应置空,防止它被误当作可用结论。
连续水平风已有 EKF 主链;连续垂直风仍是实验性低可信输出,缺乏同等成熟的飞行中垂直气流文献支撑,不能用于安全决策,也不能把下降告警解释为涡环状态检测。
标定:决定“绝对刻度”是否可信
物理方程给出结构,标定参数给出数值刻度。标定不是调到“看起来对”,而是用多档真值、独立航次和残差诊断识别参数。
这是非负最小二乘:用至少 5 个不同风速档同时拟合线性项和二次项。不能在每一档单独反算 k 后取中位数,因为存在 mcoef 时会得到随风速变化的“表观 k”。
| 参数 | 物理角色 | 必须如何获得 |
|---|---|---|
dragCoeffX/Y | 水平二次钝体阻力刻度 | 本机型、本载荷、多风速档、分 X/Y 轴联合标定 |
momentumDragCoeff | 旋翼动量阻力线性项 | 与 X/Y 二次项联合拟合;0 不等于已证明不存在 |
dragCoeffZ | 当前垂直二次简化刻度 | 在已知上升/下降气流下分别验证残差 |
thrustCoeff | 把 RPM² 换算成总推力 | 与 RPM 数据定义一致,用称重和悬停推力反算;直接 thrustN 路径不需要 |
hoverThrustN | 无垂直风悬停基线 T0 | 确认基准段逐点计算 Tz=T·cos(roll)·cos(pitch),再取中位数;禁止用平均总推力代替 |
liftCoeff | 水平风引起的附加升力修正 | 侧风条件下拟合“推力下降 ~ 水平空速²” |
文档中的 M400 profile 是风墙数据的暂定水平参数,只用于联调和趋势复核,尚未完成同点独立风速仪验证;momentumDragCoeff=0 表示线性项尚未标定。垂直 dragCoeffZ、推力参数为空,因此当前示例 profile 有意不输出正式垂直风。
验证证据链:从符号到独立外场盲测
“公式能算”只是起点。专业可信的结论需要逐层排除坐标、符号、参数、过拟合和同窗自证。
单位、坐标和方向测试
deg/rad 明确声明;NED/ENU 明确转换;机头朝北单位向量检查 U+→N+、V+→E−、W+→D−;气象来向与矢量吹向相差 180°。
物理自洽场景
无风悬停应接近 0;上升气流应减推力并输出 Wup>0;下降气流反之;只有水平风时升力修正不应产生同量级虚假上升风。
合成闭环测试
从设定真值风出发,用同一动力学正向生成姿态、速度和加速度遥测,再经 M1+M2+阻力反演恢复原风,验证完整符号闭环,而不是只测一个加法函数。
多档、分轴、分方向标定
X/Y 每轴至少覆盖 5 个可分辨风速档,每档重复稳定窗口并覆盖机头前/后/左/右;两轴样本必须放入同一次三参数联合拟合,输出一个公共 mcoef 和分轴 kx/ky。垂直上升/下降分别报告残差,不能用合并 RMSE 掩盖方向非对称。
校准集与验证集分离
A 批航次拟合参数,B 批未参与修正的航次设置
sensorCorrection=OFF盲测;同窗偏差修正后的接近程度不能当独立验证。报告误差而非只报相关趋势
报告 N/E 分量误差、风速 MAE/RMSE、平均偏差、风向误差;垂直风单独报告带符号误差,并记录传感器位置、高度、频率和时间源。
它能同时暴露 yaw 旋转、M2 符号、阻力反解和 W=Vg−Va 中任何一处的符号错误。单独验证每个公式“能运行”,并不能证明整条物理链方向一致。
| 当前硬规则 | 本页采用的解释 | 不满足时怎么处理 |
|---|---|---|
| 连续模式完整姿态 | 必须有 roll/pitch/yaw、velocityN/E/D;不能缺 velocityD 后悄悄退回只看 yaw 的简化模型 | 返回无效并说明缺少垂直速度 |
| 连续模式时间中断 | dt≤0 的同时间或乱序点丢弃;2~10 s 中断保留风状态并扩大不确定性;超过 10 s 保留风估计但重置协方差 | 分别计数和标记,不能截断 dt 来掩盖中断 |
| 连续观测降权 | 缺可靠加速度或大垂速时 R×4;超机动包络时 R×25;多个条件取最大值而非相乘 | 保留轨迹点但弱化新观测,V1 倍率上限 25 |
| 低质量阈值 | 默认 minConfidence=0.60;小于阈值才失败,等于阈值通过 | valid=false、原因写 low_confidence、正常风字段置空并增加去重标记 |
| 垂直能力未执行或不可用 | verticalConfidence 使用 null,而不是 0 | 0 表示“算过但质量最低”,null 才表示“没有可解释的垂直质量分” |
| 成熟度与单次有效性 | PROVISIONAL / VALIDATED / EXPERIMENTAL 描述能力成熟度,available 描述当前部署可用性,valid 描述这一次是否有效 | 三者分别返回,不能混成一个状态 |
能力成熟度与不能越过的边界
对外交流应把“已经实现”“有条件有效”“实验性”“尚未完成当前机型独立验证”分开说。透明不是示弱,而是技术可信度的一部分。
悬停水平风
有条件有效M1+复合阻力为必需主链,M2 在加速度语义明确时增强。需要稳定窗口和机型/载荷参数;当前 M400 参数仍是趋势复核级。
连续水平风
有界包络M3 复合阻力观测 + M4 风增广 EKF 已实现,不要求悬停。强机动或快速飞行超包络时降低权重和质量,不外推。
悬停垂直风
条件更严格需要质量、kz、velocityD 和总推力等价观测;当前使用上下对称二次简化,绝对量级对推力与基线标定极敏感。
连续垂直风
实验性逐点动力学反演加滚动中位数,仅作低可信参考;下降工况未建立完整气动包络,不能用于安全决策。
实测辅助偏差修正
已实现,可选只估计稳健常量偏差,保留 rawWind*;传感器不合格时自动回退纯姿态。修正不等于独立验证,也不把传感器包装成绝对真值。
质量分 confidence
未概率校准窗口分数是工程规则指数,连续分数来自 EKF 协方差;当前都不是“准确率”或“正确概率”。默认阈值为 0.60,小于阈值时结果无效且正常风字段置空,等于阈值通过;必须同时看版本、calibrated 字段与质量标记。
所有输出都是 inversion_estimate_not_standard_anemometer_observation:不能替代标准风速仪、法定气象观测或安全关键传感器。固定站点、固定高度、校准仪器和空间代表性等标准观测条件,本系统并不具备。
专业名词,用人话解释
重点术语不只给定义,还说明“用来做什么、为什么需要、实际怎么用、不能解决什么”。点击顶部搜索或按 ⌘K / Ctrl+K 可直接查找。
- 反演(inversion)
- 一句话已知结果留下的痕迹,倒推造成这些痕迹的原因。这里怎么用已知姿态、速度、加速度和推力,先恢复空气作用力,再倒推出相对空速和风。为什么需要无人机没有直接给出自然风,但飞控对风的抵抗动作可被遥测记录。边界反演依赖模型和标定,不等同于风速仪直接测量。
- 牛顿第二定律
- 一句话物体为什么加速,取决于它受到的合力:F=m·a;写成单位质量形式就是 a=F/m。这里怎么用无人机的运动加速度由推力、重力和气动力共同造成。已知姿态可推断推力方向,再结合真实平动加速度,就能把气动力从合力中分离出来。为什么需要它把“遥测到的运动”与“空气施加的力”连接起来,是从姿态走到相对空速的物理桥梁。容易误解匀速不等于没有力,而是各个力相互平衡、合力接近零;悬停时风阻与水平推力可以都不为零。
- 气动力 / 气动比力
- 气动力空气通过压力和黏性作用在机体、机臂、挂载与旋翼上的合力,单位 N。气动比力气动力除以整机质量,单位 m/s²。它不是新的力,而是把不同质量的飞机放到同一“加速度尺度”比较。这里怎么用M1/M2 恢复的是水平气动比力;复合阻力公式也写成比力形式,因此可以直接联立反解相对空速。不是指什么不只等于机身阻力;旋翼来流效应、水平来流引起的附加升力等也属于气动力范畴。
- 总推力与推力分量
- 总推力 T所有旋翼共同产生的合力大小,方向近似沿机体竖轴向上。为什么要分解无人机倾斜后,总推力一部分用于托住重量,另一部分用于水平加速或抵抗风;同一个 T 不能在水平和垂直方向各算一遍。这里怎么用水平风由倾角确定水平补偿分量;垂直风使用 Tz=T·cos(roll)·cos(pitch)。倾斜时 Tz<T。数据要求绝对垂直风需要直接总推力、RPM 加推力系数,或已验证悬停邻域内的飞控总推力指令;RC 油门和电池功率不能唯一代表 T。
- Roll / Pitch / Yaw
- Roll 是左右侧倾,Pitch 是机头俯仰,Yaw 是水平航向。本系统规定 yaw=0° 指北、顺时针为正;roll/pitch 决定推力如何倾斜,yaw 决定机体系分量如何转到北/东。
- tan(正切)为什么出现
- 倾斜推力分解后,水平分量与竖直分量的比值是 tan(倾角)。它来自几何分解,不是经验凑式;倾角变大时非线性增长,所以算法限制在 20°以内。
- atan2 与普通 arctan
- atan2(E,N) 同时看北、东分量的正负,能正确判断四个象限,并处理 N 接近 0 的情况;普通 arctan(E/N) 容易丢象限或除零。
- sign 与平方根
- 二次阻力含 V|V|。反解量值时要开平方根,sign 则把阻力方向恢复为空速的相反方向;只开根号不保留符号,会得到“速度大小对、方向错”的结果。
- 可观测性
- 一句话现有数据是否足以把目标量与其他影响唯一分开。类比只看房间温度下降,无法判断是空调变强还是室外变冷;还要知道空调功率,才能分辨两种原因。这里怎么用没有总推力时,垂直风和控制器主动增减推力会产生相似结果,因此绝对垂直风不可观测,算法必须返回无效。为什么重要它决定“能不能算”,不是“算得准不准”。数据再多也无法补救结构性不可观测。
- 比力 / 单位质量力
- 力除以质量,单位 m/s²。把阻力写成比力后,可直接和加速度进入牛顿第二定律;k 的单位因此为 1/m。
- 平动加速度 / 去重力
- 平动加速度无人机质心速度随时间的变化率 dv/dt;匀速直线飞行或稳定悬停时应接近 0。去重力目标是得到导航坐标系里的运动学加速度,不是对任意原始数值简单减去 9.80665。若输入是机体系加速度计 specific force,必须先统一轴向、用姿态旋转,再按 NED 定义补回重力向量;数据源已经输出 dv/dt 时则不能重复处理。这里怎么用M2 把它加到姿态给出的平衡气动力上,避免把无人机主动加减速误当成风。错用后果重复补偿重力、坐标旋转错误或直接使用原始 IMU,都可能产生远大于真实风效应的假信号。
- IMU specific force
- 是什么加速度计感受到的单位质量非重力作用,不等同于“GPS 轨迹对时间二次求导”的平动加速度。为什么容易错它通常还带着机体系方向、重力处理方式和传感器轴定义;静止放在桌面上的加速度计也可能读到约 1g。这里怎么用只有完成机体到 NED 旋转、去重力和轴向统一后,才能写入 M2 的 accelerationN/E/D。错用后果把重力或轴向错误当成平动,会制造远大于真实风效应的虚假气动力。
- 对地速度、相对空速与风
- 对地速度 Vg无人机相对地面移动多快、朝哪里移动,通常来自 GPS 或组合导航。相对空速 Va无人机相对周围空气移动多快,是产生气动力的速度;无风前飞时 Va≈Vg,有风悬停时 Vg≈0 但 Va 不为 0。风 W空气相对地面的运动。三者满足 W=Vg−Va。这里的难点Vg 可直接取得,Va 通常没有空速管直接测量,所以要由气动力模型反演。
- 动量项 / 动量阻力
- 是什么旋翼为了产生推力,会持续给空气增加动量并改变来流;水平来流与旋翼流场相互作用,会形成一部分与空速近似成一次关系的气动比力。公式里写成 mcoef·Va;mcoef 单位为 1/s,是需要由本机型数据标定的集总系数。为什么需要只保留平方项时,低而非零空速段的受力可能被系统性解释错误;线性项与二次项应使用多档数据联合识别。边界这是对复杂旋翼来流的工程参数化,不代表逐片桨叶求解。mcoef=0 只表示当前未启用或未标定,不能证明这部分物理作用不存在。
- 钝体阻力 / 二次项
- 钝体是什么机身、机臂、电池和挂载等不是流线型翼面的迎风部件;空气绕过时前后压力不平衡,形成阻力。为什么是平方动态压强 q=½ρV² 随速度平方增长,因此常用 k·Va|Va| 表达大小与方向。这里怎么用kx/ky 分别描述机头方向和侧向的二次阻力尺度,因为不同方向的迎风形状通常不同。边界当前项目按轴使用 Vaxis|Vaxis|,不是完整计算流体力学,也不与 PX4 的 Vaxis|V3D| 数值等价。
- 动态压强
- 一句话移动空气因速度带来的“冲击强度”,q=½ρV²,单位 Pa。直觉速度翻倍,动态压强约变成四倍;这就是高速时二次钝体项增长很快的来源。与阻力关系常见阻力 FD=q·Cd·A=½ρCdAV²。除以质量 m 后,得到本算法二次比力系数 k=ρCdA/(2m)。不是指什么它不是气象静压,也不是传感器直接输出的风速;它是把速度连接到气动力的中间物理量。
- ρ、Cd、A、m 与阻力系数 k
- ρ空气密度;温度、气压和高度变化会改变它。Cd阻力系数,概括形状和流动状态对阻力的影响;不是所有无人机通用常数。A迎风面积,即从来流方向看过去的有效投影面积;机头向风和侧面向风通常不同。m 与 km 是整机质量。k=ρCdA/(2m):更重的飞机同样受力产生的加速度更小,因此不能跨机型直接复用 k。
- 复合阻力
- 是什么线性动量项 mcoef·V 与二次钝体项 k·V|V| 的叠加。为什么叫复合同一相对空速同时作用于旋翼流场和机体迎风面,两部分气动力随速度增长的规律不同。怎么用算法先由姿态和运动恢复 adrag,再解这个非线性方程得到 Va;悬停窗口与连续 EKF 使用同一组 mcoef/kx/ky。方向最前面的负号表示阻力总与相对运动方向相反,符合耗散规律。
- 附加升力与推力基线 T0
- 附加升力水平来流可能让旋翼产生额外向上的气动力,使定高所需推力下降;若不修正,会被误读成上升风。T0无垂直风、低水平相对空速稳定基准段的垂直有效推力中心值,固定取 median(Tz,i)。为什么需要垂直反演更关心 Tz 相对 T0 的变化,这能吸收部分质量、推力系数和电压造成的常值偏移。边界基准段若含未知垂直气流或明显水平来流,T0 会把真实气动效应一起吸收,必须拒绝生成。
- RPM² 推力换算
- 是什么在固定桨叶、空气条件和转速定义下,旋翼推力常近似与转速平方成正比:T=thrustCoeff·motorRpm²。用来做什么没有直接 thrustN 时,可用电机转速和已标定推力系数恢复总推力,供垂直风力平衡使用。为什么要标定单电机转速、多个电机平方和、平均转速等定义不同,系数会完全不同;桨型、电压与空气密度也会影响结果。不能替代只有 RPM 而没有与其定义匹配的 thrustCoeff,仍然不能得到绝对总推力。
- 标定 profile
- 某个机型、载荷和推力数据定义专属的一组参数及适用范围。它相当于“这架无人机把受力换算成风速的刻度尺”,不能跨机型静默复用。
- 门控与机动包络
- 门控计算前的准入判断,例如悬停窗口要求地速、倾角、角速度、高度、时长和样本数同时满足条件。包络经过验证的工作范围,例如连续模式 V1 的倾角与角速度边界;它还应与风速、高度、载荷等共同记录。这里怎么用硬条件不满足时拒绝给有效值;连续模式超包络点可弱参与,将 R 放大 25 倍并把点质量减半,超界过多则整体降级。不是指什么超出包络并不等于违反物理定律,而是当前模型、参数和验证证据不足,不能继续承诺同样的误差表现。
- 中位数稳健聚合
- 把 N/E 分量排序后取中间位置,少量姿态尖峰或推力尖峰不容易主导结果。它不意味着对任何异常都免疫。
- 扩展卡尔曼滤波(EKF)
- 用来干什么在连续飞行中,把上一时刻风、当前气动模型和带噪遥测合成一个逐帧更新的风估计。为什么用单帧反演会随姿态和加速度噪声跳动;普通平均又不理解动力学、不能按观测质量改变权重,还会造成滞后。怎么用先离线固定阻力参数;每帧先预测风,再用预测风计算应有气动力,与实际气动力比较,最后按 P、Q、R、H 计算的权重修正风。为什么叫扩展阻力模型含 V|V|,是非线性的;EKF 用雅可比在当前估计附近做局部线性化。不能做什么不能把错误坐标、错误时间同步、错误标定或超包络数据“滤正确”;这里在线只估风,不同时在线估阻力参数。
- 状态量与状态增广
- 状态量滤波器想持续追踪、但无法直接完整测到的内部变量。这里核心状态是 [wN, wE]。状态增广把风加入原本的运动状态中共同估计。好处是风能随时间连续更新;代价是必须保证新增状态可观测。
- 过程模型(process model)
- 用来做什么描述状态从上一时刻到下一时刻通常怎样变化。这里采用风的随机游走:短时间延续上一值,但允许缓慢变化。为什么需要没有过程模型,每一帧都从零开始;有了它,历史信息才能进入当前估计。
- 观测模型(observation model)
- 用来做什么把“假设的风”换算成传感器应该看到的量。这里先由 Va=Vg−W 得相对空速,再由复合阻力模型预测气动力。为什么重要EKF 不直接拿风与加速度相减,而是通过物理模型比较同一种量——预测气动力与实际气动力。
- 雅可比(Jacobian,H)
- 一句话当前工作点附近的“灵敏度表”:风改一点,模型预测的气动力会改多少。怎么用EKF 用 H 把非线性阻力模型在当前估计附近近似成直线,从而把气动力残差换算成风应该修正的方向和幅度。边界它只在当前点附近有效;离真实状态太远或模型超包络时,局部线性化可能失真。
- 协方差(P)
- 用来做什么记录滤波器对各状态“不确定到什么程度”,以及北向风、东向风误差是否相关。怎么变化预测时加入 Q,P 通常变大;获得有效观测并更新后,P 通常缩小。不能怎么解释它是模型内部不确定性,不经独立真值校准,不能直接说成准确率或正确概率。
- 过程噪声 Q 与观测噪声 R
- Q允许真实风在相邻时刻发生变化。Q 太小会跟踪迟钝,Q 太大会让结果更容易抖动。R描述当前气动力观测有多嘈杂。R 太小会过度追随遥测尖峰,R 太大会忽略有效的新信息。怎么设依据静态噪声统计、残差分布和独立验证调定,不应只为了让曲线“看起来顺滑”。
- 卡尔曼增益(K)
- 一句话这一帧的修正旋钮,决定结果更靠近预测还是更靠近新观测。怎么形成由预测不确定性 P、观测噪声 R 和灵敏度 H 共同计算,不是人工固定的“滤波强度”。直觉预测很不确定、观测很可靠时 K 较大;观测很嘈杂时 K 较小。
- 创新 / 残差(innovation / residual)
- 是什么当前实际观测 z 与模型预测 h(x−) 之差,是新信息进入滤波器的入口。怎么用符号决定风往哪个方向修正,大小结合不确定性决定修正多少;异常过大时可降权或门控。诊断价值残差若长期偏向一侧或随风速系统变化,通常提示坐标、参数或模型结构有偏;只看总 RMSE 可能掩盖这种规律。
- MAE 与 RMSE
- MAE 是绝对误差的平均,直观反映典型偏差;RMSE 会平方误差后再开根,对少数大误差更敏感。两者一起报告,比只给相关系数更能说明绝对精度。
- 非负最小二乘
- 在 mcoef≥0、k≥0 的物理约束下,让模型预测与多档观测的平方残差总和最小。非负约束防止拟合出违反阻力耗散方向的负系数。
- 随机游走
- 一句话下一时刻风≈上一时刻风+一个小变化。为什么这样设短时间内风通常具有连续性,但不可能完全不变;这个模型既保留历史,又允许新风况进入。不是指什么不是说自然风毫无规律地乱走,而是对未知变化采用的简洁统计描述。
- 地效
- 靠近地面时,旋翼下洗与地面相互作用,诱导流和所需推力会改变;建筑近壁还会产生回流与湍流。低于默认 10 m 计算时只能降级解读。
- 旋翼诱导流
- 旋翼为了产生推力而加速的气流。机载风传感器若处在诱导流场中,读数就不再代表未受无人机扰动的自然风。
- 涡环状态(VRS)
- 旋翼航空器在特定下降状态下进入自身尾流的复杂气动工况。仅凭 velocityD 超阈值告警不能检测或排除 VRS;需要盘载、诱导速度和机型专属包络。
- 杆臂补偿
- 传感器离无人机参考点有距离 r 时,机体角速度 ω 会让测量点产生 ω×r 的附加线速度。长杆或快速转动时不能忽略。
- 质量分 ≠ 准确率
- 当前 confidence 反映样本数、持续时间、姿态/速度抖动、定位质量或 EKF 协方差等内部条件。未用独立真值校准前,0.8 不能说成“80%准确”。
- 独立盲测
- 用于验证的航次不参与参数拟合和同窗偏差修正,并关闭 sensorCorrection。只有这样测得的误差才能说明模型对新数据的泛化能力。
常见技术问题
每个回答先给结论,再给技术依据和限制,避免只讲概念或只堆公式。
不装风速计,凭什么测风?
严格说是反演风,不是直接测风。风改变无人机受力,飞控用姿态和推力抵消;这些响应连同地速、加速度进入牛顿第二定律和阻力模型,恢复相对空速,再由 W=Vg−Va 得风。没有标定或必要观测时系统拒绝给值。
倾角就是风速吗?
不是。倾角给出水平补偿加速度,仍需 yaw 坐标旋转、M2 动态修正和机型专属阻力模型,才能得到相对空速。相同倾角在不同质量、迎风面积和载荷下可能对应不同风速。
别的机型参数为什么不能直接用?
二次阻力比力系数 k=ρCdA/(2m)。质量 m、迎风面积 A、阻力系数 Cd、桨型和载荷都随构型变化。借用参数不会必然破坏趋势和方向,但会整体改变绝对刻度。
为什么垂直风一定要推力?
垂直气流主要由飞控增减总推力抵消,姿态变化很小。没有推力等价观测,就无法区分“外界垂直风”与“控制器主动改变推力”,目标量不可观测。
EKF 能把错误数据滤正确吗?
不能。EKF 的作用是把上一时刻估计与当前带噪观测按不确定性融合,让连续结果稳定且能跟随变化;它不是纠错器。错误坐标、错误时间同步、错误标定或错误模型不会被“洗白”。系统必须先归一化、固定离线参数,并在超包络时降低观测权重。
连续飞行为什么不用移动平均?
移动平均只知道“最近几个数取平均”,不知道无人机动力学,也不能区分模型和观测各自有多可信。EKF 先由上一时刻风和过程模型预测,再用气动观测纠偏;P、Q、R、H 共同决定这一帧改多少。它能在平滑噪声的同时保持物理联系,但前提是模型和噪声设定经过验证。
传感器辅助后就是实测吗?
不是。系统只用同时间传感器估计常量偏差并保留 rawWind*。传感器本身可能受安装和旋翼流场污染;同窗修正后的接近程度属于校准效果,不是独立验证精度。
confidence=0.8 就是 80% 准确?
不是。当前窗口 confidence 是未校准工程质量指数,连续模式分数来自 EKF 协方差。只有先定义误差达标事件、用独立航次做可靠性校准后,才可能赋予概率含义。
为什么有完整曲线,结果还是无效?
曲线是 EKF 的逐帧诊断输出,有曲线只说明计算链运行了,不代表整段不确定性已达发布门槛。例如整体分数 0.517 低于默认 0.600,系统保留曲线和诊断值,但设置 valid=false 并置空正式汇总风字段。这不是说 CSV 无效,而是说这次估计暂不应当作可用结论。
能检测阵风、湍流或 VRS 吗?
模型可跟踪一定带宽内的缓变风和部分波动,但带宽受飞控滤波、动力学模型与采样影响。当前下降告警不是 VRS 检测;连续垂直风也不能用于安全决策。
低于 10 m 为什么降级?
地效会改变旋翼诱导流与悬停推力,近壁环境还会产生回流和非均匀湍流,偏离自由来流和标定假设。可为近地实验下调门槛,但只能把结果作为定性趋势并显示风险标记。
三段式核心说明
“我们的核心不是把无人机倾角直接换算成风速,而是把无人机当作一个受控的动力学传感器。风作用在机体和旋翼上,飞控为了维持轨迹会改变姿态与推力。我们先依据牛顿第二定律从姿态、速度和加速度恢复气动力,再用按机型和载荷标定的复合阻力模型反解相对空速,最后通过‘对地速度减相对空速’得到风矢量。”
“水平悬停、连续飞行和垂直风不是一个公式硬套到底:悬停水平风用倾角与阻力;连续水平风用风增广 EKF;垂直风必须额外有总推力观测。缺数据、缺标定或超出包络时,我们明确返回无效或降级,而不是凑一个数。”
“当前结果属于物理反演估计,不能替代标准气象观测。绝对精度必须通过本机型多风速档标定,并用未参与标定和同窗修正的独立航次盲测。我们保留原始结果、参数版本、质量标记和修正证据,保证每个数都能追溯。”
依据与追溯
本文件以 ALGORITHM 的公式、符号和适用条件为最高依据,并用 VALIDATION 的验证规则和 PRD 的任务与追溯需求交叉核对。
Neumann & Bartholmai (2015);Palomaki et al. (2017);González-Rocha et al. (2019/2020)。
Meier et al. (2022);Wildmann & Wetz (2022);Leishman (2016);Johnson (2005)。
Hattenberger, Bronz & Condomines (2021);PX4 EKF2 multicopter drag fusion;González-Rocha 状态观测器。