使用本节学习如何使用FlightGear飞行模拟器和Aerospace Blockset™软件可视化您的Simulink金宝app®飞机模型。如果尚未安装FlightGear,请参阅飞行模拟器接口第一。
金宝app驱动HL-20型在KSFC着陆照明弹中
在您可以可视化您的飞机动力学之前,您需要创建或获得一个与FlightGear兼容的飞机模型文件。本节将解释如何做到这一点。
FlightGear支持超过12种3d几何文件格式,您可以选择其中一种。金宝app
目前,最流行的三维几何体文件格式是AC3D格式,其后缀为*.ac
. AC3D是一种低成本的几何体编辑器,可从www.ac3d.org
.
飞机模型包含在FlightGearRoot
/ /数据/飞机
文件夹和子文件夹。完整的飞机模型必须包含一个通过所需的飞机主文件链接的文件夹,该文件名为模型
-set.xml
.
所有其他模型元素都是可选的。这是一个可选元素的部分列表,你可以放在一个飞机数据文件夹:
车辆物体及其形状和颜色
车辆对象的曲面位图
变量几何描述
座舱仪表三维模型
车辆的声音与事件相关(例如,引擎,齿轮,风噪声)
飞行动力学模型
模拟器的观点
与车辆相关联的子模型(独立可移动项目)
当不使用这些元素时,模型行为将恢复为默认值。例如,
默认声音:不发出与车辆相关的声音。
默认仪表板:不显示任何仪表。
模型可以包含部分、全部或甚至不包含上述元素。如果你总是从驾驶舱的角度运行FlightGear,飞机的几何形状通常是次要的仪器几何形状。
FlightGear文档中包含了一个如何包含可选元素的文档:
飞行动力学模型(FDM)规范是飞机模型设计的必备要素。要将Simulink软金宝app件设置为给定几何模型的飞行动力学模型数据流的源,请输入这条线数据/飞机/
模型
/
模型
-set.xml
:
< / flight model < flight model >网络>
您可以通过引用现有FlightGear模型中的仪器、声音和其他可选元素,从零开始快速构建模型。这些模型提供了几何学、动力学、仪器、视图和声音的例子。它是简单的复制一个飞机文件夹的新名称,重命名模型
-set.xml文件
,修改它的网络飞行动力学,然后运行FlightGear与–飞机
设置为中的名称的标志模型
-set.xml
.
许多现有的三维飞机几何模型可用于FlightGear。访问的下载区https://www.flightgear.org查看一些可用的飞机模型。其他模型可通过网络搜索获得。搜索“flight gear aircraft model”等关键词是一个很好的起点。分发这些文件时,请确保遵守版权。
当创建您自己的几何文件时,请记住,您的显卡可以有效地渲染有限数量的表面。一些卡可以有效地渲染少于1000个表面与位图和镜面反射,名义速率为每秒30帧。其他卡片可以很容易地在10,000个表面上渲染。
如果使用特定几何体时性能降低,请通过改变飞机模型曲面的数量来衡量几何体复杂性对图形性能的影响。检查这一点的一个简单方法是用一个简单的形状(如单个三角形)替换完整的飞机几何体文件,然后用这个简单的几何体测试FlightGear。如果几何图形文件过于复杂,无法平滑显示,请使用三维几何图形编辑器通过减少几何图形中的曲面数来简化模型。
一旦您获得、修改或创建了一个飞机数据文件,您需要将它放在正确的文件夹中,以便FlightGear访问它。
要将兼容型号安装到FlightGear中,请使用以下步骤之一。选择一个适合您的平台。本节假设您已阅读安装并启动FlightGear.
如果您的平台是Windows:
进入你安装的FlightGear文件夹。打开数据
文件夹,然后飞机
文件夹:\ \ FlightGear \ \数据飞机
.
做一个文件夹模型
这里是您的飞机数据。
把模型
-set.xml
在该子文件夹中,以及所需的任何其他文件。
通常的做法是为车辆几何文件创建子目录(模型\ \
)、工具(\仪器\
),和声音(听起来\ \
).
如果你的平台是Linux:
进入已安装的FlightGear目录。打开数据
目录,然后飞机
目录:
.FlightGearBaseDirectory美元
/ /数据/飞机
创建子目录模型
/这里是您的飞机数据。
把模型
-set.xml
在那个子目录中,加上任何其他需要的文件。
通常的做法是为车辆几何文件创建子目录(/模型/
)、工具(/仪器/
),和声音(/声音/
).
如果您的平台是Mac:
打开一个终端。
进入你安装的FlightGear文件夹。打开数据
文件夹,然后飞机
文件夹:
FlightGearBaseDirectory美元/FlightGear.app/Contents/Resources/data/airpair/
做一个文件夹模型
/这里是您的飞机数据。
把模型
-set.xml
在该子文件夹中,以及所需的任何其他文件。
通常的做法是为车辆几何文件创建子目录(/模型/
)、工具(/仪器/
),和声音(/声音/
).
此示例说明了如何为动画元素(如车辆控制面和起落架)准备铰链线定义。若要启用动画,每个元素必须是几何体文件中的命名实体。生成的代码构成中所示的HL20提升体模型的一部分使用FlightGear运行HL-20示例.
FlightGear几何模型中使用的标准体坐标形成右手坐标系,从中的标准体坐标系旋转Y减-180度:
X=正面朝向车辆后部
Y车辆正靠右
Z=正值向上,例如,车轮通常具有最低Z价值观
看见关于航天坐标系为更多的细节。
在目标命名物的铰链线上找到两个点,用身体坐标将它们写为XYZ三元组或将它们放入MATLAB中®计算如下:
a=[2.98,1.89,0.53];b=[3.54,2.75,1.46];
计算点之间的差值:
Pdiff = b - a
铰链点是步骤2中的任一点(或此处所示的中点):
mid=a+pdiff/2 mid=3.2600 2.3200 0.9950
将铰链点放入中的动画范围模型
-set.xml
:
3.26 <中心> < x m > < / x m > < y m > 2.32 < / y m > < z-m > 1.00 < / z-m > < /中心>
使用步骤3中的差异定义动画轴中的相对运动矢量:
0.56 0.86 0.93
将这些步骤放在一起,即可获得HL20示例模型中使用的完整的折页线动画:
旋转 /surface positions/right aileron pos norm 30 0 3.26 2.32 <0.00 0.56 0.86
运行你的飞机的Si金宝appmulink模型,并同时在FlightGear中用飞机数据文件动画它模型
-set.xml
,您需要配置飞机数据文件,并使用一些新块修改您的Simulink模型。金宝app
以下是将FlightGear与Simulink软件连接和使用的主要步骤:金宝app
在飞机数据文件中将飞行动力学模型设置为网络说明如何创建所需的网络连接。
获取目标IP地址首先要确定运行FlightGear的计算机的IP地址。
发送Sim金宝appulink数据到FlightGear演示如何将接口和速度块添加并连接到Simulink模型。金宝app
创建一个FlightGear运行脚本演示如何编写与Simulink模型兼容的FlightGear运行脚本。金宝app
开始FlightGear指导您通过最后的步骤,使Simulink软件与FlightGear工作。金宝app
提高性能帮助您加快模型的速度。
在不同的电脑上运行FlightGear金宝app和Simulink软件说明如何将一台计算机上运行的Simulink软件中的模拟连接到另一台计算机上运行的Fligh金宝apptGear。
请务必:
从飞机数据文件中删除任何预先存在的飞行动力学模型(FDM)数据。
通过添加以下行,在飞机数据文件中指出其FDM正在从网络传输:
< / flight model < flight model >网络>
您需要Simulink模型的目标IP地址,以便将其飞行数据流传输到FlightGear。金宝app
如果您知道您的计算机名,请在MATLAB命令行中输入:
java.net.InetAddress.getByName('www.tatmou.com')
如果您在同一台计算机上运行FlightGear和Simulink软件,请在M金宝appATLAB命令行中输入计算机名:
java.net.InetAddress.getLocalHost
如果你使用的是Windows系统,请在DOS提示符处输入:
ipconfig /所有
检查结果输出中的IP地址条目。每个以太网设备有一个条目。
要以所需的初始条件(地点、日期、时间、天气、操作模式)启动FlightGear,最好创建一个运行脚本使用生成运行脚本块或使用FlightGear提供的接口.
如果你为你想要链接到FlightGear的每个模型创建单独的运行脚本,并将它们放在单独的目录中,那么在开始你的Simulink模型之前,从MATLAB接口运行适当的脚本。金宝app
使用生成运行脚本块。创建运行脚本的最简单方法是使用生成运行脚本块。使用以下步骤:
打开飞行模拟器接口子库。
创建一个新的Simulin金宝appk模型或打开一个现有的模型。
将生成运行脚本块拖动到Simulink图中。金宝app
双击生成运行脚本块。其对话框打开。注意那三层玻璃,FlightGear,网络,文件.
在输出文件名参数的文件选项卡,输入输出文件的名称。这个名称应该是您希望使用这些初始参数启动FlightGear的命令的名称。使用适当的文件扩展名:
平台 | 扩展 |
---|---|
窗户® | 。bat |
Linux®和macOS | . sh |
例如,如果您的文件名为runfg.bat
,使用runfg
命令以执行运行脚本并启动FlightGear。
在FlightGear基本目录参数的文件选项卡,指定FlightGear安装文件夹的名称。
在FlightGear几何模型名称参数的文件选项卡中,指定子文件夹的名称FlightGear
/数据/飞机
文件夹,包含所需的模型几何形状。
根据需要指定初始条件。
单击生成脚本按钮的顶部参数地区
Aerospace Blockset软件生成运行脚本,并将其保存在您的MATLAB工作文件夹下的文件名中指定的文件>输出文件名领域
选中或清除这些复选框,然后
要指示FlightGear在模拟器运行时自动安装所需的景物,请选择在模拟过程中安装FlightGear场景(需要互联网连接).对于Windows系统,当启用此选项启动FlightGear时,您可能会遇到错误消息。有关更多信息,请参见安装额外的FlightGear.
要禁用FlightGear着色器选项-选择禁用FlightGear着色器选项.
如果需要,重复步骤5到10以生成其他运行脚本。
点击好啊关闭对话框。您不需要使用Simulink模型保存Generate Run Script块。金宝app
生成运行脚本块将运行脚本保存为工作文件夹中的文本文件。这是一个运行脚本文件内容的例子:
>>cd C:\Applications\FlightGear->>设置FG\u ROOT=C:\Applications\FlightGear- \data>>cd\bin\>>fgfs--aircraft=HL20--fdm=network,localhost,55015502,5503--雾最快--禁用云层--开始日期lat=2004:06:01:09:00:00--禁用声音--空中--启用冻结--机场=KSFO--跑道=10L--高度=7224--航向=113--偏移距离=4.72--偏移方位=0
使用FlightGear提供的界面。FlightGear启动器GUI (FlightGear的一部分,不是Aerospace Blockset产品)可以让你构建简单和高级选项到一个可见的FlightGear运行命令。
如果你的计算机有足够的计算能力同时运行Simulink软件和FlightGear,在Windows系统上启动FlightGear金宝app的一个简单方法是创建一个MATLAB桌面按钮,包含以下命令,以执行类似于上面创建的运行脚本:
系统('runfg&'))
要创建桌面按钮,请执行以下操作:
在MATLAB命令窗口中,选择捷径并点击新快捷方式.这个快捷键编辑器对话框打开。
设置标签,回拨,类别,偶像字段如下图所示。
点击拯救.
这个FlightGear按钮出现在MATLAB桌面中。例如,如果单击它,输出文件runfg.bat
,在当前文件夹中运行。
一旦你完成了设置,启动FlightGear并运行你的模型:
确保模型在可写文件夹中。打开模型,并更新图表。此步骤确保编译任何引用的块代码,并且在运行之前对框图进行编译。一旦你启动了FlightGear,它就会在运行时消耗掉所有可用的处理器电源。
单击FlightGear按钮或手动运行FlightGear运行脚本。
当FlightGear启动时,它会在运行脚本中指定的初始坐标处显示初始视图。如果你在不同的电脑上运行Simulink软件和金宝appFlightGear,安排同时查看这两个显示器。
现在开始模拟并查看FlightGear中的动画。
如果Simuli金宝appnk模型很复杂,无法以可视化所需的聚合速率运行,则可能需要
在Simulink中使用加速器模式(金宝app加速.)
通过在一台计算机上运行Simulink模型,在另一台计算机上运行FlightG金宝appear来释放处理器的能量。使用目的IP地址参数的发送net_fdm数据包到FlightGear块指定FlightGear运行的计算机的网络地址。
首先模拟Simulink模金宝app型,然后保存生成的转换(x设在,Y设在,Z-轴)和位置(纬度、经度、高度),并在中使用FlightGear动画对象航空航天工具箱将数据可视化。
提示
如果FlightGear使用的计算机资源比您想要的多,您可以将其调度优先级更改为较低的优先级。例如,请参见Windows等命令开始
和Linux不错的
或其等价物。
可以在一台计算机(源)的Simulink环境中模拟航空航天系统,并使用其模拟输出在另一台计算机(目标)上动画金宝appFlightGear。步骤与前面介绍的步骤类似,只是进行了一些修改。
获取运行FlightGear的计算机的IP地址。看见获取目标IP地址前.
在中输入此目标计算机IP地址发送net_fdm数据包到FlightGear块。看见发送Sim金宝appulink数据到FlightGear前.
更新生成运行脚本块在您的模型与目标计算机FlightGear基础文件夹。重新生成运行脚本,以反映目标计算机的独立身份。
将生成的运行脚本复制到目标计算机。开始FlightGear那里。看见开始FlightGear前.
如果您还想从FlightGear接收数据,请使用从FlightGear接收net_ctrl数据包块。输入运行FlightGear的计算机的IP地址源IP地址参数。
更新接收数据的运行脚本。使用生成运行脚本块以重新生成运行脚本。
在源计算机上启动Sim金宝appulink模型。在目标上运行的FlightGear显示模拟运动。
Aerospace Blockset软件包含HL-20提升体的示例模型,该模型使用了FlightGear接口和项目。这个例子说明了Aerospace Blockset软件的许多特性。它还包含一个变体子系统块,您可以使用它来指定模拟的数据源。您可能希望使用Variant Subsystem块来更改地形数据源,或者如果您不想使用FlightGear但仍想模拟模型的话。
要在尝试模拟这个模型之前安装和配置FlightGear,请参见飞行模拟器接口.另外,在尝试模拟此模型之前,请先阅读安装并启动FlightGear.
注
本示例的步骤2复制了HL-20模拟的预配置几何体projectroot
\金宝app支持
到FlightGear
\数据\飞机\
. 它要求您具有计算机的系统管理员权限。如果您没有这些权限,请根据您的平台手动复制这些文件。
复制HL20
文件夹的projectroot
\金宝app支持
文件夹到FlightGear
\数据\飞机\
文件夹中。这个文件夹包含HL-20模拟和预配置的几何图形HL20-set.xml
. 档案projectroot
\金宝app支持\HL20\Models\HL20.xml
定义几何图形。
对于Windows平台,使用管理员权限启动MATLAB应用程序。例如,在“开始”菜单中,右键单击MATLAB应用程序,然后选择以管理员身份运行.
有关更多信息,请参见将飞机模型导入FlightGear.
复制HL20
目录的projectroot
/金宝app支持
目录到FlightGearBaseDirectory美元
/ /数据/飞机
目录中。这个目录包含HL-20模拟和预配置的几何图形HL20-set.xml
. 档案projectroot
/金宝app支持/ HL20 /模型/ HL20.xml
定义几何图形。
有关此步骤的更多信息,请参见将飞机模型导入FlightGear.
复制HL20
文件夹的projectroot
/金宝app支持
文件夹到FlightGearBaseDirectory美元
/FlightGear.app/Contents/Resources/data/airpair/
文件夹中。这个文件夹包含HL-20模拟和预配置的几何图形HL20-set.xml
. 档案projectroot
/金宝app支持/ HL20 /模型/ HL20.xml
定义几何图形。
有关此步骤的更多信息,请参见将飞机模型导入FlightGear.
启动MATLAB接口。通过输入asbhl20
在MATLAB命令窗口中,或者在Aerospace Blockset Examples页面中找到示例条目(HL-20 with FlightGear Interface)。模型的项目启动,模型打开。
如果这是您第一次为这个模型运行FlightGear,您需要创建并运行一个定制的FlightGear运行脚本。你可以通过以下方式之一来实现:
在模型中,双击Install FlightGear模块并按照模块中的步骤操作。最初,这个方块是红色的。当您按照块中列出的步骤操作时,块掩码将发生变化。
要启动模型的FlightGear,单击在FlightGear中启动HL20.
现在开始模拟并在FlightGear中查看动画。
注
在FlightGear窗口的焦点,按v在不同飞机视图之间切换的关键点:座舱视图、直升机视图、追逐视图等。
你可以在Simulink模型和运行中的FlightGear飞行模拟器之间发送和接金宝app收数据。
将你的模型与FlightGear连接的最简单的方法是使用FlightGear预配置的6自由度动画区块:
这个FlightGear预配置的6自由度动画块是包含FlightGear的打包净fdm数据包和发送net_fdm数据包到FlightGear阻碍:
这些块将数据从模型传输到FlightGear会话。模块是独立的,以实现最大的灵活性和兼容性。
这个FlightGear的打包净fdm数据包块格式化与来自模型输入的FlightGear兼容的二进制结构。在默认配置中,块仅显示6DoF端口,但您可以从块对话框配置支持50多个不同信号的完整FlightGear接口:金宝app
这个发送net_fdm数据包到FlightGearblock将此数据包通过UDP传输到指定的IP地址和端口,其中FlightGear会话等待传入的数据流。使用你在获取目标IP地址.
这个模拟速度块减慢模拟速度,使其聚合运行速率为每秒时钟时间1秒模拟时间。您还可以使用它指定模拟时间与时钟时间的其他比率。
为了提高模型模拟的准确性,您可能需要将FlightGear环境变量发送到Simulink模型。金宝app使用以下区块:
从FlightGear接收net_ctrl数据包-接收网络控制和环境数据包net_ctrl
来自FlightGear模拟器中的Simulink模型的仿真,或金宝app者来自FlightGear会话。
从FlightGear中解压net_ctrl包-解包从FlightGear收到的net_ctrl变量包,并使它们在Simulink环境中可用。金宝app
生成运行脚本-在当前平台上生成一个定制的FlightGear运行脚本。
有关如何使用这些块向Simulink模型发送数据的示例,请参见金宝appHL-20项目与可选的FlightGear接口.
这些块使用UDP将数据从FlightGear传输到Simulink环境。注意以下几点:金宝app
当主机和目标是Windows或Linux平台时,可以为主机和目标使用Windows或Linux平台的任意组合。
当主机或目标是Mac平台,只使用Mac主机和目标的平台。