LabWindows/CVI虚拟仪器编程语言的飞行模拟器
时间:2023-09-29 10:36来源: 作者: 点击: 次为了满足基于教学工作过程需要,凸现航空特色,创设集“教、学、做”一体化的教学情境环境,开发了运5简易飞行模拟器设备,该项目以真实的运5飞机为载体,以/为开发环境,主要面向学生演示飞机的飞行的姿态(纵向、升降、倾向、俯仰、横滚和航向)以及飞行过程中各种仪器仪表的变化,使学生对飞机的飞行原理以及驾驶技术具有一定了解,使其在模拟器上完成简单的飞行操作。
1 系统结构
由于该模拟器仅用于教学,参观演示,仅涉及了飞机飞行过程一些飞机飞行过程中的必须设备和必须功能,因此,对模拟器简易化处理后,它主要包括仪表控制系统、操纵负荷系统和视景环境模拟系统,该飞行器控制系统用框图如图1所示。
1.1 操纵模拟控制系统
操纵模拟控制系统义称操纵负荷系统,是整个项目的核心,主要为飞行员提供逼真的座舱操纵感觉。座舱操纵感觉是飞行员移动操纵感觉时的负荷感觉,它受到操纵面偏转的影响,并由此产生操纵输入引起飞机的响应。操纵负荷系统分为操纵负荷装置和飞机操纵系统模型两部分。其中。操纵负荷装置用于产生实际的模拟器座舱操纵力;飞行操纵系统模型用于仿真给定条件下特定飞机操纵系统的各种力的形成。通过这两部分的集成,仿真实现所需的座舱操纵力,从而产生操纵力的感觉,这种感觉与飞行员在真实飞机中的体验感觉相似。
运5模拟器的操纵负荷系统采用电动系统。该系统包括两个主要的子系统:操纵负荷计算机子系统和操纵负荷装置子系统。前者用于计算飞机飞行操纵系统以及作动器控制回路的数学模型,控制器的输出提供驱动作动器通道的控制信号;而后者用于将控制信号转换为电动作动器的运动,驱动座舱操纵装置。
1.2 模拟仪表控制系统
运5模拟器仪表控制系统是运5模拟器的重要组成部分。该系统主要实现运5飞机在模拟飞行状态时。各个仪表在操纵系统作用下的指示,让操作者有身临其境的感觉。运5简易模拟器采用运5飞机上的真实仪表,座舱内基本保持运5飞机结构不变。整个仪表控制系统的驱动信号由模拟信号控制系统和气压信号控制系统构成,它结合视景及音响实时显示飞机的飞行姿态以及所处的高度等。
1.3 3D环幕视景仿真系统
3D环幕视景系统主要由两部分组成:一是舵通道图形处理系统,通过该系统处理高分辨率的视频文件或图片,在图形处理系统内部实现源文件的多通道分割,舵通道图像重叠,融合带的亮度调节、像素级的边缘集合校正、羽化处理。最后实现多通道无缝完整图像输出;二是3D多通道输出系统,接收到经图形处理系统处理过的源文件后,经过本身处理器件的2D、3D效果的多通道视频或图片。
整个系统从性能与方便性着手。在保证了完美融合效果的基础上简化了系统的控制过程,使整个系统更实用、更人性化。
1.4 系统硬件结构设计
整个模拟器以工控机为核心,运行信号均源于操纵负荷系统,操纵负荷系统分为操纵负荷装置和飞机操纵系统,如图2所示。其中操纵负荷装置可以产生实际的模拟器座舱操纵力,使升降舵、副翼和方向舵发生相对的运动,通过传感器对位移,角度进行测量。工控机对所收到的信号进行分析处理,通过以太网传给视景仿真计算机,使视景显示器显示相应的视景画面:工控机还将分析处理过的信号通过适配箱送往座舱仪表,驱动仪表显示相应的数值。
2 基于/的模拟器软件实现
2.1 LabWindows/CVl开发环境的选择
LabWindows/CVI是一个基于ANSI C的交互式可视化软件开发环境,是美国NI公司推出的面向仪器与测控过程的C/C++交互式开发平台。它将功能强大、应用广泛的C语言与测控专业工具有机地结合起来,利用其集成化开发环境、交互式编程方法、丰富的函数面板、强大的接口功能、丰富的库函数以及功能齐全的软件工具包,大大增强了C语言的功能。它将源代码编辑、强有力的仪器库、32位ANSI C编译、链接、调试以及标准ANSI C库集成在一个交互式开发环境中,极大地简化了图形用户接口的设计,同时为使用者提供了灵活的、内置式数据采集分析和显示功能。具有多种与硬件通信的方式,例如RS232,VXI等。同时,也可以建立TCP/IP通信机制。相对于VC、VB等其他开发工具,LabWi-ndows/CVI具有更强的硬件控制和数据分析处理能力,特别适用于各种测试、控制、故障分析及信息处理软件的开发,尤其是大型复杂的测控软件,可获得优良的测控性能。在LabWindows/CVI中,还加入了数据库和网络开发的软件包,使其能够满足超大容量数据的存储和大型分布式远程网络测控系统的开发。
鉴于以上LabWindows/CVI的优点,考虑到整个模拟器运行的信号都来源于操纵负荷系统,这便构成了以操纵负荷系统为主的测控系统。故本项目以LabWindows/CVI作为软件开发平台。
2.2 系统软件设计实现
2.2.1 软件结构模块设计
软件采用模块化、结构化的设计思想,提高了编程效率,增强了软件的可维护性和可扩展性。根据需要,系统软件模块设计了数据采集、执行控制与辅助三大模块,具体有以下9个部分。其整体结构如图3所示。