打印
[高手进阶]

【21ic飞控】+四轴加速度计的标定

[复制链接]
3087|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhous123|  楼主 | 2014-11-27 20:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    传感器总会有缺陷,测量的值有误差,所以要校正。要校正加速度计,最简单有效的办法就是利用重力了。以不同方向在静止状态测量加速度,然后把数据拟合到当地重力加速度,就完成对加速度计的标定了,直接无视Datasheet上的精度参数。

  • 这次标定加速度计,最大的收获是——把困扰多年的“最小二乘法”弄懂了。
    设x‘,y’,z‘为实际加速度分量,G0为当地重力加速度值。理想情况下有下面的等式:


    但测量有误差,设测量值为[x,y,z],则测量值和实际值可以用下面的公式拟合。拟合方式为线性拟合,其中a',b',c'是比例因子,d',e',f'为偏移因子。通过这条公式,可以把测量值“变成”实际值(下面称作“估计值”),标定加速度计的目标,就是确定[a',b',c',d',e',f']这六个参数(下面称作“参数”),使估计值更接近实际值。


    代入理想情况的等式,有:


    这分明是椭球嘛,展开得:


    为方便推导和运算,写成如下形式:

    比较以上两式,有:(注意要加上系数k)

    反过来有:

    现在已经在静止状态测量出一些数据,记作[xn,yn,zn],表示第n组测量值,对应的实际值都是重力G0。为了衡量参数的合适程度,引入误差函数Δn,表示第n个估计值与实际值的偏差,如果硬要说出具体意义,就是:估计值和实际值的平方差的1/k倍。

    Δn是第n组数据的偏差,我们的目标是整体偏差最小,所以引入整体偏差指数I,等于全部数据的偏差的平方和(“最小二乘法”的“二乘”就是指平方)。

    再次强调,我们的目标是找出一组参数,使整体的估计值最接近实际值。换句话说,就是:已知[xn,yn,zn],求使I最小的[a',b',c',d',e',f']。直接求[a',b',c',d',e',f']有困难,要利用[a,b,c,d,e,f,g],不废话吗?这就是我们引入abc的原因啊。所以不用犹豫了,动用高数中的偏导吧,用I分别对[a,b,c,d,e,f,g]求偏导,然后通通都要是0,这是I最小的必要条件。于是得到下面7条方程,对于[a,b,c,d,e,f,g],都是线性方程,组合起来就是一组7*7的齐次线性方程组。

    仔细观察上面的方程,很有规律。其实可以写成更简洁(传说中的数学的优雅啊)的形式。引入列向量v和pn,v为变量组,pn为系数组,单个偏差可以写成它们的点积。

    神奇的一刻到了,方程组可以用一条式表示!再经过一些变换(向量点积交换,证明不出,归纳出来的。),得到终极的矩阵形式。而且矩阵A相当利于程序实现,算法复杂度甚至是完美的“online”!




    呵呵,一不小心,把最小二乘法的一般形式推导出来了。
    至此,问题归结到线性方程组的求解,理论上已经没有任何障碍(那是当然的,都已经用了上百年了)。
  • 编写软件

    先梳理一下思路。现在有一个原始的RCD格式的数据,首先要提取出[xn,yn,zn],然后用[xn,yn,zn]算出向量pn,再用pn转置自乘,累加成矩阵A,接着求以A为系数矩阵的齐次线性方程组,算出[a,b,c,d,e,f,g],这样就可以得到最佳的[a',b',c',d',e',f']了。

    第一步需要了解RCD文件的结构,那是做黑匣的时候自己设计的,没问题;然后加加减减得到A,这个也不难;以前混ACM的时候,对着《线性代数》写过解线性方程组的库,解方程组小意思;最后再次加加减减,[a',b',c',d',e',f']就出来啦。关键代码如下:

    输入数据循环。



    累加生成矩阵。



    解方程,vp就是[a,b,c,d,e,f,g]啦。



    [a,b,c,d,e,f,g]转[a',b',c',d',e',f']。

  • 校验结果
    一共14339组数据,左边是原始采样值,中间是标定后的加速度,右边是估计值与实际值的误差。
    重力加速度取广州的9.7883m/s²,大多数误差在0.5%以下,结果还算满意。



相关帖子

沙发
franki_18| | 2014-11-27 22:06 | 只看该作者
图片怎么都看不到  ?

使用特权

评论回复
板凳
zhous123|  楼主 | 2014-11-28 00:05 | 只看该作者
franki_18 发表于 2014-11-27 22:06
图片怎么都看不到  ?

可以呀

使用特权

评论回复
地板
icegoat| | 2014-11-28 17:11 | 只看该作者
图片显示,此图片仅供新浪博客用户交流与沟通~

使用特权

评论回复
5
gaoxiaohui176| | 2015-5-10 07:05 | 只看该作者
图挂了

使用特权

评论回复
6
fjjjie| | 2017-3-6 09:51 | 只看该作者
为什么图看不了?没图就等于没内容哇

使用特权

评论回复
7
fjjjie| | 2017-3-6 10:07 | 只看该作者
求有图的 的**, 跪求。。。

使用特权

评论回复
8
arao和xiaomi| | 2017-3-11 08:01 | 只看该作者
图片怎么看不到呀

使用特权

评论回复
9
arao和xiaomi| | 2017-3-11 08:02 | 只看该作者
icegoat 发表于 2014-11-28 17:11
图片显示,此图片仅供新浪博客用户交流与沟通~

我也是这样的

使用特权

评论回复
10
mertary| | 2017-5-4 17:14 | 只看该作者
图挂了,看来没补图

使用特权

评论回复
11
sum123456| | 2018-4-12 12:05 | 只看该作者

可以呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

206

帖子

6

粉丝