当需求丈量的物理量为矢量时,咱们需求运用三个正交放置的传感器来别离丈量物理量的各个重量,以此来组成一个完好的矢量。假如咱们对丈量精度要求十分高,就不能仅仅只是对单个传感器进行批改,还要考虑三个传感器的灵敏轴是否严厉的正交。许多时分咱们需求细心的调整三个传感器的正交关系,可是将三个传感器调整到彻底正交是很难的,而且许多时分,由于规划等原因,这种机械上的调校是无法进行的。这时,软件批改就成了必不可少的过程,软件批改大多数时分也比机械上的调校更简略。
这儿介绍一种根本的软件批改办法。它对大多数类型的传感器都能够运用。首要,假定独自的每个传感器的丈量的值都是准确的,这能够通过预先对每个传感器进行标定来完结。
这儿设三个传感器的丈量值别离是 x1,x2,x3。这三个值能够组成一个列向量X:
而传感器所在位置的实在物理量能够用矢量Y来表明:
所谓软件批改算法,便是找到从 X到 Y 的映射。由解析几何常识咱们知道X到 Y 的映射能够通过一个线性变换C来表明:
写到这儿其实办法就很明了了,咱们只需求求得这个转化矩阵C就一切都处理了。
转化矩阵C怎么求,当然是通过很多的丈量数据来拟合。试验数据的取得很重要,最好能有个比较精细的三轴转台,这样转各个视点都比较便利。没有也不要紧,但至少要能把安装好的传感器组沿三个已知的方向放置,而且这三个方向要摆放的很准确。一般,咱们选的这三个方向是彼此正交的,这三个方向上物理量的实在值便是上面式子中的y1、y2、y3,换句话说这三个方向是三个传感器的名义上的取向,尽管这三个传感器或许全都摆歪了。详细怎么收集数据就不详细描述了,由于不知道参数有9个,至少要收集9组数据才行,条件答应的话当然是数据越多越好。
下面说说怎么对收集到的数据进行拟合。一般咱们遇到的最小二乘拟合问题的待拟合的函数都能够表明为:
这儿x1,…,xN是函数的自变量,c1,…,cM是待拟合的参数。咱们能够将自变量和待拟合参数简写为向量,这样表达式能够简化:
所谓最小二乘拟合便是求的使的下面函数g(C)为最小值时C的值,其间Xi 和 yi 为丈量值,这儿设共有P 组丈量值:
这个问题已经有老练的算法,各种常见的数学软件,比方 Matlab、Mathematica、scilab、Lingo 等都有现成的程序包来完结这个核算。咱们现在的问题难点在于 y 也是个向量,这就需求咱们对上面的办法进行一点简略的变形。简略的说,咱们实际上是有三个待拟合函数的,因而g(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是温度,这儿的温度批改算法比较简略,首要是为了尽量少引进不知道的参数。后边的核算就没什么不同的了。