探索 Carsim 与 Simulink 联合仿真下的车辆状态参数估计

📅 发布时间:2026/7/6 4:00:09 👁️ 浏览次数:
探索 Carsim 与 Simulink 联合仿真下的车辆状态参数估计
carsim与simulink联合仿真三自由度doguff轮胎模型容积卡尔曼扩展卡尔曼。 基于三自由度的容积卡尔曼扩展卡尔曼的车辆状态参数估计。 第一个模块为四轮驱动电机第二个模块为carsim输出参数第三个模块为搭建的dugoff轮胎模型可计算轮胎力并与carsim输出真实值进行比较第四个模块是跟据车辆三自由度动力学方程搭建的simulink模型可与carsim真实状态进行比较最后两个模块为采用容积卡尔曼和扩展卡尔曼对汽车横摆角速度质心侧偏角纵向速度进行估计效果较好。在车辆动力学研究领域准确估计车辆状态参数对于提升车辆性能和安全性至关重要。今天咱们就来唠唠基于 Carsim 与 Simulink 的联合仿真并且深入探讨三自由度模型下利用容积卡尔曼CKF和扩展卡尔曼EKF进行车辆状态参数估计的那些事儿。联合仿真模块构建四轮驱动电机模块这个模块是车辆动力的起始点它模拟了四轮驱动电机的工作。在 Simulink 中我们可以通过一些简单的数学模型来描述电机的扭矩输出等特性。比如假设电机的扭矩输出 \(T\) 与输入电压 \(V\) 满足线性关系 \(T kV\)这里 \(k\) 是一个比例系数在 Simulink 中可以通过一个增益模块来实现类似功能。matlab% 简单示例代码计算电机扭矩k 0.5; % 比例系数V 12; % 输入电压T k * V;这里的代码只是一个简单示意实际情况中电机模型会复杂得多可能涉及到电机的动态响应等。Carsim 输出参数模块Carsim 是一款强大的车辆动力学仿真软件它能够输出丰富的车辆参数如车速、轮胎力等。在联合仿真中我们需要将这些参数导入到 Simulink 中。通常通过 Carsim 与 Simulink 的接口工具来实现数据交互。例如在 Carsim 中设置好输出参数然后在 Simulink 中使用相应的接口模块接收这些数据。Dugoff 轮胎模型模块Dugoff 轮胎模型是用于计算轮胎力的重要模型。在 Simulink 中搭建这个模型它可以根据车辆的行驶状态如车速、轮胎转角等计算出轮胎力。下面是一个简化的 Dugoff 轮胎模型计算轮胎纵向力 \(Fx\) 的代码示例matlab% 假设已有车辆速度 v轮胎滑移率 s路面附着系数 muv 20; % m/ss 0.1;mu 0.8;Fz 5000; % 轮胎垂直力Fx muFzs / (1 s); % 简化的 Dugoff 轮胎纵向力计算实际的 Dugoff 轮胎模型要复杂得多会考虑更多的因素如轮胎侧偏角等对轮胎力的影响。我们搭建好这个模型后就可以将计算出的轮胎力与 Carsim 输出的真实轮胎力值进行比较以此来验证模型的准确性。三自由度 Simulink 模型模块根据车辆三自由度动力学方程搭建的 Simulink 模型可以模拟车辆的横摆运动、侧向运动和纵向运动。车辆三自由度动力学方程一般可以表示为\(\begin{cases}m(\dot{v}x - vy\omegar)F{x1}F{x2}F{x3}F{x4}\\m(\dot{v}y vx\omegar)F{y1}F{y2}F{y3}F{y4}\\Iz\dot{\omega}r lf(F{y1}F{y2}) - lr(F{y3}F{y4})\end{cases}\)其中 \(m\) 是车辆质量\(vx\)\(vy\) 分别是纵向和侧向速度\(\omegar\) 是横摆角速度\(F{xi}\)\(F{yi}\) 是轮胎的纵向和侧向力\(lf\)\(lr\) 分别是质心到前后轴的距离\(Iz\) 是车辆绕 z 轴的转动惯量。在 Simulink 中通过一系列的积分器、加法器等模块来实现这些方程的求解。比如对于纵向动力学方程可以通过以下 Simulink 模块连接来实现- 输入轮胎纵向力 \(F{x1}\) 到 \(F{x4}\) 信号通过加法器相加得到总的纵向力 \(\sum Fx\)。- 对 \(\sum Fx\) 进行处理结合车辆质量 \(m\)侧向速度 \(vy\) 和横摆角速度 \(\omegar\)通过积分器得到纵向速度 \(v_x\) 的变化。这样搭建好的模型可以与 Carsim 中的真实车辆状态进行比较进一步验证模型的可靠性。容积卡尔曼与扩展卡尔曼估计模块容积卡尔曼滤波器CKF容积卡尔曼滤波器是一种基于容积规则的非线性滤波算法适用于对车辆横摆角速度、质心侧偏角、纵向速度等状态参数的估计。它的核心思想是通过一组容积点来近似概率分布。在 Matlab 中实现 CKF 对车辆纵向速度 \(vx\) 估计的简化代码如下matlab% 初始化参数dt 0.01; % 采样时间A [1 dt 0; 0 1 0; 0 0 1]; % 状态转移矩阵H [1 0 0]; % 观测矩阵Q [0.01 0 0; 0 0.01 0; 0 0 0.01]; % 过程噪声协方差R 0.1; % 观测噪声协方差xhat [0; 0; 0]; % 初始状态估计P [1 0 0; 0 1 0; 0 0 1]; % 初始估计协方差% 假设已有观测值 zz 15; % 观测到的纵向速度[xhat, P] cKF(A, H, Q, R, xhat, P, z); % 调用 CKF 函数进行估计function [xhat, P] cKF(A, H, Q, R, xhat, P, z)% 时间更新xhatminus A * x_hat;P_minus APA Q;% 计算容积点[Xsigma] calculateSigmaPoints(xhatminus, Pminus);% 传播容积点for i 1:size(X_sigma, 2)Xsigmapropagated(:, i) A * X_sigma(:, i);end% 计算预测均值和协方差xhatminus sum(Xsigmapropagated, 2) / size(Xsigmapropagated, 2);Pminus (Xsigmapropagated - repmat(xhatminus, [1 size(Xsigma_propagated, 2)])) *...(Xsigmapropagated - repmat(xhatminus, [1 size(Xsigmapropagated, 2)])) / size(Xsigmapropagated, 2) Q;% 测量更新y z - H * xhatminus;S HP_minusH R;K P_minus * H / S;xhat xhat_minus K * y;P (eye(size(A)) - KH)P_minus;endfunction [Xsigma] calculateSigmaPoints(xhat, P)% 计算容积点的具体实现这里简化省略部分细节Xsigma zeros(size(xhat, 1), 2 * size(x_hat, 1));%...具体计算容积点endcarsim与simulink联合仿真三自由度doguff轮胎模型容积卡尔曼扩展卡尔曼。 基于三自由度的容积卡尔曼扩展卡尔曼的车辆状态参数估计。 第一个模块为四轮驱动电机第二个模块为carsim输出参数第三个模块为搭建的dugoff轮胎模型可计算轮胎力并与carsim输出真实值进行比较第四个模块是跟据车辆三自由度动力学方程搭建的simulink模型可与carsim真实状态进行比较最后两个模块为采用容积卡尔曼和扩展卡尔曼对汽车横摆角速度质心侧偏角纵向速度进行估计效果较好。通过这样的 CKF 实现可以对车辆的纵向速度进行较为准确的估计。同样的方法可以应用到横摆角速度和质心侧偏角的估计上。扩展卡尔曼滤波器EKF扩展卡尔曼滤波器是将卡尔曼滤波器应用于非线性系统的一种常用方法。它通过对非线性函数进行一阶泰勒展开来线性化处理。对于车辆状态参数估计以横摆角速度 \(\omegar\) 估计为例假设车辆的状态方程 \(f(x)\) 和观测方程 \(h(x)\) 是非线性的。在 Matlab 中实现 EKF 对横摆角速度估计的简化代码如下matlab% 初始化参数dt 0.01; % 采样时间Q [0.01 0 0; 0 0.01 0; 0 0 0.01]; % 过程噪声协方差R 0.1; % 观测噪声协方差xhat [0; 0; 0]; % 初始状态估计P [1 0 0; 0 1 0; 0 0 1]; % 初始估计协方差% 假设已有观测值 zz 0.5; % 观测到的横摆角速度[xhat, P] eKF(f, h, Q, R, xhat, P, z, dt); % 调用 EKF 函数进行估计function [xhat, P] eKF(f, h, Q, R, xhat, P, z, dt)% 时间更新F jacobian(f(xhat), xhat); % 状态转移矩阵的雅可比矩阵xhatminus f(x_hat);P_minus FPF Q;% 测量更新H jacobian(h(xhatminus), xhatminus); % 观测矩阵的雅可比矩阵y z - h(xhatminus);S HP_minusH R;K P_minus * H / S;xhat xhat_minus K * y;P (eye(size(F)) - KH)P_minus;endfunction dx f(x)% 假设的车辆状态方程这里简化示意dx [x(2); 0; 0];endfunction z_hat h(x)% 假设的观测方程这里简化示意z_hat x(3);end通过这样的 EKF 实现可以对车辆的横摆角速度进行估计。实际应用中状态方程和观测方程会根据车辆动力学模型进行准确推导。通过以上各个模块的协同工作在 Carsim 与 Simulink 的联合仿真环境下利用容积卡尔曼和扩展卡尔曼滤波器对车辆横摆角速度、质心侧偏角、纵向速度进行估计取得了较好的效果。这为进一步研究车辆动力学特性优化车辆控制策略等提供了有力的支持。希望通过这篇博文能让大家对 Carsim 与 Simulink 联合仿真下的车辆状态参数估计有更深入的了解欢迎大家一起交流探讨。