新疆财经大学本科毕业论文
题目绿灯控制交通模型的建立与计算
|《个人》所有|
学生 姓 名    |任         
                   
                 
             
二手高尔夫r                   
指导教师                     
及其职称:    邹德军( 教授)       
完 成 日期    2008年05月19日   
红绿灯控制交通模型的建立与计算
摘 要
略。。。。
surburban
略。。。
(四)符号说明
L——车长(米/辆)
D——交通规则大全 车距(米)
A——加速度(米/秒)
T——启动延迟(秒)
n——放行的车辆
tn——总延时时间
Sn(t)—— 在时刻 t 第 n 辆车的位置
二、建立模型并分析
(一) 单行道单向路口红绿灯模型
1.引用参考文献[8]中的模型
问题提出:通十字路口绿灯亮30秒,最多可以通过多少辆汽车?
主要参数和变量: 车长L,车距D,加速度a,启动延迟T, 在时刻 t 第 n 辆车的位置 Sn(t)。用数轴表示车辆行驶道路,数轴的正向为汽车行驶方向, 数轴原点为红绿灯停车线的位置。
于是, 当Sn(30)>0时, 表明在第30秒第n辆车已通过红绿灯停车线;否则,结论相反,第n辆车真遇到红灯,必须停车。
 模型构造:
(1).停车位模型:  Sn(0)=–(n-1)(L+D)
(2).启动时间模型:    tn =(n-1)T
(3).行驶模型:  Sn(t)=Sn(0)+1/2 a (t-t上海汽车厂n) 2,  t>tn
 参数估计: L=5m,D=2m,T=1s,a=2m/s
模型求解:  Sn(30)=-7(n-1)+(30-(n-1))2>0 
     得: n=19  且 t19=18<30=t 成立。
问题解答: 最多19辆车通过路口.         
2.对引用模型中的时间设置由30秒改为未知的t秒,即为单行道单向路口红绿灯模型
(1).停车位模型:  Sn新mini(0)= –(n-1)(L+D)
它表示这n个车静止地停在红灯面前所形成的距离,如图
O为圆点在此代表红灯的位置;N代表n个车辆尾部的位置,在负半轴,即
在n不等于0的时候,Sn(0)<0;
(2).启动时间模型:    tn =(n-1)T
它表示每个车在启动的时候都有一个延时T,当n个车要启动的时候,由于第一个车前面没有车辆,它没有延时,所以总延时为(n-1)T。
(3).行驶模型:  Sn(t)=Sn(0)+1/2 A (t-tn) 2,  t>tn
以最后一辆车为标准,当它启动的时候,它通过停车距离所需要的时间即可认为红灯所需设置的时间。
 参数估计: L=5m,D=2m,T=1/2s,A=4m/s
(4).模型推导求解: 
Sn(t)Sn(0)+1/2 A (t-tn)2
    =–(n-1)(L+D)1/2 A(t-(n-1)T)2
    =A/2t2-AT(n-1)t+(T(n-1))2-(n-1)(L+D)
当第n个车走过O所需时间为Sn(t)
即简单的单行道单向路口红绿灯模型为:
Sn(t)=A/2t2-AT(n-1)t+(T(n-1))2-(n-1)(L+D)
求解思路:
停车位模型启动时间模型行驶模型得到使在第t秒第n辆车已通过红绿灯停车线的最终模型,模型是个二次方程,只要给定n的值,在C语言中t的求解是很简单的。由于方程有两个根,所以得出最大根赋给绿灯时间,即如:k=((x1>x2)?x1:x2)。
(5).用C语言N-S图实现模型:
(6).由模型的C语言N-S图很容易得出程序。
求解程序如下:
#include<stdio.h>      /* 所用库函数*
#include<math.h>
#define A 4            /*宏定义对参数赋值*/
#define T 1/2
#define L 5
#define D 2
void main()          /*函数主体*/
{int k,n=15;          /*定义绿灯时放行车的数量为了5*/
int x1,x2;            /*定义方程的整数解*/
float xx1,xx2,a,b,c,d,p,q; /*定义计算函数所用变量*/
a=A/2;              /*得到标准方程ax2+bx+c=0中a的值*/
b=-A*T*(n-1);        /*得到标准方程ax2+bx+c=0中b的值*/
c=(T*(n-1)*T*(n-1))-((n-1)*(L+D)); /*得到标准方程ax2+bx+c=0中c的值*/
d=b*b-4*a*c;          /*得到判断方程是否有根的值*/
p=-b/(2*a);
q=sqrt(d/(2*a));
xx1=p+q;            /*得到方程xx1的值*/
xx2=p-q;              /*得到方程xx2的值*/
x1=(int)(xx1+0.5);      /*四舍五入法得到方程的整数解x1*/
x2=(int)(xx2+0.5);      /*四舍五入法得到方程的整数解x2*/
printf("x1=%d\nx2=%d\n",x1,x2);  /*在屏幕上输出x1,x2的值*/
k=((x1>x2)?x1:x2);          /*比较两根中最大的是要得的结果*/
printf(The green light last %d second.,k);/*输出绿灯设置的时间*/
}
(7).程序运行结果:
    (图2)方程浮点型解        (图3)四舍五入后方程的整数解
(8).结论: 当要求有15辆车通过路口,绿灯的设置时间为27秒;
通过简单的二次方程求解得出绿灯的设置时间,可以进行小型的十字路口的控制,所以考虑改进模型的实际可操作性。
(二)单行道交叉路口模型
1.单行道交叉路口模型思路
通常十字路口有四个基本方向:东、西、南、北,所以在此设置四个方向的红绿灯。
同时考虑到城市车辆的限速,在匀加速运动启动后,达到最高限速后,停止加速, 按最高限速运动穿过路口。
2013款奥迪a4l最高限速:一般校园、住宅区v*=15公里/小时=4米/秒,
     市区v*=45公里/小时=12米/秒;
     环城路上 v*=60公里/小时=17米/秒
取最高限速 v*=12m/s, 达到最高限速时间tn*=v* /a +tn =6+n-1
限速行驶模型: 
  Sn(t)=Sn(0)+1/2 a(tn *–tn )2+v*(t-tn*),  t>tn*
                =Sn(0)+1/2 a (t-tn) 2,          tn*>t>tn
                = Sn(0)                        tn>t
即:Sn(t)=-7(n-1)+(12/a)2+11(t-12/a-(n-1))
在此,由于模型是控制十字路口的车辆可以不作限速要求,在C语言程序实现中暂不作改进。
2.单行道交叉路口模型运作流程:
(1)初始化:4个红灯全亮。使红绿灯恢复到初始状态。
(2)点亮南北路口的绿灯。通过南北要放行的车辆数得到南北路口绿灯的设置时间,并开始倒计时。
(3)熄灭南北路口的绿灯并点亮南北路口黄灯。绿灯时间到并点亮南北路口的黄灯,是为了让十字路口上的车辆和行人尽快通过。
(4)4个路口红灯全点亮。保持十字路口上无车辆和行人。
(5)点亮东西路口的绿灯。通过东西要放行的车辆数得到东西路口绿灯的设置时间,并开始倒计时。
(6)熄灭东西路口的绿灯并点亮东西路口黄灯。绿灯时间到并点亮东西路口的黄灯,是为了让十字路口上的车辆和行人尽快通过。
(7)4个路口红灯全点亮。又回到回到初始状态,并准备循环程序。
3、单行道交叉路口模型流程图: