news 2026/3/22 12:16:54

基于容积卡尔曼滤波(CKF)的车辆状态观测器:Carsim 与 Simulink 的奇妙联合之旅

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于容积卡尔曼滤波(CKF)的车辆状态观测器:Carsim 与 Simulink 的奇妙联合之旅

基于容积卡尔曼滤波(CubatureKalmam Filter, CKF)的车辆状态观测器 Carsim与Simulink联合 可生成C代码 ?CKF算法使用子函数形式编程,在定义好状态方程和观测方程的前提下,可以方便的进行二次开发 可估计车辆纵向车速,质心侧偏角(或侧向车速,默认发质心侧偏角),横摆角速度和四个车轮侧向力(效果见图) Carsim2018 兼容Carsim2019 带有详细注释和说明文档 Carsim与Simulink联合估计难度与单纯的Simulink模型估计难度不同 用Carsim做状态估计的难度在于carsim的车辆模型完全是黑箱状态,为了获得较好的估计结果需要不断的调整车辆模型参数 估计的参数较多也增加了估计难度,比如估计侧向车速需要用到轮胎侧向力,但轮胎侧向力也是需要通过估计获得的,这样就会存在误差的累积,因此估计的参数越多难度越大

最近在研究车辆状态估计相关的内容,发现基于容积卡尔曼滤波(Cubature Kalmam Filter, CKF)的车辆状态观测器配合 Carsim 与 Simulink 的联合真的很有意思,今天就来和大家分享分享。

一、CKF 算法与二次开发便利性

CKF 算法采用子函数形式编程,这在实际应用中有着极大的优势。当我们定义好状态方程和观测方程后,二次开发就变得相当轻松。

比如说,我们简单假设一个状态方程和观测方程(这里只是示例,实际情况会复杂得多):

% 状态方程 function dx = state_equation(x, u) % x 是状态变量,u 是输入 A = [1 0.1; 0 1]; B = [0.05; 0.1]; dx = A * x + B * u; end % 观测方程 function y = observation_equation(x) C = [1 0]; y = C * x; end

在上述代码中,stateequation定义了状态随时间的变化关系,通过矩阵AB来描述状态转移和输入对状态的影响。observationequation则定义了从状态变量到观测变量的映射,通过矩阵C实现。基于这样定义好的方程,CKF 算法就能以此为基础展开工作,并且后续如果我们想要调整系统的动态特性或者观测特性,只需要修改这些方程对应的矩阵,就可以方便地进行二次开发。

二、可估计的车辆参数

这个观测器可以估计车辆的多项重要参数,像纵向车速、质心侧偏角(当然如果需要,也能估计侧向车速,这里默认是质心侧偏角)、横摆角速度以及四个车轮侧向力。从实际效果来看,这些估计值对于深入了解车辆行驶状态至关重要。想象一下,通过这些估计值,我们可以精准地把握车辆在行驶过程中的各种动态变化,为车辆的控制和优化提供有力的数据支持。

三、Carsim 与 Simulink 的联合及 C 代码生成

Carsim 和 Simulink 的联合是实现整个观测器的关键环节。它们联合后可以生成 C 代码,这对于实际工程应用来说意义非凡。意味着我们可以将这个观测器方便地集成到各种实际的车辆控制系统硬件中。

在联合过程中,我们要注意两者之间的数据交互和模型配置。比如在 Simulink 中搭建好基于 CKF 的观测器模型后,要准确地与 Carsim 的车辆模型进行对接。具体的对接方式会涉及到一些参数设置和接口定义,这部分需要根据实际使用的版本(Carsim2018 与 Carsim2019 是兼容的)进行细致调整。

四、联合估计的难度

这里要特别提一下,Carsim 与 Simulink 联合估计的难度和单纯的 Simulink 模型估计难度是不一样的。就拿用 Carsim 做状态估计来说,它的车辆模型完全是黑箱状态,这就像在黑暗中摸索,为了获得较好的估计结果,我们需要不断地调整车辆模型参数。而且要估计的参数较多,也大大增加了估计难度。

基于容积卡尔曼滤波(CubatureKalmam Filter, CKF)的车辆状态观测器 Carsim与Simulink联合 可生成C代码 ?CKF算法使用子函数形式编程,在定义好状态方程和观测方程的前提下,可以方便的进行二次开发 可估计车辆纵向车速,质心侧偏角(或侧向车速,默认发质心侧偏角),横摆角速度和四个车轮侧向力(效果见图) Carsim2018 兼容Carsim2019 带有详细注释和说明文档 Carsim与Simulink联合估计难度与单纯的Simulink模型估计难度不同 用Carsim做状态估计的难度在于carsim的车辆模型完全是黑箱状态,为了获得较好的估计结果需要不断的调整车辆模型参数 估计的参数较多也增加了估计难度,比如估计侧向车速需要用到轮胎侧向力,但轮胎侧向力也是需要通过估计获得的,这样就会存在误差的累积,因此估计的参数越多难度越大

比如说,我们要估计侧向车速,就需要用到轮胎侧向力,然而轮胎侧向力本身也是需要通过估计获得的。这就形成了一个“套娃”情况,误差就很容易累积。举个不太严谨的例子,如果轮胎侧向力估计有 5% 的误差,在以此为基础去估计侧向车速时,这个误差可能就会进一步放大,导致最终侧向车速的估计偏差更大。所以说,估计的参数越多,难度也就越大。

不过好在整个项目带有详细注释和说明文档,这对于我们理解和进一步开发这个基于 CKF 的车辆状态观测器提供了很大的帮助。无论是新手还是有经验的开发者,都能借助这些注释和文档更快地上手和优化这个观测器。

总之,基于容积卡尔曼滤波的车辆状态观测器结合 Carsim 与 Simulink 的联合,虽然在实现过程中有一定难度,但它在车辆状态估计领域的潜力是巨大的,希望更多的朋友能对这个方向感兴趣,一起探索其中的奥秘。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/21 15:47:04

基于PLC的传送带控制系统设计

第三章 PLC与继电器、单片机的异同 3.1 什么是PLC PLC是什幺呢?PLC的全称是Programmable Logic Controller(可编程序控制器),刚引入国内时,曾简称为PC。后来,IBM-PC获得广泛应用,PC成了个人电脑的代名词&am…

作者头像 李华
网站建设 2026/3/14 17:25:59

AI智能体的五脏六腑

从工具到伙伴:AI智能体重塑人机关系传统的大模型就像是一个知识渊博但行动不便的专家,你问什么它答什么,但仅此而已。而AI智能体不一样,它更像是一个能够独立思考和行动的数字员工。好比这么个场景:周一早晨&#xff0…

作者头像 李华
网站建设 2026/3/15 16:20:16

军工项目CKEDITOR粘贴涉密图片如何安全上传PHP?

PHP程序员的Word导入插件探索记 各位老铁们好啊!我是西安一名苦逼的PHP程序员,最近接了个CMS企业官网的活儿,客户突然甩给我个需求,让我整个人都不好了… 客户的"小"需求 客户说:“小王啊,我们…

作者头像 李华
网站建设 2026/3/15 16:15:49

金融系统CKEDITOR上传图片到PHP服务器如何防篡改?

企业网站后台管理系统Word粘贴与导入功能解决方案评估与实施报告 一、背景与需求分析 作为广西某集团企业的项目负责人,我们近期在企业网站后台管理系统的升级过程中,遇到了一个关键需求:在现有的文章发布模块中增加Word粘贴和文档导入功能…

作者头像 李华