打印

【21ic飞控】+普及四旋翼知识

[复制链接]
11506|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lvyunhua|  楼主 | 2014-11-11 21:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近四轴飞行器活动连连,人气超高,本人也一直关注该板块,也想通过活动获取四旋翼一枚。现在在网上搜罗了下关于四旋翼的普及知识,为以后的应用打下一定的基础。

传感器之一:角速度传感器应用科里奥利力原理:科里奥利力来自于物体运动所具有的惯性,在旋转体系中进行直线运动的质点,由于惯性的作用,有沿着原有运动方向继续运动的趋势,但是由于体系本身是旋转的,在经历了一段时间的运动之后,体系中质点的位置会有所变化,而它原有的运动趋势的方向,如果以旋转体系的视角去观察,就会发生一定程度的偏离。当一个质点相对于惯性系做直线运动时,相对于旋转体系,其轨迹是一条曲线。立足于旋转体系,我们认为有一个力驱使质点运动轨迹形成曲线,这个力就是科里奥利力。

角速度传感器的通常被应用于检测物体的移动。举个例子,一个人朝着一个固定方向在直线前进,从太空来看,这个人其实是以一定的角度在旋转前进。通过检测这个角速度,我们就能够只物体是否在移动。

在四轴飞行器中,通过对不同方向的角速度检测,我们就能够知道飞行器的运动方向。常用的运动方向检测包括X方向,Y方向,Z方向,即通常所说的三轴角速度传感器,也称3轴陀螺仪。

传感器之二:四轴飞行器所用到的加速度传感器也叫重力感应器,用于测量设备相对于水平面的倾斜角度。那么它的测量原理是什么呢? 我们知道,任何地球上的物体都会受到重力的作用。我们先来回顾下重力的计算公式:G=mg. 其中的g就是重力加速度,其值是9.8牛每千克。根据我们中学所学的物理知识可以知道,一个放置于斜面上的物体所受到的重力可以分解为两个方向:平行于物体的方向和垂直于物体的方向。那么对于斜角是@的物体,重力加速度g可以分解为X方向的sin@和Y方向的cos@,从而可以得到X方向的重力作用Fx=mg.sin@ 以及Y方向的重力作用 Fy=mg.cos@. 重力感应器把这两个力转化成电压信号,我们通过读取该电压信号,即可以计算中物体的倾斜角度。另外我们必须注意的是,运动中的物体所测量出来的倾斜角度是不准确的,原因是运动中的物体,由于不同角度的加速度的叠加,使得物体各个方向的力不能准确代表由于倾斜所产生的重力,因而使用中要注意到这一点。
初学者可能有个疑虑,为什么这个不直接叫重力传感器,而叫加速度传感器呢。实际上加速度传感器能感性各种各样的加速度,而不单单是地球重力加速度。 我们在四轴飞行器中把它称作重力传感器是因为我们只需要用对重力加速度进行检测,从而获得四轴飞行器相对于地面的倾斜角度。
简单的来说,加速度传感器的制造原理就是把压力转化为电信号。多数加速度传感器都是根据压电效应的原理来工作的。所谓压电效应,即使某些电介质在沿一定方向上受到外力的作用而变形时,其内部会产生极化现象,同时在它的两个相对表面上出现正负相反的电荷。通过测量这些电荷,并转化为电压信号输出,即完成了加速度传感器的制造。

常用的角速度和加速度传感器合一的模块有MPU6050,目前已经某宝已经有串口的MPU6050模块了。

传感器之三:地磁传感器,即数字罗盘,我们都知道它是用来确定方向的。它利用地磁场来定北极,其基本原理和我们熟知的指南针差不多。三维地磁传感器通过给出在X轴,Y轴和Z轴上的地磁力投影,可以提供活动物体的航向角 、俯仰角和横 滚角,从而可以确定物体 的姿 态,实际 上 就是确定了物体坐标系与地理坐标系之间的方位关系。不过在实际应用中,需要注意周围物体所产生出来的磁场对传感器造成的干扰。

传感器之四:气压传感器,用于测量物体所在平面的高度。气压是由地表空气的重力所产生的。海拔高的地方,地表的空气厚度小,气压低;海拔低的地方,地表的空气厚度大,气压高。通过测量所在地的大气压值,与标准值比较,就可以获得物体所在位置的高度。这就是气压高度计的基本测量原理。在实际应用中,需要结合温度等对测量结果进行修正。

四轴飞行器传感器之总汇: 在上面的各个章节中,分别介绍了角速度传感器,加速度传感器,地磁传感器和气压传感器。除了气压传感器外,余下的三个传感器均能提供X,Y,Z三轴的测量数据,综合在一起,可以称做10轴传感器。 我们知道,传感器是根据大自然的现象进行测量的一种器件。为了方便大家更好理解各个传感器的功能,我们总结如下:
1)        加速度传感器:利用了地球万有引力,把重力加速度投影到X,Y,Z轴上,测量出物体的姿势。
2)        地磁传感器:利用了地球南北极的磁场所产生的吸力,并投影到X,Y,Z轴上,测量出物体的方位和姿态。
3)        角速度传感器:利用旋转物体的旋转轴所指的方向在不受外力影响时的不变性,测量外力对物体的影响。跟地球万有引力和地球南北极的磁力具有固定方向性不同,旋转物体的旋转轴方向是不确定的,因而角速度传感器只能用来测量位置改变,而无法像加速度传感器和地磁传感器那样,测量出物体的绝对角度和姿势。我们必须要注意,角速度传感器输出的角速度是瞬时量,它的测量基准是自身,并没有系统外的绝对参照物。
4)        气压传感器:利用空气的压力,测量出物体所在位置的高度。

从上面的描述可知,除了气压传感器外,加速度传感器,地磁传感器和角速度传感器均可以用于对物体的姿势进行检测,从而对四轴飞行器平衡进行控制。那么它们的缺点分别是什么呢?
首先我们来看地磁传感器:
我们知道,磁场是非常容易发生干扰的。所谓电磁效应,即电场会产生磁场,而磁场又会产生电场。我们我们单纯用地磁传感器来控制四轴飞行器的平衡,那么一个电器产生的磁力感应有可能被误认为是飞行器的姿势发生了改变,从而引起微处理器改变电机的平衡转速,从而导致四轴飞行器失去平衡。大家知道飞行器中最容易产生磁场的就是电机,也就是说,电机不通电能够测出地磁场,一通电,磁场传感器就傻了。如果您做的不是静态模型,那我还是建议您不要考虑磁场了,为自己省点银子。

对于加速度传感器,我们知道运动中的物体会产生包括重力加速度在内的各种各样的加速度。当四轴飞行器起飞的一霎那,由于电机转速本身的重量和转速误差,我们无法感知飞行器本身的受力情况,从而无法通过加速度来判别物体的姿势。要获得准确的物体角度和姿势,加速度传感器就需要在静止或者匀速的情况下进行测量,而飞行器起飞的瞬间,物体是运动的,所以你无法用它来平衡四轴飞行器。
角速度传感器是理想的平衡控制传感器,它能感知物体的运行变化。四轴飞行器的微处理器通过读取这些数据进行分析,并根据运动变化进行反馈控制,即可以使得物体保持平衡。四轴飞行器在起飞瞬间,飞行器在四个电机的作用力下,开始运动,由于不同电机的驱动力差异,飞行器姿势会发生改变,微处理器获得这些改变后,微调各个电机的转速,从而使得飞行器达到平衡。
那么只有角速度传感器的四轴飞行器可以飞吗? 理论上是可行的,但是正像我们前面提到那样,角速度传感器无法绝对定位自己的位置和姿势。 它只是感知物体的姿势改变,然后通过微控制器来阻止这种改变,从而获得平衡。简单来说,四轴飞行器起飞瞬间,如果它的位置是斜的,那么它平衡后,位置也是斜的,因为它无法知道自己的初始状态。所以只有角速度传感器的四轴飞行器无法水平飞行,无法感应飞行姿势,也无法修正飞行姿势。此外,还需要注意,角速度传感器输出的瞬时量其实并不适合于用来直接进行平衡控制。关于平衡控制,我们将来接下来的章节谈到。

至于气压传感器,那就单纯是测量飞行器高度,可用于导航。有没有,对四轴飞行器影响不大。
大家知道飞行器中最容易产生磁场的就是电机,也就是说,电机不通电能够测出地磁场,一通电,磁场传感器就傻了。如果您做的不是静态模型,那我还是建议您不要考虑磁场了,为自己省点银子。

四轴飞行器传之平衡和姿势控制:
上述各个章节对传感器进行了具体描述,下面谈下如何进行四轴飞行器传的平衡和姿势控制。开始这部分描述前,大家必须不要混淆加速度传感器和角速度传感器。 角速度传感器也有人叫角加速度传感器,不过不要小看这个“角”字,一字之差,千里之别。如果你还是无法区分它们,建议在读本节之前,先重新复习下上面各章节。
前面说到,角速度传感器输出的角速度是瞬时的角加速度量,一般的平衡控制系统不能直接使用它。我们需要得到角度的变化量来进行平衡控制,这就需要使用角速度和时间进行积分运算,从而得到角度的变化量。然后这个角度的变化量就能用于平衡控制。所以在实际的四轴飞行系统中,首先要对角速度传感器做 PI运算。PI是比例积分控制,是滞后校正,它是PID(比例/积分/微分)发展起来的一种PID改进算法。P是指比例控制,其控制器的输出与输入误差信号成比例关系。I是指积分控制,控制器的输出与输入误差信号的积分成正比关系。
PID是一种闭环控制算法,必须在硬件上具有闭环系统,即控制系统和反馈系统。PID(比例/积分/微分)并不是必须同时具备三种算法,可以是PD,PI,甚至P算法控制。单纯的P算法控制是最简单的,以四轴飞行器为例,就是把角加速度数据读回来,是正就电机加速,是负就电机减速,或做相反控制。对于单纯的P(比例)控制,反映系统的当前状态,可以通过加快调节来减小误差,但是使系统稳定性下降,甚至造成系统不稳定。   I(积分)和D(微分)不能单独起作用,必须和P(比例)控制配合使用,   I(积分)反映系统的累计偏差,使系统消除稳态误差。D(微分)反映系统偏差信号的变化率,具有预见性,从而进行超前控制。四轴飞行器只用到PI算法。关于PI算法的更多知识,我们将会在后续的章节中陆续谈到。
理论上,如果我们知道物体的初始姿势,通过角速度传感器的上述积分运算,我们也能得到物体的最终姿势,但是,我们知道积分运算是有误差的,随着时间的流逝,误差越来越大,最终这个计算出来的变化的角度就和实际的角度相差较远。从而导致姿势和我们预想的发生偏差。
加速度传感器是以重力作为参考力方向的,在无外力的情况下,测量出来的是物体的绝对姿势。但是它无法区分重力加速度和外力加速度。因为运动中的四轴飞行器同时受到重力和外力的作用,所以加速度传感器的姿势输出也无法反映飞行器最真实的姿态。
所以在没有其它参照物的基础上,就要充分了解这两种传感器的特性,扬长避短,在短时间内使用角加速度的值,在长时间内使用加速度的值进行校正,从而得到接近真实值的姿势。加速度与角速度融合求解姿态最正确的方法是利用动态卡尔曼滤波进行输出,它能够自动根据观测量修正状态参量,但是卡尔曼滤波算法比较复杂,非常难懂。没有一定的功底是不好做的。

相关帖子

沙发
zhous123| | 2014-11-11 22:06 | 只看该作者
谢谢楼主,

使用特权

评论回复
板凳
lvyunhua|  楼主 | 2014-11-12 12:34 | 只看该作者
谢谢楼主

谢谢你的支持!

使用特权

评论回复
地板
lvyunhua|  楼主 | 2014-11-14 11:53 | 只看该作者
大家来学习下。

使用特权

评论回复
5
skiiwujinhua| | 2014-11-14 22:21 | 只看该作者
重力加速度传感器呢,我理解为主要确定四车的平衡的.气压传感器来采集高度.但角加速度传感器主要干嘛?

使用特权

评论回复
6
lvyunhua|  楼主 | 2014-11-15 20:21 | 只看该作者
角加速度传感器就是重力加速度传感器。

使用特权

评论回复
7
lvyunhua|  楼主 | 2014-11-18 13:52 | 只看该作者
:lol

使用特权

评论回复
8
q13117998768| | 2014-11-21 11:14 | 只看该作者
楼主,我是刚接触四轴的新手,我想问下姿态解算又是什么意思啊,有些资料说用四元数来姿态解算,再用卡尔曼滤波,不同这方面的知识啊,求楼主解答疑惑

使用特权

评论回复
9
lvyunhua|  楼主 | 2014-11-21 15:35 | 只看该作者
本帖最后由 lvyunhua 于 2014-11-21 15:38 编辑

借用成功人士的经验为楼上网友进行解答。

     首先从卡尔曼开始讲起,网上很多都是用的基本卡尔曼公式,但我觉得用一般情况下的卡尔曼,更容易建立状态方程。
一般离散线性系统的状态方程如下:

其对应的卡尔曼滤波迭代公式如下:
先给出初值P(0|0),然后迭代。

针对要滤波的四轴,分别对单轴建立状态方程,这样可以有效的减少矩阵运算,有没有带来其他的问题目前还没有发现。等下一步做优化的时候再做进一步的分析,大家觉得有问题也可以提出来,毕竟姿态这部分完全是自学的。状态方程如下:

其中X为状态变量,即加速度计测出的姿态角。Z为观测量。ω为角速度,即载体加速度,对应于一般离散线性系统的状态方程中的u。
将上式离散化有:

将其代入卡尔曼滤波的公式。过程中发现卡尔曼对个别参数并不敏感。尤其是w,v这两个干扰误差的协方差和均值。再迭代方程中我试着做了一定范围的改变,对结果没有明显的影响,可能是本身因为就是干扰量,他的值就是不确定的。
下一步,设航向角(Z轴旋转)为φ,俯仰角(Y轴旋转)为θ ,横滚角(X轴旋转)为γ。然后用欧拉角法,利用陀螺仪的角速度值换算到导航坐标,作为卡尔曼滤波的控制量u。

最后利用导航坐标和机体坐标之间的转换矩阵,用加速度计的值求出姿态角作为观测值。   

用反三角函数得:

使用atan2函数的时候。Ax应带负号而不是Az。
加速度和角速度的值都需要先做标定,建立基准。由于加上电机后对加速度计的影响可谓相当的大。我这里取了80次的值取平均,再加上低通滤波器,对电机振动有了较好的克服。不过牺牲了不少速度,和灵敏度。我不知道大家用的是什么方法。倒是陀螺仪对电机的振动基本没什么响应。
地磁还没有弄好,不过准备调好这两个轴的控制后再去上地磁,做偏航角。

使用特权

评论回复
10
lvyunhua|  楼主 | 2014-11-29 09:54 | 只看该作者
参加活动的人越来越多啊!

使用特权

评论回复
11
lvyunhua|  楼主 | 2014-12-5 16:07 | 只看该作者
支持下自己。

使用特权

评论回复
12
YingziSeek| | 2014-12-5 16:09 | 只看该作者

使用特权

评论回复
13
lvyunhua|  楼主 | 2014-12-5 16:10 | 只看该作者
@YingziSeek     谢谢你的支持!

使用特权

评论回复
14
icarusli| | 2015-4-7 12:22 | 只看该作者
mark一个

使用特权

评论回复
15
cxy2012| | 2015-5-15 21:50 | 只看该作者
mark  学习

使用特权

评论回复
16
lvyunhua|  楼主 | 2015-5-15 22:44 | 只看该作者
mark  学习

欢迎学习!

使用特权

评论回复
17
houjiajian| | 2015-5-28 13:49 | 只看该作者
楼主是大牛!

使用特权

评论回复
18
lvyunhua|  楼主 | 2015-5-28 13:50 | 只看该作者
楼主是大牛!

过奖了。

使用特权

评论回复
19
hayashi7| | 2015-6-6 20:22 | 只看该作者
无头模式是怎么实现的呢?有高人知道吗?

使用特权

评论回复
20
caixiaoqing627| | 2015-9-10 19:29 | 只看该作者
mark

使用特权

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

本版积分规则

个人签名:工程师是科学家,工程师是艺术家,工程师也是思想家。

2829

主题

8222

帖子

25

粉丝