logo资料库

FlightGear与Matlab联合仿真.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
MATLAB与FlightGear联合飞行仿真
MATLAB 与 FlightGear 联合飞行仿真 1 MATLAB 与 FlightGear 联合飞行仿真 飞行器模型结构和要求 飞行器模型放在FlightGearRoot/data/Aircraft/和其子目录下。一个完整的飞行器模型 必须包括一个名为model-set.xml的管理文件。 模型其他的元素都是可选的,它们与模型目录放在同一层目录下。它们包括  飞行器的形状和颜色  飞行器的表面贴图  飞行器的几何描述  驾驶舱的三维模型  飞行器的声音效果  飞行动力学模型  模拟器视角  飞行器的子模型,可以独立运动。 如何将上述元素放到模型中,请参考 http://www.flightgear.org/Docs/fgfs-model-howto.html network 飞行动力学模型 对于一个飞行器模型,飞行动力学模型(FDM)是必须说明的。要将Simulink作为飞行动 力学模型的数据来源,要在data/Aircraft/model/model-set.xml文件中加入下面的语句: 获得或修改已经存在的飞行器模型 导入飞行器模型到FlightGear 1.打开FlightGear的安装目录/FlightGear/data/Aircraft/ 2.在其下创建一个名为model的子目录来存放你的模型数据 3.把model-set.xml文件放到目录下 举例说明 下面就以HL20为例来说明如何定义它的铰链动作 XGY 2917 西安
MATLAB 与 FlightGear 联合飞行仿真 2 1.FlightGear中使用的弹体坐标系是右手坐标系,所以要将标准的弹体坐标系的Y轴旋转 -180度。 X 指向飞行器的后方 Y 指向飞行器的右方 Z 指向上方 2.在铰链线上找出两点,在MATLAB中以XYZ方式用数组表示 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.同样可以计算出铰链的中点 mid = a + pdiff/2 mid = 3.2600 2.3200 0.9950 5.将上述铰链点添加到model-set.xml的动画观察器中
3.26 2.32 1.00
6.利用第三步计算出的值来定义运动轴的矢量 0.56 0.86 0.93 XGY 2917 西安
MATLAB 与 FlightGear 联合飞行仿真 3 7.将这些放到一起来得到HL20模型的铰链运动参数 rotate RightAileron /surface-positions/right-aileron-pos-norm 30 0
3.26 2.32 1.00
0.56 0.86 0.93
在Simulink中运行FlightGear 要在Simulink中调用FlightGear,你必须在FlightGear对应飞行器模型数据文件 model-set.xml中添加配置信息,并且还要在Simulink中使用一些专门的模块。 将飞行动力学模型添加到数据文件中的Network中 1.删除以前存在的所有的FDM数据文件 2.添加下面的语句来提示FDM数据流是从网络上获取的 network 在Simulink中添加并连接接口模块 最简单的方式是使用FlightGear Preconfigured 6DoF Animation模块,还需要使用Pack net_fdm Packet for FlightGear和Send net_fdm Packet to FlightGear模块。 Pack net_fdm Packet for FlightGear模块将数据格式化为FlightGear模型输入需要的 XGY 2917 西安
MATLAB 与 FlightGear 联合飞行仿真 4 文件格式,默认情况下仅显示6DoF的端口,但这个接口支持多达50项配置。 Send net_fdm Packet to FlightGear模块通过UDP将数据流发送到指定IP和端口。 在Animation Support Utilities Sublibrary子目录下的Simulation Pace模块可以用来 配置仿真采样时间。 创建FlightGear运行脚本 要让FlightGear按照指定的初始条件运行(位置,日期,时间,天气,操作模式),最 好的办法是创建一个运行脚本,可以使用Generate Run Script模块来完成。 使用Generate Run Script模块 1.打开模型,将Generate Run Script模块拖放到模型中 2.双击模块,打开如下对话框 XGY 2917 西安
MATLAB 与 FlightGear 联合飞行仿真 5 3.在Output file name一栏中输入输出文件的名称,这个文件名扩展名为.bat,文件名 同时也是在MATLAB命令窗口中的运行命令。 4.在FlightGear base directory一栏中,设定FlightGear的安装目录。 5.在FlightGear geometry model name一栏中,输入模型文件夹名称。 6.指定需要的初始条件 7.点击Generate Script按钮来生成运行脚本文件。 生成的脚本文件存放在工作目录下面,下面是一个脚本文件的内容: >> cd D:\Applications\FlightGear-0.9.8a >> SET FG_ROOT=D:\Applications\FlightGear-0.9.8a\data >> cd \bin\Win32\ >> fgfs --aircraft=HL20 --fdm=network,localhost,5501,5502,5503 --fog-fastest --disable-clouds --start-date-lat=2004:06:01:09:00:00 --disable-sound --in-air --enable-freeze --airport-id=KSFO --runway=10L --altitude=7224 --heading=113 --offset-distance=4.72 --offset-azimuth=0 开始运行 如果你的计算机有足够的能力来同时运行Matlab和FlightGear,那么只要在Matlab窗口 dos('runfg &') 中输入 便可以运行了。 在不同的计算机上运行 如果你的Simulink和FlightGear在两台不同的计算机上运行,请按下面的方法来做 1.获得运行FlightGear计算机的IP地址 2.在Send net_fdm Packet to FlightGear模块中输入得到的IP地址 3.重新生成运行脚本 4.将生成的运行脚本拷贝到运行FlightGear的计算机中,并用它运行FlightGear 5.运行你的Simulink程序,FlightGear便会显示出仿真结果。 XGY 2917 西安
分享到:
收藏