1 / 52
文档名称:

第7讲:仿真模型的matlab实现.ppt

格式:ppt   大小:2,856KB   页数:52页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第7讲:仿真模型的matlab实现.ppt

上传人:350678539 2022/7/3 文件大小:2.79 MB

下载得到文件列表

第7讲:仿真模型的matlab实现.ppt

相关文档

文档介绍

文档介绍:第7讲:仿真模型的matlab实现
第一页,共52页。
例1:生命游戏
生命游戏(game of life)是由剑桥大学的数学家John Horton Conway在1970年提出来的。
元胞分布在规则划分的二维网格上;
元维正方形网格自动机,元胞包括三种状态:正在生长的树(绿色),正在燃烧的树(红色)和空状态(黑色)。初始状态由这三种情况随机填充,邻域取Moore型。每一步按下述规则更新状态:
(1)正在燃烧的树变为空状态;
(2)如果正在生长的树格位最近的邻居中有不少于一棵树正在燃烧,则它将变为燃烧状态;
(3)如果是空状态格位,则其以概率p生长出树;
(4)考虑到闪电的作用,在最近邻居中没有正在燃烧的树(周围全是树且没有燃烧)的情况下,生长树在每个时间步以概率 f 变成燃烧的树。
第二十六页,共52页。
第二十七页,共52页。
程序实现
核心变量:
规则(1)—规则(4)的实现!
用一个二维数组表示棋盘的状态,假设棋盘大小为100*100,初始根据概率随机确定是否有树。
棋盘:S=rand(100); %随机生成[0,1]间的棋盘矩阵
S(S<=) = 0;
S(S>) = 1;
Sk=zeros(102); Sk(2:N+1,2:N+1) = S;
第二十八页,共52页。
第二十九页,共52页。
第三十页,共52页。
例4:基于元胞自动机的交通流模拟
将道路离散化为一维网格,车辆为元胞,匀速行驶,其在一维网格上的移动看成一维网格的状态变化,邻域取前后各一个位置,即邻域半径 r=1,初始状态为道路入口处有一辆车,随着时间的进行,道路入口处按均匀分布随机产生一辆车作为道路的输入(产生概率决定了车流密度),车辆在道路上的移动可使用元胞自动机模拟。
将某一个位置的车固定不移动,还可模拟红绿灯和交通堵塞等情况,如将道路最后一个位置车辆不移动或固定时长移动,则可模拟红绿灯;将道路中某一个位置车辆不移动一定时长可模拟偶然交通事故。
第三十一页,共52页。
(1)在当前时间,某一个位置若有车,则下一个时间该位置有无车取决于前后位置是否有车;
(2)若当前位置有车,下一个位置没有车,则当前位置下一个时刻有无车取决于上一个位置是否有车,如上一个位置有车,则下一个时刻当前位置有车,否则无车,若下一个位置有车,则还决定于下一个时刻此车是否会前进,若前进,则当前位置下一个时刻有无车又由上一个位置有无车决定,否则当前位置有车;
(3)若当前时刻无车,则下一个时刻有无车取决于上一个位置是否有车,若有车,则当前位置下一个时刻有车,否则无车。
移动规则:
第三十二页,共52页。
移动规则可表示成:
上述这条规则隐藏了一个潜在的前提(假设):前进中的车辆应该有车距(一个车位),即若完全紧挨在一起的车辆在行进中要隔开一个车位。
第三十三页,共52页。
第三十四页,共52页。
在这个模型基础上还可以加上红绿灯机制,如在路的最后设置红绿灯,给定红绿灯时间,只需在红灯时间内让道路口位置恒为1,在绿灯时间内让道路口位置恒为0即可。
红灯60个单位时间,绿灯120个单位时间
第三十五页,共52页。
增加偶然交通事故。在每个时刻,产生服从均匀分布的随机数,%则发生一次交通事故,在有车的位置随机产生一个交通事故点,堵塞交通固定时间,如60个时间单位。具体实现上让这个位置在堵塞时间内恒为1即可。
第三十六页,共52页。
程序实现
系统参数设置:
S=100; %道路长度
First(1:s+1) = 0; %一维数组表示道路
Passtime = 120; %绿灯时间
Stoptime = 60; %红灯时间
Ispass=1, curpass=0, curstop =0; %记录当前车辆已通过或停止的时间
Accident = 0; %路面是否发生随机事故
Acpoint = -1; %发生随机事故的位置
Actime = 60; curactime = -1; %随机事故的阻塞时间
第三十七页,共52页。
记录更新的道路状态
阻塞道路末端
打开道路末端
红绿灯规则实现
第三十八页,共52页。
随机交通事故处理
%的概率产生随机事故
第三十九页,共52页。
车辆移动仿真
从道路末端到起点
车辆移动方程
事故点附近处理
第四十页,共52页。
道路口进入车辆
,更符