八月没有晚山茶 2024-05-31 10:22 采纳率: 57.4%
浏览 0
已结题

不同工况直线行驶时信号的表现

不同工况下的直线行驶时,[方向盘转角]、[横摆角速度]、[横向加速度]的表现

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-31 10:22
    关注

    引自免费微信小程序:皆我百晓生

    在MATLAB中,我们可以创建一个简化的模型来模拟不同工况下的直线行驶情况,并分析 [方向盘转角][横摆角速度][横向加速度] 的表现。这里我们将考虑车辆动力学中的基本参数,如转向响应时间、车重、轮胎刚度等。然而,为了简化,我们只关注几个关键变量之间的关系。

    首先,我们需要定义一些基础参数:

    % 基础参数
    wheelbase = 3; % 车辆轴距 (单位: 米)
    steering_ratio = 15; % 方向盘与车轮的传动比
    vehicle_mass = 1500; % 车辆质量 (单位: 千克)
    inertia = vehicle_mass * wheelbase^2 / 12; % 约简后的转动惯量 (单位: 千克·米^2)
    tyre_stiffness = 2e6; % 轮胎刚度 (单位: 牛顿/米)
    
    % 时间步长和总时间
    dt = 0.01; % 时间步长 (单位: 秒)
    total_time = 10; % 总时间 (单位: 秒)
    time_vec = 0:dt:total_time;
    

    接下来,我们创建一个函数来计算这些变量随时间的变化。这个函数将接收方向盘转角作为输入,并基于这个转角计算出横摆角速度和横向加速度。

    function [yaw_rate, lateral_acc] = calculate_responses steer_angle
        % 横摆角速度和横向加速度的初始值
        yaw_rate = zeros(size(time_vec));
        lateral_acc = zeros(size(time_vec));
    
        % 根据方向盘转角计算车轮偏转角度
        wheel_angle = steer_angle ./ steering_ratio;
    
        % 计算横摆角速度的时间序列
        for i = 2:length(time_vec) % 忽略第一个时刻,因为初始条件是静止的
            % 使用线性插值近似瞬时变化率
            delta_wheel_angle = wheel_angle(i) - wheel_angle(i-1);
            time_diff = time_vec(i) - time_vec(i-1);
            yaw_rate(i) = delta_wheel_angle / time_diff;
        end
    
        % 计算横向加速度的时间序列
        for i = 2:length(time_vec)
            lateral_acc(i) = tyre_stiffness * wheel_angle(i) / vehicle_mass;
        end
    end
    

    现在我们可以调用这个函数来模拟不同工况下的表现。例如,我们可以模拟一个突然的大幅方向盘转角变化:

    % 大幅转向
    steer_angle_large = zeros(size(time_vec));
    steer_angle_large(1:100) = 0.4; % 方向盘转角为0.4 rad/s
    
    [yaw_rate_large, lateral_acc_large] = calculate_responses(steer_angle_large);
    
    figure;
    subplot(2,1,1);
    plot(time_vec, steer_angle_large, 'LineWidth', 2);
    xlabel('Time (s)');
    ylabel('Steering Angle (rad)');
    title('Large Steering Angle');
    
    subplot(2,1,2);
    plot(time_vec, yaw_rate_large, 'LineWidth', 2);
    xlabel('Time (s)');
    ylabel('Yaw Rate (rad/s)');
    title('Corresponding Yaw Rate');
    
    figure;
    plot(time_vec, lateral_acc_large, 'LineWidth', 2);
    xlabel('Time (s)');
    ylabel('Lateral Acceleration (m/s^2)');
    title('Corresponding Lateral Acceleration');
    

    这将绘制出三个子图,分别表示方向盘转角、横摆角速度和横向加速度随时间的变化。你可以根据需要改变 steer_angle_large 中的值来模拟不同的工况,比如较小的转向角或者持续一段时间的转向角。

    注意:这个模型非常简化,没有考虑车辆的其他动态特性(如阻尼、路面摩擦力等),因此结果可能不完全符合实际情况。对于更精确的模拟,建议使用专业的汽车动力学仿真软件,如CarSim或PreScan。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月31日
  • 创建了问题 5月31日

悬赏问题

  • ¥15 rt-thread线程切换的问题
  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊