以VC++为基础导航控制台仿真软件的开发研究

(整期优先)网络出版时间:2018-06-16
/ 2

以VC++为基础导航控制台仿真软件的开发研究

白强崔胜彪

(零八一电子集团有限公司,四川省广元市628017)

摘要:在无人机自主飞行当中,无人机地面站的导航控制系统发挥着重要作用。本文将编辑状态下导航控制台仿真软件的开发作为着重点,平台为Windows操作系统,借助VisualC++这一工具来进行开发,并对其功能作一论述。

关键词:VC++;导航控制台;仿真

伴随无人机在各领域中的广泛应用,控制系统各项功能在新技术的推动下,日渐完善与发展。在整个无人机系统当中,地面站作为其“神经中枢”,由传输系统、导航台及飞行控制台等构成。整个系统借助高速网卡、集线器对导航控制台进行有效控制,并连接于外部的监测机。如此一来,便能够使将飞行控制台与导航控制台充分连接起来,实现数据共享。针对导航控制台来讲,其乃是整个地面站导航系统当中的核心部分,主要借助其来对飞行控制台所发送的数据进行接收,以此来为无人机提供导航。本文基于VC++技术,就导航控制台仿真软件的开发策略作一探讨。

1.明确经纬度信息,规划于存储航路点

1.1明确经纬度信息数据

为了提高飞行的准确性,明确经纬度信息尤为重要。此导航台的导航地图所选用的是某城市的电子地图(1:500000),且用位图格式(*.bmp)。依据此城市的经纬度信息。首先,以VC++为基础,构建一个MFC工程,且于view文件的头文件当中的2个浮点类型的公共变量X0与Y0,将其当作基准点的经纬度坐标,且将其初始值设定为Y0为38,X0为116。得出latScale、longScale这两个变量,然后用于代表地图打开时经纬度的具体范围。其中,事先设定好的地图打开范围为X方向的最大打开范围为120km,Y方向为90km。基于view文件的头文件中,设置一个对象oomrc(CRect类)。因需显示经纬度信息,因此,需要转换地图坐标与视图坐标,最后,利用响应WMMOUSEMOVE句柄,同时借助状态条指针CStatusBar*pStatus,从中得到经纬度信息,最终便能在状态栏位置,将经纬度信息显示出来。

1.2规划与存储航路点

在整个导航控制台中,航路点的规划部分为其核心构成,对于无人机航路规划而言,依据任务目标规划,来最大程度满足约束条件的飞行轨迹,规划的最终目的时在比较合适的时间内,将最优的飞行轨迹给计算出来。因鼠标移动便能于状态栏下,观察到经纬度信息,因此,在地图上,可通过鼠标操作,来规划航路点,如此一来,便能够提升系统的可操作性。针对航路点的规划部分而言,其有如下步骤:其一为画航线,基于view文件,从中借助Ondraw部分,通过对设备类指针CDC*pDC进行定义,来对其LineTo、MoveTo进行调用,将航线画出来,然后利用画笔(白色)、画刷(红色),所产生的航路点为红色圆形背景,最后,通过操作鼠标,在视图中进行航路点的规划。其二,结束画线,借助view的头文件当中,设置公共变量startdrawline(bool类型),用其对画线是否执行加以控制。若是真,则表明开始画线,若是假,则表明画线结束。因此,在WMRBUTTONDOWN得到响应后,把此值设定为假,也就是结束画线。在操作过程中,便能点击鼠标右键,画线结束。

2.基于VC++下实现分隔视图即嵌入仪表

2.1实现分隔视图

为了能够对飞机的飞行施加准确控制,在设计过程中,特别加入了仪表显示。基于VC++的技术支撑下,借助分隔视图来最终达成。本文分别对两个可浮动且能够变换大小的控制窗口进行了设计,分别位于左边与下面。对于左边部分来讲,其用于仪表盘的显示,而下面则用作操作仪表的显示,游标用作导航地图窗口的显示。在此工程文件当中,添加了两个*.cpp文件,并且在stdafx.h文件当中,还根据实际需要,加入了#include"scbarg.h"与include"sizecbar.h",此事,便会有一个CCoolBar类产生。

2.2嵌入仪表

当将分隔视图创建好之后,需于左侧,将仪表嵌入,然后将能够操作仪表的按钮嵌入。利用GLStudio软件来完成仪表创建,针对此软件而言,其实为一个带有一定独立性的快速原型工具,主要用作三维、实时的图像界面的创建。其可以连接于LA/DIS仿真应用;另外,其所生成的OpenGL与C++源代码,能够单独运行,还能根据实际需要,将其嵌入到其它应用当中。本系统的界面要对真实飞机坐舱当中的各种显示仪表进行模拟,所以,在该系统当中,制作了航向表、高度表、地平仪与速度表,完成制作后,将其集成于一个可执行文件当中。在VC++的程序当中,仅需将嵌入仪表启动便可。

3.飞控台与导航台之间的通信

飞行控制台将飞行器的位置信息发送至导航控制台,其内容主要为高度、经纬度信息、航路点等。对于导航控制台来讲,其将此些信息处理后,将导航指令解算出来,且借助TCP/IP网络,向飞行控制台发送。针对此时的飞行控制台来讲,会把所接收到的此些指令数据与飞行控制指令相结合,借助UDP协议,向传输系统发送。因此,基于飞行控制台与导航控制台之间的通信来讲,尤为重要。本文仅将导航台不仅是客户端而且还是服务器端的情况给显示出来,即自发自收情况。在对航路点进行设置的对话框当中,将网络编程部分的按钮加入,且将编辑框加入。相似于普通的网络编程,均以TCP/IP协议为基础,且选用基于C/S模式下的新型套接字编程,需要指出的是,客户端与服务器如果为自身,那么在网络通信时,其中的监听部分需进行线程控制,且在此线程当中,主要对接受部分的内容施加控制,把发送部分的内容输入到既定的按钮当中。

4.结语

综上,设计此导航控制台仿真软件,可以较好的满足编辑状态下的各种功能,为地面站相关操作人员工作提供方便,使其更好的规划航路点,且进行修改,并存储数据;除此之外,还能实现与飞行控制台之间的数据共享,以此来更好的操作仪表,更加准确、及时的控制飞机飞行。

参考文献

[1]罗广孝.基于VC++的模拟集成电路设计实验仿真工具开发[J].实验室科学,2007(6):89-91.

[2]陈启香.基于VC++的计算机联锁系统仿真软件的研究[J].自动化与仪器仪表,2016(3):177-180.

[3]陈泽强,崔颖昕,曹叶文.基于VC++的通信原理实验仿真软件设计[J].计算机应用,2001,21(2):23-25.

[4]万三国,史天录,刘跃辉.基于VC++机械手仿真控制系统的设计[J].机电信息,2012(18):152-153.

作者简介:白强(1975.11-),男,四川省江安县人,当前职称:工程师,学历:本科,研究方向:计算机科学与技术,科研项目管理。