random spawn+T

This commit is contained in:
leo 2022-03-29 17:26:44 +02:00
parent 708341dd06
commit b55e7bf91d
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB
5 changed files with 86 additions and 5 deletions

4
Car.py
View File

@ -1,6 +1,6 @@
import sumolib import sumolib
from math import dist, ceil, sqrt, log, cos, sin, atan2 from math import dist, ceil, sqrt, log, cos, sin, atan2
from random import randint from random import randint, uniform
from PySide6.QtGui import QPainter from PySide6.QtGui import QPainter
from PySide6.QtCore import QPointF, Signal, QObject from PySide6.QtCore import QPointF, Signal, QObject
@ -57,7 +57,7 @@ class Car():
self.gamma = 5 self.gamma = 5
self.delta = 0 self.delta = 0
self.T = 1.3 self.T = uniform(0.9,1.6)
self.size = 3 self.size = 3
self.vroom = 0 self.vroom = 0

View File

@ -131,7 +131,11 @@ class CarController:
else: else:
self.cars.append(Car(vehicle.id,route,vehicle.depart,self.map,self,None)) self.cars.append(Car(vehicle.id,route,vehicle.depart,self.map,self,None))
elif vehicle.name == "flow": elif vehicle.name == "flow":
self.flows.append(Flow(vehicle.id, route, vehicle.begin, vehicle.vehsPerHour, self.map, self)) randomFlow = 0
if(vehicle.hasChild("param")):
params = vehicle.getChild("param")[0]
randomFlow = params.getAttributeSecure("value")
self.flows.append(Flow(vehicle.id, route, vehicle.begin, vehicle.vehsPerHour, randomFlow,self.map, self))
def prepareRoute(self): def prepareRoute(self):
for car in self.cars: for car in self.cars:

View File

@ -1,13 +1,16 @@
from Car import Car from Car import Car
import copy import copy
from random import randint
class Flow: class Flow:
def __init__(self,ID,route,start,vph,parentMap,parentController): def __init__(self,ID,route,start,vph,randomVal,parentMap,parentController):
self.route = route self.route = route
self.id = ID self.id = ID
self.startTime = start self.startTime = start
self.vph = float(vph) self.vph = float(vph)
self.randomVal = int(randomVal)
self.adjVPH = self.vph + randint(0,self.randomVal)
self.carModel = Car("model",self.route,start,parentMap,parentController,None) self.carModel = Car("model",self.route,start,parentMap,parentController,None)
self.carsSpawned = 0 self.carsSpawned = 0
@ -16,10 +19,11 @@ class Flow:
def shouldSpawn(self, t): def shouldSpawn(self, t):
f = self.carsSpawned / (t/3600) f = self.carsSpawned / (t/3600)
return f < self.vph return f < self.adjVPH
def spawnCar(self): def spawnCar(self):
newCar = copy.copy(self.carModel) newCar = copy.copy(self.carModel)
newCar.id = self.id + str(self.carsSpawned) newCar.id = self.id + str(self.carsSpawned)
self.carsSpawned += 1 self.carsSpawned += 1
self.adjVPH = self.vph + randint(0,self.randomVal)
return newCar return newCar

53
test11_rand.rou.xml Normal file
View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated on 2022-03-29 17:19:57 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="random" value="1000"/>
<route edges="E3 E7 -E40"/>
</flow>
<flow id="f_1" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<param key="random" value="1000"/>
<route edges="E3 E7 E6 E50"/>
</flow>
<flow id="f_10" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<route edges="-E6 E8 E7 -E40"/>
</flow>
<flow id="f_11" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<param key="random" value="1000"/>
<route edges="-E6 E8 E7 E6 E50"/>
</flow>
<flow id="f_2" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<param key="random" value="1000"/>
<route edges="E3 E7 E6 E9 E60"/>
</flow>
<flow id="f_3" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<param key="random" value="1000"/>
<route edges="E4 E6 E50"/>
</flow>
<flow id="f_4" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<param key="random" value="1000"/>
<route edges="E4 E6 E9 E60"/>
</flow>
<flow id="f_5" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<param key="random" value="1000"/>
<route edges="E4 E6 E9 E8 -E30"/>
</flow>
<flow id="f_6" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<param key="random" value="1000"/>
<route edges="-E5 E9 E60"/>
</flow>
<flow id="f_7" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<param key="random" value="1000"/>
<route edges="-E5 E9 E8 -E30"/>
</flow>
<flow id="f_8" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<param key="random" value="1000"/>
<route edges="-E5 E9 E8 E7 -E40"/>
</flow>
<flow id="f_9" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<route edges="-E6 E8 -E30"/>
</flow>
</routes>

20
test16.rou.xml Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated on 2022-03-29 16:45:17 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="random" value="500"/>
<route edges="E1 E9 E8 E7 E40"/>
</flow>
<flow id="f_1" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<route edges="-E4 E10 E9 E8 E20"/>
</flow>
<flow id="f_2" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<route edges="E3 E8 E7 E10 -E10"/>
</flow>
<flow id="f_3" begin="0.00" end="3600.00" vehsPerHour="1800.00">
<route edges="-E2 E7 E10 E9 -E30"/>
</flow>
</routes>