首先需要创建带有停车位的充电站(停车场和充电站二合一),具体参考我的专栏中其他文章。如果在仿真的某个时刻,希望能够控制电动车前往指定的充电站充电,并且在完成充电后继续前往车辆原来的目的地,那么可以使用以下API:
traci.vehicle.insertStop(vehID=veh_ID,nextStopIndex=0,edgeID=PA_ID,flags=64,duration=1) # 可以使车辆改变路线,到达停车场所在的edge,duration设置为0会出现意料之外的结果
traci.vehicle.setParkingAreaStop(vehID=veh_ID,stopID=PA_ID,duration=duration) # 使车辆被送到停车场的停车位上停下
实际上就是让车辆到停车场停下,而由于充电站和停车场是二合一的,因此在停车场停下时也会被充电。flag参数的说明如下图:
注意:需要使用17.0及以上版本的SUMO,否则会有bug。