先上一个输出的时空图
以下是代码
clear;clc;
%% 参数设置
space_range=1000; %空间范围(车道长)
MinTime = 0; %最小时间步
MaxTime = 1000; %最大时间步
v_max = 5; %允许最大车速
pro_slowdown=0.3; %慢化概率
time_newcar=1; %每隔time_newcar时间步放一辆车
%% 准备空间
memory=[]; %创建memory来储存每个时间步产生的数据
v = NaN (1,space_range); %创建v来存放time时间步的各元胞上的车辆速度
%% 沿车道以v_max为间隔投放速度为最大速度一半的车辆
for a=1:v_max:space_range
v (a) = fix(v_max/2);
end
%%
v_next = v; %v_next用来存放车辆的变动情况即time+1时间步的车辆速度
% 注意:以下循环中所有的速度变动都用v_next,而现时间步状态判断则用v
%% NaSch四步创建车辆模型
%% 时间模块
for time = 1:1:MaxTime
%% 储存数据
memory = [memory;v]; %每个时间步的v都作memor