APP下载

基于MDA的虚拟仪表建模与仿真平台设计

2016-12-21刘旭东

泰山学院学报 2016年6期
关键词:图元仪表组件

刘旭东,张 亶

(1.烟台职业学院 信息工程系,山东 烟台 264670;2.浙江大学 计算机科学与技术学院,浙江 杭州 310027)



基于MDA的虚拟仪表建模与仿真平台设计

刘旭东1,张 亶2

(1.烟台职业学院 信息工程系,山东 烟台 264670;2.浙江大学 计算机科学与技术学院,浙江 杭州 310027)

目前,模拟器在现代教学与训练中得到了越来越广泛的应用,虚拟仪表成为模拟器研制中不可或缺的重要模拟组件,呈现高度化集成、综合化显示的发展趋势,如何快速地构建虚拟仪表仿真应用成为项目研制中的突出问题.本文以虚拟仪表的仿真为中心,基于MDA的思想,构建了虚拟仪表建模与仿真平台,并对平台中的基础性图元、设备图元、语义、类代码生成等关键性模型组件的设计实现方法进行了探讨.实际应用表明,利用该平台可快速实现虚拟仪表软件的开发,具有效率高、柔性强的优点.

虚拟仪表;模拟器;模型;模型驱动架构;建模与仿真

目前,在汽车、飞机等交通设备以及各类仪器中存在着大量的以常规技术表现的仪表、指示器以及具有高度集成性的综合显示设备等,这些显示终端为操控人员提供了直观的信息,辅助人员完成各类操作动作.

随着仿真技术的飞速发展,模拟器通常是辅助院校教学和实际训练的重要手段,如汽车驾驶模拟器可完成人员的各类设备熟悉,道路指示灯以及路标的理解掌握以及路上驾驶的学习等[1-2],设备拆装模拟器可保障职业类院校学员了解设备内部结构,拆装设备使用等.

在各类模拟器中,仪表、综合显示设备等画面的模拟已成为模拟器研制不可或缺的手段之一,通常对于显示设备的仿真有采用实装或仿真件、虚拟仪表[3-4]两种手段和方法.采用实装或仿真件对设备画面进行模拟具有逼真度高的优点,但较之虚拟仪表,存在着成本高昂、设备功能修改繁琐、可靠性相对低等方面的问题;采用虚拟仪表在成本上较之实装或仿真件具有明显的低成本优势,且在可靠性、可扩展性等方面具有一定的优势.但利用虚拟仪表进行设备画面的仿真,优势是对具有高集成度的综合显示画面的仿真具有以下几个方面的难点:

(1)综合显示画面高度集成、显示画面多样,仿真时工作量巨大.

(2)综合显示画面数据来源多个设备,数据间的交联关系复杂,设计难度大.

(3)综合显示画面中数据的产生通常由模型支持,各个模型设计涉及不同的专业门类,需要不同专业知识的人员进行协同开发.

模型驱动架构(Model Driven Architecture,MDA)作为一种基于模型驱动技术的软件开发框架,通过可视化的建模过程将平台无关模型自动转化为平台相关模型,有效简化了系统的设计与实现过程[5].本文主要围绕模拟器设计中虚拟仪表设计与实现开展相关的研究,综合运用计算机技术与图形图像技术,基于MDA和软件设计模式的思想,构建了虚拟仪表快速建模与仿真平台,使设计人员通过平台提供的各类图元、逻辑设计组件和可视化操作界面,快速构建与实装一致的虚拟仪表界面以及逻辑接口,

生成工程代码框架,领域专家将模型代码集成至代码框架,最终实现虚拟仪表的仿真.

1 平台总体结构

基于MDA的虚拟仪表快速建模与仿真平台采用组件模式设计[6],遵循“低耦合、高内聚”的软件设计思想,主要由集成开发框架、基础性图元模型组件、设备图元模型组件、语义模型组件、属性动态映射组件、类代码生成组件、操控逻辑组件、人机界面框架、代码框架组件及网络通信组件[7]组成,总体结构如图1所示.

图1 基于MDA的虚拟仪表建模与仿真平台总体结构

(1)集成开发框架:属于元模型层次,是系统底层基础性支撑平台,作为仿真系统设计的元类包,解决系统集成中的各种问题.

(2)基础性图元模型组件:实现对文字、点、线、面及图像等多种基础图元的绘制与放大、缩小、选择、移动及拖放等基本操作,是设备图元模型组件设计的基础,使设备图元模型组件的绘制和操作行为与具体的绘制引擎隔离,增强组件的可移植性,基础性图元组件基于桥接器的设计模式进行设计,同时支持OpenGL、GDI和GDI+三种绘图引擎.

(3)设备图元模型组件:基于基础性图元模型组件,通过调用基础性图元组件提供的各种图元和操作服务,实现仪表、综合显示画面中各种复杂图元的绘制与操作.该组件直接调用基础性图元模型组件提供的各种服务,而不与具体的绘图引擎交互,以提高其可重用性.

(4)语义模型组件:语义模型组件面向虚拟仪表中各个图元对应的具体设备,如汽车发动机转数表来源于发动机,车速指示器对应速度测量设备等,通过对上述各种设备的抽象,归纳各种设备的共性属性与行为,形成语义模型的属性和方法,并在建模平台中支持语义模型的扩展和语义模型的实例化,实例化的模型在建模过程中绑定至相应的图元对象.

(5)属性动态映射组件:主要包括本地和远程两类对象属性的动态映射,实现各类参数的同步更新,确保数据显示的正确性与实时性.实现设计中对于远程对象,采用远程对象本地化的策略,即对应远程对象在本地创建相应的对象与其对应,由网络通信组件确保远程对象和本地对象间数据的同步更新;本地对象由相应支持模型进行属性的更新.

(6)类代码生成组件:面向语义模型组件,生成语义模型的类代码.

(7)操控逻辑组件:完成虚拟仪表设备仿真过程中与模拟器内部设备操作逻辑的描述,其在建模过程中建立,并形成相应的状态转换配置文件.

(8)代码框架组件:以代码框架的形式提供给开发人员,开发人员将建模仿真平台生成的语义模型类代码、人机界面及状态转换配置文件集成入代码框架内的指定接口.

(9)人机界面框架:在各种组件的配合下,完成建模仿真平台人机界面中主窗口、工程树、图标、位图、对话框及属性页的设计,是直接与操作人员交互的接口.

(10)网络通信组件:基于面向对象的思想,对RTI、UDP等网络通信技术进行封装,在隐藏网络各个对象通信及事件交互细节的基础上,实现外系统与虚拟仪表设备间的数据交联.

2 主要组件设计与实现

2.1 基础性图元模型组件设计

基础性图元模型组件基于集成开发框架进行开发,是一套对基础性图元模型进行绘制和管理的图元组件,其通过对基础图元绘制和行为管理的封装,使得设备图元模型组件的绘制直接调用其接口完成,而不必关心其采用的绘制技术,主要提供以下服务:

(1)基本图元绘制:包括文本、点、线、面及图像的绘制及属性设置.

(2)图元行为管理:图元的选择、缩放、平移、旋转、矢量点调整、聚合及解聚等.

(3)图元管理:实现对图元对象的管理,包括增加、删除、修改和查询等操作.

为了使得基础性图元模型组件能更大限度地兼容不同的绘图引擎,同时在设备图元模型组件上对实现技术进行隐藏,保持上层接口的一致性,在组件设计中采用了桥接器模式进行设计,通过基础图元模型包对GDI、GDI+和OpenGL三种绘图技术进行封装,通过该设计方法,一方面可以实现接口与实现部分的分离,另一方面可提高组件的扩充性.其中,基础图元模型包提供绘制各种基本形状的虚函数接口,其具体的绘制行为由基于GDI的图元模型绘制包、基于GDI+的图元模型绘制包及基于OpenGL的图元模型绘制包依据不同的绘图引擎完成.基础图元模型包设计实现如图2所示.

图2 基础图元模型包设计

(1)基本图元模块:包括图元模型基类、文本图元、图像图元、圆与椭圆图元、线条图元、多边形图元等基本图元的绘制和行为操作.

(2)画布:实现对图元的管理和画布的设置及图元行为的管理.

(3)基本数据结构:用于支撑基本图元模块和画布设计.

2.2 设备图元模型组件设计

设备图元模型组件主要面向虚拟仪表显示中的各类复杂图元,基于基础性图元模型组件提供的各类基础服务,实现对复杂图元的设计实现,设备图元模型组件设计如图3所示.

由图可以看出,设备图元模型主要包括设备图元和图元行为两个部分,设备图元的绘制不与特定的图元绘制引擎产生任何形式的关系,主要是通过利用基础性图元组件提供的点、线、面和图像等基础性绘制服务,通过图元间的复合生成,同时,绘制的设备图元又可以作为基础图元进一步复合,生成更加复杂的设备图元;图元行为主要是通过对基础性图元组件定义的移动、缩放、旋转、变量映射等行为的继承与扩展,形成设备图元所特有的行为.

图3 设备图元模型组件设计

图4 语义模型组件设计

2.3 语义模型组件设计

语义模型组件是面向具体仿真的虚拟仪表设计而定义的一套模型组件,该组件通过定义统一的父类及模型处理所需的接口函数,为设备数学模型的设计提供了一致的接口调度模式,包括模型初始化、模型退出、模型解算等调用接口,设计人员在进行各类模型组件的开发时,主要是在定义的父类模型类的基础上进一步扩展,形成所需的设备模型组件.同时,系统定义了部分默认的模型组件,如发动机类、速度测量设备类等,设计人员也可在默认的模型组件基础上进一步扩展.系统运行后,模型组件内各个接口由系统自动调用.语义模型组件设计如图4所示.

设备基类提供的接口主要包括:

(1)OnInit:初始化接口,设备实体创建后调用,用于实现对成员变量的初始化操作.

(2)OnTick:仿真过程中周期性回调接口,用于仿真数学模型的解算.

(3)Output:仿真过程中周期性回调接口,用于发布对象数据.

(4)OnQuit:设备对象删除后调用接口,用于对象内存释放.

(5)ClassInit:静态成员函数,完成本地变量的属性注册.

2.4 类代码生成组件设计

类代码生成[8-9]组件完成用户在建模仿真平台下依据仿真系统需要在语义模型组件下扩展的设备模型类代码,并依据属性动态映射组件的需求,结合集成开发框架提供的服务,实现对属性变量的自动注册.类代码生成组件结构如图5所示.

图5 类代码生成组件设计实现

类代码生成组件在已建立的语义对象模板的基础上,根据用户扩展的设备类的属性和方法,在模板中查询属性标识符CodeMapping-Attribute和CodeMapping-Method,将用户定义的设备类属性和方法添加在相应的标识符内,并在ClassInit函数中对属性进行注册,供属性动态映射组件使用.

属性标识符结构:

//CodeMapping-Attribute-Start

//CodeMapping-Attribute-End

方法标识符结构:

//CodeMapping-Method-Start

//CodeMapping- Method -End

3 系统设计流程

基于平台进行仿真应用开发的过程如图6所示.主要过程包括建模、软件设计及生成可执行程序3个部分.

图6 仿真应用开发过程

(1)建模:依据实际的原型系统,基于虚拟设备建模仿真平台完成.

人机界面设计:以可视化的方式在建模仿真平台建立原型系统所需的各种人机交互界面,并生成人机界面配置文件;

状态转换逻辑设计:依据设计的人机界面和实际系统的状态转换逻辑,在建模仿真平台上设计系统的操作逻辑,并形成状态转换配置文件;

语义模型设计:根据原型系统的实际,生成所需的设备类,并对其属性和方法进行设计,生成所需的类模板;

属性动态映射过程设计:依据语义模型的设计,在生成类模板时自动对属性变量进行注册.

(2)软件设计

虚拟仪表系统通用框架:将生成的设备类模板植入代码框架组件;

代码设计:植入领域专家的算法、模型.

(3)编译生成可执行文件:通过编译器生成仿真系统的可执行文件.

4 运行效果

基于MDA的虚拟仪表建模与仿真平台运行效果如图7所示.由图可以看出,系统可视化界面主要由四个部分组成,左侧为系统设计区,包括设备图元设计和设备模型设计等两个部分,用户可在相应的树节点派生自身需要的模型;中部上方为可视化建模区,用户在该区域完成虚拟仪表界面的设计工作,并形成图元脚本配置文件,如图8所示;中部下方为操作信息提示区,该区域主要对用户的操作步骤进行记录及显示,为用户建模过程提供辅助支持;右侧区域为属性设置窗口,用户通过该窗口实现模型参数的定义,同时完成设备模型与图元模型间交联关系的建立.

图7 平台运行效果图

图8 图元脚本文件描述示意图

由图可以看出,基于MDA的虚拟仪表建模与仿真平台主要面向模拟器中虚拟仪表系统快速设计,设计人员可通过可视化的手段对虚拟仪表系统进行建模,并将建模成果直接反映到软件系统中,形成仿真软件的总体框架,后期通过丰富后的数学模型即可生成所需的仿真应用.

5 结束语

本文针对模拟训练系统虚拟仪表设计中存在的图元数量繁多、交联关系复杂、专业门类多等特点,通过对平台技术架构及设备图元模型、语义模型、属性动态映射、类代码生成等关键技术的研究,设计了基于MDA的虚拟设备快速建模与仿真平台.通过该平台可有效地将系统设计师、软件设计师、领域专家的工作进行分离,使得不同的设计人员更多地关注于自身的领域,提高了系统仿真的效率,为虚拟仪表的仿真提供了一种新的手段和方法.同时,该平台可应用于汽车、飞机等平台终端显示界面的早期设计验证中.

[1]吴晓瑞,吴志周.汽车驾驶模拟器在交通安全中的应用综述[J].交通信息与安全, 2015,33(2):10-16.

[2]卢停,韩文涛,苏杰.基于驾驶模拟器的驾驶员操作技能测评研究[J].科技创新导报, 2009(34):250.

[3]邱伟龙,陈国兴.飞机虚拟仪表建模仿真关键技术研究[J].飞机设计,2014,34(3):49-54.

[4]徐君明,赵红超,李国林,等.模拟训练系统中虚拟仪表设计的方法学研究[J].航天控制, 2010,28(6):72-76.

[5]李智,庞柳,刘国源,等.一种模型驱动的软件需求分析方法及技术支持[J].广西师范大学学报(自然科学版),2013,31(2):19-25.

[6]麻志毅,刘辉,何啸,等.一个支持模型驱动开发的元建模平台的研制[J].电子学报,2008,36(4):731-736.

[7]戚铁林,李亚芬,王普.MDA模型转换平台中模型转换方法研究[J].计算机工程与设计,2011,32(1):202-205.

[8]王斌,王丽芳,蒋泽军,等.平台无关模型可视化建模的研究与实现[J].现代电子技术,2011,34(8):75-78.

[9]李强,周庆忠,张仁平,等.模型驱动架构与HLA系统接合方法[J].计算机系统应用,2010,19(8):92-94.

Design of Virtual Instrument Modeling and Simulation Platform Based on MDA

LIU Xu-dong1, ZHANG Dan2

(1. Department of Information Engineering, Yantai Vocational College, Yantai, 264670;2. School of Computer Science and Technology, Zhejiang University, Hangzhou, 310027, China)

At present, simulator has been used in modern teaching and training widely. Virtual instrument is an important assembly in the development of simulator, appears the trend of high integration and synthetic display. It is an outstanding problem how to develop the virtual instrument application rapidly in the project development. The paper develops the modeling and simulation platform of virtual instrument based on MDA around the virtual instrument simulation. Key modeling assembly has been discussed in detail, including basic graphic elements, device graphic elements, semantics and class code generation as so on. The platform has been applied in the actual project, can develop the application of virtual instrument rapidly, and has advantage of high efficiency and strong flexibility.

virtual instrument; simulator; model; MDA; modeling and simulation

2016-08-25

浙江省高技能人才培养和技术创新活动计划项目(2013R30056);烟台职业学院校企合作项目(2015yzxq001)

刘旭东(1976-),男,山东龙口人,烟台职业学院信息工程系副教授.

TP311.5

A

1672-2590(2016)06-0058-07

猜你喜欢

图元仪表组件
◆ 仪表
无人机智能巡检在光伏电站组件诊断中的应用
仪表
学术出版物插图的编排要求(一):图注
联锁表自动生成软件的设计与实现
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
热工仪表自动化安装探讨的认识
奔驰E260车行驶过程中仪表灯熄灭
电气CAD接线图快速转换G图形的技术应用研究