摘 要:介绍了一种新的基于Matlab/ RTW(Real2Time Workshop) 和VxWorks 实时操作系统的仿真方法,构建了基于Simulink 的某型无人机飞控系统仿真模型,可自动生成优化的嵌入式实时仿真代码、在线调整模型参数并监视仿真数据。

与传统的手工编写和修改仿真模型代码的方法相比,加速了半物理仿真平台的研制。通过使用该平台对某型无人机飞控系统进行了大量的实时半物理仿真,优化了控制律。

一般的飞控系统仿真总是分为2 个阶段:纯数字仿真阶段和半物理仿真阶段。飞控系统半物理仿真平台的研制除了设计和构建半物理仿真的硬件平台之外,一个工作量很大的内容就是开发半物理仿真软件。而传统的半物理仿真软件开发都是由开发人员手工编写仿真代码,工作量大且容易出错。

对于一般的开发过程虽然能在纯数字仿真阶段使用Matlab 等仿真软件开发仿真模型,但是到了半物理仿真阶段还需要人工把在纯数字仿真阶段使用的仿真模型翻译成可以被实时仿真机执行的代码而不能直接利用数字模型。怎样才能利用已经开发好的仿真模型,直接把这些模型放到仿真机中运行呢?Matlab RTW(Real2TimeWorkshop 实时工作空间)能够实现这一功能。使用基于Matlab/ RTW的实时仿真方法将大大减少仿真软件的开发量、避免各种手工编写代码出现的错误、缩短半物理仿真平台的开发周期。

1  基于Matlab/ RTW 和VxWorks 操作系统的实时仿真方法

RTW 是MATLAB图形建模仿真环境Simul2ink 的一个重要补充功能模块,简而言之,它是一个基于Simulink 的代码自动生成环境。它能直接从Simulink 模型中产生优化、可移植的嵌入式实时代码[2 ] ,并且能够根据目标机配置自动生成适合该目标机软硬件环境的可执行程序,既支持x86 、DSP、PowerPC 等目标机硬件也支持Dos、VxWorks、xPC等操作系统。RTW 除了可以将Simulink 模型自动转换成代码在目标机上运行外,还支持基于模型的在线调试(即在半物理仿真进行过程中在线修改仿真机中模型参数、监视仿真数据) 。

因此使用RTW进行实时系统的设计、仿真、测试可以缩短系统开发周期并降低成本。VxWorks 操作系统[3 ] 是美国WindRiver 公司于1983 年设计开发的一种嵌入式实时操作系统(RTOS) 。该操作系统以良好的可靠性、卓越的实时性、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域处于世界领先地位,被广泛地应用在通信、军事、航空、航天等高精尖技术领域及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。

在美国的F216 、FA218战斗机、B22 隐形轰炸机和爱国者导弹上,甚至连1997 年4 月在火星表面登陆的火星探测器上也使用了VxWorks 操作系统。所谓基于Matlab/ RTW 和VxWorks 的实时仿真方法就是应用Matlab/ Simulink 模块框图建立起仿真系统模型,以图形化方式对算法进行概念化,在搭建起半物理仿真硬件平台后使用RTW 自动代码生成功能,生成可以在VxWorks 实时操作系统上运行的仿真模型的实时C 代码;使用在线调参功能修改仿真模型参数,直至整个半物理实时仿真平台完全调通。基于Matlab/ RTW 的实时仿真方法实现了一种新的快速从纯数字仿真到半物理仿真的一体化过程。其仿真流程图如图1 所示。

VxWorks Matlab Simulation

图1 仿真流程图

基于Matlab/ RTW 的仿真过程开始于仿真模型的构建,首先在Simulink 下建立起仿真模型进行数字仿真修正系统设计,然后使用RTW 将仿真模型生成实时代码并下载到目标机中,使用外部模式在线调整仿真参数,根据仿真结果修改仿真模型,如此往复直到满足设计要求为止。

2.无人机飞控系统仿真平台设计与实现

2. 1 系统结构

该型无人机飞控系统半物理仿真平台[4 ] 系统结构如图2 所示,整个平台用2 台工控机1 台PC 机实现,PC 机作为主控计算机,工控机分别作为转台驱动目标机、无人机仿真目标机。考虑到仿真的实时性以及该型无人机飞控计算机使用VxWorks 操作系统,无人机仿真目标机使用WindRiver 公司的VxWorks 实时操作系统,转台驱动目标机使用由Matlab 软件自身提供的xPC 实时操作系统。

主控计算机上运行Matlab ,其主要作用是在仿真前进行无人机动力学模型和转台驱动模型的构建、数字仿真、目标机代码生成,在仿真中通过RTW 外部模式在线修改无人机模型中各种参数、获取各种仿真数据;主控上位机上还运行VxWorks 操作系统的集成开发环境Tornado ,完成VxWorks 操作系统内核的生成、主机和目标机的搭接、下载由RTW 生成的嵌入式实时目标机代码等。

同时主控计算机通过Matlab 的命令窗口实现与运行xPC 的转台驱动目标机的搭接、仿真模型的下载、仿真的起停控制等。主控计算机还可以选择运行自行开发的仿真控制软件,仿真控制软件将Tornado 和Matlab 对目标机的搭接、模型代码下载、仿真起停控制、仿真数据回采显示等功能融为一体,实现便捷的仿真控制。

VxWorks Matlab Simulation Structure

图2 无人机飞控系统半物理仿真平台系统结构图

无人机仿真目标机中运行无人机动力学模型代码,接收由舵机发送的舵偏角信号,根据无人机动力学模型完成无人机当前姿态信息的解算并将这些信息通过SBS 实时光纤网络发送到转台驱动目标机,通过DA、串口将部分信息传送给实际的飞控计算机。转台控制计算机根据收到的飞机当前姿态信息驱动转台,并且记录转台的实际位置信息。转台上的姿态陀螺和速率陀螺测量实际的姿态和速率信息,通过DA 和串口发送到实际飞控计算机。实际飞控计算机根据获取的传感器信息解算控制律,通过DA 向舵机发送控制指令。

2. 2 仿真模型的构建与代码生成

搭建起整个仿真系统的数字模型后,通过纯数字仿真可以初步修正系统设计,然后修改这个数字模型,去除半物理仿真中被实物替代的模型,加入仿真目标机硬件在VxWorks 或者xPC 操作系统下的Simulink 驱动模块,就可以构建起该系统的半物理仿真模型:如图3 所示。

VxWorks Matlab Simulation System model

图3 无人机系统模型

其中关键技术如下:

①建立包括无人机空气动力学模型在内的系统数学模型。

②利用Matlab 中的S2f unction 将核心算法封装成为一个算法模块,并加到Simulink 模块库中,供搭建动态系统模型时使用。

③编写半物理仿真过程中要用到的转台驱动目标机和无人机目标机上各种板卡在VxWorks 操作系统下或者在xPC 操作系统下的驱动程序,并用S2f unction 打包成一个Simulink 中的驱动模块,添加到系统模型中。

模型构建好后,自动将Simulink 模型转化成可以在VxWorks 操作系统或者在xPC 操作系统中运行的嵌入式C 代码则是Matlab/ RTW 的特色所在。这里的关键技术在于正确地配置各项参数:

  • 选择Tornado 或者xPC 目标模式。
  • 修改Tornado 目标的模版联编文件tornado. tmf 。

3 仿真与验证

搭建起如图2 所示的仿真平台、构建好如图3所示的仿真模型后,就实现了无人机半物理实时仿真平台的构建。基于这一个平台可以方便地进行多次仿真,修改无人机动力学模型或者调整飞控计算机中的控制律代码,直到获取满意的半物理仿真结果。在主机上运行VxWorks 的集成开发环境Tor2nado ,用Tornado 剪裁出一个VxWorks 操作系统内核文件,创建好2 台目标机的引导程序并引导2台仿真目标机启动,加载VxWorks 操作系统内核和xPC 操作系统内核到目标机,至此就完成了主机和目标机的搭接,实现了主机对目标机的控制,可用仿真控制软件将生成的仿真模型实时代码下载到相应目标机中。

外部模式是在系统实时仿真中一种非常有效的手段,可以用RTW 的外部模式实时获取仿真数据,在线修改模型参数。在仿真中,笔者使用外部方式很方便地在主控计算机的Simulink 模型中在线修改无人机模型参数,Simulink 模型中的示波器模块可看到飞机的姿态曲线响应。

使用外部模式的关键在于:

  • 在目标代码的生成选项中选择外部模式,这样生成的代码就支持外部模式。
  • 配置好Externalont rol Panel 中的各项参数,包括与目标机搭接的网络名称、端口号、模型中要测监的信号,以及仿真开始触发方式等。

该半物理仿真平台已成功应用于某重点无人机型号研制。通过在该仿真平台上对无人机控制系统的多次实时半物理仿真,改进了无人机爬升、平飞、左盘、右盘、定向调姿、下滑过程的控制律,最终测试通过了整套飞控系统。

通过比较仿真数据和实际试飞数据证明了整个半物理仿真系统具有着较高的可靠性。图4 为飞机从爬升到改平过程的过渡曲线,其中实线为实际试飞数据曲线,虚线为试飞后根据试飞数据在相同状态下复现的仿真数据曲线,从图中可以看到过渡过程重合的较好。

VxWorks Matlab Simulation Data

图4 仿真与试飞数据比较图

结 论

正是因为充分利用了基于Matlab/ RTW 和VxWorks 的实时仿真方法的几大优点:仿真模型代码自动生成、仿真过程中在线调参、仿真过程中仿真数据在线监视以及可靠的实时性能才能在较短的时间内研制出该型无人机半物理实时仿真平台,整个研制过程难度和工作量大大地降低。

所以,基于Matlab/ RTW 和VxWorks 实时操作系统的仿真方法是一种非常值得推广的方法,它能够大大地降低仿真软件的开发工作量、提高仿真软件的质量、提高仿真平台的性能、方便地实现仿真平台系统级调试。