求个matlab或者python模型代码,有关最优速度曲线的,如果有参数问题可以与我联系
希望变量可以自己更改,谢谢
(1) 输入变量vh,vd,dint,代入(3-14)约束方程组中,求得μ,ρ。(该约束方程得到的是关于μ,ρ的数组,需要得到的是μ取最大值时对应μ,ρ的取值)
(2) 将求出的μ,ρ, vr , vd ,代入曲线(3-8)出图
dint=100;
vh=20;
vd=4.29;
vr=14.29求得μ=0.91,ρ=2.55
dint=100;
vh=10;
vd=-5;
vr=10求得μ=0.65,ρ=3.09
请说明一下你的初始思路, 具体阻碍你的地方, 这样网友可以更好地帮助你。
用 Python 模拟交通流
https://download.csdn.net/download/bill20100829/85488591
function [time, q, qd, qdd] = TSpeedCruveMethod(q0,q1,v0,v1,vmax,amax)
%% input q0,q1,vo,v1,vmax,amax
%% output time,q,qd,qdd
v_temp = sqrt((2.0*amax*(q1-q0) + (v1^2 + v0^2)) / 2);
if(v_temp<vmax)
vlim = v_temp;
else
vlim = vmax;
end
Ta = (vlim-v0)/amax;
Sa = v0*Ta+amax*Ta^2/2;
Tv = (q1-q0-(vlim^2-v0^2)/(2*amax)-(v1^2-vlim^2)/(2*-amax))/vlim;
Sv = vlim*Tv;
Td = (vlim-v1)/amax;
Sd = vlim*Td - amax*Td^2/2;
T = Ta + Tv +Td;
td = 0.001;
k = 1;
for t = 0:td:T
time(k) = td *k;
if(t >= 0 && t < Ta)
q(k) = q0 + v0*t + amax*t^2/2;
qd(k) = v0 + amax*t;
qdd(k) = amax;
elseif(t >= Ta && t < Ta+Tv)
q(k) = q0 + Sa + vlim*(t - Ta);
qd(k) = vlim;
qdd(k) = 0;
elseif(t >= Ta+Tv && t <= T)
q(k) = q0 + Sa + Sv + vlim*(t - Ta - Tv) - amax*power(t - Ta - Tv, 2)/2;
qd(k) = vlim - amax*(t - Ta - Tv);
qdd(k) = -amax;
end
k = k + 1;
end
end
验证程序如下:
clear;clc
%% input para
q0 = 0; q1 = 1000;
v0 = 0; v1 =0;
vmax = 50; amax = 10;
[time, q, qd, qdd] = TSpeedCruveMethod(q0,q1,v0,v1,vmax,amax);
figure(1)
subplot(311)
plot(time,q,'r','LineWidth',1.5);
grid on;xlabel('time[s]');ylabel('position[mm]');
subplot(312)
plot(time,qd,'b','LineWidth',1.5);
grid on;xlabel('time[s]');ylabel('speed[mm/s]');
subplot(313)
plot(time,qdd,'g','LineWidth',1.5);
grid on;xlabel('time[s]');ylabel('acceleration[mm/s2]');
python 不行吗