无人直升机飞行控制系统设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

无人直升机飞行控制系统设计报告
摘要:本文介绍了用于无人直升机控制的飞行控制系统结构和分部分的主要性能,详细阐述了系统设计方案以及设计思想。

一整体系统描述
整个系统可以分为机载部分和地面部分,机载部分负责维持飞机的稳定飞行并提供图像信息给地面部分,地面部分根据飞机的状态以及得到的图像信息作出下一步飞行的目标规划并发送给机载部分,同时为了确保安全,防止自主飞行机构失控,添加了可由操作手控制的控制器。

地面部分与机载部分之间有两条数据链路——负责传送图像和传送飞行状态和指令。

图像传送的数据链路通过购买成品解决,另外负责传送飞行状态和指令的部分也已经有方案可以解决(目前正在开发的部分虽然包括扩频通信,但是由于技术原因不能确保在比赛中的可用性,所以这部分只是作为研究性的项目)。

地面部分可以分为地面站和图像处理平台,前者与机载飞行控制器通讯以发送控制命令并获得飞机状态信息,后者获取机载摄像头的图像并做处理以搜寻比赛目标。

机载部分将在后一部分详述。

二飞机内部系统描述
为了完成自主飞行任务,飞机需要相关功能部件完成对飞机状态信息的采集、对执行部分的控制以及对地面站命令的响应等功能。

在无人机上,替代飞行员或操作手完成飞行任务的自主机构包括图像设备、飞控模块、高度测量、舵机控制、数据链路以及航姿仪等,如下图所示:
图像设备飞控模块高度测量舵机控制数据链路航姿仪
各个模块之间相对独立,均可单独完成一定的功能,模块之间的相互连接采用总线实现,硬件上采用PC104标准,便于安装和系统集成。

虽然采用的总线是较可靠的通讯标准,但是在直升机实际飞行的环境中存在震动、电磁等干扰因素,可能影响到数据传输的可靠性,为了保证正确的数据传输,采用了两套互为备份的总线系统——422总线和CAN总线。

422总线为现有UAV系统采用的标准,具有技术较成熟的优势;CAN总线对于数据包的传送更为方便,克服了422只能采用主从模式以及工作在轮询模式的缺点,并且具有更高的数据传输速度,是一种较新的标准,使用CAN总线也是对系统方案升级的尝试。

惯性导航系统与GPS
为了实现对直升机姿态的控制,需要有飞机各个
方向的速度位置信息等,惯性导航系统的算法通过对
惯性测量单元(IMU)提供的加速度和角加速度的积
分,得到机体的位置、速度和姿态信息(PVA)。

从硬件
上来说,该模块是实现了对各个加速度和角加速度传
感器的信息采集,但是仅仅通过以上简单的惯导算法本身很难得到有用的信息,惯性传感器的漂移和定步长积分的累计误差会使计算结果很快偏离实际值。

导航系统必须考虑这些误差因素并对得到的PVA结果作出修正。

惯性导航系统可分为平台惯导系统和捷联惯导系统,平台惯导系统是通过一个机械平台把惯性敏感元件与机体的角运动隔离开、使之跟踪某个给定的坐标系,从而给出相对于给定坐标系的运动信息,而捷联惯导系统是将惯性敏感元件直接固定在飞行器机体上,通过计算机采集惯性元件的输出并解算出飞行器相对于给定坐标系的运动信息。

捷联惯导系统相对于平台系统来说,通过计算机程序实现了平台的作用,简化了硬件复杂性,提高了系统的可靠性和可维护性,更容易实现。

惯性导航模块的设计目标是实现一个独立的数字捷联惯导系统:采集惯性敏感元件的输出信号并进行解算,给出飞行器相对与给定坐标系的运动信息,通过总线实时地发送给飞行控制计算机。

系统最初的设计方案中包括如下部分:角速度传感器,加速度传感器,磁性传感器,实现信号采集和运算的DSP。

由于时间紧迫,惯性导航模块仅实现对陀螺和加速度计的数据采集,通过总线实时的发送给飞控计算机,下一步的运算工作由飞控计算机进行。

惯性导航模块的硬件主要包括两个双轴陀螺、两个双轴加速度计(组成六自由度的惯性敏感元件)和一个面向控制的DSP。

陀螺:Gyratoin公司MicroGyro100,测量范围±150度/秒,解析度0.15度/秒,模拟输出。

加速度计:AD公司ADXL202,测量范围±2g,分辨率2mg,PWM数字输出。

DSP:TI公司面向控制的TMS320F2812,它具有150M的主频,内部集成了齐全的外设,包括:增强型CAN模块,增强型串口通信控制模块,12位高速A/D转模块,串行设备模块,多路缓冲串口模块(McBSP)和能够产生和读取PWM波的事件管理器。

视觉处理
视觉是无人机的一个重要部分,无人机的一个重
要应用:无人侦察,就是以计算机视觉为基础。

视觉
程序的目的是:从直升机上面的摄像头拍到的图片中检测出固定的几类图标的位置。

整个检测过程分为两个阶段,第一个阶段从图片中检测出图标所在矩形的位置,并放缩为32*32大小的标准矩形;第二个阶段对这个标准矩形进行判断,决定它是哪类图标。

三个标准图标如下:
第一阶段获取矩形位置的流程是(结合一个例子具体介绍):
原始图片如下:
首先从摄像头传回的视频中得到一帧图片,将其转换为灰度图;然后对其进行均值滤波平滑处理,消除掉图片上的一些杂质;接下来进行sobel边缘检测,将矩形从图像中分离出来,在边缘检测的同时也进行了阈值化的过程。

边缘检测后结果如下:
为了让矩形边缘闭合,进行一步开运算操作(矩形边缘是黑色);然后进行前景提取,
通过点连通的方式来把图片分为一块一块的连通区域,每块区域都存储为一个数据结构,认为其中最大的一块区域为背景,将其置为黑色,其他的部分全部置为白色;下一步是边缘提取,这步和前面的sobel边缘检测不同的地方在于,sobel边缘检测将矩形分割出来,但是程序仍旧不知道矩形在哪里,而边缘提取之后可以得到矩形的确切位置,做法还是利用连通性得到一个区域的外边缘点,因为区域的点前面已经存储,这一步很好进行。

获取边缘后结果如下:
得到区域边缘后还需要判断这是不是矩形或者平行四边形,这一步的做法是:首先得到一个区域的中心,然后判断离这个中心最远的点作为矩形的第一个角点,计算离第一个角点最远的点为第二个角点(即首先检测一条对角线),距离第一、第二个角点连线最远的点为第三个角点,距离前三个角点构成的三角形区域的最远点为第四个角点;检测出四个角点后,判断矩形方法是判断两条对角线的交点(矩形中心)附近是否有点存在,因为图像已经是完全的边缘图像,一个区域的内部已经没有点存在,如果中心附近有点,说明此图形并非矩形,很可能是类似三角形或者不规则多边形,这样的区域直接否决掉。

剩下满足要求的区域放缩到32*32大小的标准区域中,进入下一步处理。

放缩的结果如下:
第二阶段需要判断32*32大小的区域是哪一个图标。

方法是:把32*32大小的区域认为是1024的一个向量空间,事先准备好3幅标准图标,每幅图标有4个方向,所以一共是12类图标,根据转换矩阵计算每类图标在向量空间中的位置;然后把第一阶段得到的区域乘以转换矩阵,得到它在向量空间中的位置,判断它和那一类图标最接近,就属于哪一类,并计算出匹配度。

经过实际实验,我的标准是:图标1、2的匹配度标准是60,图表3的匹配度标准是56,低于这个值则认为是干扰目标。

最终结果如下:
地面站部分:
地面控制站程序的作用是观察飞机的各项飞行信息,包括GPS信息、飞机状态信息、飞行航迹信息等,并可以发送命令对其进行控制。

地面站和飞机之间的通讯遵循设定好的测控协议。

地面站界面如下:
界面的左面显示的是飞行轨迹,目前看不出来;蓝色的文字是显示飞机发送回来的GPS信息和三轴线加速度、角速度信息。

界面右边的各项文字、仪表显示了飞机的各种状态信息,数。

可以用于分析飞机的运行情况,其中右中的4个操纵杆可以给飞机设定升降舵、方向、风门、副翼四个参量。

界面下方的按钮群是主要的操作部分,可以通过点击相应按钮进行各种操作;其中大部分操作在菜单中也有对应项。

界面最底下的一栏是状态栏,显示了一些程序运行的信息。

飞机如果进入自主飞行状态,地面站有设定好的遍历方法用于决定飞机将飞向何处以及如何遍历整个场地。

遍历方法基本上是利用状态机来实现,具体设定如下:
飞行路线(循环进行):
|
7
|
6—————5——————4
|
3
|
0—————1——————2
设定一个状态变量trackStatus表示当前飞机所处位置
trackStatus = 0: 飞机处于悬停状态,位于左边界,将横向飞;;
trackStatus = 1: 飞机处于向前飞状态,航向横向向左;
trackStatus = 2: 飞机处于悬停状态,位于右边界,将纵向飞;
trackStatus = 3: 飞机处于向前飞状态,航向纵向;
trackStatus = 4: 飞机处于悬停状态,位于右边界,将横向飞;
trackStatus = 5: 飞机处于向前飞状态,航向横向向右;
trackStatus = 6: 飞机处于悬停状态,位于左边界,将纵向飞;
trackStatus = 7: 飞机处于向前飞状态,航向纵向;
其中飞机如果处于0、2、4、6状态,将持续向左边或右边转弯,直到转到设定的方向,即进入下一个状态;飞机如果处于1、3、5、7状态,将持续向前飞,直到飞到设定的距离,即进入下一个状态。

所以整个状态机通过判断飞机当前的状态和是否满足条件来决定是否进入下一个状态。

地面站和视觉程序结合起来,利用飞机当前的高度、航向以及飞机所处的位置,可以计算出图标的实际经纬度信息,这也是比赛的最终要求。

超声波高度测量
虽然GPS系统或者惯导系统都可以提供高度信息,但是对于实现直升机起飞降落这样的任务来说,这些高度信息的精度是无法满足要求的,需要有超声测距、红外测距或者激光测距等高精度的距离测量方法。

激光测距的精度较高,但是购买的成本较高,自己开发的难度也更大;红外测距的作用距离有限,同样存在着开发难度较大的问题;超声测距结合了测量距离较远(可测10m)以及开发难度低的优点,因此选择超声高度测量方案。

另外超声波具有指向性强,能量消耗缓慢,在介质中传播的距离较远等优点,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。

利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。

高度测量模块的主要工作过程如下:超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。

超声波在空气中的传播速度为340m/s,根据计时器记录的时间,就可以计算出发射点距障碍物的距离。

高度测量的原理虽然简单,但是要达到理想的效果还是有一定难度,如要达到一定的测量距离、在不同反射面情况下基本工作正常、可以判断由于干扰造成的错误测量情况等等。

这里的技术难点包括信号采集的靠干扰性、信号解调的正确性以及时间差获得的正确性。

为了使测距模块有良好的靠干扰性,我们将发射和接收分别放在两块板子上,以防止互相之间的干扰,并采用屏蔽线将两块板子之间的通讯连接线屏蔽起来,保证不受外界干扰。

信号解调部分采用LM567进行40K 信号的解调工作,567为通用音调译码器,当输入信号于通带内时提供饱和晶体管对地开关,电路由I 与Q 检波器构成,由电压控制振荡器驱动振荡器确定译码器中心频率。

用外接元件独立设定中心频率带宽和输出延迟。

LM567将获得的40K 信号进行解调,并最终将稳定的信号输出给单片机,以保证获得准确的时间差。

此次我们也采用了MSP430作为超声波测距的单片机进行信号采集、发生以及计算和通讯等功能,单片机是整个模块的核心部分。

我们采用MSP430作为40K 信号的发生源并最终接收捕获到的信号,并计算发出信号到收到信号之间的时间差,从而计算出距离。

并对得到的距离进行分析处理,保证将可靠的数据传输给上端。

在距离的数据分析上,我们采用了一阶滤波器的处理,以保证传输给上位机的数据可靠而且平滑有效。

飞行控制器
飞行控制器直升机的中央控制单元,负责飞机上各个单元的协调工作,并与地面站之间进行数据传输。

同时根据控制算法和地面站的命令,保持飞机以一定的姿态飞行。

飞控计算机硬件原方案采用TI2812 DSP ,该方案的优点在于功耗低、DSP 本身接口较多(包括串口、CAN ),但开发过程中碰到技术积累不充分、无操作系统支持造成开发速度较慢等等的问题,所以最终选用了80486的PC104标准板。

直升机模型较为复杂,而且通道之间存在耦合,如果考虑复杂情况则控制率较难实现,所以采用简单的PID 控制器分通道进行控制,为了解决非线性问题,采取不同状态下采用不同参数的控制方法。

具体将飞机飞行状态划分为起飞、降落、悬停、向左、向右等状态,在不同状态下设定不同的控制目标值。

例如,悬停状态高度设定为固定值,俯仰、滚转以及偏航的角度都设置为零,利用四个不同的控制器分通道控制,使得飞机姿态达到设定值。

以偏航方向的控制为例:
舵机驱动模块
舵机是无人直升机上的执行机构,通过操纵舵机来改变
主旋翼的桨叶角度和桨盘角度以及尾桨的桨叶角度,就可以
控制作用于飞机上的力和力矩,从而改变机体飞行状态。


赛用直升机仍然采用航模直升机的舵机,该舵机输入为PWM
(脉宽调制)信号,脉冲宽度对应于舵机的位置。

导航计算机 限位 偏航P 控Rudder
偏航角速
总距输入
为了实现可靠的控制,防止在一定条件下飞机失控,在舵机模块增加了控制切换功能,即可以通过飞控计算机控制或者通过遥控手直接控制。

在舵机驱动模块失效时,MSP430的所有输出都变为低电平,通过GAL的逻辑可重编程逻辑阵列使得舵机驱动的控制输入切换为遥控直接输入。

对舵机的控制为开环控制,这是由于舵机的性能相当可靠,而且有应急的切换电路。

软件仿真系统
在进行实际的飞行测试之前,仿真测试可以充分验证算法的可靠性,降低实际飞行可能造成的损失并且增加试验的次数。

对于仿真程序的要求大致有以下几点:数学模型较为逼真,可以提供交换状态数据和控制数据的接口,如果软件不是自己开发的话最好能够是开发源码的,以便于二次开发。

基于以上的考虑,我们选择了目前使用的开放源码直升机飞行仿真软件,并且开发了适合目前系统的接口。

为了达到飞机的数学模型与实际直升机接近,需要由遥控手进行操作测试,比较两者之间操作性的差异,然后进一步修改模型。

模型的主要参数确定之后就可以将控制模块与仿真程序连接进行软件闭环测试。

相关文档
最新文档