美文网首页
JSBSim学习笔记(1)——简介

JSBSim学习笔记(1)——简介

作者: 么的聊 | 来源:发表于2016-05-12 19:46 被阅读2235次
    JSBSim

    JSBSim是一款开源的飞行动力学(FDM)软件库,能够用于飞行器的飞行力学建模和模拟。JSBSim 函数库已经被嵌入到 FlightGear 和 OpenEaagles 这些飞行模拟的软件包中,也能够以独立运行的方式被批处理工具调用。1996年,JSBSim开始被开发和使用,目前已经能够在大多数平台上运行,包括Linux、 Mac和 Windows。JSBSim由C++编写,采用XML进行文件配置。

    了解JSBSim

    1996年,JSBSim被构想成为一个轻量级、数据驱动、非线性、六自由度(6DoF)的批处理模拟程序,旨在为飞机的飞行与控制提供建模方法。从最早的版本开始,JSBSim就得益与开源的开发环境,它的成长伴随着大量用户的建言献策,也被其他大型、全功能的飞行模拟软件所采用。现今在工业和学术界,JSBSim成为一个采用批处理方式的模拟工具,被广泛研究和应用。

    调用方法

    下面一个简单的例子说明JSBSim的应用,代码展示了JSBSim是如何被一个小程序调用的。

    #include <FGFDMExec.h>
    
    int main(int argc, char **argv)
    {
      JSBSim::FGFDMExec FDMExec;
      bool result = true;
      FDMExec.LoadScript(argv[1]);
      while (result) result = FDMExec.Run();
    }
    

    把上面代码与JSBSim库一起进行编译侯,程序就能够调用运行JSBSim了,输入条件只有飞机的配置文件、初始化文件和配置文件。这些文件都是由 XML(eXtensible Markup Language)语言定义,JSBSim可能是第一个采用 XML 来描述飞机的飞行动力模拟系统。以下是一个关于气动力定义的例子:

    <function name="aero/coefficient/CDDf">
      <product>
        <property>aero/qbar-area</property>
        <table>
          <independentVar>fcs/flap-pos-deg</independentVar>
          <tableData>
              0.0  0.0
             10.0  0.007
             20.0  0.012
             30.0  0.018
          </tableData>
        </table>
      </product>
    </function>
    

    输入输出

    当JSBSim独立运行的时候,只需要提供一个脚本文件即可,提供该脚本向JSBSim提供控制输入等信息。

    当飞机配置文件含有输入接口时,用户可以通过网络与JSBSim通信。通过网络接口,JSBSim内部的参数可以被读取和设置,仿真系统也可以被暂停和恢复。网络通信的特征在实时仿真方面是最重要的功能。JSBSim源代码中自带的独立运行例程都是支持运行软实时功能的。

    JSBSim也可以直接向窗口、文件或插口输出格式化的数据组。JSBSim能够同时向多个通道进行输出,每个通道都可以包含数组组或者是特定的参数,能够以任意频率向文件和插口进行数据输出。JSBSim自带了绘图工具 gnuplot,能够将输出的数据绘制成 PDF 格式的图片。

    飞行控制特性

    飞行控制系统或者自动驾驶仪能够作为独立的模块被JSBSim调用。飞行控制套件包含:滤波器、条件转换器、求和、传感器、增益(变化或静态)等。另外,还有一个可以用户自定义的函数模块。

    其他模块

    为实现飞行模拟,JSBSim还需要其他一些常用的模块,列举如下:

    • 运动方程
    • 气动力
    • 推进器
    • 可扩展性

    参考阅读

    1. JSBSim 官方网站
    2. JSBSim wiki
    3. JSBSim 参考手册
    4. FlightGear wiki

    作为下一步工作的主要内容,飞行模拟的学习终究还是要开展的。同样,学习笔记起到了督导的作用,希望能够尽快入门飞行力学,并逐步开展研究性的工作吧。在翻阅网络资料时有一个惊人的发现——JSBSim Commander的作者居然是笔者的老师兼朋友(Matthew Gong)。第一次与开发者团队距离这么近,就当是激励啦!

    相关文章

      网友评论

          本文标题:JSBSim学习笔记(1)——简介

          本文链接:https://www.haomeiwen.com/subject/zlsprttx.html