基于ADXL345的指控小车_第1页
基于ADXL345的指控小车_第2页
基于ADXL345的指控小车_第3页
基于ADXL345的指控小车_第4页
基于ADXL345的指控小车_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z---.--总结资料分数:分数:创新实验学院实践报告研究室名称:传感器与人机交互研究室:机电专题研究〔一〕立项题目:基于传感器的飞行器姿态控制系统院系:创新实验学院班级:创电0901学生**:王瑜敏学号:200901207完成日期:2011年12月10日**理工大学创新实验学院基于传感器的飞行器姿态控制系统设计内容综述四旋翼飞行器是一种电动的、能够垂直起降的、多旋翼式飞行器。由于具有广阔的军事和民用前景,使其成为了当前的研究热点。四旋翼飞行器有两个关键问题:飞行器姿态解算和飞行控制。姿态解算的精度将直接影响飞行控制算法的稳定性、可靠性和实现的难易程度,所以姿态解算是飞行控制实现的前提。随着MEMS技术以及计算机技术的开展,小型飞行器航姿测量普遍采用低本钱的捷联惯性导航技术测量单元〔IMU〕,其主要由低本钱的陀螺仪、加速度传感器和电子罗盘组成。陀螺仪具有温度漂移特性,加速度传感器会受到飞行器飞行过程中机体振动的影响,同时电子罗盘是一种磁阻传感器,容易受到外部磁场的干扰。因此,如何融合IMU多传感器的数据,滤除外部干扰,得到高可靠性、高精度的姿态数据,是一项非常具有挑战性的工作。扩展卡尔曼滤波器算法是一种高精度,在飞行器中应用非常广泛的姿态解算算法,但是建立其稳定可靠的更新方程是比较困难的,而且其计算量很大,对处理器的运算速度和精度要求很高,不适合小型飞行器的嵌入式微控制器。互补滤波器算法以其简单可靠的优点,在飞行器姿态解算中的应用愈加广泛。互补滤波器对惯性器件的精度要求较低,特别适合于廉价的IMU。本文基于互补滤波器算法,设计了适合四旋翼飞行器的姿态解算算法。实验结果说明,本算法能够长时间输出高精度姿态数据,完全满足飞行控制的要求。总体架构小型四旋翼飞行器涉及到飞行器设计、传感器技术、机器人技术、嵌入式系统开发、自动控制理论和应用的等诸多技术领域。如右图图一所示为小型四旋翼飞行器的整体框架:图一总体框架在飞行器航姿参考系统中,根据三轴陀螺仪的角速度输出,使用斱向余弦矩阵法解算小型四旋翼飞行器的姿态,采用高效的单位正交化算法对斱向余弦矩阵进展校正;根据陀螺仪和加速度传感器、数字罗盘的测量结果在频域上的特点,使用互补滤波器对多传感器结算结果进展数据融合,有效提高了姿态测量的精度。图2飞行器姿态控制系统我们设计通过使用如下的传感器对飞行器的飞行姿态进展测量:虽然陀螺仪动态响应良好,但是测量姿态时会产生积累误差。相比陀螺仪,数字罗盘和加速度传感器最大的优点就是输出丌会随时间发生漂移,没有积累误差,但是动态响应较差。两者在频域上具有互补特性,满足互补滤波器的使用条件,可以采用互补滤波器对三种传感器的姿态数据进展融合,以提高测量精度各模块原理、方法及实现飞行器的偏航角不会影响重力加速度矢量的方向,而且滚转角和俯仰角也不会影响飞行器的航向,所以两路校正之间是解耦的,不会相互干扰,分为两路的策略是合理的。四旋翼飞行器大局部时间处于悬停、匀速飞行阶段,此时加速度传感器只受机体高频振动的干扰,而且在起飞、降落和加减速阶段,其加速度相对重力加速度较小,而且持续时间很短,最终会被互补滤波器滤除。因此,可以将加速度传感器的数据作为机体重力加速度的测量结果。由互补滤波器估计的重力加速度矢量为旋转矩阵R的第3行,其与加速度传感器测量的重力加速度的单位矢量的偏差,即为俯仰和滚转角误差,其值为两个矢量的叉乘。以上小型四旋翼飞行器的动力学模型,使用加速度斱程描述飞行器的位移,使用角加速度斱程描述飞行器的姿态角,因此飞行控制算法需要完成对位置和姿态两个环节的控制。在动力学模型的根底上,将小型四旋翼飞行器实时控制算法分为两个控制回路,即位置控制回路和姿态控制回路。讨论和方案通过大三上学期的学习与制作,我们对基于传感器的飞行器姿态控制系统有了整体的设计框架,学习了传感器:加速度传感器、陀螺仪和数字罗盘,在本学期也制作了一个基于AD*L345加速度传感器的指控小车,运用操作简单的89C51单片机进展控制,通过对AD*L345的控制读取*,y,z轴的加速度数值,一方面显示到1602液晶屏上进展实时的监测控制,另一方面通过单片机控制小车遥控模块,实现手拿加速度传感器便可以如实的模拟控制小车向前、向后、左转、右转,设计独特新颖。通过实物的设计与调试,我学会了熟练使用的AD*L345加速度传感器,并能够通过II2C总线模式控制传感器。如下是我们的设计框图:图3基于AD*L345加速度传感器的指控小车原理框图在上学期学习了工程所需的硬件知识后,我们将会按照如下分工进展实物的制作与调试:组长:惠明通负责硬件电路的设计与制作组员:王瑜敏负责相关传感器的操作,学习ARM32的使用组员:罗进负责软件编程这学期学会了使用AD*L345加速度传感器后,我会在下学期的时候努力学习陀螺仪、数字罗盘的使用,与组员们团结协作,将实物在下学期的时候制作出来并进展调试与检测。附录:〔原理图、PCB、源代码等,不超过3页〕1、利用AD*L345传感器制作的指控小车的实物图2、以下代码为使用AD*L345加速度传感器获取*,y,z轴的加速度值,通过89SC51单片机控制液晶屏显示的局部程序://********AD*L345.C*include<REG51.H> *include<math.h>//Keillibrary *include<INTRINS.H>*include<dingyi.h>*include<1602.h>*include<Reluctance.h>*include<*ianshi.h>voidmain(){unsignedinti;delay(500); init_();Init_AD*L345();while(1)//循环{delay(100);Multiple_read_SHEBEI(0*A6,0*32);display_*();//---------显示*轴display_y();//---------显示Y轴display_z();//---------显示Z轴 delay(100);}}//************************ianshi.H}//**********************Reluctance.h*****voidSingle_Write_SHEBEI(ucharSlaveAddress,ucharREG_Address,ucharREG_data){IIC_Start();//起始信号SHEBEI_SendByte(SlaveAddress);//发送设备地址+写信号SHEBEI_SendByte(REG_Address);//内部存放器地址,请参考中文pdfSHEBEI_SendByte(REG_data);//内部存放器数据,请参考中文pdfIIC_Stop();//发送停顿信号}//******************************************************voidMultiple_read_SHEBEI(ucharSlaveAddress,ucharaddress){uchari;IIC_Start();//起始信号SHEBEI_SendByte(SlaveAddress);//发送设备地址+写信号SHEBEI_SendByte(address);//发送存储单元地址,从0*32开场 IIC_Start();//起始信号SHEBEI_SendByte(SlaveAddress+1);//发送设备地址+读信号 for(i=0;i<6;i++)//连续读取6个地址数据,存储中BUF{BUF[i]=SHEBEI_RecvByte();//BUF[0]存储0*32地址中的数据if(i==5){SHEBEI_SendACK(1);//最后一个数据需要回NOACK}else{SHEBEI_SendACK(0);//回应ACK}}IIC_Stop();//停顿信号Delay5ms();}voidInit_AD*L345(){Single_Write_SHEBEI(0*A6,0*31,0*0B);//测量*围,正负16g,13位模式Single_Write_SHEBEI(0*A6,0*2C,0*08);//速率设定为12.5参考pdf13页Single_Write_SHEBEI(0*A6,0*2D,0*08);//选择电源模式参考pdf24页Single_Write_SHEBEI(0*A6,0*2E,0*80);//使能DATA_READY中断Single_Write_SHEBEI(0*A6,0*1E,0*00);//*偏移量根据测试传感器的状态写入pdf29页Single_Write_SHEBEI(0*A6,0*1F,0*00);//Y偏移量根据测试传感器的状态写入pdf29页Single_Write_SHEBEI(0*A6,0*20,0*05);//Z偏移量根据测试传感器的状态写入pdf29页}//*****************************dingyi.h*defineucharunsignedchar*defineuintunsignedint *defineDataPortP0 //LCD1602数据端口sbit SCL=P1^0;//IIC时钟引脚定义sbit SDA=P1^1;//IIC数据引脚定义sbitRS=P2^0;//LCD1602命令端口 sbitRW=P2^1;//LCD1602命令端口 sbitE=P2^2;//LCD1602命令端口//*define SlaveAddress0*3C //定义器件在IIC总线中的从地址//ucharSlaveAddress;typedefunsignedcharBYTE;typedefunsignedshortWORD;BYTEBUF[8];//接收数据缓存区 ucharge,shi,bai,qian,wan;//显示变量intdis_data;float*1;floatY1;floatZ1;int*;inty;intz;intH*;intHy;voidDisplayOneChar(uchar*,ucharY,ucharDData){ Y&=1; *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论