瞬时感应线圈检测器

在仿真中实例化#

瞬时感应线圈在附加文件中定义如下:

<instantInductionLoop id="<ID>" lane="<LANE_ID>" pos="<POSITION_ON_LANE>" file="<OUTPUT_FILE>" [friendlyPos="x"]/>

"id" 是您可以用来命名检测器的任意字符串。属性 "lane" 和 "pos" 描述了检测器应放置在哪条车道以及该车道上的具体位置。"file" 属性告诉仿真器将检测器的结果写入哪个文件。该文件将被生成,不需要预先存在,如果已存在将被覆盖且没有任何警告。输出文件所在的文件夹必须存在。

属性:

属性名称 值类型 描述
id id (string) 检测器的 id
lane 引用的车道 id 检测器应放置的车道的 id。该车道必须是所用网络的一部分。
pos float 检测器在车道上的位置,单位为米。该位置必须是 -1*车道长度 和 车道长度 之间的值。如果是负值,位置将从车道末端(车辆驶向的位置)向后计算。
file filename 输出文件的路径。该路径可以是相对路径。如果要丢弃输出,可以指定 "NUL" 或 "/dev/null"。
friendlyPos bool 如果设置,当检测器放置在车道后方时不会报告错误。相反,检测器将被放置在距离车道末端 0.1 米处,或者如果位置为负值且乘以 -1 后大于车道长度,则放置在位置 0.1 处。
vTypes string 要考虑的车辆类型 id 的空格分隔列表,"" 表示所有;默认 ""。

Note

除了在 xml 文件中手动定义检测器外,还可以使用 netedit 以可视化方式定义它们。

生成的输出#

瞬时感应线圈在检测到车辆时立即向输出写入一个值。此检测器区分不同的状态:

  • "enter":车辆在当前仿真步进入检测器
  • "stay":在之前的仿真步进入检测器的车辆仍在检测器上
  • "leave":车辆在当前仿真步离开检测器

在所有情况下都会报告以下值:

名称 类型 描述
id id 检测器的 id
time s 事件发生的时间
state 事件类型,见上文
vehID 位于检测器上的车辆的 id
speed m/s 该时间步中车辆的速度
length m 车辆的长度
type 车辆的类型

如果状态为 "enter",则会额外生成以下值:

名称 类型 描述
gap s 上一辆离开检测器的车辆与当前进入检测器的车辆之间的时间间隔;请注意,仅当另一辆车已经离开检测器时才会生成此值。

如果状态为 "leave" 且车辆通过纵向运动离开检测器,则会额外生成以下值:

名称 类型 描述
occupancy s 车辆在检测器上的时间

如果车辆因到达、换道或瞬移而离开检测器,则会生成不包含占用时间的离开事件。

可视化#

带有感应线圈的场景
感应线圈的特写视图

其他注意事项#

  • 瞬时感应线圈不被 TraCI 直接支持。虽然 可以使用 TraCI 访问仿真感应线圈 允许从普通感应线圈 检索每秒值,但您仍然可以使用 "last step vehicle data" 变量来监控车辆进入和离开的时间。

    Caution

    由于车道的仿真顺序是非确定性的,在一个仿真步中,车辆可能在已经在检测器上的车辆被移动之前进入检测器。离开/进入时间的计算是正确的——离开的车辆时间将比进入的车辆时间低——但报告的顺序是错误的。此外,"gap"/"occupancy" 值可能是错误的。