IA
This commit is contained in:
parent
2363cb5044
commit
6fbdfb2932
9
Car.py
9
Car.py
@ -36,7 +36,7 @@ class Car():
|
||||
|
||||
#print(f"{self.id} : {startEdge.getID()} -> {nextEdge.getID()} via {laneId}")
|
||||
|
||||
def __init__(self,carID,route,startTime,dynSpeed,parentMap,parentController,infoWidg):
|
||||
def __init__(self,carID,route,startTime,dynSpeed,IA,parentMap,parentController,infoWidg):
|
||||
self.id=carID
|
||||
self.map=parentMap
|
||||
self.controller=parentController
|
||||
@ -49,6 +49,7 @@ class Car():
|
||||
self.leader=None
|
||||
self.startTime=float(startTime)
|
||||
self.dynSpeed=(dynSpeed == '1') if isinstance(dynSpeed, str) else dynSpeed
|
||||
self.IA=(IA == '1') if isinstance(IA, str) else IA
|
||||
self.cligno=[]
|
||||
|
||||
self.pos=[0,0]
|
||||
@ -73,7 +74,7 @@ class Car():
|
||||
self.nu = 0
|
||||
self.gamma = 10
|
||||
self.delta = 0
|
||||
self.T = uniform(0.9,1.6)
|
||||
self.T = uniform(0.9,1.6) if not self.IA else 0
|
||||
self.size = 3
|
||||
|
||||
self.vroom = 0
|
||||
@ -433,7 +434,7 @@ class Car():
|
||||
|
||||
vb = (vleader + self.v) / 2
|
||||
bb = (bleader + self.b) / 2
|
||||
vsec = vleader + (self.leaderDist - vleader * self.T - self.minSpace)/((vb/bb) + self.T)
|
||||
vsec = vleader + (self.leaderDist - vleader * self.T - self.minSpace)/((vb/bb) + self.T) if vb != 0 else vleader
|
||||
vd = min(self.v + self.a * dt, vsec, vmax)
|
||||
self.v = max(0, vd-self.nu)
|
||||
self.updateGraph(self.v, vmax, vsec)
|
||||
@ -516,7 +517,7 @@ class Car():
|
||||
self.signals.updateDisp.emit(("Leader", self.leader if self.leader is None else f"{self.leader.id} @ {self.leaderDist:.2f}m (inter : {self.leaderBefore})"))
|
||||
|
||||
def __copy__(self):
|
||||
copy = Car(self.id, self.rawRoute, self.startTime, self.dynSpeed, self.map, self.controller, self.infoWidg)
|
||||
copy = Car(self.id, self.rawRoute, self.startTime, self.dynSpeed, self.IA, self.map, self.controller, self.infoWidg)
|
||||
copy.route = self.route
|
||||
copy.cligno = self.cligno
|
||||
copy.pos = self.pos.copy()
|
||||
|
@ -136,21 +136,25 @@ class CarController:
|
||||
route=vehicle.route[0].edges.split()
|
||||
if vehicle.name == "vehicle":
|
||||
dynSpeed = '0'
|
||||
IA = '0'
|
||||
if(vehicle.hasChild("param")):
|
||||
for param in vehicle.getChild("param"):
|
||||
key = param.getAttributeSecure("key")
|
||||
if key == "dynamicSpeed":
|
||||
dynSpeed = param.getAttributeSecure("value")
|
||||
elif key == "IA":
|
||||
IA = param.getAttributeSecure("value")
|
||||
if(self.infoWidget is not None) :
|
||||
wId=self.infoWidget.addItem(carInfo(self.infoWidget), vehicle.id)
|
||||
self.cars.append(Car(vehicle.id,route,vehicle.depart,dynSpeed,self.map,self,self.infoWidget.widget(wId)))
|
||||
self.cars.append(Car(vehicle.id,route,vehicle.depart,dynSpeed,IA,self.map,self,self.infoWidget.widget(wId)))
|
||||
else:
|
||||
self.cars.append(Car(vehicle.id,route,vehicle.depart,dynSpeed,self.map,self,None))
|
||||
self.cars.append(Car(vehicle.id,route,vehicle.depart,dynSpeed,IA,self.map,self,None))
|
||||
elif vehicle.name == "flow":
|
||||
randomFlow = 0
|
||||
burstInterval = 1
|
||||
burstTime = 1
|
||||
dynSpeed = '0'
|
||||
IA = '0'
|
||||
if(vehicle.hasChild("param")):
|
||||
for param in vehicle.getChild("param"):
|
||||
key = param.getAttributeSecure("key")
|
||||
@ -162,7 +166,9 @@ class CarController:
|
||||
burstTime = param.getAttributeSecure("value")
|
||||
elif key == "dynamicSpeed":
|
||||
dynSpeed = param.getAttributeSecure("value")
|
||||
self.flows.append(Flow(vehicle.id, route, vehicle.begin, vehicle.vehsPerHour, randomFlow, burstInterval, burstTime, dynSpeed, self.map, self))
|
||||
elif key == "IA":
|
||||
IA = param.getAttributeSecure("value")
|
||||
self.flows.append(Flow(vehicle.id, route, vehicle.begin, vehicle.vehsPerHour, randomFlow, burstInterval, burstTime, dynSpeed, IA, self.map, self))
|
||||
|
||||
def prepareRoute(self):
|
||||
for car in self.cars:
|
||||
|
4
Flow.py
4
Flow.py
@ -4,14 +4,14 @@ import copy
|
||||
from random import randint
|
||||
|
||||
class Flow:
|
||||
def __init__(self,ID,route,start,vph,randomVal, burstInterval, burstTime, dynSpeed,parentMap,parentController):
|
||||
def __init__(self,ID,route,start,vph,randomVal, burstInterval, burstTime, dynSpeed, IA,parentMap,parentController):
|
||||
self.route = route
|
||||
self.id = ID
|
||||
self.startTime = start
|
||||
self.vph = float(vph)
|
||||
self.randomVal = int(randomVal)
|
||||
self.adjVPH = self.vph + randint(0,self.randomVal)
|
||||
self.carModel = Car("model",self.route,start,dynSpeed,parentMap,parentController,None)
|
||||
self.carModel = Car("model",self.route,start,dynSpeed,IA,parentMap,parentController,None)
|
||||
self.carsSpawned = 0
|
||||
self.priority = 0
|
||||
self.burstInterval = float(burstInterval)
|
||||
|
61
rdpt_polytech_burst_2_IA.rou.xml
Normal file
61
rdpt_polytech_burst_2_IA.rou.xml
Normal file
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- generated on 2022-05-10 11:33:54 by Eclipse SUMO netedit Version 1.12.0
|
||||
-->
|
||||
|
||||
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/routes_file.xsd">
|
||||
<flow id="f_0" begin="0.00" end="3600.00" vehsPerHour="1800.00">
|
||||
<param key="burstInterval" value="30"/>
|
||||
<param key="burstTime" value="9"/>
|
||||
<param key="IA" value="1"/>
|
||||
<route edges="E2 30807871 26745293#0 318654808 941887916 600325951#0 600325949 600325948 143886851#0 26745142 E3"/>
|
||||
</flow>
|
||||
<flow id="f_1" begin="0.00" end="3600.00" vehsPerHour="1800.00">
|
||||
<param key="burstInterval" value="30"/>
|
||||
<param key="burstTime" value="9"/>
|
||||
<param key="IA" value="1"/>
|
||||
<route edges="E2 30807871 26745293#0 318654808 941887917#0 -143879980 -E1"/>
|
||||
</flow>
|
||||
<flow id="f_2" begin="0.00" end="3600.00" vehsPerHour="1800.00">
|
||||
<param key="burstInterval" value="30"/>
|
||||
<param key="burstTime" value="9"/>
|
||||
<param key="IA" value="1"/>
|
||||
<route edges="E2 30807871 26745293#0 318654808 941887916 600325951#0 143879989#0 318654806#0 -E0"/>
|
||||
</flow>
|
||||
<flow id="f_3" begin="0.00" end="3600.00" vehsPerHour="1800.00">
|
||||
<param key="burstInterval" value="30"/>
|
||||
<param key="burstTime" value="7"/>
|
||||
<param key="IA" value="1"/>
|
||||
<route edges="E0 -318654806#1 318654807#0 600325948 143886851#0 26745142 E3"/>
|
||||
</flow>
|
||||
<flow id="f_5" begin="0.00" end="3600.00" vehsPerHour="1800.00">
|
||||
<param key="burstInterval" value="30"/>
|
||||
<param key="burstTime" value="7"/>
|
||||
<param key="IA" value="1"/>
|
||||
<route edges="E0 -318654806#1 318654807#0 600325948 143886851#0 301625138 -30807871 -E2"/>
|
||||
</flow>
|
||||
<flow id="f_6" begin="0.00" end="3600.00" vehsPerHour="1800.00">
|
||||
<param key="burstInterval" value="30"/>
|
||||
<param key="burstTime" value="7"/>
|
||||
<param key="IA" value="1"/>
|
||||
<route edges="E0 -318654806#1 318654807#0 600325948 600325946 318654808 941887917#0 -143879980 -E1"/>
|
||||
</flow>
|
||||
<flow id="f_7" begin="0.00" end="3600.00" vehsPerHour="1800.00">
|
||||
<param key="burstInterval" value="30"/>
|
||||
<param key="burstTime" value="15"/>
|
||||
<param key="IA" value="1"/>
|
||||
<route edges="E1 143879980 941887918#0 600325951#0 143879989#0 318654806#0 -E0"/>
|
||||
</flow>
|
||||
<flow id="f_8" begin="0.00" end="3600.00" vehsPerHour="1800.00">
|
||||
<param key="burstInterval" value="30"/>
|
||||
<param key="burstTime" value="15"/>
|
||||
<param key="IA" value="1"/>
|
||||
<route edges="E1 143879980 941887918#0 600325951#0 600325949 600325948 143886851#0 26745142 E3"/>
|
||||
</flow>
|
||||
<flow id="f_9" begin="0.00" end="3600.00" vehsPerHour="1800.00">
|
||||
<param key="burstInterval" value="30"/>
|
||||
<param key="burstTime" value="15"/>
|
||||
<param key="IA" value="1"/>
|
||||
<route edges="E1 143879980 941887918#0 600325951#0 600325949 600325948 143886851#0 301625138 -30807871 -E2"/>
|
||||
</flow>
|
||||
</routes>
|
Loading…
x
Reference in New Issue
Block a user