JSBSim是一个开源跨平台的飞行动力学模型(FDM)软件库,用于模拟航空航天飞行器的飞行动力学。 该库已被纳入飞行模拟软件包FlightGear和OpenEaagles。JSBSim可以独立运行,通过命令行参数指定飞行器和初始状态,进行简单情境下的飞行动力学仿真,也可以将JSBSim作为代码库,编程实现飞行器模型加载,设置输入,获得输出。下面即介绍在Linux平台编程调用JSBSim库的方法和步骤。
基础知识
gcc与g++
GNU编译器套装(英语:GNU Compiler Collection,缩写为GCC),指一套编程语言编译器,以GPL及LGPL许可证所发行的自由软件,也是GNU项目的关键部分,也是GNU工具链的主要组成部分之一。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。
通常gcc用于编译链接c代码文件,而g++用于编译链接c++代码文件,但它们的使用方法很类似。下面介绍gcc和g++的常用选项。
- 添加头文件搜索路径
1 | gcc foo.c -I /home/xiaowp/include -o foo |
- 添加动态库搜索路径
1 | gcc foo.c -L /home/xiaowp/lib -lfoo -o foo |
- 添加静态库搜索路径
1 | gcc foo.c -L /home/xiaowp/lib -static -lfoo -o foo |
编程实践
最简仿真
下面是JSBSim参考手册中的最简单实例,因JSBSim的不断开发,JSBSim参考手册中该编程实例有点过时,因此进行了少量修改。
1 | #include <FGFDMExec.h> |
从上述代码可知,调用JSBSim的主要方法是利用FGFDMExec类,通过实例化一个FGFDMExec类,就相当于获得了一个运行JSBSim仿真的工具箱,通过这个工具箱就可以调用JSBSim的大部分功能,实现我们要的仿真目标。
接下来对该实例进行编译链接,使用如下命令:
1 | # jsbsim_script.cpp是上述实例的代码文件 |
测试该实例,使用如下命令:
1 | # jsbsim是JSBSim项目文件夹 |
参考链接
- JSBSim编程实践,by 32768.
- 战斗机与引擎速查,by 么的聊.
- JSBSim学习笔记(3)—— 基本概念,by 么的聊.
- JSBSim学习笔记(6)——飞行控制系统,by 么的聊.
- Linux平台编译安装测试JSBSim,by jack huang.
- JSBSim Reference Manual ,by jsbsim.
- gcc和g++头文件和库路径的寻找和添加,by 周学伟.
- GCC,by wikipedia.
- WHAT IS THE DIFFERENCE BETWEEN GCC AND G++,by KITTY GUPTA.