1. 项目概述:鲁棒目标定位的挑战与解决方案
在无线传感器网络和物联网应用中,目标定位是最基础也最关键的技术之一。想象一下,当你走进一个大型商场,手机上的室内导航系统能准确显示你的位置;或者当无人机在复杂环境中自主飞行时,需要实时确定自身坐标——这些场景都依赖于高精度的定位技术。然而现实情况是,传感器采集的测量数据总会受到各种干扰:多径效应导致的信号反射、环境中的电磁噪声、设备本身的测量误差,甚至是偶然出现的异常值(outliers)。这些干扰就像迷雾中的假路标,会让传统定位算法"迷路"。
我曾在多个工业级定位项目中亲历这种困境:使用普通最小二乘法(Least Squares, LS)时,只要数据中出现几个异常测量值,定位结果就可能偏离真实位置数米之远。这促使我们寻找更鲁棒的解决方案——迭代重新加权最小二乘法(Iteratively Reweighted Least Squares, IRWLS)。这种方法的核心思想很直观:通过迭代过程自动识别并降低异常值的权重,相当于给数据中的"可靠路标"分配更高的发言权。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 算法原理深度解析
2.1 平方距离模型与定位问题建模
假设我们在二维平面上有N个已知位置的传感器节点,其坐标记为$s_i = [x_i, y_i]^T$(i=1,2,...,N)。需要定位的目标位置记为$x = [x, y]^T$。通过TOA(到达时间)、RSSI(接收信号强度)等技术,我们可以获得目标与各传感器之间的测量距离$d_i$。
理想情况下,距离与位置的关系应符合勾股定理:
$$(x-x_i)^2 + (y-y_i)^2 = d_i^2$$
将等式两边展开并整理,得到线性形式的方程:
$$-2x_ix - 2y_iy + (x^2+y^2) = d_i^2 - x_i^2 - y_i^2$$
这个看似简单的模型在实际应用中会遇到三个主要问题:
- 测量噪声:$d_i$存在随机误差
- 异常值:部分$d_i$可能完全错误(如信号被遮挡)
- 非线性:即使无噪声,方程组本身也是非线性且可能超定(方程数量多于未知数)
2.2 从普通最小二乘法到加权最小二乘法
普通最小二乘法通过最小化残差平方和来求解:
$$\min_x \sum_{i=1}^N [(x-x_i)^2 + (y-y_i)^2 - d_i^2]^2$$
这种方法对所有测量数据一视同仁,导致异常值对结果产生不成比例的影响。就好比在民主投票中,每个选民(数据点)的权重相同,但如果混入了几个"恶意刷票"的异常值,就会扭曲最终结果。
加权最小二乘法(Weighted Least Squares, WLS)引入了权重系数$w_i$:
$$\min_x \sum_{i=1}^N w_i[(x-x_i)^2 + (y-y_i)^2 - d_i^2]^2$$
关键在于如何确定这些权重。理想情况下,可靠的数据应获得高权重,异常值应被赋予低权重。但问题在于——我们无法预先知道哪些数据是异常的。
2.3 迭代重新加权机制的精妙之处
IRWLS通过迭代方式动态调整权重,其流程如下:
- 初始化:所有$w_i^{(0)} = 1$(即初始时采用普通最小二乘)
- 第k次迭代:
- 用当前权重$w_i^{(k)}$求解WLS,得到位置估计$x^{(k)}$
- 计算每个传感器的残差:$r_i^{(k)} = ||x^{(k)} - s_i|| - d_i$
- 更新权重:$w_i^{(k+1)} = \frac{1}{|r_i^{(k)}| + \epsilon}
