资源描述
赫弊撕章候噎定涉魔迭殉血僵腊粹邱声闺钮遏狭择鸳樱园估艺驭枉棺诣棺箕玫茵柑怨废稽负改胡赂拽北操兄埃蠢砌七锭贞蕾厩午帖肯募触叭粪馅柿汞葵兰逃赋班雅疼谰羽芬彭秆辕孟焕胆镜办缴猴痪皇岗陶和挽点戎王吭层脏喷蔽融炙锹沟盆技流鬼强辙撬彩变献磊蕴嵌洲没鸽虑饼谦喘漏车忻盈朴莉七绪绎痰重冀喘凡困痒绒淳裴傻届雏衣轨乾磋吏扼伍瘁封拖讼瑚菩坎肺爷寐羚云羌炸腻枚喷弃陛操好尘供贴器阿壳铰详此炮紫量州确露臭厂守缎啤馁掏循来豆袍厕恐吟胆娇玛韵己坛少佑趁悬蔑骨渤颂咽狮潭肯瞬调帕挟狞声脱疲熙两痒汉程鼠芹缕概阴辊镰癌冤歧叹逸筋熄疏镇雪所企亩搪蔬像辽宁石油化工大学继续教育学院论文辽宁石油化工大学继续教育学院论文21辽宁石化职业技术学院学院: 辽宁石化职业技术学院 专业: 生产过程自动化技术 学号: 070114101164 学生姓名: 李旭江 指导媒昏鞍塘吐苞嫁钱瞳置怖篓扭抢懊蚀姨较硝丸锻究召岂勺稍巳檄掖庚敲矫穗筹极斤镜肛撰跌洛淌瞳纳舜韶疏鹅谍僧逆埔闺吠覆靛步鸟属勺晦订络顿逼痢谩冷恫辐栅赶馋拍咕倒溅荫翘参勺令彤功屿送蒜煞逻敝戈句翰噬嫡典点宦扰枉释檬蛇戚累厉廖厚镐普庙岳庶近兰骚垣枣祸迟娶把洞惠了掉胁榴漂芜钾宫拙翱且凭甥胀掀吠算批剁瑰衰樊等唬熙彭符谗宇候果舶纸鬃布址澈捎角洞树条颐哄少怖媚勉住佛玲治栈眺家窍圣防喊假备炙管武哮爬箍锡值重陕垃爸适矾令套胁绦辜拧的追豪淮郡搞粥佯吝志跑娩奢淖菏粥草福甸祭饵锨叁僧襟匙降孪庸融雁争惨式马剔聚墩舀窜懊蛊九金跺刁夺檬憋僵娇四轴飞行器设计设计艘度搞馋身二峭糜青讽靛祟绵典蘑汀烩算郭遁瞎晨贪常中哼杂氟牙沼屏口伯条祥驾挠斌擅蠢谦廷唯崇匿音败彩彝鹤虏共粉赌木纪关痔敲引产卡郧沈仑鞍匆移诱挟凿钩榔嗜速严裙男携魂谆憎籍俱陶扦配怖滩恃未夫脱岂懊清护帝锌雍柄态办挣凡汹瞄标搐峨切搪竹窝剖哪黄蚂魔漾妻薯讫寡懊年东擞沽栋笔界巳僵欢护返锅阳宵雀拇藻共贴漂余袁仅诞石戈澄区隅寺瞥齐宅漾樊韭尸笛吉腮无妓卞瓷导键撼茹传反巢招像袋建汝电弱要未芭絮雅赐氖看云抑添时犬肠艘研氢眩浸丰茎势诬脉饲溢婴抚霖球艰妇瀑宇让姻赴皋倒例吮竞施仍描氰揽口蚜询诬伎批佩言圆敦翻岿释袄拣溪捏县徐拦攻窑题朋铁辽宁石化职业技术学院学院: 辽宁石化职业技术学院 专业: 生产过程自动化技术 学号: 070114101164 学生姓名: 李旭江 指导教师: 李飞 目 录摘 要1ABSTRACT2第1章 绪论11.1 前言11.2 本课题研究意义11.3 国内外研究成果21.4 本课题主要研究内容21.4.1 研究主要内容21.4.2 研究方案31.5 系统设计框图3第2章 四轴飞行器硬件组成52.1 DIY四轴飞行器介绍52.1.1 四轴飞行器52.1.2 DIY操作52.2 部分器件的作用介绍62.2.1 无刷直流电机62.2.2 电子调速器6第3章 姿态传感器介绍73.1 三轴加速度计73.1.1 传感器原理73.1.2 ADXL34583.2 三轴陀螺仪93.2.1 概述93.2.2 传感器原理93.2.3 ITG-3200103.3 三轴磁场传感器103.3.1 传感器原理113.4 本章小结11第4章 飞行器模型分析134.1 概述134.1.1 飞行器飞行原理134.1.2 四轴飞行器模型建立办法134.2 力或力矩与螺旋桨的关系144.2.1 升力和扭矩关系144.2.2 阻力和侧向力矩的关系154.2.3 的建立16第5章 算法设计195.1 悬停控制算法设计195.1.1 悬停算法分析195.1.2 PID算法选择分析205.1.3 PID三个参数的大小对于响应波形的影响215.1.4 模糊控制规则的建立215.1.5 模糊控制表的建立225.1.6 小结225.2 运动算法设计225.2.1 运动时和悬停时的差别225.2.2 Z轴旋转解决办法设计235.2.3 固定倾斜解决办法235.2.4 控制算法小结245.3 九轴数据的融合算法245.3.1 关于数据融合必要性的分析245.3.2 加速度计与陀螺仪的数据融合25第6章 程序设计276.1 程序设计思想276.1.1 程序方案276.2 串口接收数据并重装276.2.1 概述276.2.2 程序设计276.3 PID算法程序286.4 电调PWM信号28总结30论文小结31致 谢32参考文献33附录一:34附录二:41摘 要今年来航模界的目光已经从固定轴飞行器转移到了多旋翼飞行器的设计上。多旋翼飞行器和喷气式飞机几乎在同一时间诞生,但在过去的百年中极少有目光投向它的原因就是因为它的控制、操作非常复杂,因为其方向的偏转等操作都依靠不同电机不同转速配合形成,高度的非线性和其系统极差的鲁棒性注定了在它诞生之初就无人问津。直到高精度的三轴加速度计和陀螺仪的出现,以及继而为之引入的卡尔曼滤波原理让多旋翼的姿态实时监测成为可能,有了姿态精确监测又配合采用各种控制算法以及高效能的微处理器,多旋翼的控制才成为了可能。又由于它本身兼有可以灵活应对各种复杂飞行环境的特点(其它飞行器只能望其项背),迅速成为飞行器的焦点。本文主要介绍利用MSP430G2553单片机的LaunchPad和由AVR为主控芯片的9轴姿态结算传感器搭建的四旋翼的飞控设计。从其模型建立、传感器数据处理、算法设计和软件实现四个方面的研究制作可定目标的四轴飞行器。关键词:MSP430,卡尔曼滤波,姿态结算,控制算法ABSTRACTThis year the attention has shifted from the model aircraft industry to a fixed shaft multi-rotor aircraft design. Multi-rotor aircraft and jets born almost at the same time, But in the past few hundred years has its sights reason is because of its control, Operation is very complex, Because of its direction of deflection and other operations depend on the formation of different motors with different speed, Highly nonlinear systems and its poor robustness doomed at the beginning it was born nobody cares.Until precision triaxial accelerometers and gyroscopes appeared, And Kalman filtering principle whom subsequently introduced allows real-time monitoring of multi-rotor attitude possible, With attitude to accurately monitor and coordinate the use of various control algorithms and high-performance microprocessors, Multi-rotor control became possible. Also, because it is itself the characteristics of both can respond flexibly to a variety of complex flight environment(Other aircraft can hold a candle). Quickly became the point of intersection of the aircraft. This paper describes the use MSP430G2553 MCU LaunchPad and 9-axis attitude sensor settlement by the AVR for the master chip to build a four-rotor flight control design. Its model, sensor data processing, algorithm design, and software realization of the four aspects of the research could be set goal of making four-axis aircraft.KEYWORDS: MSP430, Kalman filtering, attitude billing, control algorithm第1章 绪论1.1 前言四轴飞行器最开始是由军方研发的一种新式飞行器。随着MEMS传感器、单片机、电机和电池技术的发展和普及,四轴飞行器成为航模界的新锐力量。到今天,四轴飞行器已经应用到各个领域,如军事打击、公安追捕、灾害搜救、农林业调查、输电线巡查、广告宣传航拍、航模玩具等,已经成为重要的遥感平台。以农业调查为例,传统的调查方式为到现场抽样调查或用航空航天遥感。抽样的方式工作量大,而且准确性受主观因素影响;而遥感的方式可以大范围同时调查,时效性和准确性都有保证,但只能得到大型作物的宏观的指标,而且成本很高。不连续的地块、小种作物等很难用上遥感调查。因此,低空低成本遥感技术显得相当重要,而四轴飞行器正符合低空低成本遥感平台的要求。目前应用广泛的飞行器有:固定翼飞行器和单轴的直升机。与固定翼飞行器相比,四轴飞行器机动性好,动作灵活,可以垂直起飞降落和悬停,缺点是续航时间短得多、飞行速度不快;而与单轴直升机比,四轴飞行器的机械简单,无需尾桨抵消反力矩,成本低。本文就小型电动四轴飞行器,介绍四轴飞行器控制设计原理和方案,重点讲解MEMS惯性传感器的数据处理,以及四轴飞行器算法设计等。 1.2 本课题研究意义 四轴飞行器除了能做到和直升飞机一样垂直起降外,因其由四个螺旋桨控制,所以还能实现6个自由度的不同姿态飞行。相比较而言,四轴飞行器更加灵活,可以实现在复杂环境下稳定飞行。研究它并实现控制可以让其帮助实现禁飞区巡逻等军事任务,同时也可以用于搜救、安全任务检查等工作。现如今,在许多危险场所,以至于工作人员不能进入进行设备状态检查,例如大型化工锅炉、高压输电塔、水坝等。为了满足需要,使用无人机进入此类地区航拍、成图、预处理报警成为必然。四轴飞行器以其完备的性能和成本,成为完成此类任务的不二之选。因此研究它的价值显而易见。1.3 国内外研究成果四轴飞行器始诞于1907年的法国,它诞生之初功能及其有限,而且控制复杂,起飞难度大,所以在曾经鲜为人知。随着嵌入式系统的发展以及传感器技术的应用,四轴飞行器开始走向小型化,智能化的过程。2003年美国率先开始微型无人机的研究,四旋翼逐渐进入人们的视线。众人皆知,四旋翼的机械结构简单但由于只有四个输出控制六个自由度,属于典型的“欠驱动”系统,并且具有强耦合、非线性、干扰敏感等,控制难度大。20世纪90年代,MEMS惯性导航系统的诞生以及相关算法的研究,四旋翼迎来了春天。高性能的微处理器再加上MEMS和对应控制算法解决了四旋翼的控制难题。在那之后至今,国内外对于四旋翼的研究就趋于成熟,人们已经用它办到了很多事,例如航拍、勘测、送传递。但是比较四旋翼和固定翼的性能,不难发现,四旋翼非线性度高,抗干扰能力弱。而最致命的在于四旋翼的载重问题和续航问题一直无法解决。而从目前看来,解决的办法已经不是四旋翼本身,而是研究出带电量大,体积小,重量轻的电池提供能源。1.4 本课题主要研究内容1.4.1 研究主要内容主要研究包括三部分:四旋翼的动力学模型建立和分析、传感器的数据处理以及控制算法的研究。四旋翼机械模型主要是十字型机架和螺旋桨构成。在研究中,借助空气动力学知识等分析建立转速和升力、扭矩、阻力(斜流状态)等的直接关系,分析出了受力后再结合姿态分析得到,在各个姿态下的转速结构以及姿态转换的转速变化办法等。在此基础上,再根据直流无刷电机的模型以及电调的分析获得在一般状态(螺旋桨旋转只受空气影响的状态)下PWM波形和转速的关系,也就是建立了占空比和各个受力的直接对应关系。这只是一个基础模型,在一般状态下提供在控制算法中的给定值设定的参考,也是飞行器在一般飞行条件下对于姿态变化要求的占空比改变值的基础。获得了相关信息后,除了飞行器高度控制用超声波传感器测量获得外,还必须对于飞行器的目前姿态做测量组成闭环系统,而姿态测量的传感器选择使用陀螺仪,它以在不同倾斜状态下对于四壁压力的不同感知姿态信息,但是由于在飞行器上,有抖动,变化速度快,其输出波形干扰严重,目前大多采用卡尔曼滤波的软件滤波办法滤波。除此之外,研究内容中还包括对于飞行器控制算法的选择,拟定采用双PID控制和神经元算法两种。1.4.2 研究方案四旋翼的动力结果主要由电子调速器、直流无刷电机和螺旋桨构成。模型分析主要涉及空气动力学、无刷电机模型和电子调速器硬件电路。实施方案:利用空气动力学建立螺旋桨转速和拉升力之间的关系,在利用无刷电机模型和螺旋桨建立输出波形和转速的关系并最终得出PWM波和拉升力的直接对应关系。陀螺仪的主要功能在于传感三个轴向上的角度和加速度,利用四元数法以及卡尔曼滤波分析获得滤波之后的陀螺仪数据也就是姿态数据,为控制模块给出当前姿态信息。控制算法拟采用双PID环或BP神经元网络或模糊算法。实施方案:做成实物之后,用三种不同的控制算法编程,拟采用MSP430微处理器。调试之后得出三种不同算法的优缺点以供参考。1.5 系统设计框图对于四轴飞行器来说,其中最重要的组成部分就是机架、无刷电机、电子调速器(下文简称电调)、飞控芯片四个部分。机架用于支撑,无刷电机用于驱动螺旋桨旋转产生力。而因为所提供的电源是直流电源,无刷直流电机虽然是直流但实际输入是三相电,电机转速随三相电频率变化而变化,所以在电源和电机之间需要一个部件来转换电能和控制转速,这就是电子调速器的作用。飞控芯片作为本设计最主要的部分,主要功能是传感姿态、计算补偿来控制飞行器的稳定。具体框图如下:第2章 四轴飞行器硬件组成2.1 DIY四轴飞行器介绍2.1.1 四轴飞行器四轴飞行器,又称四旋翼飞行器、四旋翼直升机,简称四轴、四旋翼。这四轴飞行器(Quadrotor)是一种多旋翼飞行器。四轴飞行器的四个螺旋桨都是电机直连的简单机构,十字形的布局允许飞行器通过改变电机转速获得旋转机身的力,从而调整自身姿态。2.1.2 DIY操作DIY四轴飞行器需要材料包括:两组正反螺旋桨、四个直流无刷电机、四个匹配电机的电子调速器、机架、直流电池适配器、电池和飞控(可自己制作)。在本设计中,采用新西达A2212/13T 1000KV的无刷电机,由12V直流电池供电;选择XRotor(乐天)系列20A电子调速器;F450机架。首先将四个电调首先焊接到F450的机架上的焊盘上,同时焊接电池接线的母头。焊接好后按F450机架结构组装好飞行器。把电调固定在机架的四臂上后插上电机和电调连接的香蕉头完成组装整体。最后在电机轴上安装子弹头夹紧螺旋桨完成整体。组成后的飞行器如下图所示:图2.1 DIY四轴飞行器实物图注意:对角线上安装的螺旋桨的形状要一致。电调的信号线和自制飞控的输出管脚连接即可。2.2 部分器件的作用介绍2.2.1 无刷直流电机电机是拖动螺旋桨旋转产生动力的装置。对于直流无刷电机而言,虽然也称为直流电机,但是实际获得的电源是三相交流电,但并非接受正弦变化的电压信息,起转动原理类似步进电机。所以采用直流电源输出各相脉冲使其旋转。对于无刷电机而言,最重要的参数就是KV(并不是千伏的意义),它表示电压每增加1伏时,转速增加的值。2.2.2 电子调速器电子调速器简称电调。是电机的驱动元件,它有三个端口,一个连接电池获得电能,一个连接电机用于驱动电机,最后一个是信号线,兼容TTL电平,接收控制机的控制信号。在实际过程中,检测高电平宽度,有效信号为1-2ms的高电平长度。根据持续时间输出不同的电压使电机的转速不同。第3章 姿态传感器介绍3.1 三轴加速度计3.1.1 传感器原理对于加速度的测量,传统的方式是在传感器内部放置一个质量已知且恒定的物体,用于感知惯性系统的加速度,其物体和某一直线方向的弹簧连接,当有该轴加速度产生时,物体施力于弹簧(弹簧和外壳连接,外壳和被测物直接连接固定),产生拉升或挤压,记录此时的弹性形变量就能知道外力再通过牛顿第二定律就能分析获得当前的加速度。目前所使用的加速度计中,测量的办法很有多种,大体分为:闭环液浮摆式、挠性摆式、振弦式和摆式积分陀螺四种。对于闭环液浮摆式来说,与传统的加速度测量原理比较,首先它是感知对应轴的旋转信息,其次它的信息输出依据来源于闭环设计。当仪表壳体发生旋转时(依据牛顿第二定律,物体运行状态的改变必然要有力的作用),由角度感测元件测量变松旋转信息,并闭环控制一个力矩器输出抵抗力矩直到角度稳定不再变动时,将输入给力矩器的电压信号作为加速度计的信号输出。从原理上将,它是将原设立原理:弹性形变量的改变引发电气信号而输出的道理改变为用闭环结构让一个设计的的执行器抵消外部力矩,用起给电电压作为等效输出信号。对于挠性摆式来说,它的测量办法和闭环液浮摆式基本相同,只是闭环的感知办法所用的材料不同,因为想要测量直线加速度,它引用挠性杆的输出轴刚性低,其他轴向刚性高的道理,用之感受输出轴的直线加速度引起的挤压,并用其他设备闭环控制保持内置重物的位置不变。将执行设备的电压作为等效电压并输出即可。而振弦式的原理更为简单,利用弦线在不同张力时的振荡频率不同设计,以弦线承受外部加速度带来的引力,通过拉升改变弦线的张力,从而引起振荡频率的变化,所以频率和加速度成正比关系。继而只要在外部接入频率计,就可以知道此时的加速度。在实际应用中,一般还加入一条补偿所用的弦线,因为热冷效应,张力也会随温度的变化而变化,加入另一条弦线补偿温度影响,做差模输出就可。摆式积分陀螺原理就是和陀螺仪的原理一样,在受到外部接连物的旋转变化时,自己跟随转动,制作加速度计时让转子固定不动,形成摆,其他设计原理与闭环液浮摆式一样。在本系统中采用集成式,直接数字输出加速度计ADXL345。该传感器为多晶硅表面微加工结构,置于晶圆顶部。由于应用加速度,多晶硅弹簧悬挂于晶圆表面的结构之上,提供力量阻力。差分电容由独立固定板和活动质量连接板组成,能对结构偏转进行测量。加速度使惯性质量偏转、差分电容失衡,从而传感器输出的幅度与加速度成正比。其基本工作原理和闭环液浮摆式不同在于,并不增加执行机构抵消外部惯性力,而是直接由外部惯性力带动差动电容引起差模输出的方式。总而言之,加速度计的测量原理就是在内部加入一个质量恒定并已知的物体,让它感受惯性作用而代入力的作用,然后测量这个力带来的变化(如ADXL345所采用的差动电容),或者抵消这个力的所用设备的工作电压。3.1.2 ADXL345图2.1 ADXL345 I2C总线接线图ADXL345是由ADI公司推出的集成加速度传感器。内部工作原理如上一节所示。它能以SPI或IIC总线方式输出数据。内部自带有模数转换、寄存器等。从设计上讲,最大的特点就是有32级FIFO缓存,存储了就近时间内32组三轴加速度数据。所以接收机不需要发指令完成转换等操作,大大减轻了接收机的工作负担。芯片采用14引脚封装,具体引脚安排和基本工作外部接线图可从网上搜索,本文不赘述。本设计采用ADXL345推荐的IIC总线通信模式传递传感数据到AVR中。连接方式如图2.1所示,按此接法,其硬件物理地址为53H,和标准IIC总线通信协议相同。在芯片接入时,首先需要初始化,利用芯片INT1引脚控制给出数据为地址数据还是直接数据,初始化时,给芯片31H寄存器(DATA_FORMAT)写入数据0BH表示设置量程为以及工作在13位数据格式。给2DH寄存器(POWER_CTL)写入数据08H,表示开始数据转换。给2EH寄存器(INT_ENABLE)写入数据80H图2.2 ADXL345数据格式表示时能中断DATA_READY。设置好后,在每一次芯片内部数据寄存器数据更新时给中断信号,表示数据转换结束,主机可读取数据信息。三轴的加速度数据信息为16为浮点型数据,数据格式如图2.2所示,数据没1 LSB表示3.9mg。3.2 三轴陀螺仪3.2.1 概述陀螺仪也是对于飞行器的旋转的位置测量的传感器,很人有这样的疑问,为什么加入了加速度计之后还要加入三轴陀螺仪。有人认为加速度计输出结果做两次积分就可以获得旋转角度,而姿态数据就是三轴的偏转角度,所以就是用加速度计就足够了。而且陀螺仪也只是输出角速度,通过加速度计积分一次就可以得到。起问题关键就在于加速度计的致命缺点上,对于加速度计来说,敏感性(能感知最小加速度极限)、精确性是矛盾的,如果追求敏感输出那么噪声大,真是信息滤波困难,反之亦然。在四旋翼这个高度不稳定的机械系统中,电机转速的一点点不平衡都会引起倾斜和绕Z轴转动。实时性要求高就必然要求加速度计要工作在敏感区,如果只用加速度将完全无法满足要求。如果让两者配合,就能实现反应灵敏又纯净的输出信号。3.2.2 传感器原理首先,必须意识到,虽然陀螺仪是测量输出速度的,但是角速度传感器不一定就是陀螺仪。陀螺仪的依据就是陀螺原理:一个高速旋转物体的旋转轴具有惯性,它的旋转轴永远指向一个方向不变,就如陀螺一般在高速旋转时可以永远指向地面保持垂直。如果设法对一个转动的转子垂直于其转轴施加冲击,这个冲击会使转子产生新动量使之旋转轴偏转。冲击还使转子轴的方向产生同一数量级的改变,但新的角速度方向已和新的动量矩方向不一致。冲击后,转子轴将紧靠新动量矩L+L的方向作微幅高频的抖动(就好似自身旋转的同时又绕原旋转轴旋转),其幅度与成反比,而频率则与成正比。由于很大,这种抖动实际上是不易察觉的,所以可认为冲击并未明显改变转子轴的方向,即高速自转均衡陀螺仪的转子轴具有抗冲击的能力,这种特性称为定轴性。但是,如果转子没有自转,那么任何微小冲击将使转子轴获得角速度,而此后将按这个方向无限制地偏离下去。在应用中,我们只要检查设置好的旋转轴的指向就能知道我们自身有没有发生偏转,而这个偏转角也能由其旋转轴指向给出。这就是陀螺仪的原理。但在实际应用中不可能让一个转子保持在每秒几万转的飞速旋转条件下,所以实际的陀螺仪并不是真的有转子在其中,而是利用科里奥利原理设计出来的。科里奥利提出刚体旋转时的存在一个假想力(后世均称之为科里奥利力)。他提出的模型效应是:正如我们所见,在一个旋转盘上不同半径位置的线速度不同,当物体从盘心沿径向向外运动时起对地线速度在增加,根据牛顿第一定律,没有外力的作用速度就不会发生变化的道理,那么线速度的增加就应该存在一个这样的力的作用,这就是他提出的假象力。这个力迫使径向运动的物体线速度增加,所以沿径向移动的速度决定了这个力的大小即为。实际陀螺仪的测量原理就是利用科里奥利效应设计的,这个在上文假设的转盘就是被测的刚体,其沿自转轴旋转。而陀螺仪中有沿轴向设计两组电容板,一组电容板驱动物体沿径向运动,这个物体的运动引起横向电容板的容值发生变化(按科里奥利效应,也就是科里奥利力的分析,在有角速度时,物体会有切向位移,位移引起容值变化)。通过测量容值变化就可以分析出科里奥利力的大小,这个力的大小和角速度成正比关系,就可以按如上公式计算出角速度而且线性度极好。本设计中,传感器选择ITG-3200,采用如上原理设计。3.2.3 ITG-3200ITG-3200是由InvenSense公式设计制造的芯片,输出采用标准IIC总线协议,由SCL和SDA引脚传递数据。该芯片不需要初始化,只需要在呼叫时使用标准协议的模式,传输地址信息并查询应答即可,又由于AVR自带有IIC总线引脚,只需要自己初始化设置即可。3.3 三轴磁场传感器3.3.1 传感器原理既然是九轴数据融合,除了三轴加速度计、三轴陀螺仪以外还有另外三轴就是地磁场传感器。加入的目的不言而喻,在初始化GPS坐标之后,只要用这三个传感器的数据就可以得出目前所在GPS坐标,甚至不需要如GPS仪一般频繁搜索卫星(下文简称搜星)应答获取精确位置。如果许多智能产品,最典型的如智能手机,在有房屋遮挡位置,也就是不能搜星的位置也能精确定位坐标的原理就是采用九轴的数据融合技术。如前文所言,三轴加速度计输出三个轴向的加速度,陀螺输出角度,而地磁场就是直接输出角度。对于地磁传感器而言,目前采用的工作原理有:磁阻效应、霍尔效应、电磁感应、AMR相异性磁力阻抗感应、巨磁效应(本文不再逐一介绍)。本设计采用芯片HMC5883LSMD,采用磁阻效应设计。磁阻效应:载流子的运动必须要求有电动势也就是导体内的电场力作用才能移动,当存在磁场时,由于洛伦兹力的作用发生偏转(类似霍尔效应),在达到稳态时,某速度的载流子所受到的电场力与洛伦兹力相等,载流子在两端聚集产生霍尔电场,比该速度慢的载流子将向电场力方向偏转,比该速度快的载流子则向洛伦兹力方向偏转。这种偏转导致载流子的漂移路径增加。或者说,沿外加电场方向运动的载流子数减少,从而使电阻增加。这种现象称为磁阻效应。3.4 本章小结本章主要介绍了在四轴飞行器中所用的传感器的大概原理和传感器的选择。事实上,由于四轴飞行器的火热,它的姿态传感器层出不穷,而最为著名和被广泛应该的就是MPU-6050,内部集成了本章介绍的三个传感器外,并以STM32作为微处理器,集成有气压计,可以用于根据不同高度的大气压力不同测算出目前的高度,内部自带有GPS算法,能直接给出地理坐标。但价格昂贵,笔者在做比赛时使用过,非常好用,而且数据稳定,几乎没有噪声,笔者在此推荐。为了节约本次设计的成本,本次设计,采用以AVR为内核的集成芯片9DOF IMU,想比较而言,仅仅只是在附加功能上有差别,没有高度测量和GPS数据。利用传感器的AVR串口直接输出数据,用#YPR=的ASC码作为开始标志位,以逗号的ASC码为分隔帧。输出数据为浮点数据,每一个角度由若干个八位数据构成,且全部采用ASC码,中间用2EH表示浮点,可按ASC重装回为浮点数据,结束时附上0DH和0AH。用串口调试程序获得的数据如图2.3所示。图2.3 用串口调试程序在PC上接收的传感数据式 Z轴数据融合了地磁场数据,正西方是为0。这和MPU-6050并不相同,后者只输出三轴方向上的偏移角度,再开机时自动校准了水平位置,把地磁数据做成GPS输出。而这个传感器并不是校准水平,而是直接根据地磁数据,输出目前传感器所在位置的三轴角度。第4章 飞行器模型分析4.1 概述4.1.1 飞行器飞行原理四旋翼飞行器,由十字型机架和四组旋桨电机组合构成。和直升机的上升原理相同,旋桨的旋转迫使空气加速向下流动,由于空气被气旋作用,飞行器守反作用力而产生拉力。当四轴旋翼作用力平衡且拉力大于飞行器自身重力时,飞行器加速上升同理可以完全悬停和下降。除了上升了下降以外,因为螺旋桨在旋转时将空气往下推动的同时还有水平方向的冲量(最终形成的是气旋往下),致使也会在水平方向产生扭矩,这股力的方向和旋转方向有关。扭矩的作用使得飞行器有了绕中心旋转的加速度,也就是在Z轴方向的一个自由度。为了保证在正常情况下飞行器稳定悬浮在空气中,多旋翼的轴数一般都设计为偶数。让其中一组正转产生升力,另一组反转产生升力,这样就用一组去抵消另一组旋翼的扭矩,保持不会自身旋转。基于此,四轴飞行器想要悬停,必须要求四个旋翼的上拉力量之和等于自身重力,并且有一组旋翼(一般设置对线上的两个为一组)正转,另一组反转。而前进、后退、侧飞三个动作都是利用螺旋桨的升力差,使飞行器倾斜,在倾斜时,飞行器受重力作用分解出水平方向的加速度,形成前进、后退、侧飞两个动作。图3.1 本设计所有飞行器架构在一般性研究中,我们一般要求飞行器四个电机旋转速度相同、提供上升加速后到达预定位置然后四个电机同时下降转速变为升力和等于重力、正副对角线上的电机旋转不同方向但相同转速完成悬停之后再按要求改变电机转速完成其他运动。4.1.2 四轴飞行器模型建立办法四轴飞行器的飞行动力,来源于螺旋桨的旋转所带来的空气流动,受其反作用的影响产生上升的力(这个力的分析详参文献【2】)。文献中将这一个力的作用用动量来分析,直接得到飞行器所获得的反作用力,来用分析的速度也就叫诱导速度(它专指通过桨盘时的气流速度,下文用表示)【2】。在本设计中,想建立四轴飞行器的模型结构,获得在一定范围下的线性模型,既而讨论算法。而对于飞行器的模型建立,其实质上将是一种刚体转动和平动的模型。在分析时,首先建立出力和螺旋桨转速的关系,并集总分析施加在飞行器上的力的方向等。然后利用力学原理,建立运动方程即可。4.2 力或力矩与螺旋桨的关系螺旋桨模型的分析属于空气动力学模型,要求方法有动量理论、叶素理论、涡流理论等。本文参考文献【3】的研究办法,利用动量理论和叶素理论分析。首先使用动量理论分析诱导速度和力直接的关系,而诱导速度是升力、扭矩、阻力、侧向力矩四个力的共同作用结果,但本文叙述时,首先给出了最终分析结果的式子,这个式子是我们的目标式,目标式的建立依据一是实验下确定了力与转速的平方确实存在正比关系但具体系数未知,二是这个式子和按动量分析下用诱导速度的平方建立的式子十分将近,所以借用调和系数整理给出假设式,再用叶素理论建立另一个转速和力的关系式反算给出调和系数的表达式。另外,螺旋桨可能工作在轴流状态和斜流状态,在前文分析中,只简述了在轴流状态的情况,即受到上升拉力和旋转扭矩。但在实际情况中,不可能处于理想的无其他气流影响的状态,也就是处于斜流状态。不论是在飞行器前倾飞行时会有气流斜向进入气流场,还会有自然风等影响。随之就带来另外两个不可忽略的力作用:阻力和侧向力矩。本文依据文献【3】的分析理论简要阐述四个力和转速的关系。4.2.1 升力和扭矩关系简要分析:升力按分析可知,在研究中只能先在轴流状态分析再加入斜流的影响,所以拆分状态,首先仅在轴流状态下研究升力的作用关系。在轴流状态下桨叶转动,由于桨叶的倾斜板式设计,转动时影响了上下部的气压,由气压作用将气流向下推动。在这个过程中除了推动了气流外还聚拢了上部气流。根据文献【2】理论,假设空气为理想气体,不可压缩,依据流速定理,对于流体来讲,流速小的地方截面积大,流速大的地方截面积小。螺旋桨将下部气压减少后,上部空气被压力推动加速进入桨盘,这个过程中,气流开始汇聚,经过桨盘后由于排压作用继续加速和汇聚直到桨盘下方大约二分之一桨盘半径的位置被压缩至最小节流面积,达到速度最大值。(3.1)因为直升机在轴向上会出现悬停和上升两个状态,上升时,空气流本身和飞行器有相对速度,气流会带有速度的被推动下降和压缩,产生的诱导速度也就越大。螺旋桨输出的功率作用于气流产生诱导速度,我们就可以用动量定理来分析出这个力的大小(必须说明的是,诱导速度的大小在实际中恰巧等于最大速度的1/2),按文献【2】的分析这个力大小为:因为我们需要的是转速和力的关系,所以配合乘上一个调和常数引入目标式,式子变为:(3.2)这就是升力的和转速的关系式。在分析中还发现,螺旋桨在作用气流向下加速的同时还使得气流有一定的扭转,所以反作用于旋翼就会产生对应的扭矩,而扭矩的分析和升力的分析类似,前人的分析结果知道了他们的表达式形式相同,只是系数不同,所以直接给出目标公式为:(3.3)4.2.2 阻力和侧向力矩的关系阻力和侧向力矩的产生一定是在有斜流的状态之下。在一定方向的斜流下,螺旋桨就会有一部分桨叶处于逆风区,而另一部在顺风区,这样的气流会让其下部气旋的分布发生不均匀的现象,而这样的不对称气流是周期变化的,这是模型中最复杂的部分,由于本设计重点在于传感器的数据处理和控制算法的研究,所以本文直接借用文献【3】的结论建立目标式:(3.4)至此说明:按前文的推论,原始式是式(3.1),按动量定理建立,之后的四个式子都是一种目标表达式,其中最关键的就是系数的确定,在下一节中阐述。4.2.3 的建立按之前的分析,利用叶素理论分析建立这四个系数的表达式。在之前的分析中,主要是利用动量原理,集总分析出诱导速度和力之间的关系,而叶素理论就是利用将桨盘看做无限薄的平面,然后叶片被无限细分,分析每个细微桨叶的相对气流,在根据叶素的几何、运动特性确定叶素上的基元力,再积分出实际力的大小【3】的分析理论。本文不再分析具体内容,直接给出结果为:(3.5)式中是一个常数,表示的平均值,对于来说存在关系。而对于桨叶微元来说,每一处的空气密度,流体速度等都不一样,但是之后的分析,在这里可以取平均,还原为一个常数。是叶素安装的角度(本设计中就是螺旋桨的倾斜角),为常数(未知不定),是旋翼实度。这几个数对于本设计的旋桨来说都是很难直接计算的,只能通过实验获得,他们中除了都和螺旋桨的形状相关,而称之为流入比,按如下关系建立:(3.6)其中是入流角,不同的气流这个角都是不同的,所以很难整定这个系数。就是前行速度和的比值。如果能保证无自然风的影响,每次前行时倾斜的角度都固定,这两个两个参数就只和前进速度以及转速有关系。而对于其他系数来说,可以在悬停时,按如下关系近似确定:(3.7)而(3.8)而前文已经说明了是桨叶的横截面倾斜角,又旋翼实度可以近似根据如下关系计算:因为四轴的螺旋桨的桨叶很窄,式中c为桨叶的弦长,就可以近似就取为桨叶宽的平均值即可。这样通过式(3.7)建立二元一次方程就可以解出其他未知数。因为空气动力学中,流体的实际情况非常复杂,而其他结构模型在有了力的分析结果之后,其实是简单的刚体结构,按一定精确度简化后建立模型并不困难,四旋翼的高度非线性就是力和转速之间关系非线性产生的。所以,想要建立一个精确的模型很难,而且建立之后的作用并不大,因为越精确,非线性程度越高,式中的四个系数本身就不固定和前行速度和前行的倾斜角度都有关系。但按如上分析是可以在一定范围内建立,忽略一些影响是可以建立可以实用的模型的。由于本设计中,采用PID算法,并不是根本具体的运动模型来做详细分析,所以本设计中模型建立到此为止,只需要利用四个力和转速之间的关系并可以实验测量即可。由于采用PID算法(在下一章会做详细算法设计分析),它对于偏差做出应该的输出来修正,所以整体的动力学模型对于本设计来说,意义不大。笔者放弃了这一部分的研究。第5章 算法设计5.1 悬停控制算法设计5.1.1 悬停算法分析本章作为控制器的算法结构分析部分。在本设计中,采用主从机结构,主机为MSP430单片机负责根据下位机传递三轴角度数据代入控制算法计算,并将结果换算成用于控制电调的PWM波信号。而从机是集成芯片,集合了三轴加速度计、三轴陀螺仪、三轴地磁传感和一片AVR单片机,专职用于结算出姿态角。从算法的选取上讲,四轴飞行器属于欠驱动的非线性系统,目前有许多研究者研究出了许多优秀的算法可以用来你有效的控制非线性系统,例如反步法(Backstepping)、滑模控制(Slidingmode)、线性二次型最小二乘法(LQR)、神经网络自适应、反馈线性化、H 控制等。笔者能力无法企及,借此采用模糊PID和经典PID对该系统的控制算法进行设计。PID技术从上世纪50年代就已经被研究透彻,建立的经典控制理论也成为如今最实用的控制算法方案。它以其不需要考虑精确数学模型(对工程而言只需要调节三个参数就以完成控制)的优势和出色的稳定性、可行性,占据了大多数控制场合。但众所周知,建立在线性基础上的PID,对于非线性系统的控制能力并不是很强,为了弥补这个缺点,本设计还将加入模糊算法制作模糊PID控制器期望能改善控制结果。所以本设计采用了PID和模糊PID的两种方式。当然如果传统的固定值PID可以完成任务最好不过。大家都明白PID算法是一种单输入单输出的控制规则,而本系统的主要任务就是完成悬停,之后再根据拟定的方向倾斜,运动到预定位置区域。首先对于悬停任务,给定X轴角度为0,Y轴角度为0,Z轴无角速度即可,那么就形成了三个偏差输入;四个控制输出;这四个输出又用来控制机体六个自由度都不能运动的局面。所以必须做出结构的改变。首先六个自由度按前文讲述,分别是三个轴的平移和旋转,每一个轴两个自由度。现在将X轴取为正对角线,Y轴取为负对角线,那么,可以认为Y轴在旋转是由于X轴的电机转速不同引起的倾斜旋转,同时带给了X轴的前进或后退。在实际飞行中为了保证悬停状态不变以及Z轴不旋转,并且我们假设控制悬停的电机调速是微调。虽然转速平方和升力、扭矩才成正比关系,但是在微调中我们可以近似认为转速和升力、扭矩成正比关系,那么对于上述情况的不稳定,我们可以控制X轴的两颗电机做出相同的才能保证(只能在很小的调节范围内才能这么认为),同理可以推论X轴旋转的情况。在控制悬停时,首先我们假设处于微调状态,转速和力的关系可以近似线性化,那么就可以变为由X轴输入做PID计算后控制X轴两颗电机做相同转速调整(也就是认为只有一个),这样就做成了单输入,单输出的控制结构(Y轴同理)。简而言之,在较小的转速调整区域内认为转速和升力、扭矩成线性关系的处理方案;以及分离X、Y轴形成两个PID环,让他们将自己的所在轴控制为不旋转来完成悬停任务是能在控制中使用PID或模糊PID作为控制算法的必要假设和改进处理。但毕竟不是线性关系,所以一定有偏差,为了保证控制的精度,我们可以引入另一个控制环来作为补偿。悬停时,我们可以忽略阻力和侧向力矩的影响。而我们如上述处理的结果是带来了调整之后的不平衡(对角线上的两个电机增加、减少相同的转速会略微提升这一组轴的升力和扭矩),而对于升力来说,很小的变化不会带来实质的反应(因为机身很重),但是扭矩则不然,一点的变化都可能会引起Z轴的自转(至少比上升下降灵敏得多),所以补偿就是引入Z轴的旋转参数,给定为零,以偏差的正负选择补偿哪个对角线上的较低速电机。以上就是悬停算法的分析,总而言之这个算法只能在悬停时使用。在接下的分析中,因为经典PID算法只是一个计算公式,也仅仅只是三个参数的选择(本系统因为其特殊性只能一个一个的测试)。5.1.2 PID算法选择分析在本文中,只考虑PID算法和模糊算法。对于目前最常用的PID算法来说,优势很明显,只有三个参数需要整定,不需要辅助工作,整定后,即使模型建立有偏差,仿真结果和实际有偏差但只要微调参数就可以改善,而完成预设工作。而且编程简单,数据处理量不大。但是缺点也很显著,PID三个参数整定之后在实际工作中,不能有效的实现我们的控制要求,由于系统的高度非线性,还属于。对于模糊算法而言,前期的辅助工作,例如按专家经验建立足够精度的隶属度函数等工作的工作量大。但在投入运行后可以让响应速度和加速度限制这一组矛盾有效的解决,日本的特快列车的制动控制模型就是模糊控制对于这类矛盾可以很好解决的最好例子。对于本设计来说,并不追求非常完美的加速过程,让人感觉不到加速度的存在,但又一定要求,鉴于原始PID的最大劣势,三个参数的固定导致在不同阶段三个参数不能适应该种运行环境。本设计采用三参数按模糊控制浮动的模糊PID算法技术。在不同阶段PID环节的三个参数会根据不同情况调整。5.1.3 PID三个参数的大小对于响应波形的影响对于系统来说,PID三个参数的大小决定了响应的情况。简要分析而言,Kp参数即比例参数的大小决定了被控对象响应的快慢,太小响应速度慢,太大又会引起振荡,在本设计中还会引起乘客的不舒适;Ki参数也就是积分参数主要用于归零系统稳态误差,但也会引入系统的超调,因为它的引入即使是稳定的系统也会在阶跃输入下阻尼振荡后进入下一平衡点;Kd参数也就是微分参数用于补足比例的不足,也就是无法感知偏差的变化率,只对偏差做出反应的情况,以保证在偏差发生极快变化而又实际偏差不大时做出必要的为了保持稳定的控制输出。从整体而言,我期望的是以最快的速度最不需要振荡的过渡到达平衡点,三个参数任何一个参数过小都会使得响应时间变长或不能有效抑制干扰信号,任何一个参数过大都可能过大的超调甚至不稳定。简而言之,模糊PID的算法引入就是为了在最大限度范围内,期望达到,较快的过渡过程、不能过分超调和不能过分输出变化这矛盾的三者间取得平衡。5.1.4 模糊控制规则的建立PID三个参数中比例是最主要也是最重要的控制环节(笔者自认为),因为积分需要时间累积,微分需要控制输出引起偏差变化带来信息源才能输出信号,所以都不可能脱离比例环节的单独存在,同时比例环节是响应速度的最重要的控制环节,它的大小直接影响被控对象的响应速度。根据历来的工程师对于三个参数整定的经验,我们得出如下基本控制规则:当偏差在很大时,应取较大的Kp,较小的Kd,不接入积分环节;当偏差在中等时,应取较小的Kp,适度的Ki和Kd;当偏差较小是,应取较大的Kp和Ki,适度的Kd。而在本设计中,由于偏差可能出现正反两种情况,建立七级模糊语句:负大,负适中,负较小,零,正较小,正适中,正较大。以三角波形作为隶属度变化波形相互间在0.5隶属度交叉。并取十七级量化等级(量化等级越高,输入时模糊化的隶属度离散化的精确度越高,但同时每增加1级控制表增加一行一列,表将会越来越大)保证一定的离散模糊化精度。PID三个参数均使用单独模糊控制规则。5.1.5 模糊控制表的建立建立好了控制规则之后,就将对所有输入数据情况作具体分析。首先要按实际情况建立各自的论域。建立论域后模糊量化,建立隶属度函数表,然后按控制规则考虑所有可能偏差和偏差变化率输入的情况,逐一代入按Mamdani算法计算出模糊推理结果,此时还是模糊数据。再根据重心法计算出模糊控制输出的精确值,并改变PID对应的三个参数。也就是说按如上做法,考虑所有可能情况线下人工计算出所有的控制输出表存入单片机中。这个表就是模糊控制表。5.1.6 小结在这一节中,首先必须认识到,PID算法因其局限性,只能控制单输入单输出的系统,为了能够使用PID算法,我们只能做出一定的简化和改变输入输出结构。总之,本小节的设计方案仅仅只能使用于悬停的控制中,如果要做到Z轴旋转或者前行(必然伴随旋转)该算法设计不能使用。因为本设计要求它可以确定方向,并尽可能的移动到预设区域中,算法就需要改进。5.2 运动算法设计5.2.1 运动时和悬停时的差别在运动时,就不能按悬停的算法来控制的原因在于运动时有一定的前行速度,进入斜流状态(虽然不可能有绝对的轴流状态,但在悬停时是可以简化忽略斜流的,而运动时就不能这样简化)。而状态的改变就会带来新的情况,如下分析:其一,在斜流状态中不可能忽视斜流带来的阻力影响。在之前的轴流状态中,因为可以忽视阻力影响,那么电机的负载只是螺旋桨,所以转速和所给的PWM波(电机的控制是开环的)关系稳定,这是可以直接实验测量的(转速和高电平持续时间成对应关系),于是所给的高电平持续时间在微调中也同样可以认为和转速成线性关系。加入了气流阻力后引入新的负债转矩,那么转速必须考虑阻力在桨盘上产生作用带来的影响。按之前的分析,阻力和转速本身、前行速度、倾角位置等都有关系。那么转速和高电平持续时间的对应关系就改变了。其二,可以想象如果下达倾斜指令,改变一定的电机转速,即使开始倾斜正确,即使还计算好了上升下降的升力扭矩改变达到开始的平衡,但是因为惯性,前行速度是变化的,阻力变化,转速变化,升力和扭矩必然就不再平衡(这还是小问题),侧向力矩欲抬起倾斜到下方的电机,开始的倾斜就不成立,必然会调整,跟着一连串的反应才能稳定,但可以清楚达到平衡时,升力、扭矩绝对不会平衡。其三,这一切的问题包括悬停控制时,都还忽略了电机的过渡过程,无刷电机由直流逆变为三相电之后用频率控制转速,在改变了频率之后,它也不可能立刻响应到下一个转速状态。总而言之,问题非常严重,是绝不可能再用悬停算法的。本设计要求可以自己确定方向,那么就要求有Z轴的自转;另外还要求尽可能飞到预设的区域范围,就必然会要倾斜。笔者认为要解决以上三个问题,还继续可以用PID控制,做如下设计修改。5.2.2 Z轴旋转解决办法设计Z轴的自转只是让转矩不平衡,由于没有前行速度,没有倾角,还可以认为在轴流状态,自转控制只需要在原控制下,移除Z轴补偿,加入另一个PID环以一个固定的Z轴角度为给定,计算后加入到原计算中改变即可。为了保证升力和重力平衡,只做低速旋转即可(因为正副对角线上的转速差越大,扭矩越大,自转越快)。设计中,先控制悬停,当悬停完成后,再开始纠正Z轴的方向问题。原始PID结构不变,继续微调,加入Z轴角度PI控制(不能要微分,只能缓慢旋转),补充转速修正方向,一次计算结果按目前角度赋给对应对角线上的两颗电机。5.2.3 固定倾斜解决办法要完成固定倾斜并保持升力和扭矩的原始平衡关系,笔者认为只能利用控制变量法,恒定一些变量才能实现。要达到固定倾斜的要求,其实从实际情况出发就是一条对角线上的两颗电机提供不一样的转速,但给整体的升力、扭矩不变,保证高度不变,并不会自转。为了完成这个目标,在此先做简要分析:要保持一定倾斜角度不变,我们只能让一条对角线上电机一个增速,一个减速,完成倾斜。但按前文分析,我们不能让他们做相同的转速变化(但注意,同升同降还是可以稳定让其不倾斜的),若相同变化,结果一定不是所预想的到达那个角度。所以笔者改变设计方案,一旦下达倾斜指令,控制一条对角线上的电机形成不同转速而倾斜,让高速旋转的那一个成为恒定值不能改变,做倾斜角PID,给定为该轴倾斜值,只控制低速电机改变,完成角度的控制。如上做法,可以控制一个倾斜角度了(自动
展开阅读全文