JSBSim 文档资源全解析:Jupyter 仿真用例、数据电子表格与 Doxygen 文档构建
科学计算科研【免费下载链接】jsbsimAn open source flight dynamics control software library项目地址https://gitcode.com/gh_mirrors/js/jsbsim点击查看免费下载本文以 JSBSim 仓库中 doc/README.md 为线索系统梳理该开源飞行动力学与控制软件库的三类工程文档资源基于 Python 3 接口的 Jupyter 仿真笔记本、用于解释数据来源的 ODF 电子表格以及通过 Doxygen 定制与构建 API 文档的配置体系。读完本文你将掌握如何在 JSBSim 中运行现有笔记本复现工程仿真用例、理解标准大气数据的推导来源并能在本地从源码构建出可浏览的 API 文档。一、资源总览doc/README.md 的三条主线doc/README.md 是 JSBSim 文档目录的索引入口全文仅围绕三个主题展开对应仓库中三类可复用的工程资源主题载体面向对象仓库位置Jupyter notebooks 用例.ipynb笔记本工程仿真工程师、Python 用户doc/basic、examples/python数据来源电子表格ODF 格式.ods需要核对建模常数的开发者doc/spreadsheetsDoxygen 文档构建DoxygenLayout.xmlJSBSim.dox.in需要从源码生成 API 文档的维护者doc/DoxygenLayout.xml、doc/JSBSim.dox.in其中 notebooks 一节明确说明这些笔记本基于JSBSim 的 Python 3 接口与项目单元测试使用同一套接口参见 tests/JSBSim_utils.py 及 tests 目录下的大量Test*.py测试文件因此笔记本中的代码路径与实际测试逻辑同源具有较高的可信度与可移植性。二、Jupyter 笔记本面向工程仿真的 Python 用例2.1 入门引导basic 目录中的两个基础笔记本文档目录下提供了两个最基础的笔记本作为进入 JSBSim Python 仿真的第一步doc/basic/00_JSBSim_sandbox.ipynb沙盒演示笔记本展示如何创建FGFDMExec实例、加载飞机模型与脚本并推进仿真循环doc/basic/01_JSBSim_Setup.ipynb环境搭建笔记本覆盖 Python 模块安装、数据目录配置等准备工作。这两个笔记本共同依赖目录下的辅助模块 doc/python/JSBSim_nb_utils.py。该模块封装了笔记本开发中反复使用的三个关键函数SandBox类在临时目录中创建隔离的运行环境将 JSBSim 数据根目录aircraft、engine、systems三个子目录映射为相对路径避免笔记本污染仓库工作区CreateFDM(sandbox)等价于jsbsim.FGFDMExec(root_dir...)的封装并依次调用set_aircraft_path()、set_engine_path()、set_systems_path()指定数据路径这是笔记本中获取可运行 FDM 实例的标准方式ExecuteUntil(_fdm, end_time)驱动仿真循环直至模拟时间超过end_time等价于主 README 中while fdm.run(): pass的带终止条件版本。import jsbsim fdm jsbsim.FGFDMExec(None) # None 表示使用安装时自带的默认飞机数据 fdm.load_script(scripts/c1723.xml) fdm.run_ic() while fdm.run(): passjsbsim.FGFDMExec传入None时将自动使用随 Python wheel 包安装的默认数据目录该目录的实际路径可通过jsbsim.get_default_root_dir()查询print(jsbsim.get_default_root_dir())2.2 工程性能分析用例examples/python 目录examples/python 目录集中存放了展示 JSBSim 工程分析能力的笔记本这些笔记本的主题与 doc/README.md 所称show how JSBSim can be used for engineering simulations一一对应可归纳为四类工程任务配平包线Trim EnvelopeTrim Envelope.ipynb 在一系列空速与航迹角组合下求解配平点并以色图colormap直观呈现所需推力与迎角AoA。其底层依赖 src/initialization 中的配平求解器FGTrim、FGSimplexTrim等读者可对照 scripts 下多个*_trim*.xml脚本理解配平收敛流程。迎角—校准空速关系AoA vs CASAoA vs CAS.ipynb 针对一组飞机重量、高度与重心cg组合计算并绘制平飞配平下的迎角随校准空速CAS变化曲线。控制输入瞬态响应Rudder Kick.ipynb 模拟飞行员蹬舵rudder kick试验绘制控制输入与侧滑角的时间历程test_pathsim_01_Trim_Elevator_Doublet.ipynb 则以升降舵双脉冲激励演示类似流程。可结合 scripts/rudder_kick.xml、aircraft/c172x/elevator_doublet_init.xml 复现试验脚本。性能优化与飞控设计Thrust Vectoring Analysis.ipynb 变化推力矢量角以寻找巡航与爬升阶段的最低燃油消耗Pitch SAS Implementation.ipynb 为 A4 攻击机实现俯仰增稳系统SAS以改善俯仰阻尼可对照 systems/FCS-pitch.xml 中已有的俯仰通道示例。此外 examples/python/test_ballx.ipynb 演示了基于 aircraft/ballx 模型的简单自由体仿真。这些笔记本中使用的脚本如scripts/c1723.xml、scripts/c1721.xml与飞机模型如 aircraft/c172x均可在仓库中直接查阅。2.3 数据输出与结果验证笔记本分析所需的仿真数据由 JSBSim 的可配置输出机制产生。data_output 目录提供了开箱即用的输出配置模板position.xml、velocities.xml、rates.xml、fcs.xml、aerodynamics.xml、atmosphere.xml、ground_reactions.xml等分别对应位置、速度、角速率、飞控、气动、大气与地面力数据通道而flightgear.xml、socket.xml则面向 FlightGear 网络协议与 socket 输出。这些模板与 src/input_output/FGOutputType.cpp 等实现文件对应可支撑笔记本中对 csv 数据的后处理与绘图。三、电子表格建模常数的可追溯来源doc/README.md 的第二个主题是提供 Open Document 格式 的电子表格用于说明 JSBSim 中部分数据的计算过程。仓库中对应文件为doc/spreadsheets/Standard_Atmosphere_constants.ods该电子表格的主题与 JSBSim 的大气模型直接相关。项目 README 中明确说明其大气模型依据 1976 年国际标准大气ISA-1976建立本表格即用于展示标准大气常数的推导与取值过程。这些常数在源码层面对应的实现位置包括 src/models/atmosphere大气模型、src/math/FGLocation.cpp 中的标准大气辅助计算以及测试文件 tests/TestStdAtmosphere.py、tests/TestPressureAltitude.py、tests/TestDensityAltitude.py 对大气模型行为的验证。查阅电子表格时建议与上述源码、测试对照阅读以理解每个常数在仿真循环中的实际作用。四、Doxygen定制并构建 JSBSim API 文档doc/README.md 的第三个主题指出DoxygenLayout.xml与JSBSim.dox.in两个文件包含了定制与构建 JSBSim 文档所需的全部指令。4.1 配置模板 JSBSim.dox.indoc/JSBSim.dox.in 是 Doxygen 的 Doxyfile 配置模板通过 CMake 的configure_file机制在构建时填充PROJECT_VERSION、TODAY、CMAKE_CURRENT_SOURCE_DIR等变量后生成实际使用的 Doxyfile。其中几个与文档定制直接相关的关键配置项PROJECT_NAME JSBSim Flight Dynamics Model、PROJECT_BRIEF、PROJECT_LOGO定义文档标题、副标题与 doc/JSBSimGlobeLogo.png 项目图标OUTPUT_DIRECTORY documentation指定文档输出目录INPUT列出参与文档生成的源码目录与文件包括 src含 src/models、src/initialization、src/input_output、src/math 及 src/JSBSim.cpp 入口以及 src/simgear/props/props.hxx同时通过FILE_PATTERNS *.h *.cpp限定只解析头文件与源文件EXCLUDE显式排除FGSimplexTrim、FGTrimAnalysis、FGTrimAnalysisControl、FGTrimmer与FGNelderMead等尚未纳入文档的配平/优化相关文件LAYOUT_FILE指向 doc/DoxygenLayout.xml由后者控制输出页面的全局结构SOURCE_BROWSER YES、INLINE_SOURCES YES开启源码浏览与内联源码便于在类文档中直接跳转到实现WARN_LOGFILE JSBSim.Doxygen.WarnLog将 Doxygen 警告输出到日志文件。4.2 布局文件 DoxygenLayout.xmldoc/DoxygenLayout.xml 定义了 Doxygen 输出页面的组织方式包括导航标签navindex中的 mainpage、pages、modules、namespaces、classes、files、examples 各标签及其可见性以及类页、命名空间页、文件页、分组页、目录页中各级成员声明的排列与标题。例如类页中通过briefdescription visibleno/隐藏简要描述并配置memberdecl与memberdef两个阶段内各类型成员的显示顺序——这正是对文档如何定制的最直接体现修改该 XML 即可调整生成文档的栏目结构。4.3 从 CMake 构建文档文档构建已集成进项目 CMake 体系。CMakeLists.txt 中通过find_package(Doxygen)检测 Doxygen 工具找到后执行configure_file(${PROJECT_SOURCE_DIR}/doc/JSBSim.dox.in ...)生成 Doxyfile 并调用 Doxygen 生成 API 文档。此外 python/CMakeLists.txt 还利用 Doxygen 生成的文档自动为 Python 模块生成 docstring。构建文档的典型流程为安装 Doxygen 与 CMake 后在仓库根目录配置并构建项目构建系统会顺带生成documentation目录下的 HTML 文档更详细的构建步骤可参见 doc/DevelopersDocs.md。4.4 主循环流程图文档配套的架构素材doc/JSBSimMainLoopFlow.dot 是与文档体系配套的 Graphviz 流程图源码描绘 JSBSim 主循环中模型执行顺序与数据依赖Propagate → Input → Inertial → Atmosphere → Winds → Control Systems → MassBalance → Auxiliary → Propulsion → Aerodynamics → GroundReactions → ExternalReactions → BuoyantForces → Aircraft → Accelerations → Output并以不同填充色区分环境模型、力模型与执行器标注了qbar、Alpha、Beta、PQR、UVW、J等关键中间量的传递关系。该图是理解 src/FGFDMExec.cpp 主循环调用顺序的极佳可视化索引。五、继续深入配套阅读路径工程入门先跑通 doc/basic/00_JSBSim_sandbox.ipynb 与 doc/basic/01_JSBSim_Setup.ipynb再深入 examples/python 中的六个性能分析笔记本语言接口C 最小示例参见主 README#include FGFDMExec.h后调用LoadScript、RunIC、RunPython 完整命令行入口为 python/JSBSim.py更多接口说明见 doc/DevelopersDocs.md数据与脚本飞机模型定义位于 aircraft含 737、c172x、f16、A320 等数十个机型仿真脚本位于 scripts引擎模型位于 engine文档构建对照 doc/JSBSim.dox.in 与 doc/DoxygenLayout.xml 理解参数含义后按 doc/DevelopersDocs.md 完成本地文档构建。综上doc/README.md 虽篇幅精简但指向的 notebook、电子表格与 Doxygen 配置三套资源分别覆盖了 JSBSim 的使用—溯源—构建三层工程需求是进入该飞行动力学库生态的高性价比起点。赞分享科学计算科研【免费下载链接】jsbsimAn open source flight dynamics control software library项目地址https://gitcode.com/gh_mirrors/js/jsbsim点击查看免费下载相关推荐POCO数据库分表资源文档与案例研究POCO数据库分表资源文档与案例研究 你是否在处理海量数据时遇到过数据库性能瓶颈是否因单表数据量过大导致查询缓慢、维护困难本文将系统梳理POCO C后端网络/通信数据库密码学Web框架Apache Arrow 文档构建全指南基于 Doxygen 与 Sphinx 搭建官方文档站Apache Arrow 文档构建全指南基于 Doxygen 与 Sphinx 搭建官方文档站 Apache Arrow 是一个跨语言的列式内存数据格式与数据数据工程大数据序列化数据分析Android-PickerView 源码文档生成使用Doxygen创建API文档Android PickerView 源码文档生成使用Doxygen创建API文档 1. 引言为什么需要API文档 在Android开发中高质量的API移动开发UI组件上一篇猫抓cat-catch网页视频下载教程快速完整保存视频、音频与M3U8流媒体的指南下一篇LuaDec51 完整使用指南Lua 5.1 字节码反编译终极教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

to-spec 拆解:把会消失的对话,变成下一场会话能接手的规格文档

to-spec 拆解:把会消失的对话,变成下一场会话能接手的规格文档

to-spec 拆解:把会消失的对话,变成下一场会话能接手的规格文档 【免费下载链接】skills Skills for Real Engineers. Straight from my .agents directory. 项目地址: https://gitcode.com/GitHub_Trending/skills13/skills 一场会话刚跑完&#…

2026/10/5 1:57:25 阅读更多 →
Android P上添加自定义HIDL实例:从接口定义到SELinux的完整指南

Android P上添加自定义HIDL实例:从接口定义到SELinux的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:57:25 阅读更多 →
基于STM32的循迹避障小车制作攻略(上篇:硬件与原理)

基于STM32的循迹避障小车制作攻略(上篇:硬件与原理)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:57:25 阅读更多 →

最新新闻

STM32电子时钟实战:从RTC校准到OLED驱动的硬核调试

STM32电子时钟实战:从RTC校准到OLED驱动的硬核调试

1. 这不是“又一个电子时钟”,而是STM32入门的实战锚点你搜“STM32电子时钟”,页面刷出来几百个教程——有的用51单片机冒充STM32,有的KEIL工程里连HAL库都没开,有的Proteus仿真图里OLED引脚全接错还标着“已实测”。我带过三届嵌…

2026/10/5 4:11:20 阅读更多 →
轴套类零件工程图全解析:视图、尺寸标注与公差配合

轴套类零件工程图全解析:视图、尺寸标注与公差配合

轴、套类零件是机械设计里最绕不开的两大基础件,几乎所有传动系统、支撑结构里都有它们的身影。但很多刚入行的朋友画这类零件的工程图时,容易陷入两个极端:要么视图表达不完整,要么尺寸标注混乱,一张图拿到加工师傅手…

2026/10/5 4:11:20 阅读更多 →
PHP内存管理:引用计数与循环引用GC的深度拆解与实战

PHP内存管理:引用计数与循环引用GC的深度拆解与实战

聊PHP内存管理,永远绕不开两个词:引用计数和循环引用GC。日常写业务代码,你很少直接感知它们,但一旦线上内存持续上涨、常驻进程越跑越臃肿、或者被问到“两个对象互相引用,PHP到底怎么回收”,就会发现在这…

2026/10/5 4:11:20 阅读更多 →
惊蛰唤醒指南:三步清理身体与生活,告别春季疲劳

惊蛰唤醒指南:三步清理身体与生活,告别春季疲劳

这两天我下班路上,看到小区里那排光秃秃的紫叶李终于冒出了花苞。说实话,年初那阵子我状态并不好,每天起床像被人拔了电源,明明睡了八小时还是困,办公桌上堆着去年的文件,回家只想瘫在沙发上刷手机&#xf…

2026/10/5 4:11:20 阅读更多 →
Jetson Nano实时内核编译实战:基于linux-6.6.119打造工业级确定性系统

Jetson Nano实时内核编译实战:基于linux-6.6.119打造工业级确定性系统

1. 项目概述:为什么Jetson Nano需要实时内核?Jetson Nano不是一块普通开发板,它是一台被封装进手掌大小PCB里的嵌入式Linux工作站——4核ARM Cortex-A57、128核Maxwell GPU、4GB LPDDR4内存,硬件规格足以跑通ROS 2的完整导航栈。但…

2026/10/5 4:11:20 阅读更多 →
用Python和SQLite打造“多米诺骨牌”刷题打卡追踪器

用Python和SQLite打造“多米诺骨牌”刷题打卡追踪器

那天晚上的场景我记得很清楚:晚上十一点半打开牛客网的每日一题,题目还没读完,手机弹出来一条消息,我顺手回完消息再回到电脑前,已经过了零点。当天的格子永远空掉了——我坚持了六十多天的连续记录,就此断…

2026/10/5 4:10:19 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →