1.问题描述:

内格尔Schreckenberg模型模拟源码

2.部分程序:

clc;
clear;
close all;

%Parameters
vmax = 6;
p = 0.6;
road_length = 40;
simulation_steps = 400;
render_on = 0;
pause_on = 0;
delay_on = 0;
delay_length = 0.05; %10 FPS

road = zeros(1,road_length);       %Contains occupation state
road_next = road;
velocities = zeros(1,road_length); %Contains velocity state
velocities_next = velocities;

%Sampling
num_samples = 200;
samples = zeros(2,num_samples); %Contains density and flow rate
density_step = 1/num_samples;

history = zeros(simulation_steps, road_length);
velocity_history = zeros(simulation_steps, road_length);

figure

for g=1:num_samples
    
    %Generate traffic
    road = zeros(1,road_length);       %Contains occupation state
    road_next = road;
    density = g/num_samples;
    
    %Generate traffic
    
for i=1:road_length
    if rand < density 
        road(i) = 1;
    end
end

if render_on
    imshow(road);
    drawnow
    end
    
    %Run simulation
for i=1:simulation_steps
    history(i, :) = road;
    velocity_history(i,:) = velocities;
           %--------------------Velocity update ------------------------%
    for j=1:road_length
       if road(j) == 1
           distance = 0;
           %Seek vmax ahead
           bf = 0;
           for k=1:vmax
               distance = k;
              
               if j+k <= road_length %The index is the "cell under consideration" - is it safe to land here?
                   index = j+k;
               else
                   index = j+k-road_length; %Deal with wrapping
               end
               
               if road(index) == 1 
                   bf = 1;
               end
               
               if bf == 1, break, end
           end
            
           if velocities(j) < vmax %Acceleration
               velocities(j) = velocities(j) + 1;
           end
           
           if (velocities(j) > distance - 1) && bf == 1 %Collision avoidance
               velocities(j) = distance - 1;
           end
           
           if rand < p && velocities(j) > 0 %Random braking
               velocities(j) = velocities(j) - 1;
           end
           
           
       end
    end
    
    %--------------------Movement -------------------------------%
    for j=1:road_length
        if road(j) ==1
            if j+velocities(j) <= road_length
                index = j+velocities(j);
            else
                index = j+velocities(j) - road_length; %Deal with wrapping
            end
            %Collision detection
            if road_next(index) == 1
                disp('Collision detected')
            end
            road_next(index) = 1;
            velocities_next(index) = velocities(j);
        end
    end
    
    velocities = velocities_next;
    
    road = road_next;
    road_next = zeros(1,road_length);
    
    if render_on
    imshow(road);
    drawnow
    end
    
    if pause_on
        pause
    end
    
    if delay_on
        pause(delay_length)
    end
    
end

3.仿真结论:

B-0036

内格尔Schreckenberg模型模拟源码相关推荐

  1. 分享129个ASP源码,总有一款适合您

    ASP源码 分享129个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 129个ASP源码下载链接:https://pan.baidu.com/s ...

  2. 分享66个ASP电子商务源码,总有一款适合您

    分享66个ASP电子商务源码,总有一款适合您 66个ASP电子商务源码下载链接:https://pan.baidu.com/s/1O_QlpdQfudAvn9ioBlOJRQ?pwd=3gye  提取 ...

  3. 被刷屏的塞尔达来了,附源码!

    渲染系统作为游戏引擎的核心模块,是引擎画面表现力的天花板,直接决定了游戏所能输出给玩家的内容上限.Cocos Creator 3.x 的渲染系统,从架构到设计都是以面向未来.高性能.跨平台为目标,支持 ...

  4. bms电池管理系统BMS源码 凌力尔特方案,LTC6804数据采集

    bms电池管理系统BMS源码 凌力尔特方案,LTC6804数据采集,配合LTC3300主动均衡,并移植了RTOS,工程较大,部分源码如图,可选对应硬件电路PCB与原理图,带芯片官方数据手册 编号:73 ...

  5. eos源码赏析(二十三):默克尔树在EOS中的应用(上)

    前面文章中在分析push_transactioneos源码赏析(二十):EOS智能合约之push_transaction的天龙八"步"以及区块签名eos源码赏析(二十一):EOS智 ...

  6. 【Python自然语言处理】隐马尔可夫模型中维特比(Viterbi)算法解决商务选择问题实战(附源码 超详细必看)

    需要源码请点赞关注收藏后评论区留言私信~~~ 一.统计分词 统计分词基本逻辑是把每个词语看做由单字组成,利用统计学原理计算连接字在不同文本中出现的次数,以此判断相连字属于特定词语的概率. 二.隐马尔可 ...

  7. 【光学】基于matlab GUI菲涅尔系数计算【含Matlab源码 1165期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI菲涅尔系数计算[含Matlab源码 1165期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  8. 米尔科技 Z-turn XC7Z010 Linux驱动源码路径

    米尔科技 Z-turn XC7Z010 Linux驱动源码路径 网址:http://www.myir-tech.com/bbs/thread-6999-1-1.html Z-turn XC7Z010 ...

  9. C#毕业设计——基于C#+asp.net+sqlserver的选课系统设计与实现(毕业论文+程序源码)——选课系统

    基于C#+asp.net+sqlserver的选课系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver的选课系统设计与实现,文章末尾附有本毕业设计的 ...

最新文章

  1. CCNA实验:VLan间路由实验配置 (单臂路由)
  2. 百度 android geocoding,百度地图经纬度批量查找功能XGeocoding使用手册(示例代码)
  3. pcjome新闻图片替换效果
  4. 施乐7556_富士施乐Fuji Xerox WorkCentre 7556 驱动
  5. 客户服务器与p2p文件分发,P2P大文件分发技术 | 点量软件
  6. USB Server助力广汽埃安U盾远程安全管控
  7. iphone双重认证关闭不了怎么办_iPhone双重认证怎么关闭?苹果手机关闭双重认证的两种方法[多图]...
  8. JS实现项目查找功能
  9. 大数据可视化(八)数据可视化中的交互
  10. IT行业的各岗位职责[转]
  11. 转自啄木鸟学院-IT行业培训班出来的人真的不行吗?
  12. linux寄存器位运算,位运算的一些操作
  13. STEP标准执行方法-ISO-10303-21
  14. 1 深度学习为甚么如此火热发展如此迅速
  15. MOSFET导通、关断过程详细分析、损耗分析、米勒效应、datasheet解释
  16. Mysql 默认密码
  17. 机器学习-Pandas 知识点汇总(吐血整理)
  18. (二)库存计划-经济订货量(EOQ)
  19. 【xm格式转不了mp3】教你正确下载喜马拉雅PC版,并优雅获取音频
  20. redisTemplate 实现有序集合排序

热门文章

  1. BugTags简单集成
  2. 安装微软常用运行库合集 解决------由于找不到VCRUNTIME140.dll,无法继续执行代码问题解决
  3. 就业两年国企辞职考研经验心得
  4. 数据治理-数据质量-数据质量管理方法和工具
  5. linux安装过程中遇到了“kernel panic : no working init found“的解决措施
  6. 快来给你个人微信公众号认个证吧
  7. “你的期望薪资是多少?” 月薪三万的他是这样回答的......
  8. 产业互联网与消费互联网
  9. 智能集群理论优化控制_深度解析【智能集群控制技术】到底多硬核?
  10. 2013-10-19第一次去招聘市场面试