1、辽宁工程技术大学毕业设计(论文)0 前言无人飞行器(UAV)自主飞行技术多年来一直是航空领域研究的热点,并且在实际应用中存在大量的需求,例如:侦察与营救任务,科学数据收集,地质、林业勘探,农业病虫害防治,以及视频监控,影视制作等。通过无人飞行器来完成上述任务可以大大降低成本和提高人员安全保障。无人飞行器的主要优点包括:系统制造成本低,在执行任务时人员伤害小,具有优良的操控性和灵活性等。而旋翼式飞行器与固定翼飞行器相比,其优势还包括:飞行器起飞和降落所需空间少,在障碍物密集环境下的可控性强,以及飞行器姿态保持能力高。由国际无人运输系统协会(International Association fo
2、r Unmanned Vehicle Systems)组织的一年一度的国际空中机器人竞赛(International Aerial Robotics Competition),为自主旋翼式飞行器的应用潜力研究提供了一个很好的展示平台。该竞赛吸引了来自全世界不同国家研究团队的参与,来完成预先设定的自主飞行任务。在无人飞行器自主飞行的众多技术当中,飞行器自主飞行控制算法的设计一直是控制领域众多研究者最关心的问题之一。经典的控制策略在飞行器系统的某个特定作用点上往往首先将系统模型线性化,然后在此基础上运用经典控制理论对系统进行分析和控制,控制精度和控制能力偏弱。相比之下,运用现代非线性控制理论设计的
3、控制算法,其性能明显优于经典控制算法。小型四旋翼飞行器与其它飞行器相比,其优势在于其机械结构较为简单,并且只需通过改变四个马达的转速即可实现控制,且飞行机动能力更加灵活。另一方面,小型四旋翼飞行器具有较高的操控性能,并具有在小区域范围内起飞,盘旋,飞行,着陆的能力。飞行器可以飞至离目标更近的区域,而不像传统直升机由于其巨大的单旋翼而不能近距离靠近目标。同时,小型四旋翼飞行器研究也为自动控制,先进传感技术以及计算机科学等诸多领域的融合研究提供了一个平台。在机器人的智能控制,三维路径规划,多飞行器的空中交通管理和碰撞规避等方面,小型四旋翼飞行器自主飞行技术都具有极高的研究价值。1 四旋翼飞行器1.
4、1 早期四旋翼飞行器设计早在 20 世纪初期,就有人开始研制载人四旋翼飞行器。Breguet-Richet 四旋翼飞行器建造于 1907 年,在其十字支架的四端固定了四个长为 8.1 米的旋翼。其中两个旋翼顺时针方向旋转,另外两个旋翼逆时针方向旋转。驾驶员坐在十字支架得中心位置,油门为唯一的控制设备,而导致对飞行器的稳定性控制并不理想。飞行器起飞时,在其四端需要有工作人员帮助来实现稳定起飞。虽然自主飞行并未实现,但同时使用顺时针旋转旋翼和逆时针旋转旋翼的思想是 Breguet-Richet 四旋翼飞行器的显著特点。1921 年 1 月,美国空军军团(US Army Air Corps)与 Ge
5、orge de Bothezat和 Ivan Jerome 签订合约共同建造垂直飞行器。1678kg 的“X”形结构支架用来支撑位移支架四端的直径为 8.1 米的六翼片旋翼。一个小型的提升旋翼被置于支架交点的 180hp 的 Le Rhone 放射装引擎上方,但随后不久就被认为多余而被拆卸。每个旋翼可单独控制其转速以产生不同的升力,使飞行器倾斜而产生前后移动。该飞行器重 1700kg,于1922 年十月进行其第一次试飞。飞行器的引擎很快被换为 220hp 旋转式 Bentley BR-2。1922年12月18日于 Wright Field 进行的一次试飞中,该飞行器飞行高度达 1.8 米,空中
6、飞行达 1 分 42 秒。1923 年 1月 19 日的另一次试飞,飞行器将两人抬至 1.2 米的高度。截止 1923 年底,该飞行器于俄亥俄州代顿市共试飞约 100 次。尽管合约中要求,飞行高度达到 100米,该飞行器实际飞行高度只有 5 米。在该研究花费了约 20 万美元后,Bothezat展示了他设计的飞行器可以实现稳定飞行,实际应用的直升机理论上是可以制造出来的。然而,该飞行器动力不足,响应性能不高,机械结构过于复杂,并存在潜在的稳定性隐患。在尝试横向飞行时,需要大量的人力和物力的支持。因此,美国军方最终对其失去了兴趣。Convertawings于1950年在纽约的Amityville
7、建造了一架四旋翼飞行器。此飞行器的每个旋翼直径达19英尺,并通过用两个引擎来改变每个旋翼的升力来控制飞行器。经试飞验证,Convertawings飞行器在空中飞行性能良好,但由于当时人们对此种飞行器缺乏兴趣而停止生产。1.2 四旋翼飞行器研究现状近年来,关于如何建造和控制四旋翼飞行器的文章层出不穷。其中一些项目主要关注飞行器的建模以及通过仿真来验证对其控制的策略是否有效。而另一些项目则着眼于飞行器在真实环境下是否能飞行成功。以下介绍近年来研制成功的一些有代表性的四旋翼飞行器。Draganflyer 是RC玩具公司开发的商业产品,它由 R/C 信号发射设备和板载控制芯片共同实现对其的控制。板载芯
8、片包括一个对领航者输入的接收装置,三个传感器测量飞行器三个方向的角速度,一个微控制器来执行控制算法计算。最新出品的Draganflyer 还包括四个红外热传感装置来帮助飞行器在室外飞行时的平衡。EADS Quattrocopter原本是用来当作研制微型飞行器控制单元的测试平台,而如今因其良好的性能被工业界大量生产。飞行器板载芯片由MEMS 惯性测量单元(IMU ),气流变化传感器以及一个 GPS 接受装置,R/C 信号接受器,16位模数转换器和驱动马达的功率发达器组成。Quattrocopter 使用的锂电池在一次性充满电后可维持其20分钟的飞行。此飞行器长约 65cm,重约0.5 千克,机身
9、可拆卸。电动马达使飞行器飞行噪音很小。飞行器有50% 的功率余量来装载负重。X-4 Flyers在澳大利亚研制,研制人员对两个惯性测量单元(IMU )进行检测,一个IMU 为Crossbow公司生产的商用IMU ,重约475 克, 另一个名为EiMU的IMU 有澳大利亚的一个机器人小组研制而成,重约100 克。X-4 Flyers研制人员称商用IMU 较大的重量会影响飞行器的性能,因此最终采用 EiMU。一个双核的板载计算机用来纪录来自R/C 接收器的输入命令,IMU 上的串行接口是数据以120Hz 的频率被纪录下来,而另一个串行接口用来实现IMU 和地面计算系统之间的通信。X-4 Flyer
10、s的研制提出了该飞行器的非线性模型。此模型在飞行器处于盘旋状态时被线性化,并在此线性模型的基础上得出领航员控制输入指令到欧拉角输出的传递函数(transfer functions)。来 自 IMU 的传感信号被高通滤波后用来测量内环控制所需的角速度。而外环控制最终被放弃,因为从 IMIU 获得飞行器高度值存在一定难度。 宾夕法尼亚大学的一个研究小组使用一个商业模型HMX-4来研制自己的四旋翼飞行器。此四旋翼飞行器的控制由板载计算机和地面计算系统处理传感器和摄像机传送的数据来实现。三个板载传感器用来提供飞行器内环稳定控制的数据。置于地面的摄像机作为主传感器来使用。置于飞行器底座的五个2.5cm
11、的彩色标记用为摄像机提供位置信息,从而用标记定位算法便可计算出飞行器上标记的相对位置变化,进而计算出四旋翼的俯仰角,横滚角,横摆角和平动位置坐标。由于 HMX-4模型的重量限制,飞行器不能另外装配GPS 系统合加速度测量仪。地面计算系统用于接受和处理由地面摄像机传送的图像信息,为四旋翼飞行器设定目标指令值,以及用串口传送计算出的马达驱动输入。板载计算机通过传感器信号来稳定飞行器,并通过板上R/C 接收设备来获取地面计算系统发送的控制信号。 该研究小组提出了一个四旋翼飞行器的动力学模型以及两种控制策略,分别为反馈线性化方法(feedback linearization )和后推法(backste
12、pping)。仿真结果显示后推控制器的性能较优,并随后设计了此种控制器进行实验。最近,四旋翼飞行器新添加了一个板载摄像机,联合地面的摄像机来估计飞行器的位置。在原先有地面摄像机观测的五个标记的基础上,另一个标记被至于地面摄像机上,供板载摄像机观测。这种双摄像机的方法使计算出的角位移误差和线位移误差更小。 康奈尔大学启动了两个四旋翼飞行器的项目。第一个项目的目标是用三个板载传感器和地面视频系统来计算飞行器的飞行高度。四个LED 被置于飞行器十字支架的四端,用于给地面三个摄像机组成的视频系统提供数据。板载计算机将传感数据传送给地面计算系统,并根据地面计算系统传来的指令数据调整马达转速。地面计算系统
13、根据传感数据和视频信号计算出马达输入,并将其发送至板载计算机。该项目对四旋翼飞行器高度进行实时估测时,使用一个卡尔曼滤波器。此滤波器主要用于保留高频的传感器数据(300Hz )和低频的视频信号(10Hz),并过滤掉其他频率成分的干扰信号。实验结果显示,该滤波器成功的消除了传感器偏移的不利影响。第二个项目主要关注飞行器的四个升力产生装置以及飞行器的整体结构。研制小组使用MATLAB和有限元软件来设计四旋翼飞行器的支架,以确定其结构单元的大小和受力强度。尽管无刷电动机的驱动电路很复杂,但还是得以采用,以实现较高的功率质量比(Power to weight ratios)。使用大直径的旋翼以保证盘旋
14、状态的稳定系能。此四旋翼飞行器使用板载电源和传感器,这两部分占据飞行器一半的质量,惯性测量单元由Systron-Donner 生产。此IMU 存在一定程度的漂移,但足以保证飞行器盘旋状态下的稳定。 2 微型四旋翼飞行器结构和控制原理简介目前飞行器控制方式主要有:遥控飞行、自主飞行以及半自主飞行三种方式。遥控飞行是指没有安装飞行控制系统,可看成是航模,只能在视距内飞行,应用价值不大;自主飞行是指在飞行过程中完全脱离人的干预实现飞行,通常采用磁罗盘测量姿态,与角速率陀螺组成稳定内回路,并采用导航系统进行导航1,而半自主飞行是介于这两者之间的飞行方式,飞行任务主要由人干预完成,飞行器装有由角度传感器
15、和角速率陀螺组成的姿态角稳定内回路,飞行稳定性和可操作性大大提高。由于任务量和技术方面的原因,暂时实现半自主飞行。传统直升机的旋翼系统由一个主旋翼和一个尾旋翼构成,通过变化旋翼翼片旋转时的切角来改变飞行器的升力大小。与此不同的是,小型四旋翼飞行器旋翼翼片的旋转切角是固定的,它是通过改变每个旋翼旋转的角速度来控制整个飞行器的飞行。螺旋桨旋转时,把空气对螺旋桨的压力在轴向和侧向两个方向分解,得到两种力学效应:推力和转矩。当四轴飞行器悬停时,合外力为 0,螺旋桨的推力用于抵消重力,转矩则由成对的正桨反桨抵消。当飞行器运动时,因为推力只能沿轴向,所以只能通过倾斜姿态来提供水平的动力,控制运动由控制姿态
16、来间接实现。 图2-1 四旋翼飞行器旋翼旋转方向示意图Fig.2-1 Four rotor aircraft rotor rotation direction假设四轴为刚体,根据质点系动量矩定理,角速度和角加速度由外力矩决定2,通过控制四个螺旋桨,可以产生需要的力矩。首先对螺旋桨编号:第一象限的为 0 号,然后逆时针依次递增,如图(2-1) 。同步增加0号和1号、减小2号和3号桨的功率,可以在不改变推力的情况下,提供x轴的力矩;同步增加 1号和2号、减小0号和3号桨的功率,可以在不改变推力的情况下,提供y轴的力矩;同步增加 1号和3号、减小0号和2号桨的功率,可以在不改变推力的情况下,提供z轴
17、的力矩。以上“增加”和“减小”只是表明变化的方向,可以增加负数和减小负数,提供的力矩就沿对应轴的负方向了。把三个轴的力矩叠加起来,就得到各螺旋桨功率变化与提供的力矩的对应关系,可以用一个矩阵等式表示,见(2-1)式。T是螺旋桨的功率变化量,为41矩阵,每行分别对应0到3号螺旋桨;是力矩,为31 矩阵。mx、my和mz是各轴的力矩系数,用于把力矩转换成功率变化量,具体数值与电机力矩特性、电机安装位置等有关。 (2-1)各个电机实际输出的功率记为,推力油门对应的功率量为,则有: (2-2)3 系统硬件设计3.1 系统总体介绍本系统采用STM32F103处理器作为主控芯片,此处理器是基于arm内核的
18、cortex-m3系列处理器,具有运算速度快,内置高速缓存,3个通用16位定时器和一个PWM定时器以及丰富的外设和I/O等特点。采用MPU6050作为姿态测量芯片,此芯片为系统的核心芯片,它集成了3轴MEMS陀螺仪,3轴MEMS加速度计,对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。采用霍尼韦尔的HM5883L芯片系统的罗盘芯片,此芯片是带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域。它包括最先进的高分辨率HMC118X 系列磁阻传感器,并附带霍尼韦尔专利的集成电路包括放大器、自动消磁驱动器、偏差校准、能使罗盘精度控制在12的12位模数转换器
19、和简易的I2C 系列总线接口。采用NRF24L01+芯片作为系统的数据传输芯片,此芯片是一款工作在2.4GHz世界通用ISM频段的单片无线收发器模块。内置频率发生器、增强型SchockBurst模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率、频道选择和协议都可以由用户进行设置。为了减小体积和减轻重量,本系统把无线通信模块固化在了PCB上。采用场效应管驱动四个电机旋转,并增加了二极管续流,防止电机反电动势击穿场效应管。采用SP6205为处理器和其他芯片输出电源,此芯片是一款低噪声、低压差、低静态电流的线性稳压器,性能稳定,出色的线性/负载调节特性,并具有过流保护及过热关断模块。另外
20、,本系统还集成了TP4056充电芯片,此芯片是一款完整的单节锂离子电池恒流、恒压的线性充电器。内部采用了放倒冲电路,当充电电流达到最终浮充电压之后降至设定值的1/10时,将自动终止充电循环。本系统分为两大部分,第一部分为四旋翼飞行器(图3-1)。第二部分为无线遥控(图3-2)。图3-1 四旋翼飞行器原理框图Fig.3-1 Four rotor aircraft principle block diagram图3-2 无线遥控器原理框图Fig.3-2 Wireless controller principle diagram3.2 四旋翼飞行器3.2.1 微控制器模块本设计采用STM32F103
21、增强型系列使用高性能的ARM/Cortex-M3/32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN。工作于-40至+105的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求。本设计采用ST公司生产的STM32F103T8U6作为系统的主处理器。主要负责采集传感器检测到的姿态角速率(俯仰角速率、
22、横滚角速率和偏航角速率)、三轴的线加速度并实时解算;根据检测到的飞行信息,结合指定的控制方案,计算输出控制量;通过无线通信模块与地面进行数据的传输,实现接收控制命令改变飞行状态和上传飞行状态的数据。STM32F103T8U6只需要少量的电容和晶振即可工作(图3-3),外接姿态传感器模块、地磁传感器模块、无线模块、充电模块等。图3-3 stm32最小系统原理图Fig.3-3 Stm32 minimum system schematic diagram3.2.2 加速度计和陀螺仪模块MPU-6050是全球首例9轴运动处理传感器。它集成了3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字
23、运动处理器DMP(DigitalMotionProcessor),可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其I2C或SPI接口输出一个9轴的信号(SPI接口仅在MPU-6000可用)。MPU-6050也可以通过其I2C接口连接非惯性的数字传感器,比如压力传感器。MPU-6050对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为250,500,1000,2000/秒(dps),加速度计可测范围为2,4,8,16g。一个片上1024字节的FIFO,有助于降
24、低系统功耗。和所有设备寄存器之间的通信采用400kHz的I2C接口或1MHz的SPI接口(SPI仅MPU-6000可用)。对于需要高速传输的应用,对寄存器的读取和中断可用20MHz的SPI。另外,片上还内嵌了一个温度传感器和在工作环境下仅有1%变动的振荡器。微型四旋翼飞行器在某个时刻的状态由6个物理量来描述,包括三维坐标整的3个位置量和沿3个轴的姿态两(即称为六自由度)。MPU6050集成了3轴陀螺仪和3轴加速度计,陀螺仪起到测量四旋翼飞行器的角速率的作用,在惯性导航系统中非常重要。加速度计感应3个轴向的线加速度。图3-4 加速度计和陀螺仪模块原理图Fig.3-4 The principle
25、diagram of the accelerometer and gyroscope module下面以MPU6050为例来说明I2C的工作方式:(一)开始(S)和结束(P)标志MPU6050通过I2C通讯协议与处理器进行通讯,I2C接口包括串行数据线(SDA)和串行时钟线(SCL)。连接到I2C接口的设备可做主设备或从设备。主设备将Slave地址传到总线上,从设备用与其匹配的地址来识别主设备。当MPU6050连接到处理器时,MPU6050作为从设备。MPU6050的Slave地址为b110110X,7位字长,最低有效位X由A0管教上的逻辑电平决定,本设计A0接地,所以设备地址为b110110
26、0。当SCL线为高电平时,SDA线由高到低的下降沿,为传输开始标志(S)。直到主设备发出结束信号(P),否则总线状态一直为忙。结束标志(P)规定为,当SCL线为高电平时,SDA线由低到高的上升沿。图3-5 I2C开始和停止条件Fig.3-5 I2C Start and stop conditions(二)数据格式I2C的数据字节定义为8-bits长度,对每次传送的总字节数量没有限制。对每一次传输必须伴有一个应答(ACK)信号,其时钟由处理器提供,而真正的应答信号由从MPU6050发出,在时钟为高时,通过拉低并保持SDA的值来实现。如果从设备MPU6050忙,它可以使SCL保持在低电平,这会强制
27、是处理器进入等待状态。当MPU6050空闲后,并且释放时钟线,原来的数据传输才会继续。图3-6 I2C总线的应答方式Fig.3-6 The response of the bus(三)通信开始标志(S)发出后,处理器会传送一个7位的Slave地址,并且后面跟着一个第8位,称为Read/Write位。R/W位表示处理器是在接受MPU6050的数据还是在向其写数据。然后,处理器释放SDA线,等待MPU6050的应答信号(ACK)。每个字节的传输都要跟随有一个应答位。应答产生时,MPU6050将SDA线拉低并且在SCL为高电平时保持为低。数据传输总是以停止标志(P)结束,然后释放通信线路。然而,处理
28、器也可以产生重复的开始信号去操作另外的I2C设备,而不发出结束标志。综上可知,所有的SDA信号变化都要在SCL时钟为低电平时进行,除了开始和结束标志。图3-7 完整的I2C数据传输Fig.3-7 Complete I2C data transfer如果要写MPU6050寄存器,处理器除了发出开始标志(S)和地址位,还要加一个R/W位,0为写,1为读。在第九个时钟周期(高电平)时,MPU6050产生应答信号。然后处理器开始传送寄存器地址,接到应答后,开始传送寄存器数据,然后仍然要有应答信号,以此类推。如果要读取MPU6050寄存器的值,首先由处理器产生开始信号(S),然后发送MPU6050的地址
29、位和一个写数据位,然后发送寄存器地址,才能开始读寄存器。紧接着,收到应答信号后,处理器再发一个开始信号,然后发送MPU6050地址位和一个读数据位。然后,作为从设备的MPU6050产生应答信号并开始发送寄存器数据。通信以处理器产生的拒绝应答信号(NACK)和结束标志(P)结束。拒绝应答信号(NACK)产生定义为SDA数据在第9个时钟周期一直为高。3.2.3 数字罗盘模块霍尼韦尔 HMC5883L是一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域。HMC5883L 包括最先进的高分辨率HMC118X 系列磁阻传感器,并附带霍尼韦尔专利的集成电路包括放大器、
30、自动消磁驱动器、偏差校准、能使罗盘精度控制在12的12位模数转换器和简易的I2C 系列总线接口。 HMC5883L 广泛应用于手机、笔记本电脑、消费类电子、汽车导航系统和个人导航系统。原理图如图3-8。在惯性导航算法中,导航参数会随着传感器的测量误差积累和发散,因而不能满足长时间自主飞行的需要,故选用霍尼韦尔公司的三周是数字罗盘HMC5883L对惯性导航系统进行姿态校准。它的工作电压时5V,采用USART协议通信,通过转换电路之后可以和STM32的SCI口通信,并且自带模数转换,以便于微处理器直接通信。在实际测试中发现,电机旋转会对数字罗盘的数据产生干扰,故暂时不加入数字罗盘的数据。3-8 数
31、字罗盘模块Fig.3-8 Digital compass module3.2.4 无线数据传输模块无线数据传输模块是四旋翼无人飞行器和控制中心之间通信的桥梁。本设计选用NORDIC公司生产的NRF24L01芯片。NRF24L01 是一款工作在 2.42.5GHz 世界通用 ISM 频段的单片无线收发器芯片。无线收发器包括: 频率发生器、增强型SchockBurst模式控制器、功率放大器、晶体振荡器、调制器、解调器,输出功率频道选择和协议的设置可以通过SPI 接口进行设置。图3-9 无线数据传输模块Fig.3-9 Wireless data transmission module极低的电流消耗当
32、工作在发射模式下发射功率为-6dBm 时电流消耗为9.0mA 接收模式时为12.3mA。掉电模式和待机模式下电流消耗更低。本系统通过无线模块发送数据,无线遥控器接收数据并传送至电脑上位机。通过上位机,可以实时地显示四旋翼的姿态,并可通过上位机控制飞行器的飞行。原理图如图3-9。NRF24L01模块与处理器通过SPI接口进行通讯,SPI为四线同步串行接口,两个控制线,两个数据线。其中,串行时钟输出(SCLK)、数据输出(SDO)和数据输入(SDI)三条线为所有设备共享。主设备为每个从设备分配一个独立的片选(CS)(本系统仅NRF24L01为SPI设备);传输开始后CS为低,传输结束CS又变为高。
33、当NRF24L01没有被片选信号启动时,它的数据输出线(SDO)保持为高阻态。SPI传输特点:1) 数据的最高位(MSB)先传,最低位(LSB)后传2) 数据在时钟(SCLK)的上升沿捕获3) 数据在时钟(SCLK)的下降沿转换4) 最大时钟频率为1MHz5) SPI的每次读/写操作需要16个时钟周期或更多。传输的第一个字节为SPI地址,第二个字节为SPI数据。首字节的第一位为读/写位,0为写,1为读,后面7个位为寄存器地址。如果要发送多个字节,连续发送数据位即可。SPI读写操作时序图如下:图3-10 SPI读操作Fig.3-10 SPI read operation图3-11 SPI写操作F
34、ig.3-11 SPI write operation3.2.5 电机驱动模块本设计采用PWM控制直流电机的转速。微型四旋翼飞行器的动力系统由电机和旋翼组成。电机选用直接为7mm的空心杯电机。直流电机是功率器件,需要很大的驱动电流,控制器的驱动能力有限,因此必须选用专门的驱动芯片。本设计选用N沟道场效应管SI2302来控制和驱动直流电机,它具有较大的漏极电流,最大能通过2.8A的电流。由于飞行器的电机在转动过程中会产生比较大的冲击电流,所以加二极管D1、D3给电机的反电动势提供放电回路(图3-12)。下拉电阻R4防止上电时电机转动。图3-12 电机驱动模块Fig.3-12 driver mod
35、ule of electric motor3.2.6 电源模块稳压芯片采用低压差线性稳压器SP6205,此芯片噪声低,纹波小,电路简单。本系统采用4.2V动力电池提供电源,两路3.3V电压输出,一路供主控芯片,一路供陀螺仪输出,两路电源相互隔离,防止陀螺仪的数据被干扰。原理图如图3-13。图3-13 电源模块Fig.3-13 power module3.2.7 充电模块充电电路采用TP4056芯片,此芯片是一款完整的单节锂离子电池线性充电器。其底部带有散热片的DOP8/MSOP8封装与较少的外部引脚数目使得TP4056成为便携式应用的理想选择。TP4056可以适合USB电源和适配器电源工作。由
36、于采用了内部PMOSFET架构,加上防倒充电路,所以不需要外部隔离二极管。热反馈可对充电电流进行自动调节,以便在大功率操作或高环境温度条件下对芯片温度加以限制。充电电压固定于4.2V,而充电电流可通过一个电阻器进行外部设置。当充电电流在达到最终浮充电压之后降至设定值1/10时,TP4056将自动终止充电循环。当输入电压(交流适配器或USB电源)被拿掉时,TP4056自动进入一个低电流状态,将电池漏电流降至2uA以下。TP4056在有电源时也可置于停机模式,从而将供电电流降至55uA。TP4056的其他特点包括电池温度检测、欠压闭锁、自动再充电和两个用于指示充电、结束的LED状态引脚。原理图如图
37、3-14。图3-14 充电模块Fig.3-14 charger module3.2.8 电池本设计的电池选用的是飞行航模专用的动力电池,可以提供足够的电流来保证飞行器的飞行,参数如下:电量:400mAh电池电压:3.7V放电倍率:25C充电终止电压:4.2V放电终止电压:3.0V尺寸:39mm 0.5mm重量:11g放电倍率指的是放电电流,以电池容量的倍数计算,此电池的最大放电电流可根据下面的公式计算:400mAh 25C = 10A,足以满足飞行器飞行需要。3.3 无线遥控器图3-15 遥控器核心板原理图Fig.3-15 Schematic diagram of remote control
38、遥控器采用意法半导体公司的32位处理器STM32F103C8T6作为控制器,它是专门为为控制系统、工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域而设计的。STM32F103C8T6是一款基于ARMv7-M体系结构的32位标准处理器,具有1.25DMIPS/MHz的处理能力;拥有USB、USART、SPI、IC等共9个外设接口,由图3-10可知,STM32F103C8T6处理器的外围电路仅需要外部晶振和少量电容即可,内部自带的USB接口便于调试和程序下载。主控制器通过1个SPI与无线通信模块连接,1个USART与USB转串口模块连接,USB转串口模块连接至电脑。本设计通过上位机显示并控
39、制飞行器的飞行姿态,遥控器接收来自飞行器的姿态信号,并把信号传送至上位机,上位机能够显示实时地显示飞行器姿态,同时上位机能够控制飞行器飞行。遥控器采用STM32处理器,通过NRF24L01无线模块传输数据,并用USB转串口线连接至电脑,图3-15为STM32最小系统原理图,图3-16为处理器与无线模块的接口电路。图3-16 NRF24L01接口原理图Fig.3-16 The schematic of Nrf24l01 interface4 系统软件设计4.1 总体设计四旋翼飞行器控制系统软件设计的总体目标是启动飞行器控制系统的各个功能模块并使之正常工作,按照既定规划实现稳定飞行。由于四旋翼飞行
40、器为六自由度的系统,而其控制量只有4个,这就意味着被控量之间存在耦合关系,所设计的控制算法应该能够对这种欠驱动系统足够有效,用4个控制量对3个角位移和3个线位移进行稳态控制。本设计首先通过姿态传感器的数据解算出飞行器的姿态,然后适当的选取控制量,运用控制理论中经典的PID控制算法对飞行器系统进行控制。飞行控制系统的中央控制模块主要完成系统初始化、系统自检、解算传感器数据、执行控制算法、计算并输出控制量等功能。系统程序流程如图4-1所示。图4-1 系统程序流程Fig.4-1 System process4.2 无线通信模块无线通信模块实现上位机对四旋翼飞行器的飞行控制和跟踪定位,实时与上位机控制
41、系统交换信息,接收上位机控制系统传输的飞行控制指令信号、向上位机控制系统发送当前飞行器实时飞行和姿态数据等相应信息,以完成指定的飞行控制任务。STM32通过SPI接口与NRF24L01通信,将ROM中的数据发送出去。STM32控制NRF24L01发送数据,主要分为两个步骤:一是STM32先向NRF24L01中写入数据,二是控制NRF24L01发送数据。在执行过程中,本设计先写入发送数据的目标地址再写入数据,然后再控制NRF24L01发送地址和数据。NRF24L01发送模式会自动产生字头和CRC校验码,当发送过程完成后,数据准备好引脚通知STM32数据发送完毕。NRF24L01的发送和接收流程如
42、图4-2、图4-3。图4-2 发送数据流程图 图4-3 接收数据流程图Fig.4-2 The flow diagram of send data Fig.4-3 The flow diagram of receive data4.3 姿态的表示方法4.3.1 坐标系统飞行器涉及两个空间直角坐标系统:地理坐标系和机体坐标系。地理坐标系是固连在地面的坐标系,机体坐标系是固连在飞行器上的坐标系。四轴飞行器运动范围小,可以不考虑地面曲率,且假设地面为惯性系。地理坐标系采用“东北天坐标系”,X轴指向东,为方便罗盘的使用,Y轴指向地磁北,Z轴指向天顶。机体坐标系原点在飞行器中心,xy平面为电机所在平面,电
43、机分布在|x|=|y|,z=0的直线上,第一象限的电机带正桨,z轴指向飞行器上方。如图4-4所示。图4-4 四轴的模型图Fig.4-4 The model of four axis4.3.2 姿态的运算飞行器的姿态,是指飞行器的指向,一般用三个姿态角表示,包括偏航角(yaw)、俯仰角(pitch)和滚转角(roll)。更深一层,姿态其实是一个旋转变换,表示机体坐标系与地理坐标系的旋转关系,这里定义姿态为机体坐标系向地理坐标系的转换。旋转变换有多种表示方式,包括变换矩阵、姿态角、转轴转角、四元数等。在本文中,矩阵用加粗大写字母表示,如,左上标和左下标表示从机体坐标系(Aircraft)变换到地理
44、坐标系(Earth);四元数用加粗小写字母表示,如,上下标意义与变换矩阵一样;向量用带箭头加粗小写字母表示,如,左上标A表示向量的值是在机体坐标系的坐标值。因为姿态实质是一个旋转变换,根据刚体有限转动的欧拉定理,旋转变换是可以串联的,所以一个姿态可以经过一个旋转变换,变成另一个姿态。类比点和向量的概念,姿态相当于点,旋转相当于向量,点可以通过加向量,变成另一个点。如果用矩阵表示旋转,旋转的串联由矩阵乘法来实现。如果用四元数表示旋转,则由四元数的乘法来实现旋转串联。用四元数来表示旋转,组合旋转时比用其他方法运算量更少,所以无论在计算机图形学、飞行器控制等涉及刚体旋转的领域,四元数都有举足轻重的地
45、位3。飞行器的姿态计算是围绕姿态四元数进行的,下面简要介绍一下四元数的运算。1个四元数由4个实数组成: (4-1)规范化的四元数可以表示旋转,见下式(4-2),为旋转的转角,单位向量为旋转的转轴。 (4-2)记四元数乘法的符号为。四元数乘法跟矩阵一样,有结合律,但没有交换律。运算过程见(4-3)式。 (4-3)四元数转换成矩阵的函数记为R( ),具体过程见(4-4)式。 (4-4)4.4 姿态测量获取当前姿态是控制飞行器平稳飞行的基础,姿态的测量要求低噪声、高输出频率,当采用陀螺仪等需要积分的传感器时,还需要考虑积分误差等问题。近年来MEMS传感器越来越成熟、应用越来越广泛,称为低成本姿态测量
46、的首选器件4,因此本设计使用的传感器全部都是MEMS传感器。在使用传感器的值进行测量姿态之前,有必要校正传感器。由于实验条件限制,传感器的校正有两项,分别对两种类型的传感器:陀螺仪-静止时0输出的传感器、加速度计-测量某向量场强度的传感器。4.4.1 传感器的校正(一) 陀螺仪对于陀螺仪等静止时0输出的传感器,可以很方便地校正零偏。把传感器固定好,这时对输出值Xf求平均值,得到的A即为零偏,如(4-5)式。实际使用时,把测量得到的值减去零偏,得到的值就是校正值。实际应用的公式如(4-6),A为零偏值,31矩阵,单位:LSB;Yi为校正好的值,31矩阵,单位:rad/s;Xi为测量原始值,单位:
47、LSB;gain为转换系数,单位:(rad/s)/LSB,由传感器的数据手册给出。 (4-5) (4-6)(二) 加速度计加速度计是测量所在点的重力场的值的传感器,静态时加速度计测的是等效重力加速度场。下面介绍加速度计的校正方法。 加速度计测量的对象是比力,也就是等效重力加速度和运动加速度的和,当静止时,运动加速度为0,加速度计的测量值为等效重力加速度,可以利用这一点校正加速度计。加速度计的校正的思路为:对测量值平移和缩放,把测量值拟合到重力加速度。因此校正的任务为:寻找最佳的平移和缩放参数,使总体测量的数据值更接近重力加速度。记测量值为,校正后的值为,平移参数为,缩放参数为,他们之间的关系为(4-7)式。 (4-7)定义误差u为测量值长度与重力加速度常数G的平方差 (4-8)把公式(4-7)代入(4-8),得: (4-9)记 (4-10) (4-11) (4-12)则u可以表示成 (4-1