内格尔Schreckenberg模型模拟源码
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模型模拟源码相关推荐
- 分享129个ASP源码,总有一款适合您
ASP源码 分享129个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 129个ASP源码下载链接:https://pan.baidu.com/s ...
- 分享66个ASP电子商务源码,总有一款适合您
分享66个ASP电子商务源码,总有一款适合您 66个ASP电子商务源码下载链接:https://pan.baidu.com/s/1O_QlpdQfudAvn9ioBlOJRQ?pwd=3gye 提取 ...
- 被刷屏的塞尔达来了,附源码!
渲染系统作为游戏引擎的核心模块,是引擎画面表现力的天花板,直接决定了游戏所能输出给玩家的内容上限.Cocos Creator 3.x 的渲染系统,从架构到设计都是以面向未来.高性能.跨平台为目标,支持 ...
- bms电池管理系统BMS源码 凌力尔特方案,LTC6804数据采集
bms电池管理系统BMS源码 凌力尔特方案,LTC6804数据采集,配合LTC3300主动均衡,并移植了RTOS,工程较大,部分源码如图,可选对应硬件电路PCB与原理图,带芯片官方数据手册 编号:73 ...
- eos源码赏析(二十三):默克尔树在EOS中的应用(上)
前面文章中在分析push_transactioneos源码赏析(二十):EOS智能合约之push_transaction的天龙八"步"以及区块签名eos源码赏析(二十一):EOS智 ...
- 【Python自然语言处理】隐马尔可夫模型中维特比(Viterbi)算法解决商务选择问题实战(附源码 超详细必看)
需要源码请点赞关注收藏后评论区留言私信~~~ 一.统计分词 统计分词基本逻辑是把每个词语看做由单字组成,利用统计学原理计算连接字在不同文本中出现的次数,以此判断相连字属于特定词语的概率. 二.隐马尔可 ...
- 【光学】基于matlab GUI菲涅尔系数计算【含Matlab源码 1165期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI菲涅尔系数计算[含Matlab源码 1165期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- 米尔科技 Z-turn XC7Z010 Linux驱动源码路径
米尔科技 Z-turn XC7Z010 Linux驱动源码路径 网址:http://www.myir-tech.com/bbs/thread-6999-1-1.html Z-turn XC7Z010 ...
- C#毕业设计——基于C#+asp.net+sqlserver的选课系统设计与实现(毕业论文+程序源码)——选课系统
基于C#+asp.net+sqlserver的选课系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver的选课系统设计与实现,文章末尾附有本毕业设计的 ...
最新文章
- CCNA实验:VLan间路由实验配置 (单臂路由)
- 百度 android geocoding,百度地图经纬度批量查找功能XGeocoding使用手册(示例代码)
- pcjome新闻图片替换效果
- 施乐7556_富士施乐Fuji Xerox WorkCentre 7556 驱动
- 客户服务器与p2p文件分发,P2P大文件分发技术 | 点量软件
- USB Server助力广汽埃安U盾远程安全管控
- iphone双重认证关闭不了怎么办_iPhone双重认证怎么关闭?苹果手机关闭双重认证的两种方法[多图]...
- JS实现项目查找功能
- 大数据可视化(八)数据可视化中的交互
- IT行业的各岗位职责[转]
- 转自啄木鸟学院-IT行业培训班出来的人真的不行吗?
- linux寄存器位运算,位运算的一些操作
- STEP标准执行方法-ISO-10303-21
- 1 深度学习为甚么如此火热发展如此迅速
- MOSFET导通、关断过程详细分析、损耗分析、米勒效应、datasheet解释
- Mysql 默认密码
- 机器学习-Pandas 知识点汇总(吐血整理)
- (二)库存计划-经济订货量(EOQ)
- 【xm格式转不了mp3】教你正确下载喜马拉雅PC版,并优雅获取音频
- redisTemplate 实现有序集合排序
热门文章
- BugTags简单集成
- 安装微软常用运行库合集 解决------由于找不到VCRUNTIME140.dll,无法继续执行代码问题解决
- 就业两年国企辞职考研经验心得
- 数据治理-数据质量-数据质量管理方法和工具
- linux安装过程中遇到了“kernel panic : no working init found“的解决措施
- 快来给你个人微信公众号认个证吧
- “你的期望薪资是多少?” 月薪三万的他是这样回答的......
- 产业互联网与消费互联网
- 智能集群理论优化控制_深度解析【智能集群控制技术】到底多硬核?
- 2013-10-19第一次去招聘市场面试