智能是指控制系统这块。举个简单的例子。比如上班高峰期和平常的时段,路口的车流人流是不一样的。那么控制系统可以通过侦测的数据,自动调整信号灯的耐正放行方案。唤陵保证道路的顺畅。
或者是南北方向的车流多一点,东西方向的车流少一点,那么系统也可以自动把南北昌链悔方向的放行时间调整长一点,东西方向短一点。
当然,这个例子只是智能控制的冰山一角,这里面包含内容太多了,不方便一一列举。
用PLC实现智能交通控制1 引言
据不完全统计,目前我国城市里的十字路口交通系统大都采用定时来控制(不排除繁忙路段或高峰时段用交警来取代交通灯的情况),这样必然产生如下弊端:当某条路段的车流量很大时却要等待红灯,而此时另一条是空道或车流量相对少得多的道却长时间亮的是绿灯,这种多等少的尴尬现象是未对实际情况进行实时监控所造成的,不仅让司机乘客怨声载道,而且对人力和物力资源也是一种浪费。
智能控制交通系统是目前研究的方向,也已经取得不少成果,在少数几个先进国家已采用智能方式来控制交通信号,其中主要运用GPS全球定位系统等。出于便捷和效果的综合考虑,我们可用如下方案来控制交通路况:制作传感器探测车辆数量来控制交通灯的时长。具体如下:在入路口的各个方向附近的地下按要求埋设感应线圈,当汽车经过时就会产生涡流损耗,环状绝缘电线的电感开始减少,即可检测出汽车的通过,并将这一信号转换为标准脉冲信号作为可编程控制器的控制输入,并用PLC计数,按一定控制规律自动调节红绿灯的时长。
比较传统的定时交通灯控制与智能交通灯控制,可知后者的最大优点在于减缓滞流现象,也不会出现空道占时的情形,提高了公路交通通行率,较全球定位系统而言成本更低。
2 车辆的存在与通过的检测
(1) 感应线圈(电感式传感器)
电感式传感器其主要部件是埋设在公路下十几厘米深处的环状绝缘电线(特别适合新铺道路,可用混凝土直接预埋,老路则需开挖再埋)。当有高频电流通过电感时,公路面上就会形成如图1(a)中虚线所形成的高频磁场。当汽车进入这一高频磁场区时,汽车就会产生涡流损耗,环状绝缘电线的电感开始减少。当汽车正好在该感应线圈的正上方时,该感应线圈的电感减到最小值。当汽车离开这高频磁场区时,该感应线圈电感逐渐复原到初始状态。由于电感变化该感应线圈中流动的高频电流的振幅(本论文所涉及的检测工作方式)和相位发生变化,因此,在环的始端连接上检测相位或振幅变化的检测器,就可得到汽车通过的电信号。若将环状绝缘电线作为振荡电路的一部分,则只要检测振荡频率的变化即可知道汽车的存在和通过。
电感式传感器的高频电流频率为60kHz,尺寸为 2×3m,电感约为100μH.这种传感器可检测的电感变化率在0.3%以上[1,2]。
电感式传感器安装在公路下面,从交通安全和美观考虑, 它是理想的传感器。传感器最好选用防潮性能好的原材料。
(2) 电路
检测汽车存在的具体实现是在感应线圈的始端连接上检测电感电流变化的检测器, 并将之转化为标准脉冲电压输出。其具体电路图由三部分组成:信号咐缺源部分、检测部分、比较鉴别部分。原理框图如图2所示, 输出脉冲波形见图1(b)。
(3) 传感器的铺设
车辆计数是智能控制的关键,为防止车辆出现漏检的现象,环状绝缘电线在地下的铺设我们设采取在每个车行道上中的出口地(停车线处)以及在离出口地一定远的进口的地方各铺设一个相同的传感器,方案如图3(以典型的十子路口为例),同一股道上的两传感器相距的距离为该股道正常运行时所允许的最长停车车龙为好。
3 用PLC实现智能交通灯控制
3.1 控制系统的组成
车辆的流量记数、交通灯的时长控制可由可编程控制器(PLC)来实现。当然,也可选用其他种类的计算机作为控制器。本例选用PLC作为控制器件是因为可编程控制器核心是一台计算机,它是专为工业环境应用而设计制造的计算机。它具有高可靠性丰富的输入/输出接口,并且具有较强的驱动能力它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术 *** 作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程它采用模块化汪手结构,编程简单,安装简单,维修方便[3]。
利用PLC,可使上述描叙的各传感器以及各道口的信号灯与之直接相连,非常方便可靠。
本设计例中,PLC选用FX2N-64,其输入端接收来自各个路口的车辆探测器测得的输出标准电脉冲,输出接十字路口的红绿信号交通灯。信号灯的选择:在本例中选用红、黄、绿发光二极管作为信号灯(箭头方向型)。
3.2 车流量的计量
车流量的计量有多种方式:
(1) 每股行车道的车流量通过PLC分别统计。当车辆进入路口经过第一个传感器1(见图困简嫌3)时,使统计数加1,经过第二个传感器2出路口时,使统计数减1,其差值为该股车道上车辆的滞留量(动态值),可以与其他道的值进行比较,据此作为调整红绿灯时长的依据。
(2) 先统计每股车道上车辆的滞留量,然后按大方向原则累加统计。如,将东西向的(见图3)左行、直行、右行道上的车辆的滞留量相加,再与其它的3个方向的车流量进行比较,据此作为调整红绿灯时长的依据。
(3) 统计每股车道上车辆的滞留量后按通行最大化原则(不影响行车安全的多道相向行驶)累加统计。如,东、西相向的2个左行、直行、右行道上的车辆的滞留量全部相加,再与南北向的总车流量进行比较,据此作为调整红绿灯时长的依据(下面的例子就是按此种方式)。
以上计算判别全部由PLC完成。可以把以上不同计量判别方式编成不同的子程序,方便调用。
3.3 程序流程图
本例就上述所描述的车流量统计方式,就图3中的十字路口给出一例PLC自动调整红绿灯时长的程序流程图如图5所示,其行车顺序与现实生活中执行的一样[4],只是时间长短不一样。
(1) 当各路口的车辆滞留量达一定值溢满时(相当于比较严重的堵车),红绿灯切换采用现有的常规定时控制方式
(2) 当东、西向路口的车辆滞留量比南、北向路口的大时(反之亦然),该方向的通行时间=最小通行定时时间+自适应滞环比较增加的延时时间(是变化的),但不大于允许的最大通行时间。其中最小定时时间是为了避免红绿灯切换过快之弊最大通行时间是为了保障公平性,不能让其它的车或行人过分久等。进一步的说明在后面的注释中。
(3) 自适应滞环比较(本例的核心控制规律)增加的时间的确定若东、西向车辆滞留量≥南、北向一个偏差量σ(如30辆车或其它值)时,先让东、西向的左转弯车左行15s(定时控制,值可改),再让直行车直行30s(直行时间的最小值,值可改)后再加一段延时保持,直至东、西向的车辆滞留量比南、北向的车辆滞留量还要少一个偏差量σ,才结束该方向的通行,切换到其它路上,否则一直延时继续通行下去,直至到达最大通行时间而强制切换。滞环特性如图6所示。实际应用时σ的值需整定,过小则导致红绿灯切换过频,过大又不能实现适时控制。
3.4 流程图注释
(1) 流程图中的15s、30s、75s等时间分别为交管部门定的车辆左转弯时间、直行最小时间、允许的最大通行时间σ为车流量的偏差量。以上值及其4个路口车流量的满溢值均可在程序初始化中任意更改。
(2) 车辆左转弯是造成交通堵塞很重要的一个方面,应加以适当限制,故车辆左转弯始终采用最小定时控制,以减小系统的复杂程度,提高可靠性。
(3) 车辆通行的时间中包含绿、黄灯闪烁的时间,红、黄、绿各灯的切换与现用的方式相同,不再赘述。
(4) 人行道的红绿灯接线与现用的方式相同,其绿灯点亮的时刻与该方向车辆直行绿灯点亮的时刻同步一致,但要较车辆直行绿灯提前熄灭,采用定时控制,如绿灯定时亮18s。其目的是不让右转弯车辆过分受人行道灯的限制。若人车分流,右转弯车辆不受限制。较简单,流程图中略。
(5) 车流量的计量是不间断的,与控制呈并行关系,该系统属多任务处理,编程尤其应注意。
4 结束语
比较传统的定时交通灯控制与智能交通灯控制,可知后者的最大优点在于减缓滞流现象,也不会出现空道占时的情形,提高了公路交通通行率,较全球定位系统而言成本更低,特别适合繁忙的、未立交的交通路口,更适合于四个以上的路口,也可方便连网。
参考文献
[1] 黄继昌等. 传感器工作原理及应用实例[M]. 北京:人民邮电出版社,1998.
[2 ]张万忠. 可编程控制器应用技术[M]. 北京:化学工业出版社,2001.
[3] 英R.J.索尔特. 道路交通分析与设计[M]. 张佐周等译. 北京:中国建筑工业出版社,1982.
不是很完整,您可以拿去做借鉴,
希望对您有帮助。
*--------------------------------交通灯控制程序------------------------------------------**--------------------------------MCS-51汇编语拍链言----------------------------------------*
*--------------------------------用AT89S51单片机,12MHz晶振-------------------*
*--------------------------------程序名:交通灯.ASM-----------------------------------*
*--------------------------------交通灯控制系统程序------------------------------------*
ORG 0000H 主程序的入口地址
AJMP START 跳转到主程序的开始处
ORG 0003H 外部中断0的中断程序入口地址
AJMP INT 跳转到中断服务程序处
ORG 000BH
AJMP DISP
ORG 001BH
AJMP TIME
ORG 0030H
*--------------------------------初始化--------------------------------------------------*
START:MOV SP,#60H
MOV P1,#0
MOV R3,#0
MOV TMOD,#11H 定时器T0,T1定时方式且都工作于模式1
MOV TH0,#0D8H10ms定时
MOV TL0,#0F0H
MOV TH1,#03CH50ms定时
MOV TL1,#0B0H初值15536
SETB EA 总中断开
SETB IT0 脉冲触发方式IT=1
SETB EX0 开外部中断0
SETB ET0 开定时中断0
SETB ET1 开定时中断1
SETB TR0 开启定时器0
SETB TR1 开启定时器1
*--------------------------------主程序--------------------------------------------------*
MAIN:SETB P1.0开东西绿灯
SETB P1.5开南北红灯
MOV R2,#40东西绿灯亮40s
LOOP:MOV 30H,R2
MOV A,R2
MOV 32H,A
MOV 33H,A
JNB 00H,NEXT00H标志位为1说明有救护车到达,需要执行相应的设置
ACALL HELP调用10s救护车处理程序
NEXT:CJNE R2,#0,LOOP
MOV 30H,#0
MOV 32H,#5关东西绿灯
MOV 33H,#5
SETB P1.1东西黄灯闪5s
SETB P1.4 南北黄灯闪5s
MOV R2,#5
LOOP1:MOV 30H,R2
MOV 32H,R2
JNB 00H,NEXT1
ACALL HELP
NEXT1:ACALL DELAY1 延时0.08s
SETB P1.1东西黄灯闪5s
SETB P1.4 南北黄灯闪5s
ACALL DELAY1延时0.08s
CLR P1.1 关东西隐贺隐黄灯
CLR P1.4 关南灶厅北黄灯
CJNE R2,#0,LOOP1 时间未到零,继续循环
MOV 30H,#0
MOV 32H,#0
CLR P1.0 关东西绿灯
CLR P1.1 关东西绿灯
CLR P1.4 关南北黄灯
CLR P1.5 关南北红灯
SETB P1.2开东西红灯
SETB P1.3开南北绿灯
MOV R2,#60东西红灯亮60s
LOOP2:MOV 30H,R2
MOV A,R2
MOV 32H,A
JNB 00H,NEXT2
ACALL HELP
NEXT2:CJNE R2,#5,LOOP2
MOV 32H,#0
SETB P1.1 东西黄灯闪5s
SETB P1.4南北黄灯闪5s
LOOP3: MOV 30H,R2
MOV 32H,R2
JNB 00H,NEXT3
ACALL HELP
NEXT3:ACALL DELAY1
SETB P1.1
SETB P1.4
ACALL DELAY1
CLR P1.1
CLR P1.4
CJNE R2,#0,LOOP3
MOV 30H,#0
MOV 32H,#0
CLR P1.1 关东西黄灯
CLR P1.2 关东西红灯
CLR P1.3 关南北绿灯
CLR P1.4 关南北黄灯
AJMP MAIN
DELAY1:MOV 55H,#200
YS: MOV 56H,#200
DJNZ 56H,$
DJNZ 55H,YS
RET
*-------------------------------紧急响应子程序-----------------------------------------*
HELP:MOV 50H,R2保护R2
MOV 51H,P1保护R1
MOV P1,#0
SETB P1.2东西红灯亮
SETB P1.5南北红灯亮
MOV R2,#10东南西北红灯亮10s
D1:MOV 30H,R2
MOV 32H,R2
CJNE R2,#0,D1
MOV 30H,#0
MOV 32H,#0
CLR 00H
MOV R2,50H
MOV P1,51H
RETI
*-------------------------------外部中断服务程序-----------------------------------------*
INT:CLR EA
PUSH ACC
PUSH PSW
SETB 00H 清标志位00H
POP PSW
POP ACC
SETB EA
RETI
*-------------------------------显示中断处理程序-----------------------------------------*
DISP:CLR EA
CLR TR0
PUSH ACC
PUSH PSW
ACALL HEXBCD 把十六进制数变成十进制数
MOV A,30H
JNZ QING1 为零不显示
MOV 40H,#10
MOV 41H,#10
QING1:MOV A,32H
JNZ QING2 为零不显示
MOV 44H,#10H
MOV 45H,#10H
QING2:MOV R0,#40H R0指向显示缓冲区首地址
MOV R1,#0000001B 首位位选字送R1
LD0:MOV P2,R1 从P2口输出位选码
MOV DPTR,#TAB
MOV A,@R0 取要显示的数
MOVC A,@A+DPTR查表获得七段码
MOV P0,A 从P0口输出段选码
ACALL DELAY 调用延时程序
INC R0指向缓冲区下一单元
MOV A,R1 位选码送A
JB ACC.5,EXIT1判六位是否显示完,显示完毕返回
RL A 未显示完毕,将位选码变成下一个选字
MOV R1,A 修改后的为选码送R1
AJMP LD0 循环选手
EXIT1:MOV TH0,#0D8H 定时10s
MOV TL0,#0F0H
POP PSW
POP ACC
SETB TR0 开定时器0
SETB EA 开中断中开关
RETI 中断返回
*-------------------------------十六进制转十进制子程序-----------------------------------*
HEXBCD:MOV A,30H
MOV B,#10
DIV AB
MOV 40H,B
MOV 41H,A
MOV 42H,#10
MOV 43H,#10
MOV A,32H
MOV B,#10
DIV AB
MOV 44H,B
MOV 45H,A
RET
*---------------------------------1ms延时子程序------------------------------------------*
DELAY:MOV R5,#10
DEL:MOV R6,#50
DJNZ R6,$
DJNZ R5,DEL
RET
*---------------------------------定时中断处理程序---------------------------------------*
TIME:CLR EA
CLR TR1
PUSH ACC
PUSH PSW
INC R3
CJNE R3,#20,EXIT0 50ms*20=1s定时
MOV R3,#0
DEC R2
EXIT0:MOV TH1,#3CH 50ms定时
MOV TL1,#0B0H
POP PSW
POP ACC
SETB TR1
SETB EA
RETI
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H
END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)