4. 星敏感器工作原理与理想模型

星敏感器是航天器姿态确定中精度最高的绝对姿态敏感器,典型精度可达角秒级甚至亚角秒级。它不依赖地球或太阳等近距目标,而是以惯性空间中的恒星作为基准,通过“拍星—提取星点—匹配星图—解算姿态”这一链路,输出航天器本体相对惯性系的姿态四元数。理解星敏感器,关键要抓住三件事:恒星如何在焦平面上成像,星点质心如何被提取到亚像素精度,以及由星矢量到姿态四元数的解算与建模过程。

一、恒星成像:从平行光到点扩散函数

恒星距离地球通常在数光年以上,到达航天器时可视为来自无穷远的平行光。星敏感器的光学系统(多为折射式或折反式镜头)将平行光会聚到CMOS或CCD焦平面上,形成一个能量集中的光斑。由于衍射极限、光学像差、离焦和探测器像元尺寸的共同作用,理想点光源并不会成像为一个数学点,而是形成一个近似二维高斯分布的弥散斑,即点扩散函数(PSF)。

设星点像斑中心位于焦平面坐标 $(x_c, y_c)$,则像元 $(x, y)$ 处的灰度可近似表示为:

I(x, y) = I0 * exp( -[(x - xc)^2 + (y - yc)^2] / (2 * sigma^2) ) + B

其中 $I_0$ 为峰值灰度,$\sigma$ 为弥散半径(典型约0.5~1.5像元),$B$ 为背景偏置。星敏感器通常工作在低照度、短曝光条件下,因此星点像斑往往只覆盖3×3到7×7个像元。曝光时间、光学口径和探测器量子效率共同决定了信噪比,而信噪比又直接决定质心提取精度。工程上常把星等阈值、曝光时间和增益作为一组联合参数来整定:星等阈值过低会引入大量噪声星点,过高则可能星数不足导致星图匹配失败。

二、质心提取:亚像素定位

星点质心提取是星敏感器精度的核心环节。最简单的方法是灰度加权质心法,在星点窗口内按灰度加权求取中心:

xc = Σ(Ii * xi) / ΣIi
yc = Σ(Ii * yi) / ΣIi

该方法实现简单、实时性好,但在像斑不对称或存在邻近星干扰时精度下降。更高精度的方法包括高斯曲面拟合法、平方加权质心法和对数加权质心法。以高斯拟合为例,对窗口内灰度取对数后做最小二乘平面拟合,可反解出 $(x_c, y_c)$ 与 $\sigma$,在信噪比较高时定位精度可达0.05~0.1像元。

实际处理中,质心提取前通常先做阈值分割与连通域标记,剔除坏像元和宇宙线引起的孤立亮点;再对每个候选星点开固定大小窗口(如5×5)计算质心。若两个星点落入同一窗口,需要做星点分离,否则质心会被“拉偏”,直接污染后续姿态解算。

星敏感器成像—质心提取—姿态解算链路 惯性系恒星 平行光入射 光学系统 会聚平行光 PSF弥散 焦平面探测器 灰度像斑 质心提取 阈值分割 连通域标记 灰度加权/高斯拟合 亚像素定位 (xc, yc) 精度0.05~0.1像元 姿态解算 星图匹配 星矢量→本体矢量 Wahba/TRIAD 四元数 q 输出姿态 角秒级精度 理想模型:无噪声、无畸变、星点严格服从高斯PSF,质心即真实投影点 输出四元数 q_bi 描述本体坐标系相对惯性系的旋转,满足 q⊗q* = [1,0,0,0]

三、姿态解算:从星矢量到四元数

质心提取得到的是焦平面坐标,需要经过标定参数转换为星敏感器坐标系下的单位星矢量。设主点坐标为 $(u_0, v_0)$,焦距为 $f$,像元尺寸为 $d$,则星矢量方向可写为:

s = normalize( [ (xc - u0)*d, (yc - v0)*d, -f ] )

星敏感器内部通常预存一个星表,包含恒星在惯性系下的单位矢量 $v_i$ 及其星等。星图匹配的任务是:根据当前视场中若干星点的几何构型(角距、三角形、四边形等特征),在星表中找到对应的恒星编号,从而建立“本体观测矢量 $s_i$”与“惯性参考矢量 $v_i$”的对应关系。

匹配成功后,姿态解算转化为经典的Wahba问题:寻找旋转矩阵 $R$,使损失函数最小:

J(R) = 0.5 * Σ wi * || s_i - R * v_i ||^2

其中 $w_i$ 为各星点权重,通常与信噪比或星等成正比。常用求解方法包括TRIAD(三矢量定姿)、QUEST、SVD分解和四元数特征值法。以TRIAD为例,取两颗星构造两组正交基,直接得到 $R$,再转换为四元数。QUEST则构造K矩阵并求最大特征值对应的特征向量,即为最优四元数。

四元数 $q = [q_0, q_1, q_2, q_3]^T$ 描述本体坐标系相对惯性系的旋转,满足归一化约束 $q_0^2 + q_1^2 + q_2^2 + q_3^2 = 1$。其对应的旋转矩阵为:

R(q) = [ 1-2(q2^2+q3^2)   2(q1q2-q0q3)     2(q1q3+q0q2)
         2(q1q2+q0q3)     1-2(q1^2+q3^2)   2(q2q3-q0q1)
         2(q1q3-q0q2)     2(q2q3+q0q1)     1-2(q1^2+q2^2) ]

四、理想测量方程与输出四元数建模

在理想模型下,忽略安装误差、光学畸变、星点提取噪声和星表误差,星敏感器的测量方程可写为:

s_i = R_bi^T * v_i    (i = 1, 2, ..., N)

其中 $R_{bi}$ 为本体到惯性系的旋转矩阵,$v_i$ 为第 $i$ 颗星在惯性系下的单位矢量,$s_i$ 为其在本体系下的观测单位矢量。理想情况下,所有星点都严格满足该方程,姿态解算无残差。实际系统中,测量方程需引入噪声项 $\eta_i$:

s_i = R_bi^T * v_i + η_i

$\eta_i$ 通常建模为零均值高斯白噪声,其标准差与质心提取精度、焦距和像元尺寸相关。理想模型的意义在于:它给出了星敏感器输出的“真值”基准,是后续误差建模、滤波和性能评估的起点。在仿真中,常先由真实姿态生成理想星矢量,再叠加噪声和误差源,最后用解算算法反推姿态,通过比较解算四元数与真值四元数的偏差来评估算法性能。

工程提示:星敏感器输出四元数时,需明确其参考系定义。常见约定为 $q_{bi}$ 表示本体相对惯性系的旋转,即 $v_b = R(q_{bi})^T v_i$。不同型号可能采用 $q_{ib}$ 或叠加安装矩阵,使用前必须核对坐标系定义,否则姿态会整体翻转或偏转。

五、一个可复现的仿真示例

假设星敏感器焦距 $f = 50$ mm,像元尺寸 $d = 5.5$ μm,主点 $(u_0, v_0) = (1024, 1024)$,视场内有3颗星,其惯性系单位矢量分别为 $v_1, v_2, v_3$。给定真实姿态四元数 $q_{bi} = [0.7071, 0.7071, 0, 0]^T$(绕X轴转90°),可计算本体系星矢量 $s_i = R(q_{bi})^T v_i$,再投影到焦平面得到理想像点坐标。随后在像点坐标上叠加标准差0.1像元的质心噪声,用TRIAD解算姿态,比较解算四元数与真值的偏差。若偏差在角秒量级,说明模型与算法一致;若偏差显著增大,则需检查星点匹配是否正确或噪声模型是否合理。

这一流程把“恒星成像—质心提取—姿态解算—四元数输出”串成闭环,也是星敏感器理想模型在仿真验证中的典型用法。掌握它,就为后续引入安装误差、热变形、星表误差和动态模糊等非理想因素打下了基础。