diff --git a/Car.py b/Car.py
index edab79d..0f6b7fe 100644
--- a/Car.py
+++ b/Car.py
@@ -55,9 +55,12 @@ class Car():
self.vmax=0
- self.gamma = 5
+ self.alpha = 0.1
+ self.beta = 0.1
+ self.nu = 0.1
+ self.gamma = 10
self.delta = 0
- self.T = uniform(0.9,1.6)
+ self.T = 1.3#uniform(0.9,1.6)
self.size = 3
self.vroom = 0
@@ -170,6 +173,8 @@ class Car():
return cDist
def getLeaderAtIntersection(self, prevInd, edgeInd):
+ if(self.getCurrentEdge().isSpecial()):
+ return
while(self.route[edgeInd].isSpecial()):
edgeInd = edgeInd + 1
if edgeInd >= len(self.route):
@@ -254,7 +259,7 @@ class Car():
if(self.leaderBefore):
if(vleader == 0):
return
- if(self.distToInter > (self.T * self.vmax) or ((self.distToInter / self.vmax) < (self.leaderDist / vleader) - 2*self.T)):
+ if(self.distToInter > (self.T * self.vmax) or ((self.distToInter / self.vmax) < (self.leaderDist / vleader) - 2 * self.T)):
self.v=self.vmax
else:
self.v = 0
@@ -283,7 +288,31 @@ class Car():
self.v=max(0,vd)
self.updateGraph(self.v, vmax, vsec)
+
+ def conduiteGipps(self, dt): #Nope
+ Va = self.v + 2.5 * self.a * dt * (1 - self.v/self.vmax) * sqrt(0.025 + self.v/self.vmax)
+ #Vb = self.b * dt + sqrt(self.b**2 * dt**2 - self.b * )
+
+ def conduiteKrauss(self, vmax, leader, dt):
+ if self.id == "f_00" and self.controller.t%10>5:
+ self.v = 0
+ return
+ if leader is None:
+ vd = min(self.v + self.a * dt, vmax)
+ self.v = max(0, vd-self.nu)
+ return
+
+ vleader = leader.v
+ bleader = leader.b
+ vb = (vleader + self.v) / 2
+ bb = (bleader + self.b) / 2
+ #S = self.alpha * vleader**2 + self.beta * self.v**2 + self.gamma * self.v + self.delta
+ vsec = vleader + (self.leaderDist - vleader * self.T)/((vb/bb) + self.T)
+ vd = min(self.v + self.a * dt, vsec, vmax)
+ self.v = max(0, vd-self.nu)
+ self.updateGraph(self.v, vmax, vsec)
+
def updateGraph(self, v, vmax, vsec):
if self.infoWidg is None:
return
@@ -299,7 +328,7 @@ class Car():
self.leader=self.getLeader(100)
- self.conduite(self.vmax,self.leader,dt)
+ self.conduiteKrauss(self.vmax,self.leader,dt)
lgt=self.v*dt
diff --git a/test11.rou.xml b/test11.rou.xml
index fa850bc..ca66e09 100644
--- a/test11.rou.xml
+++ b/test11.rou.xml
@@ -4,40 +4,40 @@
-->
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/test12.rou.xml b/test12.rou.xml
index b17576c..3c56a07 100644
--- a/test12.rou.xml
+++ b/test12.rou.xml
@@ -7,7 +7,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test14.rou.xml b/test14.rou.xml
index 122f469..f604cea 100644
--- a/test14.rou.xml
+++ b/test14.rou.xml
@@ -7,10 +7,10 @@
-
+
-
+
diff --git a/test16.rou.xml b/test16.rou.xml
index 8fdb722..dd94b1e 100644
--- a/test16.rou.xml
+++ b/test16.rou.xml
@@ -4,17 +4,17 @@
-->
-
+
-
+
-
+
-
+
diff --git a/test7.rou.xml b/test7.rou.xml
index e311655..6c809ad 100644
--- a/test7.rou.xml
+++ b/test7.rou.xml
@@ -30,4 +30,8 @@
+
+
+
+
diff --git a/test9.net.xml b/test9.net.xml
new file mode 100644
index 0000000..1f37089
--- /dev/null
+++ b/test9.net.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+