FMT ICF5实时仿真,不止于飞控

news/2024/10/17 22:22:23/

基于ICF5的实时仿真

作为FMT的首款自研的国产开源飞控硬件平台,ICF5不仅功能强大,而且高颜值和高性价比获得了用户的一致好评。

FMT ICF5飞控

ICF5购买链接​item.taobao.com/item.htm?id=705459383848&ali_refid=a3_430620_1006:1123834906:N:O3mcoUggvOmuxWcZ5TrtiQ%3D%3D:69fa2cb78214f2a9eeb73ab7c59bb9ba&ali_trackid=162_69fa2cb78214f2a9eeb73ab7c59bb9ba&spm=a21n57.1.0.0#detail

但是ICF5的功能不仅限于一款飞控平台,ICF5还可以作为实时仿真目标机提供了实时仿真的接口,能够运行无人机或者其它被控对象的物理模型并开展半实物(Hardware-in-loop, HIL)或者纯硬件(Simulator-in-hardware,SIH)实时仿真。相比于动辄上万或者上十万的实时仿真机,ICF5可谓是“真香”。

ICF5支持基于模型设计(Model-based design,MBD),可以使用Simulink搭建被控系统的模型。目前ICF5内置了多款无人机的被控对象模型,也可以基于FMT来轻松搭建其它的被控对象模型。

多旋翼被控对象模型MC-Plant​github.com/Firmament-Autopilot/FMT-Model/tree/master/model/Plant/MC-Plant

固定翼被控对象模型FW-Plant​github.com/Firmament-Autopilot/FMT-Model/tree/master/model/Plant/FW-Plant

MC-Plan

 

模型可以直接生成C/C++代码烧录到ICF5中实时运行。

代码生成

 

运行数据可以被ICF5记录下来,并导入Matlab中查看。

数据分析

半实物仿真

半实物仿真,亦称硬件在环仿真,是一种实时仿真技术,它将真实的硬件与计算机仿真技术相结合,用于测试和验证嵌入式系统的性能。在HIL仿真中,嵌入式系统被连接到仿真器或模拟器上,并与真实的物理设备进行交互,以模拟实际环境中的操作和反馈。通过HIL仿真,可以更全面、准确地评估嵌入式系统的性能和可靠性,以及它们与周围环境的交互。

ICF5可以作为仿真机运行被控系统模型,同时还提供了丰富的硬件接口,如串口,SPI,IIC,USB,网口,CAN等用于跟外部控制器和仿真电脑进行数据交换。

HIL仿真

纯硬件仿真

纯硬件仿真类似于半实物仿真,都是基于硬件的仿真技术。他们的主要区别在于,纯硬件仿真时将被控系统模型和控制器合二为一,即在一个硬件上同时运行Plant和Controller。他的好处是可以简化硬件结构和成本,同时也省去了中间通信所带来的信号延时和带宽问题。

SIH仿真

仿真步骤

以纯硬件仿真为例,下面介绍一下使用ICF5进行实时仿真的基本步骤:

1. 获取FMT-Firmware的最新代码。可从如下Github地址拉取。

FMT-Firmware​github.com/Firmament-Autopilot/FMT-Firmware

2. 在fmtconfig.h中打开FMT_USING_SIH的宏,即开启SIH仿真功能。

3. 输入scons -j4编译多旋翼固件(默认)。如果要编译固定翼的固件,请使用scons -j4 --vehicle=Fixwing

4. 将固件下载到ICF5飞控中。飞控运行起来后,可以在控制台输出中看到Plant模型已经被加载。

5. 将遥控器连接到飞控(也可以选择不使用遥控),同时连接上地面站。然后可以像操作真实飞机一样进行仿真测试。比如使用遥控器控制飞行,或者使用地面站绘制航点等。

仿真演示案例

下面演示一些实际的仿真案例。

基于ICF5的多旋翼绕8 SIH仿真

基于ICF5的固定翼SIH仿真

ICF5用户案例


http://www.ppmy.cn/news/104025.html

相关文章

msvcr90.dll丢失的解决方法

在使用计算机的过程中,我们时常会遇到一些问题,比如应用程序无法正常启动,提示msvcr90.dll文件丢失,这个问题困扰了许多计算机用户。那么,怎么才能解决这个问题呢? 首先,让我们先了解一下msvcr…

Vue.js开发必备插件大曝光:Clipboard.js, Vue-Lazyload等库介绍

部分数据来源:ChatGPT 1、Lodash Lodash 是一个 JavaScript 实用工具库,提供了很多常用函数的封装,例如对象处理、数组处理、字符串处理等。Lodash 可以在浏览器中直接使用,也可以使用 npm 安装后在 Node.js 中使用。 // 安装方…

Spring MVC 深度解析与应用实践

文章目录 1. 引言1.1 Spring MVC 概述1.2 Spring MVC 在 MVC 架构中的位置 2. Spring MVC 的工作流程2.1 DispatcherServlet (前端控制器)2.2 HandlerMapping (处理器映射器)2.3 Handler (处理器)2.4 ModelAndView2.5 ViewResolver (视图解析器) 3. Spring MVC 基础应用3.1 环境…

kotlin用CoroutineScope启动协程async等待结果返回

kotlin用CoroutineScope启动协程async等待结果返回 例如: import kotlinx.coroutines.*object MyCoroutineScope {private val coroutineContext Job() Dispatchers.Default CoroutineName("my_context")val coroutineScope CoroutineScope(corouti…

Shell脚本test和[]和[[ ]]和(())语句应用

记录:437 场景:Shell脚本test、[]、[[]]、(())语句应用。 版本:CentOS Linux release 7.9.2009。 1.test和[]和[[]]和(())语句 test,test命令用于检测某个条件是否成立。可以进行数值、字符和文件等方面的测试。 []&#xff…

doris分区、join

动态分区和临时分区 动态分区 旨在对表级别的分区实现生命周期管理(TTL),减少用户的使用负担。 目前实现了动态添加分区及动态删除分区的功能。只支持 Range 分区。原理 在某些使用场景下,用户会将表按照天进行分区划分,每天定时执行例行任…

计算机组成原理-中央处理器-控制器功能和原理

目录 一、硬布线控制器 二、硬布线控制器的设计(硬件) 2.1分析每个阶段的微操作序列(取址、间址、执行、中断) 2.2选择cpu的控制方式 2.3 安排微操作时序 2.4电路设计 2.4.1列出操作时间表 2.4.2 写出微操作命令的最简表达式 2.4.3画出电路图 *三、微程序控制器基本原理 四…

mysql数据库连接失败授权认证 reading authorization packet --别的电脑可以,但是本地电脑连接失败

1.分析原因是否由于本机多次失败连接导致 在能连接的主机上或者服务器上 查看当前数据库阻断连接次数是否在不断增长 SHOW GLOBAL STATUS LIKE Aborted_connects;1.2观察这个终端连接次数是否一直在增长 如果一直在增长,说明mysql服务器被计算机不断的进行连接且被…