0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于仿真平台GL Studio实现虚拟仪表DLL的设计

电子设计 来源:电子科技 作者:石春虎,曲红星, 2020-08-30 12:17 次阅读

计算机辅助训练(CBT,Computer Based Training)系统是在世界航空业广泛应用的一种培训方式。直升机CBT系统主要用于实现直升机飞行员各项vwin 训练,包括通电检查、空域飞行、飞行中特情处理等。

直升机CBT系统主要采用计算机仿真、计算机控制和图像处理显示等高新技术,实现一个融图形、图像、文字、曲线、图表、声音为一体的多媒体仿真平台。它可以为飞行员提供多方位的信息流,充分发挥飞行员多感官接收信息、应用信息的能力。

直升机CBT系统的组成包括主控计算机系统、网络通讯系统、环境音响系统、座舱、航电及操纵系统、视景系统等。座舱、航电及操纵系统采用软硬结合的方法进行设计,座舱中仪表板和中央操纵台上的分立仪表均为触摸响应的虚拟仪表,用GL Studio进行虚拟仪表开发。座舱结构、座椅、飞行操作联动机构、驾驶杆、总距杆等均做成硬件结构,通过网络将硬件机构的控制信号传给主控计算机进行处理。

直升机CBT系统中的分立仪表有气压高度表、空速表、陀螺地平仪、综合显示器、多功能键盘、油量控制板等,下面将详细介绍虚拟仪表DLL的设计开发过程,以及在GL Studio中进行调用的方法。

1 GL studio开发平台简介

直升机本文基于仿真平台GL Studio,其是Disti公司为仪表仿真软件开发提供的一套系统解决方案。用户可以利用其图形交互界面以所见即所得的方式完成仪表面板的制作,通过其代码编辑器完成仪表内部的逻辑仿真。其代码生成器能够将用户的制作结果自动生成C++和Op-enGL源代码,用户既可以将代码进行单独编译,也可以嵌入到其他程序中进行编译,从而避免了大量繁琐的底层OpenGL开发过程。

GL Studio工程可以生产两种类型的文件:一种可执行文件.exe;另一种是可独立使用的文件即DLL。在用GL Studio进行直升机CBT系统中虚拟仪表开发的时候,各分立仪表都做成单独的DLL,将虚拟仪表的输入和输出接口定义为属性。在最后的主程序开发时,只需在GLStudio的图形界面上插入各虚拟仪表DLL,根据飞行模型的需要传递参数即可。GL Studio开发虚拟仪表DLL的流程如图1所示。

基于仿真平台GL Studio实现虚拟仪表DLL的设计

2 创建虚拟仪表DLL

2.1 制作纹理

制作纹理有多种方法,一般采用数码相机拍摄实物照片,然后运用图形编辑软件处理。获取高质量的实物照片是制作纹理的关键,所以在拍摄直升机座舱仪表照片时需要设置好背景,调节好光线,选取合适的角度。制作纹理时,将仪表照片经过图形编辑软件处理后保存为*.png格式。

在进行纹理制作的过程中,采用3D MAX和Photoshop制作仪表纹理非常方便。以直升机仪表中最常见的气压高度表为例,介绍仪表纹理的制作过程。

首先,在3D MAX中,创建一个圆柱体作为盘底,再创建一个白色的小长方体作为长刻度。调整好长方体大小,将旋转轴心设为表盘中心。选择工具中的阵列选项,设置好旋转角度为36°,阵列维数为1D,数量10,按确定。同理阵列出短刻度。对立体图进行渲染,保存为*.png格式。用Photoshop打开进行编辑,添加相应的刻度数字。这种方法制作出来的表盘非常美观,而且比处理仪表照片的效率高。

2.2 设计图形界面

设计图形界面即创建仪表模型,创建的模型分为静态模型和动态模型。以气压高度表为例,高度表盘为静态模型,仪表上的指针、旋钮、气压表盘为动态模型。

GL Studio设计器支持的所见即所得绘制方式,使开发仪表工作变得简单、直观。在GL Studio中进行绘制图形和添加纹理。纹理添加完毕后,注意调整各元件之间的层次关系,确定图形的正确显示。仪表界面的最终效果如下,给气压高度表每个独立的部件进行合理命名,以方便行为代码的编写。

场压选择旋钮的制作方法:在设计面板“Geometry”栏中,高亮“PBS”点功能键“Converts Selected to GlsKnob”创建旋钮。右击生成的旋钮,在“Knob”选项卡中设置旋钮转动的角度及连续性。

2.3 定义接口

气压高度表只有一个输入接口:气压值。最少只需要添加一个属性,Baro_hPa(),通过飞行动力学模型给该属性接口传值,单位统一为hPa。

2.4 编写行为代码

气压表左下角的旋钮为场压选择旋钮。仪表右边的气压表盘会随着场压选择旋钮转动指示设定的场压值。添加变量PBS_hPa,该变量记录设定的场压值。

(1)场压选择旋钮代码编写。

旋钮的位置范围为0~100,用来设定场压PBS_hPa,气压修正范围为950~1 050 hPa。在设计气压高度表的时候,假设初始场压在1 013 hPa。

》场压选择旋钮的初始化代码

self-》PositionVal(63.of);//旋钮初始位置设为63PBS_hPa=950.0+(self-》PositionVal());//63.0对应场压1 013 hPa

PBSDisc-》DynamicRotate(2.4 * self-》Posi-tionVal(),Z_AXIS);

//气压刻度盘初始旋转角151.2°,即1 013 hPa气压值所在角度

》场压选择旋钮回调函数代码

if(ObjectEventIs(ev,“PositionVal”))

{

PBS hPa=950.0+(self-》PositionVal());

//旋钮位置范围0~100,对应的气压修正范围为950~1 050 hPa。

PBSDisc-》DynamicRomte(2.4 * self-》Posi-tionVal(),Z_AXIS);

//气压刻度盘通过换算在0~240°逆时针旋转,与气压表盘950~1 050 hPa场压对应

}

(2)Baro_hPa()属性函数编写。

Baro_hPa()为输入接口,用来接收主程序传来的外界气压大小(静压)。3 000m以下,每升高12m气压下降133.3Pa。通过静压和旋钮设定的场压,即可算出直升机所在的高度。

》Baro_hPa()属性函数的行为代码

_baro_hPa=value;

float altitude=(PBS_hPa*100-_baro_hPa * 100)*12.0/133.3://通过静压和场压差算出高度

float alt_long=(float)fmod(altitude,1 000.of);

longNeedle-》DynamicRotate(-(alt_long*(360.0/1 000)),Z_AXIS);//长指针根据高度值大小旋转,1 000 m转动360°

float alt_short=(float)fmod(altitude,10 000.Of);

shortNeedle-》DynamicRotate(-(alt_short*(36.0/1 000)),Z_AXIS);

//短指针根据高度值大小旋转,1 000m转动36°

2.5 生成代码、发布DLL

选择菜单栏中code-》Generate All生成代码,在Microsoft Visual Studio.NET 2003中选择编译选项为Live Component Release,编译、连接,即可生成气压高度表DLL,在Licensed LiveComponent Release文件夹下可以找到生成的Barometric Altimeter.dll。

3 DLL的加载

3.1 插入虚拟仪表DLL

在程序中,有以下两种加载动态链接库的方式:隐式链接和显式加载。而GL Studio中对DLL的加载方式更加简便,程序员不需要了解底层的加载方式即可对DLL进行操作。

在工具栏中点击“j.jpg(Inserts a Component)”,选中需要加载的仪表DLL,即可将该虚拟仪表插入到GL Studio编辑器中。调整该虚拟仪表的大小,放到仪表板底板合适的位置。插入进来的虚拟仪表DLL实际上是一个类对象指针。

3.2 给虚拟仪表DLL传递参数

插入虚拟仪表DLL并进行合适的命名后,剩下的工作就是在Calculate()对该虚拟仪表的接口进行读写操作,即传递控制参数。

在GL Studio中,Resource()函数可以读写DLL的属性,这也是在创建虚拟仪表DLL的时候将所有输入输出接口定义为属性的原因。调用方式如下:

在总仪表板程序的calculate()中给各虚拟仪表DLL传递参数,以model_作为前缀的变量是根据直升机飞行动力学模型解算出来的值:

3.3 调试并完善

在项目后期联合调试和完善的过程中,如果需要对某个仪表的功能进行修改和扩充,只需要修改该虚拟仪表的程序代码,编译连接生成新的DLL。用新的DLL替换原有的DLL文件即可。

4 结束语

当CBT系统越来越逼真,每个虚拟仪表的设计也必然会越复杂。这时采用本文所介绍的方法,将各分立仪表做成单独的DLL。采用DLL编程可以使程序层次清晰,既细化了前期开发过程中项目的分工,又使得项目后期的修改和扩展变得简单方便,极大地提高了程序的可扩充性和可维护性。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 显示器
    +关注

    关注

    21

    文章

    4845

    浏览量

    139214
  • 计算机
    +关注

    关注

    19

    文章

    7089

    浏览量

    86818
  • 仿真
    +关注

    关注

    50

    文章

    3944

    浏览量

    132840
收藏 人收藏

    评论

    相关推荐

    直升机虚拟仪表分立仪表DLL设计

    检查、空域飞行、飞行中特情处理等。直升机CBT系统主要采用计算机 仿真、计算机控制和图像处理显示等高新技术, 实现一个融图形、图像、文字、曲线、图表、声音为一体的多媒体 仿真平台。它可以为飞行员提供多方位
    发表于06-10 05:00

    什么是全数字仿真平台

    全数字 仿真平台作为工业领域不可缺少的重要软件之一,除了可以与MATLAB或者Simulink集成外,还支持哪些优秀的功能?在了解新一代全数字 仿真平台SkyEye之前,先来学习一下什么是全数字 仿真平台
    发表于12-17 07:48

    什么是全数字仿真平台

    全数字 仿真平台作为工业领域不可缺少的重要软件之一,除了可以与MATLAB或者Simulink集成外,还支持哪些优秀的功能?在了解新一代全数字 仿真平台SkyEye之前,先来学习一下什么是全数字 仿真平台
    发表于12-21 06:42

    VR仿真平台在自动化仓储系统中的设计与实现

    针对自动化仓储系统的构建及运行特点,设计一种基于 虚拟现实(VR)技术的 仿真平台。阐述该 平台的设计思想和 实现手段,根据仓库运行方式的离散化,研究立体仓库堆垛机的路径优
    发表于04-11 09:01 12次下载

    GLStudio在飞机电抗虚拟地勤维护中的应用

    本文着重研究了某型飞机电抗系统 虚拟地勤维护过程中相关 仪表显示画面的 实现方法,运用 GL Studio 仪表
    发表于12-22 16:18 34次下载

    基于GLStudio的雷达显示器仿真

    探讨应用 GL Studio辅助开发 仿真雷达显示器。首先直接对所要显示的图形符号及数字静态建模,然后对其中需要动态变化的部分调用API函数进行实时驱动,最终 实现常规、偏心雷达平
    发表于12-27 15:46 0次下载

    三维虚拟仿真平台,三维虚拟仿真平台是什么意思

    三维 虚拟 仿真平台,三维 虚拟 仿真平台是什么意思 1. 概述 三维 虚拟 仿真平台旨在建设一个具有大
    发表于04-10 11:35 5899次阅读

    GLStudio的分布式虚拟训练系统关键技术

    为在 GL Studio实现分布式 虚拟 仪表的远程交互,对该 虚拟训练系统的关键技术进行研究。在分析
    发表于03-22 00:04 27次下载

    直升机虚拟仪表DLL设计方案

    采用 虚拟 仪表 DLL设计方法。利用 GL Studio开发工具进行 虚拟
    发表于12-14 14:56 34次下载
    直升机<b class='flag-5'>虚拟</b><b class='flag-5'>仪表</b><b class='flag-5'>DLL</b>设计方案

    基于GLStudio仪表面板开发及其应用

    事实依据。文章从 仿真建模到软件模块的 实现,较全面地介绍了一种专用 虚拟 仪表制作软件- GL Studio
    发表于11-15 15:37 11次下载
    基于<b class='flag-5'>GL</b> <b class='flag-5'>Studio</b>的<b class='flag-5'>仪表</b>面板开发及其应用

    数字信号处理虚拟试验仿真平台方案

    数字信号处理 虚拟试验 仿真平台方案
    发表于05-29 11:54 5次下载

    多尺度材料设计与仿真平台DeviceStudio介绍

    · · Device Studio(简称:DS)作为鸿之微科技(上海)股份有限公司(简称:鸿之微)研发的多尺度材料设计与 仿真平台,可 实现材料原子
    的头像 发表于06-12 15:56 2034次阅读
    多尺度材料设计与<b class='flag-5'>仿真平台</b>Device <b class='flag-5'>Studio</b>介绍

    仿真平台DeviceStudio应用实例

    Device Studio(简称:DS)作为鸿之微科技(上海)股份有限公司(简称:鸿之微)研发的多尺度材料设计与 仿真平台,可 实现材料原子级建模(百万量级)、高性能科学 仿真计算、
    的头像 发表于07-23 14:56 522次阅读
    <b class='flag-5'>仿真平台</b>Device <b class='flag-5'>Studio</b>应用实例

    新一代虚拟驾驶仿真平台

    概述随着智能驾驶系统功能的提升,驾驶员与智能驾驶系统之间的交互功能越来越多,测试的复杂度也越来越高。经纬恒润新推出的 虚拟驾驶 仿真平台,可以在实验室环境下提供逼真的 虚拟驾驶场景、真实的驾驶座舱环境
    的头像 发表于04-27 17:01 942次阅读
    新一代<b class='flag-5'>虚拟</b>驾驶<b class='flag-5'>仿真平台</b>