Mercurial > hg > nsaunier > traffic-intelligence
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
