使用本节了解如何使用FlightGear飞行模拟器和航空航天区块集™ 用于可视化Simulink的软件万博1manbetx®飞机模型。如果您还没有安装FlightGear,请参见飞行模拟器接口第一。
万博1manbetx驱动HL-20型在KSFC着陆照明弹中
在您可以可视化您的飞机动力学之前,您需要创建或获得一个与FlightGear兼容的飞机模型文件。本节将解释如何做到这一点。
FlightGear支持超过12种3d几何文件格式,您可以选择其中一种。万博1manbetx
目前,最流行的三维几何文件格式是AC3D格式,它带有后缀* .ac
.AC3D是一个低成本的几何编辑器www.ac3d.org
.
飞机模型包含在FlightGearRoot
/数据/飞机/
文件夹和子文件夹。一个完整的飞机模型必须包含一个通过所需的飞机主文件链接的文件夹模型
-set.xml
.
所有其他模型元素都是可选的。这是一个可选元素的部分列表,你可以放在一个飞机数据文件夹:
车辆对象及其形状和颜色
车辆对象的表面位图
变量几何描述
驾驶舱仪表三维模型
车辆的声音与事件相关(例如,引擎,齿轮,风噪声)
飞行动力学模型
模拟器的观点
与车辆相关联的子模型(独立可移动的项目)
不使用这些元素时,模型行为将恢复为默认值。例如,
默认声音:不发出与车辆相关的声音。
默认仪表面板:没有仪表显示。
模型可以包含上述部分、全部或甚至不包含任何元素。如果始终从驾驶舱视图运行FlightGear,则飞机几何图形通常是仪器几何图形的次要图形。
FlightGear文档中包含了一个如何包含可选元素的文档:
飞行动力学模型(FDM)规范是飞机模型设计的必备要素。要将Simulink软万博1manbetx件设置为给定几何模型的飞行动力学模型数据流的源,请输入这条线数据/飞机/
模型
/
模型
-set.xml
:
< / flight model < flight model >网络>
您可以通过引用现有FlightGear模型中的仪器、声音和其他可选元素,从零开始快速构建模型。这些模型提供了几何学、动力学、仪器、视图和声音的例子。它是简单的复制一个飞机文件夹的新名称,重命名模型
-set.xml文件
,将其修改为网络飞行动力学,然后使用运行FlightGear飞机
中名称的标志模型
-set.xml
.
许多现有的三维飞机几何模型都可以与FlightGear一起使用。的下载区https://www.flightgear.org看一些可用的飞机模型。其他模型可以通过Web搜索获得。搜索关键字,如“飞行齿轮飞机模型”是一个很好的起点。当分发这些文件时,请确保遵守版权。
当创建您自己的几何文件时,请记住,您的显卡可以有效地渲染有限数量的表面。一些卡可以有效地渲染少于1000个表面与位图和镜面反射,名义速率为每秒30帧。其他卡片可以很容易地在10,000个表面上渲染。
如果在使用特定几何图形时性能变慢,可以通过改变飞机模型表面的数量来衡量几何复杂性对图形性能的影响。检查这一点的一个简单方法是用一个简单的形状替换完整的飞机几何文件,比如一个三角形,然后用这个更简单的几何来测试FlightGear。如果一个几何文件太复杂,无法平滑显示,使用3d几何编辑器通过减少几何中的曲面数量来简化模型。
一旦您获得、修改或创建了一个飞机数据文件,您需要将它放在正确的文件夹中,以便FlightGear访问它。
要安装一个兼容的模型到FlightGear,使用下列程序之一。选择一个适合您的平台。本节假设您已经阅读了上述内容安装并启动FlightGear.
如果你的平台是Windows:
进入你安装的FlightGear文件夹。打开数据
文件夹,然后飞机
文件夹:\ \ FlightGear \ \数据飞机
.
做一个文件夹模型
\这是你的飞机数据。
把模型
-set.xml
再加上其他需要的文件。
通常的做法是为车辆几何文件创建子目录(模型\ \
)、工具(\仪器\
)和声音(听起来\ \
).
如果你的平台是Linux:
进入已安装的FlightGear目录。打开数据
目录,然后飞机
目录:
.FlightGearBaseDirectory美元
/数据/飞机/
做一个目录模型
/这里是您的飞机数据。
把模型
-set.xml
在那个子目录中,加上任何其他需要的文件。
通常的做法是为车辆几何文件创建子目录(/模型/
)、工具(/工具/
)和声音(/听起来/
).
如果你的平台是Mac:
打开一个终端。
进入你安装的FlightGear文件夹。打开数据
文件夹,然后飞机
文件夹:
FlightGearBaseDirectory美元/ FlightGear.app /内容/资源/数据/飞机/
做一个文件夹模型
/这里是您的飞机数据。
把模型
-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 2.32 1.00
使用步骤3的区别来定义动画轴中的相对运动矢量:
x 0.56 x <轴> < > < / > < y > 0.86 < / y > < z > 0.93 z < / > < > /轴
将这些步骤放在一起,以获得HL20示例模型中使用的完整铰链线动画:
<动画> <类型> < /旋转类型> <对象名称> RightAileron < /对象名称> <属性> / surface-positions / right-aileron-pos-norm < /属性> <因素> 30 < /因素> < offset-deg > 0 < / offset-deg > <中心> < x m > 3.26 < / x m > < y m > 2.32 < / y m > < z-m > 1.00 < / z-m > < /中心> <轴> < x > 0.56 x < / > < y > 0.86 < / y > < z > 0.93 < / z > < /轴> < /动画>
运行你的飞机的Si万博1manbetxmulink模型,并同时在FlightGear中用飞机数据文件动画它模型
-set.xml
,您需要配置飞机数据文件,并使用一些新块修改您的Simulink模型。万博1manbetx
以下是将FlightGear与Simulink软件连接并使用的主要步骤:万博1manbetx
在飞机数据文件中将飞行动力学模型设置为网络说明如何创建所需的网络连接。
获取目的IP地址首先要确定运行FlightGear的计算机的IP地址。
向Flig万博1manbetxhtGear发送Simulink数据演示如何添加和连接接口和步伐块到您的Simulink模型。万博1manbetx
创建FlightGear运行脚本演示如何编写与Simulink模型兼容的FlightGear运行脚本。万博1manbetx
开始FlightGear指导您通过最后的步骤,使Simulink软件与FlightGear工作。万博1manbetx
提高性能帮助您加快您的模型。
在不同的计算机上运行FlightGea万博1manbetxr和Simulink软件解释如何将运行在一台计算机上的Simulink软件与运行在另一台计算机上的FlightGea万博1manbetxr连接起来。
一定要:
从飞机数据文件中删除任何预先存在的飞行动力学模型(FDM)数据。
在飞机数据文件中,通过添加以下行来表明它的FDM正在从网络传输:
< / flight model < flight model >网络>
您需要Simulink模型的目标IP地址,以便将其飞行数据流传输到FlightGear。万博1manbetx
如果你知道你的计算机名,在MATLAB命令行输入:
java.net.InetAddress.getByName(“www.tianjin-qmedu.com”)
如果您在同一台计算机上运行FlightGear和Simulink软件,请在M万博1manbetxATLAB命令行输入您的计算机名称:
java.net.InetAddress.getLocalHost
如果你使用的是Windows系统,请在DOS提示符处输入:
ipconfig /所有
检查结果输出中的IP地址条目。每个以太网设备有一个条目。
要以所需的初始条件(地点、日期、时间、天气、操作模式)启动FlightGear,最好创建一个运行脚本使用生成运行脚本块或使用FlightGear提供的界面.
如果你为你想要链接到FlightGear的每个模型创建单独的运行脚本,并将它们放在单独的目录中,那么在开始你的Simulink模型之前,从MATLAB接口运行适当的脚本。万博1manbetx
使用生成运行脚本块。创建运行脚本的最简单方法是使用生成运行脚本块。使用以下步骤:
打开飞行模拟器接口子库。
创建一个新的Simulin万博1manbetxk模型或打开一个现有的模型。
将生成运行脚本块拖放到Simulink图中。万博1manbetx
双击生成运行脚本块。其对话框打开。注意那三层玻璃,FlightGear,网络,文件.
在输出文件的名字参数文件选项卡上,键入输出文件的名称。此名称应该是要使用这些初始参数启动FlightGear的命令的名称。使用适当的文件扩展名:
平台 | 扩展 |
---|---|
窗户® | 蝙蝠先生 |
Linux®和马科斯 | . 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块。万博1manbetx
生成运行脚本块将运行脚本保存为工作文件夹中的文本文件。这是一个运行脚本文件内容的例子:
>>cd C:\Applications\FlightGear-2019.1>>设置FG\u ROOT=C:\Applications\FlightGear-2019.1\data>>cd\bin\>>fgfs--aircraft=HL20--fdm=network,localhost,550155025503--雾最快--禁用云层--开始日期lat=2004:06:01:09:00:00--禁用声音--空中--启用冻结--机场=KSFO--跑道=10L--高度=7224--航向=113--偏移距离=4.72--偏移方位=0
使用FlightGear提供的界面。FlightGear launcher GUI(FlightGear的一部分,而不是Aerospace Blockset产品)允许您将简单和高级选项构建到可见的FlightGear运行命令中。
如果你的计算机有足够的计算能力同时运行Simulink软件和FlightGear,在Windows系统上启动FlightGear万博1manbetx的一个简单方法是创建一个MATLAB桌面按钮,包含以下命令,以执行类似于上面创建的运行脚本:
系统('runfg&'))
创建桌面按钮:
在MATLAB命令窗口中,选择快捷键并点击新快捷方式.的快捷键编辑器对话框打开。
设置标签,回调,类别,图标字段如下图所示。
点击保存.
的FlightGear按钮出现在您的MATLAB桌面。如果你点击它,输出文件,例如runfg.bat
,在当前文件夹中运行。
一旦你完成了设置,启动FlightGear并运行你的模型:
确保模型在可写文件夹中。打开模型,并更新图表。此步骤确保编译任何引用的块代码,并且在运行之前对框图进行编译。一旦你启动了FlightGear,它就会在运行时消耗掉所有可用的处理器电源。
单击FlightGear按钮或手动运行FlightGear运行脚本。
当FlightGear启动时,它会在运行脚本中指定的初始坐标处显示初始视图。如果你在不同的电脑上运行Simulink软件和万博1manbetxFlightGear,安排同时查看这两个显示器。
现在开始模拟并查看FlightGear中的动画。
如果您的Simu万博1manbetxlink模型很复杂,并且不能以可视化所需的聚合速度运行,那么您可能需要这样做
在Simulink中使用加速器模式(万博1manbetx执行加速度(万博1manbetx模型)。)
通过在一台计算机上运行Simulink模型,在另一台计算机上运行FlightG万博1manbetxear来释放处理器的能量。使用目的IP地址参数发送net_fdm数据包到FlightGear块指定运行FlightGear的计算机的网络地址。
首先模拟Simulink模万博1manbetx型,然后保存结果翻译(x设在,y设在,z-axis)和位置(纬度,经度,海拔),并使用FlightGear Animation对象航空航天工具箱将数据可视化。
如果FlightGear使用的计算机资源超出了您的预期,您可以将其调度优先级调整为较低的优先级。例如,查看像Windows这样的命令开始
和Linux不错的
或其等价物。
可以在一台计算机(源)的Simulink环境中模拟航空航天系统,并使用其模拟输出在另一台计算机(目标)上动画万博1manbetxFlightGear。步骤与前面介绍的步骤类似,只是进行了一些修改。
获取运行FlightGear的计算机的IP地址。看到获取目的IP地址前面的.
将目标计算机的IP地址输入发送net_fdm数据包到FlightGear街区。看向Flig万博1manbetxhtGear发送Simulink数据前面的.
更新生成运行脚本使用目标计算机FlightGear基本文件夹在模型中创建块。重新生成运行脚本以反映目标计算机的单独标识。
看到创建FlightGear运行脚本前面的.
将生成的运行脚本复制到目标计算机。开始FlightGear那里。看到开始FlightGear前面的.
如果您还想从FlightGear接收数据,请使用从FlightGear接收net_ctrl数据包块。输入运行FlightGear的计算机的IP地址源IP地址参数。
更新接收数据的运行脚本。使用生成运行脚本块以重新生成运行脚本。
在源计算机上启动Sim万博1manbetxulink模型。FlightGear在目标上运行显示模拟运动。
航空航天区块集软件包含HL-20提升体的示例模型,该模型使用FlightGear接口和项目。此示例说明了航空航天区块集软件的许多功能。它还包含一个变量子系统块,可用于指定模拟的数据源。如果您不想使用FlightGear但仍想模拟模型,则可能需要使用变体子系统块来更改地形数据源。
要在尝试模拟这个模型之前安装和配置FlightGear,请参见飞行模拟器接口.另外,在尝试模拟此模型之前,请先阅读安装并启动FlightGear.
本例的第2步复制HL-20模拟的预先配置的几何图形projectroot
\万博1manbetx支持
来FlightGear
\ \ data \飞机
.它要求您拥有计算机的系统管理员权限。如果您没有这些特权,根据您的平台,手动复制这些文件。
抄袭HL20
文件夹的projectroot
\万博1manbetx支持
文件夹FlightGear
\ \ data \飞机
文件夹中。这个文件夹包含HL-20模拟和预配置的几何图形HL20-set.xml
. 档案projectroot
\万博1manbetx \ HL20 \ \ HL20.xml模型的支持
定义了几何。
对于Windows平台,使用管理员权限启动MATLAB应用程序。例如,在开始菜单中,右键单击MATLAB应用程序,然后选择以管理员身份运行.
有关更多信息,请参见将飞机模型导入FlightGear.
抄袭HL20
目录的projectroot
/万博1manbetx支持
目录FlightGearBaseDirectory美元
/数据/飞机/
目录。该目录包含HL-20模拟和试验的预配置几何体HL20-set.xml
. 档案projectroot
/万博1manbetx支持/ HL20 /模型/ HL20.xml
定义了几何。
有关此步骤的更多信息,请参见将飞机模型导入FlightGear.
抄袭HL20
文件夹的projectroot
/万博1manbetx支持
文件夹FlightGearBaseDirectory美元
/ FlightGear.app /内容/资源/数据/飞机/
文件夹中。这个文件夹包含HL-20模拟和预配置的几何图形HL20-set.xml
. 档案projectroot
/万博1manbetx支持/ HL20 /模型/ HL20.xml
定义了几何。
有关此步骤的更多信息,请参见将飞机模型导入FlightGear.
启动MATLAB接口。输入asbhl20
在MATLAB命令窗口中,或通过在Aerospace Blockset Examples页面中查找示例条目(具有FlightGear接口的HL-20)。模型的项目将启动,模型将打开。
如果这是您第一次为此机型运行FlightGear,则需要创建并运行自定义的FlightGear运行脚本。您可以使用以下方法之一执行此操作:
在模型中,双击Install FlightGear模块并按照模块中的步骤操作。最初,这个方块是红色的。当您按照块中列出的步骤操作时,块掩码将发生变化。
要为模型启动FlightGear,请单击用FlightGear发射HL20.
现在开始模拟并在FlightGear中查看动画。
在FlightGear窗口的焦点,按V在不同的飞机视图之间交替的关键:驾驶舱视图,直升机视图,追逐视图,等等。
你可以在Simulink模型和运行中的FlightGear飞行模拟器之间发送和接万博1manbetx收数据。
将你的模型与FlightGear连接的最简单的方法是使用FlightGear预配置6DoF动画布洛克:
的FlightGear预配置6DoF动画块是包含为FlightGear打包net_fdm包和发送net_fdm数据包到FlightGear块:
这些块将数据从模型传输到FlightGear会话。为了最大限度的灵活性和兼容性,这些块是分开的。
的为FlightGear打包net_fdm包block从模型输入格式化与FlightGear兼容的二进制结构。在默认配置中,块只显示6DoF端口,但你可以配置完整的FlightGear接口,从块对话框支持50多个不同的信号:万博1manbetx
的发送net_fdm数据包到FlightGearblock将此数据包通过UDP传输到指定的IP地址和端口,其中FlightGear会话等待传入的数据流。使用你在获取目的IP地址.
的仿真速度块减慢模拟,使其聚合运行速率为1秒模拟时间/ 1秒时钟时间。您还可以使用它来指定模拟时间与时钟时间的其他比率。
为了提高模型模拟的准确性,您可能需要将FlightGear环境变量发送到Simulink模型。万博1manbetx使用以下区块:
从FlightGear接收net_ctrl数据包—接收网络控制和环境数据包net_ctrl
来自FlightGear模拟器中Simulink模型的模拟,或来万博1manbetx自FlightGear会话。
从FlightGear解包net_ctrl数据包-解包从FlightGear收到的net_ctrl变量包,并使它们在Simulink环境中可用。万博1manbetx
生成运行脚本-在当前平台上生成自定义的FlightGear运行脚本。
有关如何使用这些块将数据发送到Simulink模型的示例,请参见万博1manbetxHL-20项目与可选的FlightGear接口.
这些块使用UDP从FlightGear传输数据到Simulink环境。万博1manbetx请注意以下几点:
当主机和目标是Windows或Linux平台时,可以为主机和目标使用Windows或Linux平台的任意组合。
当主机或目标是雨衣平台,只使用雨衣主机和目标的平台。
在一个麦金塔电脑FlightGear v2.6或更高版本的系统,如果你的模型使用以下块,你可能会看到意想不到的结果(例如,非常大或非常小的数据值):
要解决此问题,请执行以下操作:
在模型中,更改FlightGear版本参数v2.4
两块。
保存并重新运行模型。
结果现在应该和预期的一样。