文献标识码: A
DOI:10.16157/j.issn.0258-7998.2016.09.018
中文引用格式: 罗昌俊,马永一. 一种基于组件的风洞通用测控平台设计[J].电子技术应用,2016,42(9):69-71,75.
英文引用格式: Luo Changjun,Ma Yongyi. A design of component-based measurement and control platform for wind tunnel[J].Application of Electronic Technique,2016,42(9):69-71,75.
0 引言
风洞试验利用测控技术控制相应设备产生可控气流模拟飞行器绕流,并依靠测控技术获取飞行器所受到的气动力/热/载荷等多种气动特性数据,因而风洞测控技术是开展空气动力学试验的核心技术之一。风洞测控技术的发展对提升空气动力试验与研究能力、水平及质量效率有着决定性影响。
传统的结构化风洞测控软件存在可扩展性与重用性较差、不易维护、开发周期长、成本高等缺点,造成风洞测控软件平台通用化程度不高,各风洞之间测控软件差异较大,操作界面、数据格式及通信接口等各不相同,岗位培训工作量大,跨风洞人员交流困难,试验数据重复利用率差,风洞群的协同验证作用难以充分发挥。因此,使用结构化设计方法设计开发的测控软件设计已难以满足当前试验需求不断发展、试验技术日趋复杂、试验设备升级改造和软件平台规范标准的要求。
1 风洞测控软件平台通用化现状
为了进一步提高风洞试验效率和数据质量,世界一流的气动机构在风洞测控软件平台通用化方面开展了大量工作,其典型代表就是DNW开发的GAIUS(Generic Automated Integrated Universal System)系统。
DNW风洞联合体管理运营着德国和荷兰的12座亚、跨、超、高超声速风洞。这些风洞建设于不同时期,并且在未来几年内,这些风洞的测控系统都将达到设计使用寿命。为此,DNW为这些风洞统一研发部署了GAIUS系统[1]。系统模块设计如图1所示。
系统包括GAIUS总线、基于用户脚本的中控系统、用户界面接口、现场设备控制(含风洞设备控制及模型姿态控制)、数据采集、数据处理等功能模块。系统具有如下特点:
(1)封装性。系统将风洞测控系统底层及核心功能封装为基类,模块由基类派生,解决单一通用问题,并根据功能划分进一步封装为软件组件,隐藏具体实现细节,提供接口供风洞测控岗位人员及试验负责人灵活调用,这就使得试验任务承担人员等非专业软件开发人员能方便快捷地在通用基础平台上构建满足不同应用需求的测控程序。
(2)独立性。组件独立于编程语言,采用不同的语言编写的组件能在一起协同工作,并通过标准接口连接到GAIUS总线,组件与组件采用实时发布-订阅中间件RTPS实现通信,满足不同技术背景的专业人员对测控软件的开发需求。
(3)灵活性。可以对组件单独进行升级,改进完善原有的功能;对于设备升级造成的底层软硬件的修改,也只要保证提供的基类和组件对外界的接口不变,就不会影响原有应用系统的运行,具有良好的兼容性和灵活性。
基于组件的软件开发技术从根本上改变了软件的生产方式,与传统开发方法相比具有明显优势:首先,提高了软件重用率,通过标准的接口将现有代码进行包装,制作成可重用的组件,保护并继承了现有技术成果;其次,使开发的系统更加灵活,模块化程度高,模块耦合度低,更加便于维护和升级;最后,降低了对系统开发者的要求,更加易于学习和使用。
GAIUS系统减少了DNW在众多风洞上的重复投资,不同设备之间的操作人员交流变得更简单,设备的升级改造变得更容易,试验效率得以提高。据报告称,GAIUS系统的应用使DNW所属风洞试验效率提高约30%。
DNW风洞群GAIUS系统的研发理念对我国未来的风洞群建设具有重要参考价值。
2 基于组件的风洞测控软件平台设计
合理有效的软件体系架构设计有助于分析和描述系统的不同层次结构,简化软件系统的开发,既便于软件重用,又便于系统的扩展升级。
2.1 总体思路
本文提出的组件化测控软件基于面向对象思想并结合了组件开发的方法,将测控系统分解为一个软件框架和若干实现基本独立功能的模块,并将这些完成不同功能的模块都封装成组件的形式,根据实际的测试任务需求,在软件框架上选取所需的组件并加以装配,从而形成一个满足特定需求的测控系统。
2.2 层次结构
风洞测控软件平台主要有两个任务:一是为用户提供一个建立和操作测控系统的集成开发环境;二是接收用户提出的测控需求,完成系统的组装及风洞试验测控任务。因此,根据这两个任务,可以将整个测控软件划分为用户定制层和功能实现层两部分[2]。整体结构如图2所示。
2.3 组件划分
一个组件通常包含一个或多个逻辑上相关的类,合理地划分组件,有利于组件的复用和实现,以及系统的配置管理。组件粒度越大,其功能就越完善,独立解决某一类问题的能力就越强,但实现和理解组件就相对困难,重用难度加大;粒度越小,组件越易于复用,但管理组件等代价将增大,甚至大于复用带来的好处。划分组件时应从功能模块的完整性、高内聚和低耦合性等方面出发。本文根据风洞测控系统特性,依据重用原则、闭包原则、消息传送原则、分布式服务分割原则,对风洞测控系统的组件进行如下划分:
(1)用户定制层为风洞测控软件的上层,主要功能是用户根据其需求通过用户定制界面设置测控系统运行需要的各种数据信息,包括选择功能组件、确定输入参数等。当用户对系统定制完毕后,就会生成基于XML的定制信息表。然后,应用程序控制中心将定制信息表传递至功能实现层。当用户制定不同的功能时,通过在用户定制层给出的信息调用相应的功能实现层控件,实现整个软件系统的运行,还可针对不同的需求进行扩展。
(2)功能实现层为风洞测控软件的底层,负责接收并解析上层传递下来的XML定制信息表,实现底层数据间的传输以及发送控制命令,最后生成用户定制的系统运行界面。按照组件技术设计的观点,根据需要对系统要实现的功能进行分类和归纳,将功能实现层软件的主要操作封装在相应的类中,形成不同的功能组件库。应用程序控制中心根据装配信息,将用户选取的组件从库中调用出来并进行组合,从而构建出一个定制的测控软件系统。
2.4 组件接口与通信
组件划分后需要进行接口设计,它是组件设计的重要部分。一个组件接口是一组逻辑上相互关联的操作,这些操作定义了某类公共行为。接口是一组操作的规范,而非任何特定的实现。接口和具体实现的分离,使其具有较高的抽象性,提高了系统的复用能力,有利于系统的维护和扩充。接口设计要兼顾简单和实用性。组件的内部细节不应反映到接口中。接口与内部实现细节的隔离程度越高,组件发生变化对接口的影响就越小。
软件组件之间的数据交互采用典型的生产者-消费者设计模式进行设计,其中数据流的上游作为数据生产者,数据流的下游作为数据消费者。为了使组件设计更为简单,而把数据队列的管理放到数据消费者组件中进行,对外只保留添加数据的接口,如图3所示。
2.5 组件封装
通过对风洞测控软件功能模块进行组件封装,以服务的方式提供给任何需要该项功能的使用者,而使用者并不需要掌握实现某项测试功能的代码,只需知道其接口标准即可。
封装技术主要包括DLL(Dynamic link library)封装和COM(Component Object Model)封装。
DLL在Windows系统中占有非常重要的地位,是功能模块封装技术中最常用的实现技术之一。DLL是一种二进制代码,一经调试成功,任何开发语言只需遵循调用的函数说明即可调用它,如用VC++开发的DLL可被VB、JAVA等语言调用。
COM包含了DLL,按照COM规范实现的DLL可以被视为COM组件,它既可以被存在于同一台计算机上的应用程序调用,还可以被远程网络上的其他应用程序调用,目前应用得比较普遍的是ActiveX控件。
3 基于组件的风洞测控软件平台原型系统设计
将测控软件分解为若干个实现独立功能的组件,根据实际的风洞试验任务需求,选择所需的功能组件并将其组装起来,从而形成一个满足特定需求的测控系统。用户可根据其需求通过用户界面设置测控系统运行需要的各种数据信息,包括选择功能组件、确定输入参数,所有输入信息通过用户界面向控制中心传递,控制中心生成XML信息表,向功能实现层传递定制信息,将用户选取的组件从库中调用出来并进行组合,从而构建出一个定制的测控软件系统。
根据设计思路,试验中根据试验内容自动组织试验组件(各个控制系统)和试验流程,使系统实现全自动集成,当风洞需要在定总压定迎角定M数运转方式、定总压定迎角步进变M数运转方式、定总压定M数步进变迎角运转方式、定总压定M数连续变迎角运转方式、定M数定迎角变总压运转方式等运行方式中切换时,风洞测控程序的准备过程变得更简单容易,只要对相应的参数进行配置即可完成。统一的风洞运行参数界面如图4所示。
比如,采用定总压定迎角步进变M数运转方式开车,M=0.3、0.4、0.5、0.6、0.7、0.72、0.75、0.8。操作人员只需调用统一的开车参数配置程序,分别对总压、迎角和M数进行配置,而不需修改专业性更强的源代码,即可生成所需的完整的开车程序(图5、图6)。程序准备时间大大缩短,从而提高了试验准备效率。
4 结论
风洞测控软件采用面向对象设计思想和组件设计技术,将提高测控软件的开发速度和效率,提高程序复用率,缩短开发周期,降低开发成本,并打破传统测控系统的结构固定、功能单一等限制。这种设计思想使测控软件平台更容易维护和扩充,从而满足对于测控软件通用性、可移植性和可扩展性的要求,使现有设备和设施能够更好地满足更多更复杂的风洞试验的需求。
参考文献
[1] Detlef Krack.The generic automated integrated universal system(GAIUS) for wind tunnels,German-Dutch wind tunnels DNW[C].Seattle:AIAA Aerospace Conference,2009.
[2] 赵海源,王丽芳,蒋泽军.基于组件化思想的测控软件开发平台设计与实现[J].电子设计工程,2013(21):82-83.