查看: 5|回复: 0

手把手教你搞定 RflySIM 与 Simulink 的联合仿真集成全流程

[复制链接]

10

主题

0

回帖

46

积分

版主

积分
46
发表于 6 小时前 |天津| 显示全部楼层 |阅读模式
本帖最后由 liuchen 于 2026-7-23 16:16 编辑

最近我们在进行固定翼无人机仿真开发时,整理了一套 RflySIM 模型与 Simulink 联合仿真 的标准作业流程。这套流程涵盖了从 Simulink 模型接口配置、C++ 代码生成、工程适配到 HSEP 仿真内核加载验证的全过程。
为了方便大家复现和排查问题,我将核心步骤整理如下,希望能对各位飞控算法和仿真开发的同学有所帮助!

一、 准备工作与环境要求
在开始之前,请确保你的开发环境满足以下最低配置,以免编译或仿真过程中出现性能瓶颈:
  • 操作系统:Windows 10/11
  • CPU:Intel i5-12400 或 AMD R5 5600G 及以上
  • 内存:16GB DDR4
  • 硬盘:512GB SSD
  • 软件依赖:
    • RflySIM 安装包
    • Microsoft Visual Studio Code (用于代码编辑)
    • CMake (用于生成工程)


二、 核心集成流程详解
整个集成过程可以概括为:模型配置 → 代码生成 → 代码适配 → 编译部署 → 仿真验证。
1. Simulink 模型接口整理
这是最关键的一步。我们需要明确哪些信号是 HSEP(高可拓展执行程序)提供的输入,哪些是需要发布的输出。
  • 接口规范:输入输出必须通过明确的 Inport、Outport 或 Bus 连接,严禁依赖未管理的临时变量。
  • 命名与类型:端口名称需唯一,并与后续 C++ 接口命名保持一致;务必检查 Bus 信号的层级结构。
  • 模型检查:运行 InitData.m 和 AircraftMathworks_init.m 后,确保模型无代数环、数据类型匹配且能稳定仿真。
2. 使用 Code Gen 生成 C++ 代码
利用 NA-ICG-SimulinkGen 工具进行代码生成:
  • 加载 Simulink 模型(如 AircraftMathworks_fix1)。
  • 配置输出目录和类名(例如 Demo:SimElements:Example)。
  • 设置类型映射(如 int8->Int64 等)。
  • 点击 Generate C++ 生成基础代码框架。
3. 代码适配与修改 (重点!) ⚠️
生成的代码不能直接运行,需要根据实际硬件接口(如摇杆)进行适配。以下是几个核心修改点:
  • 输入接口修改:
    将输入接口改为操纵杆原始数据。在 subscribeInputs() 中,订阅 CLS_VKB Topic 下的 X, Y, Z, rY 通道,分别对应副翼、升降舵、方向舵和油门。
  • 增加归一化处理:
    操纵杆原始值通常为 -32768 ~ 32767,需转换为模型可用的物理量。建议新增 Normalization() 函数:
    • 副翼/升降舵/方向舵:映射到 [-1, 1]
    • 襟翼/油门:映射到 [0, 1]
  • 输出变量更新:
    在 Outputs 类中增加归一化结果的输出变量(如 aileron_normalization),并在 publishOutputs() 中更新 Topic 和变量名称,确保 UDMM 能监控到。
4. 工程编译与部署
  • 替换文件:将修改后的 FixedWing.cpp 和 FixedWing.h 替换到 RflySIM 工程目录中。
  • CMake 生成:使用 CMake GUI 配置路径,生成 Visual Studio 工程文件(.sln)。
  • VS 编译:在 VS 中执行“生成解决方案”,确保无错误。
  • 文件检查:检查 exec 目录,确认生成的 .dll 或模块文件时间已更新。

三、 仿真运行与验证
编译完成后,我们就可以启动仿真内核进行验证了。
  • 启动内核:
    切换到 exec 目录,打开 PowerShell,运行以下命令(以 Debug 配置为例):
    .\bin\HSEP-Exec.exe -c .\conf\simulation.xml
  • 状态检查:
    观察控制台输出,确保许可证校验通过,且 RflySIM LFM 模块无初始化失败提示。
  • UDMM 监控:
    打开 UDMM (Unified Data Matrix Monitor),连接运行实例。在变量树中找到 FixedWing 或 CLS_VKB,观察 aileron_normalization 等变量是否随摇杆操作实时变化。

四、 常见问题排查
  • 编译报错:优先查看“输出”窗口的第一条错误,通常是头文件路径或语法问题。
  • 数据不更新:检查 subscribeInputs 中的 Topic 名称是否与 HSEP 配置文件中的一致(如 CLS_VKB)。
  • 摇杆无响应:检查控制台是否有“未检测到摇杆设备”提示,或检查 USB 连接。

以上就是本次 RflySIM 与 Simulink 集成的全流程分享。文档中提到的示例模型基于最小系统模板搭建的固定翼模型,大家可以根据实际机型进行参数调整。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:business@nimbusaether.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部