南京市鼓楼区北京西路交通信号线控方案设计毕业论文
2020-05-14 22:01:06
2016 届毕业设计程序
题 目: 南京市鼓楼区和燕路
交通信号线控设计
专 业:交通工程(轨道交通方向)
班 级: 轨道1202
姓 名: 孙桂兵
指导老师: 吕孟兴
起讫日期: 2016.3-2016.6
2016年 6 月
交通信号点控计算程序:
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
float S[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;
float dA[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];
float Qb[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",amp;z);
printf("请输入车辆在进口道上的行驶车速u(m/s):");
scanf("%f",amp;u);
printf("请输入车辆制动时间t(s):");
scanf("%f",amp;t);
h=z/u; /*此处需插入一个界面*/
I=h t;
printf("计算得绿灯间隔时间I为%f s",I);
if(Ilt;3)
printf("黄灯时间A=3s");
else
printf("(其中3s配以黄灯,其余时间配以红灯)\n");
return (I);
}
float fun2 () /*最大流量比计算公式*/
{ int i,c,e;
printf("请输入第一相位各车道的交通流量(1-3):");
for(i=1;ilt;4;i )
scanf("%f",amp;Q[i]);
for(c=1;clt;4;c )
y[c]=Q[c]/S[c]; /*S[c]为各车道对应的饱和流量*/
maxA=y[1]; /*第一相位最大流量比*/
for(e=1;elt;=3;e )
if(y[e]lt;=maxA)
maxA=y[e];
printf("第一相位最大流量比为%f\n",maxA);
printf("请输入第二相位各车道的交通流量(4-8):");
for(i=4;ilt;9;i )
scanf("%f",amp;Q[i]);
for(c=4;clt;9;c )
y[c]=Q[c]/S[c]; /*S[c]为各车道对应的饱和流量*/
maxB=y[4]; /*第二相位最大流量比*/
for(e=4;elt;=9;e )
if(y[e]gt;=maxB)
maxB=y[e];
printf("第二相位最大流量比为%f\n",maxB);
printf("请输入第三相位各车道的交通流量(9-15):");
for(i=9;ilt;16;i )
scanf("%f",amp;Q[i]);
for(c=9;clt;16;c )
y[c]=Q[c]/S[c]; /*S[c]为各车道对应的饱和流量*/
maxC=y[9]; /*第二相位最大流量比*/
for(e=9;elt;=15;e )
if(y[e]gt;=maxC)
maxC=y[e];
printf("第三相位最大流量比为%f\n:",maxC);
printf("请输入第四相位各车道的交通流量(16-17):");
for(i=16;ilt;18;i )
scanf("%f",amp;Q[i]),
y[c]=Q[c]/S[c]; /*S[c]为各车道对应的饱和流量*/
maxD=y[16]; /*第二相位最大流量比*/
for(e=16;elt;=17;e )
if(y[e]gt;=maxD)
maxD=y[e];
printf("第四相位最大流量比为%f\n:",maxD);
max=maxA maxB maxC maxD;
printf("此交叉口的流量比为%f:",max);
return (max);
}
fun31()
{ int i;
for(i=1;ilt;5;i )
g[i]=Ge[i]-A l[i],
printf("第%d相位的显示绿灯时间为%f s\n",i,g[i]);
}
fun32()
{int i;
for(i=1;ilt;3;i )
Ge[i]=g[i] A-l[i],
printf("第%d相位的有效绿灯时间为%f s\n",i,Ge[i]);
}
int fun15()
{
for(i=1;ilt;18;i )
{printf("请输入第%d车道的分析期初初始积余车辆(辆):",i);
scanf("%f",amp;Qb[i]);
printf("请输入第%d车道的分析期离开车辆(辆):",i);
scanf("%f",amp;Ql[i]);
}
}
fun3()
{
for(i=1;ilt;18;i )
{ if(ilt;4)
CAPP[1] =S[i]*D[1];
else if(igt;=4amp;amp;ilt;9)
CAPP[2] =S[i]*D[2];
else if(igt;=9amp;amp;ilt;16)
CAPP[3] =S[i]*D[3];
else
CAPP[4] =S[i]*D[4];
}
}
fun4()
{
for(i=1;ilt;5;i )
Ds[i]=(float)1.5*Co*(1-D[i]);
}
fun5() /*不饱和延误的计算公式*/
{ float j[5],min,Hu[18];
for(i=1;ilt;5;i )
j[i]=0.5*Co*(1-D[i])*(1-D[i]);
for(i=1;ilt;18;i )
{ if(ilt;4)
cap[i]=S[i]*D[1];
else if(igt;=4amp;amp;ilt;9)
cap[i]=S[i]*D[2];
else if(igt;=9amp;amp;ilt;16)
cap[i]=S[i]*D[3];
else
cap[i]=S[i]*D[4];
}
for(i=1;ilt;18;i )
x[i]=(float)Q[i]/cap[i];
for(i=1;ilt;18;i )
{ min=x[i];
if(mingt;1)
min=1;
lkk=(float)1-min;
if(ilt;4)
Hu[i]=(float)1-min*D[1];
else if(igt;=4amp;amp;ilt;9)
Hu[i]=(float)1-min*D[2];
else if(igt;=9amp;amp;ilt;16)
Hu[i]=(float)1-min*D[3];
else
Hu[i]=(float)1-min*D[4];
}
for(i=1;ilt;18;i )
{ if(ilt;4)
Du[i]=j[1]/Hu[i];
else if(igt;=4amp;amp;ilt;9)
Du[i]=j[2]/Hu[i];
else if(igt;=9amp;amp;ilt;16)
Du[i]=j[3]/Hu[i];
else
Du[i]=j[4]/Hu[i];
}
}
fun6() /*在T中积余车辆的持续时间*/
{min=T;
for(i=1;ilt;18;i )
{ { if(ilt;4)
Ku[i]=cap[i]*lkk,
Ju[i]=Qb[i]/Ku[i];
else if(igt;=4amp;amp;ilt;9)
Ku[i]=cap[i]*lkk,
Ju[i]=Qb[i]/Ku[i];
else if(igt;=9amp;amp;ilt;16)
Ku[i]=cap[i]*lkk,
Ju[i]=Qb[i]/Ku[i];
else
Ku[i]=cap[i]*lkk,
Ju[i]=Qb[i]/Ku[i];}
{ if(minlt;Ju[i])
Tu[i]=min;
else
Tu[i]=Ju[i];}
}
}
fun7() /*绿灯期车流到达率校正系数*/
{
for(i=1;ilt;18;i )
P[i]=(Ql[i]-Qb[i])/Ql[i];
for(i=1;ilt;18;i )
{ if(ilt;4)
Fa[i]=(1-P[i])/((float)1-D[1]);
else if(igt;=4amp;amp;ilt;9)
Fa[i]=(1-P[i])/(1-D[2]);
else if(igt;=9amp;amp;ilt;16)
Fa[i]=(1-P[i])/(1-D[1]);
else
Fa[i]=(1-P[i])/(1-D[2]);
}
}
fun8() /*均匀延误计算公式*/
{ float ar[18],an[18],am[18],al[18],az[18];
for(i=1;ilt;18;i )
if(ilt;4)
ar[i]=Ds[1]*Tu[i]/T,
an[i]=Fs[i]*Du[i]*(T-Tu[i]),
d1[i]=ar[i] an[i]/T;