SUMO 充电站与电动车详解

发布时间:2024-11-30 06:06

利用电动车充电站,给电动车充电。 #生活知识# #生活小知识# #环保生活窍门# #绿色出行倡议#

官方文档参考:Electric

创建电动车

首先在rou.xml文件中定义一个电动车类型,例如:

<vType id="EV" length="5.00" minGap="2.50" maxSpeed="70.00" color="white" accel="1.0" decel="1.0" sigma="0.5"> <param key="airDragCoefficient" value="0.6"/> <param key="constantPowerIntake" value="100"/> <param key="frontSurfaceArea" value="5"/> <param key="has.battery.device" value="true"/> <param key="internalMomentOfInertia" value="0.01"/> <param key="maximumBatteryCapacity" value="2000"/> <param key="maximumPower" value="1000"/> <param key="propulsionEfficiency" value="0.9"/> <param key="radialDragCoefficient" value="0.5"/> <param key="recuperationEfficiency" value="0.9"/> <param key="rollDragCoefficient" value="0.01"/> <param key="stoppingThreshold" value="0.1"/> <param key="vehicleMass" value="10000"/> </vType> 123456789101112131415

在定义了车辆类型后,在创建车辆时可以指定车辆类型为电动车,并且可以指定车辆当前的实际电量,例如:

<vehicle id="0" type="EV" depart="2.00" color="red"> <param key="actualBatteryCapacity" value="500"/> <route edges="E1 E2"/> </vehicle> 1234

上述方法同样可以用于其他方式(如trip)定义的车辆当中。只需要将xml标签改成<trip></trip>形式的标签,然后将上述参数设置的代码包含在其中。
需要注意的是:电动车的行为并不会受到实际电池电量的影响,即便电池电量为0仍然会继续行驶,如果要避免这种情况,需要通过TRACI来对电动车进行控制。

创建充电站

创建充电站可以在netedit中通过图形化的方式创建,也可以直接编辑.add.xml文件来创建,例如:

<additional> <chargingStation chargeDelay="2" chargeInTransit="0" power="200000" efficiency="0.95" startPos="10" endPos="35" id="CS1" lane="E2_0"/> </additional> 123

注:这里的power的单位是W,指每辆车充电的功率

电动车充电

SUMO中充电有两种方式:停车充电(charge stopped)、途经充电(charge in transit)。在sumocfg文件中加入以下内容,可以在输出的battery.out.xml报告中查看每个时间步各个车辆的充电、电能消耗情况。

<output> <battery-output value="Battery.out.xml"/> <battery-output.precision value="4"/> <device.battery.probability value="1"/> <summary-output value="summary_100.xml"/> </output> 123456

不同的充电方式在输出的battery.out.xml报告中有所体现。停车充电体现为:energyChargedStopped字段、途径充电体现为:energyChargedInTransit字段。充电时,相应的充电站会变成橙色。

途经充电

在充电站的参数chargeInTransit="1"时,表示开启途经充电,任何路过该充电站的电动车都会在此期间被充电。如果同时设置了停车充电,那么在刚进入充电站的时候会进行途经充电,然后电动车在充电站内停下时,只进行停车充电。
在这里插入图片描述
例如在这张图中,车辆刚进入充电站而还没停下,此时充电站变成橙色,说明电动车已经在充电,这种充电方式是途经充电。

停车充电

当车辆行驶到充电站最前端停下时,这时的充电方式为停车充电。要使一辆车在某充电站停下来充电,只需要在车流/车辆的定义之间加上这样一条内容:

<stop chargingStation="CS1" until="50"/> 1

上述定义会使车辆在充电站CS1停留直到第50个time step再继续原有的路线,参数的说明详见stops and waypoints

输出各车辆的充电过程信息

上面介绍的battery.out.xml报告中包含每个时间步各个车辆的充电和耗电情况。例如:(节选了部分)

<timestep time="24.00"> <vehicle id="0" energyConsumed="-11.4572" totalEnergyConsumed="177.1174" totalEnergyRegenerated="68.8627" actualBatteryCapacity="391.7453" maximumBatteryCapacity="2000.0000" chargingStationId="CS1" energyCharged="0.0000" energyChargedInTransit="0.0000" energyChargedStopped="0.0000" speed="4.5569" acceleration="-1.0000" x="157.5089" y="73.4923" lane="E2_0" posOnLane="11.3441" timeStopped="0"/> </timestep> <timestep time="25.00"> <vehicle id="0" energyConsumed="-8.8397" totalEnergyConsumed="177.1174" totalEnergyRegenerated="77.7024" actualBatteryCapacity="453.3628" maximumBatteryCapacity="2000.0000" chargingStationId="CS1" energyCharged="52.7778" energyChargedInTransit="52.7778" energyChargedStopped="0.0000" speed="3.5987" acceleration="-0.9582" x="157.5562" y="77.0904" lane="E2_0" posOnLane="14.9428" timeStopped="0"/> </timestep> ...此处省略了几秒钟 <timestep time="29.00"> <vehicle id="0" energyConsumed="-0.8662" totalEnergyConsumed="177.1174" totalEnergyRegenerated="92.5414" actualBatteryCapacity="679.3129" maximumBatteryCapacity="2000.0000" chargingStationId="CS1" energyCharged="52.7778" energyChargedInTransit="0.0000" energyChargedStopped="52.7778" speed="0.0088" acceleration="-0.8366" x="157.6225" y="82.1412" lane="E2_0" posOnLane="19.9944" timeStopped="1"/> </timestep> 12345678910

第25秒时,车辆进入充电站区域,且充电站chargeInTransit参数为1,因此energyChargedInTransit从24秒的0变成了52.7778。第29秒时电动车在充电站停下,此时energyChargedInTransit变为0,转变为停车充电,此时energyChargedStopped从0变成52.7778。

报告中有几个比较关键的参数:
actualBatteryCapacity:当前时间步的电池电量。这个量是实时变化的,但如果在sumo gui中鼠标右键点击车辆,查看parameters时,会发现actualBatteryCapacity始终不变,这是sumo gui程序的问题,实际上这个值是变化的,以报告中输出的为准。
energyConsumed:当前时间步消耗的能量,可正可负。当为正值时表示车辆消耗了电能,负值出现在减速(acceleration<0)时刻,表示车辆动能回收产生的能量。
totalEnergyConsumed:从出发时刻到当前时间步累计消耗的电能。当动能回收时,这个量保持不变。
totalEnergyRegenerated:从出发时刻到当前时间步累计回收的电能,当energyConsumed为负时,这个值会累加。
energycharged:当前时间步充的电量=power/3600*efficiency 单位Wh。power是充电站在设置时指定的参数,是每个充电桩的功率。
以上几个量存在的关系:
actualBatteryCapacity=actualBatteryCapacity(0)-totalEnergyConsumed+totalEnergyRegenerated+∑energycharged

输出充电站充电过程的信息

在sumocfg文件内加入以下内容:

<output> <chargingstations-output value="chargingstations.xml"/> </output> 123

输出的chargingstations.xml文件内容大致为:

<chargingstations-export> <chargingStation id="CS1" totalEnergyCharged="13827.78" chargingSteps="271"> <vehicle id="f_2.0" type="EV" totalEnergyChargedIntoVehicle="1741.67" chargingBegin="40.00" chargingEnd="73.00"> <step time="40.00" chargingStatus="waitingChargeStopped" energyCharged="0.00" partialCharge="0.00" power="200000.00" efficiency="0.95" actualBatteryCapacity="350.92" maximumBatteryCapacity="2000.00"/> <step time="41.00" chargingStatus="chargingStopped" energyCharged="52.78" partialCharge="52.78" power="200000.00" efficiency="0.95" actualBatteryCapacity="403.70" maximumBatteryCapacity="2000.00"/>…… 123456

其中有几个关键参数:
power:单位:W。
energyCharged:当前时间步该电动车充的电能,单位:W·h。
于是energyCharged = (power * efficiency)/(60 * 60),因为每个时间步默认为1s。
同时,根据对不同的车辆的每个时间步充的电能的分析可知,chargingStation的power参数是针对每个充电桩的。每个充电桩在工作时均具有相同的充电功率。根据充电车辆数和power就可以得到充电站的负荷。

更多有关充电站与电动车的内容(电动车通过TRACI控制充电、带有停车位的充电站、具有一定初始电量分布的电动车)会放在我的专栏里。

网址:SUMO 充电站与电动车详解 https://www.yuejiaxmz.com/news/view/320663

相关内容

没有专属充电站,焦虑了“杂牌”电动车主
电动汽车充电站是如何构成的?
深圳电动车充电调查:“找电站不难,但充电贵,涨好几轮了”
大众电动车销量增长秘籍:自建600座充电站,遍布全国80城
满电不挪车,充电站该不该收占位费?怎么收?
详解Way To Zero:大众汽车致力于为用户提供高效便捷的充电体验
新规“满月”!电动车违规充电仍存在…
浙江省178座高速服务区充电站和低温充电指南来了!
基于微信小程序电动车智能充电系统设计与实现(源码+lw+部署文档+讲解等)
央视报道“换电”,上楼充电、外卖电动车改装能被解决?你看好吗

随便看看