matlab练习程序(回旋曲线)

回旋曲线能够比较好的表示驾驶员匀速转动方向盘从直行道进入转弯道的路径。

公式如下:

其中$a=1/(RL)$,$L$是曲线长度,$R$是曲线半径,$R$越大,曲线越平缓。

下面生成半径从0.2米到2米,长度从1米到3米的一系列回旋曲线。

matlab代码如下:

clear all;close all;clc;

step = 0.01;
for L=1:0.5:3
    for R = 0.2:0.3:2
        a = 1.0 / (R*L);
        p = zeros(int32(L/step)+1,2);
        i=0;
        for l = 0:step:L
            i=i+1;
            rep = [0 0];
            for n=0:30
                rep = rep + [(-1)^n*a^(2*n)*l^(4*n+1) / (factorial(2*n)*(4*n+1)*2^(2*n)) ...
                    (-1)^n*a^(2*n+1)*l^(4*n+3) / (factorial(2*n+1)*(4*n+3)*2^(2*n+1))];
            end
           p(i,:) = rep;
        end
        
        plot(p(:,1),p(:,2));
        hold on;
    end
end
axis equal;

结果如下:

posted @ 2023-03-17 17:22  Dsp Tian  阅读(263)  评论(0编辑  收藏  举报