首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

三轴正交型传感器正交性的软件修正方法

三轴正交型传感器正交性的软件修正方法

当需要测量的物理量为矢量时,我们需要使用三个正交放置的传感器来分别测量物理量的各个分量,以此来合成一个完整的矢量。如果我们对测量精度要求非常高,就不能仅仅只是对单个传感器进行修正,还要考虑三个传感器的敏感轴是否严格的正交。很多时候我们需要仔细的调整三个传感器的正交关系,但是将三个传感器调整到完全正交是很难的,并且许多时候,由于设计等原因,这种机械上的调校是无法进行的。这时,软件修正就成了必不可少的步骤,软件修正大多数时候也比机械上的调校更简单。
这里介绍一种基本的软件修正方法。它对大多数类型的传感器都可以使用。首先,假设单独的每个传感器的测量的值都是准确的,这可以通过预先对每个传感器进行标定来完成。

这里设三个传感器的测量值分别是 x1,x2,x3。这三个值可以合成一个列向量X:




而传感器所在位置的真实物理量可以用矢量Y来表示:




所谓软件修正算法,就是找到从 X到 Y 的映射。由解析几何知识我们知道X到 Y 的映射可以通过一个线性变换C来表示:






这里再多说几句,我个人喜欢使用 gnuplot,gnuplot中有个 fit 命令,也可以完成多元函数拟合。Gnuplot的 fit 命令采用非线性最小二乘 (NLLS) Marquardt-Levenberg算法,拟合能力非常强悍,只要拟合参数的初值给的别太离谱,基本都能够收敛到最优解上。fit命令具体的用法可以参考gnuplot的帮助文件。这里只讲讲如何处理 y是多个值的问题,方法很简单,就是通过多引入一个自变量,将多值函数改造成普通的函数:




改造后的fc(X,i)就成了普通的多元函数了,可以用常规的多元函数拟合方法来处理。

如果将三个传感器单独的校正和正交性校正一起进行,可以这样来:




这里需要注意的是如果a1,a2,a3成为未知数,c11,c22,c33就可以作为已知量了,比如设c11=c22=c33=1,因为这里的六个未知数只有三个是独立的。因此,实际上只增加了三个未知数。

如果将上面的方法和温度修正一起考虑的话可以这样处理:




上面式子中的t是温度,这里的温度修正算法比较简单,主要是为了尽量少引入未知的参数。后面的计算就没什么不同的了。
返回列表