APP下载

基于FPGA的四轴飞行器飞行控制系统设计

2018-09-10徐亚妮罗文广张亮

广西科技大学学报 2018年3期

徐亚妮 罗文广 张亮

摘 要:为提高四轴飞行器飞行控制系统的稳定性及安全性,研制了一种基于NIOS II的飞行控制系统,并添加了多冗余控制功能.当其中一套系统失效的情况下,调用多个NIOS II软核,配合Altera自带的IP核以及外围硬件电路,其他的冗余模块能够替换坏掉的模块继续工作,防止发生飞行故障,从而提高四轴飞行器的稳定性和安全性.同时针对四轴飞行器易受外界干扰的问题,设计了四轴飞行器的自抗扰控制算法,并和串级PID控制器的控制效果进行了比较.仿真结果表明:所设计的自抗扰控制算法可以更好地实现四轴飞行器的姿态控制,并具有较强的鲁棒性.

关键词:四轴飞行器;飞行控制系统;FPGA

中图分类号:TP273 DOI:10.16375/j.cnki.cn45-1395/t.2018.03.008

0 引言

近年来,四轴飞行器在各行业得到广泛应用,飞行器的可靠性显得尤为重要,而飞行控制系统(简称飞控)是飞行器的控制核心,其性能直接决定了无人机飞行性能及完成任务的效率.研究并设计具有更高数据处理、更低的功耗、更高的集成度的飛控是未来四轴飞行控制系统发展的方向[1],同时可编程片上系统与非传统硬件模型——多核设计也是发展趋势.因此优化设计飞控的性能,提高四轴飞行器飞行的稳定性及安全性具有重要的意义.

为了使四轴飞行器具有更好的稳定性,国内外学者作了广泛的研究:文献[2]采用PID控制方案,通过集成了红外相机,实现精确定位.但该方案在硬件上的改进并没有让稳定性的提升得到较好的改善.在软件设计方面,文献[3]中设计了一种自适应UKF微型航姿系统,对噪声在线估计,对噪声的协方差进行在线更新,动静态精度都有较大的提高,但是收敛速度比较慢.文献[4]中作者考虑了四轴飞行器在风力干扰情况,设计了基于积分反演算法的内环姿态控制和基于 PID 的外环控制组成的双闭环控制器,并验证了该控制器在风力干扰下性能良好且有着较强的鲁棒性.但该控制器的设计对飞行器数学模型精度要求非常高,在实际应用中很难实现.

针对上述文献中对四轴飞行器稳定性研究的不足之处,本文将基于NIOS II的可编程片上系统多处理器技术应用在四轴飞行器上,设计了多冗余CPU的飞行控制系统.主要研究四轴飞行控制系统的硬件结构与软件结构两个方面.首先在硬件方面设计了四轴飞行控制器的多重冗余结构,增加了关键模块的备用模块,使其在飞行控制器上的重要模块,如加速度传感器,陀螺仪,罗盘,CPU等失效情况下,能够替换故障模块,保障飞行器结构的完整性,使四轴飞行器得以继续正常飞行;其次是设计了一种适合在多重硬件冗余环境下的软件结构,能够快速识别发生故障的模块,并及时启用备份模块.同时针对四旋翼飞行器参数不确定和外部干扰敏感的问题,从分析串级PID控制系统的不足出发,提出了一种基于自抗扰控制算法的四轴飞行器控制系统,弥补了串级PID控制算法中快速性与超调量之间的矛盾.并与串级PID控制系统进行定量比较分析.通过仿真实验测试,验证了该系统可以有效提高四轴飞行系统的稳定性与安全性.

1 飞行控制器系统硬件平台概述

本文所设计的四轴飞行器的飞行控制系统是基于可编程片上系统技术.可编程片上系统技术是一种高效、灵活的嵌入式系统硬件解决方案,也是一种新型嵌入式技术.

可编程片上系统如图1所示,共有4个CPU:CPU0是主CPU,接收GPS(UART接口)和nRF24L01(SPI接口)等传感器采集的数据,并进行相关数值处理.CPU1、CPU2、CPU3是3个功能完全一样的处理器,互为备份,只要一个CPU能正常工作,整个系统功能都不受影响,恶劣条件下工作可靠性大大增强.每个CPU接收各自姿态传感器输入的数据,并和CPU0处理的传感器数据一起计算四轴飞行器的位置、高度、姿态等信息.CPU1、CPU2、CPU3处理后的结果再传给CPU0做判断,输出PWM信号控制电机.

CPU之间的通信原理是:4个CPU通过NIOS II自带的mutex模块,互斥访问同一块片上存储器来进行数据通信[5].CPU访问存储器前会先监测mutex模块的标志位,确保存储器没被其他CPU占用,然后对存储器进行读写操作.读写操作结束后,CPU会释放对存储器控制权,mutex标志位会清零.4个CPU会按照一定顺序来访问这块共享存储器.具体的硬件搭建如图2所示.

2 基于可编程片上系统软核的程序设计

2.1 NIOS II软件设计

总体任务分为传感器数据采集、控制算法、输入、输出等4部分,并把各个部分的任务按照实时性要求,分配到操作系统的进程中,即完成飞行控制器上的软件设计.

Quartus自带的NIOS II Software Build Tool(SBT)for Eclipse产生软件模块,每个CPU有2个文件包:BSP和上层软件环境[6].BSP提供访问硬件底层的接口函数,自动运行来实现上层软件所要求的功能.多核处理,需要调度mutex来实现多CPU互斥访问共享部分存储器,这部分可以调用NIOS II底层相关函数.

基于可编程片上系统技术的软件设计是在IP核所搭建的硬件平台上采用C语言或者C++语言而实现目标功能的开发过程,本设计在硬件基础上实现的数据存储、数据显示等功能是基于NIOS II开发平台下完成的.

2.2 四轴飞行器控制算法

2.2.1自抗扰控制算法

由四轴飞行器动力学建模公式可知,自抗扰控制算法的控制对象均为二阶线性不确定对象,因此需要设计二阶自抗扰控制算法对其进行控制.自抗扰控制器分为微分跟踪器、扩张状态观测器、非线性状态误差反馈控制器[7].

对于一个二阶不确定系统:

2.2.2 串级PID控制器

串级PID比经典PID控制性能更好更稳定.四轴飞行器的飞行过程干扰因素多,实时性要求高且无法建立精准数学模型.如突遇外力干扰,在PID控制器只用单环的情况下,因为磁力传感器以及加速度传感器采集的数据不准确,所以被姿态解算出来的欧拉角不精确,系统不稳定.因此在控制器中加入角速度内环,如图4所示.陀螺仪反映灵敏,抗干扰能力强,且采集输出角速度变化灵敏,一般不会受外界影响.同理,在当高度环中引入z轴加速度环可以有效避免外界对气压传感器的干扰,增强了系统的鲁棒性[13].

本设计中roll与pitch采用串級PID控制器控制角度变化,以提高飞行器的平衡能力,而yaw直接用传统PID控制器控制即可,过程控制如图5所示.

3 实验测试

3.1 可编程片上系统飞行控制器系统仿真测试

NIOS II SBT for eclipse支持调用ModelSim来仿真,但一次只能仿真一个软件包,相当于仿真一个CPU的软硬件程序.软件编译通过后,点击软件工程右键RUN AS选择NIOS II ModelSim,即可以进行仿真,调出各个CPU控制和数据总线上的信号,可以看出CPU1、CPU2、CPU3都已经工作了.

NIOS II SBT for eclipse支持在线调试,可以配合FPGA芯片进行联调.采用基于Altera EP4S15C8型号FPGA芯片的板卡,在SBT窗口底部console可以看CPU工作的打印信息,如图6所示,可以看出CPU通过mutex互斥访问共享memory,CPU得到mutex权限,就会有一条打印信息.

上述板卡信息表明,3个冗余CPU都可以正常工作,可以访问主CPU,达到了设计安全性更高的多冗余CPU飞行控制器系统的目的.

3.2 飞行控制算法仿真及实验结果

自抗扰控制算法主要部分均用S-Function模块编辑程序实现如图7所示,比较部分如图8所示.

模型建立好后,期望值按照表1设定为常数,如模型所示,PID参数3个通道全部先采用第一部分中姿态控制模块中设置的参数,再将期望值换成阶跃信号和脉冲信号,仿真验证,如图9所示.

图9的波形图中,上面的波形是自抗扰控制算法的控制效果图,下面的波形是串级PID控制算法的控制效果图.可以看出,在不同的信号下,自抗扰控制算法下的四旋翼飞行器俯仰角达到期望值的时间较短且超调较小,所以自抗扰控制算法针对四轴飞行器飞行姿态角的控制稳定性要优于串级PID的控制效果.

4 结束语

基于FPGA四轴飞行器的多冗余飞行控制系统采用嵌入式设计方案以及模块化管理的思想,进一步提高整个飞行控制器系统的集成度、灵活性和数据处理能力,以及四轴飞行器的整体性能.本文在设计完成四轴飞行器硬件系统与软件系统之后,通过板卡信息可以看出,3个冗余CPU都可以正常工作,可以访问主CPU,达到了设计安全性更高的多冗余CPU飞行控制器系统的目的.通过自抗扰控制算法与串级PID控制器进行仿真实验相比较后发现,自抗扰控制算法应用于飞行控制系统的稳定性更好,鲁棒性更强.

参考文献

[1]钟佳朋.四旋翼无人机的导航与控制[D].哈尔滨:哈尔滨工业大学,2010.

[2]面向桥梁检测的四旋翼飞行器控制系统研究[D].重庆:重庆交通大学,2013.

[3]刘宇,刘琼,周帆,等.基于自适应UKF微型航姿系统噪声在线估计[J].重庆邮电大学学报(自然科学版),2016,28(3):285-290.

[4]何勇灵,陈彦民,周岷峰.四旋翼飞行器在风场扰动下的建模与控制[J].中国惯性技术学报,2013,21(5):624-630.

[5]段国强,张岳军,李衍杰,等.四旋翼无人直升机控制算法仿真比较研究[J].计算机仿真,2014,31(4):78-82.

[6]韩京清.自抗扰控制技术[M].北京:国防工业出版社,2008(1):25-32.

[7]赖爱芳,郭毓,郑立君.航天器姿态机动及稳定的自抗扰控制[J].控制理论与应用,2012,29(3):401-407.

[8]李尧.四旋翼飞行器控制系统设计[D].大连:大连理工大学,2013.

[9]黄依新.四旋翼飞行器姿态控制方法研究[D].成都:西南交通大学,2014.

[10]陆伟男,蔡启仲,李刚,等.基于四轴飞行器的双闭环PID控制[J].科学技术与工程,2014,14(33):127-131.

[11]刘伟.四旋翼无人飞行器设计与实验研究[D].哈尔滨:哈尔滨工程大学,2011.

[12]李克俭,李洋,柯宝中,等.基于FPGA的寻址与运算操作数存储IP核设计[J].广西科技大学学报,2017,28(4):72-79.

[13]柯宝中,侯丽,潘绍明,等.与8位微处理器系统连接的计数器IP核的设计[J].广西科技大学学报,2017,28(2):48-54.