分布式驱动的变体飞行器仿真系统设计与实现*
2012-06-13文哲远陆宇平
文哲远,陆宇平
(南京航空航天大学自动化学院,南京210016)
1 引言
自20世纪初美国的莱特兄弟研制出第一架飞机试飞成功以来,飞行器的发展突飞猛进,不但有了各种各样的外形,而且也飞得更高、更快、更灵活。即便如此,人类制造的飞行器仍然无法像鸟儿一样根据不同的环境而灵活改变自身的飞行状态,在空中自由翱翔。由于现代飞行器普遍采用固定的气动布局,针对一种飞行条件而优化设计,或者是针对几种飞行条件折衷设计,所以无法在多种飞行条件下都达到优化的气动性能。变体飞行器作为一种全新的概念,通过改变自身的外形,能够在不同飞行条件下执行多种飞行任务[1]。由于机翼是影响飞机性能的最重要部件,飞机的升力特性基本由机翼确定,因此对机翼的变形研究是变体飞行器的研究重点[2]。
采用分布式结构的变体飞行器结构重量轻,变形方式灵活,而且在部分驱动器发生故障的情况下也能使飞机具有足够的可靠性,故鲁棒性强[3]。要实现变体飞行器的控制,需要建立两层控制系统。位于内层的变形控制系统用于控制变形机构,实现变形控制。位于外层的飞行控制系统,用于控制飞行器的飞行状态,实现飞行控制[4]。
这里首先总结出分布式驱动的变体飞行器仿真系统的功能需求:①翼型控制功能,需要根据不同的飞行环境来自动选择合适的翼型;②气动数据存取需求,由于在线计算不同翼型在不同飞行环境下的气动数据需要消耗不少时间,因此需要建立数据库对气动数据进行存储与读取;③主程序与MATLAB之间的通信,VC程序需要与MATLAB中的飞行控制程序同时运行,之间有大量的数据传输;④与底层节点之间的通信,要将上位机的指令顺利发送到各个节点实现翼型控制,并能接收各节点之间的回馈数据;⑤变形翼形显示功能,为使用者实时显示变形效果。
根据以上要求,使用面向对象的软件开发技术开发出一套扩展性强、易于使用的分布式驱动的变体飞行器仿真系统。重点研究了如何从软件方面搭建分布式驱动的变形翼系统并进行变体飞行器的飞行仿真实验。
2 变形翼总体设计
变形机构的设计需要达到两个方面的目标,一个是翼型控制,主要影响飞机气动参数,使飞机能够在不同的飞行情况下始终具有优化的气动参数;另一个是机翼后端变形控制,使机翼后缘能够具有光滑的弧面形状,主要用于控制飞机姿态,用以替换现在飞机上广泛采用的舵面。
如图1所示,用于翼型控制的变形机构由伺服电机分布式驱动的20个智能节点组成的作动器数组。作动器安装在一块轻质薄板(可以将其看成一根梁)上,用以模拟控制机翼翼型中段部分的变化。翼型前后两端部分采取另一套机械机构来控制其前缘半径和后缘夹角以及后缘光滑连续的弯曲变形。
图1 变形翼系统示意图
智能节点之间用CAN总线连接组成网络结构。这样可以减少机翼中的布线,大大节省机翼内的空间,使飞机能携带更多燃油,并减轻了线缆重量,从而减轻了飞机的重量[5]。
飞机的翼型是由中央计算机根据传感器回馈回来的资料计算出来的,并由底端的ARM来对单个电机进行控制,同时用协同控制算法对多个电机的协调进行控制。中央计算机在实验情况下由PC机代替,并需要在PC机上编写上位机程序,实现半物理仿真系统的搭建。
3 上位机系统整体框架
变体飞行器仿真平台可分为四个部分:MFC框架、翼型控制模块、数据库模块、通信模块。
选择MFC(微软基础类库)作为上位机应用程序的基本框架。在此框架下,上位机程序包含了多个模块的功能:对不同环境下翼型的选择、与底层节点通信、存储和查询气动数据、与MATLAB程序通信、显示变形效果等。由于要实现飞机机翼变形的控制指令的发送以使机翼变成理想的优化形状,上位机需要发送各智能节点的位置指令;为了使各智能节点协同变形,需要发送同步指令。同时机翼上各节点处传感器周期性回馈给上位机的位置信息也需要在上位机上显示出来。
在MATLAB程序中,设计人员可以通过对各种飞行控制算法的仿真来验证变体飞行器飞行控制过程中的稳态性能和动态性能。此处由于机翼形状的变化导致飞机气动参数的变化,所以飞机模型设定为变参数模型。
不同飞行环境和状态下的模型具有不同的飞机模型参数,这些参数通过离线计算存入数据库中,并在仿真过程中从数据库读取出来。
作为一个平台,需要为MATLAB程序的仿真提供飞机模型的实时气动参数,并能将环境参数从VC程序中传递到MATLAB程序中。
4 上位机系统模块设计与实现
4.1 翼型控制模块
在飞机起飞和降落阶段、跨音速飞行阶段、超音速飞行阶段,需要不同的翼型弯度和厚度以达到各阶段的气动特性最优化[6]。
这就需要作为飞机控制中枢的机载计算机根据当前飞行环境和飞行状况来决定目标翼型。
在翼型控制模块中,综合飞机整体气动外形,根据当前各传感器回馈回来的飞行高度、马赫数、迎角等飞行环境和状态值来判定目标翼型。
由于在该仿真平台中无法由传感器得到当前飞行环境,故采取人工输入环境参数值的方式对当前的飞行环境进行设置。在人机界面中设置对话框来输入飞行环境变量,用于翼型控制模块对目标翼型进行判定。
翼型控制模块根据人工设置的飞行环境参数来判断最适合该飞行环境下的目标翼型。得到目标翼型后再与飞行环境综合,计算当前的各项气动参数以传递给MATLAB的变参数模型,用于飞行控制仿真。
在气动数据库中存放有各翼型的几何相对位置,翼型控制模块根据翼型名从气动数据库中搜索到翼型的几何相对位置后,转化成物理模型部分的目标绝对位置。通过调用与底层节点之间的接口函数,实现对底层节点的控制。
在当前的气动参数计算方法中,无论是CFD方法还是有限元分析方法都需要消耗大量的时间,然而机翼的变形过程是在较短的时间内完成的。由于当前的气动计算方法无法满足实时性的要求,又因为气动参数的计算本身就存在一定的偏差,所以采用查询方法来快速得到近似的飞机模型气动参数。
4.2 数据库模块
变体飞行器的半物理仿真平台采用关系数据库SQL Server来实现简易的数据库功能。鉴于查询时间相较于运算时间较短的优势,最终决定选用数据库模块来获得实时的近似气动数据。
需要保存的数据有:气动分析信息,气动导数信息和翼型相对坐标。对数据库的操作有:保存、修改、插入、查询和删除翼型气动信息。
在SQL Server数据库中编写了变体飞行器仿真平台的三张表,用于存储不同飞行环境变量下的翼型和气动数据,它们的关系如图2所示。其中Aero-DeriID和AirfoilName分别为表AeroDeri和表Airfoil的主键,表AeroAnal(气动分析表)具有外键Aero-DeriID和AerofoilID,分别引用表AeroDeri(气动导数表)和表Airfoil(翼型表)。
图2 气动数据库关系图
表Aerofoil中的数据相对坐标是以弦长为1的机翼剖面几何位置数据。由于翼型库中的几何位置数据不一定含有所需点的位置数据,需要计算出所需点的位置数据,此处选用自然三次样条插值算法计算出所需数据。翼型控制模块根据飞行环境决策出实时翼型后,从该表中查询到几何位置参数,并将其转化成绝对位置数据供翼型控制模块发送给底端节点。由于所搭建的平台中采用查询气动数据库的方式得到飞行器变参数模型的各项实时气动导数,需要先使用其它气动导数计算软件计算出不同飞行环境下的气动导数。此处选用DATCOM软件对气动导数进行计算,并将计算好的气动导数连同飞行环境数据一同录入数据库。因为在特定的飞行环境下选用特定的翼型,所以数据库中并不需要存储每种翼型在各种飞行环境下的气动导数,这样大大减少了数据库中的条目从而减少了数据库所占空间和查询时间。该数据库在使用过程中不需要经常进行插入、更新、删除记录操作,所以可以考虑为其创建索引。为数据库创建复合聚集索引,可以使数据库输入数据时自行为输入的数据进行排序,同时索引可以加速数据的检索。
4.3 通信模块
通信模块包括平台与MATLAB程序之间的通信和与CAN总线之间的通信两个部分。
4.3.1 与MATLAB程序的通信
仿真系统是一个VC程序与MATLAB程序同时运行的系统,VC程序作为一个平台,需要与MATLAB程序进行通信,为MATLAB程序中的飞机模型提供实时变化的模型参数,并将给定的环境参数实时导入MATLAB中。MATLAB程序利用环境参数和变参数模型,可以实时进行飞行仿真,得到实时飞行状态,并能判断变体过程中飞行器的稳定性。为此,在上位机软件平台中建立了两个线程分别用于发送与接收数据,并利用临界区来进行线程同步。平台利用变参数模型得到的仿真结果与常值参数模型下的飞行仿真结果相比较,可以看到变体飞行器对飞机气动性能的改善。
4.3.2 与CAN总线的通信
由于机翼上的作动器数量众多,需要设计相关的协议与CAN之间进行通信。CAN总线之间通信的最终目标是利用CAN总线的优势使在通信线路上的数据包尽可能的少。这就需要尽可能的利用好CAN总线数据包中的数据段使其包含多个结点的数据,使一个数据包可以为几个智能结点所用。
表1 CAN标准数据帧格式定义
CAN总线协议仅定义了数据链路层和部分物理层,需要为其构建应用层协议。CAN2.0A协议规定标准帧ID为11位,其后还包括1位远程发送请求位RTR(置0),1位标识符扩展位 IDE(置0),4位数据长度段和数据段。
CAN报文为短帧报文,11位标准帧ID被分成了三段:高3位为保留位,接下来两位为模式位,低6位为编号位。数据段中的DATA1和DATA2均为双字数据类型,最多可以传送8个字节的数据。根据模式的不同,报文中的数据段包含的数据长度也不相同。在模式00中,报文的数据段主要用于传送上位机发送给每个智能节点的目标位置,此时需尽量包含多个节点的信息。为此将20个智能节点分为5组,每组4个节点。这样每个节点分配2个字节的数据长度,4个节点就充分利用了短帧报文的数据段。此外,帧ID为0x00表示同步帧。在模式01中,发送的是目标位置与当前位置的差值以及电机的当前速度,为位置和速度信息各分配4个字节的数据长度。在模式10中,与模式00对应,每个节点分配2个字节的数据长度用于存储位置信息分配4个字节用于存储速度信息,由于发送端是智能节点,所以数据段包含6个字节的数据。在模式11中,数据段不携带任何数据,该模式用于在系统初始阶段确定智能结点是否就绪。
5 半物理平台运行情况
基于MFC的人机界面(如图3所示)实现使用者与仿真平台之间的交互,采用对话框的模式。在对话框中设置当前的飞行高度,马赫数以及仰角等飞行环境参数和飞行状态参数,软件会自动选择合适的翼型并计算各节点的位置信息,通过CAN总线发送给各节点。智能节点协同变形的同时周期性的将当前位置回馈给上位机,上位机实时显示变形效果。同时,根据当前的翼型和飞行环境,查询气动数据库获得各项气动参数,通过与MATLAB间的通信接口传输给飞行控制程序,实现变参数模型下的飞行仿真。
6 结束语
根据分布式驱动的变体飞行器仿真平台的功能需求,搭建了为满足需求而开发的四个重要功能模块。在由20个智能体所组成的分布式驱动变形系统的基础上,建立了底层硬件系统与飞行仿真软件之间的连接,为不同的飞行控制算法提供了变形翼情况下的软件支撑。
图3 机载计算机监控接口
[1]桑为民,陈年旭.变体飞行器的研究进展及其关键技术[J].飞行力学,2009,27(6):5 -8.
[2]方宝瑞.飞机启动布局设计[M].北京:航空工业出版社,1997.
[3]吴俊,陆宇平,何真.基于微系统阵列的变形翼控制研究[J].传感器与微系统,2009,28(2):38 -41.
[4]陆宇平,何真.变体飞行器控制系统综述[J].航空学报,2009,30(20):1 -6.
[5]阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999.
[6]郦正能,等.飞机部件与系统设计[M].北京:北京航空航天大学出版社,2006.