交通系统仿真的对象是含有多种随机成分和各种逻辑关系的复杂的交通系统,因此,它本身就是一个复杂的系统工程。它包括问题分析、模型建立、数据采集、程序编制、仿真运行、输出结果处理等过程,必须按一定的程序和步骤进行。
图13-1所示为一般的交通系统仿真流程图,其中包括11个步骤,对此将在下面分别进行讨论。当然,由于所讨论问题的不同,研究者思维方式的差异,这11个基本步骤也不是一成不变的。
图13-1 一般的交通系统仿真流程图
第一步:明确问题。
交通系统仿真的第一个步骤是对拟要研究的问题进行详细的了解和描述,明确研究目的,划定系统的范围和边界,以便对各种交通分析技术的适应性做出判断。举例来说,此时要回答下列问题:
(1)希望得到什么样的输出结果?什么样的输入将对输出结果产生影响?
(2)所讨论问题的空间界限和时间界限是什么?
(3)是否存在重要的随机因素?
(4)是否涉及排队现象?是否存在着相互影响的排队过程?
(5)交通条件是否随时间变化?
(6)车辆到达或离去是否服从经典的数学分布?
第二步:确定仿真方法的适用性。
这一步工作的核心是确定在各种交通系统分析技术中,系统仿真对于所讨论问题是最适合的方法。此步应当回答的问题如下:
(1)如果不用仿真方法,所讨论问题如何解决?
(2)为什么仿真方法可以较好地解决所讨论的问题?
(3)是否有仿真研究所需的足够的时间和物质支持?
(4)所讨论问题是否真的可以解决?
第三步:问题的系统化。
一旦确定系统仿真对于所讨论问题是最好的解决方法,就要着手构造一个仿真模型的第一级流程图,其中包括输入、处理、输出三个部分。特别要对输入和输出进行详尽的说明,以便下一步的数据收集和处理。一般来说,输入数据包括交通设施设计参数、交通需求方式、运行规则、控制类型、环境条件等。输出数据则依赖于所讨论问题的类型,通常包括行程时间、延误时间、排队长度、停车次数、交通事故、燃油消耗、尾气污染、交通噪声等。
第四步:数据的收集和处理。
这一步工作的主要内容是根据输入和输出要求收集和处理所需的数据。为此,应当制定观测计划,确保满足最小样本量要求,以便与模型进行标定和有效性检验。接下来是对所收集的数据进行处理,使之符合仿真模型的需要。数据处理通常包括计算均值和方差、确定分布形式和相互关系、进行回归分析和单位转移等。
第五步:建立数学模型。
建立数学模型是系统仿真中最关键的一步,也是最消耗时间的一项工作,通常采用自上而下循序渐进的方法进行。从前面提到的第一级流程图出发,将注意力放在连接输入和输出的处理过程上,建立第二级流程图,确定构成处理过程的主要模块及其相互关系、每一模块的输入和输出。然后,建立第三级流程图,对每一个模块的功能进行详细的描述。
第六步:参数估计。
模型中的参数有两种基本类型,即确定型和随机型。确定型参数可以是常数,也可以根据系统状态的不同,对应于一组常数中的某个值,或按某种回归规律在一定范围内连续变化的值。对于随机型参数,除给出它的均值和方差外,还要指出其分布形式。
第七步:模型评价。
这一步工作的首要任务是对所建模型的各种可能情况进行手工计算,以确定流程中是否出现中断或回路、检验数据输入的适应性和取值范围、检验最终和中间输出结果的合理性。另外,还需要做出一些判断:如是否有必要增加、删除或改变一些变量,是否有必要修正一些确定型和随机型参数,是否有必要对模型的结构进行修改等。如果仅仅需要修正某些变量或参数,则相对来说比较简单,而一旦模型本身存在问题,则需要返回前面的第三步或第五步,有时甚至需要返回第二步,以至有可能放弃系统仿真方法。(www.daowen.com)
第八步:编制程序。
一旦所建的模型被接受,便可着手编制计算机程序。编程工作量大小和难度取决于前面建立的流程图的质量。如果流程图考虑得很周到,模块设计得很详细,则编程仅是简单劳动。这一步工作中最重要的一点是对编程语言和计算机设备的选择。应考虑的因素有开发人员对各种编程包括通用高级语言和专用仿真语言的熟悉程度、计算机编辑器的能力、模型的特征与仿真语言的相容性、仿真程度的可扩展性等。如果所编制的程序将推广应用,如作为商业软件出售,则要考虑留出修改和扩充的余地,同时还要加入必要的注释。
编制程序的最后一项工作是最消耗时间的程序调试工作,程序调试应注意以下几点:
(1)分别调试各子程序,再将它们链接起来进行统调。
(2)先采用确定型数据而不是随机型数据。
(3)采用手工计算结果进行检验。
(4)临时增加一些中间输出。
(5)每一次尽量查出多一些的程序错误,以减少调试次数。
(6)切记程序代码只是反映程序流程图,而非实际问题。
第九步:模型确认。
模型确认包括三项内容,即模型校核、模型标定和有效性检验。
模型校核和程序调试相比,更加详尽也更加费力。其目的是确认程序代码所执行的正是流程图所规定的任务,此时的工作内容并不涉及拟研究的实际问题。
模型标定是以现场观测数据作为输入,检验输出结果是否与实际的观测结果相吻合,检验的重点为输入变量。例如,输入随机分布参数,检验输出的分布形式是否与观测结果一致,如果不一致,则需进行调整,直至与实际情况相吻合。需要指出的是,模型标定时只使用一部分观测数据的质量、计算模型的综合能力和所讨论问题的复杂程度。
有效性检验是将其余未使用的现场观测数据输入仿真程序,并将计算结果与相应的观测结果进行比较。这时,不能再对模型参数进行调整,输出结果与实际观测之间的差异表明了整个仿真程序在所检验条件下的误差。如果这一误差可以被接受,说明仿真程序是可用的,否则就要重新进行标定和有效性检验。
第十步:一旦仿真程序通过有效性检验,便可用来进行仿真实验,在此之前,实验设计是不可忽视的一个步骤。实验设计指的是制定一个详细的实验方案,通常包括如下内容:
(1)选择控制变量。
(2)确定每个控制变量的限制条件或边界条件。
(3)确定每个控制变量的步长。
(4)确定控制变量的层次结构,可考虑先改变初级控制变量,而保持次级控制变量为常数。
(5)如何通过仿真程序中的循环语句自动改变初级控制变量的取值。
(6)如何通过仿真程序中的搜索子程序自动确定最佳条件。
实验设计的难度取决于仿真程序的规模和灵活性,以及所讨论问题的复杂性和状态变化程度。在实验设计时对于随机变量要给予充分的注意,每个随机变量都要经历多次复杂实验。为此,一是应当确定重复实验的次数;二是每个随机变量都应有独立的随机数发生器产生自己的随机数序列;三是在选择随机数的初始值时要采用灵活多变的方法,以保证其随机性。
第十一步:仿真结果分析。
这一步骤包括三项工作内容,即仿真运行、结果分析和形成文档。
仿真运行过程应当有详细的记录,一般来说,仿真程序自身应当对输出结果加以辨识标记,以便于对其进行分析。
在仿真结果分析时,有可能发现仿真程序中的缺陷,这时应当对其进行修改完善。根据需要,可能还要借助辅助程序输出图形,对仿真结果进行统计检验或生成文本文件。
应当对文档工作给予充分重视。一个完善的仿真软件,应当具备齐全的文档,包括用户使用手册和技术文档。用户使用手册是为除开发者以外的其他使用人员准备的。技术文档应包括所有变量的定义、三级流程图、输出和输入的例题等,必要时还应包括程序清单。
以上介绍了开发交通系统仿真程序的一般步骤,当然,这里的步骤并不是一成不变的,根据开发者风格的不同、问题的复杂程度和软件应用范围的大小,可能会增加或减少一些步骤,要根据情况灵活掌握。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。