Profile - CN033


CN033

基于SOPC的微型四旋翼无人飞行器的设计

哈尔滨工程大学
惯性导航与测控技术研究所


Finals


[print]


Project

Name of Project:基于SOPC的微型四旋翼无人飞行器的设计

Contact Information

Name:阙兴涛
E-Mail:quexintao8485@126.com
Telephone:045182518042
Mobile Phone:13251611729
Mailing Address:哈尔滨市南岗区南通大街145号哈尔滨工程大学31号楼402教研室168室

Contest Advisor

Name:许德新
E-Mail:xudexin@hrbeu.edu.cn
Telephone:13100931436

Members

No.NameE-MailEnglish Name
1阙兴涛quexintao8485@126.comquexingtao
2刘伟liuweihero@hrbeu.edu.cnliuwei
3王璐wanglu1987xy@126.comwanglu

Project Paper - view as Preliminary(2009/06/15), Final(2009/09/14), Draft, Latest

1. 设计概述 (Preliminary Paper)

1 设计意图

微型四旋翼无人飞行器是一种外形新颖,性能优越的垂直起降无人飞行器,具有较高的军用和民用价值。该飞行器是一种碟形飞行器,具有新颖的结构布局和独特的飞行方式,利用空气动力来克服自身重量,可自主或遥控飞行,并且能够携带一定载荷,可配备专用仪器实现一些特定功能。
微型四旋翼无人飞行器是一个具有六个自由度,而只有四个控制输入的欠驱动系统,具有多变量、非线性、强耦合和干扰敏感的特性,这些使得飞行控制系统的设计变得非常困难。其次,在飞行过程中它不仅受到各种物理效应的作用,还很容易受到气流等外部环境的干扰,很难获得其准确的性能参数。
为了在复杂的环境中获取最优的姿态航向等信息,系统拟采用多组传感器融合的技术方案,首先利用三轴的MEMS陀螺和加速度计构成一个微惯性测量单元(MIMU),从惯性导航的自主性和可靠性的角度出发,把MIMU作为系统的主传感器,为了克服MEMS惯性器件的随机漂移和姿态解算算法的累积误差,用红外平衡仪修正其姿态,用地磁传感器修正其航向,结合GPS的经维度、高度、速度等信息,利用高效的信息融合算法,得到飞行器最优的导航参数,从而完成飞行器的自主飞行和姿态的最优控制。
考虑到采用多传感器信息融合以及欠驱动控制系统算法设计的复杂性,本作品采用Altera公司的高性能FPGA芯片,利用单片FPGA实现双CPU的功能,以满足导航传感器的信息融合,实现无人飞行器的最优控制。
 
2 适用范围及针对用户群
 
微型四旋翼无人飞行器外形新颖,性能优越,起飞降落不受环境制约,具有较高的军用和民用价值。可广泛的应用于航拍,地形勘测,高压线路检测等民用领域,也可用于侦查,攻击等军事领域。由于四旋翼无人飞行器的特定的飞行原理,可以实现固定翼飞机无法实现的空中悬停的功能,也可以在城市、室内等特殊环境进行飞行。基于SOPC技术的微型四旋翼无人飞行器的开发,可以充分发挥FPGA的灵活配置、功能强大的特点,将惯性技术、信息融合、最优控制等融合在一起。该作品的开发完成后,不仅可以将其转化为具有自主知识产权的航模或侦察、勘测无人机进行生产销售,还可以将该作品作为实验设备,搭建大学相关专业的学生学习SOPC技术、惯性技术、导航技术、现代控制方法的高集成度的试验平台。
 
3 选用Altera器件来进行设计的原因
 
(1) 高性能、低成本的NiosII嵌入式软核处理器,高度的灵活性以及可定制性,可以真正的实现软硬件协同设计,最大限度的优化姿态检测及控制算法。
(2) 先进的SOPC理念,交换式AVALON总线,可以以最小代价方便的将IMUGPS、磁传感器接入NiosII处理器。
(3) 自定制UART接收的IP核,可以高速稳定的完成IMUGPSNiosII的通讯,自定制SPIIP核,高效完成磁传感器的数据采集,自定义IEEE-754标准浮点结构的cordic算法的用户指令,可以有效完成姿态解算的算法加速。
 (4) NiosII IDE集成的μC/OSII嵌入式实时操作系统,可以方便的完成三种传感器的数据采集任务,姿态解算任务和电机控制任务的调度,以及各个任务间的通信。
(Revision: 3 / 2009-09-13 18:33:30)

2. 功能描述 (Final Project Paper)

功能实现 

本作品的飞行器载体主要分为四旋翼飞行器模型、动力系统及飞行姿态检测和控制系统,其整体结构示意图如下:

2.1 系统总体结构图

四旋翼无人飞行器是固联在刚性十字交叉结构上的由四个独立电机驱动的系统。四只旋翼分别安装于正方形机体的四个顶点位置,分为顺时针和逆时针两组,位于同一对角线上的两只旋翼为同一组。由于电机和载体为刚性连接,因此只能通过控制四个电机的转速来实现飞行器的飞行控制。悬停时,四只旋翼的转速相等,以相互抵消反扭力矩;同时等量地增大/减小四只旋翼的转速,会引起上升/下降运动;增大某一只旋翼的转速的同时,等量地减小同一组另一只旋翼的转速,则可以产生俯仰/横滚转动;增大某一组旋翼的转速,而等量减小另一组旋翼的转速,将产生偏航运动。

2.2 四旋翼飞行器的结构形式

2.1 系统硬件设计

2.1.1机体

考虑到飞行器本身飞行重量和机械强度等问题,本模型机体采用不锈钢材料制作飞行器结构,并配有复合材料制作了起落架。

2.1.2 动力装置

要采用四个大功率无刷电机(KV1000)配备9寸的三叶桨,驱动无刷电机的电调控制芯片采用Mega8单片机,与飞控板FPGA通过I2C总线通讯实现对电机的实时调速控制。电机与驱动实物图如图所示

2.3 四旋翼飞行器动力部分

2.1.3 无刷电机介绍

   电机采用新西达A2212KV1000)的大功率无刷电机电机重量48,外形尺寸27.8x27mm,并配GWS9050HD的三叶桨,根据电机提供的性能指标:每个电机工作在11V时转速在8430转左右,可以提供升力681,可满足飞行需要的升力。电机和正反桨的实物如图所示。

2.4 无刷电机和9寸正反桨实物如图

2.1.4 动力装置驱动部分

   四旋翼飞行器对无刷电机驱动要求比较高,既要求电机驱动的线性度和电机调速的实时性要高。电机驱动装置采用AVR系类单片机Mega8处理器作为电机驱动的主控制芯片,线性度的提高主要靠软件算法实现,电机驱动装置通过IIC总线方式和主控制器通讯,通讯速率可达400k,这样大大提高了电机调速的实时性。无刷电机驱动的事物图如图所示。

2.5 无刷电机驱动实物图正、反面 

 

2.1.5 FPGA主控硬件系统

考虑到四轴飞行器的载重量和体积约束,我们设计nios最小系统板,系统采用cyclone系统FPGA,外扩两片SDRAM。具体设计过程如下。

1.系统电源电路

Cyclone系列的FPGA可以兼容多电压I/O操作,允许内核和I/O单独供电,VCCINT引脚供给器件内核供电电压为1.5VVCCIO引脚供电给器件的I/O块,供电电压为3.3V。从Cyclone芯片的手册可知,当FPGA运行时,内核动态功率占总功率的67﹪,内核静态功率占22﹪,I/O11﹪,根据实际测量结果显示,内核上消耗的电流不超过300mA,这样电源系统1.5V能够提供600mA即可。FPGA每个I/O的输出电流不大于25mA,每10I/O的总输出电流不大于320mA,为了保证可靠性并留下余量,电源系统3.3V能够提供的电流应大于600mA

因为系统对这两组电压的要求比较高,且其功率不是很大,所以不适合用开关电源,应当用低压差模拟电源LDO。合乎技术参数的LDO芯片很多,AMS1117是一个很好的选择,它的性价比比较高,且有一些产品可以与它直接替换,减小采购风险。

本设计中采用两片三端固定的AMS1117FPGA供电,AMS11173.3输出3.3V电压对I/O供电,AMS11171.5输出1.5V电压对内核供电。AMS1117需要在输出与地之间接入电容以维持内部电路稳定,输入和地之间也需要接入电容对输入信号进行滤波,具体的连接关系如图2.7和图2.8所示。

 

2.6 I/O供电电源电路

另外,数字电源和模拟电源,数字和模拟地之间应该加电感进行隔离。

2.7 内核供电电路

2SDRAM接口电路

SOPC Builder中自带的SDRAM控制器内核提供了一个连接到片外SDRAM芯片的Avalon接口。SDRAM控制器可让设计者在NiosⅡ中简易的连接并使用SDRAM芯片。本系统采用了两片48LC4M16A2级联构成32位数据总线外部SDRAM芯片的接口提供PC100标准定义的信号。这些信号必须通过Avalon FPGAI/O引脚连接到SDRAM芯片。

         SDRAM芯片必须和Avalon接口一样以相同的时钟来驱动。片内锁相环(PLL)通常用于调整SDRAM控制器内核与SDRAM芯片之间的时钟相位差。在较低的时钟频率下可能不需要锁相环。在较高的频率时钟频率下,当信号在引脚上有效时,需要PLL来调整SDRAM时钟。

 

2.9 SDRAM接口电路图

在电路原理和PCB设计时,需要考虑合理分配FPGA的引脚,尽量使各信号的布线等长以尽量减少各SDRAM信号间的相位差。本系统中的一块SDRAMFPGAI/O口连接如图2.9

2.2 系统软件设计

2.2.1 姿态解算算法

本设计从mems惯性器件的固有特点出发,设计了以mems惯性器件作为姿态检测单元的姿态解算算法,以满足四轴飞行器姿态稳定控制的需要。由于mems陀螺的随机漂移,通过mems陀螺积分得到的载体姿态角存在不可避免的积累误差,另一方面,通过加速度计也可以测量载体的姿态,但是动态时,由于大量的有害加速度的引入,由加速度计测量的姿态姿态也会有很大的误差、甚至是错误。本设计从以上两点出发,对mems陀螺和加速度计的数据进行有效的处理和融合,最终获取动态环境下载体最优的姿态解。

2.2.2 飞行控制算法

对四轴无人飞行器的控制主要是对其姿态的控制。无人机姿态控制主要包括三个PID控制器,用来控制俯仰,横滚,偏航三个姿态角。俯仰和横滚通道采用位置,速率双闭环反馈控制系统,其中外环为位置环,采用的是变速积分的PID算法,内环为速率环,采用的是微分先行的PD算法。偏航通道采用速率反馈控制系统,采用的是微分先行的PID控制算法。

四旋翼无人飞行器的俯仰轴和横滚轴对称,忽略其耦合关系,两个轴的控制器相同。由于需要对系统姿态和角速率进行控制,因此采用了位置和速率双闭环反馈控制系统,其中位置给定为接收机接收到的该轴的油门,也就是期望角度,通过期望角度和实际角度做差,经过PI调节器,即得到了系统角速率环的输入,即为期望角速率。期望角速率和实际角速率做差后经过PD调节器即得到了控制器的输出。由于偏航轴的陀螺仪积分无法进行修正,测得的角度在不断漂移,因此只对偏航轴的角速率做闭环控制。偏航轴的角速率给定为接收机接收到的该轴油门,期望角速率和实际角速率做差后经过PD调节器,即为该轴控制器的输出。最后,将控制器的输出叠加到四个电机上,即完成了对四旋翼无人飞行器的控制。

(Revision: 9 / 2009-09-13 20:12:39)

3. 性能参数 (Final Project Paper)

性能参数

起飞重量:1400g

负载:300g

飞行时间:20分钟

抗风性:4级风

 

(Draft / 2009-09-13 20:13:31)

4. 设计结构 (Preliminary Paper)

设计结构

1 系统硬件结构框图

系统硬件结构框图见图4.1

4.1 系统总体框图

2 系统软件结构

ARM完成IMU的数据采集以及处理后,通过串口将三轴的加速度计值和三轴的角速率值发给Nios,发送周期设置为2msNios接收到新数据后,立即开始执行姿态解算算法和控制算法,所以电调的控制周期为2ms,在这2ms的时间里,Nios必须完成姿态解算,为控制算法提供最优的姿态解。程序中用一个信号量,来完成主控任务的同步。另外,还需要完成磁传感器数据的采集,GPS数据的接收及处理,PPM信号的处理,与上位机的通信。所以μC/OSII一共创建了5个任务。

任务1imu_data_handle_tastIMU传来新数据时,此任务开始执行,此任务是系统的核心任务,任务优先级最高,设置为5,完成姿态解算,和四个电调的控制,执行周期为2ms

任务2ppm_data_handle_tast 完成接收机信号的采集,处理。设置其优先级为6,执行周期为20ms

任务3mag_data_handle_task 完成磁传感器的数据采集,处理。设置其优先级为7,根据实际磁传感器数据的更新速率,设置其执行周期为20ms

任务4gps_data_handle_task 完成GPS数据的采集,处理。设置其优先级为8,根据GPS数据更新的速率,设置其执行周期为300ms

任务5send_data_to_pc_task向上位机发数,主要用于调试。设置其优先级为9,设置其执行周期为200ms

程序流程图如图4.24.3所示。

4.2  主函数流程图

4.3  程序流程图

 

 

(Revision: 3 / 2009-09-13 20:45:37)

5. 设计方法 (Final Project Paper)

设计方法

1  系统的SOPC构建

    交换式AVALON总线允许用户方便的将各种外设连接到一起,从实际系统的需要出发,结合所选FPGA芯片的片上资源,我们定制了以下Nios系统,如图5.1。其中,CPU选择快速核,并添加浮点运算的用户自定义指令。PPM4是用户自定义的IP,用以完成接收机的信号采集,i2c内核用于四个电调的控制,即电机转速的控制,uart_gps内核用于接收GPS的报文,spi_mag用于控制磁传感器的数据采集,uart_to_pcuart_to_imusopc builder自带的UART组件,前者用于和上位机的通信,后者用于和IMU的通信。系统时钟80M。图5.2是系统的顶层bdf框图。图5.3是系统的编译结果。

5.1 sopc builder组件图

5.2 顶层bdf框图

由图5.3可以看出,所构建的nios系统占了91%LE,可见所选FPGA的资源利用率是很高的。

5.3 编译结果

2  串口接收内核的设计

串口接收的内核包含四个文件,

uart_serial.vhd  UART的协议层,负责产生波特率,数据位,校验位等等。

pack_the_data.v 将底层接收到得数据打包。

uart_rx_register.v实现了和AVALON总线的接口,负责将打包完的数据传给nios

uart_rx_top.v   顶层文件,例化前面三个文件。

具体应用时,根据GPS报文的格式,设置帧头,帧尾校验,而且要根据GPS串口的属性,设置串口接收内核的波特率,数据位长度等参数。

 

3  磁传感器的控制内核设计

选用PNI公司的三轴磁传感器,用以给四轴飞行器提供航向基准,下图5.4是所选用磁传感器的操作时序图的截图,如图所示,开始操作时,先输出片选信号,使能SPI接口,然后复位,接着在前8个时钟周期发送命令字,用以选择磁传感器的通道、分辨率和采样周期。然后等DRDY置位,在接下来的16个时钟周期读取所选通道的磁场数据。

5.4 磁传感器的操作时序图

SPI接口的时序如下图5.5,上升沿锁存数据,高位在前,低位在后。

5.5 SPI时序图   

     根据实际时序的要求,设计出来的单通道磁场数据采集的时序仿真图5.6所示,和图5.4对比可见,完全符合要求,在系统发起start_sample的命令后,cs_to_mag置低,然后reset_to_mag置高,然后发送命令字,接着等待DRDY置高,最后取数。

 

 

5.6 单通道磁场数据采集的时序仿真图

 

    定制成用户IP,还需要考虑时钟问题,本设计采用对系统时钟分频,产生时钟使能信号的方法来生产SPI的时钟信号。

4 接收机信号采集的内核设计

    遥控器用来实现对飞行器的手动控制,接收机发出来的信号是周期为20ms的矩形波,信号采集的任务就是检测一个周期中,高电平信号持续的时间。如图5.7,是对一路PPM信号采集的仿真时序图。系统时钟是80Mppm_in信号周期为10us(实际中周期应该为20ms),占空比为60%,所以高电平持续时间为6us。如图,程序运行结果为480,检测到得高电平时间为480*1/80M=6us。结果完全正确。

5.7 一路ppm信号采集的时序仿真图

(Revision: 5 / 2009-09-13 21:41:44)

6. 设计特点 (Preliminary Paper)

1 自主设计了Nios最小系统板

由于飞行器对载重和体积的要求,Altera提供的DE1不大适合我们的设计,我们根据实际的需要,自行设计了Nios的最小系统板。如图5.8

5.8 nios最小系统板实物图

2 软硬件协同设计的完美体现

    为了满足2ms的电调控制周期,要求算法和程序的执行速度都到最优,为此我们根据实际外设的特性,为他们定制了控制IP,很大程度上减小了Nios的负担,这是软硬件协同设计的完美体现,有效的保证了程序可靠、快速的运行。

3 基于AVALON总线自定制了四种IP

    本设计在AVALON总线上连接了13个外设,其中四个是自定义的,占了91%LE,充分体现了我们的设计的复杂性和灵活性。

4  μC/OSII嵌入式实时操作系统的使用

    Nios IDE集成了μC/OSII嵌入式实时操作系统,它极大的方便了我们的程序设计,加速了我们开发的进度,本设计使用了μC/OSII,共建立了5个任务,使用了信号量对任务进行同步控制。

(Revision: 2 / 2009-09-13 21:13:56)

7. 总结 (Final Project Paper)

    以Altera公司的FPGA为核心器件,定制了I2CSPIUARTPPM内核,完成了惯性测量组件(IMU)GPS、磁传感器的数据采集,完成了遥控信号的处理,进行导航信息融合与控制算法解算,驱动无刷直流电机实现了四旋翼无人飞行器的起飞、悬停、降落、导航等功能。搭载摄像头等设备,配备相应的地面站软件,便可以完成摄像、侦察等功能。

(Draft / 2009-09-13 21:45:09)