
1) 【一句话结论】在航天器姿态控制中,常用卡尔曼滤波(或扩展卡尔曼滤波)融合陀螺、加速度计、磁力计数据,通过状态空间模型和预测-更新循环,估计姿态并处理传感器噪声与不一致性(如陀螺随机漂移、加速度计量测噪声、磁力计磁场干扰)。
2) 【原理/概念讲解】卡尔曼滤波基于状态空间模型,将系统状态(如姿态角、角速度)表示为线性或非线性模型,通过预测(状态转移)和更新(量测修正)两个步骤迭代估计。以姿态控制为例:
3) 【对比与适用场景】
| 特性 | 卡尔曼滤波(KF) | 扩展卡尔曼滤波(EKF) |
|---|---|---|
| 状态模型 | 线性 | 非线性(泰勒展开线性化) |
| 量测模型 | 线性 | 非线性(线性化) |
| 适用场景 | 线性系统(如简单姿态估计) | 非线性系统(如复杂姿态动力学) |
| 注意点 | 需严格线性,否则估计偏差 | 线性化误差可能导致发散 |
4) 【示例】(伪代码,状态向量:[姿态角θ, 角速度ω],观测向量:[加速度计量测a, 磁力计量测m])
# 初始化
X = [0, 0] # 初始姿态角和角速度
P = diag([0.1, 0.1]) # 初始协方差(不确定性大)
Q = diag([0.01, 0.01]) # 过程噪声(陀螺漂移)
R = diag([0.1, 0.1]) # 量测噪声(加速度计/磁力计噪声)
# 预测步骤
F = [[1, dt], [0, 1]] # 状态转移矩阵(dt为采样周期)
G = [[dt, 0], [0, dt]] # 控制输入矩阵(u为陀螺输出)
X_pred = F @ X + G @ u # u为陀螺测量的角速度
P_pred = F @ P @ F.T + Q
# 更新步骤
H = [[1, 0], [0, 1]] # 量测矩阵(a为加速度计量测,m为磁力计量测)
Z = [a, m] # 观测量
y = Z - H @ X_pred # 量测残差
S = H @ P_pred @ H.T + R # 新息协方差
K = P_pred @ H.T @ S.T # 卡尔曼增益
X = X_pred + K @ y
P = (I - K @ H) @ P_pred
(注:实际中状态可能用四元数表示,量测矩阵 (H) 需根据传感器模型调整,如加速度计用于量测重力分量,磁力计用于量测地磁场方向。)
5) 【面试口播版答案】在航天器姿态控制中,常用卡尔曼滤波融合多传感器数据。卡尔曼滤波通过状态空间模型,结合预测(用陀螺的角速度输出更新姿态和角速度状态)和更新(用加速度计、磁力计的量测值修正状态估计)步骤,处理传感器噪声与不一致性。比如,陀螺输出可能存在随机漂移(噪声),导致姿态估计偏差;加速度计量测重力加速度变化,可修正姿态角;磁力计量测地磁场方向,可辅助修正。通过卡尔曼增益调整,平衡预测与量测的权重,最终得到高精度姿态信息。具体来说,状态向量包含姿态角和角速度,预测步骤用陀螺数据更新状态,更新步骤用加速度计和磁力计的量测值修正,从而融合多传感器数据,抑制噪声并解决传感器不一致性(如陀螺漂移与磁力计磁场干扰)。
6) 【追问清单】
7) 【常见坑/雷区】