先上一个输出的时空图
以下是代码
clear
刚学MATLAB,写了单车道的NaSch模型练练手,暂时还有几个问题:
首先就是关于车辆投放的问题,目前采用的是最开始一次性投放若干车辆,如要比较不同车辆密度条件下交通情况太麻烦;
也可以每个n个时间步随机向车道中空元胞处投放一个速度为最大速度一半的车辆,这样可以做到车辆随着时间增加而增多,但是随着车辆增多投放失败的概率即增大,而且这与实际不符;
还可以每隔n个时间步从最左边(车辆从左向右行驶)投放一个速度为最大速度一半的车辆,这便与实际情况相同,而因为本模型对头车(最右边车辆)采取的措施是当头车下一时间步到达车道长度-1(防止下一时间步加速时超出行向量长度)处即移动到左边第一个无车处,这样,当车辆比较多时,左边第一个位置长时间被移动过来的头车占据而无法投放新的车辆,或者投放的新的车辆也采取投放至左边第一个为空处,这样就与随机投放到车道上一样与实际不符,而又因为和头车一起投放至最左边而加剧拥堵(当然可以调大投放时间间隔)。
其次可视化做的不好,本模型只输出了时空图,当时间步和车道长取太长时时空图就可能变成一片黑,必须放大看,放大就不方便。
当然最大的问题就是只有一个车道,无法完成换道行为,这与实际严重不符。所以,我并不打算继续改进本模型而是继续去学习双车道模型。
最后,希望有MATLAB的小伙伴或是交通专业喜欢建模的同学能加我一起进步哈。