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;
结果如下: