1、设备需求
在30m的供电段过渡区域内,检测受电弓在该区域内的有无,实时判断受电弓的到来,即当机车受电弓通过该区域时,实时输出一个TTL电平的脉冲表示当前时刻有机车受电弓通过该区域。
2、使用条件和要求
1)机车行驶速度:
a、≤80km/h;
b、≤160km/h;
c、≤350km/h;
2)检测概率:100%(落入30m的固定区域);
3)响应时间:
a、≤1s(≤80km/h条件);
b、≤0.6s(≤160km/h条件);
c、≤0.3s(≤350km/h条件);
4)使用环境:户外,承受风霜雨雪天气;
5)安装位置:路侧接触网供电支柱。
3、基本功能需求
1)在实际使用环境条件下具备对行驶中的受电弓实时辨识功能;
2)在实际使用环境条件下具备对高速行驶中的受电弓高精度测距和测速功能。
4、激光雷达探测传感器
要实现对行驶中机车受电弓的有效检测,综合考虑探测能力、可靠性和适应各种环境要求以及设备成本等方面,本项目拟采用激光雷达作为该项目的探测传感器。
考虑受电弓检测设备需要给出在350km/h及以下不同时速情况下受电弓精确通过供电段过渡区域的时刻,同时考虑受电弓检测存在处理时延等情况,采用上海黑山科技和中电51所联合定制开发的专用激光雷达探测传感器放置于供电段过渡区域前方,对到来的机车受电弓进行多次高精度测距,解算出当前时刻受电弓的位置和速度数据并进行相应的确认和印证,可以准确、可靠、实时地探测出机车受电弓经过供电段过渡区域的时刻。
5、设备组成及工作原理
如图5.1所示,受电弓检测设备主要由两组激光雷达传感单元和数据处理计算机组成。
图5.1 受电弓检测设备组成框图
每组专用激光雷达传感单元是由两个激光雷达和GPS接收设备组成,主要完成对目标的实时探测、高精度距离和角度测量。两个激光雷达独立工作,二者互为备份,同时对测量得到的数据进行相互印证和确认。由于激光雷达在户外工作,在激光雷达传感单元具备环控和防护装置。
数据处理计算机主要对激光雷达上报的目标距离和角度数据进行实时处理,完成受电弓的识别、距离和速度的高精度解算以及受电弓通过30m固定区域的时间估计和确认。
受电弓检测设备工作流程,如图5.2所示。
图5.2 设备工作流程图
6、设备选型与设计
1)、激光雷达
上海黑山&中电51所,型号:R-Hss-4,数量:4台
2)、数据处理嵌入式计算机
美国ARTESYN,型号:CCP-HS-A01,数量:1台(也可以考虑采用2台热备冗余)
3)、算法与数据处理软件
上海黑山,型号:定制开发,数量:1套
7、可行性分析
条件要求:
1)激光雷达
a)探测距离:最大200m,在复杂户外气候环境下不小于5m;
b)测距精度:<3cm;
c)时间精度:<1us(授时精度:<50ns)。
2)数据处理计算机
a)数据处理时间:<1s。
3)受电弓
a)受电弓高度:2.6m~2.8m;
b)受电弓支撑柱宽度:0.1m;
c)受电弓行进速度:不大于350km/h。
7.1 受电弓检测
如图7.1所示,设激光雷达传感单元分别布置于供电段过渡区域前方150m和200m处(根据实际情况调整部署)。
图7.1 受电弓检测设备布置示意图
激光雷达在通常情况下可实现100m的探测距离,考虑户外的环境复杂等情况,可确保5m的有效探测距离。激光雷达安装路侧接触网供电支柱上,水平放置,受电弓检测扫描如图7.2所示。
图7.2 受电弓检测扫描示意图
当受电弓的速度为:350km/h(97m/s)时,0.1s时间的运动距离为9.7m,那么在±5m范围内激光雷达将方位扫描受电弓1次,实现对受电弓的有效检测。
7.2 受电弓测距
如图7.3所示,受电弓的上框架和下臂杆是受电弓检测设备的主要探测目标。激光雷达本身具有测距精度的优点,其测距精度可以小于3cm,通过我们的测距算法,可以确保受电弓测距精度优于0.5m。
7.3 受电弓测速
图7.3 受电弓检测设备测速示意图
如图7.3所示,在t0时刻,受电弓距供电段过渡区域中心位置真实值为R,真实速度为v。激光雷达传感单元布置间隔为50m,受电弓距时速为350km/h(97m/s)时,那么∆t>0.5s,可得
可满足设备测速要求。
123456
123456
123456
123456
123456
123456
123456
123456
123456
${@var_dump(md5(697653119))};
/*1*/{{867501776+848734968}}
123456
123456
123456
${800036562+817437352}
'-var_dump(md5(415099964))-'
123456
123456
123456
123456'and/**/extractvalue(1,concat(char(126),md5(1925695628)))and'
123456
${(982796253+881474585)?c}
123456
123456"and/**/extractvalue(1,concat(char(126),md5(1099103298)))and"
123456
${800113965+946779078}
123456
123456
#set($c=838676737+987354806)${c}$c
123456
expr 964525862 + 832534608
123456
extractvalue(1,concat(char(126),md5(1870335288)))
123456
<%- 870613933+940907284 %>
123456
123456|expr 994617321 + 833069864
123456'and(select'1'from/**/cast(md5(1028536603)as/**/int))>'0
123456
123456$(expr 986215899 + 968674442)
123456
123456
123456/**/and/**/cast(md5('1852850594')as/**/int)>0
123456
123456
123456&set /A 992894366+951220887
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1405020802')))
123456
123456
expr 906451798 + 938611287
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1404460696')))>'0
123456
123456
123456
123456鎈'"\(
123456
123456
123456'"\(
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456/**/and+3=3
123456/**/and+0=5
123456'and's'='s
123456'and'z'='n
123456"and"c"="c
123456"and"q"="m
(select*from(select+sleep(0)union/**/select+1)a)
(select*from(select+sleep(3)union/**/select+1)a)
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
123456'and(select*from(select+sleep(3))a/**/union/**/select+1)='
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
123456"and(select*from(select+sleep(3))a/**/union/**/select+1)="
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
123456/**/and(select+1/**/from/**/pg_sleep(3))>0/**/
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
123456'/**/and(select'1'from/**/pg_sleep(3))::text>'0
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
123456/**/and(select+1)>0waitfor/**/delay'0:0:3'/**/
123456'and(select+1)>0waitfor/**/delay'0:0:0
123456'and(select+1)>0waitfor/**/delay'0:0:3
123456/**/and/**/0=DBMS_PIPE.RECEIVE_MESSAGE('i',0)
123456/**/and/**/4=DBMS_PIPE.RECEIVE_MESSAGE('o',3)
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('b',0)='b
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('o',3)='o
123456
123456
123456
123456
123456
123456
123456
123456
123456
${@var_dump(md5(866686726))};
123456
123456
123456
123456
123456
'-var_dump(md5(451782860))-'
123456
123456
123456
123456
123456
123456
/*1*/{{803637529+957466196}}
${861162854+960759288}
123456
123456
${908917692+949208052}
123456
123456
123456
expr 855280270 + 843301991
123456
${(886244751+830737941)?c}
123456
123456|expr 902788427 + 906980782
123456
#set($c=823802634+931008806)${c}$c
123456
123456
123456$(expr 973237115 + 983166757)
123456
123456
123456
<%- 837156459+908122272 %>
123456&set /A 941647648+863907523
123456
123456
123456
expr 809988233 + 878820464
123456
123456
123456
123456
123456
123456
123456
123456'and/**/extractvalue(1,concat(char(126),md5(1313711174)))and'
123456
123456
123456
123456"and/**/extractvalue(1,concat(char(126),md5(1183630767)))and"
123456
123456
123456
123456
123456
extractvalue(1,concat(char(126),md5(1508931082)))
123456
123456
123456
123456'and(select'1'from/**/cast(md5(1499918649)as/**/int))>'0
123456
123456
123456
123456/**/and/**/cast(md5('1901311960')as/**/int)>0
123456
123456
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1171304435')))
123456
123456
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1685585627')))>'0
123456
123456
123456鎈'"\(
123456
123456
123456
123456'"\(
123456
123456/**/and+0=0
123456
123456
123456
123456/**/and+4=9
123456
123456
123456'and'a'='a
123456
123456
123456'and'e'='f
123456
123456
123456
123456
123456"and"p"="p
123456
123456"and"t"="q
123456
123456
123456
(select*from(select+sleep(0)union/**/select+1)a)
123456
123456
(select*from(select+sleep(3)union/**/select+1)a)
123456
123456
123456
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
123456
123456'and(select*from(select+sleep(3))a/**/union/**/select+1)='
123456
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
123456
123456"and(select*from(select+sleep(3))a/**/union/**/select+1)="
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
123456/**/and(select+1/**/from/**/pg_sleep(3))>0/**/
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
123456'/**/and(select'1'from/**/pg_sleep(3))::text>'0
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
123456/**/and(select+1)>0waitfor/**/delay'0:0:3'/**/
123456'and(select+1)>0waitfor/**/delay'0:0:0
123456'and(select+1)>0waitfor/**/delay'0:0:3
123456/**/and/**/0=DBMS_PIPE.RECEIVE_MESSAGE('i',0)
123456/**/and/**/0=DBMS_PIPE.RECEIVE_MESSAGE('n',3)
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('f',0)='f
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456
123456