![be2bbbee94a2ff5dc8ecb61a2b171240.png](https://i-blog.csdnimg.cn/blog_migrate/6577dc3d04bfe6ed4203bcda01d9a940.png)
欢迎关注公众号:编程外星人,加入技术交流群
欢迎关注公众号:编程外星人,加入技术交流群
加速度计是用于测量当前系统中加速度数值的传感器,可以分别测量x、y、z这3个轴的加速度值,例如MPU6000和MPU9250。其中MPU6000包括3轴加速度计以及3轴陀螺仪,而MPU9250处理包括3轴加速度计以及3轴陀螺仪之外,还含有3轴磁罗盘用于测量3轴的磁场强度。关于陀螺仪和磁罗盘我们在后面讲述,在这里先讨论关于加速度计测量与校准功能。
实际上,加速度计所测量到的加速度值并不是系统的实际加速度,我们可以通过一个原理模型来对3加速度计进行原理说明,假设加速度计测量值就是一个立方体盒子中其6个面对圆球作用力所产生的加速度值。
![1d5d196346842174fa9ead573ca5571b.png](https://i-blog.csdnimg.cn/blog_migrate/33a522b6a1dcaa119160d28c15862723.jpeg)
实际的加速度计并不是由一个封闭的正方体盒子和一个圆球组成的,而是采用微机械结构来实现的加速度测量。3轴加速度计在每一个轴上的测量原理都是一样的,它们测量的并不是实际的运动加速度,而是实际的受力,并除以质量得到加速度测量值。我们可以举一个最简单的例子作为加速度计的设计模型,如下图所示:
![3dc1ac31d844d3ea20fd1438f6de2af2.png](https://i-blog.csdnimg.cn/blog_migrate/650d9fa3d3e33dec90904a023b4f9227.jpeg)
加速度计校准的方式采用零偏(offset)和标度因数(scale)。零偏就是传感器的测量值相对于“零点”的偏移量;标度因数可以理解为一个比例系数,测量值乘以这个比例系数之后得到实际值。我们首先来看看零偏的计算方法。我们分别将加速度计水平放置在桌面和水平倒置在桌面。在加速度z轴垂直与桌面向下和垂直与桌面向上所测量到的2个加速度值的和为:
![bb91f26d61e865d160e8cc929d510dd8.png](https://i-blog.csdnimg.cn/blog_migrate/4f2c99350458ee89b5546d6bce590e49.jpeg)
于是就可以得到z轴上的零偏:
![b3a89e56a7ca453fc3eb92a45891c8c2.png](https://i-blog.csdnimg.cn/blog_migrate/b1d171b8f1bb90657a3a2bdc80d26b8d.jpeg)
同理,对于x轴和y轴都可以采用上面方法来得到它们的零偏值,将加速度计的x轴垂直于桌面向下得到其测量值,再将x轴垂直于桌面向上得到其测量值,然后计算其x轴的零偏值。y轴零偏的计算方法与x轴和z轴一致。
标度因数的具体计算方法:将加速度计正向放置在水平的桌面上,z轴向下(正方向)。设Y为3轴测量预期结果矩阵,X为3轴测量值矩阵,O为零偏矩阵。于是有:
![2b0fa34bf1e9612f2f7a0e5b182b394a.png](https://i-blog.csdnimg.cn/blog_migrate/2c09911ac21fa620c2f40e0282d293e7.jpeg)
其中,s_1、s_2、s_3分别为x、y、z轴3个标度因数;a_1~a_6为加速度计的安装误差。安装误差在飞控程序中并没有使用,我们不作过多介绍。这样,对于加速度计的6个平面中的1个面放置在水平桌面上就可以得到上面3个方程,而可以将加速度计的6个面分别放置在水平桌面上,就可以得到18个方程,之后我们可以使用这18个方程来解出s_1、s_2、s_3和a_1~a_6这9个未知数的值。
欢迎关注公众号:编程外星人,加入技术交流群