2014美赛A题元胞数据模型仿真matlab源程序

合集下载

2014年美国大学生数学建模竞赛A题论文综述

2014年美国大学生数学建模竞赛A题论文综述

数学建模综述2014年美国大学生数学建模竞赛A题论文综述我们小组精读两篇14年美赛A题论文,选择了其中一篇来进行学习,总结。

1、问题分析The Keep-Right-Except-To-Pass Rule除非超车否则靠右行驶的交通规则问题:建立数学模型来分析这条规则在低负荷和高负荷状态下的交通路况的表现。

这条规则在提升车流量的方面是否有效?如果不是,提出能够提升车流量、安全系数或其他因素的替代品(包括完全没有这种规律)并加以分析。

在一些国家,汽车靠左形式是常态,探讨你的解决方案是否稍作修改即可适用,或者需要一些额外的需要。

最后,以上规则依赖于人的判断,如果相同规则的交通运输完全在智能系统的控制下,无论是部分网络还是嵌入使用的车辆的设计,在何种程度上会修改你前面的结果论文:基于元胞自动机和蒙特卡罗方法,我们建立一个模型来讨论“靠右行”规则的影响。

首先,我们打破汽车的运动过程和建立相应的子模型car-generation的流入模型,对于匀速行驶车辆,我们建立一个跟随模型,和超车模型。

然后我们设计规则来模拟车辆的运动模型。

我们进一步讨论我们的模型规则适应靠右的情况和,不受限制的情况, 和交通情况由智能控制系统的情况。

我们也设计一个道路的危险指数评价公式。

我们模拟双车道高速公路上交通(每个方向两个车道,一共四条车道),高速公路双向三车道(总共6车道)。

通过计算机和分析数据。

我们记录的平均速度,超车取代率、道路密度和危险指数和通过与不受规则限制的比较评估靠右行的性能。

我们利用不同的速度限制分析模型的敏感性和看到不同的限速的影响。

左手交通也进行了讨论。

根据我们的分析,我们提出一个新规则结合两个现有的规则(靠右的规则和无限制的规则)的智能系统来实现更好的的性能。

该论文在一开始并没有作过多分析,而是一针见血的提出了自己对于这个问题的做法。

由于题目给出的背景只有一条交通规则,而且是题目很明确的提出让我们建立模型分析。

2014年数学建模美赛题目

2014年数学建模美赛题目

PROBLEM A: The Keep-Right-Except-To-Pass RuleIn countries where driving automobiles on the right is the rule (that is, US A, China and most other countries except for Great Britain, Australia, and some former British colonies), multi-lane(车道) freeways(快车道) often employ a rule that requires drivers to drive in the right-most lane unless they are passing another vehicle, in which case they mov e one lane to the left, pass, and return to their former travel lane.Build and analyze a mathematical model to analyze the performance of th is rule in light and heavy traffic. You may wish to examine tradeoffs(权衡) between traffic flow and safety, the role of under- or over-posted speed limits (that is, speed limits that are too low or too high), and/ or other factors that may not be explicitly(明确地) called out in this problem statement. Is this rule effective in promotin g better traffic flow? If not, suggest and analyze alternatives (to include p ossibly no rule of this kind at all) that might promote greater traffic flow, safety, and/or other factors that you deem(认为) important.In countries where driving automobiles on the left is the norm, argue whe ther or not your solution can be carried over with a simple change of orie ntation(方向), or would additional requirements be needed.Lastly, the rule as stated above relies upon human judgment for complian ce( 服从). If vehicle transportation on the same roadway was fully under the co ntrol of an intelligent system – either part of the road network or imbedde d(把……嵌入) in the design of all vehicles using the roadway – to what extent would this change the results of your earlier analysis?PROBLEM B: College Coaching LegendsSports Illustrated, a magazine for sports enthusiasts, is looking for the “be st all time college coach” male or female for the previous century. Build a mathematical model to choose the best college coach or coaches (past or present) from among either male or female coaches in such sports as colle ge hockey(冰球) or field hockey(曲棍球), football, baseball or softball(垒球), basketball, or soccer(英式足球). Does it make a difference which time line horizon that you use in yo ur analysis, i.e., does coaching in 1913 differ from coaching in 2013? Clearly articulate(善于表达的) your metrics(韵律学) for assessment. Discuss how your model can be applied in general acr oss both genders (性别) and all possible sports. Present your model’s top 5 coaches in each of 3 different sports.In addition to the MCM format and requirements, prepare a 1-2 page article(文章) for Sports Illustrated that explains your results and includes a non-technical explanation of your mathematical model that sports fans will un derstand。

美赛特等奖经验分享

美赛特等奖经验分享

美赛特等奖经验分享清华大学的钟耀峰:我们的数模故事——14年美赛清华大学O奖非常感谢校苑数模的邀请,邀请我把自己美赛O奖的经验分布在论坛上。

这篇经验总结在5月份的时候就已经写好了,当时确实还不知道校苑数模论坛,后来一次偶然的机会在网上看到了校苑数模这个论坛,才开始偶尔来逛一下。

记得第一次逛论坛就看到了校苑寄语——banner广告“有些事不是看到了希望才去坚持,而是坚持了才会看到希望”,被这句话深深地折服,也被校苑数模这个富含文化的论坛所打动。

近期受论坛负责人赵松师兄邀请,将自己的经验分享写在论坛上,感到十分荣幸!第一次知道美赛是差不多去年的这个时候,当时觉得这比赛好像挺合我胃口,就想趁着大三带着那还残存着的激情好好干一把,也就图个经历嘛。

组队的过程挺意外的,以至于我还不清楚什么情况呢就组好了队,可能因为我们三个(我,张云翼,赵晓)本来就很熟悉。

后来想想我们三个确实是个不错的组合。

大三上期中考试之后,开始对某些专业课慢慢地厌倦了起来orz,于是开始找来美赛的论文看,也就是这个时候我才开始真正了解美赛。

我看的第一篇论文In the Zone: Novel Approaches to Airplane Boarding让我对美赛有了一个直观的概念。

读这篇文章时,我惊叹于它层层推进的模型,恰如其分的解释,清晰严密的逻辑框架以及漂亮的图表和美观的排版。

它让我了解了一个看起来棘手的问题的是如何被解决的。

这篇文章对我的影响很大,以至于我们参赛论文和这篇文章在架构上有不少相近之处。

这段时间我和赵晓、张云翼还联系了两位参加过美赛的学长,希望他们能给我们一些建议。

靠谱的学长们详细地解答了我们的疑惑。

我们得知了数学模型能够解决哪些问题,有哪些基本的方法,需要学习哪些知识。

我们也清楚了比赛的4天内时间应该大致怎么分配,三个人如果出现了意见不合的时候应该怎么处理等等。

之后用零零散散的时间看了几篇文章也逛了逛数模论坛,也就快到期末考试了。

2014美赛A题讲解

2014美赛A题讲解
多车道FI模型则是在单车道FI模型的基础上增加了车 辆换道规则,要求在各条车道上行驶的车辆要遵守FI规 则, 在进行车道变换时遵循车辆换道规则。
2021/3/7
CHENLI
10
用CA模型描述交通流,主要是通过对驾驶员驾车行为的 分析,建立驾驶员或车辆的行为输出规则,从而建立元胞 自动机的运行规则,然后仿真实际交通背景,模拟整体元 胞群的动态过程,从中得到解决交通问题的方法或信息。 这类模型考虑的主要问题包括:如何用微观规则的建模来 描述元胞的运动过程;如何用宏观规则的建模来描述高速 公路运行车辆的随机性,这是交通现象的重要特征。
2021/3/7
CHENLI
13
2)平均车速( v ):
在固定路段内不同车道上所有车辆的平均时速的平均值,
过程中提取;其次,建立高速公路上车辆的运行状态随时间
变化的微观规则模型,特别是“右行左超车”的规则模型;
第三是运行车辆的不同运行状态改变的宏观概率分布,这是
由交通问题的随机性决定的, 而随机性是交通问题的一个特
别重要的特性;最后是设计元胞自动机的仿真对比试验,特
2别021/是3/7元胞群空间、初始元胞群CH密ENL度I 、分布与状态等。
2014美赛A题建模与求解
讲解人:王永丽
2014年8月11日
2021/3/7
CHENLI
1
提纲
问题描述 求解方案
1、问题分析与模型建立 2、模型求解与计算机仿真
模型优缺点分析与改进
2021/3/7
CHENLI
2
问题描述
题目:除非超车否则靠右行驶的交通规则
问题:在一些汽车靠右行驶的国家(比如美国,中国等),
2021/3/7
CHENLI

元胞自动机NaSch模型及其MATLAB代码

元胞自动机NaSch模型及其MATLAB代码

元胞自动机NaSch模型及其MATLAB代码作业要求根据前面的介绍,对NaSch模型编程并进行数值模拟:模型参数取值:Lroad=1000,p=0.3,Vmax=5。

边界条件:周期性边界。

数据统计:扔掉前50000个时间步,对后50000个时间步进行统计,需给出的结果。

基本图(流量-密度关系):需整个密度范围内的。

时空图(横坐标为空间,纵坐标为时间,密度和文献中时空图保持一致, 画500个时间步即可)。

指出NaSch模型的创新之处,找出NaSch模型的不足,并给出自己的改进思路。

流量计算方法:密度=车辆数/路长;流量flux=density×V_ave。

在道路的某处设置虚拟探测计算统计时间T内通过的车辆数N;流量flux=N/T。

在计算过程中可都使用无量纲的变量。

1、NaSch模型的介绍作为对184号规则的推广,Nagel和Schreckberg在1992年提出了一个模拟车辆交通的元胞自动机模型,即NaSch模型(也有人称它为NaSch模型)。

时间、空间和车辆速度都被整数离散化。

道路被划分为等距离的离散的格子,即元胞。

每个元胞或者是空的,或者被一辆车所占据。

车辆的速度可以在(0~Vmax)之间取值。

2、NaSch模型运行规则在时刻t到时刻t+1的过程中按照下面的规则进行更新:(1)加速:vnmin(vn1,vmax)规则(1)反映了司机倾向于以尽可能大的速度行驶的特点。

(2)减速:vnmin(vn,dn)规则(2)确保车辆不会与前车发生碰撞。

(3)随机慢化:以随机概率p进行慢化,令:vnmin(vn-1,0)规则(3)引入随机慢化来体现驾驶员的行为差异,这样既可以反映随机加速行为,又可以反映减速过程中的过度反应行为。

这一规则也是堵塞自发产生的至关重要因素。

(4)位置更新:,车辆按照更新后的速度向前运动。

其中vn,xn 分别表示第n辆车位置和速度;l(l≥1)为车辆长度;p表示随机慢化概率;表示n车和前车n+1之间空的元胞数;vmax为最大速度。

matlab 元胞自动机仿真编码

matlab 元胞自动机仿真编码

matlab 元胞自动机仿真编码Matlab是一种高级的计算机编程语言,也是一种数学软件。

在这个工具中,我们可以使用众多的函数和算法,对各种数学问题进行编程和模拟。

其中,元胞自动机仿真是一个非常有趣的应用,它可以模拟种种自然现象,如生态系统、洪水模拟、演化模拟等等。

本文将带领大家了解如何使用Matlab实现元胞自动机仿真。

第一步:安装Matlab在进行任何操作之前,我们需要先安装Matlab软件。

Matlab有专门的官网可以下载,或者可以到计算机的应用商店中寻找该软件。

安装完成后,我们就可以在计算机中打开Matlab。

第二步:了解元胞自动机元胞自动机是指在一个方格化空间中,每个单元格内存有一定的状态,根据一定的规则进行相互作用和转化。

元胞自动机仿真可以通过对这些规则和状态的变化进行模拟,来预测和控制自然现象的演化。

第三步:编写Matlab程序在Matlab中,我们可以使用现成的元胞自动机仿真函数进行模拟,也可以自己编写程序来实现。

下面是一个简单的Matlab元胞自动机程序,其中包括三部分:初始化、更新状态和可视化。

%% InitializationN = 100; % Number of cells in each rowdensity = 0.3; % Initial density of live cellscells = rand(N,N) < density;imagesc(cells); % Visualize initial configurationcolormap(gray); % Set color map to gray%% Update the state of the systemS = [N N]; % Size of the latticeB = ones(3,3); % 3-by-3 neighborhoodB(2,2) = 0; % Exclude the center cellfor t = 1:100 % Number of iterationsC = conv2(cells,B,'same'); % Convolve with neighborhood cells = (C == 3) | (cells & (C == 2)); % Update cellsimagesc(cells); % Visualize new configurationdrawnow; % Update displayend%% Visualizationimagesc(cells); % Visualize final configuration colormap(gray); % Set color map to gray在该程序中,我们首先定义了一些变量,如N表示每行单元格的数量,density表示初始的存活细胞密度。

2014美赛A题元胞自动机完整代码,做出来了有木有~

2014美赛A题元胞自动机完整代码,做出来了有木有~

2014美赛A题元胞自动机完整代码,做出来了有木有~ 2014美赛相关MATLAB程序(基于NS模型)主程序:NaSch_3.m程序代码% 单车道最大速度3个元胞开口边界条件加速减速随机慢化 clfclear all%build the GUI%define the plot button plotbutton=uicontrol('style','pushbutton',... 'string','Run', ...'fontsize',12, ...'position',[100,400,50,20], ...'callback', 'run=1;');%define the stop buttonerasebutton=uicontrol('style','pushbutton',... 'string','Stop', ...'fontsize',12, ...'position',[200,400,50,20], ...'callback','freeze=1;');%define the Quit button quitbutton=uicontrol('style','pushbutton',... 'string','Quit', ...'fontsize',12, ...'position',[300,400,50,20], ...'callback','stop=1;close;');number = uicontrol('style','text', ... 'string','1', ...'fontsize',12, ...'position',[20,400,50,20]);%CA setupn=100; %数据初始化z=zeros(1,n); %元胞个数z=roadstart(z,5); %道路状态初始化,路段上随机分布5辆 cells=z;vmax=3; %最大速度v=speedstart(cells,vmax); %速度初始化 x=1; %记录速度和车辆位置memor_cells=zeros(3600,n);memor_v=zeros(3600,n);imh=imshow(cells); %初始化图像白色有车,黑色空元胞 set(imh,'erasemode', 'none')axis equalaxis tightstop=0; %wait for a quit button push run=0; %wait for a draw freeze=0; %wait for a freeze(冻结)while (stop==0)if(run==1)%边界条件处理,搜素首末车,控制进出,使用开口条件a=searchleadcar(cells);b=searchlastcar(cells);[cells,v]=border_control(cells,a,b,v,vmax);i=searchleadcar(cells); %搜索首车位置for j=1:iif i-j+1==n[z,v]=leadcarupdate(z,v);1continue;else%======================================加速、减速、随机慢化if cells(i-j+1)==0; %判断当前位置是否非空continue;else v(i-j+1)=min(v(i-j+1)+1,vmax); %加速%=================================减速k=searchfrontcar((i-j+1),cells); %搜素前方首个非空元胞位置if k==0; %确定于前车之间的元胞数d=n-(i-j+1);else d=k-(i-j+1)-1;endv(i-j+1)=min(v(i-j+1),d);%==============================%减速%随机慢化v(i-j+1)=randslow(v(i-j+1));new_v=v(i-j+1);%======================================加速、减速、随机慢化%更新车辆位置z(i-j+1)=0;z(i-j+1+new_v)=1;%更新速度v(i-j+1)=0;v(i-j+1+new_v)=new_v;endendendcells=z;memor_cells(x,:)=cells; %记录速度和车辆位置memor_v(x,:)=v;x=x+1;set(imh,'cdata',cells) %更新图像%update the step number diaplaypause(0.2);stepnumber = 1 + str2num(get(number,'string'));set(number,'string',num2str(stepnumber))endif (freeze==1)run = 0;freeze = 0;enddrawnowend//////////////////////////////////////////////////////////////////// ///函数:border_control.m程序代码Function[new_matrix_cells,new_v]=border_control(matrix_cells,a,b,v,v max)%边界条件,开口边界,控制车辆出入%出口边界,若头车在道路边界,则以一定该路0.9离去n=length(matrix_cells);if a==n2rand('state',sum(100*clock)*rand(1));%??ÒåËæ?úÖÖ×Óp_1=rand(1); %产生随机概率if p_1<=1 %如果随机概率小于0.9,则车辆离开路段,否则不离口matrix_cells(n)=0;v(n)=0;endend%入口边界,泊松分布到达,1s内平均到达车辆数为q,t为1s if b>vmax t=1;q=0.25;x=1;p=(q*t)^x*exp(-q*t)/prod(x); %1s内有1辆车到达的概率rand('state',sum(100*clock)*rand(1));p_2=rand(1);if p_2<=pm=min(b-vmax,vmax);matrix_cells(m)=1;v(m)=m;endendnew_matrix_cells=matrix_cells;new_v=v;//////////////////////////////////////////////////////////////////// ///函数:leadcarrupdate.m程序代码function [new_matrix_cells,new_v]=leadcarupdate(matrix_cells,v) %第一辆车更新规则n=length(matrix_cells);if v(n)~=0matrix_cells(n)=0;v(n)=0;endnew_matrix_cells=matrix_cells;new_v=v;//////////////////////////////////////////////////////////////////// ///函数:randslow.m程序代码function [new_v]=randslow(v)p=0.3; %慢化概率rand('state',sum(100*clock)*rand(1));%??ÒåËæ?úÖÖ×Ó p_rand=rand; %产生随机概率if p_rand<=pv=max(v-1,0);endnew_v=v;//////////////////////////////////////////////////////////////////// ///3函数:roadstart.m程序代码function [matrix_cells_start]=roadstart(matrix_cells,n) %道路上的车辆初始化状态,元胞矩阵随机为0或1,matrix_cells初始矩阵,n初始车辆数k=length(matrix_cells);z=round(k*rand(1,n));for i=1:nj=z(i);if j==0matrix_cells(j)=0;elsematrix_cells(j)=1;endendmatrix_cells_start=matrix_cells;//////////////////////////////////////////////////////////////////// ///函数:searchfrontcar.m程序代码function[location_frontcar]=searchfrontcar(current_location,matrix_cells) i=length(matrix_cells);if current_location==ilocation_frontcar=0;elsefor j=current_location+1:iif matrix_cells(j)~=0location_frontcar=j;break;elselocation_frontcar=0;endendend//////////////////////////////////////////////////////////////////// ///函数:searchlastcar.m程序代码function [location_lastcar]=searchlastcar(matrix_cells) %搜索尾车位置for i=1:length(matrix_cells)if matrix_cells(i)~=0location_lastcar=i;break;else %如果路上无车,则空元胞数设定为道路长度location_lastcar=length(matrix_cells);endend//////////////////////////////////////////////////////////////////// ///4函数:searchleadcar.m程序代码function [location_leadcar]=searchleadcar(matrix_cells)i=length(matrix_cells);for j=1:iif matrix_cells(i-j+1)~=0location_leadcar=i-j+1;break;elselocation_leadcar=0;endend//////////////////////////////////////////////////////////////////// ///函数:speadstart.m程序代码function [v_matixcells]=speedstart(matrix_cells,vmax) %道路初始状态车辆速度初始化v_matixcells=zeros(1,length(matrix_cells)); for i=1:length(matrix_cells)if matrix_cells(i)~=0v_matixcells(i)=round(vmax*rand(1));endend5。

2014年北美数学建模联赛A题一等奖论文

2014年北美数学建模联赛A题一等奖论文

Key words: overtaking model
computer simulation
multi-lane cellular automata model Sensitivity Analysis
Coriolis Force
1
Team 29135 Contents
page 2 of 33
Summary………………………………………………………………….. ……………1 Introduction……………………………………………………………… …………….3 Restatement and Description of problem…………………………………………..3 Notations and Definitions……………………………………………………………. 4 Basic Assumptions……………………………………………………………………..5 Modeling ………………………………………………………………………………..5 Problem 1……………………………………………………………………………….5
A
For office use only F1 ________________ F2 ________________ F3 ________________ F4 ________________
2014 Mathematical Contest in Modeling (MCM/ICM) Summary Sheet (Attach a copy of this page to your solution paper.)
Problem 2……………………………………………………………………………..14
Introduction………………………………………………………………………….14 New Driving Rule……………………………………………………………………15 Modeling to Prove the Reasonability………………………………………………..15 Computer Simulation and Numerical Analysis………………………………………17 Evaluation of New Rule………………………………………………………………19
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主函数function [ ] = main_tca( ~ )%---------------------------------------------------------------------------------------------------------------------------------------------------------------%%%%%%%% %%-------------------------------------------------------------------------%%基础变量声明~%-------------------------------------------------------------------------%%%%% -------------------------------------------------------------------------%%基本仿真信息(或以配置文件方式直接获得)%-------------------------------------------------------------------------%[Volume SimTimeTimeStepLaneNumCellNum VMAX] = GetBasicInfo();%% -------------------------------------------------------------------------%%生成元胞空间%-------------------------------------------------------------------------%[CellSpace_currentCellSpace_nextstep] = GenerateCellSpace(LaneNum,CellNum);%% -------------------------------------------------------------------------%%生成车辆空间%-------------------------------------------------------------------------%[VehicleSpace] = GenerateVehicleSpace(Volume);%% -------------------------------------------------------------------------%%开始仿真%-------------------------------------------------------------------------%TrafficSimulating(SimTime,TimeStep, CellSpace_current, CellSpace_nextstep, VehicleSpace,VMAX);%% -------------------------------------------------------------------------%%展示结果ResultsPlotting();%-------------------------------------------------------------------------%endfunction [ CellSpace_nextstepVehicleSpace ] = TrafficSimulating( SimTime,TimeStep,CellSpace_current, CellSpace_nextstep, VehicleSpace,VMAX )%TRAFFICSIMULATING Summary of this function goes here% 仿真程序主体CellSpace_Init = CellSpace_nextstep;% 读取信号配时数据SignalCycleMat = load('SignalCycleInfo.ini');sCycle = SignalCycleMat(1);%周期长度sGreenTime = SignalCycleMat(2);%绿灯时长sRedTime = SignalCycleMat(3);%红灯时长%% 是否加载换道模型LaneChangingModelINIMat = load('LaneChangingModeInfo.ini'); UseLaneChangingModelFlag = LaneChangingModelINIMat(1);%%%时间步长和时长必须满足整除关系foriStep = 1:TimeStep:SimTime%判断信号配时tCurrentMod = mod(iStep,sCycle);iftCurrentMod<= sGreenTimesignalFlag = 0;elsesignalFlag = 1;end;%搜寻元胞上存在的车辆,获得每个元胞的车辆占用情况,以及占用车辆的编号[TakenMatTakenCarHeadMatTakenCarIDMat] = SearchCellSpaceForTaken(CellSpace_current);%计算每个车辆的更新信息[CellSpace_nextstepVehicleSpace] = CountingNextStepVehicleState(CellSpace_current,CellSpace_nextstep,VehicleSpace,TakenMat, TakenCarIDMat,VMAX,signalFlag,UseLaneChangingModelFlag);%判断是否发新车,并计算新车的更新信息%更新元胞空间[CellSpace_nextstepVehicleSpace] = AddingNewCarsToEntry(CellSpace_current,CellSpace_nextstep,VehicleSpace);%%统计相关信息%保持数据SavingDataAsFiles(CellSpace_current,VehicleSpace,TakenMat,TakenCarHeadMat,TakenCarIDMat);%绘制图像DrawingCellSpace(TakenMat);%进入下一轮循环CellSpace_current = CellSpace_nextstep;CellSpace_nextstep = CellSpace_Init;end;endfunctionistaken = IsCellTaken(CellSpace,laneid,startTag,endTag)%从startTag开始到endTag结束的这些元胞是否都是空闲,有一个及以上被占用返回1 fori = startTag:1:endTagifGetCellTakenState(CellSpace,laneid,i) == 1istaken = 1;return;end;end;istaken = 0;%这些元胞全部空闲endfunctionResultsPlotting()%% 读取配置信息SavingSettingsMat = load('OutputDataSettings.ini');%输出数据子文件夹subfoldername = SavingSettingsMat(1);%%lanenodatafile = [num2str(subfoldername) '\车辆占用车道数据.txt']; positiondatafile = [num2str(subfoldername) '\车辆所处位置.txt']; speeddatafile = [num2str(subfoldername) '\车辆每一时刻速度.txt']; cartypeinfofile = [num2str(subfoldername) '\车辆基本信息.txt'];%%LaneTakenDMat = importdata(lanenodatafile);VehPositionDMat = importdata(positiondatafile);SpeedDMat = importdata(speeddatafile);VehicleInfoMat = load(cartypeinfofile);%%[stepNum, carNum] = size(SpeedDMat);[Volume SimTimeTimeStepLaneNumCellNum VMAX] = GetBasicInfo();%%travelTime = zeros(1,carNum);%每辆车的旅行时间fori = 1:carNumtravelTime(1,i) = length(find(SpeedDMat(:,i)>=0));end;%%meanSpeed = zeros(stepNum,1);%平均速度meanQueue = zeros(stepNum,1);%平均排队长度volDensity = zeros(stepNum,1);%密度for j = 1:stepNumexistedCarIDs = find(SpeedDMat(j,:)>=0);volDensity(j,1) = sum(GetVehicleLength(existedCarIDs)) / (LaneNum * CellNum); meanQueue(j,1) = sum(GetVehicleLength(find(SpeedDMat(j,:)<=1)))/LaneNum; meanSpeed(j,1) = mean(SpeedDMat(j,SpeedDMat(j,:)>=0));end;%%%%%% %% end。

相关文档
最新文档