飞控系统的传感器1.1 飞控系统的传感器无人飞行器要求能够稳定飞行,首先最基础的问题是需要确定自己在空间中的位置、速度和姿态等相关的系统状态。
而要的到这些状态,就需要通过不同的安装在机身系统上的各种不同的传感器。
我们所处的空间是三维空间,因此主要的飞行器系统状态也主要基于这个三维空间同时在时间维度进行拓展:1:通过全球定位系统GNSS来定位自己的经度、维度和高度等三维坐标信息,同时也可以获取这三维的速度信息2:通过陀螺仪加速度计直接获取三轴加速度信息与旋转角信息的状态量,其他的状态栏只有通过姿态解算3:当飞行器需要往某个方向飞行时是通过调整飞行器的姿态往对应方向倾斜,飞行器的一部分升力会分配到该方向上成为该方向的拉力。
飞行器要能够调整飞行的姿态,就必须能够实时的获得机体当前相对于惯性坐标系的姿态,在三维空间中同样姿态角也是由三个轴的角度来表示4:飞行器的三维空间位置信息、三维空间速度信息、三维空间角度信息以及三维空间加速度信息和三维空间的角速度信息,总共有是十五个系统空间状态量需要获得5:传感器跟估计的精度决定了建模辨识与控制的精度,然后传感器跟估计的精度,与建模辨识,一起决定了控制的精度。
因此传感器的采集精度与飞行控制的控制精度密切相关1.2 I2C简介光标飞控系统中集成的微机械六轴传感器和磁力计均采用I2C总线接口与主控处理器连接。
本章着重介绍I2C接口总线、各传感器的接口驱动、数据采集及处理模型。
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其它的一些外围设备。
和我们常用的UART通信不同,虽然UART有TX、RX两个接口,但是这两根线都是可以单独使用,I2C 是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC设备之间、IC设备与IC设备之间进行双向传送,高速I2C总线一般可达400kbps以上。
它的特点是:⏹通信模式为主从式设备,可以一主多从,也可以多主多从⏹I2C总线组成“线与”的关系,任何一个器件都可以拉到低电平⏹I2C总线上可以并连多个器件⏹I2C总线有起始信号、数据传输、停止信号⏹支持7位/10位芯片地址寻址⏹支持不同的通信速率,标准速度为100kHz,高速速度为400kHzI2C总线在传送数据过程中一共有三种类型的信号,它们分别是:开始信号、结束信号和应答信号。
起始信号与停止信号●起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
●停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。
应答信号ACK发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。
应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。
对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。
如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送一个停止信号P。
数据有效性I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
即:数据在SCL的上升沿到来之前就需准备好。
并在在下降沿到来之前必须稳定。
I2C通讯常用基本写时序对于一般设计来说,一对I2C引脚可以挂接很多支持I2C通讯的设备,因此需要对每个I2C设定设定一个设备地址(DEVICE ADDRESS,设备地址设备里面自带,不许需要我们自己设定)。
I2C一般写时序为:主机发送起始信号--》主机发送设备地址编号(7位地址 + 写位) + 从机发送ACK信号 + 主机发送命令 + 从机发送ACK信号 + 主机发送数据 + 从机发送ACK信号 + 主机发送停止信号。
I2C通讯常用基本读时序I2C一般读时序为:主机发送起始信号 --》主机发送设备地址编号(7位地址 + 读位) + 从机发送ACK + 主机发送命令 + 从机发送ACK + 主机发送起始信号 + 主机发送设备地址编号(7位地址 + 写位) + 从机发送ACK + 从机发送数据(根据主机的命令) + 主机发送停止信号。
1.2.2 I2C驱动在STM32中的硬件实现I2C通讯常用基本写时序STM32芯片中有集成了I2C模块,通过I2C模块,CPU软件可以不需要关注I2C总线的协议实现以及通信时的具体会话过程,只需要将待发送的数据放入发送缓冲区中,启动I2C传输即可,而接收的时候也可以由硬件触发中断,从接收缓冲区中读取数据既可。
STM32F4的I2C模块的工作过程:1 :STM32F407的I2C模块即可以实现I2C主设备模式,同时也能实现I2C从设备模式。
在飞控系统中,主要采用STM32F407的主设备模式2 :在主模式下,I2C模块会启动I2C总线上的数据传输,同时输出SCL的时钟信号3 :当控制寄存器I2C_CR1的START位置1时,模块自动切换到主模式下,同时在总线上发出起始位信号,状态寄存器I2C_SR1的SB为会被硬件置1,并且当ITEVFEN位置1时产生系统中断4 :接着内部缓冲区会将从设备地址从内部并串转换的移位寄存器中发送到I2C 总线上,发送完毕后状态寄存器中的ADDR位会被置1。
接下来主设备会根据读写操作进入接收模式或者发送模式,将最后1位置位或者复位发送到总线上。
在发送完从地址信息后,主设备会检测从设备响应的ACK信号,只有I2C总线上的从地址设备出现了地址匹配命中的事件并将ACK位拉低后,主设备才能知道有相应的从地址挂载在I2C总线上。
1.3.1 加速度计原理惯性测量元件是一种能够在惯性系中测量载体自身三维加速度和三维角度的设备,主要分为加速度计和角速度计两种,其统称为惯性测量元件。
根据物理学原理,加速度的积分是速度,速度的积分是位置信息;角速度的积分是角度信息加速度计,或称加速度传感器是一种能够测量加速度的设备。
加速度传感器可以帮助你检测到一个物体或事物此时此刻的状态,是停止,还是在运动,是在向前、向后、向左、还是向右运动,以及是在向上还是向下运动。
加速度传感器甚至可以用来分析物体的振动。
惯性元件:惯性测量元件本身固有的误差由于时间积分会累积误差,并且受到元件本身的工艺、技术和成本的缘故,其误差越大,误差的累积就会越快,因此在飞行上万公里后累积的误差可以达到几公里甚至几十公里,因此现在导航系统都是通过GNSS全球卫星定位系统获取精准的定位和速度信息来对惯导系统进行修正。
其实人体也有惯性测量元件,人的耳蜗充满液体,人在运动的时候,可以被二种的神经感受到,因此可以测量出人体自身的运动特征。
的惯性测量元件也是非常差,闭上眼睛,也不摸周围的东西,只靠耳蜗感受的移动,人基本没法走直线,这里眼睛的作用就相当于GNSS的作用,它可以随时修正耳蜗所感应的惯性信息。
MEMSMEMS是(Micro-Electro-Mechanical Systems)的英文缩写,它是指集成微型机械结构、微型传感器、微型执行器以及信号处理和控制电路、直至接口、通信和电源等于一体的微型器件或系统。
现在很多微型加速度传感器,陀螺仪都是基于MEMS技术实现的。
微机械加速度传感器可以根据压电效应的原理来工作。
压电效应:所谓压电效应就是“对于不存在对称中心的异级晶体加在晶体上的外力除了使晶体发生形变以外,还将改变晶体的极化状态,在晶体内部建立电场,这种由于机械力作用使介质发生极化的现象称为正压电效应”。
还可以根据压阻技术、谐振式、电容效应等原理来制作惯性测量传感器元件,但是所有的原理基本都是由内部集成的微机械质量块收到物理机械力的作用带来的某个介质的形变,并将产生形变的量转换为电压输出,通过相应的放大和滤波电路进行采集,测量量的大小分别与电阻、电压、电容的变化成正比。
1.3.2 加速度计测量信息加速度传感器分为二轴与三轴加速度传感器,二轴加速度传感器:能够同时检测两个方向(x轴,y轴)上的加速度。
三轴加速度传感器:能够同时检测三个方向上的加速度,x,y,z。
加速度测量一些特性有如下几个方面:•倾斜度侦测倾斜度侦测仪。
加速传感器在静止时,可用来检测倾斜角,倾斜角在90 ~+90之间变化时,重力加速度信息会分配到三个轴上,加速度传感器输出的三轴分量可以计算出倾斜角度•运动检测运动检测可用于运动控制,计步器,基本运动检测。
•定位侦测定位侦测用于汽车导航,防盗设备,地图跟踪。
定位侦测需要测量的因素包括:加速度的范围是多少及加速传感器如何安装。
对加速度数据进行二重积分即可得到位置数据。
•震动侦测震动侦测可用于下降记录,黑盒子/故障记录仪,硬盘保护,运输和处理监视器。
震动侦测主要收集加速度计的原始数据并进行阈值选择。
一般按照被测量对象的减速度决定了震动检测所需的加速传感器的规则选取。
•振动侦测振动侦测可用于地震活动监视器,家电平衡和监测。
振动侦测需要考虑的因素包括:分析振动频率的多少,确定g值的范围及最适当的加速传感器安装位置。
借助于快速傅立叶变换对加速度资料的分析可得到振动频率的情况,快速傅立叶变换允许振动信号被分解成它的谐波分量,而每个电机振动都有它自己的谐波分量信号。
•自由下落侦测自由落下侦测可用于自由落体保护,下降记录,下降检测,运动控制和认知等。
自由落下侦测包含线性落下、旋转型落下和抛射落下。
1.4.1 加速度计原始数据采集MPU6050是一个六轴运动处理传感器,包含了三轴加速度和三轴陀螺仪以及一个可扩展的数字运动处理器DMP(DigitalMotionProcessor)。
MPU-60X0对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。
1:陀螺仪可测范围为±250,±500,±1000,±2000°/秒(dps)2:加速度计可测范围为±2,±4,±8,±16g3:上还内嵌了一个温度传感器和在工作环境下仅有±1%变动的振荡器,温度传感器可以实时感知传感器所处的环境温度,以便对传感器进行温度补偿校准1.4.2 加速度计校准加速度计的原理特性,它的误差模型为:a m=R a S a(a m′+b a′)其中a m′是校准前的原始测量值,由于芯片生产和装配的因素该值一般都会有零点偏移误差,在公式中用b a′=[b ax′b ay′b az′]来表示零点偏移补偿,此外还有量程比例的缩放导致的尺度准确性,公式中用尺度因子S a=[S ax00 0S ay0 00S az]来补偿,最后由于安装误差和芯片内部感应器件轴的扭曲因素,还需要一个旋转因子矩阵R a=[1Δψ−Δθ−Δψ1ΔϕΔθ−Δϕ1]来补偿。