主要内容

使用飞行模拟器界面

简介

使用本节学习如何使用FlightGear飞行模拟器和Aerospace Blockset™软件来可视化您的Simulink®飞机模型。如果您还没有安装FlightGear,请参阅飞行模拟器接口第一。

动态仿真模块在KSFC的着陆照明弹中的驱动HL-20模型

关于飞机几何模型

在您可以可视化您的飞机动力学,您需要创建或获得与FlightGear兼容的飞机模型文件。本节将解释如何做到这一点。

飞机几何编辑器和格式

您可以选择FlightGear支持的超过12种3d几何文件格式。

目前,最流行的3d几何文件格式是AC3D格式,它有后缀* .ac.AC3D是一个低成本的几何编辑器www.ac3d.org

飞机模型结构和要求

飞机模型包含在FlightGearRoot/ /数据/飞机文件夹和子文件夹。一个完整的飞机模型必须包含一个文件夹链接到所需的文件命名模型-set.xml

所有其他模型元素都是可选的。这是一个可选元素的部分列表,你可以放入飞机数据文件夹:

  • 交通工具及其形状和颜色

  • 车辆物体的表面位图

  • 变量几何描述

  • 座舱仪表三维模型

  • 与事件相关的车辆声音(如发动机、齿轮、风的声音)

  • 飞行动力学模型

  • 模拟器的观点

  • 与车辆相关的子模型(独立移动的项目)

当这些元素未被使用时,模型行为将恢复为默认值。例如,

  • 默认声音:不发出与车辆相关的声音。

  • 默认仪表盘:没有显示任何仪器。

模型可以包含上述元素的一部分、全部,甚至不包含其中任何一个。如果你总是从座舱视图运行FlightGear,飞机的几何形状往往是次要的仪器几何形状。

FlightGear文档中包含了一个如何包含可选元素的文档:

要求飞行动力学模型规范

飞行动力学模型(FDM)规范是飞机模型的必要组成部分。要将Simulink软件设置为给定几何模型的飞行动力学模型数据流的来源,请输入这一行数据/飞机/模型/模型-set.xml

< / flight model < flight model >网络>

获取和修改现有的飞机模型

您可以通过引用现有FlightGear模型中的仪器、声音和其他可选元素,从零开始快速构建模型。这些模型提供了几何、动力学、仪器、视图和声音的示例。很简单,复制一个飞机文件夹的新名称,重命名模型-set.xml文件,将其修改为网络飞行动态,然后使用飞机标志设置为中的名称模型-set.xml

许多现有的三维飞机几何模型都可以通过FlightGear使用。的下载区https://www.flightgear.org看看一些可用的飞机模型。其他模型可以通过Web搜索获得。搜索关键词,如“飞行齿轮飞机模型”是一个很好的起点。在分发这些文件时,一定要遵守版权。

飞机几何绘制的硬件要求

在创建您自己的几何文件时,请记住,您的图形卡可以有效地渲染有限数量的表面。一些卡片可以有效地渲染少于1000个面的位图和镜面反射,名义速度为每秒30帧。其他卡片可以轻松渲染10,000个表面。

如果在使用特定几何图形时性能变慢,可以通过改变飞机模型表面的数量来衡量几何复杂性对图形性能的影响。检查这一点的一个简单方法是用一个简单的形状替换完整的飞机几何文件,例如一个三角形,然后用这个更简单的几何形状测试FlightGear。如果一个几何图形文件过于复杂,无法流畅地显示,可以使用3d几何图形编辑器,通过减少几何图形中的表面数量来简化模型。

使用飞机几何模型

一旦你获得、修改或创建了一个飞机数据文件,你需要把它放在正确的文件夹,以便FlightGear访问它。

导入飞机模型到FlightGear

要将兼容的模型安装到FlightGear中,请使用以下程序之一。选择适合您的平台的。本节假设您已阅读本文内容安装并启动FlightGear

如果你的平台是Windows:

  1. 转到已安装的FlightGear文件夹。打开数据文件夹,然后飞机文件夹:\ \ FlightGear \ \数据飞机

  2. 做一个文件夹模型这里有你的飞机数据。

  3. 模型-set.xml在那个子文件夹里,再加上其他需要的文件。

    通常做法是为车辆几何形状文件(模型\ \)、工具(\仪器\)和发音(听起来\ \).

如果你的平台是Linux:

  1. 转到已安装的FlightGear目录。打开数据目录,然后飞机目录:FlightGearBaseDirectory美元/ /数据/飞机

  2. 做一个目录模型/这里是你的飞机资料。

  3. 模型-set.xml在那个子目录中,加上任何其他需要的文件。

    通常做法是为车辆几何形状文件(/模型/)、工具(/工具/)和发音(/声音/).

如果你的平台是Mac:

  1. 打开一个终端。

  2. 转到已安装的FlightGear文件夹。打开数据文件夹,然后飞机文件夹:

    FlightGearBaseDirectory美元/ FlightGear.app /内容/资源/数据/飞机/
  3. 做一个文件夹模型/这里是你的飞机资料。

  4. 模型-set.xml在那个子文件夹里,再加上其他需要的文件。

    通常做法是为车辆几何形状文件(/模型/)、工具(/工具/)和发音(/声音/).

示例:动画车辆几何图形

这个例子说明了如何为动画元素(如车辆控制面和起落架)准备铰链线定义。要启用动画,每个元素必须是几何文件中的命名实体。所得到的代码形成HL20举升体模型的一部分使用FlightGear运行HL-20示例

  1. FlightGear几何模型中使用的标准身体坐标形成了一个右手坐标系,从标准身体坐标系旋转Y-180度:

    • X=正对车辆的后部

    • Y正对着车辆的右侧

    • Z=正值是向上的,例如,轮子通常是最低的Z值。

    看到关于航空航天坐标系为更多的细节。

  2. 在身体坐标中找到位于所需命名对象铰线上的两点,并将它们写为XYZ或者把它们放到MATLAB中®计算如下:

    A = [2.98, 1.89, 0.53];B = [3.54, 2.75, 1.46];
  3. 计算两点之间的差值:

    Pdiff = b - a Pdiff = 0.5600 0.8600 0.9300
  4. 铰链点是步骤2中的任意一个点(或如图所示的中点):

    Mid = a + pdiff/2 Mid = 3.2600 2.3200 0.9950
  5. 把铰链点放入动画范围内模型-set.xml

    3.26 <中心> < x m > < / x m > < y m > 2.32 < / y m > < z-m > 1.00 < / z-m > < /中心>
  6. 使用第3步的差值来定义动画轴上的相对运动矢量:

    x 0.56 x <轴> < > < / > < y > 0.86 < / y > < z > 0.93 z < / > < > /轴
  7. 将这些步骤放在一起可以获得HL20示例模型中使用的完整铰链线动画:

     rotate  RightAileron / table -positions/right-aileron- poss -norm 30 0 
    3.26 2.32 1.00 0.56 0.86 0.93

运行FlightGear动态仿真模块模型

运行飞机的Simulink模型,同时在FlightGear中使用飞机数据文件进行动画模型-set.xml,您需要配置飞机数据文件,并使用一些新块修改您的Simulink模型。

下面是连接和使用FlightGear与Simulink软件的主要步骤:

在飞机数据文件中设置飞行动力学模型为网络

一定要:

  • 从飞机数据文件中删除任何预先存在的飞行动力学模型(FDM)数据。

  • 在飞机数据文件中通过添加这一行来表明它的FDM正在从网络中传输:

    < / flight model < flight model >网络>

获取目的IP地址

你需要你的Simulink模型的目的IP地址来流它的飞行数据到FlightGear。

  • 如果你知道你的计算机名,在MATLAB命令行输入:

    java.net.InetAddress.getByName(“www.ru-cchi.com”)
  • 如果您在同一台计算机上运行FlightGear和Simulink软件,通过在MATLAB命令行输入获取您的计算机名:

    java.net.InetAddress.getLocalHost
  • 如果你在Windows系统下工作,在DOS提示符下输入你的电脑IP地址:

    ipconfig /所有

    检查结果输出中的IP地址项。每个以太网设备有一个条目。

创建FlightGear运行脚本

要以所需的初始条件(位置、日期、时间、天气、操作模式)启动FlightGear,最好通过以下方式创建运行脚本使用生成运行脚本块使用FlightGear提供的接口

如果您为打算链接到FlightGear的每个模型制作了单独的运行脚本,并将它们放在单独的目录中,请在启动Simulink模型之前从MATLAB界面运行相应的脚本。

使用生成运行脚本块。创建运行脚本的最简单方法是使用生成运行脚本块。使用这个过程:

  1. 打开飞行模拟器接口子库。

  2. 创建一个新的Simulink模型或打开一个现有的模型。

  3. 将“生成运行脚本”块拖到Simulink图中。

  4. 双击Generate Run Script块。其对话框打开。观察这三个窗格,FlightGear网络,文件

    生成运行脚本块

  5. 输出文件的名字参数的文件选项卡,键入输出文件的名称。这个名称应该是您希望使用这些初始参数启动FlightGear的命令的名称。使用适当的文件扩展名:

    平台 扩展
    窗户® 。bat
    Linux®而且macOS . sh

    例如,如果您的文件名是runfg.bat,可以使用runfg命令,执行运行脚本并启动FlightGear。

  6. FlightGear基地目录参数的文件选项卡,指定FlightGear安装文件夹的名称。

  7. FlightGear几何模型名称参数的文件选项卡中指定子文件夹的名称FlightGear/数据/飞机文件夹,其中包含所需的模型几何形状。

  8. 根据需要指定初始条件。

  9. 单击生成脚本按钮的顶部参数区域。

    Aerospace Blockset软件生成运行脚本,并将其保存在MATLAB工作文件夹中指定的文件名下文件>输出文件的名字字段。

  10. 选中或清除这些复选框并

    • 要引导FlightGear在模拟器运行时自动安装所需的场景-选择在模拟过程中安装FlightGear场景(需要互联网连接).对于Windows系统,启用此选项启动FlightGear时,您可能会遇到一条错误消息。有关更多信息,请参见安装额外的FlightGear风景

    • 禁用FlightGear着色器选项-选择禁用FlightGear着色器选项

  11. 如果需要,重复步骤5到10以生成其他运行脚本。

  12. 点击好吧关闭对话框。您不需要用Simulink模型保存Generate Run Script块。

Generate Run Script块将运行脚本作为文本文件保存在工作文件夹中。这是一个运行脚本文件的内容示例:

>> cd C:\ apps \FlightGear- >> SET FG_ROOT=C:\ apps \FlightGear-\data >> cd \bin\ >> fgfs——aircraft=HL20——fdm=network,localhost,5501,5502,5503——fog-fast——disable-clouds——start-date-lat=2004:06:01:09:00:00——disable-sound——in-air——enable-freeze——airport=KSFO——跑道=10L——高度=7224——heading=113——offset-distance=4.72——offset- azuth =0

使用FlightGear提供的接口。FlightGear启动器GUI (FlightGear的一部分,不是Aerospace Blockset产品)允许您将简单和高级选项构建到一个可见的FlightGear运行命令中。

开始FlightGear

如果你的计算机有足够的计算能力同时运行Simulink软件和FlightGear,在Windows系统上启动FlightGear的一个简单方法是创建一个MATLAB桌面按钮,包含这个命令来执行像上面创建的运行脚本:

系统(“runfg &”)

使用实例创建桌面按钮。

  1. 在MATLAB命令窗口中,选择快捷键并点击新快捷方式.的快捷键编辑器对话框打开。

  2. 设置标签回调类别,图标字段,如图所示。

  3. 点击保存

    FlightGear按钮出现在您的MATLAB桌面。例如,如果单击它,则输出文件runfg.bat,运行在当前文件夹中。

一旦你完成了设置,启动FlightGear并运行你的模型:

  1. 确保您的模型位于可写文件夹中。打开模型,并更新图表。此步骤确保编译任何引用的块代码,并在运行之前编译框图。一旦你启动了FlightGear,它就会在运行时使用所有可用的处理器能力。

  2. 单击FlightGear按钮或手动运行FlightGear运行脚本。

  3. 当FlightGear启动时,它将在运行脚本中指定的初始坐标处显示初始视图。如果您在不同的计算机上运行Simulink软件和FlightGear,请安排同时查看这两个显示。

  4. 现在开始模拟并在FlightGear中查看动画。

提高性能

如果您的Simulink模型很复杂,不能以可视化所需的聚合速率运行,那么您可能需要这样做

  • 使用Simulink中的加速模式(执行加速度.)

  • 通过在一台计算机上运行Simulink模型和在另一台计算机上运行FlightGear来释放处理器的能量。使用目的IP地址参数的发送net_fdm包到FlightGear块指定正在运行FlightGear的计算机的网络地址。

  • 先模拟Simulink模型,然后保存翻译结果(x设在,y设在,z-axis)和位置(纬度,经度,高度),并使用FlightGear动画对象航空航天工具箱为了可视化这些数据。

提示

如果FlightGear使用的计算机资源比您想要的多,您可以将其调度优先级改为较低的优先级。例如,参见Windows等命令开始和Linux不错的或其等价物。

FlightGear运行,动态仿真模块不同电脑上的软件

可以在一台计算机(源)上的Simulink环境中模拟一个航空航天系统,并使用其模拟输出在另一台计算机(目标)上对FlightGear进行动画化。这些步骤与已经解释过的步骤类似,只是做了一些修改。

  1. 获取运行FlightGear的计算机的IP地址。看到获取目的IP地址

  2. 中输入此目标计算机的IP地址发送net_fdm包到FlightGear块。看到发送Simulink数据到FlightGear

  3. 更新生成运行脚本块与目标计算机的FlightGear基本文件夹。重新生成运行脚本以反映目标计算机的独立标识。

    看到创建FlightGear运行脚本

  4. 将生成的运行脚本复制到目标计算机。开始FlightGear那里。看到开始FlightGear

  5. 如果您还想从FlightGear接收数据,请使用从FlightGear接收net_ctrl包块。输入运行FlightGear的计算机的IP地址源IP地址参数。

  6. 更新接收数据的运行脚本。使用生成运行脚本块来重新生成运行脚本。

  7. 在源计算机上启动Simulink模型。在目标上运行的FlightGear显示模拟运动。

使用FlightGear运行HL-20示例

Aerospace Blockset软件包含使用FlightGear接口和项目的HL-20举升体的示例模型。这个例子说明了Aerospace Blockset软件的许多特性。它还包含一个Variant子系统块,您可以使用该块为模拟指定数据源。您可能想要使用Variant子系统块来更改地形数据源,或者如果您不想使用FlightGear但仍然想要模拟模型。

要在尝试模拟此模型之前安装和配置FlightGear,请参见飞行模拟器接口.另外,在尝试模拟这个模型之前,请阅读安装并启动FlightGear

请注意

本例的步骤2复制HL-20模拟的预配置几何图形projectroot\支持FlightGear\ \ data \飞机.它要求您拥有计算机的系统管理员权限。如果您没有这些权限,请根据您的平台手动复制这些文件。

窗户

复制HL20文件夹的projectroot\支持文件夹FlightGear\ \ data \飞机文件夹中。该文件夹包含HL-20模拟和预配置的几何图形HL20-set.xml.该文件projectroot\ \ HL20 \ \ HL20.xml模型的支持定义了几何。

对于Windows平台,使用管理员权限启动MATLAB应用程序。例如,在开始菜单中,右键单击MATLAB应用程序,然后选择以管理员身份运行

有关更多信息,请参见导入飞机模型到FlightGear

Linux

复制HL20目录的projectroot/支持目录FlightGearBaseDirectory美元/ /数据/飞机目录中。该目录包含HL-20模拟和预配置的几何图形HL20-set.xml.该文件projectroot/支持/ HL20 /模型/ HL20.xml定义了几何。

有关此步骤的更多信息,请参见导入飞机模型到FlightGear

Mac

复制HL20文件夹的projectroot/支持文件夹FlightGearBaseDirectory美元/ FlightGear.app /内容/资源/数据/飞机/文件夹中。该文件夹包含HL-20模拟和预配置的几何图形HL20-set.xml.该文件projectroot/支持/ HL20 /模型/ HL20.xml定义了几何。

有关此步骤的更多信息,请参见导入飞机模型到FlightGear

  1. 启动MATLAB接口。打开HL-20项目可选的FlightGear接口的例子。模型的项目启动,模型打开。

  2. 如果这是您第一次为该模型运行FlightGear,则需要创建并运行一个定制的FlightGear运行脚本。你可以用下面的一种方法来实现:

    • 在模型中,双击Install FlightGear块,并按照块中的步骤操作。最初,这个方块是红色的。当您按照块中列出的步骤执行时,块掩码会发生变化。

      要启动该模型的FlightGear,请单击在FlightGear中启动HL20

  3. 现在开始模拟并在FlightGear中查看动画。

请注意

与FlightGear窗口对焦,按V关键是在不同的飞机视图之间交替:驾驶舱视图,直升机视图,追逐视图,等等。

发送和接收数据

您可以在Simulink模型和运行中的FlightGear飞行模拟器之间发送和接收数据。

发送动态仿真模块数据FlightGear

用块集将模型连接到FlightGear的最简单方法是使用FlightGear预配置6DoF动画布洛克:

FlightGear预配置6DoF动画块是一个包含为FlightGear打包net_fdm包而且发送net_fdm包到FlightGear块:

这些块将数据从模型传输到FlightGear会话。这些块是独立的,以获得最大的灵活性和兼容性。

  • 为FlightGear打包net_fdm包block从模型输入中格式化与FlightGear兼容的二进制结构。在默认配置中,块只显示6DoF端口,但您可以配置完整的FlightGear接口,从块对话框支持超过50个不同的信号:

  • 发送net_fdm包到FlightGearblock通过UDP将这个包发送到指定的IP地址和端口,在那里FlightGear会话等待传入的数据流。使用您找到的IP地址获取目的IP地址

  • 仿真速度块减慢模拟的速度,使其总运行速率为每秒钟模拟时间1秒。您还可以使用它来指定模拟时间与时钟时间的其他比率。

发送FlightGear数据到模型

为了提高模型模拟的准确性,您可能需要将FlightGear环境变量发送到Simulink模型。使用这些块:

有关如何使用这些块向Simulink模型发送数据的示例,请参见HL-20项目可选的FlightGear接口

这些块使用UDP将数据从FlightGear传输到Simulink环境。注意:

  • 当主机和目标是Windows或Linux平台时,可以为主机和目标使用Windows或Linux平台的任何组合。

  • 当主机或目标为Mac平台,只使用Mac主机和目标的平台。

另请参阅

|||||

相关的话题

外部网站

Baidu
map