飞控设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四旋翼飞控系统设计文档
第一章绪论
1.1研究背景
任何由人类制造、能飞离地面、在空间飞行并由人来控制的飞行物,称为飞行器。
在大气层内飞行的飞行器称为航空器,如气球、滑翔机、飞艇、飞机、直升机等。
它们靠空气的静浮力或空气相对运动产生的空气动力升空飞行。
飞行器不仅广泛应用于军事,在民用领域的作用也在增加,机载GPS 和MEMS(Micro- Electro-Mechanical Systems)惯性传感器的飞行器甚至可以在没有人为控制的室外环境中飞行,也就是大家所熟知的无人机,。
因此国内外研究人员对飞行器进行了大量研究。
对飞行器的研究目前主要包括固定翼、旋翼及扑翼式三种,而我们所研究的四旋翼飞行器在布局形式上属于旋翼的一种,相对于别的旋翼式飞行器来说四旋翼飞行器结构紧凑,能产生更大的升力,而且不需要专门的反扭矩桨保持飞行器扭矩平衡。
四旋翼飞行器能够垂直起降,不需要滑跑就可以起飞和着陆,从而不需要专门的机场和跑道,降低了使用成本,可以分散配置,便于伪装,对敌进行突袭和侦察。
四旋翼飞行器能够自由悬停和垂直起降,结构简单,易于控制,这些优势决定了其具有广泛的应用领域,在民用,医疗,军事等领域都有着无限的潜力。
在民用领域,它可以进行航拍,以得到在地面难以测量和计算的数据;在医疗领域,四旋翼直升机可以进入普通地面机器人难以到达的地区进行搜救等活动,最大程度的避免人员财产损失;在军用方面,四旋翼直升机可以作为侦查使用,它飞行灵活,稳定,同时,若在四旋翼直升机上增加其他机械装置,则可以利用它完成更加复杂和重要的任务。
然而,作为一个MIMO 非线性系统,四旋翼飞行器输入变量与输出变量之间的耦合作用、时变非线性的动力学特征、系统本身的不确定性及外部的干扰等的引入,使得系统的控制问题变得十分复杂。
如何能够设计出有足够的飞行动力并且具有良好稳定性的控制系统,是四旋翼飞行器如今面临的主要问题,这也使得强大而又易于控制的发动机和控制飞行器协调工作的控制系统成为四旋翼飞行器设计的关键。
近几年来,国外一些知名研究机构扩展了四旋翼飞行器的研究领域,希望其在无GPS信号的室内环境中可以利用一些特定的传感器数据进行导航,所以拥有一个稳定的飞控系统是非常必要的,而国内对于四旋翼飞行器飞控系统的研究起
步较晚,一些稳定的飞控系统都被商品化,我们不能对其根据自己的需求进行修改,这给我们的研究带来很多的不便,因此我们需要开发一款属于自己的飞控系统。
1.2 国内外研究现状
MD4-200 是德国microdrones 公司研发的微型无人飞行器,机体和云台完全采用碳纤维材料制造,这种材料拥有更轻的重量和更高的强度,也使MD4-200 具有抗电磁干扰的能力。
飞行时间不低于20 分钟。
MD4-200 的核心是AAHRS (姿态、高度及航向参考系统),集成了加速度计、陀螺仪、磁力计、气压计、湿度计、温度计等多种高精度传感器和卓越的控制算法,md4-200的操控因而变得非常简单。
可制定飞行航线规划,让飞行器按照预设的航线自动飞行。
采用选配的GPS 系统能够实现空间位置锁定与自动航点导航功能,还可以选择以microSD 卡作为记录器的飞行记录仪来实时记录和分析飞行数据,所有重要的飞行数据都可以下载到数据中心,包括电池状态、高度、姿态、位置、飞行时间等,用于航后的数据分析。
MD4-200 还具有安全保护措施以避免坠毁,它能够在电量不足和失去控制信号时自主降落。
OS4是瑞士洛桑联邦理工学院(EPFL)自动化系统实验室开发的一种电动小型四旋翼飞行器(S.Bouabdallah, R.Siegwart,2007),研究的重点是机构设计方法和自主飞行控制算法,目标是要实现室内和室外环境中的完全自主飞行。
该项目进行了两个阶段的研究。
已经分别基于多种控制算法(例如:PID、LQ、Backstepping、Sliding-mode),实现了飞行器姿态控制。
2006年1 月EPFL 已经实现了OS4Ⅱ在室内环境中基于惯导的自主悬停控制。
麻省理工学院(MIT)计算机科学和人工智能实验室Robust Robotics Group 开发了一种微型四旋翼飞行器(R.He,S.Prentice,N.Roy,2008),安装北阳(Hokuyo)的激光测距仪、地平面传感器、摄像机,组成了“激光测距+视觉”的自主飞行系统。
它既没有安装GPS 也没有安装惯性导航装置,因为对于微型飞行器而言,惯性导航装置成本高昂、体积大和质量重。
这种微型四旋翼飞行器利用机载的激光测距仪估算自身的相对位置、偏航角和高度信息;利用机载激光扫描仪和照相机用于环境感知、重建并规划飞行、建立自身在环境地图中的映射和确立明确的飞行路径以在室内狭小的空间和存在GPS 盲区的区域安全稳健的自主飞行。
Kinect Quadrocopter MIT 是麻省理工学院Computer Science and Artificial Intelligence Laboratory 和Robotics and States Estimation Laboratory 合作研制的。
在四旋翼飞行器上安装Kinect,使四旋翼能够完全自主3D 地图映射(3-Dmapping)和飞行。
采用SLAM (Simultaneous Localization And Mapping)算法构
建环境模型,并使用Kinect 传感器采集数据信息。
SLAM 地图映射使得飞行器还能够在GPS 盲区(如室内、密集的城市环境等)自主飞行执行任何和进行远程控制(A.Bachrach,R.He,N.Roy,2009a,A.Bachrach,R.He,N.Roy,2009b)。
这对于四旋翼4DraganFlyer X4 是Draganfly Innovation Inc.设计的一种超级遥控摄像飞机,具有惊人的性能和良好的稳定性,它轻便小巧易于携带,质量为680g,最大长度约77.5cm,有效载荷为250g。
可用来测量、工业测绘、军事侦察、空中摄影等;机载高性能处理器可以运行数千行代码并且接收传感器(三个加速度计,三个陀螺仪,一个气压传感器)输出的信息并加以处理。
操作者使用手持式控制器可以控制它飞行的方向、速度大小,也可以调整飞行的高度。
可以做到自动平衡,该项目由Office of Naval Research 和ArmyResearch Office 资助,具有明显的军事用途。
AR.Drone 直升飞机是法国派诺特(Parrot)公司开发的一款飞行器,AR.Drone 类似于一款无人驾驶直升机,拥有四个独立旋翼,操作员可以使用iPad、iPhone、和iPod Touch 上的软件对其进行飞行控制操作。
由于整个飞机的操作都是基于飞机自身发出的Wi-Fi 信号,因此操控距离可达50 米。
该飞行器的下方还加装有重力感应装置、陀螺仪、机械控制芯片等部件,利用智能飞行技术可以纠正风力和其他环境误差,平衡AR.Drone 的飞行速度和角度。
这款航模的驾驶舱前部安装有一个摄像头,可以将第一人称视角的画面通过Wi-Fi 信号传回iPad(或iPhone、iPod Touch),这样就能在iPad 上看到逼真的模拟驾驶舱画面,而Parrot 公司还提供有SDK,游戏开发者可以针对该产品设计开发虚拟空战游戏。
1.3 国内外现有的四旋翼飞控系统
1.4 文档主要内容
设计四旋翼飞行器需要综合很多方面,例如设计飞行器结构、选择合适的传感器件和有效的控制算法等等。
本文的主要任务是实现四旋翼飞行器完整控制系统的设计,包括实验用飞行器模型硬件部分及软件部分设计,系统的动力学建模,姿态解算原理及实现,基于动力学模型的控制器设计,最终还要完成装置的调试和飞行实验。
具体研究内容分为以下几个部分:
(1) 系统硬件设计。
通过分析四旋翼飞行器的飞行原理,确定结构模块化的硬件设计思路,分别进行系统控制模块、PWM驱动模块、IMU(惯性测量)模块和遥控器信号捕捉模块硬件原理的分析和实物电路的设计。
(2) 结合四旋翼飞行器的硬件结构,进行软件编程部分的工作。
按照四旋翼
飞行器的飞行原理和控制特性进行系统飞行控制主程序以及各模块软件编程。
(3) 对四旋翼飞行器系统的控制方法进行研究,根据飞行原理进行动力学建模,并完成系统控制器的设计。
(4) 系统调试和实验结果分析。
首先对系统的各个模块进行相关调试和检测,然后组装模型,进行四旋翼飞行器实物系统的飞行实验,验证理论设计方案的合理性。
第二章四旋翼飞控系统硬件平台搭建
2.1 四旋翼飞行器飞行原理
图2-1 四旋翼模型图
四旋翼飞行器故名思议采用四个旋翼作为飞行的直接动力源,旋翼对称分布在机体的前后、左右四个方向,如图2-1,四个旋翼处于同一高度平面,且四个旋翼的结构和半径都相同,旋翼1 和旋翼3 逆时针旋转,旋翼2 和旋翼4 顺时针旋转,四个电机对称的安装在飞行器的支架端。
四旋翼飞行器和典型的传统直升机不同,直升机配备有一个主转子和一个尾浆。
他们是通过控制舵机来改变螺旋桨的桨距角,从而控制直升机的姿态和位置。
四旋翼飞行器是通过调节四个电机转速来改变旋翼转速,实现升力的变化,从而控制飞行器的姿态和位置。
由于飞行器是通过改变旋翼转速实现升力变化,这样会导致其动力不稳定,所以需要一种能够长期确保稳定的控制方法。
图2-2 四旋翼飞行器飞行原理图
四旋翼飞行器是一种六自由度的垂直起降机,因此非常适合静态和准静态条件下飞行。
但是四旋翼飞行器只有四个输入力,同时却有六个状态输出,所以它又是一种欠驱动系统。
因为电机1 和电机3 逆时针旋转的同时,电机2 和电机4 顺时针旋转,所以当飞行器平衡飞行时,陀螺效应和空气动力扭矩效应均被抵消。
四旋翼典型的控制模式有两种,即“十”模式和“X”模式,如图2-2是“十”模式控制原理图,图a)中表示的是1号电机转速比3号电机快,这飞行器会向后方运动,同理图b)中3号电机转速比1号电机转速快,则飞行器向前方运动,图c)和图d)表示的是飞行器向左右运动的控制原理图,图e)和图f)表示的是飞行器上下运动的控制原理图,当四个电机转速同时增大时飞行器会上升,同时减小时飞行器会下降。
图g)和图h)表示的是飞行器偏航方向的控制原理图,当1号和3号电机转速比2号和四号转速快时,飞行器会逆时针旋转,同理增加2号和4号电机的转速,飞行器会顺时针旋转。
四旋翼的另外一种控制模式是“X”模式,和“十”模式控制方式相比只有在前后和左右方向上不同,而垂直方向和偏航方向控制完全相同。
“X”模式下左右运动依靠左右两对电机的转速差控制,前后运动依靠前后两对电机的转速差控制。
本实验室开发的飞控系统基于的是“X”模式。
2.2 四旋翼飞控系统硬件平台设计
2.2.1 设计目标
本实验室所设计的四旋翼飞控系统的目标是设计出一套完整的四轴飞行器飞行控制系统,并利用硬件和软件实现设计的控制系统,从而实现我们的控制目标,期望通过该飞行控制系统可以让四旋翼飞行器在近地环境下,通完成垂直起降、悬停等动作,并在对其施以外界干扰时能自动调节迅速恢复到平稳状态,最后能在此基础上通过暴力测试。
同时为了能够满足飞行试验的需要提出了以下要求:
(1)具有较高的可靠性。
(2)具有较好的可维护性,配件的购买和更换方便,便于外场试验。
(3)具有较好的安全防护机制,可以应对突发的故障。
(4)具有一定的续航能力,提高外场飞行试验效率。
2.2.2 系统硬件结构
整个系统硬件部分根据模块化思想进行设计,结构框图如图2-3所示
图2-3系统硬件结构框图
从上图可以看出整个系统主要包含的模块有遥控器信号捕捉模块、IMU(姿态测量模块)、PID控制器模块、PWM输出模块、IIC模块和USART(无线串口)模块。
下面简要介绍每个模块的功能:
遥控器信号捕捉模块:这个模块主要用来捕捉遥控器的PWM波信号,遥控器2通道信号主要用做飞行器的油门,1通道信号作为飞行器横滚角设定值,3通道信号作为飞行器俯仰角设定值,4通道作为飞行器俯仰角设定值,5通道信号作为模式切换开关信号。
I MU(姿态测量模块):该模块包括三个传感器总共九轴数据,这个模块和STM32连接的接口是IIC接口,九轴数据通过基于互补滤波的姿态解算算法算出当前飞行器的姿态然后和上一个模块给出的姿态设定值做差,得到姿态误差。
PID控制器模块:该模块由软件生成,我们开发最后决定使用分段PID串级控制,使用串级控制的好处是可以很好地消除外部扰动,之所以使用分段PID是因为在误差小时,所需要的控制作用较小,而误差较大的时候所需要的控制作用较大。
,该模块输入是姿态误差,输出是控制量对应的四个电机的PWM输出。
PWM输出模块:利用stm32自带的PWM生成器直接产生需要的PWM波,PWM波的参数主要是周期与占空比。
IIC模块:之所以要加上这个模块是因为STM32这块芯片的硬件IIC使用时不能满足使用要求,我们开发的时候是根据时序自己编写软件的模拟IIC来解决这个问题的。
USART(无线串口)模块:这个模块主要是用于调试PID参数和姿态数据的实时回传给上位机,里面主要涉及的是通信协议的编写。
2.2.3 器件选取
(1)微控制器选型
飞控系统是一个多输入多输出系统,输入信号主要是对四旋翼飞行器飞行姿态的设定值,开发第一阶段使用遥控器信号给定姿态的设定值,第二阶段使用上位机给定姿态设定值,所以选择的控制器需要都能够接受这两种设定信号。
飞控系统输出的控制信号是PWM(脉冲宽度调制)信号,所以需要微控制器可以比较容易的产生PWM信号。
整个飞控系统还涉及到飞行姿态的解算,所以需要微控制器的主频较高,这样可以提高姿态解算的时间。
还有IMU(惯性测量单元)接口是IIC接口,所以需要所选择的微控制器具有IIC通信接口。
最后由于控制系统具有3ms的控制周期,所以需要微控制器的定时器精度较高,基于以上这么多要求,本飞控系统选定的微控制器是ST(意法半导体公司)的STM32系列芯片。
图2-4 STM32芯片图
如图2-4所示,这个系列的芯片是基于ARM Cortex-M3内核的微控制器,片上集成32-512KB的Flash存储器。
6-64KB的SRAM存储器。
具有3种低功耗模式:休眠,停止,待机模式。
为RTC和备份寄存器供电的VBAT。
两种调试模式:串行调试(SWD)和JTAG接口。
具有12通道DMA控制器,支持的外设有定时器,ADC,DAC,SPI,IIC和USART。
具有2个12位的us级的A/D转换器(16通道),A/D测量范围:0-3.6 V、双采样和保持能力、片上集成一个温度传感器。
具有最多高达112个的快速I/O端口:根据型号的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。
除了模拟输入,所有的都可以接受5V以内的输入。
最多多达11个定时器:4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。
2个16位的6通道高级控制定时器:最多6个通道可用于PWM输出。
2个看门狗定时器(独立看门狗和窗口看门狗)。
Systick定时器:24位倒计数器。
2个16位基本定时器用于驱动DAC。
最多多达13个通信接口:2个IIC接口(SMBus/PMBus),5个USART接口(ISO7816接口,LIN,IrDA兼容,调试控制),3个SPI接口(18 Mbit/s),两个和IIS复用,CAN接口(2.0B),USB 2.0全速接口,SDIO接口。
(2)IMU(惯性测量单元) 选型
四旋翼飞行器在空中飞行时由于受到周围环境的影响,无法使飞行器一直保持平衡的状态,这就需要一定的传感器件来对飞行器的姿态进行检测,而现在一般使用传感器就是IMU,以前的IMU一般只有三轴陀螺仪,但是由于陀螺仪往往存在温度漂移,所以就需要有其他的传感器件对陀螺仪数据进行纠正。
现在IMU 一般包括三轴陀螺仪,三轴加速度计和三轴磁力计,其中加速度计和磁力计用来对陀螺仪数据进行纠正。
本套飞控系统选用的传感器信号是MPU6050,其整合了三轴加速度计和三轴陀螺仪,坐标轴定义如图2-5
图2-5MPU6050坐标轴定义
MPU6050的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追踪快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。
产品传输可透过最高至400kHz的IIC。
磁力计选用的是Honeywell公司的HMC5883l三轴数字罗盘,接口是IIC,通过配置输出频率最高是75HZ。
(3)电调、电机、螺旋桨及机架选型
实验室的四旋翼飞行器电调、电机和螺旋桨都是DJI公司的,其中电调(电子调速器,用来控制电机的转速,输入是一定周期的PWM波,英文简称ESC)如图2-6的规格参数如下:
电流: 30 AOPTO
兼容信号频率: 30Hz - 450Hz
电池: LiPo ( 3-4S 1500mAh ~ 2600 mAh)。
电机如图2-7,规格参数如下:
定子尺寸: 22 x 15mm
KV值: 920KV rpm/V
螺旋桨: 10 x 4.5 in
型号:2212
实际重量:60克。
螺旋桨如图2-8所示,规格是10英寸。
图2-6 DJI电调
图2-7 DJI电机
图2-8 DJI 1045螺旋桨
由于飞控程序一开始不稳定,在调试的时候肯定会出现炸机的情况,所以机架必须非常结实,我们选取的机架是XAircraft公司的X450Pro机架,如图2-9
图2-9 XAircraft X450Pro机架
(4)电源、遥控器及无线模块选型
关于遥控器的选型,主要看设计飞控系统时需要多少个输入信号,为了满足当前使用和以后继续开发的要求,实验室选择的是天地飞公司的一款7通道的遥控器,型号WFT07,如图2-10所示
图2-10 天地飞遥控器与接收机
关于电源的选型,本系统选用的是锂电池,用它来给电调供电,同时通过稳压电路输出5V给控制板供电。
关于无线模块的选型,由于有时候飞行器飞的距离比较远,所以选择如图2-11这款无线模块,它的型号是XBEE PRO 900 HP 250MW,传输距离野外无遮挡距离一般为4-10km。
图2-11XBEE PRO 900无线模块
第三章四旋翼飞行器软件设计
3.1 软件设计需求
本系统主要完成的是四旋翼飞行器的垂直起降控制和一定范围内的姿态变化控制。
在飞行控制的软件设计中,预期的目标是让飞行器能够快速到达设定的
姿态,并且在垂直方向可以稳定在设定的高度上,而对于飞行器最基本的飞行特性--悬停就是第一个我们要完成的任务。
由四旋翼飞行器的飞行原理可知,飞行器飞行姿态的调节最终体现在四个带螺旋桨电机的速度调节上,在四个电机不同的转速组合条件下,飞行器能够实现俯仰、横滚、偏航等不同的飞行姿态,相应的飞行控制系统也使用三个控制通道,采用一定的控制律控制每个通道。
在软件设计的时候忽略各通道之间的耦合作用。
根据上述飞行控制系统的设计要求,将四旋翼飞行器飞控系统软件任务划分为以下几部分:
(1)初始化任务:完成系统、外设及相关数据变量的初始化工作
(2)数据通讯任务:通过点对点无线模块完成数据的下传、上传。
(3)遥控器信号捕捉任务:通过对遥控器信号的解析通过一定的时序完成对遥控器信号的捕捉
(4)数据采集任务:完成陀螺仪、加速度计及磁力计的数据采集工作。
(超声波)
(5)定时器定时及PWM输出:需要利用一个定时器对控制周期进行定时,同时利用四个定时器来产生PWM波对电调进行控制,继而控制电机。
(6)姿态解算任务:对采集到的九轴数据利用一定的滤波算法融合在一起,进而实现对飞行器姿态的解算。
(7)控制律解算任务:采用PID控制律,在每个控制周期内对PWM波输出进行更新,即对电机的控制量更新,本飞控系统是个控制姿态的闭环系统而不是控制电机转速的闭环系统。
课件软件任务工作量大,而且涉及到各个任务之间的协作问题,所以设计出一个合理的任务时序,可以提高整个系统运行效率。
3.2 飞控系统及各模块的软件流程
3.2.1飞控系统软件流程
本系统软件开发环境是IAR Embedded Workbench IDE for ARM,这个环境具有高度优化的IAR AVR C/C++编译器;一个强大的编辑器;一个工程管理器;一个具有世界先进水平的高级语言调试器。
使用户在开发新的项目时也能在所熟悉的开发环境中进行。
一般基于ARM开发系统用的开发环境有两个,一个就是IAR,另外一个是MDK,明显后者在编译的时候速度很慢,而且调试环境前者比后者简单且容易直观,所以选择前者作为开发环境。
图2-12是整个系统的软件流程图
图2-12 飞控系统整体软件流程图
从图中可以看出整个系统的流程是这样的,首先必须对系统的各个硬件模块进行初始化,初始化完毕以后需要读出保存在Flash的控制参数,这些控制参数都是在上一次试飞过程中调试完毕并保存在Flash中的,读取完参数后把这些参数赋值给相应的运算变量以备之后的PID运算,紧接着依据捕捉的遥控器2通道的信号上升沿是否大于1700判断是否需要对电子调速器进行行程的校准,接着就是进入姿态解算模块对姿态数据进行更新,再对发送给上位机的缓冲区数据进行更新。
之后就是判断系统是否处于解锁和关闭状态,这些都是出于安全防护的考虑,因为如果对整个系统没有锁定这一功能,而操作者在对系统上电的时候系统就处于运行状态,假如这个时候遥控器信号不是正常值,很容易出现危险的情况。
同理为什么要判断遥控器是否关闭,原因是遥控器关闭的时候信号处于异常状态,如果不加这个判断,即遥控器关闭状态下对系统上电,且解锁完毕,飞行器会出现异常的工作状况。
接着就是等待控制周期标志置位,对控制量进行更新,本系统的控制周期是2.5ms,之所以采用这个控制周期是因为控制电调的PWM 波周期是2.5ms。
这里还需要说明一点是程序流程图里面没有提到好几个子模块的程序,它们分别是遥控器信号捕捉模块,主要应用的是中断子程序,算法在下面小节会具体说明;还有控制周期定时子模块,主要是控制周期一到对标志置位;还有数据发送子程序,应用DMA发送;姿态传感器数据接收子模块,通信协议是IIC;还有上位机数据接收子程序,应用的是中断子程序;还有PWM控制量输出子程序;还有“X”模式四个电机控制量耦合关系子程序和Flash读取存储子程序。
本章只叙述程序的流程和算法,代码详见附录。
下面将对这些子程序一一详细介绍。
3.2.2飞控系统子模块软件流程
(1)Flash存储和读取子程序
STM32微控制器一个比较抢眼的有点事内置了大容量的Flash存储器,通过STM32内部的Flash控制模块可以对Flash存储其进行操作。
STM32内置的Flash 具有128KB的容量,可以重复擦写10万次。
以上特性决定了STM32内置Flash 可以符合本系统中对于控制参数的读写要求。
本飞控系统主要有5组15个参数,每个参数数据类型都是浮点型占用4个字节,所以参数总共占用的空间是60个字节。
同时在处理传感器数据时需要先对传感器数据进行标定,标定数据也会存储到Flash中,那些数据大小也不大,总共是28个字节,所以根本不需要外部Flash来存储这些数据,这样既可以节约开发成本,还可以减小控制电路的复杂度。
但是特别要注意的是由于内部Flash主要用于程序的存储,所以这些数据存储在最后几页,以免和主程序地址冲突,破坏主程序的执行。