拾玖点半. 2024-04-25 18:10 采纳率: 100%
浏览 11
已采纳

#MATLAB仿真#车辆换道路径规划

为什么按照这个程序打出来MATLAB运行是空白的?求指导,有偿

img

  • 写回答

16条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-25 18:11
    关注

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

    在您提供的MATLAB代码中,存在一些语法错误和格式问题。我已经对代码进行了修正,并将其整理为一个完整的可执行程序。以下是修正后的代码:

    % 基于MATLAB的新能源汽车仿真:电动汽车梯形加速度换道路径规划
    
    % 设置仿真时间区间
    t = 0:0.001:3.284;
    
    % 初始化结果矩阵
    x = zeros(size(t));
    v = zeros(size(t));
    a = zeros(size(t));
    
    for i = 1:numel(t)
        ti = t(i);
        
        % 横向位移、速度、加速度计算
        if ti < 0.5
            x(i) = (2 * ti^3) / 3;
            v(i) = 2 * ti^2;
            a(i) = 4 * ti;
        elseif (0.5 <= ti && ti <= 1.142)
            x(i) = ti^2 - ti / 2 + 1 / 12;
            v(i) = 2 * ti - 0.5;
            a(i) = 2;
        elseif (1.142 <= ti && ti < 2.142)
            x(i) = -(2 * ti^3) / 3 + 3.284 * ti^2 - 3.108 * ti + 1.076;
            v(i) = -2 * ti^2 + 6.568 * ti - 3.108;
            a(i) = -4 * ti + 6.568;
        elseif (2.142 <= ti && ti < 2.784)
            x(i) = -ti^2 + 6.068 * ti - 5.4747;
            v(i) = -2 * ti + 6.068;
            a(i) = -2;
        else
            x(i) = (2 * ti^3) / 3 - 6.568 * ti^2 + 21.567 * ti - 19.857;
            v(i) = 2 * ti^2 - 13.136 * ti + 21.567;
            a(i) = 4 * ti - 13.136;
        end
        
        % 纵向位移计算
        y(i) = 30 * ti;
    end
    
    % 绘制曲线
    figure(1); hold on
    plot(y, x, 'linewidth', 1.5);
    xlabel('纵向位移/m'); ylabel('横向位移/m');
    
    figure(2); hold on
    plot(t, x, 'linewidth', 1.5);
    xlabel('时间/s'); ylabel('横向位移/m');
    
    figure(3); hold on
    plot(t, v, 'linewidth', 1.5);
    xlabel('时间/s'); ylabel('横向速度/(m/s)');
    
    figure(4); hold on
    plot(t, a, 'linewidth', 1.5);
    xlabel('时间/s'); ylabel('横向加速度/(m/s^2)');
    
    % 不需要额外的 "hold on" 和 "end",因为它们在循环外部是多余的
    

    这段修正后的代码应该可以在MATLAB环境中正确运行并绘制出所需的四幅曲线图。主要的修改包括:

    1. 将仿真时间区间 t 定义为一个数组,便于后续计算和绘图。
    2. 初始化结果矩阵 x, v, a,用于存储每个时间点对应的横向位移、速度和加速度。
    3. 使用循环索引 i 代替原始代码中的 t,避免在循环内部直接操作向量元素时产生混淆。
    4. 移除了不必要的 "hold on" 和最后一个 "end",因为它们在循环外部没有作用。

    请复制上述修正后的代码到您的MATLAB环境中运行,应该能成功绘制出电动汽车高速公路换道过程的轨迹规划曲线。如果有任何疑问或问题,请随时告诉我。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(15条)

报告相同问题?

问题事件

  • 已采纳回答 4月29日
  • 创建了问题 4月25日

悬赏问题

  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP