康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(一)

news2024/10/6 10:29:21

功能模型接口FMI(Functional Mock-up Interface)是一个开放且与工具解耦的标准。FMI包含了一个C-API(接口),一个用于描述接口的XML文件以及可交换的功能模型单元FMU(Functional Mock-up Unit),通常会是“zip”文件。FMI实际上是提供了容器化形式的模型,能够在不同的目标上轻松进行重复使用和部署,实现在不同的自动驾驶仿真工具之间动态交换仿真模型和联合仿真。


目录

一、FMI的使用

1、导入和导出工具

2、FMU文件结构

3、FMI 2.0和FMI 3.0

二、FMI 3.0.1中的联合仿真

1、多个仿真程序耦合

2、子系统耦合

3、示例

4、同步和误差管理

作者介绍

崔工


一、FMI的使用

1、导入和导出工具

通常来说在使用FMI时会有包含导入和导出工具。

导出工具通常是开发模型的地方,能够将模型按照FMI标准打包为FMU;导入工具通常独立于导出工具,可以在外部设置由C-API定义的一个变量、一个值或是触发一个计算步骤,在接收FMU后在,可以在导入工具中与其他模型结合并实现联合仿真。

实际上FMI标准只定义了一个FMU的接口,在多个FMU进行耦合并实现联合仿真时,FMI标准并不涉及到的联合仿真算法或是FMU 的求解器。

2、FMU文件结构

FMU作为模型的容器能够自由的进行分发,通常来说是一个以".fmu"结尾的zip文件。

在一个FMU文件中,至少包含了一个模型描述文件,其描述了模型变量、接口、能力以及模型架构扩展限制的元数据信息。

还至少包含了一个二进制的模型表示,在Linux系统下是.so文件,在window系统中是dll文件。也可以是C源码,能够让使用者进行重新编译创建一个新的二进制文件用于新的目标,这一部署机制可以方便的扩展到不同的系统平台上。

除此以外,可能还包括额外的文件,比如模型文档和相关的头文件。

3、FMI 2.0和FMI 3.0

FMI2.0包括:

带有事件的常微分方程(ODEs),这些方程描述了系统的动态行为,需要通过数值求解器来进行求解;

连续和离散变量,即FMI的模型中,变量可能是随时间变化,也可以是在特定时间点发生变化;

时间概念,或可以理解为更广泛的独立变量,或是自变量,比如可以是一个角度,从而表述系统的动态变化。

FMI3.0增加:

不仅限于动态方程,也支持纯代数方程,可以处理不随时间变化的静态关系;

进一步支持了复杂的离散行为,即通过使用始终和模型分区来管理模型的顺序和同步;

同时不仅仅是基于物理的方程还可以:

  • vECU模型

  • 机器学习模型

  • AI模型

  • ......

二、FMI 3.0.1中的联合仿真

1、多个仿真程序耦合

联合仿真时将多个仿真程序耦合在一起,最终实现由多个子系统组成整理自动驾驶HiL系统的行为。

2、子系统耦合

子系统之间是互相耦合的,也就是每个子系统的行为依赖于其他子系统的行为,所以联合仿真必须是以逐步计算的方式进行。

3、示例

每个仿真程序负责计算一个子系统的行为,比如在自动驾驶HiL系统中,aiSim负责场景和传感器仿真,CarSim负责车辆动力学,两个仿真程序互相使用对方产生的输出来进行计算。

CarSim中车辆动力学更新的频率时1kHz,那么需要同步aiSim中场景更新的频率也为1kHz,而且只有在收到动力学信息后才会进行下一步的仿真。

4、同步和误差管理

在联合仿真的过程中,可能会产生附加误差,需要通过合适的联合仿真算法或是通信模式来将其限制在可接受的范围内,比如设置更新步长等。


作者介绍

崔工

康谋科技仿真测试业务技术主管,拥有超过5年的汽车仿真测试及自动驾驶技术研发经验,熟练掌握仿真测试工具和平台,如aiSim、HEEX等,能有效评估和优化自动驾驶系统的性能和安全性。拥有出色的跨文化沟通能力,成功带领团队完成多项海外技术合作项目,加速了公司在自动驾驶技术上的国际化进程。作为技术团队的核心,领导并实施过大规模的自动驾驶仿真测试项目,对于车辆行为建模、环境模拟以及故障诊断具有独到见解。擅长运用大数据分析和人工智能技术,优化仿真测试流程,提高测试效率和结果的准确性。


如您对上述产品和解决方案感兴趣,

欢迎联系康谋自动驾驶团队了解更多信息。

我们将竭诚为您服务!

期待与您的交流!

康谋科技 - 您的一站式自动驾驶解决方案合作伙伴,助力自动驾驶商业化落地 - keymotek康谋科技有限公司是原虹科自动驾驶业务孵化出来的全新独立公司,专注于自动驾驶领域。我们以数据为驱动力,提供高性能的数据采集、记录、传输方案,针对各种驾驶场景进行精准的仿真模拟,以及对大量自动驾驶数据进行高效、高质量处理。我们的一站式服务能够满足自动驾驶领域研发测试的全流程需求,助力客户在自动驾驶领域取得更大突破。icon-default.png?t=N7T8https://keymotek.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1814267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过nerdctl+buildctl编译发布go程序docker镜像

1 nerdctl安装 下载: wget -c https://github.com/containerd/nerdctl/releases/download/v1.7.6/nerdctl-full-1.7.6-linux-amd64.tar.gz 解压: tar -zxf nerdctl-full-1.7.6-linux-amd64.tar.gz -C /usr/local/nerdctl 配置: /usr/local/nerdctl/…

6月报名 | 海克斯康Actran风机类气动噪声分析培训

您好!感谢您长期以来对优飞迪科技与海克斯康的关注与支持。我们诚邀您参加海克斯康Actran风机类气动噪声分析培训,特邀海克斯康原厂讲师将以实操为基础,结合真实案例,手把手帮您解锁噪声仿真关键技术。 活动主题: 海…

【架构之路】微服务中常用的几种通信方式

2024年,计算机相关专业还值得选择吗? 强烈推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能 引言 微服务架构由于其灵活性、高可扩展性和易维护性&am…

mysql打开远程访问

这里写目录标题 1.使用navicat进入命令控制板,进入use mysql;2.查询用户表3.更新user表中root用户域属性,%表示允许外部访问4.执行以上语句之后再执行,FLUSH PRIVILEGES;5. 执行授权语句 1.使用navicat进入命令控制板,进入use mysql; use mysql;2.查询用…

NOSQL -- MOGODB

Mogodb简介: 是一个开源的, 高性能, 无模式的文档型数据库. NoSql数据库产品当中的一种, 也是最像关系型数据库的非关系型数据库 使用场景: 针对不同的应用场景, 以及其对应的修改对应数据的频率, 我们可以以此选择需要哪一种类型的数据库 Mongo的使用: 启动: 在解压完成之后…

动手学操作系统(六、获取物理内存容量)

动手学操作系统(六、获取物理内存容量) 在上一节中,我们介绍了保护模式和实模式的区别,保护模式的最大特点是“大”,“大”是指寻址空间大,在进入保护模式之后,我们还将要接触虚拟内存、内存管…

基于pytorch实现的DenseUnet医学图像分割(腹部多脏器)

1、前言 本章将介绍将densenet的主干网络引入unet中 官方实现的代码:kits19-challenge/network at master nitsaick/kits19-challenge (github.com) 本章实现的项目目录如下: 主要代码有train、evaluate、predict脚本 2、代码介绍 数据预处理脚本 数据…

全能型施耐德可编程控制器M241介绍

施耐德M241是一款通信强大、定位控制、丰富扩展于一身的全能型可编程控制器,适用于具有速度控制和位置控制功能的高性能一体型设备。其内置以太网通信端口,可以提供FTP和网络服务器功能,能够更为便捷地整合到控制系统架构中,通过智…

【0基础学爬虫】爬虫基础之自动化工具 DrissionPage 的使用

概述 前三期文章中已经介绍到了 Selenium 与 Playwright 、Pyppeteer 的使用方法,它们的功能都非常强大。而本期要讲的 DrissionPage 更为独特,强大,而且使用更为方便,目前检测少,强烈推荐!!&a…

Spark Streaming 概述及入门案例

一、介绍 1. 不同的数据处理 从数据处理的方式: 流式数据处理(Streaming)批量数据处理(Batch) 从数据处理的延迟: 实时数据处理(毫秒级别)离线数据处理(小时或天级别) 2. 简介 SparkStreaming 是一个准实时(秒或分钟级别)、微批量的数据处理框架Spa…

了解侧信道攻击基础知识

人们通常认为特洛伊木马、恶意软件和其他形式的黑客攻击等漏洞是的威胁;然而,从 EE 的角度来看,安全性具有全新的含义。  事实上,许多的安全威胁都是基于硬件的,攻击者可以直接从运行我们的安全加密软件的硬件中窃取…

根据mooc 数据库旧代码 实现剥离数据库链接单独成类,并进行测试

数据源详情链接,SQLserver 2019 代码复制粘贴可产生数据 数据库JDBC 查询sqlserver 2019 利用模板实现输入查询-CSDN博客 效果如下 剥离的链接模块 Slinkv2.java package SQLadd;import java.sql.Connection; import java.sql.DriverManager; import java.sql.Re…

CentOS-内网搭建FTP-Server

一、镜像选择 1、 Centos-everting或者DVD 2、7.5 7.6 7.9 均可 二、安装步骤 1、其余步骤和普通安装一致。 2、最重要的一步为“软件选择” 1、勾选FTP、文件以及存储服务器、性能以及开发工具。 三、FTPServer搭建 1、关闭防火墙 systemctl stop firewalld or 通过21和20…

PS教程系统17

橡皮擦工具 主要配合画笔工具来使用 选择画笔工具新建图层试验擦除线条 如果直接在背景图片上进行擦除 会有背景颜色补充 背景橡皮擦 将其白色背景擦除掉shift相关键,进行工作区域切换吸取样点一次采样、两次采样连续、不连续等功能 在进行涂擦的过程一…

为中小制造企业注入数字化转型活力

随着劳动力成本上升,原材料价格上涨,企业生产成本逐年增加,市场竞争越来越激烈,传统的中小制造企业面临着巨大的压力。 通过数字化转型应对环境的变化已成为行业共识,在数字化的进程中,中小企业首要考虑生存问题,不能…

通过ClangFormat进行格式设置时出现错误

1、打开工具->选项 2、文本编辑器->C/C->格式设置->启动ClangFormat支持(去掉勾选)

六种图算法的python实现

六种图算法的python实现 1. Prim 算法 基本原理 Prim算法是一种求解最小生成树的贪心算法。所谓最小生成树,就是对于给定的连通图,找到一棵包含所有顶点的树,且树上所有边的权重之和最小。Prim算法从一个顶点开始,每次选择与当…

[CUDA编程] cuda graph优化心得

CUDA Graph 1. cuda graph的使用场景 cuda graph在一个kernel要多次执行,且每次只更改kernel 参数或者不更改参数时使用效果更加;但是如果将graph替换已有的kernel组合,且没有重复执行,感觉效率不是很高反而低于原始的kernel调用…

使用fvm切换flutter版本

切换flutter版本 下载fvm 1、dart pub global activate fvm dart下载fvm 2、warning中获取下载本地的地址 3、添加用户变量path: 下载地址 终端查看fvm版本 fvm --version 4、指定fvm文件缓存地址 fvm config --cache-path C:\src\fvm(自定义地址&…

北京多商入驻app开发项目的主要优势及功能

多商入驻app开发项目的定义 随着电子支付技术的不断成熟,全国各地的消费者通过网络在线上购物的频率越来越高,为此,多商入驻app开发项目应用而生。各商家也纷纷开始申请入驻商城平台,开设自己的店铺。 图片来源:unspl…