# 气动仿真模型修改

## Pg.1 软件在环仿真之文件路径介绍

软件在环仿真中，我们将飞控和Jsbsim紧密得结合在一起，没有作为两个独立的模块分别运行。因此，在修改时，需要弄清楚各个文件路径下都对气动模型进行了什么定义。

<table><thead><tr><th width="370">文件路径</th><th>文件说明</th></tr></thead><tbody><tr><td>ROMFS/px4fmu_common/init.d-posix/ariframes</td><td>飞控中定义的机型默认PID参数文件夹</td></tr><tr><td>ROMFS/px4fmu_common/init.d-posix/ariframes/CMakeLists.txt</td><td>飞控编译时需要生成的机型列表</td></tr><tr><td>Tools/setup_jsbsim.bash</td><td>JSBSim中需要编译定义的机型</td></tr><tr><td>Tools/jsbsim_bridge/configs</td><td>JSBSim中各机型的传感器和控制量定义文件夹</td></tr><tr><td>Tools/jsbsim_bridge/models</td><td>JSBSim中各机型的气动系数对应文件夹</td></tr><tr><td>platforms/posix/cmake/sitl_target.cmake</td><td>将飞控和JSBSim中的机型联系在一起</td></tr></tbody></table>

因此，在软环中添加一个新机型时，需要对上述五个地方都进行一定程度的修改。这里，我们根据修改内容逐次进行介绍和说明。

## Pg.2 软件在环仿真之添加机型策略

我们直接根据上述表格定义内容， 依次进行修改，完成新机型的添加任务。

* 首先，给自己的新机型起一个独特的ID号和名称，这里，我们给自己的新机型的ID号定为3030，名称定为BP200（黑凤蝶200型）

<figure><img src="/files/WhntQzRWJrABQWv3BV6d" alt=""><figcaption><p>Black Papilio 200 UAV </p></figcaption></figure>

* 在ROMFS/../airframes文件夹中，复制一个相同类型的文件，例如旋翼的`3010_quadrotor_x`  固定翼的`1033_rascal` VTOL的`1040_standard_vtol`等。这里，可以直接将旋翼的文件复制，重命名&#x4E3A;**`3030_BP200`**,并将飞控中的默认PID数据填入到对应的文件中。
* 在ROMFS/../airframes/CMakeLists.txt文件中&#x5C06;**`3030_BP200`**&#x586B;入到相同的位置中，至此，飞控的编译环境就设置完了。
* 之后，对Tools文件夹下的jsbsim相关参数进行设置。对Tools/setup\_jsbsim.bash进行修改，将BP200这一型号以相同形式添加到MODEL\_NAME中
* 对Tools/jsbsim\_bridge/configs中相似的传感器模型进行复制，这里，主要定义了JSBSim和飞控通讯的TCP端口，以及需要传输的传感器数据和控制数据，用于定义通讯的配置文件。
* 对Tools/jsbsim\_bridge/models中的气动模型进行定义，包括空气动力学系数、结构参数等，这里是模型修改的重点，我们将在下面分成一个板块单独进行介绍。

## Pg.3 软件在环仿真之修改机型参数

这里，需要说明的是，需要修改的参数主要是JSBSim中定义的飞行器参数，飞行器所使用的通用PID参数不在这里进行定义。

* Tools/jsbsim\_bridge/configs/BP200.xml中，需要注意的参数主要为Mavlink\_Interface这个参数较为重要，定义了JSBSIm和飞控的通讯TCP端口信息。
* Tools/jsbsim\_bridge/models/BP200文件夹中，对气动模型进行定义。下图为F450气动模型在JSBSIM官方例程中中所定义的具体参数。

<figure><img src="/files/m8bwTvHfMzl5UyfQN6qu" alt=""><figcaption><p>气动模型结构图</p></figcaption></figure>

在这里，我们对气动模型的具体参数进行简单的解释。以F450旋翼模型为例，整体拆分成了7个主要部分，分别是

1. 飞行控制参数：同一机型基本不进行修改，使用默认参数即可；
2. 空气动力学系数：主要是修改升力系数`CL`和阻力系数`CD`，一般是通过静力学分析软件Ansys Fluent仿真得到的。
3. 执行机构：用于定义输出的四个控制量，和configs中的一一对应即可，同机型不做修改。
4. 起落架：起落架部分主要是定义降落时起落架的弹性系数（降落后是否回弹）和滚动的阻尼系数（轮子的摩擦力），旋翼部分可尽量不做修改。
5. 质量：主要定义飞行器的空载质量和转动惯量，其中，转动惯量和质心一般是直接通过转台或专用设备进行测量。空载质量也需要提前进行测量。
6. 参考点：定义Eyepoint、Aeropoint、VRP三个点，其中，对大部分飞行器而言，只有Aero空气动力学中心是有用的，是仿真得到的。
7. 推进系统：推进系统包括火箭推进器、电机、涡轮喷压等多种，对于旋翼来说，需要设置四个电机的位置和安装角度，并确定型号和动力系数（查阅官方文档得到）。

通过修改上述信息，即可完成对飞行器的气动结构的修改和建模，进而完成对自身飞行器的仿真验证。

## Pg.4 硬件在环仿真之添加新机型

硬件在环仿真中，将飞控和Hitl\_Bridge进行了切割，如果不修改默认参数时，仅对Hilt\_Bridge中的气动系数进行修改即可正常仿真。这里，我们直接使用上述步骤中添加的软件在环仿真参数。介绍一种将软件在环仿真系数迁移到HITL\_Bridge中的操作步骤。

我们将生成的新生成的Tools/jsbsim\_bridge/models/BP200文件夹放置在/root/HITL\_Bridge/aircraft路径下，并将控制量添加到/root/HITL\_Bridge/src/Danube\_JSB2PX4.cpp路径中，添加新的机型对应的aircraft\_type变量中，在重新编译后即可正常使用。

**ps: 硬件在环仿真中，添加新机型较为复杂，需要仔细阅读源码之后再添加。并且验证困难，因此，请确保已经在软环仿真中验证成功后再添加到硬件在环仿真系统中！！！！！**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bit-sigma.gitbook.io/tutorials-for-sigma-free/sigma-free-fang-zhen-xi-tong-jian-jie/jin-jie-gong-neng-shi-yong/qi-dong-fang-zhen-mo-xing-xiu-gai.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
