changeset 1303:d828f3f76273

forgot update to triangular FD equations
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 04 Sep 2025 15:56:37 -0400
parents 30711484d2f6
children 9c1870244adf
files trafficintelligence/traffic_engineering.py
diffstat 1 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/trafficintelligence/traffic_engineering.py	Mon Jul 14 11:59:42 2025 -0400
+++ b/trafficintelligence/traffic_engineering.py	Thu Sep 04 15:56:37 2025 -0400
@@ -261,18 +261,23 @@
 class TriangularFD(FundamentalDiagram):
     def __init__(self, vf = None, kc = None, kj = None, qmax = None, w = None):
         FundamentalDiagram.__init__(self,'Triangular')
-        if vf is not None and qmax is not None and kj is not None:
+        if vf is not None and kj is not None:
             self.vf=vf
-            self.qmax = qmax
             self.kj = kj
-            self.kc = qmax/vf
-            self.w = qmax/(self.kc-kj)
+            if qmax is not None:
+                self.qmax = qmax
+                self.kc = qmax/vf
+                self.w = qmax/(self.kc-kj)
+            elif kc is not None:
+                self.kc = kc
+                self.qmax = vf*kc
+                self.w = self.qmax/(self.kc-kj)
 
     def v(self, k):
         if k<self.kc:
             return self.vf
         else:
-            return self.vf*self.kc*(self.kj/k-1)/(self.kj-self.kc)
+            return self.qmax/(self.kj-self.kc)*(1-self.kj/k)
 
 def generateDensities(n, maxDensity):
     return stats.uniform.rvs(size=n)*maxDensity