Flightgear简介

合集下载

flightgear

flightgear

基本架构,架构分析的前提是编译flightgear在flightgear内部,命令行参数分为6种类型:BOOL、String、Double、Int、Channel、Func其中Bool、String、Double、Int都是直接对相应的属性(可以理解为内部的变量)进行赋值;如:--airport=ZSSS 初始化时设置机场ICAO为ZSSS(上海虹桥)Func类型则是在初始化阶段直接调用内部函数进行处理。

如:--random-wind 初始化时调用fgOptRandomWind,设置随即风不过有些Func类型的参数是需要输入参数的,如:--func_key=func_argvChannel类型参数主要用于外部接口通信,一般都可以复用(如:在命令行中可以有多个--native-fdm=xxx)这种类型的参数有大家熟知的--native-fdm、--generic、--atlas等具体的源码解析流程见图flightgear网络接口模块是有FGIO子系统来完成的。

FGIO子系统支持各种通信协议。

通信协议包括大家常用的:Native-fdm,Native,generic,jsclient等(也即前篇介绍的channel 类型参数)对应的参数形式:--protocol=medium,direction,hz,medium_options,...在flightgear架构分析中提到了,对于子系统,flightgear在初始化阶段调用子系统的bind(),init(),主循环阶段调用子系统的update(),最后调用子系统的shutdown。

因此对于FGIO子系统,在程序中也主要体现在bind、init、update和shutdown这几个函数的处理上。

关于FGIO的结构如下图通信协议的具体实现在FGIO的FGProtocol列表中,FGIO在每个周期都会调用每个FGProtocol 的处理函数,关于FGProtocol的结构如下图下面具体对generic通信进行介绍,generic是通过FGGeneric(FGProtocol子类)来完成的,结构如图所示Flightgear多人飞行对应的参数是multiplay。

基于FlightGear的客机飞行模拟软件设计

基于FlightGear的客机飞行模拟软件设计

航空航天科学技术科技创新导报 Science and Technology Innovation Herald10DOI:10.16660/ki.1674-098X.2018.15.010基于FlightGear的客机飞行模拟软件设计①侯学智(北京首都国际机场北京飞机维修工程有限公司 北京 100621)摘 要:基于FlightGear的飞行仿真模型,设计了适用于客机飞行模拟器的软件。

软件核心为采用FlightGear实现的飞行仿真软件,同时为用户开发了丰富的图形化接口软件:导航台编辑软件、航路编辑软件及动力学编辑软件。

基于以上设计,用户可开展对客机驾驶舱仪表、导航台数据库、航路及动力学的设计。

该飞行模拟器软件开放性及图化性程度高,能够满足教学、科研及实验需求。

关键词:飞行模拟 飞行仿真 导航台 航路中图分类号:TP391.9 文献标识码:A 文章编号:1674-098X(2018)05(c)-0010-02①作者简介:侯学智(1980—),男,汉族,山西人,硕士,中级工程师,主要从事科技项目管理。

近年来,一方面是中国民航进入持续成长期,运量持续增长,运营飞机大量投入;另一方面是狭窄的空域、有限的民航航线时刻资源,使得机场拥挤和堵塞现象更加突出,民航飞行正越来越多地受到空管系统的影响。

因此,客机飞行模拟不仅要模拟客机本身的飞行特性,更要能提供对导航台和航路的编辑接口。

本文提出的客机飞行模拟软件对以上功能均进行了详细的阐述。

1 系统总体设计客机飞行模拟器软件主要由飞行仿真软件、导航台编辑软件、航路编辑软件及动力学编辑软件组成。

其中,飞行仿真软件是飞行模拟软件的核心,用于仿真飞行逻辑,显示飞机驾驶舱仪表等,导航台编辑软件、航路编辑软件及动力学编辑软件用于对导航台、航路及动力学系数等飞行参数进行编辑。

2 分系统设计2.1 飞行仿真软件飞行仿真软件采用FlightGear实现。

它可以提供完整的飞机仿真框架,允许用户添加自己的各种模拟功能和模型。

FlightGear帮助手册第一部分

FlightGear帮助手册第一部分

•小手册 /Docs/InstallGuide/FGShortRef.html, •其他文档 /FlightGear/Docs. • flightgear 维基百科 , 最后:
一般大家都不太喜欢阅读这些帮助手册,如果您确信您的显卡支持 OpenGL 以及操作系统是以下中的一个
The FlightGear Manual version 1.9.0 December 20, 2008
For FlightGear version 1.9.0
序言
FlightGear 是由网络上一些模拟飞行和编程爱好者开发的一款免费和自由
的模拟飞行软件。这本使用手册编写的目的是指导初学者如何使用 FlightGear。
� 所有商业模拟飞行软件都有一个严重的缺点:商业软件都是由一小 队开发人员根据自己定义软件的功能和需求进行开发的,所以只能 提供有限的接口给用户。开发团队也一般不会采用用户提出的软件 改进意见。相反,FlightGear 是一款开源的软件,源代码对于任何人 都是公开和可修改的。
� 商业模拟飞行软件只能在软件功能和特点方面进行折中。商业公司 都希望为用户能提供一个宽广的平台,包括飞行员,开发人员,和 普通游戏用户。在现实中,结果往往由于期限或者资金问题无法做 到。但 FlightGear 是免费和开放的,它没有出版商限定日期,开发周 期也是有我们自己把握的。FlightGear 不是一个科学研究项目,也不 需要考虑软件的市场化需求。
FlightGear 使用手册
作者:Michael Basler, Martin Spott, Stuart Buchanan, Jon Berndt,
Bernhard Buckel, Cameron Moore, Curt Olson, Dave Perry,

基于FlightGear的虚拟现实应用

基于FlightGear的虚拟现实应用

基于FlightGear的虚拟现实应用展开全文1.FlightGear简介FlightGear[1]飞行模拟器于1997年建立,是一个开放源代码、多平台、合作的飞行模拟发展项目。

该项目是由于对收费飞行模拟游戏不满而开发的飞行模拟游戏。

遵从GPL许可,因此可以免费获得并且可以自己修改源代码。

FlightGear项目的目标是创建一个先进的可用于科研或者学术的环境并且可以开发和验证其他飞行仿真的方案,同时可以作为用户的最终应用程序端的飞行模拟器框架。

2.基于FlightGear的虚拟现实显示应用方案2.1. 基于Matlab/Simulink与FlightGear的联合仿真基于Matlab/Simulink与FlightGear的联合仿真是采用Matlab/Simulink构建飞行的动力学仿真模型,并采用FlightGear进行三维虚拟现实显示的仿真方法。

现有的基于Matlab/Simulink的仿真程序已经基本构建完成[2],其采用的虚拟现实显示方案是利用VRML。

相对于FlightGear来说,采用VRML作为虚拟现实显示端的有点是资源占用少。

但其缺点也是显著的:一方面开发难度大。

采用Matlab提供的VRML接口其场景比较少同时比较简单,若想更加真实的模拟实际情况就需要大量地建立模型。

VRML是一种标记性的语言,本身无法进行建模,必须在三维软件中建模然后转换为VRML格式,这之间就有兼容性的问题。

另一方面显示效果不如FlightGear真实和细腻,同时其源代码是开放的,可以通过网络驱动,接口方面Matlab 有相应的模块,开发难度主要集中在飞艇模型的建立上。

FlightGear 本身支持部分3D软件,使得这部分的工作量也不是很大。

目前采用Matlab/Simulink与FlightGear联合仿真的工作已经初步完成,建立的某飞行器的动力学仿真系统如图所示。

FlightGear的虚拟显示平台与Matlab的仿真平台可以在同一台机器上运行,也可以在局域网不同的机器上分别运行。

飞行模拟新手指南

飞行模拟新手指南

飞行模拟新手指南虽然飞行模拟组织网站已经有了一篇文章《新手培训教程指导》,对飞行模拟游戏新手给出了不少良好的指导意见,非常值得一看。

本文的内容在参考了这篇文章的同时,也做了细化的说明,最大的特点在于结合飞行模拟10版本来说明的,同时还阅读了微软飞行模拟游戏官方网站的新手指南。

先说一下背景,如果你不是新手,就没必要看下面的内容了。

微软发行了很多游戏,但是这个飞行模拟的游戏历史比微软的办公软件Office 的开发历史还长,历史信息可以查看本站文章《微软飞行模拟的历史》。

也是微软的非常赚钱的游戏,最近还获得了北美销量最好的游戏的排行。

由于这个游戏还没有中文的界面,另外就是系统的飞行理论和实践知识在网上介绍的也非常的少,我个人认为这主要还是咱们国家的民航规模和美国差别大,以来美国经济发达,私人有飞机的数量不少,另外就是这个游戏的开发历史长,有较大规模的成熟的用户基础。

国内还没有一家专门开发飞行模拟游戏的插件的公司。

另外,说一下,飞行模拟游戏类型很多,类似微软飞行模拟的还有其他两款民航类的X-Plane,现在是8.6版本,另一个就是flightgear,是个免费的开放源码框架。

后两个虽然在国内的用户更少,但是X-plane甚至更显专业。

废话就扯到这里。

硬件准备如果你要获得良好的画面效果和动态实时性能,较高配置的PC硬件是必须的,而且新发行的飞行模拟10对硬件的要求在设计上有超前性。

以下根据微软网站的说明,给点滴建议:处理频率:3GHz或者以上,内存:2GB或者以上显卡存储容量:512MB或者以上,这种典型配置经过优化设置能够获得较好的综合性能。

有专门文章介绍如何优化帧频率。

除了基本的电脑配置外,建议使用飞行摇杆来玩飞行模拟游戏,虽然键盘命令也是可以完全飞行的,但是感觉不是很好。

飞行摇杆的品牌主要有微软的,罗技的,santaik的,以及其他品牌,一般不建议买价格很高的,价位200-300的就已经不错了,当然选择因人而异,也可以使用微软360 Xbox的控制器来玩。

飞艇运动建模与仿真验证

飞艇运动建模与仿真验证

第27卷 第1期 2009年2月飞 行 力 学FL I GHT D YNAM ICSV ol .27 N o .1Feb .2009 收稿日期:2008201229;修订日期:2008208217作者简介:王海峰(19712),男,陕西麟游人,讲师,研究方向为高空飞艇总体设计和仿真;宋笔锋(19632),男,陕西凤翔人,博士生导师,研究方向为飞行器设计。

飞艇运动建模与仿真验证王海峰,宋笔锋,钟小平(西北工业大学航空学院,陕西西安710072) 摘 要:在研究临近空间浮空器的过程中,设计了一种低空实验飞艇。

为了评价该飞艇的稳定性和操纵性,建立了飞艇的六自由度运动方程数学模型,使用Matlab /Si m ulink 软件完成了飞艇飞行仿真软件设计。

另外采用Flightgear 作为飞行仿真视景软件,设计飞行仿真软件驱动视景软件的网络接口程序。

利用飞行仿真软件,进行了该低空飞艇运动的仿真验证。

仿真结果表明,软件达到了预定的设计目标,该实验飞艇方案可行,安定面和推进动力配置基本合理。

关 键 词:临近空间;浮空器;飞艇;飞行仿真 中图分类号:V274 文献标识码:A 文章编号:100220853(2009)0120031205引言 临近空间浮空器在20~30k m 的高度上长时间保持相对于地球的准定点,飞行器需要利用推进动力克服平流层水平方向的大气风阻力。

目前由于太阳电池和再生燃料电池效率很低,能源系统提供的能量很有限,要保证浮空器长时间在预定地点停留,这样不仅对能源系统和推进动力提出了很大的挑战,同时也对浮空器自主飞行控制能力提出了很高要求[1]。

为了对临近空间浮空器进行深入研究,探讨各种方案的优劣,分析飞行性能与飞行品质,本文对飞艇的运动仿真进行了研究,设计了飞行仿真软件和视景系统。

最后,针对设计的一种低空实验飞艇方案,进行了初步的仿真验证。

结果表明,软件设计达到了预定的目标,此实验飞艇方案可行,构型配置合理。

飞行模拟软件

飞行模拟软件

飞行模拟软件——FlightGear(6)
六、增添机型和场景
FlightGear 官方网站提供了多达70余种机型供广大飞行爱好者选用,从运输机及到战斗机、从最新的F-22到老旧的MiG-15bis,从Being到Airbus,应有尽有,能够满足广大玩家的需求。

下载地址为:/Downloads/aircraft/。

机型的安装也很简单,只要解压 .tgz 文件到Aircraft 目录即可。

相信在众多开发的者的努力下,机型的种类和数量将会继续增长。

当然,读者也可以导入自己的模型进入FlightGear,试想把我国最新的战机F-10放进FlightGear,那一定很美妙。

飞行仿真离不开模拟场景,逼真的仿真场景往往能极大的提高玩家的兴趣,而FlightGear 基本程序仅提供了美国旧金山周围一小块空域的场景,如果想在更大范围内飞行,例如从纽约飞往北京,那是不是没有办法玩了呢?不用担心,FlightGear 官方网站提供多达3 DVD 的全球场景数据供玩家使用。

下载地址:/Downloads/scenery.html。

场景的安装与机型的安装类似,只要把 .tgz 文件解压到Scenery 目录即可。

至此,FlightGear 基本上介绍完了,希望笔者的介绍能够起到抛砖引玉的作用,祝愿大家飞行愉快。

相关的网站:
FlightGear 官方主页及官方下载地址
/Downloads/
Magic Linux 提供的FlightGear 二进制包及其依赖软件
/dev/2.0/cd2/RPMS/Game/
/dev/2.0/cd2/RPMS/Game/supportlib/
中国飞行模拟组织。

Flightger翻译

Flightger翻译

这mini-HOWTO解释了如何在FlightGear中添加3d飞机模型FlightGear,以及这些模型如何动画和地位。

不需要c++编程,但是用户需要FlightGear的一些知识产权制度和XML标记,并将需要了解FlightGear使用坐标系统的模型:.在米的距离.角在度.x轴纵向运行,向后面.y轴横向运行,向右边.z轴向上运行.标题是在z轴旋转,正面是顺时针从上面.音高是一个绕y轴旋转,正面是顺时针从左边.辊绕x轴旋转,正面是顺时针从背后看到的关于HThis mini-HOWTO包含三个部分:1、加载模型2、重新定位模型3、动画模型1、加载模型通过OpenSceneGraph FlightGear支持许多不同的3 d文件格式,包括VRML2 AC3D,DXF,和许多其他格式。

性能/ sim /模型/路径在主FlightGear属性树控制模型将被加载;它需要从FG_ROOT得到一个字符串值给模型的相对路径(基地的根包,如/usr/local/lib/FlightGear或C:\ FlightGear \)。

加载一个新模型的最简单方法是在启动时设置的属性——道具:命令行选项;例如,使用3d飞机模型,您已经安装了$FG_ROOT/Models/my-cessna.wrl。

wrl,您可以调用FlightGear这样(在类unix系统):fgfs --prop:/sim/model/path=Models/my-cessna.wrl(注:一般来说任何使用的纹理模型必须出现在相同的目录中。

如果my-cessna。

wrl使用纹理cessna01。

rgb和cessna02。

rgb,您应该安装这些纹理 $FG_ROOT/Models/。

可以指定一个能找到指定纹理的位置的路径(相对于模型路径))。

当您想要设置一个3d模型永久作为默认的飞机而不是在命令行中指定它,您需要编辑一个飞机设置文件。

在FG_ROOT美元/飞机/目录,设置一系列文件结束。

基于FlightGear_Matlab的运输类飞机飞行仿真实验设计

基于FlightGear_Matlab的运输类飞机飞行仿真实验设计
俯仰角和爬升率的传递函数,与文献[7]对比,伯德图 如图 1、图 2 所示。
“飞行动力学与控制”是飞行技术与飞行安全专 业硕士研究生的一门重要专业课。由于该课程内容过 于抽象,学生不易理解。因此,涵盖课程知识点的实 验教学非常重要[1-2]。目前,在飞行技术培训、飞行安 全研究等方面普遍应用了飞行可视化仿真技术。其中 开源飞行模拟软件 FlightGear 预留有外部数据接口, 用户可以方便地进行修改和二次开发,国内外许多高 校和科研机构都在使用 FlightGear[3]。
1 飞行仿真方法
笔者在先期开发的教学实验系统的基础上,应用
收稿日期: 2019-01-11 基金项目: 国家自然科学基金委员会与中国民用航空局联合资助
项目(U1733117);天津市教育科学“十三五”规划课 题 (HE3072) ; 中 央 高 校 基 本 科 研 业 务 费 项 目 (3122014X002) 作者简介: 王岳(1983—),男,天津,在读博士研究生,讲师, 主要研究方向为飞行动力学与控制、飞行技术和飞行 安全. E-mail: qiushnawang@
WANG Yue, WANG Lei, GUO Shiguang
(Flight Technology College, Civil University of China, Tianjin 300300, China)
Abstract: Based on NASA aerodynamic data, the flight simulation model of Boeing 747 aircraft is established and validated, and an example of controllers with adjustable parameters is designed. By using the interface technology of FlightGear and Matlab software, the real-time transmission of simulation data is carried out, and the 3D visualization of flight simulation is realized. The flight simulation experiment is developed according to the requirements of the course. The teaching practice proves that the simulation experiment can promotes the students’ intuitive understanding of the theory and has a higher utilization value. Key words: FlightGear; Matalb; transport aircraft; flight simulation experiment

flightgear 2020.3 编译

flightgear 2020.3 编译

【飞行模拟软件 FlightGear 2020.3 编译指南】FlightGear 2020.3 是一款开源的飞行模拟软件,其最新版本推出了一系列更新和改进,包括图形效果、机场建模、飞行模型以及多人模式等方面的优化。

然而,有些用户可能遇到了使用二进制发行版时不够满意的问题,因此他们希望自行编译 FlightGear 2020.3 版本。

下面我们将探讨 FlightGear 2020.3 的编译过程,并为您提供一些编译指南。

1. 准备工作在开始编译之前,您需要确保安装了一系列的软件,包括 CMake、Git、gcc/g++ 等开发工具,并且安装了OSG、SimGear、OpenAL、libpng 等相关库。

还需要获取 FlightGear 2020.3 版本的源代码,您可以通过 Git 仓库克隆源代码,或者直接下载源代码压缩包。

2. 配置环境在获取了源代码之后,您需要配置编译环境,包括设置环境变量、配置 CMake、指定编译选项等。

您可以根据自己的系统和需求,进行环境的配置和定制化,以确保编译过程的顺利进行。

3. 开始编译接下来,您可以开始编译 FlightGear 2020.3 的源代码。

在这个过程中,您可能会遇到一些依赖库缺失、编译错误等问题,需要及时解决。

编译成功后,您将获得一个可执行文件,您可以通过执行该文件来启动 FlightGear 2020.3 版本。

4. 测试与调试在编译完成后,您可以对 FlightGear 2020.3 进行测试和调试。

您可以验证新添加的功能、修复的bug 是否生效,以及性能是否得到提升。

对于编译出现的错误或者不完善之处,您还可以进行进一步的修改和改进,并再次编译,直至满意为止。

总结与回顾通过本次编译,您不仅获得了 FlightGear 2020.3 最新版本的可执行文件,还学习到了如何配置编译环境、解决依赖问题,以及验证和调试编译结果的过程。

这将有助于您更深入地理解和掌握 FlightGear 2020.3 的代码结构和编译流程,从而为后续的开发和定制工作打下坚实的基础。

基于FlightGear的无人直升机飞行仿真技术研究

基于FlightGear的无人直升机飞行仿真技术研究
Nhomakorabea 研究方法
针对FlightGear在直升机飞行模拟中的问题,本次演示从以下几个方面进行 研究:
1、FlightGear直升机模型库的建立与完善:整理和归纳各类直升机的气动 模型和结构特点,将其集成到FlightGear中,形成完整的直升机模型库。
2、真实控制逻辑的引入:通过深入分析实际直升机的控制逻辑,将其引入 到FlightGear中,实现更为真实的直升机操控体验。
3、空气动力学效应的模拟:研究并实现更为精确的空气动力学模型,包括 升力、阻力、侧力和扭矩等,提高FlightGear在直升机飞行模拟中的精度。
4、评价体系的建立:通过定义一系列评估指标,对改进后的FlightGear直 升机飞行模拟系统进行性能评估。
4、评价体系的建立:通过定义 一系列评估指标
基于FlightGear的无人直升机飞 行仿真技术研究
目录
01 一、引言
03 三、技术原理
02 二、概述 04 四、实现方法
目录
05 五、应用场景
07 参考内容
06 六、未来展望
一、引言
随着无人机技术的迅速发展,无人直升机在军事、民用等领域的应用越来越 广泛。为了提高无人直升机的性能和使用效果,对其进行飞行仿真成为了一个重 要的研究课题。FlightGear是一款开源的飞行仿真软件,其强大的仿真功能和灵 活的扩展性使得它成为了无人直升机飞行仿真技术的重要工具。
2、虚拟实验:在FlightGear仿真环境中进行无人直升机的各种实验,如风 洞实验、稳定性实验等,以降低实际实验的成本和风险。
3、技术研究:利用FlightGear进行无人直升机的技术研究,如飞行控制算 法优化、导航系统设计等。
4、作战模拟:在FlightGear中模拟无人直升机的作战过程,进行作战策略 制定和评估,提高作战效益。

FlightGear帮助手册第二部分

FlightGear帮助手册第二部分
� --disable-splash-screen � 关闭程序初始化画面显示 � --enable-splash-screen
开启程序初始化画面显示。 � --disable-intro-music
关闭程序启动声音。 � --enable-intro-music
开启程序启动声音。 � --disable-mouse-pointer
� --FlightGear-scenery=path 指定 FlightGear 场景地形文件路径,当场景地形文件的路径不在默认的 $FlightGear ROOT/Scenery 下时,你可以用它来设置场景路径。
� --disable-game-mode 取消全屏显示。
� --enable-game-mode 全屏显示
3.2 Unix/Linux 下如何运行程序
图3:起飞前准备: San Francisco默认起飞位置, KSFO.
运行 FlightGear 之前,需要设置程序所需的环境变量。 � 首先添加/usr/local/share/FlightGear/lib 到 LD_LIBRARY_PATH � 添加 FlightGear_ROOT,例如:/usr/local/share/FlightGear/data. � 添加 FlightGear_SCENERY,由一系列的文件目录路径组成,文件目录路径之
3.3 Windows 下如何运行程序
安装好 FlightGear 后,只需在 Windows 环境下通过图标快捷方式就能够开 启 Flightgear(点击开始菜单中的启动项或桌面上双击 FlightGear 启动图标即 可,此时运行的并不是 Flightgear 主程序,而是一个向导程序,通过此向导程 序可以设置程序运行参数,最后调用 Flightgear 主程序)。通过向导程序可以 实现以下功能: � 选择飞机机型 � 起飞初始机场和跑道 � 起飞时间 � 天气状况 � 其它的环境设置

flightgear 气动模型 jsbsim 介绍

flightgear 气动模型 jsbsim 介绍

What's the point?Pure unlimited aerobatic aircraft have seldom been modeled in any mainstream simulator. Many will argue that the Extra 300 introduced in Microsoft® Flight simulator-98 is a clear proof of the contrary, yet the FS flight model was (and still is) too limited to provide a decent sensation of flying. The most recent aerobatics planes correctly modeled are the SF260 and Spitfire MkXIV from Real Air® but those are not dedicated “stunt airplanes”.The last serious attempt to model this category of aircraft was the first Flight Unlimited simulator back in 1996! It was nicely packaged with a fine tutorial (remember, this was at a time when games came with a manual) and allowed one to fly machines ranging from an aerobatic sailplane to the Su-31 unlimited aerobatic aircraft.Many reasons can be found for the lack of interest in this cate-gory. The most obvious is that aerobatic aircraft are limited to Visual Flight Rules since in-struments are heavy and sensi-tive to the kind of flying in-volved. What's worse, they have a very short rangebecause a routine of 10 minutes of high-g maneu-vers will bring the pilot to his (or her) knees, and the less fuel, the better for maneuverability. Finally,performing a correct maneuver requires a lot oftraining (first loops look awful when replayed!).All this being said, it is an extremely rewardingway to fly as it gives a sense of the third dimensionwith fine management of potential vs. kinetic en-ergy being the key. Flight modeling is the most important part when recreating the feeling of aerobatic flight. Most of the maneuvers are performed inside or near a stall. Asymmetric stalls are also a key ingredient of ma-neuvers such as the snap roll. JSBSim already pro-vides a fine experience of flying and, being open source, has the potential to evolve to give the whole envelope. Why did I choose the Su-26? Let us say that it is amatter of personal taste. Sure enough, there are bet-ter aircraft around (Cap-232 or the superlative Su-31 come to my mind), but one can hardly fight his aesthetic judgment!Modeling the BeastAerobatic aircraft have plenty of features that make them easy to model (which is good since this is my first add-on aircraft for FlightGear):•Straight wing with little taper ratio (this allowsusing the lifting line theory for 3D wing deri-vations (Prandtl) •Symmetric Airfoils•Low Mach number (incompressible flow) •Reciprocating engines•No high lift devices (lift is obtained through thick airfoils) •Simple avionicsNevertheless as I wrote before, the post-stall enve-lope must be modeled for the magic to begin and this is were it gets tough.I did not have explicit references for the SU-26 air-foil. The only data I could get was a relative thick-ness (see The Incomplete Guide to Airfoil Usage, /m-selig/ads/aircraft.html). So, I started with a typical symmetric airfoil and scaled it to match a relative thickness of 15%. While this may look like an appalling approxima-tion, thin airfoil theory indicate that the thickness law (which is the only variable for a symmetrical(Continued on page 2)Building an Aerobatics Aircraft for JSBS im : The Su-26Enrique Laso LeonInside this issue:Aerobatics Aircraft: Su-26 1 Scripting Multiple Runs in JSBSim 3 Scripting Changes in JSBSim 6 JSBSim and MSFS 9 News 10Modeling Aerodynamic Moments11OpenEaagles Simulation Framework12The 2006 AIAA Modeling and Simulation Conference14Simulators Aboard the U.S.S. Lexington Museumat Corpus Christi, Texas 16Simulate This! EndThe quarterly newsletter for JSBSim, an open source flightdynamics model in C++S UMMER 2006V OLUME 3, I SSUE 2See Page 12:(Continued from page 1)airfoil) only influences pressure repartition, not C lift vs. alpha slope (2*π for incompressibleflow). This in turn will change the stall character-istics (abruptness, critical angle, etc.), but I thought the difference would be too small for anybody to notice, provided the airfoil had a rounded leading edge:The software used to compute the stall character-istics was xfoil (/drela/Public/web/xfoil) which gave polar curves up to 30 de-grees of angle of attack.Post stall behavior derivations was found from an article written for the blades of wind turbines(Stall coefficient, aerodynamic airfoil coeffi-cients at large angle of attack, C. Lindenburg réf. ECN-RX-001-04 Energy research center of theNetherlands).These computations were made using Open Of-fice Calc v2.0 (any spreadsheet would do for that matter). It should be noted that the curve from 0 to 30 degrees (xfoil) matches quite well with the curve for AOA higher than 30 degrees (post stall).Derivations for the finite span wing was obtained using the Prandtl theory of the (vortex) lifting line (the one that gives the induced drag as afunction of the aspect ratio). For post-stall behav-ior the article mentioned above provides a correc-tion for finite span. The combination of both pro-vides the following coefficient curves :It is interesting to notice that the values given by Aeromatic (blue curve on the lift diagram, see for Aeromatic) are not that far from the complete deriva-tion. They would even be better if the airfoil camber effects could be taken into account (at zero camber, i.e. symmetrical airfoil lift at zero incidence is zero).Drag at zero incidence was increased by impos-ing a minimum value in order to model fuselage drag (very very crude).The result of all this is an aircraft accomplishing simple aerobatics neatly (barrel rolls, loops, Cu-ban eights) and even complex ones such as the spin with a nice feel. The latter came as a surprise sinceJSBSim comes without asymmetric stall effects so far. Snap rolls, while being possible, are somewhat slow and induce a large loss of altitude. Stall on the other hand is extremely brisk with g-loading dropping sud-denly as elevator authority is huge (purposely in order to get adequatecontrol all through the envelope)Future ImprovementsThe beta version of the Su-26 will be released sometime soon in order to get a first feedback (hopefully from real life pilots, too!).The model can stand a lot of improvement with(Continued on page 3)Page 2Edited by Jon Berndt“Back of the Envelope ” is a communication tool writtengenerally for a wider audience than core JSBSim developers, including instructors, students, and other users. The articles featured will likely tend to address questions and comments raised in the mailing lists and via email. If you would like to suggest (or even author) an article for a future issue, please email the editor at:**************About this newsletter ...(Continued from page 2)the current definition of JSBSim. The next step is to correctly model the moment coefficient of the whole aircraft (that is, taking the wing and tail separately) for the whole AOA range. This does not require a lot of additional theory, just to take into account the direction of motion (the “focus” is at a quarter of the chord for low incidence, but measured in the direction of the flow !).Fine tuning of the propeller is really lacking for now. Particularly thrust in the low speed envelope is abundant, making landings quite difficult. Other improvements could come from evolutionsPage 3 of JSBSim, itself. In order to model post stall be-havior, asymmetric effects could be taken into ac-count, especially since propeller airplanes will tendto depart in asymmetric stall due to engine torqueand P-factor.Furthermore variations of lift along span wouldadd an extra feeling, since loss of aileron effi-ciency at low speed is related to wingtips beingmore loaded than roots for tapered or swept wings.But in turn that would have little influence onaerobatics airplanes as they often have full spanailerons to handle this problem! ▲Scripting Multiple Runs in JSBSim Agostino De MarcoA couple of months ago I began to think over the following idea: One may have the need to run JSBSim multiple times and compare the results; would it be worthwhile to implement a new capa-bility into the scripting language supported by JSBSim's FGScript class that would make it possi-ble to launch one or more successive simulations with one single script?After all, in each of the many scripting languages available today we always find the following ele-ments: conditions (if-then-else clauses), selection (switch clauses), iterations (for clauses), inclusion of blocks of code (include/import clause) etc. Then, what if we had something vaguely similar in JSBSim scripts?As someone said in the development-issues mail-ing list, there are many reasons for wanting multi-ple runs from a simulation. When designing or modifying a control or guidance system, one may want to evaluate the design at multiple test points within the flight envelope. Having the ability to set up a file with a number of initial conditions, trims, etc. would allow the user to do multiple tests with-out having to play around with a bunch of files. Thinking at the simplest level, suppose that one has prepared N scripts, for example,737_runway_1.xml, 737_runway_2.xml, ... ,737_runway_N.xml, that clearly let us guess that the user is trying to simulate different variations of a take off run for the B737 aircraft. According to the above idea, he would like to have the chance to run JSBSim through each of the above cases by using a single script, the "driver", which could be something like: A first problem arises here. After each run this approach should incorporate a "post-run"step to save the output (if specified), e.g.B737_datalog.csv, in a number of unique files, i.e. B737_datalog_1.csv, B737_datalog_2.csv, ... ,B737_datalog_N.csv.From the coders point of view the development of advanced scripting features would of course become quite demanding, as this job would be like implementing a sort of interpreter on top ofthe main JSBSim structure.Actually, looking more closely at the kind of code that JSBSim is and how it is intended by the developers, even if the above "capability" would be nice to have, one can comment that (quoting Jon Berndt) this is the kind of thing that, in spite of being explicitly provided for in the scripting lan-guage, should be done externally, through a feature in JSBSimCommander or via a shell script. In fact, an application like JSBSim Commander, being that just a "Commander," will hopefully have that abil-ity sooner or later.Finally I convinced myself that the capability to launch multiple runs of JSBSim, collect output data appropriately, and prepare plots for the analy-sis should not be required to the flight dynamic model, because this is not his job, but should rather be implemented outside via a shell script. And that's what I did. Eventually, I will also to have an animation (i.e. an .avi file) of the simulation, auto-matically generated.Multiple runs done in this way are really helping me in the analysis of a number of variants of stan-dard flight maneuvers starting from steady equili-brated conditions, in flight andon ground.Thanks to a grant fromENAV, the Italian authorityon flight safety, I have ana-lyzed a number of take offruns from Milano Linate air-(Continued on page 4)<runscript name="B737 takeoff runs" action="MULTIPLE"> <script file="737_runway_1.xml"><script file="737_runway_2.xml">...<script file="737_runway_N.xml"><!-- this is just a naive attemptto define something... --></runscript>Page 4(Continued from page 3)port. I have investigated on the possible failures during take-off runs and consequent inadequate pilot reactions/maneuvers that end up with the airplane colliding with a par-ticular radar tower, which is going to be build in the vicinity of the main run-way. For the sake of brevity, I will discuss below, with an annotated example, how I have tackled the most relevant prob-lem from JSBSim users' perspective: running JSBSim a number of times in a row through a shell script. I will reserve some final observations as hints for the development of similar scripts that, from logged output files, generate relevant plots and automati-cally produce a document collecting them. This involves the use of well known, freely available, programs like Gnuplot and LaTeX. Before going on further we have to note that the 0.9.11 version of JSBSim "suspends" the simu-lation, i.e. the time increment is set to zero when a crash is detected. Consequently, when JSBSim is launched as a stand-alone batched application and the simulation ends up with the aircraft crashing on the ground the program enters into an infinite idle loop and the user must manually kill the corresponding process. The need to work with failure situations during take-off and with scripted runs has required me to modify a little bit JSBSim's main loop in order to have the program executionterminated each time, with no possibility of suspen-sion.The code snippet In Code Sample 2 illustrates the modifications I made in JSBSim.cpp.Multiple runs of JSBSim are now easier to achievewith a bash (Bourne-Again SHell) shell script. Bash is a command language interpreter that exe-cutes commands read from the standard inputor from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh), popularinterpreters from the Unix world. Bash is freely available for all Linux distributions, for Unix and for Windows (Cygwin). The basic idea behind multiple runs via a bash script (that I'll call "multiple-run.sh") is to concentrate in a given directory a number of JSBSim scripts, e.g. "B737_script1.xml", "B737_script2.xml","B737_script3.xml", etc., and have a tool that per-forms the following tasks:1.list the eligible xml files,2.put them into an array,3.generate a unique ID for each of them, andunch JSBSim as many times as the number ofcases listed. The unique ID will help to rename and manipulate the output files further. A possible "multiple-run.sh" is listed in Script 1 (see page 5), with appropriate annotations. It is a good idea to put the script where JSBSim.exe resides and give it the usual attributes (execute per-mission) like the following command does:chmod u+rx ./multiple-run.shThe multiple runs will be launched with the com-mand, ./multiple-run.sh [The command must be run in the directory where the shell script resides.] Once all JSBSim runs are done (according to the con-tents of the directory <JSBSim root>/test/scripts) the user will find a bunch of output csv files in the JSBSim root dir.Their names start with a unique numeric code as produced in the script main loop. At this point, it is a straightforward task to pre-pare a script that lists all (Continued on page 6)Code Sample 2 // *** CYCLIC EXECUTION LOOP, AND MESSAGE READING *** //while (result) {while (FDMExec->ReadMessage()) {msg = FDMExec->ProcessMessage();switch (msg->type) { case JSBSim::FGJSBBase::Message::eText: { cout << msg->messageId << ": " << msg->text << endl;// I just warn the user the simulation will be stopped anyway#if defined(AGO_NO_SUSPEND) // agodemarstring::size_type loc = msg->text.find( "Crash Detected: Simulation STOP", 0 );if ( loc != string::npos )cout << ".............. simulation will be stopped " << endl; #endif break; }}// ...if ( ! FDMExec->Holding()) {if ( ! realtime ) { // IF THIS IS NOT REALTIME MODE, IT IS BATCHresult = FDMExec->Run(); // Here I break and stop the loop avoiding program suspension #if defined(AGO_NO_SUSPEND) if ( FDMExec->GetState()->Getdt()==0.0 ) // check if SUSPENDED after CRASHbreak;#endifPage 5 #!/bin/bash# The sha-bang (#!) at the head of the script tells the system# that the file is a set of commands to be fed to the indicated command interpreter,# in this case /bin/bash. Thus #! is actually a two-byte magic number# that designates here an executable shell scriptecho "-------------------------------------------------"echo " Multiple JSBSim runs "echo "-------------------------------------------------"echo# JSBSim root dir, executable name, and working directory# (change them conveniently for your system)JSBSim_ROOT="l:/agodemar/jsbsim/JSBSim-0.9.11_dotNET2005/JSBSim/"JSBSim_EXEC=$JSBSim_ROOT"JSBSim.exe"WORK_DIR="test/scripts/"# Note: must be a relative path to JSBSim root dir !!# we will put here the scripts "B737_script1.xml", "B737_script2.xml", ... etc.#------------------------------------------------------------------------------------# collect script file names (from WORK_DIR)#------------------------------------------------------------------------------------SCRIPT_FILES0=`ls "$JSBSim_ROOT$WORK_DIR"B737_script*.xml`# The back ticks `...` return the result of the system command, ls, into a string.# File names returned here do not include the path.#------------------------------------------------------------------------------------# give the scripts a proper name, including the path#------------------------------------------------------------------------------------SCRIPT_FILES=for file in $SCRIPT_FILES0dofile="$WORK_DIR/"$file # prepend the appropriate path#echo $fileSCRIPT_FILES="$SCRIPT_FILES"$file" " # collect the namesdoneecho "scripts: "$SCRIPT_FILESecho#------------------------------------------------------------------------------------# run JSBSim multiple times# and generate the unique ID for each run#------------------------------------------------------------------------------------prefix=PREFIXES=for scriptfile in $SCRIPT_FILESdoif [ ! -e "$scriptfile" ] # Check if file exists.thenecho "$scriptfile does not exist."; echocontinue # On to next scriptfile in the list.fi# File exists, print name and sizels -l $JSBSim_ROOT$scriptfile | awk '{ print $9 " file size: " $5 }'# This is an example of piping (<command 1>|<command 2>):# $JSBSim_ROOT$scriptfile expands to the name of the current JSBSim script that is to# be used for the simulation. Command ls -l returns a number of fields, whose 9th and 5th# are printed by the awk utility (actually on cygwin gawk, Gnu awk, is invoked)# Now generate a unique id by using the date commandprefix=$(date +%N)# "+%s" option (GNU-specific): seconds since 1970-01-01 00:00:00 UTC# "+%N" : nanoseconds (000000000..999999999)# The following alternative would strip off leading and trailing zeroes, if present.# prefix=`date +%N | sed -e 's/000$//' -e 's/^0//'`# by using sed# store ID in an array(Continued on page 7)Page 6responding postscript figure will be produced bysimply launching Gnuplot with the appropriate plotting script on the command line:gnuplot 00091110230_B737_velocities.plt gnuplot 000622010230_B737_velocities.plt …It is worth making this procedure automatic like the one that launches JSBSim multiple times. The same ideas apply to the generation of a LaTex document: scan for *.ps, retrieve the unique prefixes, parse a template document, generate a unique one, collect all, and finally run through the LaTeX compiler to obtain a final postscript or pdf document with all the desired plots for all the simulated cases. ▲(Continued from page 4)these newly created csv file (for example by look-ing for the XXXX_jsbsimrun.log). Retrieving their unique prefix, e.g. like in 00091110230_B737_velocities.cvs000622010230_B737_velocities.cvs etc, mayprove useful in plotting the results.Suppose one has prepared the simple Gnuplotscript:One can parse the Gnuplot script with sed, substi-tute the string "CHANGEME" with the unique IDs retrieved from the list of JSBSim output files, and produce a unique plotting script, e.g. 00091110230_B737_velocities.plt000622010230_B737_velocities.plt, etc. The cor-#-----------------------------------------------------------#Gnuplot script#----------------------------------------------------------- # set the terminal and the output fileset term postscript color enhanced linewidth 2.0 set out "CHANGEME_B737_velocities.ps" set key top left # plot from file plot \"CHANGEME_B737_velocities.csv" u 1:($13/10) w l t "V_C [kts/10]",\ "CHANGEME_B737_position.csv" u 1:($2/100) w l t "h [ft/100]",\"CHANGEME_B737_aerodeflections.csv" u 1:($4*10) w l t "delta_e [deg*10]",\ "CHANGEME_B737_attitude.csv" u 1:($3*180.0/pi) w l t "theta [deg]" set out # free the output # EOF#----------------------------------------------------------- Gnuplot script, “template-velocities.plt”Scripting Changes in JSBSimJon S. BerndtSubstantial changes have been made to the script-ing capability for JSBSim. In doing so, the version number has been incremented to 0.9.12.The scripting changes were needed for some test-ing and debugging. Some of the items had been getting thought about for a year or two.It should not be too difficult to modify exist-ing scripts to run using the new format. There are new attributes and keywords for some of the ele-ments (example below). The major changes are:•The "when" element is changed in name to"event"•The conditional test[s] that must be fulfilled for a set of actions to take place is handled by the FGCondition class from the flight con-trols code. The class now moves to the math/ subdirectory as it will have even more use in the near future.•The "persistent" element is now an attribute of the event element.•You can specify to "notify" when an event is triggered, which results in a message being printed out.(Continued on page 8)<?xml version="1.0"?><runscript name="C172-01A takeoff run"><!-- This run is for testing the C172 altitude hold autopilot --> <use aircraft="c172x" initialize="reset00"/> <run start="0.0" end="3000" dt="0.0083333"> <event name="engine start"> <notify/><condition> sim-time-sec >= 0.25 </condition><set name="fcs/throttle-cmd-norm" value="1.0" action="FG_RAMP" tc="0.5"/> <set name="fcs/mixture-cmd-norm" value="0.87" action="FG_RAMP" tc="0.5"/> <set name="propulsion/magneto_cmd" value="3"/> <set name="propulsion/starter_cmd" value="1"/> </event> </runscript>Page 7 (Continued from page 5, Scripting Multiple Runs in JSBSim)PREFIXES=$PREFIXES" "$prefixecho "running JSBSim ..."JSBSim_RUN_CMD=$JSBSim_EXEC" --root="$JSBSim_ROOT" --script="$scriptfile# ...here only assembles the command line for launching JSBSimecho $JSBSim_RUN_CMDecho "writing log in file: "$prefix"_jsbsimrun.log"$JSBSim_RUN_CMD > $prefix"_jsbsimrun.log"# ...here the command line is actually launched and the output redirected into a# unique log file# Note: this log file, actually its name, will be useful in post processing# task by other scripts# Next is a list of output files pre-defined appropriately in the aircraft# config file.# I assume here that the scripts deal with a single aircraft type, i.e. "737.xml".# The output properties are specified in that aircraft config file and are logged# to different files for convenience of analysisOUTPUT_FILES="B737_accelerations.csvB737_attitude.csvB737_forcesmoments.csvB737_position.csvB737_velocities.csvB737_aerodeflections.csvB737_commands.csvB737_gear.csvB737_propulsion.csvB737_animation.csv"echo "moving output files ..."# Now the current JSBSim output files are renamed into unique file names by prepending# the id generated aboveMOVE_CMD=for outputfile in $OUTPUT_FILESdoMOVE_CMD="mv $JSBSim_ROOT$outputfile"" "$JSBSim_ROOT$prefix"_"$outputfileecho $MOVE_CMD$MOVE_CMDdoneechodone# summaryecho "-------------------------------------------------"echo "Summary of runs"echo "-------------------------------------------------"# count runsn=0for logprefix in $PREFIXESdolet "n = $n + 1"doneecho "N. of JSBSim runs: "$necho -n "Run log-files: "for logprefix in $PREFIXESdoecho -n $logprefix".log "doneechoecho "-------------------------------------------------"exit 0Page 8(Continued from page 6)•Events can be named.• A delay can be specified for an event, so thatit executes a certain number of seconds afterit is triggered.•An event can be a notify-only event. That is,you do not have to specify actions for anevent, it can exist to notify the user of somekind of event.•The “use” command combines selection ofthe initialization file and the aircraft.•Properties can be defined in a script, so thatevents can be repeated, etc.In order to help convert scripts from the old formatto the new one, an XSL transformation has beencreated and is available for download at:/convert_script.xslAdditionally, an XSL script has been created forthe script itself, so double-clicking on the script inMicrosoft Explorer (for instance) or other filemanager application should bring up the file in abrowser, formatted to be more easily human read-able (see accompanying illustration). See:/JSBSimScript.xslAn XML Schema has also been written that allows a JSBSim script to be validated. The schema is located at the JSBSim web site at:/JSBSimScript.xsd The conditional tests are now modeled using a “standard” JSBSim conditional construct, that is also used in the flight control switch component. When coupled with the new property declaration capability and the notify flag, some interesting effects can be achieved. One of those is a repeating notification that is printed at time or altitude inter-vals. For example:<run start="0"end="100"dt="0.0083333"> <property>simulation/notify-time-trigger</property>…<event name="Time Notify"type="FG_DELTA"persistent="true"> <description>Interval</description><notify/><condition>sim-time-sec >= simulation/notify-time-trigger</condition><set name="simulation/notify-time-trigger"value="100"type="FG_DELTA"/></event></run>The above construct will print out a message every 100 seconds. ▲Page 9exchange betweenmodule configura-tion is stored in an。

基于FlightGear的无线电高度表动态试验环境

基于FlightGear的无线电高度表动态试验环境

DOI:10.16660/ki.1674-098X.2006-5051-5530基于FlightGear的无线电高度表动态试验环境李震华 陈志雄 朱晓飞(上海飞机设计研究院试验验证中心 上海 201210)摘 要:依据飞机无线电高度表功能验证的需要,本文利用FlightGear平台资源和ALT-8000组成了无线电高度表系统动态试验环境,可以模拟飞机起降过程,完成基于飞机运行场景的无线电高度表功能验证。

FlightGear 提供了飞机模型及飞机环境模型,搭建无线电高度表的外部仿真环境,ALT-8000提供了无线电高度表的动态激励信号,整个动态试验环境可以完成基于场景的无线电高度表性能、指标测试。

关键词:无线电高度表 场景验证 系统集成验证 试验环境中图分类号:V279 文献标识码:A 文章编号:1674-098X(2020)09(b)-0017-04 Dynamic Test Environment of Radio Altimeter Based onFlightGearLI Zhenhua CHEN Zhixiong ZHU Xiaofei(Test and Evaluation Center, Shanghai Aircraft Design & Research Institute, Shanghai, 201210 China) Abstract: According to the requirements of verifying the functions of aircraft radio altimeter, this paper formed the dynamic test environment of radio altimeter system with resources from FlightGear platform and ALT-8000, which can simulate the taking off and landing process of aircraft, and complete the verification of functions of radio altimeter based on scene and aircraft radio altitude scene. FlightGear Provided models of the aircraft and the environment outside the aircraft, for building external simulation environment of radio altimeter.ALT-8000 provide dynamic excitation signal for the radio altimeter. The whole dynamic test environment can complete the dynamic verification of radio altimeter performance based on the scene.Key Word: Radio altimeter; Scene verify;System integrated verify;Test environment无线电高度表是飞机上必不可少的导航设备,用于测量飞机距离地面(海面)的真实高度,一般由发射天线、接收天线、收发机和指示器组成。

基于FlightGear的近地警告系统飞行仿真测试环境搭建

基于FlightGear的近地警告系统飞行仿真测试环境搭建

在飞行中并非由于飞机本身故障或发动机失效等原因造成的飞机撞地或坠海事故,称为可控飞行撞地(C FIT)事故。

1975年以前,世界范围内的商用喷气机群平均每年发生8次可控飞行撞地事故。

为此有关部门研制了近地警告系统(G P W S),为飞行员提供飞机以不安全形态危险接近地面的警告信号,提高机组的处境意识。

近地警告系统的广泛安装,大大减少了可控飞行撞地事故[1]。

仿真(Si m ulatio n)技术或模拟技术这一高科技手段已被广泛应用在国民经济各个领域。

在航空领域,这种仿真技术被称为飞行仿真技术[2]。

在国外近地警告漫长的发展过程中,飞行仿真技术扮演了很重要的角色。

据了解,H o n e y w el l公司拥有非常完善逼真的飞行仿真环境,一方面通过“自动式”模式对产品进行标准化、格式化的测试来保证产品的可靠性;另外一方面通过“交互式”模式对产品进行不同机型或者不同航电系统配置的测试和诊断,来起到促进产品发展和预防产品缺陷的作用。

我国近地警告系统在国内科研人员的不懈努力下已经取得卓越成就,装载了国内多种型号飞机。

但相应的飞行仿真测试设备却寥寥无机,因此在近地警告设计验证、使用维护过程中缺乏有力的支撑环境。

基于以上现状,该文介绍了基于Flightgea r的近地警告飞行仿真测试环境的搭建方法。

1 系统总体设计近地警告系统飞行仿真测试环境主要由主控系统、视景系统、飞行仿真系统以及机载设备激励系统。

其中主控系统用于人机接口控制,视景系统用于营造真实的飞行视景环境,飞行仿真系统用于产生近地警告仿真数据源,机载设备激励系统用于仿真数据源与近地警告系统间的数据类型匹配。

各子系统间的交互关系见图1所示。

1.1 主控系统主控系统提供了对设备进行各种设置的人机接口,可以通过它进行定制化的系统控制设计。

主控系统硬件为普通台式机,用于安装主控系统软件。

主控系统软件力求简洁直观,各种菜单按键的布局清晰合理,可在短时间内掌握使用,发挥最大的效用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Flghtgear当前版本3.2.0(程序主要由C++编写)
1、程序组件:
主要使用flightgear和simgear两个模块,现在集中研究simgear的使用2、模拟程序功能
暂时没有具体分清楚对应程序代码,主要需要了解控制系统
3、程序运行流程
飞行数据由循环2产生,循环2由simgear模块实现
4、程序运行经验:
(1)刚装好程序,运行可能会出错,一般是.dll文件版本过时,根据错误报告下载对应dll 文件替换就可以了。

(2)飞机起飞成功关键在于不偏离跑道,达到速度,自行起飞,不用强行提起机头起飞。

否则一般会出现高度不能爬升的问题。

(3)飞机飞行过程中,如果姿态变化太大,飞机容易坠落,飞行数据也会跳变(貌似是一个bug)
5、相关网址
编译经验:/thread-528-1-1.html
中文论坛:/forum.php。

相关文档
最新文档