微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > LabWindows/CVI虚拟仪器编程语言的飞行模拟器

LabWindows/CVI虚拟仪器编程语言的飞行模拟器

时间:08-09 来源:互联网 点击:

理能力,特别适用于各种测试、控制、故障分析及信息处理软件的开发,尤其是大型复杂的测控软件,可获得优良的测控性能。在LabWindows/CVI中,还加入了数据库和网络开发的软件包,使其能够满足超大容量数据的存储和大型分布式远程网络测控系统的开发。

鉴于以上LabWindows/CVI的优点,考虑到整个模拟器运行的信号都来源于操纵负荷系统,这便构成了以操纵负荷系统为主的测控系统。故本项目以LabWindows/CVI虚拟仪器编程语言作为软件开发平台。

2.2 系统软件设计实现

2.2.1 软件结构模块设计

软件采用模块化、结构化的设计思想,提高了编程效率,增强了软件的可维护性和可扩展性。根据需要,系统软件模块设计了数据采集、执行控制与辅助三大模块,具体有以下9个部分。其整体结构如图3所示。

1)数据采集模块 负责各种标准信号的采集,按通道传送给显示、存储模块,并对输入的波形信号进行同步,其中还包括硬件的初始化和采集参数的设置。

2)数据存储模块 按照规定的格式将采集到的数据存入数据库。

3)数据显示模块 根据不同的需要实时显示模拟器航姿、仰角等参数以及波形、轨迹和各种谱图。

4)数据分析模块 将采集回来的数据进行分析,和预设的数据相比较,进而算出调节量。采用的数据分析方法有:时域分析、频域分析、相关分析、回归分析、数理统计、趋势分析和高级分析等。

5)仪表驱动模块 将控制数据发送至通道,产生各种调节仪器的控制命令。

6)文件管理模块 提供数据输出、报表打印以及历史查询。

7)数据库管理模块 实现对数据库中各类数据进行有效的管理,同时存放检测数据和结论,根据检测内容做出记录表单。

8)报警模块 系统出现故障时报警,显示故障类型并启动保护措施。

9)TCP通信模块 完成3D视景系统之间的通信。

运5操纵负荷系统仿真系统采用该软件进行设计,其流程如图4所示。

  主程序完成初始化后,调用权限操作、采集、视景通信模块、控制(仪表驱动、操作机构、俯仰控制)等模块。并随时响应串口和键盘中断。为防止干扰,采集模块采用多次采集,去掉最大和最小数据,取平均值的方法。经采集所取得的数据经由存储模块和显示模块存入数据库并显示于面板,需要的时候可以通过数据库管理模块和文件管理模块进行查询和打印。另外,根据采集的数据信息便可通过仪表驱动模块完成操纵机构、俯仰控制等功能。

2.2.2 软件编程中的关键模块

1)俯仰控制模块 函数int ComWrt(int COMPort,charbuffer[],int count)通过串口COMPort向变频器发送控制命令,命令数据存储在存储器buffer[]中,数据长度为count字节。控制变频器的运行、停止、正/反转。

函数void CRC_WrtFre(int FRECOM,unsigned int DValue,unsigned FreAdr,int Length_CRC)设定变频器的工作频率。通过串口FRECOM向变频器发送工作频率值Dvalue。

调用:

2)操纵机构控制模块 函数double sensor_com(int ID);功能说明:向传感器发送读取数据命令,读取和存储传感器输出的原始数据,并计算出传感器的位移量。计算方法为:

3)仪表驱动控制模块 函数void da_send(int corn,intkahao,int channel,double da_sendata)用来发送电压表所需的电压值;函数double AD24(int COM,int CardID,int way,double*Val)用来采集电压,对于需要采集的电压进行采集并将其显示在面板上;函数void Relay(int comport,int cardlD,intchanelNum,char ctrldata[17])用来控制继电器的通断状态;函数void YB_High(double sjd_A)根据升降舵的变化来控制高度表和升降速度表的指示,其中YB_High为函数名,sjd_A为升降舵值;函数void YB_Airspeed(double ymg_V)根据油门杆来控制变频器的频率;函数void YB_Qhq(double Value)和void YB_Pq(double Value)分别是汽化器温度表和排气温度表的驱动函数,驱动变量为副翼;函数void YB_Wxdhizh(double Value)用来驱动无线电高度表,其中YB_Wxdhigh是函数名,Value为油门杆位置;函数void YB_Sy(double Value)三用表的驱动,其中YB_Sy为函数名,Value为油门杆位置;函数void YB_Dq(double Value)驱动大气温度表,其中YB_Dq为函数名,Value为油门杆位置。

4)视景音响控制模块 函数void calculate()根据3个舵面和油门杆的数据计算视点位置的x坐标、y坐标、z坐标、俯仰角、滚转角、偏航角;函数void(*InitNet)(int fig),函数功能:初始化网络。初始化包括IP地址,端口号等信息;函数void(*SendFlightData)(int *)向视景计算机传送数据。

函数void(*CloseNet)(int fig)用于关闭网络;函数void(*ChangeData)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top