基于xPC目标的无人机半物理仿真系统设计与实现*

2019-08-22 06:18韩本刚毛师彬
弹箭与制导学报 2019年2期
关键词:框图串口应用程序

韩本刚,毛师彬

(南京模拟技术研究所, 南京 210016)

0 引言

基于实时操作核的数字飞控计算机可以实现复杂的逻辑和功能处理,其具有集成度高、运算能力强、I/O接口丰富、扩展性好及通用性强等特点,得以广泛应用。以数字飞控计算机为核心的飞行控制系统直接决定着无人机的飞行性能,为了确保无人机安全有效地完成预定飞行任务,对飞行控制系统进行半实物仿真测试,验证其有效性是必要的。仿真平台作为半实物仿真实现的必备环节,需要具备较好的实时性,一般采用专用的dSPACE实时系统仿真平台,或者采用PC机+实时操作系统模式的仿真平台,如采用Vxworks、Qnx等实时操作系统,这些仿真平台性能好,广泛应用于航空航天领域,但这些仿真平台成本较高,对于飞行控制处理运算要求相对简单的无人机,开发一套实用的、低成本的半物理仿真系统是必要的。文中给出了在PC/104嵌入式硬件架构下基于xPC目标[1](xPC Target)环境构建无人机半物理仿真系统的技术途径,实现了将无人机Simulink仿真框图直接转化成C语言代码并下载至硬件平台中实时仿真。

1 仿真系统的组成

半物理仿真是指硬件在回路的仿真,以某型无人机为例,其半实物仿真系统架构如图1所示。

图1 半实物仿真系统架构

该仿真系统主要由仿真机、地面站、控制台、飞控计算机及舵系统(包括控制器及执行机构)等组成。其中,仿真机用以实现无人机六自由度运动方程的实时解算、模拟各种传感器的接口特性,并模拟输出无人机的飞行状态信息;地面站与飞控计算机交互连接,用以实现无人机操纵飞行、实时监测无人机飞行状态数据,并生成显示无人机航迹;控制台与仿真机交互连接,用以实现无人机仿真模型参数配置、数据记录及仿真控制等操作;飞控计算机和舵系统均采用实物,飞控计算机是仿真测试及验证的主要对象,而引入真实的舵系统可以使仿真结果更加逼真可信。

2 仿真机设计与实现

在上述半物理仿真系统具体开发过程中,仿真机选用了成熟的PC/104嵌入式硬件架构,具体由SBS公司PMI-10D型CPU板(主频可达1 000 MHz)、DIAMOND公司DIAMOND-MM-16AT型数据采集板、EMERALD-MM-8型多串口板及JMM512-512型电源板等组成,也可根据实际需求扩展其他I/O模块设备。该仿真机运行xPC目标的实时操作核并执行对象模型程序代码,主要实现了无人机六自由度运动特性、传感器及执行机构接口特性等模拟,其中通过A/D采集执行机构的位置信息,通过串口或D/A输出无人机状态数据。此外,仿真机与控制台通过串口连接进行信息的交互,使目标应用程序脱离Matlab运行环境。

2.1 xPC目标介绍

xPC目标作为Real-Time Workshop(RTW)体系结构的附加产品,可实现控制系统或DSP系统的快速原型化过程及硬件在回路仿真测试,其支持PCI和ISA两种类型的I/O设备,能够很便捷地构设嵌入式实时系统。xPC目标采用宿主机与目标机的“双机”应用模式,其中宿主机用于运行Simulink,目标机用于执行所生成的目标代码,双机之间可选择串口或以太网连接进行通信。具体使用过程中,首先在宿主机上利用Simulink设计好对象仿真模型框图,之后通过 RTW将Simulink框图模型转化成C语言代码(即目标应用程序)并下载到目标机上执行。xPC目标提供了一个可运行在目标机上的、高度减缩的实时操作核,用于任务的调度和管理,该实时操作核采用32位的内存管理模式,具有很高的执行效率。xPC目标实时操作核的采样频率最高可达100 MHz,能够保证目标应用程序的实时执行,目标应用程序执行速度主要由对象模型复杂程度、程序代码规模以及目标机硬件设备配置等因素决定。

2.2 无人机仿真模型构建

本系统中无人机仿真模型是通过Simulink在宿主机上以框图形式构建的,主要包括发动机推力计算模块、执行机构位置换算模块、无人机六自由度模型解算模块、传感器特性仿真模块以及串口、A/D、D/A等I/O设备接口驱动模块。其中,发动机推力计算模块根据接收的发动机控制指令实现油门开度的模拟调节,并利用发动机高空台试验数据或地面开车试验数据进行插值计算得出推力,发动机控制指令由地面站通过串口发出;执行机构位置换算模块根据A/D通道采集的信息计算出各执行机构作动量;而无人机六自由度运动模型解算模块以发动机计算模块输出的推力和执行机构位置换算输出的作动量为输入,进行无人机六自由度运动方程的实时解算,输出无人机空间运动的位置、姿态、速度、角速度等信息;传感器特性仿真模块主要模拟传感器动态特性和接口特性,传感器动态特性通过实测数据进行系统辨识获取并以传递函数形式表示,接口特性按照各传感器接口形式和数据格式对应编码实现,以数字信号(串口数据格式)或模拟信号(D/A)形式对外输出。构建无人机Simulink模块化仿真框图后,这样便可以通过RTW工具箱将其生成高度优化C语言代码下载至运行xPC目标实时操作核的目标机上执行。仿真模型基本结构及Simulink仿真框图如图2和图3所示。

图2 仿真模型基本结构

图3 无人机Simulink仿真框图

Simulink虽然提供了大量的线性和非线性运算模块,但当系统模型中包含过多的非线性或者用户自定义的模块时,使用Simulink提供的运算模块构建模型会过于繁琐。有必要采用Simulink提供的S函数(S-Function)进行自定义逻辑或运算功能模块开发,S函数可选择M语言或C/C++语言进行编码,本仿真系统中选择了C/C++语言混合编程的方式进行了自定义模块开发,与Simulink自带的运算模块结合使用实现了全系统建模,特别是无人机六自由度运动特性、传感器动态特性及执行机构动态特性等仿真模型均采用C/C++语言编程的S函数构建,传感器动态特性Simulink仿真框图如图4所示。

另外,xPC目标模块库(xpclib库)中提供了大量的I/O接口板卡驱动模块,可直接调用对应通信接口板卡驱动模块实现I/O接口的扩展。考虑该仿真机采用Diamond公司的多串口板和数据采集板,直接调用Diamond Emerald-MM8 Serial F和MM-16-AT驱动模块配置后使用,当然也可以在xpclib库中提供的I/O模块驱动程序源代码基础上进行适当修改,实现不同设备板卡驱动程序的开发,仿真平台尝试采用了SBS公司SEM/PMSP-8型多串口板卡,其驱动程序基于Diamond Emerald-MM8 Serial F模块源代码开发,可达成同样功能及仿真特性。

图4 传感器Simulink仿真框图

3 仿真控制台软件实现

xPC目标的API函数库提供了大量VC接口函数,可以创建一个VC应用程序来实现目标应用程序的下载和运行,亦可实现如参数设置、信号监视及数据采集等功能。本系统中仿真控制台软件是通过Microsoft Visual C++6.0集成编译环境开发的桌面应用程序,直接调用了xpcinitfree.c、xpcapi.h、xpcapiconst.h等库文件,这样便可以在不启动Matlab运行环境的情况下实现对xPC目标应用程序的控制和管理。仿真控制台软件除了具备基本的xPC目标环境连接和xPC目标应用程序的下载、仿真启动和停止等功能外,还包括仿真初始化条件设置、大气干扰设置及传感器特性配置等实用功能,同时可实现仿真数据的实时监测及数据的事后处理分析,仿真控制台软件界面如图5所示。

图5 仿真控制台软件界面

4 效果测试

为测试半实物仿真系统的性能及效果,以某型无人机为例,在Simulink仿真框图中输入了其模型参数,通过RTW转化目标应用程序后下载到仿真机上运行。鉴于无人机数字飞行控制系统计算周期为20 ms,这里设定仿真步长为10 ms。仿真开始后通过安装有测控软件的地面站控制无人机爬升、平飞、盘旋等实现指令飞行仿真,并控制无人机转入预设航路程控飞行仿真,半实物仿真飞行效果如图6展示。

图6 无人机模拟飞行效果

事后通过半实物仿真测试数据与实际飞行数据的对比,两者特性一致,说明所开发的仿真系统能够验证飞行控制系统的有效性,且能够很好地实现无人机模拟飞行测试。

另外,在仿真过程中通过对控制台软件目标机连接、应用程序下载、仿真初始化参数设置、大气干扰参数设置、仿真启停控制及数据曲线显示等功能进行了测试,均达成预期效果,使用便捷。

5 结论

文中应用xPC目标环境下硬件在回路仿真与测试技术解决途径,开发了一套用于无人机的半物理仿真系统。该仿真系统直接将无人机Simulink仿真模型框图转化成C语言程序代码并执行,简单高效、易于维护。该仿真系统已用于在某型无人机设计和飞行验证中,实践表明该仿真系统可以有效检验飞行控制系统的控制逻辑及飞行控制律设计的正确行与合理性,直观反映出无人机飞行控制效果,为飞行控制系统优化设计和无人机系统的性能评估等提供了有效支持,具备较好的工程应用价值。

猜你喜欢
框图串口应用程序
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
电路图2017年凯迪拉克XT5
算法框图的补全
MCS—51单片机中的多串口通讯技术的应用
基于图表法构建《万有引力定律与航天》知识网络
三星电子将开设应用程序下载商店