这次做的是一个宏观的模型
主要是调整ACC车辆的比例对各路段的车辆密度和车辆速度两个因素进行分析
速度更新规则:

密度更新规则:

部分代码:
clc
close all
clear
%% 模型参数设置
delte_rho=0.01;
delta_t=1;
delta_x=100;
Delta=100;
S=32000;
vf=30;
Rho_max=0.2;
Tau=5;
Rho_0=0.066;
Nmax=S/delta_x;
Tmax=2000;
Rho=zeros(Tmax,Nmax);
V=zeros(Tmax,Nmax);
%% 初始状态计算
% 初始密度
for i=1:Nmax
x=i*delta_x;
Rho(1,i)=cal_rho(x,Rho_0,delte_rho,S);
end
figure
subplot(1,2,1)
plot(Rho(1,:))
xlabel('space(x100m)')
ylabel('densit(/m)')
grid on
title('初始密度分布')
% 初始速度
for i=1:Nmax
V(1,i)=cal_Vrho(Rho_max,vf,Rho(1,i));
end
% V(1,:)=ones(Nmax,1)'*vf;
subplot(1,2,2)
plot(V(1,:))
xlabel('space(x100m)')
ylabel('V(m/s)')
grid on
title('初始速度分布')
%% 模型演化
%% 演化参数
Lamda=0.4;
Beta=0.4;
P=0.1;
t=1;
mybar=waitbar(0,'演化进程','name','演化进程');
while t<Tmax
t=t+1;
msg=['当前时刻t=:' num2str(t) '秒,进度:' num2str(fix(100*t/Tmax)) '%'];
mybar=waitbar(t/Tmax,mybar,msg,'演化进程');
for i=1:Nmax
Rho(t,i)=refresh_rho(Rho(t-1,:),V(t-1,:),i,delta_t,delta_x,Nmax);
V(t,i)=refresh_V(Rho(t-1,:),V(t-1,:),i,Rho_max,vf,Tau,delta_t,delta_x,P,Lamda,Delta,Beta,Nmax,Rho_0);
end
end
close(mybar)
warndlg('演化完毕')
%% Fig2
step1=1;
step2=1;
Space=1:step1:Nmax;
Time=1:step2:Tmax;
[X,Y]=meshgrid(Space,Time);
if P==0.1
Fig2a(X,Y,Rho(1:step2:end,1:step1:end))
elseif P==0.9
Fig2b(X,Y,Rho(1:step2:end,1:step1:end))
end
Fig5678(Rho,Nmax,Tmax)

简略的分享一下,这算是比较简单的元胞自动机模型了,有遇到这方面问题的朋友欢迎讨论交流。
错误之处欢迎大家批评指正