基于嵌入式系统和虚拟现实技术的制导律仿真平台设计与实现*
2018-12-21王欣,郭鑫,刘旭
王 欣,郭 鑫,刘 旭
(沈阳理工大学装备工程学院,沈阳 110159)
0 引言
制导律的设计是导弹制导与控制系统设计中的重要组成部分,其性能的优劣直接决定着导弹的制导精度。而制导律仿真是针对设计出来的制导律进行相关特性的验证[1]。
工程实践中的制导与控制系统都是采用嵌入式系统来实现。嵌入式系统包含了嵌入式软件和嵌入式硬件两层概念[2]。虚拟现实技术是仿真技术和计算机图形学最新成果的结合。可以实现飞行模拟、虚拟现实等,为人们创建一种逼真、实时的虚拟三维世界,近年来在人机交互技术中具有良好的前景[3]。
文中从导弹制导系统的工程实践出发,有机结合嵌入式系统技术和虚拟现实技术,设计了一种虚拟的导弹制导过程的仿真平台。该仿真平台中的制导律采用嵌入式系统平台进行设计和解算,三维虚拟视景仿真界面在虚拟现实系统平台上设计完成,两个系统平台之间采用串口协议进行数据通信。其中,嵌入式系统平台采用VxWorks5.5和MPC8247的软硬件组合设计,虚拟现实系统平台采用MultiGen Creator和Vega Prime进行三维虚拟视景仿真设计。因此在嵌入式系统平台上就可以根据实际情况设计实现不同的制导律,而虚拟现实系统平台就可以通过串口接收制导律的数据,进而在通用计算机的显示器上显示出虚拟的导弹制导过程。有利于直观的验证导弹制导律设计的正确性。
1 仿真平台框架结构
根据使用者自身的角度和行业特点的需求,实现虚拟现实技术的软件发展了很多种,如virtools、Vega prime、OpenGL、GLStudio、OSG等。其中在目前军事环境仿真中,由Multigen-Paradigm公司开发的Creator和Vega软件组合应用较多,Creator用来实现三维场景的建模,Vega则实现三维场景模型的实时渲染,从而动态实现虚拟场景。
相关资料显示,在国内对导弹或飞行器的制导仿真系统主要通过API编程方式,在Vega软件内部实现。但在工程实践中,导弹制导与控制系统主要的核心是弹载计算机,而弹载计算机系统使用的嵌入式系统,则在通用计算机上实现导弹制导过程仿真是存在一定的兼容问题。针对这个问题,文中首先在嵌入式系统平台上完成对制导系统实现,然后采用虚拟实现技术在通用计算机平台上显示虚拟三维动画。
图1 仿真平台结构图
图2 MPC8247内部模块结构图
图1是文中整个仿真平台的框架结构示意图,左侧红色虚框为嵌入式系统平台,嵌入式硬件应用MPC8247处理器,嵌入式操作系统为VxWorks5.5操作系统。该平台主要实现制导律的设计与解算,并把解算结果(指令加速度)通过串口方式传输给右侧红色虚框的虚拟实现系统平台。文中虚拟现实系统平台通过Creator和Vega Prime开发设计,实现三维视景环境,主要实现对导弹制导过程及战场环境的虚拟三维显示,完成嵌入式系统平台传输的制导律;并把其参数输送给导弹模型,驱动导弹沿着预期的轨迹,从而实现精确攻击目标。
2 嵌入式系统平台设计
2.1 硬件平台
目前嵌入式硬件平台已经发展了很多种,根据内核不同可以分为不同的平台,如ARM、PowerPC、MIPS等。考虑到军工背景,文中采用型号为飞思卡尔MPC8247处理芯片的PowerPC处理器,其主频高达400 MHz,具有低功耗,高可靠性,因此被广泛应用于大型操作系统。
图2为PowerPC处理器的MPC8247处理芯片内部模块结构图,其主要由PowerPC核、SIU(系统接口单元)、CPM(通信处理模块)组成。文中PowerPC核采用603e核,由缓存和存储器管理单元MMU组成;SIU主要实现内部总线和外部总线的连接;CPM主要是在不同的通信设备上实现发送、接收数据,结构设计可以满足所有通信设备独立工作。
MPC8247处理芯片具有两种启动方式,一种方式为在EEPROM(带电可擦写可编程读写存储器)内启动Bootrom(无盘启动ROM接口),然后应用Bootrom从网络下载开发板需要的内核和应用程序。另一种方式为在NorFlash中直接启动,启动过程:VxWorks系统镜像首先下载并存储在NorFlash的0xFFF00000处,当系统通电后,CPU马上读取NorFlash的0xFFF00000处VxWorks系统镜像,初始化系统硬件,并启动MPC8247内核,最后启动相应的程。
图3给出了MPC8247开发板的外设架构图。
图3 MPC8247开发板结构框图
MPC8247处理芯片因为不含NandFlash控制器,文中应用NandFlash控制器不需要存储很大数据,而是用于数学程序的运算,所以系统采用2片8M的NorFlash已满足嵌入系统平台的运算空间。串口1负责调试VxWorks操作系统,串口2负责与虚拟现实系统平台下的通用计算机进行数据通信。
2.2 VxWorks操作系统
文中基于研究背景,嵌入式系统平台的操作系统选用美国Wind River System公司的VxWorks实时操作系统[4-5]。VxWorks是一款非开源操作系统,它在开发程序过程中,采用Tornado2.2进行集成开发环境来编译程序,在这个过程中,Tornado同时会结合系统内核和程序,产生可以由CPU识别的VxWorks_rom.bin二进制文件。图4为MPC8247在Tornado2.2下编译生成bin文件过程,在project文件夹中可以得到最终生成开发板可以运行的二进制文件。
图4 Tornado开发环境和BSP编译
图5为VxWorks在MPC8247下的启动界面,从启动界面可以得到CPU型号、BSP版本信息、调试时间等相关信息。
2.3 VxWorks下的任务机制
制导律算法的仿真通常采用Matlab软件编程实现,但在嵌入式系统只能通过C语言编程完成功能。在VxWorks操作系统使用C或C++语言实现,执行的最小单元是task(任务)。系统应用程序接口都存储在usrAppInit.c文件中usrAppInit()函数里,即全部运行的应用程序在usrAppInit()开始,也会在这里结束运行。每个应用程序都是由一或几个task组成,实现功能,其中每个task都通过一个函数接口来实现usrAppInit.c中的usrAppInit()的调用。
void Main (void)
{
taskSpawn(″tMain″,105,0,0xF000,Input_Main,0,0,0,0,0,0,0,0,0,0);
}
如上段为建立一个Main (void)任务的代码,代码中105为Main (void)任务的优先级,该参数建议设置范围为大于100,代码0xF000表示任务所需要栈空间内存,Input_Main主要实现这个任务的逻辑,也是任务调用的函数入口。“0,0,0,0,0,0,0,0,0,0”表示该任务所需要的参数(最大为10),默认为零。
图5 VxWorks启动界面
2.4 制导律的解算和串口通信
文中中需仿真的制导律为带落角约束的变结构末制导律。为简化导弹制导过程,导弹、目标和控制站运动为质点运动,且其运动始终在同一平面内,如图6所示,导弹和目标相对运动可以分解为偏航平面分量、俯仰平面分量。
图6 导弹与目标相对运动关系
导弹与目标相对运动分析基于假设和前提:导弹、目标和控制站运动为质点运动,导弹和目标速度为已知常量,控制、制导系统工作是理想的,弹速大于目标速度,且攻角很小,所以可得出俯仰平面内的弹目运动方程:
(1)
引入落角约束:
(2)
式中γf为落点的期望速度倾角。
为了有效解决式(2)中的变结构问题,引入了滑模面切换函数和趋近律系数,如式(3)所示。
(3)
整理式(1)~式(3),最终可以化简得到带落角约束的变结构末制导律表达式:
(4)
文中设计嵌入式系统平台的最终目的就是在VxWorks操作系统下编程实现解算式(4),然后将式(4)中的数据通过串口任务传递给虚拟现实系统平台进行数据处理。所以,在VxWorks下面主要有两个任务,一个是Guidance任务,另一个是Serial任务。具体代码如下所示。
void Guidance (void)
{
taskSpawn(″tGuidance″,105,0,0xF000,
Guidance_Main,0,0,0,0,0,0,0,0,0,0);
}
void Serial (void)
{
taskSpawn(″tSerial″,110,0,0x4000,
Serial_Main,0,0,0,0,0,0,0,0,0,0);
}
VxWorks操作系统下的系统编程符合C语言编程规则,所以只需要控制好这两个任务间的数据共享,以及每个任务的栈空间大小,就可以完成制导律的解算和数据通信工作。
3 虚拟现实系统平台设计
3.1 Multigen Creator模型建立
实现三维视景首先要建立三维模型,模型的建立决定着整个三维视景仿真的效果。考虑到研究基于军工背景,文中使用了在三维视景仿真中广泛应用的三维模型建立软件Multigen Creator[6]。该模型建立软件的独创性是使用层次化数据结构技术对三维虚拟场景实现。传统三维模型建立软件的数据结构,很难实现对局部进行修改调整,文中层次化数据结构为OpenFight数据结构,采用了节点式的数据分层结构,可以实现对每个小模块迅速调整,建立效果更佳的三维模型。
3.2 Vega Prime软件系统
Vega Prime是Multigen Paradigm公司推出的一种虚拟现实实时开发工具,具有强大的功能,高度的易用性、兼容性,在楼宇视景、城市仿真、航天航空及军工等不同领域得到广泛的应用[7]。Vega Prime软件系统最底层是具有很好软硬件兼容性的OpenGL图形开发库,在OpenGL上为VSG(Vega Scene Graph)模块,它为高级三维开发提供了最佳平台,是Vega Prime实现的基础。如图7 Vega Prime软件结构可看作Vega Prime封装了底层OpenGL,这种设计结构可以使开发人员通过Vega Prime模块,实现对OpenGL的操作[8-10]。
图7 Vega Prime软件结构
Vega Prime为用户提供一个简单明了的开发界面,提供了一种可扩展的跨平台的LynX Prime图形用户界面配置工具。Vega Prime为开发人员使用C++语言编程实现复杂的功能,提供了基于C++面向对象的Vega Prime库。
3.3 基于MFC的Vega Prime软件设计
文中设计就是采用Visual Studio2005中MFC的文档视图架构来编程实现复杂算法。其中,在该架构下将Lynx Prime设计的三维模型底层框架作为一个线程在MFC中运行,同时创建一个Serial线程来接收嵌入式系统平台解算好的制导律,然后再通过这个Serial线程的数据来驱动三维模型运动起来。图8为基于MFC下的Vega Prime程序结构流程图。
图8 基于MFC的Vega Prime结构流程图
下面几行代码就是当点击仿真开始按钮后产生的消息响应函数。其中Guidance.acf文件作为一个实例被Vega Prime的内核程序调用,进而将在Lynx Prime中设计好的三维模型导入到MFC中,然后配置窗口相关参数,最后启动窗口。
void CGuidanceView::OnStartSim()
{
∥TODO:在此添加命令处理程序代码
vp::initialize(__argc,__argv);
vpKernel::instance()->define(″Guidance.acf″);
vpKernel::instance()->configure();
vpWindow *vpWin=*vpWindow::begin();
vpWin->setParent(this->GetSafeHwnd());
vpWin->setBorderEnable(false);
vpWin->setFullScreenEnable(true);
vpKernel::instance()->beginFrame();
vpKernel::instance()->endFrame();
const int TIMER_ID=1;
SetTimer(TIMER_ID,0,NULL);
∥响应键盘:
::SetFocus(vpWin->getWindow());
m_bStarted=TRUE;
}
Serial线程主要是接收嵌入式系统解算得到的制导律,采用串口协议进行数据通信,类似于传统的上位机与下位机通信,这里就不做介绍。
4 仿真与分析
文中根据资料建立以下数学模型:某武装直升飞机在高度2 000 m处发现前方地面装甲目标,要求发射空地导弹精确摧毁目标。模型假设目标初始速度为VT=0 m/s,导弹相对目标的速度为VM=300 m/s,导弹初始位置与目标初始位置的水平距离为1 000 m,且末端落角约束为-70°。
在2.4小节中嵌入式系统平台下实现带落角约束的滑模变结构制导律实现了在击中目标的同时,保证落角要求。图9是通过Matlab软件仿真得到的弹道曲线,从图中可以看出弹道曲线较为平滑,能够按照算法要求命中目标。
图9 数值仿真的弹道轨迹
图10展现了基于MFC的Vega Prime的制导律仿真平台界面。文中仿真程序都是基于MFC的文档视图架构,在默认架构的菜单栏中设计两个新项目,一个为仿真程序开始和结束控制按钮。另一个为串口配置按钮。新增的串口配置按钮设置是基于MPC8247底层参数实现的。在该设计的编程架构中,嵌入式系统平台要实现的弹道模型可通过与Vega Prime的程序进行无缝连接,达到实现导弹制导律的三维虚拟仿真。
图10 基于MFC的Vega Prime程序界面
当武装直升机发现地面目标,并发射了空地导弹时,图11中展示了导弹按照嵌入式系统平台计算出来的弹道轨迹在空中飞行,可以通过对比图10发现,新型仿真平台下的初段弹道轨迹和Matlab仿真的弹道轨迹十分接近。
图11 导弹在空中飞行
图12中导弹精准命中目标,在下方的计算机终端可以清楚看到目标被击中的瞬间情形,同时,将该图与图10中的弹道轨迹进行比较可以看出,该仿真平台得到的弹道轨迹与Matlab平台仿真结果基本相同,且仿真画面更为直观。
图12 导弹精准命中目标
图13为三维虚拟仿真平台的实物图展示,计算机平台左侧为嵌入式系统平台MPC8247开发板,当开发板上红灯亮时说明该平台处于正常工作状态。虚拟现实系统平台在计算机平台搭建实现,显示器上为整个仿真界面。计算机平台与开发板之间通过串口协议通信,文中仿真采用的USB转串口完成数据传输。
图13 仿真平台实物
5 结论
文中设计了一种新型制导律仿真平台。该仿真平台结合嵌入式系统平台和虚拟现实技术实现了对三维虚拟视景仿真界面设计。仿真结果表明,该制导律仿真平台非常直观地展示了空地导弹末端制导过程,更好地制导导弹的运行轨迹。其主要结论如下:
1)首先确保嵌入式系统平台能正常工作,即MPC8247硬件、VxWorks5.5的BSP顺利运行,这是仿真平台的基础。
2)为缓解嵌入式系统下程序的调试工作,文中使用VS2005软件对C语言实现的算法进行验证看其是否正确,调试成功后将其移植到嵌入式系统中。
3)保证嵌入式系统平台与虚拟现实系统平台通过串口协议通信能实现数据传输正确、顺畅。
4)文中MFC中设计两个新项目,即在MFC中增加了Vega Prime工作线程,因此Vega Prime工作线程和串口通信线程之间的冲突需要处理好。
该平台通过嵌入式系统设计模拟了真实的弹载计算机实现了制导律的整个工作过程,虚拟现实系统平台的视景仿真系统直观地展现了导弹的制导过程,由此分析弹道的设计是否合理。给制导律的设计提供更为简单明了的实验依据,从而缩短研究周期,节约研发成本。