三自由度动力学模型Simulink_Carsim; Simulink_Carsim联合仿真验证模型; 包括车辆误差跟踪模型; 包括纵滑刚度、侧偏刚度估计方法; 包括详细PPT(22页)
三自由度动力学模型Simulink/Carsim;Simulink/Carsim联合仿真验证模型;包括车辆误差跟踪模型;包括纵滑刚度、侧偏刚度估计方法;包括详细PPT22页 三自由度动力学模型及Simulink/Carsim联合仿真资料核心数学推导与代码实现图片中的推导逻辑如下几何关系定义了车辆相对于道路中心线的横向误差 e_d 和航向角误差 e_varphi。运动学/动力学方程结合车辆二自由度动力学包含侧偏角 beta 和横摆角速度 dot{varphi}。线性化假设假设角度很小sin(theta) approx theta, cos(theta) approx 1并将道路曲率 K_{road} 作为扰动输入。状态空间表达最终形式为 dot{x} Ax Bu Cdelta_f D K_{road}。MATLAB 代码%% 车辆误差跟踪模型构建代码% 对应PPT中的“车辆误差跟踪模型”推导结果clear; clc;% — 1. 定义车辆参数 (示例值) —m 1500; % 车辆总质量 (kg)Iz 2800; % 绕Z轴的转动惯量 (kg*m^2)Cf 60000; % 前轮侧偏刚度 (N/rad)Cr 55000; % 后轮侧偏刚度 (N/rad)lf 1.2; % 质心到前轴距离 (m)lr 1.6; % 质心到后轴距离 (m)% — 2. 定义运行工况 —Vx 20; % 纵向速度 (m/s)假设为常数K_road 0.001; % 道路曲率 (1/m)即 1/R% — 3. 构建系统矩阵 (基于PPT右下角的推导) —% 状态变量 x [e_phi; e_d; beta; r] (注PPT中似乎将beta和r作为内部状态)% 但为了标准的跟踪控制通常使用 x [e_d; e_phi; beta; r] 或者 [y_error; yaw_error…]% 根据PPT公式4及后续推导整理出的状态矩阵 A 和输入矩阵 B% 动力学部分的系数 (用于计算 beta_dot 和 r_dot)A11 -(Cf Cr) / (m * Vx);A12 (Clr - Cflf) / (m * Vx) - Vx; % 注意这里包含Vx项A21 (Clr - Cflf) / (Iz * Vx);A22 -(Clf^2 Crlr^2) / (Iz * Vx);B1 Cf / m;B2 Cf * lf / Iz;% — 4. 构建误差跟踪的状态空间模型 —% 状态向量 X [e_d; e_phi; beta; r] (这里调整顺序以符合通常控制习惯或者严格按照PPT顺序)% PPT推导的最终形式主要关注 e_phi_dot 和 e_d_dot% 系统矩阵 A (4x4)% 对应方程:% e_phi_dot r - Vx * K_road (忽略beta影响项或包含在r中) - PPT简化为 r - VxK% e_d_dot Vx * e_phi Vx * beta% beta_dot A1beta A12r B1delta% r_dot A2beta A22r B2*deltaA [0, 0, Vx, 0; … % e_d_dot0, 0, 0, 1; … % e_phi_dot (近似 r)0, 0, A11, A12; … % beta_dot0, 0, A21, A22]; % r_dot% 控制输入矩阵 B (对应前轮转角 delta_f)B [0; 0; B1; B2];% 扰动输入矩阵 B_dist (对应道路曲率 K_road)% e_phi_dot 中有一项 -Vx * K_road% beta_dot 中有一项 0% r_dot 中有一项 0B_dist [-Vx; 0; 0; 0];% — 5. 输出结果 —disp(‘系统矩阵 A:’);disp(A);disp(‘输入矩阵 B (转角):’);disp(B);disp(‘扰动矩阵 B_dist (曲率):’);disp(B_dist);% 如果需要转换为离散系统用于MPC/LQRTs 0.01; % 采样时间sys_c ss(A, [B, B_dist], eye(4), 0); % 连续系统sys_d c2d(sys_c, Ts); % 离散化figure;step(sys_c);title(‘车辆误差跟踪模型阶跃响应 (转角输入)’);legend(‘e_d’, ‘e_phi’, ‘beta’, ‘r’);代码说明参数定义代码首先定义了质量、转动惯量、侧偏刚度等物理参数这些是构建动力学模型的基础。矩阵构建完全按照PPT中“公式4”及其后续整理的逻辑构建了状态矩阵 A 和控制矩阵 B。扰动处理PPT中特别提到了道路曲率 K_{road}在代码中将其作为扰动输入B_dist处理这在做路径跟踪时非常重要因为它代表了道路的弯曲程度对车辆航向的影响。可视化最后生成了一个阶跃响应图展示当方向盘转动时横向误差和航向误差是如何变化的。图中包含六个关键指标的曲线转向角度控制器输出的方向盘转角指令。纵向速度车辆沿行驶方向的速度。侧向速度车辆横向滑移的速度。横摆角度车辆绕垂直轴旋转的角度航向角。角度误差车辆航向角与道路切线角度的偏差。位移误差车辆质心与道路中心线的横向距离偏差。MATLAB 绘图复现代码这段代码模拟了双移线工况下的典型响应并绘制了与您提供的图片布局一致的图表。% 清除环境clear; clc; close all;% % 1. 模拟仿真数据 (根据双移线工况构造)% t 0:0.01:10; % 时间 0-10秒% — 模拟输入与状态 —% 1. 转向角度 (Steering Angle): 类似正弦波的双移线输入Steer_Angle 1.5 * sin(0.t) . exp(-0.1*t);% 2. 纵向速度 (Longitudinal Velocity): 假设保持在 20m/s (72km/h)Vx 20 * ones(size(t));% 3. 侧向速度 (Lateral Velocity): 随转向变化有滞后Vy 1.2 * sin(0.t - 0.5) . exp(-0.1*t);% 4. 横摆角度 (Yaw Angle): 积分横摆角速度呈S型变化Yaw_Angle cumtrapz(t, 0.4 * sin(0.t) . exp(-0.1*t));% — 模拟误差指标 —% 5. 角度误差 (Heading Error): 理想跟踪应接近0但在转向瞬态有波动Error_Heading 0.15 * sin(1.t) . exp(-0.2*t);% 6. 位移误差 (Lateral Displacement Error): 控制器努力将其归零% 初始有误差随后收敛Error_Lateral 0.5 * cos(0.t) . exp(-0.5*t);% % 2. 绘图 (复现图片布局)% figure(‘Color’, ‘w’, ‘Position’, [100, 100, 1200, 600]);set(gcf, ‘DefaultAxesColor’, ‘k’); % 设置背景为黑色以匹配图片风格set(gcf, ‘DefaultAxesXColor’, ‘w’);set(gcf, ‘DefaultAxesYColor’, ‘w’);% 公共字体设置label_font {‘Color’, ‘w’, ‘FontSize’, 10, ‘FontName’, ‘Microsoft YaHei’};title_font {‘Color’, ‘w’, ‘FontSize’, 12, ‘FontWeight’, ‘bold’, ‘FontName’, ‘Microsoft YaHei’};% — 子图 1: 转向角度 —subplot(2,3,1);plot(t, Steer_Angle, ‘Color’, [0.8 0.8 0.2], ‘LineWidth’, 1.5);title(‘转向角度’, title_font{:});ylabel(‘角度 (deg)’, label_font{:});grid on; box on;% — 子图 2: 纵向速度 —subplot(2,3,2);plot(t, Vx, ‘Color’, [0.2 0.8 0.2], ‘LineWidth’, 1.5);title(‘纵向速度’, title_font{:});ylabel(‘速度 (m/s)’, label_font{:});grid on; box on;% — 子图 3: 侧向速度 —subplot(2,3,3);plot(t, Vy, ‘Color’, [0.2 0.6 0.8], ‘LineWidth’, 1.5);title(‘侧向速度’, title_font{:});ylabel(‘速度 (m/s)’, label_font{:});grid on; box on;% — 子图 4: 横摆角度 —subplot(2,3,4);plot(t, Yaw_Angle, ‘Color’, [0.9 0.5 0.1], ‘LineWidth’, 1.5);title(‘横摆角度’, title_font{:});ylabel(‘角度 (deg)’, label_font{:});xlabel(‘时间 (s)’, label_font{:});grid on; box on;% — 子图 5: 角度误差 —subplot(2,3,5);plot(t, Error_Heading, ‘Color’, [0.9 0.2 0.2], ‘LineWidth’, 1.5);title(‘角度误差’, title_font{:});ylabel(‘误差 (rad)’, label_font{:});xlabel(‘时间 (s)’, label_font{:});grid on; box on;% — 子图 6: 位移误差 —subplot(2,3,6);plot(t, Error_Lateral, ‘Color’, [0.6 0.2 0.8], ‘LineWidth’, 1.5);title(‘位移误差’, title_font{:});ylabel(‘误差 (m)’, label_font{:});xlabel(‘时间 (s)’, label_font{:});grid on; box on;% 调整布局sgtitle(‘Carsim-Simulink联合仿真验证模型’, ‘Color’, ‘w’, ‘FontSize’, 14);数据模拟代码中使用了正弦函数和指数衰减函数来模拟双移线工况下的典型车辆响应。例如Error_Lateral 模拟了控制器介入后横向误差逐渐收敛到 0 的过程。绘图风格使用了 subplot(2,3,x) 来复刻图片中的 2 行 3 列布局并设置了黑色背景和白色坐标轴以匹配您提供的截图风格。物理意义角度误差反映了车辆航向与道路方向的吻合程度。位移误差反映了车辆是否跑偏是评价路径跟踪算法如 MPC、PID、LQR性能的最重要指标。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2495693.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!