当前位置:网站首页>Matlab实现异构交通流
Matlab实现异构交通流
2022-08-09 02:40:00 【matlab_dingdang】
1 内容介绍
在接下来的几十年中,联网汽车将加入普通车辆出现在道路上,以及特点交通流量将相应改变。为了模拟混合常规车辆和联网车辆的异构交通,一个通用的本文首先提出了跟驰框架。线性从理论上推导出稳定性条件,这表明异构流量的稳定性与连接的渗透率和空间分布车辆。通用汽车跟随框架由以智能驾驶模型为例,表明联网车辆可以明显提升稳定性交通流量,提高交通效率,特别是当交通拥堵。此外,驾驶员辅助策略基于分布式反馈控制的开发用于连接车辆,仿真结果表明,所提出的驱动程序辅助策略在稳定交通方面表现令人满意以及提高交通效率。
2 仿真代码
function [td,v,tend,dt]=mian()
a=1.3;%最大加速度%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%,调整对稳定性有重要影响
b=3;%期望减速度
T=1.6;%安全车头时距%
v00=33;%期望速度
s0=4;%拥堵车距
alpha=0.3;%三个0到1范围内的系数
beta=alpha;
gamma=alpha;
tau1=0.2; tau2=0;%反应时间
s=5; % 车长
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 调整密度,影响稳定性
road=2000;
N=50;
h=road/N;%平均初始车头间距,对应的密度也不相同
tend=40000;
dt=0.1;
allv=cell(5,1);
alldx=cell(5,1);
allx=cell(5,1);
iN=4;
Be=1;
allv=cell(5,1);
alldx=cell(5,1);
allx=cell(5,1);
iN=4;
%% 随机参数 ,确定网联车的分布
% for
ii=2;
dx=[];v=[];dv=[];x=[];
df=0.2;
Jy=[1 0];%判断是否网联车,1是,0不是
p1=0.3;p2=1-p1; % 网联车的比p1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
prob1=[p1 p2];
L=length(Jy);%Jy的长度 1行2列所以为2
cc=zeros(L,1);%2行1列0阵
i=1;
FVm=[]; % 向量,确定每辆车是否是网联车
fprob=prob1;
prob=prob1;
fVm=Jy;
fnum1=[];
while i<=N
vm=randsrc(1,1,[fVm; fprob]); %按照fprob的概率随机生成fVm中指定的数字 也就是0和1 1代表网联车概率为p1
FVm(i)=vm;
nn=find(abs(Jy-vm)<10^(-10));%满足条件的所有vm的所在位置
fnum1(:,i)=nn(1)';%nn的第一个元素赋值给fnum1的第一列
cc(nn(1))=cc(nn(1))+1;
c1=find(abs(cc-N*prob')>1/2);
fVm=Jy(c1);
fprob=prob(c1)/sum(prob(c1));
i=i+1;
end
AJc=zeros(1,N); % 生成1xN的全0阵 向量,确定当前车和前车是否为网联车,以确定网联是否起效。注意:网联起效比例跟理论有一点差距的,理论值属于期望平均值。
%
for i=1:N
if i==N
if FVm(i)==1 && FVm(1)==1 %环形链接
AJc(i)=1;
else
AJc(i)=0;
end
else
if FVm(i)==1 && FVm(i+1)==1 %前后链接
AJc(i)=1;
else
AJc(i)=0;
end
end
end
AJc=FVm;
%% 稳态车头间距
dx1=h;
aa=0; bb=100;
ve=(aa+bb)/2;
mm1=T*ve;
rf=a* (1-(ve/v00).^4-((s0+mm1)./(dx1-s)).^2);
while abs(rf)>10^(-20)
if rf>0
aa=ve;
else
bb=ve;
end
ve=(aa+bb)/2;
% v1=[1:30];
mm1=T*ve;
rf=a* (1-(ve/v00).^4-((s0+mm1)./(dx1-s)).^2);
end
%% 初始条件
v1=ones(1,N)*ve; dv1=zeros(1,N)*ve; %稳态速度代入作为初始速度
dx1=ones(1,N)*h;
x1=[];
for i=1:N
x1(i)=sum(dx1(1:i-1));%每一列求和
end
Bi1=ceil(tau1/dt); Bi2=ceil(tau2/dt); %%%%%%向前取整
Be=Bi1+1;
x=[];v=[];dx=[];dv=[];
for i=1:Be
x(i,:)=x1;
v(i,1:N)=v1*0;
dv(i,:)=dv1;
dx(i,:)=dx1;
end
v(Be,1:2)=v(Be,1:2)+1;
%%
for ii=2
figure
plot3(xx,tt'*dt,allv{ii}(jz,:)','Linewidth',1.)
%
% y=[min(jz*dt):10:max(jz*dt)];
% set(gca,'xtick',[0:20:100],'ytick',y, 'FontName', 'Times New Roman','Fontsize',16);
ylabel('Time (s)')
xlabel('Car number');
zlabel('velocity (m/s)');
% zlim([16 19])
% ylim([tend*td/10 tend]*dt)
view(75,50)
grid on
title([num2str(alpha),', ','time=',num2str(time)])
end
3 运行结果
4 参考文献
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
边栏推荐
猜你喜欢
Postman接口测试【官网】最新版本 安装及使用入门教程
9.1-----24. Swap the nodes in the linked list in pairs
opencv在图像上长按左键画矩形单击右键清除
[Redis] The core principle of master-slave replication
【Redis】主从复制的核心原理
Tricore架构上的调试案例
Financial Industry Software Testing Interview Questions (with Answers) | Getting Started Guide
VSCode使用总结
Maya engine modeling
原文翻译:Structure Aware Single-stage 3D Object Detection from Point Cloud
随机推荐
Open3D 计算点云的均值(质心)与协方差
iFLYTEK Written Exam Questions Review
button click animation
自动化测试框架总结
Take you do interface test from zero to the first case summary
OpenLORIS-Object Datasets
Likou Brush Question Record 1.5-----367. Valid perfect squares
Working subtotal rtcp length and network byte order
概率模型校准
Maya engine modeling
最强分布式锁工具:Redisson
Processing Point Clouds
JS 将对象拆开拼接成 URL
最新工业界推荐系统数据集-召回排序模型原理、结构及代码实战整理分享
gpio子系统和pinctrl子系统(下)
Financial Industry Software Testing Interview Questions (with Answers) | Getting Started Guide
10.1-----19. Delete the Nth node from the bottom of the linked list
二分搜索法和二叉搜索树
继承 Inheritance
搭建Eureka注册中心集群 ,实现负载均衡