交叉口信号配时

合集下载

webster配时法

webster配时法

11.3韦伯斯特(Webster)配时法这一方法是以芾伯斯特(Webster〉对交叉口车辆延误的估讣为基础,通过对周期长度的优化讣算•确崔相应的一系列配时参数。

包括有关原理、步骤和算法在内的韦伯斯特法是交叉口信号配时讣算的经典方法。

11.3.1 Webster模型与最佳周期长度Webster模型是以车辆延误时间最小为目标来计算信号配时的一种方法,因此我核心内容是车辆延误和最佳周期时长的计算。

而这里的周期时长是建立在车辆延误的讣算基础之上,是目前交通信号控制中较为常用的讣算方式。

公式(10-20)针对的是一个相位内的延误il•算,则有《个信号相位的交叉口,总延误应为:r-I (11-1)其中:d—一第f相交叉口的单车延误:%--第,相的车辆到达率。

将(10-20)式代入(11-!)式,可得到交叉口的总延误与周期长度的关系式。

因此周期长度最优化问题可以归纳为:MinD =工C> —l-y通过对周期长度求偏导,结合等价代换和近似讣算•最终得出如下最佳周期il•算公式:J 1.5 厶+ 5C。

=1-K (11-2) 其中:Co-…最佳周期长度($):乙…-总损失时间($);Y •…交叉口交通流量比,貝中总损失时间为:E = M + 4R(]]-3)式中;/ -—相位信号的损失时间;信号的相位数:AR---周期中的全红时间。

交叉口交通流量比卩为^$相信号临界车道的交通流量比(片)之和,即:y = ty.'-I (1M)所谓临界车道,是指每一信号相位上,交通量最大的那条车道。

临界车道的交通流量比等于该车道的交通量和饱和流量之比。

实际上,由公式(11-4)确楚的信号周期长度Co经过现场试验调査后发现,通常都比用别的公式算岀的短一些,但仍比实际需要使用的周期要长。

因此,由实际情况出发,为保证延误最小,周期可在0.75°0—范围内变动。

值得注意的是,韦伯斯特模型受到交通量大小的影响,使用范困有限。

信号配时计算过程

信号配时计算过程

本次设计选择的路段上有四个交叉口,其中两个T字交叉口、两个十字交叉口。

四个交叉口均属于定时信号配时。

国际上对定时信号配时的方法较多,目前在我国常用的有美国的HCM法、英国的TRRL法(也称Webster法)、澳大利亚的ARRB法(也称阿克赛利克方法)、中国《城市道路设计规》推荐方法、停车线法、冲突点法共六种方法。

本次设计运用的是比较经典的英国的TRRL 法,即将F·韦伯斯特—B·柯布理论在信号配时方面的使用。

对单个交叉口的交通控制也称为“点控制”。

本节中使用TRRL法对各个交叉口的信号灯配时进行优化即是点控制中的主要容。

在对一个交叉口的信号灯配时进行优化时,主要的是根据调查所得的交通流量先确定该点的相位数和周期时长,然后确定各个相位的绿灯时间即绿信比。

柯布(B.M.Cobbe)和韦伯斯特(F.V.Webester)在1950年提出TRRL法。

该配时方法的核心思想是以车辆通过交叉口的延误时间最短作为优化目标,根据现实条件下的各种限制条件进行修正,从而确定最佳的信号配时方案。

其公式计算过程如下:1.最短信号周期C m交叉口的信号配时,应选用同一相位流量比中最大的进行计算,采用最短信号周期C m时,要求在一个周期到达交叉口的车辆恰好全部放完,即无停滞车辆,信号周期时间也无富余。

因此,C m恰好等于一个周期损失时间之和加上全部到达车辆以饱和流量通过交叉口所需的时间,即:1212nm m m m nV V VC L C C C S S S =++++(4-8)式中:L ——周期损失时间(s );——第i 个相位的最大流量比。

由(4-8)计算可得:111m niL L C Yy ==--∑ (4-9)式中:Y ——全部相位的最大流量比之和。

2.最佳信号周期C 0最佳周期时长C 0是信号控制交叉口上,能使通车效益指标最佳的交通信号周期时长。

若以延误作为交通效益指标,使用如下的Webster 定时信号交叉口延误公式:122(25)32(1)0.65()2(1)2(1)C x C d x x q x q λλλ+-=+--- (4-10)式中:d ——每辆车的平均延误; C ——周期长(s );λ——绿信比。

考虑人车交互的两相位信号控制交叉口的配时优化方法

考虑人车交互的两相位信号控制交叉口的配时优化方法

第20卷 第1期 中 国 水 运 Vol.20 No.1 2020年 1月 China Water Transport January 2020收稿日期:2019-08-27作者简介:王嘉文(1989-),男,博士,上海理工大学,研究方向为交通信息工程及控制。

基金项目:上海市青年科技英才扬帆计划(19YF1435100);上海理工大学人文社会科学基金项目(SK18YB13);上海理工大学自然科学培育基金项目(ZR19PY08)。

考虑人车交互的两相位信号控制交叉口的配时优化方法王嘉文,邹林志,杭佳宇(上海理工大学 管理学院 上海 200093)摘 要:为降低传统两相位信号交叉口中机动车和行人的延误并改善行人通行环境,研究了人车交互影响下交叉口通行效率,提出了考虑人车交互的传统两相位信号配时优化方案。

首先,分析了行人流量、机动车流量与人车交互行为的关系,建立了考虑避让率的人车交互行为模型。

其次,假设车辆到达服从泊松分布,分别建立交叉口机动车以及过街行人延误模型;以优化前后的交通参与者总延误为主要指标,提出考虑人车交互的传统两相位信号配时优化模型。

再次,基于信号控制交叉口的人车交互行为视频,标定了所提出模型的各项参数;通过数值仿真分析了不同行人与机动车流量条件下,优化后的交通参与者总延误的变化,并据此确定了设置条件中调整系数在不同交叉口工况下的取值。

最后,根据上海市实地调查数据建立了微观仿真模型,建立优化前后两个场景对比总延误、排队长度、机动车通过量等指标。

结果表明:人车交互行为对交叉口交通参与者总延误具有较大影响。

在机动车流量相同的条件下,行人流量越多优化后延误增量越小;车辆避让率越高,优化后延误增量越小。

关键词:信号控制交叉口;人车交互;信号配时优化;总信号损失时间中图分类号:U491 文献标识码:A 文章编号:1006-7973(2020)01-0080-03一、引言由于可持续发展、低碳环保理念愈发受到社会的重视,步行主义越来越受欢迎。

道路交叉口设计要点

道路交叉口设计要点

道路交叉口设计要点1. 简介道路交叉口设计是城市交通规划中至关重要的一部分。

合理的交叉口设计能够提高交通效率、缓解交通拥堵、降低事故风险。

本文将介绍道路交叉口设计的要点,以帮助交通规划师和设计师进行有效的交叉口规划和设计。

2. 设计目标道路交叉口设计的主要目标是保证交通流畅和安全。

具体可以包括以下几点:•优化交通流量,提高交通吞吐量;•确保行人和非机动车的安全通行;•降低事故风险,优化交通安全性。

3. 规划和布局3.1 道路布局合理的道路布局是交叉口设计的基础。

在规划和设计交叉口时,需要考虑以下几个方面:•道路等级和功能;•交通流量和道路容量;•周边道路网、街区结构和土地用途;•地形和环境条件。

3.2 路口类型根据道路等级和交通流量,交叉口可以分为不同类型。

常见的路口类型包括:•信号控制交叉口;•十字路口;•T型交叉口;•环形交叉口;•十字路口等。

选择合适的交叉口类型,可以根据实际情况考虑交通流量、人流量、土地利用等因素。

4. 交通流分析在设计交叉口时,需要进行交通流分析。

交通流分析可以通过以下几种方式进行:•车流量调查和分析,包括周日和高峰期的车流量统计;•行人流量调查和分析,包括道路人行横道上行人数量的观察;•自行车流量调查和分析,包括自行车道上自行车数量的观察;•其他交通方式的调查和分析,如公交车、出租车等。

交通流分析的结果将有助于确定适当的交通信号配时、道路宽度、车道数等交叉口设计要素。

5. 交通安全保障交通安全是道路交叉口设计的重要目标。

以下是一些常见的交通安全要点:•设计合适的视距要求,确保车辆和行人在交叉口有足够的视线;•设计合适的交通信号系统,确保交通流畅和安全;•设计合理的行人通行设施,如人行横道、人行天桥等;•设计合适的自行车通行设施,如自行车道、停车架等。

此外,还需要考虑其他的交通安全设施,如交通标志、路灯、反光镜等,以提高交叉口的可见性和安全性。

6. 交通信号配时对于信号控制交叉口,合理的信号配时是至关重要的。

第五章_单点交叉口的信号控制

第五章_单点交叉口的信号控制
② 加拿大对红闪的规定是,车辆在通过交叉口时, 必须先停车观察,在确保安全的前提下,方准通行, 类似于停车标志的意义。日本也有这样的规定。
9
7) 各国对信号灯的含义的特殊规定概 (5)日本
对自行车使用机动车信号灯时,有些特殊的规 定,如绿灯时,规定自行车只可直行和左转(相当 于我国的右转),而右转车(相当于我国的左转) 必须直行道对面街角处,待另向绿灯亮时再次直行 通过。
26
第三节 定时信号控制
一、定时信号控制的基本内容 二、评价信号控制交叉口的交通效益指标 三、定时信号配时的基本原理 四、定时信号配时的流程和基本方法 五、定时信号配时的改进方法
27
一、定时信号配时的基本内容
定时信号控制的基本特点: 1、固定的信号周期、固定的绿信比 2、全天可以是一个配时方案,或分段采用多个配时 方案 3、每个时段内使用固定的配时方案 4、配时方案根据交叉口历史数据确定 5、配时方案的切换可以是手动或自动进行 6、定时控制信号机安装简单、维护方便、成本低。
47

定 时 信 号 配 时 设 计 流 程
确定多段式信号配时的时段划分 确定配时时段内各进口道各流向的设计交通量
确定各进口道车道渠化方案
确定信号相位方案
估算各相各类车道的设计饱和流量
确定信号总损失时间 L
各类车道设计交通量
确定绿灯间隔时间 I
确定各相各类车道设计流量比 y
通车效率; 缺点使驾驶人想加速抢时间通过交叉口而容易发
生交通事故。
5
7) 各国对信号灯的含义的特殊规定概 (1)原苏联 ②右转箭头灯亮时,允许车辆就地掉头; ③箭头灯与红灯同时亮时,可按箭头方向通行, 但应给其他方向的车辆让路。
6
7) 各国对信号灯的含义的特殊规定概 (2)英国 在红灯末尾,有一小段红、黄灯同时亮的时间, 这意味着通知面对红黄灯的车辆,红灯即将结束,预 先做启动准备,可以节省起动损失时间。上海目前也 采用此方法。

城市道路交叉口信号配时模型

城市道路交叉口信号配时模型

2018年第5期 信息通信2018(总第 185 期)INFORMATION&COMMUNICATIONS(Sum.N o 185)城市道路交叉口信号配时模型常在斌,代雪珍,卫军超(西安交通工程学院,陕西西安710300)摘要:针对城市交通拥堵日益严重问题,为了提高城市道路通行能力,文章建立道路交叉口车辆延谈模型、最佳周期估计 模型。

通过建立信号灯动态模型获得最佳周期和有效绿灯时间,并以西安市小寨十字为例仿真实验对信号灯配时方案 进行优化,得到较佳配时方案,此配时方案可以有效减少车辆延误和排队长队,提高通行能力,缓解交通拥堵。

关键词:智能交通系统;配时模型;延误模型;最佳周期估值模型中图分类号:U495 文献标识码:A文章编号=1673-1131(2018)05-0078-03智能交通系统的关键核心是道路信号灯的智能控制问题,一般现有的信号灯控制方式为定时控制,使某些相位绿时浪 费,导致车辆延误严重,造成交通拥堵通行能力较低。

为此,本文建立车辆延误模型、最佳周期估计模型,根据实际交通流 的大小,以平均延误时间最小、停车次数最少、排队长度最短、通行能力最大为目标,得出最佳信号灯时间和有效绿灯时间。

在对一个交叉口的信号灯配时进行优化时,主要的是根据调 查所得的交通流量先确定该点的相位数和周期时长,然后确 定各个相位的绿灯时间。

1车辆延误模型误公式:2(1”)丄-〇6呤 (1)其中d表示每辆车的平均延误;C表示周期长(s);s饱和 流量;y表示流量比,^=导;u表示绿信比;x表示饱和度,g绿灯时间;q表示流量。

假设信号中有n个相位,取d的近似值,那么交叉口的总 延误为:/-I /-Iq.Cfy-u.f2(1-y,)(2)柯布(B.M.Cobbe)和韦伯斯特(F•V.Webester)在 1950年提出T R R L法。

该配时方法的核心思想是以车辆通过交 叉口的延误时间最短作为优化目标,根据现实条件下的各种 限制条件进行修正,从而确定最佳的信号配时方案。

现状平面十字交叉口信号配时的改进

现状平面十字交叉口信号配时的改进

2019年2月第2期城市道桥与防洪道路交通37 D01:10.16799/ki.csdqyfh.2019.02.009现状平面十字交叉口信号配时的改进张忠桥(无锡市政设计研究院有限公司,江苏无锡214072)摘要:分析了道路平面交叉口拥堵的诱因,重点介绍了十字交叉口信号周期内的通行情况,从以人为本的角度探讨了最小信号周期以及最优信号配时的求解方法,以期为从事交通控制和管理的工作者提供借鉴。

关键词:平面交叉口;最小信号周期;最优信号配时中图分类号:U418.7 文献标志码:B文章编号:1009-7716(2019)02-0037-031概述平面十字交叉口往往是道路通行的瓶颈以及交通事故的高发路段。

其诱因大致可分为以下几个方面:(1)交叉口道路线形和结构不合理;(2)交通设施设置不合理;(3)信号周期及信号配时不合理;(4)交通参与者未按照交通法规通行;(5)其他原因。

对于一个十字交叉口,在诱因(1)、(2)、(4)、(5)都已经得到解决或者改善的情况下,依然出现拥堵以及交通事故,那么就要考虑是否是诱因(3)出现了问题。

本文对诱因(3)进行了专项研究。

2十字交叉口2.1交通参与者的代号为了直观有效地反映十字交叉口的通行情况,有必要对十字交叉口各个相位绘图表达。

图中的代号解释如下:东进口、西进口、北进口、南进口,分别用字母E、W、N、S代表;机动车、非机动车、行人,分别用字母J、F、R代表;左转、直行、右转,分别用字母Z、Q、Y代表。

例如,东进口机动车道3个方向的交通需求,即左转、直行、右转,分别代号为E-J-Z(东-机-左转)、E-J-Q(东-机-直行)、E-J-Y(东-机-收稿日期:2018-07-20作者简介:张忠桥(1978-),男,高级工程师、注册咨询工程师,从事市政交通工程咨询、道路工程设计、市政管道工程设计、交通组织设计等工作。

右转);东进口非机动车道3个方向的交通需求,即左转、直行、右转,分别代号为E-F-Z(东-非机-左转)、E-F-Q(东-非机-直行)、E-F-Y(东-非机-右转);东进口行人3个方向的交通需求,即左转、直行、右转,分别代号为E-R-Z(东-人-左转)、E-R-Q(东-人-直行)、E-R-Y(东-人-右转)。

“上海方法”信号配时设计3要点

“上海方法”信号配时设计3要点

“上海方法”信号配时设计到目前为止,定时信号的配时方法在国际上主要有英国的TRRL 法(也称Webster 法)、澳大利亚的ARRB 法以及美国的HCM 法等。

在我国有 “停车线法”和“冲突点法”等方法。

随着研究的不断深入,定时信号的配时方法也在进一步的改进之中。

这里,在综合研究英国、澳大利亚和美国等国家以及我国现有的配时方法的基础上,结合我国城市交通的特点,讨论定时信号配时的基本方法。

1.定时信号配时设计流程单个交叉口定时交通信号配时设计,要按照不同的流量时段来划分信号配时的时段,在同一时段内确定相应的配时方案。

改建、治理交叉口,具有各流向设计交通量数据时,信号配时设计的流程如图1所示。

2.确定信号相位基本方案1)对于新建交叉口,在缺乏交通量数据的情况下,十字交叉口,建议先按表1所列进口车道数与渠化方案选取初步试用方案;T 形交叉口,建议先用三相位信号;然后根据通车后实际交通各流向的流量调整渠化及信号相位方案。

2)交通信号相位设定在设定交通信号相位时,应遵循以下原则:(1)信号相位必须同交叉口进口道车道渠化(即车道功能划分)方案同时设定; (2)信号相位对应于左右转弯交通量及其专用车道的布置,常用基本方案示于图2; (3)有左转专用车道时,根据左转流向设计交通量计算的左转车每周期平均到达3辆时,宜用左转专用相位。

(4)同一相位各相关进口道左转车每周期平均到达量相近时,宜用双向左转专用相位,否则宜用单向左转专用相位。

3.确定设计交通量确定设计交通量时,应按交叉口每天交通量的时变规律,分为早高峰时段、下午高峰时段、晚高峰时段、早、晚低峰时段、中午低峰时段及一般平峰时段等各时段,然后确定相应的设计交通量。

已选定时段的设计交通量,须按该时段内交叉口各进口道不同流向分别确定,其计算公式如下:mn mn Q q d 154⨯= (1)式中:mn d q —— 配时时段中,进口道m 、流向n 的设计交通量(pcu/h) ;mn Q 15——配时时段中,进口道m 、流向n 的高峰小时中最高15分钟的流率(pcu/15min)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要道路交叉口是指两条或两条以上道路的相交处.车辆、行人汇集、转向和疏散的必经之地,为交通的咽喉.因此,正确设计道路交叉口,合理组织、管理交叉口交通,是提高道路通行能力和保障交通安全的重要方面.此次交叉口信号灯控制配时的调查地点是西南路和五一路交叉口.该交叉口地处市区西南部,属于平面十字型交叉口.西南路方向路段为双向五车道;五一路方向由东向西黄线以北是五车道,黄线以南是五车道,五一路由西向东黄线以北是两车道,黄线以南是三车道.周围分布饭店、居民住宅区、净水厂等,是一个非常重要的交叉口,并且西南路是主干道.本组通过实际观测的方法测得了道路交叉口的交通流量等信息.西南路车流量比五一路车流量大很多,在五一路方向均有左转车流,西南路只在南进口存在左转车流,另外在五一路西路口和西南路南路口均有直行加右转相位.且西南路南进口的左转仅限公交且车流量极少.到目前为止,定时信号的配时方法在国际上主要有英国的WEBSTER法,澳大利亚ARRB法与美国HCM法等.我们在《交通管理与控制》课本中已经学会了webster法和HCM法,我国有停车线法和冲突点法等方法.随着研究不断深入,定时信号的配时方法也在进一步的改进.本设计采用的方法以英国的WEBSTER法为主.本次设计本小组分工合作,共采集了车道宽、交通流量、车头时距、信号灯信号显示与周期等数据.并且对数据作出了运算整理.摒弃了有问题的数据,保证使用严谨的数据进行运算.关键字道路交叉口,信号配时,WEBSTER法,相位,课程设计.目录第一章现状交通调查1.1西南路与五一路交叉口现状概况 (1)1.2交通流量调整 (2)1.3交叉口几何尺寸调查 (2)第二章信号相位分析2.1实地观测 (3)2.2理论依据 (5)2.3具体算法步骤 (5)2.4必要性分析结果 (6)第三章制定配时方案3.1信号配时方案原理 (7)3.2程序计算结果 (8)第四章延误分析与服务水平测定4.1延误估算方法 (10)4.2服务水平 (10)第五章结果分析5.1结果对比 (12)第一章现状交通调查1.1 西南路/五一路交叉口现状概况道路交叉口是指两条或两条以上道路的相交处.车辆、行人汇集、转向和疏散的必经之地,为交通的咽喉.因此,正确设计道路交叉口,合理组织、管理交叉口交通,是提高道路通行能力和保障交通安全的重要方面.此次交叉口信号灯控制配时的调查地点是西南路和五一路交叉口.该交叉口地处市区西南部,属于平面十字型交叉口.西南路方向路段为双向五车道;五一路由东向西方向为双向五车道,包括自行车道,五一路由西向东黄线以北是两辆车道、黄线以南是三车道,周围分布饭店、居民住宅区、净水厂和大连沙河口区的部分政府部门等,是一个非常重要的交叉口,并且西南路是主干道.根据实地观察测量和分析讨论,本组对整个交叉口形状、车道划分与交通流运行轨迹进行了绘制,如下1.2交通流量调查本组通过实际观测的方法测得了道路交叉口的交通流量等信息.具体观测时间为.具体测量方法为,对各车道分配人员进行定时计数以获得交通流量,对直行和左转的车道在红灯结束时按车计时获得车头时距,对各相位红绿灯分别计时等.交通流量通过在交叉口的高峰时间观测2小时获得,整理后的高峰小时流量见下表.1.3 交叉口几何尺寸调查交叉口几何尺寸通过实际测量,整理后的信息见下表2信号相位分析2.1实地观测由本次设计实地观测的西南路/五一路交叉口情况可知:西南路车流量比五一路车流量大很多,且只有西南路南进口和五一西进口存在左转车流.且西南路南进口的左转仅限公交且车流量极少.而我们想知道是否有必要设置专有的左转相位,就必须求出各相位的左转通行能力与实测值进行比较.2.2理论依据可插车间隙理论虽然是用于计算无信号机的平面交叉口通行能力,而无信号交叉口遵循的是优先规则控制,即其通行顺序依次为:主要道路直行流向、主要道路左转流向、次要道路直行流向、次要道路左转流向.两相位交叉口车流运行特征跟交叉口优先规则控制有一些相似之处,因此可以根据可穿插间隙理论来分析其左转车道的通行能力.2.3具体算法步骤根据可插入间隙理论,假设主要道路车流按泊松分布到达,可建立计算左转通行能力Q ’max 的公式如下:)1/(maxqh q e Qe Q ---='τ式中:Q ’max ---次要道路可通过的最大交通量Q---主要道路交通量q--- Q/3600t c ---次要道路可以穿过主要道路车流的临界间隙〔s 〕 h---次要道路车辆连续通过时的车头时距〔s 〕2.4必要性分析结果由计算可以得出:可见每个相位都能满足其冲突左转交通量.故没必要增设一个专用左转相位.所以我们决定对西南路/五一路交叉口采用四相位配时方案是合理的.3制定配时方案到目前为止,定时信号的配时方法在国际上主要有英国的WEBSTER法,澳大利亚ARRB法与美国HCM法等.我国有停车线法和冲突点法等方法.随着研究不断深入,定时信号的配时方法也在进一步的改进.本设计采用的方法以英国的WEBSTER法为主.其信号配时设计流程图和信号相位基本方案如下:3.1信号配时方案原理①首先计算每车道的饱和流量S,使用下式进行计算:S=3600/hh——饱和车头时距②然后计算流量比.公式如下.y i=q i/s i③计算流量比的总和,公式如下式:y=Σmax[y j,y j……]= Σmax[〔q d/s d〕j, 〔q d/s d〕j……]④启动损失时间L=Σ<l+I-A>⑤信号周期时长的计算,公式如下所示:C=<1.5l+5>/<1-y>C0—周期时长,Y—流量比总和,L—信号总损失时间,⑥各个相位的有效绿灯时间和显示绿灯时间,计算式所示:ge j=Ge*max[y i,y i……]/YGe—总有效绿灯时间,就是C0减去L.计算各个相位的显示绿灯时间,公式如下所示:g j= ge i - a j + l j3.2程序计算结果表4 各车道交通流量周期为203第一相位绿灯时间63s第二相位绿灯时间71s第三相位绿灯时间45s第四相位绿灯时间12s第一相位绿信比0.375第二相位绿信比0.1875第三相位绿信比0.74375第四相位绿信比0.05625图4 输入的数据和输出结果4延误分析与服务水平测定4.1延误估算方法延误是一个影响因素十分复杂的指标.1.设计交叉口时各车道延误用下式估算:d = d1+d2d1=0.5C<1-λ>2/<1-min[1,x] λ>d2=900T[<x-1>+√[<x-1>2+8ex/<CAP*T>] 式中:C—周期时长〔s〕λ—所计算车道的绿信比;x—所计算车道的饱和度;CAP—所计算车道的通行能力;T—分析时段的持续时长〔h〕,取0.25h;e—定时信号取0.5;2.各进口道的平均信控延误按该进口道中的各车道延误的加权平均数估算:d1=Σd i q i/Σq i式中:dA—进口道A的平均信控延误〔s/pcu〕;di—进口道A中第i车道的平均信控延误〔s/pcu〕;qi—进口道A中第i车道的小时交通量换算为其中高峰15min 的交通流量〔辆/15min〕;3.整个交叉口的平均信控延误按交叉口各进口道延误的加权平均数估计:d A=Σd A q A/Σq A式中:d1—交叉口每车的平均信控延误〔s/pcu〕;qa—进口道A的高峰15min交通流率〔辆/15min〕;4.2服务水平表4 延误服务水平表5结果分析5.1 结果对比WEBSTER法的配时仿真实验结果和实测值的比较如下表:由上表可以看出,实际采用的配时方案相关参数与我们通过调查得到的优化配时方案得到的配时方案相关参数都大致接近,说明实际情况与理论分析基本符合,说明配时方案可行.参考文献[1]吴兵《交通管理与控制》第四版人民交通 2009.1[2]徐吉谦陈学武《交通工程总论》第三版人民交通2008.6[3]全永燊《城市交通控制》人民交通 1989附录本次课程设计是我们小组几名同学共同完成的,起初是调查交叉口的交通流量,早高峰同学们要起的很早的,之后是两个人一小组测量车速和红绿灯时间并且在此基础上算出绿信比和信号周期.之后以班级为单位分上下午在机房进行信号配时,用C语言或其它形式将自己的数据编程序,算出所需要的数据.附录一:交通流量调查表其他数据调查表附录二:#include "stdio.h"#include "stdlib.h"#include "math.h"floatS[18],l[5],Ge[5],maxA,maxB,maxC,maxD,D[5],g[5],max, A;float di,dk=0,dj=0,lkk;float da[5],cap[18];float P[18],Ql[18],Fa[18];float Tu[18],Qb[18],Ku[18],Ju[17],min;floatdA[5],dab[5],da1[17],T=0.25,x[18],Ds[5],Tu[18],Dd[5],Hu[18],e,d[18],Co,D[5],Q[18];floatQb[18],CAPP[18],v,o,Fs[18],y[18],Du[18],j[5],Ql[18],Qb[18],d[18],d1[18],d2[18],d3[18];int i;float fun1 <> /*绿灯间隔时间计算公式*/{ float z,u,t,h,I;printf<"请输入停止线到冲突点的距离z<m>:">;scanf<"%f",&z>;printf<"请输入车辆在进口道上的行驶车速u<m/s>:">;scanf<"%f",&u>;printf<"请输入车辆制动时间t<s>:">;scanf<"%f",&t>;h=z/u; /*此处需插入一个界面*/I=h+t;printf<"计算得绿灯间隔时间I为%f s",I>;if<I<3>printf<"黄灯时间A=3s">;elseprintf<"<其中3s配以黄灯,其余时间配以红灯>\n">;return <I>;}float fun2 <> /*最大流量比计算公式*/{ int i,c,e;printf<"请输入第一相位各车道的交通流量〔1-3〕:">;for<i=1;i<4;i++>scanf<"%f",&Q[i]>;for<c=1;c<4;c++>y[c]=Q[c]/S[c];/*S[c]为各车道对应的饱和流量*/maxA=y[1]; /*第一相位最大流量比*/for<e=1;e<=3;e++>if<y[e]<=maxA>maxA=y[e];printf<"第一相位最大流量比为%f\n",maxA>;printf<"请输入第二相位各车道的交通流量〔4-8〕:">;for<i=4;i<9;i++>scanf<"%f",&Q[i]>;for<c=4;c<9;c++>y[c]=Q[c]/S[c];/*S[c]为各车道对应的饱和流量*/maxB=y[4]; /*第二相位最大流量比*/for<e=4;e<=9;e++>if<y[e]>=maxB>maxB=y[e];printf<"第二相位最大流量比为%f\n",maxB>;printf<"请输入第三相位各车道的交通流量〔9-15〕:">;for<i=9;i<16;i++>scanf<"%f",&Q[i]>;for<c=9;c<16;c++>y[c]=Q[c]/S[c];/*S[c]为各车道对应的饱和流量*/maxC=y[9]; /*第二相位最大流量比*/for<e=9;e<=15;e++>if<y[e]>=maxC>maxC=y[e];printf<"第三相位最大流量比为%f\n:",maxC>;printf<"请输入第四相位各车道的交通流量〔16-17〕:">;for<i=16;i<18;i++>scanf<"%f",&Q[i]>,y[c]=Q[c]/S[c];/*S[c]为各车道对应的饱和流量*/maxD=y[16]; /*第二相位最大流量比*/for<e=16;e<=17;e++>if<y[e]>=maxD>maxD=y[e];printf<"第四相位最大流量比为%f\n:",maxD>;max=maxA+maxB+maxC+maxD;printf<"此交叉口的流量比为%f:",max>;return <max>;}fun31<>{ int i;for<i=1;i<5;i++>g[i]=Ge[i]-A+l[i],printf<"第%d相位的显示绿灯时间为%f s\n",i,g[i]>;}fun32<>{int i;for<i=1;i<3;i++>Ge[i]=g[i]+A-l[i],printf<"第%d相位的有效绿灯时间为%f s\n",i,Ge[i]>;}int fun15<>{for<i=1;i<18;i++>{printf<"请输入第%d车道的分析期初初始积余车辆<辆>:",i>;scanf<"%f",&Qb[i]>;printf<"请输入第%d车道的分析期离开车辆<辆>:",i>;scanf<"%f",&Ql[i]>;}}fun3<>{for<i=1;i<18;i++>{ if<i<4>CAPP[1]+=S[i]*D[1];else if<i>=4&&i<9>CAPP[2]+=S[i]*D[2];else if<i>=9&&i<16>CAPP[3]+=S[i]*D[3];elseCAPP[4]+=S[i]*D[4];}}fun4<>{for<i=1;i<5;i++>Ds[i]=<float>1.5*Co*<1-D[i]>;}fun5<> /*不饱和延误的计算公式*/{ float j[5],min,Hu[18];for<i=1;i<5;i++>j[i]=0.5*Co*<1-D[i]>*<1-D[i]>;for<i=1;i<18;i++>{ if<i<4>cap[i]=S[i]*D[1];else if<i>=4&&i<9>cap[i]=S[i]*D[2];else if<i>=9&&i<16>cap[i]=S[i]*D[3];elsecap[i]=S[i]*D[4];}for<i=1;i<18;i++>x[i]=<float>Q[i]/cap[i];for<i=1;i<18;i++>{ min=x[i];if<min>1>min=1;lkk=<float>1-min;if<i<4>Hu[i]=<float>1-min*D[1];else if<i>=4&&i<9>Hu[i]=<float>1-min*D[2];else if<i>=9&&i<16>Hu[i]=<float>1-min*D[3];elseHu[i]=<float>1-min*D[4];}for<i=1;i<18;i++>{ if<i<4>Du[i]=j[1]/Hu[i];else if<i>=4&&i<9>Du[i]=j[2]/Hu[i];else if<i>=9&&i<16>Du[i]=j[3]/Hu[i];elseDu[i]=j[4]/Hu[i];}}fun6<> /*在T中积余车辆的持续时间*/{min=T;for<i=1;i<18;i++>{ { if<i<4>Ku[i]=cap[i]*lkk,Ju[i]=Qb[i]/Ku[i];else if<i>=4&&i<9>Ku[i]=cap[i]*lkk,Ju[i]=Qb[i]/Ku[i];else if<i>=9&&i<16>Ku[i]=cap[i]*lkk,Ju[i]=Qb[i]/Ku[i];elseKu[i]=cap[i]*lkk,Ju[i]=Qb[i]/Ku[i];}{ if<min<Ju[i]>Tu[i]=min;elseTu[i]=Ju[i];}}}fun7<> /*绿灯期车流到达率校正系数*/{for<i=1;i<18;i++>P[i]=<Ql[i]-Qb[i]>/Ql[i];for<i=1;i<18;i++>{ if<i<4>Fa[i]=<1-P[i]>/<<float>1-D[1]>;else if<i>=4&&i<9>Fa[i]=<1-P[i]>/<1-D[2]>;else if<i>=9&&i<16>Fa[i]=<1-P[i]>/<1-D[1]>;elseFa[i]=<1-P[i]>/<1-D[2]>;}}fun8<> /*均匀延误计算公式*/ { float ar[18],an[18],am[18],al[18],az[18];for<i=1;i<18;i++>if<i<4>ar[i]=Ds[1]*Tu[i]/T,an[i]=Fs[i]*Du[i]*<T-Tu[i]>,d1[i]=ar[i]+an[i]/T;else if<"i>=4&&i<9">d1[i]=<Ds[2]*Tu[i]/T>+<Fs[i]*Du[i]*<T-Tu[i]>/T> ;else if<"i>=9&&i<16">d1[i]=<Ds[3]*Tu[i]/T>+<Fs[i]*Du[i]*<T-Tu[i]>/T> ;elsed1[i]=<Ds[4]*Tu[i]/T>+<Fs[i]*Du[i]*<T-Tu[i]>/T> ;}float fun13< float x>{if <x>=0.000000&&x<=0.500000>e=0.13;else if<x>0.500000&&x<=0.600000>e=0.2;else if<x>0.600000&&x<=0.700000>e=0.28;else if<x>0.700000&&x<=0.800000>e=0.35;else if<x>0.800000&&x<=1.000000>e=0.43;else if<x>1>e=0.5;elseprintf<"输入错误\n">;return <e>;}fun9<> /*随机附加延误计算公式*/{ float c[18],ad,ac,ae,ar;for<i=1;i<18;i++>{ e=fun13<x[i]>;ac=pow<<x[i]-1>,2>;ae=<float>8*e*x[i];if<i<4>ar=cap[i]*T;else if<i>=4&&i<9>ar=cap[i]*T;else if<i>=9&&i<16>ar=cap[i]*T;elsear=cap[i]*T;c[i]=ac+ae/ar;ad=sqrt<c[i]>;d2[i]=<float>900*T*<<x[i]-1>+ad>;}}fun10<> /*初始排队延误计算公式*/{ float min,ji[18],jk[18],jh[18];for<i=1;i<18;i++>{ min=x[i];{if<min>1>min=1;}if<Tu[i]==T>{ ji[i]=<float>3600*Qb[i];jk[i]=<float>1800*T*<1-min>;if<i<4>d3[i]=ji[i]/cap[i]-jk[i];else if<i>=4&&i<9>d3[i]=ji[i]/cap[i]-jk[i];else if<i>=9&&i<16>d3[i]=ji[i]/cap[i]-jk[i];elsed3[i]=ji[i]/cap[i]-jk[i];}else{ if<i<4>d3[i]=<float>1800*Qb[i]*Tu[i]/<T*cap[i]>;else if<i>=4&&i<9>d3[i]=<float>1800*Qb[i]*Tu[i]/<T*cap[i]>;else if<i>=9&&i<16>d3[i]=<float>1800*Qb[i]*Tu[i]/<T*cap[i]>;elsed3[i]=<float>1800*Qb[i]*Tu[i]/<T*cap[i]>;}}}fun16<>{ for<i=1;i<18;i++>d[i]=d1[i]+d2[i]+d3[i];}fun17<>{ for<i=1;i<18;i++>d[i]=Du[i]+d2[i];}fun11<> /*各进口道平均信控延误计算公式*/{int k;for<i=1;i<4;i++>dab[1]+=<d[i]*<Q[i]/4>>,da1[1]+=<Q[i]/4>;dA[1]=<float>dab[1]/da1[1];for<i=4;i<9;i++>dab[2]+=<d[i]*<Q[i]/4>>,da1[2]+=<Q[i]/4>;dA[2]=dab[2]/da1[2];for<i=9;i<12;i++>dab[3]+=<d[i]*<Q[i]/4>>,da1[3]+=<Q[i]/4>;dA[3]=dab[3]/da1[3];for<i=12;i<16;i++>dab[4]+=<d[i]*<Q[i]/4>>,da1[4]+=<Q[i]/4>;dA[4]=dab[4]/da1[4];i=16;dab[3]+=<d[i]*<Q[i]/4>>,da1[3]+=<Q[i]/4>;dA[3]=dab[3]/da1[3];i=17;dab[4]+=<d[i]*<Q[i]/4>>,da1[4]+=<Q[i]/4>;dA[4]=dab[4]/da1[4];}fun14<float dl>{if <dl>=0&&dl<=10>printf<"服务水平为A级\n">; else if<dl>10&&dl<=20>printf<"服务水平为B级\n">; else if<dl>20&&dl<=35>printf<"服务水平为C级\n">;else if<dl>35&&dl<=55>printf<"服务水平为D级\n">;else if<dl>55&&dl<=80>printf<"服务水平为E级\n">;else if<dl>80>printf<"服务水平为F级\n">;elseprintf<"error">;}fun12<> /*整个交叉口*/ { for<i=1;i<5;i++>{ dk+=da1[i];dj+=<float><dA[i]*dab[i]>;}di=<float>dj/dk;printf<"此交叉口的信控延误为%f\n",di>;fun14<di>;}void main<>{int L,i,I,k,n;float a,b,Y,ge,h[17];printf<"请输入黄灯时间A<一般取值3s>:">;scanf<"%f",&A>; /*此处需插入一个界面*/printf<"请输入一个周期内的相位数k:">;scanf<"%d",&k>;for<i=1;i<4;i++>printf<"请输入第一相位第%d车道的车头时距:",i>,scanf<"%f",h+i>,S[i]=3600/h[i];for<i=4;i<9;i++>printf<"请输入第二相位第%d车道的车头时距:",i>,scanf<"%f",h+i>,S[i]=3600/h[i];for<i=9;i<16;i++>printf<"请输入第三相位第%d车道的车头时距:",i>,scanf<"%f",h+i>,S[i]=3600/h[i];for<i=16;i<18;i++>printf<"请输入第四相位第%d车道的车头时距:",i>,scanf<"%f",h+i>,S[i]=3600/h[i];I=fun1<>;Y=fun2<>;for<i=1;i<5;i++>printf<"\n请输入第%d相位的启动损失时间l<无实测数据时可取3s>:",i>,scanf<"%f",&l[i]>;for<i=1,L=0;i<=k;i++>L+=<l[i]>+I-A; /*I 为绿灯间隔时间*/a=1.5*L+5;b=1-Y;Co=a/b;printf<"计算得周期时长Co为%d s\n",Co>;ge=Co-L;printf<"总有效绿灯时间为%d\n",ge>;Y=maxA+maxB+maxC+maxD;a=ge*<maxA>;b=ge*maxB;v=ge*maxC;o=ge*<maxD>;Ge[1]=a/Y;Ge[2]=b/Y;Ge[3]=v/Y;Ge[4]=o/Y;for<n=1;n<5;n++>D[n]=Ge[n]/Co,printf<"第%d相位的绿信比为%f\n",n,D[n]>;for<i=1;i<5;i++>printf<"第%d相位有效绿灯时间为%f\n",i,Ge[i]>;fun31<>;fun15<>;fun3<>;fun4<>;fun5<>;fun6<>;fun7<>;fun8<>;fun9<>;fun10<>;fun17<>;fun11<>;fun12<>;}附录二:#include "stdio.h"#include "stdlib.h"#include "math.h"floatS[18],l[5],Ge[5],maxA,maxB,maxC,maxD,D[5],g[5],max,A;float di,dk,dj,lkk;float da[5],cap[18];float P[18],Ql[18],Fa[18];float Tu[18],Qb[18],Ku[18],Ju[17],min;floatdA[5],dab[5],da1[17],T=0.25,x[18],Ds[5],Tu[18],Dd[5],Hu[18],e,d[18],Co,D[5],Q[18];floatQb[18],CAPP[18],v,o,Fs[18],y[18],Du[18],j[5],Ql[18],Qb[18],d[18],d1[18],d2[18],d3[18];int i;float fun1 <> /*绿灯间隔时间计算公式*/{ float z,u,t,h,I;printf<"请输入停止线到冲突点的距离z<m>:">;scanf<"%f",&z>;printf<"请输入车辆在进口道上的行驶车速u<m/s>:">;scanf<"%f",&u>;printf<"请输入车辆制动时间t<s>:">;scanf<"%f",&t>;h=z/u; /*此处需插入一个界面*/I=h+t;printf<"计算得绿灯间隔时间I为%f s",I>;if<I<3>printf<"黄灯时间A=3s">;elseprintf<"<其中3s配以黄灯,其余时间配以红灯>\n">;return <I>;}float fun2 <> /*最大流量比计算公式*/{ int i,c,e;printf<"请输入第一相位各车道的交通流量〔1-3〕:">;for<i=1;i<4;i++>scanf<"%f",&Q[i]>;for<c=1;c<4;c++>y[c]=Q[c]/S[c];/*S[c]为各车道对应的饱和流量*/maxA=y[1]; /*第一相位最大流量比*/for<e=1;e<=3;e++>if<y[e]<=maxA>maxA=y[e];printf<"第一相位最大流量比为%f\n",maxA>;printf<"请输入第二相位各车道的交通流量〔4-8〕:">;for<i=4;i<9;i++>scanf<"%f",&Q[i]>;for<c=4;c<9;c++>y[c]=Q[c]/S[c];/*S[c]为各车道对应的饱和流量*/maxB=y[4]; /*第二相位最大流量比*/for<e=4;e<=9;e++>if<y[e]>=maxB>maxB=y[e];printf<"第二相位最大流量比为%f\n",maxB>;printf<"请输入第三相位各车道的交通流量〔9-15〕:">;for<i=9;i<16;i++>scanf<"%f",&Q[i]>;for<c=9;c<16;c++>y[c]=Q[c]/S[c];/*S[c]为各车道对应的饱和流量*/maxC=y[9]; /*第二相位最大流量比*/for<e=9;e<=15;e++>if<y[e]>=maxC>maxC=y[e];printf<"第三相位最大流量比为%f\n:",maxC>;printf<"请输入第四相位各车道的交通流量〔16-17〕:">;for<i=16;i<18;i++>scanf<"%f",&Q[i]>,y[c]=Q[c]/S[c];/*S[c]为各车道对应的饱和流量*/maxD=y[16]; /*第二相位最大流量比*/for<e=16;e<=17;e++>if<y[e]>=maxD>maxD=y[e];printf<"第四相位最大流量比为%f\n:",maxD>;max=maxA+maxB+maxC+maxD;printf<"此交叉口的流量比为%f:",max>;return <max>;}fun31<>{ int i;for<i=1;i<5;i++>g[i]=Ge[i]-A+l[i],printf<"第%d相位的显示绿灯时间为%f s\n",i,g[i]>;}fun32<>{int i;for<i=1;i<5;i++>Ge[i]=g[i]+A-l[i],printf<"第%d相位的有效绿灯时间为%f s\n",i,Ge[i]>;}int fun15<>{for<i=1;i<18;i++>{printf<"请输入第%d车道的分析期初初始积余车辆<辆>:",i>;scanf<"%f",&Qb[i]>;printf<"请输入第%d车道的分析期离开车辆<辆>:",i>;scanf<"%f",&Ql[i]>;}}fun3<>{for<i=1;i<18;i++>{ if<i<4>CAPP[1]+=S[i]*D[1];else if<i>=4&&i<9>CAPP[2]+=S[i]*D[2];else if<i>=9&&i<16>CAPP[3]+=S[i]*D[3];elseCAPP[4]+=S[i]*D[4];}}fun4<>{for<i=1;i<5;i++>Ds[i]=<float>1.5*Co*<1-D[i]>;}fun5<> /*不饱和延误的计算公式*/{ float j[5],min,Hu[18];for<i=1;i<5;i++>j[i]=0.5*Co*<1-D[i]>*<1-D[i]>;for<i=1;i<18;i++>{ if<i<4>cap[i]=S[i]*D[1];else if<i>=4&&i<9>cap[i]=S[i]*D[2];else if<i>=9&&i<16>cap[i]=S[i]*D[3];elsecap[i]=S[i]*D[4];}for<i=1;i<18;i++>x[i]=<float>Q[i]/cap[i];for<i=1;i<18;i++>{ min=x[i];if<min>1>min=1;lkk=<float>1-min;if<i<4>Hu[i]=<float>1-min*D[1];else if<i>=4&&i<9>Hu[i]=<float>1-min*D[2];else if<i>=9&&i<16>Hu[i]=<float>1-min*D[3];elseHu[i]=<float>1-min*D[4];}for<i=1;i<18;i++>{ if<i<4>Du[i]=j[1]/Hu[i];else if<i>=4&&i<9>Du[i]=j[2]/Hu[i];else if<i>=9&&i<16>Du[i]=j[3]/Hu[i];elseDu[i]=j[4]/Hu[i];}}fun6<> /*在T中积余车辆的持续时间*/{min=T;for<i=1;i<18;i++>{ { if<i<4>Ku[i]=cap[i]*lkk,Ju[i]=Qb[i]/Ku[i];else if<i>=4&&i<9>Ku[i]=cap[i]*lkk,Ju[i]=Qb[i]/Ku[i];else if<i>=9&&i<16>Ku[i]=cap[i]*lkk,Ju[i]=Qb[i]/Ku[i];elseKu[i]=cap[i]*lkk,Ju[i]=Qb[i]/Ku[i];}{ if<min<Ju[i]>Tu[i]=min;elseTu[i]=Ju[i];}}}fun7<> /*绿灯期车流到达率校正系数*/{for<i=1;i<18;i++>P[i]=<Ql[i]-Qb[i]>/Ql[i];for<i=1;i<18;i++>{ if<i<4>Fa[i]=<1-P[i]>/<<float>1-D[1]>;else if<i>=4&&i<9>Fa[i]=<1-P[i]>/<1-D[2]>;else if<i>=9&&i<16>Fa[i]=<1-P[i]>/<1-D[1]>;elseFa[i]=<1-P[i]>/<1-D[2]>;}}fun8<> /*均匀延误计算公式*/ { float ar[18],an[18],am[18],al[18],az[18];for<i=1;i<18;i++>if<i<4>ar[i]=Ds[1]*Tu[i]/T,an[i]=Fs[i]*Du[i]*<T-Tu[i]>,d1[i]=ar[i]+an[i]/T;else if<"i>=4&&i<9">d1[i]=<Ds[2]*Tu[i]/T>+<Fs[i]*Du[i]*<T-Tu[i]>/T> ;else if<"i>=9&&i<16">d1[i]=<Ds[3]*Tu[i]/T>+<Fs[i]*Du[i]*<T-Tu[i]>/T> ;elsed1[i]=<Ds[4]*Tu[i]/T>+<Fs[i]*Du[i]*<T-Tu[i]>/T> ;}float fun13< float x>{if <x>=0.000000&&x<=0.500000>e=0.13;else if<x>0.500000&&x<=0.600000>e=0.2;else if<x>0.600000&&x<=0.700000>e=0.28;else if<x>0.700000&&x<=0.800000>e=0.35;else if<x>0.800000&&x<=1.000000>e=0.43;else if<x>1>e=0.5;elseprintf<"输入错误\n">;return <e>;}fun9<> /*随机附加延误计算公式*/{ float c[18],ad,ac,ae,ar;for<i=1;i<18;i++>{ e=fun13<x[i]>;ac=pow<<x[i]-1>,2>;ae=<float>8*e*x[i];if<i<4>ar=cap[i]*T;else if<i>=4&&i<9>ar=cap[i]*T;else if<i>=9&&i<16>ar=cap[i]*T;elsear=cap[i]*T;c[i]=ac+ae/ar;ad=sqrt<c[i]>;d2[i]=<float>900*T*<<x[i]-1>+ad>;}}fun10<> /*初始排队延误计算公式*/{ float min,ji[18],jk[18],jh[18];for<i=1;i<18;i++>{ min=x[i];{if<min>1>min=1;}if<Tu[i]==T>{ ji[i]=<float>3600*Qb[i];jk[i]=<float>1800*T*<1-min>;if<i<4>d3[i]=ji[i]/cap[i]-jk[i];else if<i>=4&&i<9>d3[i]=ji[i]/cap[i]-jk[i];else if<i>=9&&i<16>d3[i]=ji[i]/cap[i]-jk[i];elsed3[i]=ji[i]/cap[i]-jk[i];}else{ if<i<4>d3[i]=<float>1800*Qb[i]*Tu[i]/<T*cap[i]>;else if<i>=4&&i<9>d3[i]=<float>1800*Qb[i]*Tu[i]/<T*cap[i]>;else if<i>=9&&i<16>d3[i]=<float>1800*Qb[i]*Tu[i]/<T*cap[i]>;elsed3[i]=<float>1800*Qb[i]*Tu[i]/<T*cap[i]>;}}}fun16<>{ for<i=1;i<18;i++>d[i]=d1[i]+d2[i]+d3[i];}fun17<>{ for<i=1;i<18;i++>d[i]=Du[i]+d2[i];}fun11<> /*各进口道平均信控延误计算公式*/{int k;for<i=1;i<4;i++>dab[1]+=<d[i]*<Q[i]/4>>,da1[1]+=<Q[i]/4>;dA[1]=<float>dab[1]/da1[1];for<i=4;i<9;i++>dab[2]+=<d[i]*<Q[i]/4>>,da1[2]+=<Q[i]/4>;dA[2]=dab[2]/da1[2];for<i=9;i<12;i++>dab[3]+=<d[i]*<Q[i]/4>>,da1[3]+=<Q[i]/4>;dA[3]=dab[3]/da1[3];for<i=12;i<16;i++>dab[4]+=<d[i]*<Q[i]/4>>,da1[4]+=<Q[i]/4>;dA[3]=dab[3]/da1[3];i=16;dab[3]+=<d[i]*<Q[i]/4>>,da1[3]+=<Q[i]/4>;dA[3]=dab[3]/da1[3];i=17;dab[4]+=<d[i]*<Q[i]/4>>,da1[4]+=<Q[i]/4>;dA[4]=dab[3]/da1[3];}fun14<float dl>{if <dl>=0&&dl<=10>printf<"服务水平为A级\n">; else if<dl>10&&dl<=20>printf<"服务水平为B级\n">;else if<dl>20&&dl<=35>printf<"服务水平为C级\n">;else if<dl>35&&dl<=55>printf<"服务水平为D级\n">;else if<dl>55&&dl<=80>printf<"服务水平为E级\n">;else if<dl>80>printf<"服务水平为F级\n">;elseprintf<"error">;}fun12<> /*整个交叉口*/{ for<i=1;i<5;i++>{ dk+=da1[i];dj+=<float><dA[i]*dab[i]>;}di=<float>dj/dk;printf<"此交叉口的信控延误为%f\n",di>;fun14<di>;}void main<>{int L,i,I,k,ge,n;float a,b,Y,h[18];printf<"请输入黄灯时间A<一般取值3s>:">;scanf<"%f",&A>; /*此处需插入一个界面*/printf<"请输入一个周期内的绿灯间隔数k:">;scanf<"%d",&k>;for<i=1;i<9;i++>{if<i<=3>{printf<"请输入第一相位第%d车道的车头时距:",<0+i>>;scanf<"%f",h+i>;S[i]=3600/h[i];}else{printf<"请输入第二相位第%d车道的车头时距:",<i>>;scanf<"%f",&h[i]>;S[i]=3600/h[i];}}for<i=1;i<10;i++>{if<i<=7>printf<"请输入第三相位第%d车道的车头时距:",8+i>,scanf<"%f",&h[8+i]>,S[8+i]=3600/h[8+i];elseprintf<"请输入第四相位第%d车道的车头时距:",8+i>,scanf<"%f",&h[8+i]>,S[8+i]=3600/h[8+i];}printf<"请输入绿灯间隔时间I:">;scanf<"%f",&I>;Y=fun2<>;printf<"请输入现有交叉口的信号周期Co:">;scanf<"%f",&Co>;for<i=1;i<5;i++>printf<"请输入第%d相位的启动损失时间l<无实测数据时可取3s>:",i>,scanf<"%f",&l[i]>;for<i=1;i<=4;i++>L+=<l[i]>+I-A,printf<"请输入第%d相位的实际显示绿灯时间:",i>,scanf<"%f",&g[i]>;fun32<>;for<n=1;n<5;n++>D[n]=Ge[n]/Co,printf<"第%d相位的绿信比为%.2f\n",n,D[n]>;for<i=1;i<3;i++>printf<"第%d相位有效绿灯时间为%.1f\n",i,Ge[i]>;fun15<>;fun3<>;fun4<>;fun5<>;fun6<>;fun7<>;fun8<>;fun9<>;fun10<>;fun16<>;fun11<>;fun12<>;}。

相关文档
最新文档