news 2026/7/2 0:16:01

基于分布式驱动电动汽车的路面附着系数估计,分别采用无迹卡尔曼 滤波(UKF)和容积卡尔曼滤波(...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于分布式驱动电动汽车的路面附着系数估计,分别采用无迹卡尔曼 滤波(UKF)和容积卡尔曼滤波(...

基于分布式驱动电动汽车的路面附着系数估计,分别采用无迹卡尔曼 滤波(UKF)和容积卡尔曼滤波(CKF)对电动汽车四个车轮的路面附着系数进行估计。 可在高速,低速下,对开路面,对接路面四种组合工况下对路面附着系数进行准确估计估计。 该模型的两种估计算法均由S-function编写,可比较二种滤波的估计效果。

分布式驱动电动汽车的轮子底下藏着大学问。今儿咱们聊聊怎么用无迹卡尔曼滤波(UKF)和容积卡尔曼滤波(CKF)来扒开车轮与地面之间的那层"神秘关系"——路面附着系数。这玩意儿直接影响着车辆稳定性控制,特别是遇到对开路面(左右轮摩擦系数不同)或者对接路面(前后轮摩擦系数突变)这种坑爹工况时。

先看段S-function里的状态初始化代码:

function sys=mdlInitializeSizes sizes.NumContStates = 0; sizes.NumDiscStates = 4; % 四个轮的附着系数 sizes.NumOutputs = 8; % 包含估计值和观测噪声 sizes.NumInputs = 6; % 轮速、电机扭矩等 sizes.DirFeedthrough = 1; sys = simsizes(sizes);

这里藏着个小细节:把附着系数作为离散状态而不是连续状态来处理。实际调试中发现,当车速飙到120km/h时,连续状态容易产生数值震荡,离散化后反而更稳定。

核心算法部分,两种滤波器都用了类似的状态方程结构:

static void state_update(double* x, const double* u, double dt) { // 动力学模型简化为指数衰减过程 for(int i=0; i<4; i++){ x[i] = x[i] * exp(-dt/TAU) + 0.02*(rand()/(double)RAND_MAX-0.5); } }

这个TAU参数是个调参玄学,实测在冰面工况下设为0.5秒,沥青路面则要1.2秒左右。注意那个故意加的随机扰动项,这是为了防止滤波器过度自信——现实中的路面可不会按剧本走。

基于分布式驱动电动汽车的路面附着系数估计,分别采用无迹卡尔曼 滤波(UKF)和容积卡尔曼滤波(CKF)对电动汽车四个车轮的路面附着系数进行估计。 可在高速,低速下,对开路面,对接路面四种组合工况下对路面附着系数进行准确估计估计。 该模型的两种估计算法均由S-function编写,可比较二种滤波的估计效果。

观测方程里有个骚操作:

function y = observation(x, u) % 利用轮胎魔术公式逆向推算 slip_ratio = abs((u(1:4)-u(5))./max(u(5),1.0)); % 防除零 y = x.* (1.5*sin(2.1*atan(0.7*slip_ratio)) ); end

这个三角函数组合可不是乱写的,它其实是Pacejka魔术公式的简化版。当年调这个式子的时候,把实验室的轮胎数据本都快翻烂了,最后发现用sin代替原公式里的三次多项式,在嵌入式系统里跑得更欢实。

跑起仿真来看效果,CKF在高动态场景下(比如从沥青路突然冲进冰面)响应快0.2秒左右,但UKF在低速蠕行工况更稳。特别是遇到那种水泥路接钢板路的变态组合,两种算法的估计曲线会像较劲似的互相拉扯,这时候取加权平均值反而能出奇效。

最后奉劝各位想复现的兄弟,别死磕理论推导。实际调试时会遇到各种妖魔鬼怪,比如电机扭矩传感器的噪声分布根本不是高斯的,这时候就得在量测更新环节加个饱和限制:

// 量测修正时防野值 for(int i=0; i<4; i++){ innovation = z[i] - hx[i]; innovation = fmax(fmin(innovation, 0.3), -0.3); // 硬截断 x_hat[i] += K[i] * innovation; }

这个0.3的阈值是用实车在试车场撞了三次护栏换来的血泪经验——别问我是怎么知道的,问就是方向盘还在抖。

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

python基于flask框架的医院药品采购管理系统的设计与实现

目录摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 医院药品采购管理系统是医疗信息化建设的重要组成部分&#xff0c;旨在优化药品采购流程、提升库存管理效率、降低运营成本。基…

作者头像 李华
网站建设 2026/7/1 19:59:15

主流的国产操作系统概览

根据我的了解,结合之前了解的国产CPU信息,以下是当前主流的国产操作系统概览。它们大多基于Linux内核,但在定位上形成了分工协作的格局。 操作系统品牌 核心定位 主导方 / 社区 主要特点 典型应用场景 欧拉 (openEuler) 企业级基础设施底座 开放原子开源基金会(华为等支持)…

作者头像 李华
网站建设 2026/6/16 15:26:30

通达信〖共振主升浪〗副图与选股指标 共振选股指标捕捉大级别主升浪

通达信〖共振主升浪〗副图与选股指标 共振选股指标捕捉大级别主升浪 共振主升浪核心思路是通过多维度条件共振&#xff0c;筛选可能进入大级别上升浪的个股。 该指标并非直接预测走势&#xff0c;而是通过一系列技术条件的同步验证&#xff0c;帮助投资者关注那些具备较强启动…

作者头像 李华
网站建设 2026/6/21 1:03:49

学习笔记——UART(通用异步收发器)

UART&#xff08;通用异步收发器&#xff09;一、基本概念UART定义&#xff1a;Universal Asynchronous Receiver Transmitter通用异步收发器&#xff0c;用于异步通信的硬件接口包含自己的一套通信规则和协议特点&#xff1a;异步、全双工、串行通信协议二、硬件连接接线方式&…

作者头像 李华
网站建设 2026/6/29 6:08:14

python基于vue的家政服务管理系统django flask pycharm

目录 基于Python与Vue的家政服务管理系统开发后端技术栈前端技术栈系统功能开发与部署 开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 基于Python与Vue的家政服务管理系统开发 该系统采用…

作者头像 李华