纯硬件仿真仿真

  • 纯硬件仿真 (Simulation-in-hardware, SIH) 是硬件在环仿真 (HIL) 的一种替代方案。在该配置中,所有的算法都运行在嵌入式硬件平台 - 控制器,导航系统,飞行管理系统以及对象模型。桌面电脑仅用来作为可视化设备,比如运行QGC地面站。

    SIH 相比 HIL 有以下两个优点:

  • 它通过避免与计算机的双向连接来确保时间同步。因此,用户不需要使用功能强大的台式计算机。

  • 整个仿真运行在 FMT 环境中。开发人员可以更轻松地将他们自己的数学模型整合到仿真器中。例如,他们可以修改空气动力学模型或传感器的噪声水平,甚至可以添加新的要模拟的传感器。

  • 简化配置和仿真流程。

运行SIH仿真

  • FMT-FW中已经集成了最新的FMT-Model的模型,所以要运行SIH仿真非常简单,只需在目标平台的fmtconfig.h打开宏开关#define FMT_USING_SIH,然后重新编译并下载fmu的代码。

    通过serial0(FMU-Debug的串口,波特率57600)连接控制台,给飞控上电后可以看到如下输出:

       _____                               __ 
      / __(_)_____ _  ___ ___ _  ___ ___  / /_
     / _// / __/  ' \/ _ `/  ' \/ -_) _ \/ __/
    /_/ /_/_/ /_/_/_/\_,_/_/_/_/\__/_//_/\__/ 
    Firmware....................FMT FMU v0.1.0
    Kernel....................RT-Thread v4.0.3
    RAM.................................512 KB
    Target......................Pixhawk4 FMUv5
    Vehicle.........................Quadcopter
    INS Model..................Base INS v0.1.0
    FMS Model..................Base FMS v0.1.0
    Control Model.......Base Controller v0.1.0
    Plant Model.............Multicopter v0.1.0
    Task Initialize:
    comm..................................OK
    logger................................OK
    fmtio.................................OK
    status................................OK
    vehicle...............................OK
    [559] I/StatusTask: SIH Simulation
    

    也可以通过QGC地面站的Mavlink Console连接控制台,然后输入boot_log指令查看开机信息,如下:

    我们可以看到模型信息里面多了一个Plant Model——Multicopter v0.1.0的模型,这个模型就是被控对象模型,可以看到它是在我们飞控上运行的。

    通过uMCN我们可以看到各个传感器的数据有在发布,这里数据不是从板上的传感器采集,而是从Plant Model中输出的。

    然后我们可以像操作正常飞机一样来操纵SIH仿真,比如让飞机飞个航点

    通过SIH仿真我们可以很方便地验证我们的算法以及飞控的各个软件模块。甚至在SIH仿真的同时,也可以记录日志数据来进行开环仿真。