Difference between revisions of "Traffic Waves"

From WikiWaves
Jump to navigationJump to search
 
(71 intermediate revisions by 4 users not shown)
Line 1: Line 1:
We consider here some simple equations which model traffic flow. A movie of a real experiment
+
{{nonlinear waves course
can be found [http://www.youtube.com/watch?v=Suugn-p5C1M here]
+
| chapter title = Traffic Waves
 +
| next chapter = [[Nonlinear Shallow Water Waves]]
 +
| previous chapter = [[Method of Characteristics for Linear Equations]]
 +
}}
  
= Equations =
+
{{complete pages}}
 +
 
 +
We consider here some simple equations which model traffic flow. This problem is discussed in
 +
[[Billingham and King 2000]].
 +
 
 +
 
 +
[[Category:Reference]]
 +
 
 +
== Equations ==
  
 
We consider a single lane of road, and we measure distance along the road with  
 
We consider a single lane of road, and we measure distance along the road with  
Line 18: Line 29:
 
in and out must be balanced by the change in density. This means that
 
in and out must be balanced by the change in density. This means that
 
<center><math>  
 
<center><math>  
\frac{\partial}{\partial t} \int_{x_1}^{x_2} \rho(x,t) dx = -q(x_2,t) + q(x_1,t)
+
\frac{\partial}{\partial t} \int_{x_1}^{x_2} \rho(x,t) \mathrm{d}x = -q(x_2,t) + q(x_1,t)
 
  </math></center>
 
  </math></center>
 
We now consider continuous densities (which is obviously an approximation) and  
 
We now consider continuous densities (which is obviously an approximation) and  
Line 29: Line 40:
 
\frac{\partial \rho}{\partial t}  + \frac{\partial q}{\partial x} = 0
 
\frac{\partial \rho}{\partial t}  + \frac{\partial q}{\partial x} = 0
 
  </math></center>
 
  </math></center>
Note that this equation has been derived purely from the need to conserve cars and it
+
Note that this equation has been derived purely from the need to conserve cars (it is a conservation equation) and  
currently is not possible to solve until we have derived a connection between <math>\rho</math>
+
is not possible to solve this equation until we have derived a connection between <math>\rho</math>
 
and <math>q</math>.  
 
and <math>q</math>.  
 
== Relationship between <math>\rho</math> and <math>q</math> ==
 
 
The simplest relationship between <math>\rho</math> and <math>q</math> is derived from
 
the following assumptions
 
 
* When the density <math>\rho = 0</math> the speed is <math>v=v_0</math>
 
* When the density is <math>\rho = \rho_{\max} </math> the speed is <math>v=0</math>
 
* The speed is a linear function of <math>\rho</math> between these two values.
 
 
This gives us
 
<center><math>
 
v(\rho) = v_0\frac{\rho_{\max} - \rho}{\rho_{\max}}
 
</math></center>
 
 
  
 
== Equation for <math>\rho</math> only ==
 
== Equation for <math>\rho</math> only ==
  
If we substitute the expression for <math>q</math> into our differential equation we obtain
+
At the moment we assume that we have some expression for <math>v(\rho)</math>
 +
If we substitute the expression for <math>q = v\rho</math> into our differential equation we obtain
 
<center><math>  
 
<center><math>  
 
\frac{\partial \rho}{\partial t}  + \frac{\partial }{\partial x} \left(v(\rho)\rho\right) = 0
 
\frac{\partial \rho}{\partial t}  + \frac{\partial }{\partial x} \left(v(\rho)\rho\right) = 0
Line 67: Line 64:
 
the speed at which disturbances in the density travel.
 
the speed at which disturbances in the density travel.
  
= Small Amplitude Disturbances =
+
== A simple relationship between <math>\rho</math> and <math>q</math> ==
 +
 
 +
The relationship between <math>\rho</math> and <math>q</math> is an equation of state and
 +
there is no ''exact'' equation since it depends on many unknowns. One of the
 +
simplest relationship between <math>\rho</math> and <math>q</math> is derived from
 +
the following assumptions
 +
 
 +
* When the density <math>\rho = 0</math> the speed is <math>v=v_0</math>
 +
* When the density is <math>\rho = \rho_{\max} </math> the speed is <math>v=0</math>
 +
* The speed is a linear function of <math>\rho</math> between these two values.
 +
 
 +
This also gives good fit with measured data. We will either consider the general case or use this simple
 +
relationship. Using this we obtain
 +
<center><math>
 +
v(\rho) = v_0\frac{\rho_{\max} - \rho}{\rho_{\max}}
 +
</math></center>
 +
The flux of cars is given by
 +
<center><math>
 +
q = \rho v(\rho) = v_0\frac{\rho(\rho_{\max} - \rho)}{\rho_{\max}}
 +
</math></center>
 +
and the wave speed is
 +
<center><math>
 +
c(\rho) =  \left(v^{\prime}(\rho)\rho + v(\rho)\right) = -\frac{v_0}{\rho_{\max}}\rho + v_0\frac{\rho_{\max} - \rho}{\rho_{\max}}
 +
= v_0\frac{\rho_{\max} - 2\rho}{\rho_{\max}}
 +
</math></center>
 +
 
 +
{| class="wikitable"
 +
|-
 +
! <math>v</math>
 +
! <math>q</math>
 +
! <math>c</math>
 +
|-
 +
| [[Image:Velocity.jpg|thumb|350px|<math>v(\rho)</math> versus <math>\rho</math>]]
 +
| [[Image:Q_flux.jpg|thumb|350px|<math>q(\rho)</math> versus <math>\rho</math>]]
 +
| [[Image:C_speed.jpg|thumb|350px|<math>\rho(\rho)</math> versus <math>\rho</math>]]
 +
|}
 +
 
 +
== Small Amplitude Disturbances ==
  
 
We can linearise the model by assuming that the variation in density is small so  
 
We can linearise the model by assuming that the variation in density is small so  
Line 78: Line 112:
 
\frac{\partial \tilde{\rho}}{\partial t}  + c(\rho_0) \frac{\partial \tilde{\rho}}{\partial x}  = 0
 
\frac{\partial \tilde{\rho}}{\partial t}  + c(\rho_0) \frac{\partial \tilde{\rho}}{\partial x}  = 0
 
  </math></center>
 
  </math></center>
where the main difference between this and the full equation is that we assume that <math>c</math> is
+
where the main difference between this and the full equation is that the wave speed <math>c</math> is
a constant. This linearises the equation.  
+
a constant. This is the linearised equation. Note that this linearisation does not give a good model because
 +
traffic density does not vary only a small amount about some mean (as is the case for accoustic waves where the
 +
density of air is roughly constant).  
  
 
Under these assumptions the solution to the equation is  
 
Under these assumptions the solution to the equation is  
Line 92: Line 128:
 
<math>\rho</math> is a constant. These are give by  
 
<math>\rho</math> is a constant. These are give by  
 
<center><math>  
 
<center><math>  
x = X(t) = x_0 + c(\rho_0) t.
+
x = X(t) = x_0 + c(\rho_0) t.\,
 
  </math></center>
 
  </math></center>
 +
which are just straight lines of constant slope.  We will see shortly that the full (nonlinear)
 +
equations also possess characteristics.
  
= Nonlinear Initial Value Problem =  
+
== Nonlinear Initial Value Problem ==  
  
 
We wish to solve  
 
We wish to solve  
Line 109: Line 147:
 
If we want <math>\rho(X(t),t)</math> to be a constant then we require
 
If we want <math>\rho(X(t),t)</math> to be a constant then we require
 
<center><math>  
 
<center><math>  
\frac{d}{dt}\rho(X(t),t) = \frac{d X}{dt} \frac{\partial \rho}{\partial x} +  
+
\frac{\mathrm{d}}{\mathrm{d}t}\rho(X(t),t) = \frac{\mathrm{d} X}{\mathrm{d}t} \frac{\partial \rho}{\partial x} +  
 
\frac{\partial \rho}{\partial t} = 0.  
 
\frac{\partial \rho}{\partial t} = 0.  
 
</math></center>
 
</math></center>
 
Comparing this to the governing partial differential equation we can see that we require
 
Comparing this to the governing partial differential equation we can see that we require
 
<center><math>  
 
<center><math>  
\frac{d X}{dt}  = c(\rho)  
+
\frac{\mathrm{d} X}{\mathrm{d}t}  = c(\rho)  
 
</math></center>
 
</math></center>
This means that the characteristics are straight lines with
+
This means that the characteristics are straight lines (since <math>\rho</math> is constant) with
 +
slope given by <math> c(\rho_0(x_0))</math> so that the equation for the characteristics is
 
<center><math>  
 
<center><math>  
 
X(t)  = x_0 + c(\rho_0(x_0))t \,
 
X(t)  = x_0 + c(\rho_0(x_0))t \,
Line 124: Line 163:
 
all we can do is write
 
all we can do is write
 
<center><math>  
 
<center><math>  
\rho(x_0 + c(\rho_0(x_0))t,t) = \rho(x_0)\,
+
\rho(x_0 + c(\rho_0(x_0))t,t) = \rho_0(x_0)\,
 
</math></center>
 
</math></center>
 
which allows us to calculate the solution stepping forward in time, but not to determine the solution given
 
which allows us to calculate the solution stepping forward in time, but not to determine the solution given
a value of <math>(x,t)</math>.   
+
a value of <math>(x,t)</math> (because we have no way of knowing what <math>c(\rho_0(x_0))</math> is.   
  
 
The characteristics are a family of straight lines which will all have different slopes. If two characteristics
 
The characteristics are a family of straight lines which will all have different slopes. If two characteristics
 
meet, our solution method will break down because there will be two values of the density <math>\rho</math>.  
 
meet, our solution method will break down because there will be two values of the density <math>\rho</math>.  
 
This gives rise to a '''shock'''. It turns
 
This gives rise to a '''shock'''. It turns
out that this is a problem with the equations themselves and not with the solution method and requires special
+
out that this the formation of shocks is a product of the equations themselves and not with the solution method.
methods.
+
We will see shortly that special methods are required to treat these shocks.  
  
== Case when no shocks are formed ==
+
=== Case when no shocks are formed ===
  
 
The characteristic curves will fill the space without meeting provided that the wave speed <math>c(\rho_0)</math>
 
The characteristic curves will fill the space without meeting provided that the wave speed <math>c(\rho_0)</math>
Line 153: Line 192:
 
by expansion of the initial density.  
 
by expansion of the initial density.  
  
=== Riemann problem and the expansion fan ===
+
==== No shock example ====
 +
 
 +
We consider the case when <math>\rho_{\max} = v_0 = 1</math> and where the initial density is given
 +
by <math>\rho_0 = 1/2(1- \tanh(x))</math>. The figures below show the initial density, the initial speed,
 +
the characteristics and <math>\rho(x,t)</math> for this case.
 +
 
 +
{| class="wikitable"
 +
|-
 +
! <math>\rho</math>
 +
! <math>c</math>
 +
|-
 +
| [[Image:Traffic example1 rho.jpg|thumb|350px| <math>\rho_0 = 1/2(1- \tanh(x))</math> ]]
 +
| [[Image:Traffic_example1_c.jpg|thumb|350px|<math>c(\rho_0)</math>]]
 +
|}
 +
 
 +
{| class="wikitable"
 +
|-
 +
! characteristics
 +
! <math>\rho(x,t)</math>
 +
|-
 +
| [[Image:Traffic_example1_characteristics.jpg|thumb|350px|Characterisitics for  <math>\rho_0 = 1/2(1- \tanh(x))</math>]]
 +
| [[Image:Traffic_example11.gif|thumb|350px|<math>\rho(x,t) </math><math> for </math><math>\rho_0 = 1/2(1- \tanh(x))</math>]]
 +
|}
 +
 
 +
==== Riemann problem and the expansion fan ====
  
 
We can consider a simple problem in which there is a jump in the initial density
 
We can consider a simple problem in which there is a jump in the initial density
Line 178: Line 241:
 
\right.
 
\right.
 
</math></center>
 
</math></center>
We can then see that we have lines of uniformly varying slope for <math>-\epsilon<x<\epsilon</math>
+
We can then see that we have lines of uniformly varying slope for <math>-\epsilon < x <\epsilon</math>
 
with slope between <math>c(\rho_L)</math> and <math>c(\rho_R)</math>. If we then take the limit
 
with slope between <math>c(\rho_L)</math> and <math>c(\rho_R)</math>. If we then take the limit
 
as <math>\epsilon \to 0</math> we obtain an expansion fan emanating from <math>x=0</math>.
 
as <math>\epsilon \to 0</math> we obtain an expansion fan emanating from <math>x=0</math>.
Line 186: Line 249:
 
c(\rho) = v_0\frac{\rho_{\max} - 2\rho}{\rho_{\max}}
 
c(\rho) = v_0\frac{\rho_{\max} - 2\rho}{\rho_{\max}}
 
</math></center>
 
</math></center>
then we know that on the lines of the expansion fan (which all start at <math>x=0</math> we have
+
then we know that on the lines of the expansion fan (which all start at <math>x=0</math>) we have
 
<math>c(\rho) = x/t</math>. We can rearrange this and solve for <math>x</math> and obtain
 
<math>c(\rho) = x/t</math>. We can rearrange this and solve for <math>x</math> and obtain
<math>\rho = 1/2 \rho_{\max} (1-x/v_0 t)</math>
+
<math>\rho =\frac{ 1}{2} \rho_{\max} (1-x/v_0 t)</math>
  
 
The solution is then given by   
 
The solution is then given by   
Line 203: Line 266:
 
This solution is known as an '''expansion fan'''.
 
This solution is known as an '''expansion fan'''.
  
== Shocks ==
+
 
 +
We consider the case when <math>\rho_{\max} = v_0 = 1</math> and where the initial density is given
 +
by
 +
<center><math>
 +
\rho(x,0) =
 +
\left\{
 +
\begin{matrix}
 +
0.6,& x < 0 \\
 +
0.3,& x > 0.
 +
\end{matrix}
 +
\right.
 +
</math></center> The figures below show the initial density, the initial speed,
 +
the characteristics and <math>\rho(x,t)</math> for this case.
 +
 
 +
{| class="wikitable"
 +
|-
 +
! <math>\rho</math>
 +
! <math>c</math>
 +
|-
 +
| [[Image:Expansion_fan_rho.jpg|thumb|350px| <math>\rho_0</math> ]]
 +
| [[Image:Expansion_fan_c.jpg|thumb|350px|<math>c(\rho_0)</math>]]
 +
|}
 +
 
 +
{| class="wikitable"
 +
|-
 +
! characteristics
 +
! <math>\rho(x,t)</math>
 +
|-
 +
| [[Image:Expansion_fan_characteristics.jpg|thumb|350px|Characterisitics]]
 +
| [[Image:Expansion_fan2.gif|thumb|350px|<math>\rho(x,t)</math>]]
 +
|}
 +
 
 +
=== Shocks ===
  
 
So far we have only considered the case when <math>c(x_0)</math> is monotonically increasing so that
 
So far we have only considered the case when <math>c(x_0)</math> is monotonically increasing so that
two characteristics never cross. We now consider the case when characteristics can meet. We can easily see that
+
two characteristics never cross. We now consider the case when characteristics can meet.  
 +
A movie of this case is shown below.
 +
 
 +
{{#ev:youtube|Suugn-p5C1M}}
 +
 
 +
We can easily see that
 
the first characteristics to meet will be neighbouring characteristics. Consider two characteristics
 
the first characteristics to meet will be neighbouring characteristics. Consider two characteristics
 
with  
 
with  
Line 217: Line 317:
 
Then these curves will meet at time <math>T</math> where  
 
Then these curves will meet at time <math>T</math> where  
 
<center><math>  
 
<center><math>  
x_0 + c(x_0)T = \delta x + c(x_0+\delta x)T\,
+
x_0 + c(x_0)T = x_0 + \delta x + c(x_0+\delta x)T\,
 
</math></center>  
 
</math></center>  
 
which implies that
 
which implies that
Line 224: Line 324:
 
</math></center>  
 
</math></center>  
 
Note the following
 
Note the following
* If <math>c^{\prime}(x) < 0 </math> then no shock will form.  
+
* If <math>c^{\prime}(x) > 0 </math> then no shock will form.  
* The shock first forms at <math>T_{\min} = \min_{-\infty < t <\infty}\frac{1}{c^{\prime}(x_0)} </math> .
+
* The shock first forms at the minimum positive value of
 +
<math> - \frac{1}{c^{\prime}(x)} </math>  for <math> -\infty < x <\infty </math>.
  
=== Shock Fitting ===
+
==== Shock Fitting ====
  
 
If we calculate the solution using our formula  
 
If we calculate the solution using our formula  
Line 234: Line 335:
 
</math></center>
 
</math></center>
 
then we find that the solution becomes multivalued in the case when a shock forms.
 
then we find that the solution becomes multivalued in the case when a shock forms.
We then have to fit a shock which we do by imposing the condition that equal
+
We then have to fit a shock. One way to do this is by imposing the condition that equal
areas are removed and added to the solution. This corresponds to the condition that
+
areas are removed and added when we chose the position of the shock.  
 +
This corresponds to the condition that
 
the number of cars must be conserved
 
the number of cars must be conserved
  
=== Speed of the shock ===
+
==== Speed of the shock ====
  
 
If we consider the case when there is a shock at <math>s(t)</math> with  
 
If we consider the case when there is a shock at <math>s(t)</math> with  
<math>\rho = \rho^{-}</math> at <math>s=s^{-}</math> and  
+
<math>\rho = \rho^{-}</math> at <math>x=s^{-}</math>  
<math>\rho = \rho^{+}</math> at <math>s=s^{+}</math>. If we substitute
+
and  
 +
<math>\rho = \rho^{+}</math> at <math>x=s^{+}</math>
 +
(where <math>s^{-}</math>
 +
is just less than s(t) and <math>s^{+}</math>
 +
is just greater than s(t) ). If we substitute
 
this into the governing integral equation we obtain
 
this into the governing integral equation we obtain
 
<center><math>  
 
<center><math>  
\frac{\partial}{\partial t} \left( \int_{x_1}^{s(t)} + \int_{s(t)}^{x_2}\right)
+
\frac{\partial}{\partial t} \left( \int_{x_1}^{s(t)} \rho(x,t)\mathrm{d}x + \int_{s(t)}^{x_2}
  \rho(x,t)dx = q(x_1,t) - q(x_2,t)
+
  \rho(x,t)\mathrm{d}x \right) = q(x_1,t) - q(x_2,t)
 
</math></center>
 
</math></center>
 
and hence
 
and hence
 
<center><math>  
 
<center><math>  
 
  \int_{x_1}^{x_2}
 
  \int_{x_1}^{x_2}
\frac{\partial \rho(x,t)}{\partial t} dx + \frac{ds}{dt}\rho^{-}  
+
\frac{\partial \rho(x,t)}{\partial t} \mathrm{d}x + \frac{\mathrm{d}s}{\mathrm{d}t}\rho^{-}  
- \frac{ds}{dt}\rho^{+}  = q(x_1,t) - q(x_2,t)
+
- \frac{\mathrm{d}s}{\mathrm{d}t}\rho^{+}  = q(x_1,t) - q(x_2,t)
 
</math></center>
 
</math></center>
 
If we now take the limit as <math>x_1\to x_2</math> we obtain
 
If we now take the limit as <math>x_1\to x_2</math> we obtain
 
<center><math>  
 
<center><math>  
\frac{ds}{dt}\rho^{-}  
+
\frac{\mathrm{d}s}{\mathrm{d}t}\rho^{-}  
- \frac{ds}{dt}\rho^{+}  = q(\rho^{-}) - q(\rho^{-})
+
- \frac{\mathrm{d}s}{\mathrm{d}t}\rho^{+}  = q(\rho^{-}) - q(\rho^{+})
 
</math></center>
 
</math></center>
 
so that
 
so that
 
<center><math>  
 
<center><math>  
\frac{ds}{dt} = \frac{q(\rho^{-}) - q(\rho^{-})}
+
\frac{\mathrm{d}s}{\mathrm{d}t} = \frac{q(\rho^{-}) - q(\rho^{+})}
 
{\rho^{-} - \rho^{+}}   
 
{\rho^{-} - \rho^{+}}   
 
</math></center>
 
</math></center>
  
=== Riemann problem ===
+
==== Shock example ====
 +
 
 +
We consider the case when <math>\rho_{\max} = v_0 = 1</math> and where the initial density is given
 +
by <math>\rho_0 = 1/2(1 + \tanh(x))</math>. The figures below show the initial density, the initial speed,
 +
the characteristics and <math>\rho(x,t)</math> for this case.
 +
 
 +
{| class="wikitable"
 +
|-
 +
! <math>\rho</math>
 +
! <math>c</math>
 +
|-
 +
| [[Image:Traffic example2 rho.jpg|thumb|350px| <math>\rho_0 = 1/2(1+ \tanh(x))</math> ]]
 +
| [[Image:Traffic_example2_c.jpg|thumb|350px|<math>c(\rho_0)</math>]]
 +
|}
 +
 
 +
{| class="wikitable"
 +
|-
 +
! characteristics
 +
! <math>\rho(x,t)</math>
 +
|-
 +
| [[Image:Traffic_example2_characteristics.jpg|thumb|350px|Characterisitics for  <math>\rho_0 = 1/2(1+ \tanh(x))</math>]]
 +
| [[Image:Traffic_example2.gif|thumb|350px|<math>\rho(x,t) </math><math> for </math><math>\rho_0 = 1/2(1+ \tanh(x))</math> Dotted solution is without shock fitting.]]
 +
|}
 +
 
 +
==== Riemann problem ====
  
 
We now consider the Riemann problem  
 
We now consider the Riemann problem  
Line 279: Line 409:
 
where <math>\rho_{L} < \rho_{R}</math>. In this case a shock forms immediately and
 
where <math>\rho_{L} < \rho_{R}</math>. In this case a shock forms immediately and
 
the characteristics terminate at the shock. The shock moves with constant speed given by
 
the characteristics terminate at the shock. The shock moves with constant speed given by
the equation for the motion of the shock.  
+
the equation for the motion of the shock (or can be found by the equal areas rule). We obtain
[[Category:789]]
+
<center><math>
 +
\rho(x,t) =
 +
\left\{
 +
\begin{matrix}
 +
\rho_{L},& x < \frac{1}{2} \left(c(\rho_{L}) + c(\rho_{R}) \right) t  \\
 +
\rho_{R},& x > \frac{1}{2} \left(c(\rho_{L}) + c(\rho_{R}) \right) t
 +
\end{matrix}
 +
\right.
 +
</math></center>
 +
We consider the case when <math>\rho_{\max} = v_0 = 1</math> and where the initial density is given
 +
by
 +
<center><math>
 +
\rho(x,0) =
 +
\left\{
 +
\begin{matrix}
 +
0.3,& x < 0 \\
 +
0.6,& x > 0
 +
\end{matrix}
 +
\right.
 +
</math></center>
 +
 
 +
The figures below show the initial density, the initial speed,
 +
the characteristics, and <math>\rho(x,t)</math> for this case.
 +
 
 +
{| class="wikitable"
 +
|-
 +
! <math>\rho</math>
 +
! <math>c</math>
 +
|-
 +
| [[Image:Shock_rho.jpg|thumb|350px| <math>\rho_0</math> ]]
 +
| [[Image:Shock_c.jpg|thumb|350px|<math>c(\rho_0)</math>]]
 +
|}
 +
 
 +
{| class="wikitable"
 +
|-
 +
! characteristics
 +
! <math>\rho(x,t)</math>
 +
|-
 +
| [[Image:Shock_characteristics.jpg|thumb|350px|Characterisitics with shock shown in green.]]
 +
| [[Image:Shock3.gif|thumb|350px|<math>\rho(x,t)</math> with the red dotted line showing the solution without shock fitting]]
 +
|}
 +
 
 +
== Lecture Videos ==
 +
 
 +
=== Part 1 ===
 +
 
 +
{{#ev:youtube|SWIXL97H0fw}}
 +
 
 +
=== Part 2 ===
 +
 
 +
{{#ev:youtube|j652tvrgm4c}}
 +
 
 +
=== Part 3 ===
 +
 
 +
{{#ev:youtube|QVtYsUGtb7I}}
 +
 
 +
=== Part 4 ===
 +
 
 +
{{#ev:youtube|Ik2Q7H_aIV8}}
 +
 
 +
=== Part 5 ===
 +
 
 +
{{#ev:youtube|lNeFNHAqgEA}}
 +
 
 +
=== Part 6 ===
 +
 
 +
{{#ev:youtube|Yo0sW3Nh2FI}}
 +
 
 +
=== Part 7 ===
 +
 
 +
{{#ev:youtube|gOEMfOQZAAM}}
 +
 
 +
=== Part 8 ===
 +
 
 +
{{#ev:youtube|ZwvTZcWLZKM}}
 +
 
 +
[[Category:Simple Nonlinear Waves]]

Latest revision as of 05:04, 27 July 2023



We consider here some simple equations which model traffic flow. This problem is discussed in Billingham and King 2000.

Equations

We consider a single lane of road, and we measure distance along the road with the variable [math]\displaystyle{ x }[/math] and [math]\displaystyle{ t }[/math] is time. We define the following variables

[math]\displaystyle{ \begin{matrix} &\rho(x,t) &: &\mbox{car density (cars/km)} \\ & v(\rho) &: &\mbox{car velocity (km/hour)} \\ & q(x,t) =\rho v &: &\mbox{car flow rate (cars/hour)} \\ \end{matrix} }[/math]

If we consider a finite length of road [math]\displaystyle{ x_1\leq x \leq x_2 }[/math] then the net flow of cars in and out must be balanced by the change in density. This means that

[math]\displaystyle{ \frac{\partial}{\partial t} \int_{x_1}^{x_2} \rho(x,t) \mathrm{d}x = -q(x_2,t) + q(x_1,t) }[/math]

We now consider continuous densities (which is obviously an approximation) and set [math]\displaystyle{ x_2 = x_1 + \Delta x }[/math] and we obtain

[math]\displaystyle{ \frac{\partial}{\partial t} \rho(x_1,t) = -\frac{q(x_2,t) + q(x_1,t)}{\Delta x} }[/math]

and if we take the limit as [math]\displaystyle{ \Delta x \to 0 }[/math] we obtain the differential equation

[math]\displaystyle{ \frac{\partial \rho}{\partial t} + \frac{\partial q}{\partial x} = 0 }[/math]

Note that this equation has been derived purely from the need to conserve cars (it is a conservation equation) and is not possible to solve this equation until we have derived a connection between [math]\displaystyle{ \rho }[/math] and [math]\displaystyle{ q }[/math].

Equation for [math]\displaystyle{ \rho }[/math] only

At the moment we assume that we have some expression for [math]\displaystyle{ v(\rho) }[/math] If we substitute the expression for [math]\displaystyle{ q = v\rho }[/math] into our differential equation we obtain

[math]\displaystyle{ \frac{\partial \rho}{\partial t} + \frac{\partial }{\partial x} \left(v(\rho)\rho\right) = 0 }[/math]

which gives us

[math]\displaystyle{ \frac{\partial \rho}{\partial t} + \left(v^{\prime}(\rho)\rho + v(\rho)\right) \frac{\partial \rho }{\partial x} = 0 }[/math]

or

[math]\displaystyle{ \frac{\partial \rho}{\partial t} + c(\rho)\frac{\partial \rho }{\partial x} = 0 }[/math]

where [math]\displaystyle{ c(\rho) = \left(v^{\prime}(\rho)\rho + v(\rho)\right) }[/math] is the kinematic wave speed. Note that this is not the speed of the cars, but the speed at which disturbances in the density travel.

A simple relationship between [math]\displaystyle{ \rho }[/math] and [math]\displaystyle{ q }[/math]

The relationship between [math]\displaystyle{ \rho }[/math] and [math]\displaystyle{ q }[/math] is an equation of state and there is no exact equation since it depends on many unknowns. One of the simplest relationship between [math]\displaystyle{ \rho }[/math] and [math]\displaystyle{ q }[/math] is derived from the following assumptions

  • When the density [math]\displaystyle{ \rho = 0 }[/math] the speed is [math]\displaystyle{ v=v_0 }[/math]
  • When the density is [math]\displaystyle{ \rho = \rho_{\max} }[/math] the speed is [math]\displaystyle{ v=0 }[/math]
  • The speed is a linear function of [math]\displaystyle{ \rho }[/math] between these two values.

This also gives good fit with measured data. We will either consider the general case or use this simple relationship. Using this we obtain

[math]\displaystyle{ v(\rho) = v_0\frac{\rho_{\max} - \rho}{\rho_{\max}} }[/math]

The flux of cars is given by

[math]\displaystyle{ q = \rho v(\rho) = v_0\frac{\rho(\rho_{\max} - \rho)}{\rho_{\max}} }[/math]

and the wave speed is

[math]\displaystyle{ c(\rho) = \left(v^{\prime}(\rho)\rho + v(\rho)\right) = -\frac{v_0}{\rho_{\max}}\rho + v_0\frac{\rho_{\max} - \rho}{\rho_{\max}} = v_0\frac{\rho_{\max} - 2\rho}{\rho_{\max}} }[/math]
[math]\displaystyle{ v }[/math] [math]\displaystyle{ q }[/math] [math]\displaystyle{ c }[/math]
[math]\displaystyle{ v(\rho) }[/math] versus [math]\displaystyle{ \rho }[/math]
[math]\displaystyle{ q(\rho) }[/math] versus [math]\displaystyle{ \rho }[/math]
[math]\displaystyle{ \rho(\rho) }[/math] versus [math]\displaystyle{ \rho }[/math]

Small Amplitude Disturbances

We can linearise the model by assuming that the variation in density is small so that we can write

[math]\displaystyle{ \rho = \rho_0 + \tilde{\rho} }[/math]

where we assume that [math]\displaystyle{ \tilde{\rho} }[/math] is small. This allows us to write the equations as

[math]\displaystyle{ \frac{\partial \tilde{\rho}}{\partial t} + c(\rho_0) \frac{\partial \tilde{\rho}}{\partial x} = 0 }[/math]

where the main difference between this and the full equation is that the wave speed [math]\displaystyle{ c }[/math] is a constant. This is the linearised equation. Note that this linearisation does not give a good model because traffic density does not vary only a small amount about some mean (as is the case for accoustic waves where the density of air is roughly constant).

Under these assumptions the solution to the equation is

[math]\displaystyle{ \tilde{\rho} = f(x - c(\rho_0)t) }[/math]

where [math]\displaystyle{ f }[/math] is determined by the initial condition. This represents disturbances which travel with speed [math]\displaystyle{ c(\rho_0) }[/math] in the positive [math]\displaystyle{ x }[/math] direction.

We now consider the characteristic curves which are curves along which the density [math]\displaystyle{ \rho }[/math] is a constant. These are give by

[math]\displaystyle{ x = X(t) = x_0 + c(\rho_0) t.\, }[/math]

which are just straight lines of constant slope. We will see shortly that the full (nonlinear) equations also possess characteristics.

Nonlinear Initial Value Problem

We wish to solve

[math]\displaystyle{ \frac{\partial \rho}{\partial t} + c(\rho) \frac{\partial \rho}{\partial x} = 0 }[/math]

subject to the initial conditions

[math]\displaystyle{ \rho(x,0) = \rho_0(x) \, }[/math]

It turns out that the concept of characteristic curves is very important for this problem.

If we want [math]\displaystyle{ \rho(X(t),t) }[/math] to be a constant then we require

[math]\displaystyle{ \frac{\mathrm{d}}{\mathrm{d}t}\rho(X(t),t) = \frac{\mathrm{d} X}{\mathrm{d}t} \frac{\partial \rho}{\partial x} + \frac{\partial \rho}{\partial t} = 0. }[/math]

Comparing this to the governing partial differential equation we can see that we require

[math]\displaystyle{ \frac{\mathrm{d} X}{\mathrm{d}t} = c(\rho) }[/math]

This means that the characteristics are straight lines (since [math]\displaystyle{ \rho }[/math] is constant) with slope given by [math]\displaystyle{ c(\rho_0(x_0)) }[/math] so that the equation for the characteristics is

[math]\displaystyle{ X(t) = x_0 + c(\rho_0(x_0))t \, }[/math]

This does not allow us to write down a solution to the initial value problem, all we can do is write

[math]\displaystyle{ \rho(x_0 + c(\rho_0(x_0))t,t) = \rho_0(x_0)\, }[/math]

which allows us to calculate the solution stepping forward in time, but not to determine the solution given a value of [math]\displaystyle{ (x,t) }[/math] (because we have no way of knowing what [math]\displaystyle{ c(\rho_0(x_0)) }[/math] is.

The characteristics are a family of straight lines which will all have different slopes. If two characteristics meet, our solution method will break down because there will be two values of the density [math]\displaystyle{ \rho }[/math]. This gives rise to a shock. It turns out that this the formation of shocks is a product of the equations themselves and not with the solution method. We will see shortly that special methods are required to treat these shocks.

Case when no shocks are formed

The characteristic curves will fill the space without meeting provided that the wave speed [math]\displaystyle{ c(\rho_0) }[/math] is a monotonically increasing function of the distance [math]\displaystyle{ x }[/math]. If we work with our previous model we have

[math]\displaystyle{ v(\rho) = v_0\frac{\rho_{\max} - \rho}{\rho_{\max}} }[/math]

and

[math]\displaystyle{ c(\rho) = v_0\frac{\rho_{\max} - 2\rho}{\rho_{\max}} }[/math]

so that [math]\displaystyle{ c }[/math] is a monotonically decreasing function of density [math]\displaystyle{ \rho }[/math]. This means that the wave speed [math]\displaystyle{ c(\rho_0) }[/math] will be a monotonically increasing function of the distance [math]\displaystyle{ x }[/math] if an only if the density is a monotonically decreasing function. In this case the solution can be calculated straightforwardly by expansion of the initial density.

No shock example

We consider the case when [math]\displaystyle{ \rho_{\max} = v_0 = 1 }[/math] and where the initial density is given by [math]\displaystyle{ \rho_0 = 1/2(1- \tanh(x)) }[/math]. The figures below show the initial density, the initial speed, the characteristics and [math]\displaystyle{ \rho(x,t) }[/math] for this case.

[math]\displaystyle{ \rho }[/math] [math]\displaystyle{ c }[/math]
[math]\displaystyle{ \rho_0 = 1/2(1- \tanh(x)) }[/math]
[math]\displaystyle{ c(\rho_0) }[/math]
characteristics [math]\displaystyle{ \rho(x,t) }[/math]
Characterisitics for [math]\displaystyle{ \rho_0 = 1/2(1- \tanh(x)) }[/math]
[math]\displaystyle{ \rho(x,t) }[/math][math]\displaystyle{ for }[/math][math]\displaystyle{ \rho_0 = 1/2(1- \tanh(x)) }[/math]

Riemann problem and the expansion fan

We can consider a simple problem in which there is a jump in the initial density

[math]\displaystyle{ \rho(x,0) = \left\{ \begin{matrix} \rho_{L},& x \lt 0 \\ \rho_{R},& x \gt 0 \end{matrix} \right. }[/math]

where [math]\displaystyle{ \rho_{L} \gt \rho_{R} }[/math] so that we do not form a shock. In this case the characteristics on each side of [math]\displaystyle{ x=0 }[/math] have a different slope and the question is what happens between. It is easiest to think about the following problem

[math]\displaystyle{ \rho(x,0) = \left\{ \begin{matrix} \rho_{L},& x \lt -\epsilon \\ \frac{\rho_{R}-\rho_{L}}{2\epsilon}x + \frac{\rho_{R}+\rho_{L}}{2} & -\epsilon \leq x \leq \epsilon \\ \rho_{R},& x \gt \epsilon \end{matrix} \right. }[/math]

We can then see that we have lines of uniformly varying slope for [math]\displaystyle{ -\epsilon \lt x \lt \epsilon }[/math] with slope between [math]\displaystyle{ c(\rho_L) }[/math] and [math]\displaystyle{ c(\rho_R) }[/math]. If we then take the limit as [math]\displaystyle{ \epsilon \to 0 }[/math] we obtain an expansion fan emanating from [math]\displaystyle{ x=0 }[/math].

If we assume that

[math]\displaystyle{ c(\rho) = v_0\frac{\rho_{\max} - 2\rho}{\rho_{\max}} }[/math]

then we know that on the lines of the expansion fan (which all start at [math]\displaystyle{ x=0 }[/math]) we have [math]\displaystyle{ c(\rho) = x/t }[/math]. We can rearrange this and solve for [math]\displaystyle{ x }[/math] and obtain [math]\displaystyle{ \rho =\frac{ 1}{2} \rho_{\max} (1-x/v_0 t) }[/math]

The solution is then given by

[math]\displaystyle{ \rho(x,t) = \left\{ \begin{matrix} \rho_{L},& x \lt c(\rho_L) t\\ \frac{ \rho_{\max}}{2} (1-x/v_0 t),& c(\rho_L) t \leq x \leq c(\rho_R) t\\ \rho_{R},& x \gt c(\rho_R) t \end{matrix} \right. }[/math]

This solution is known as an expansion fan.


We consider the case when [math]\displaystyle{ \rho_{\max} = v_0 = 1 }[/math] and where the initial density is given by

[math]\displaystyle{ \rho(x,0) = \left\{ \begin{matrix} 0.6,& x \lt 0 \\ 0.3,& x \gt 0. \end{matrix} \right. }[/math]

The figures below show the initial density, the initial speed,

the characteristics and [math]\displaystyle{ \rho(x,t) }[/math] for this case.

[math]\displaystyle{ \rho }[/math] [math]\displaystyle{ c }[/math]
[math]\displaystyle{ \rho_0 }[/math]
[math]\displaystyle{ c(\rho_0) }[/math]
characteristics [math]\displaystyle{ \rho(x,t) }[/math]
Characterisitics
[math]\displaystyle{ \rho(x,t) }[/math]

Shocks

So far we have only considered the case when [math]\displaystyle{ c(x_0) }[/math] is monotonically increasing so that two characteristics never cross. We now consider the case when characteristics can meet. A movie of this case is shown below.

We can easily see that the first characteristics to meet will be neighbouring characteristics. Consider two characteristics with

[math]\displaystyle{ X_1(t) = x_0 + c(x_0)t\, }[/math]
[math]\displaystyle{ X_2(t) = x_0 + \delta x + c(x_0+\delta x)t\, }[/math]

Then these curves will meet at time [math]\displaystyle{ T }[/math] where

[math]\displaystyle{ x_0 + c(x_0)T = x_0 + \delta x + c(x_0+\delta x)T\, }[/math]

which implies that

[math]\displaystyle{ T = -\frac{1}{c^{\prime}(x_0)} }[/math]

Note the following

  • If [math]\displaystyle{ c^{\prime}(x) \gt 0 }[/math] then no shock will form.
  • The shock first forms at the minimum positive value of

[math]\displaystyle{ - \frac{1}{c^{\prime}(x)} }[/math] for [math]\displaystyle{ -\infty \lt x \lt \infty }[/math].

Shock Fitting

If we calculate the solution using our formula

[math]\displaystyle{ \rho(x_0 + c(\rho_0(x_0))t,t) = \rho(x_0)\, }[/math]

then we find that the solution becomes multivalued in the case when a shock forms. We then have to fit a shock. One way to do this is by imposing the condition that equal areas are removed and added when we chose the position of the shock. This corresponds to the condition that the number of cars must be conserved

Speed of the shock

If we consider the case when there is a shock at [math]\displaystyle{ s(t) }[/math] with [math]\displaystyle{ \rho = \rho^{-} }[/math] at [math]\displaystyle{ x=s^{-} }[/math] and [math]\displaystyle{ \rho = \rho^{+} }[/math] at [math]\displaystyle{ x=s^{+} }[/math] (where [math]\displaystyle{ s^{-} }[/math] is just less than s(t) and [math]\displaystyle{ s^{+} }[/math] is just greater than s(t) ). If we substitute this into the governing integral equation we obtain

[math]\displaystyle{ \frac{\partial}{\partial t} \left( \int_{x_1}^{s(t)} \rho(x,t)\mathrm{d}x + \int_{s(t)}^{x_2} \rho(x,t)\mathrm{d}x \right) = q(x_1,t) - q(x_2,t) }[/math]

and hence

[math]\displaystyle{ \int_{x_1}^{x_2} \frac{\partial \rho(x,t)}{\partial t} \mathrm{d}x + \frac{\mathrm{d}s}{\mathrm{d}t}\rho^{-} - \frac{\mathrm{d}s}{\mathrm{d}t}\rho^{+} = q(x_1,t) - q(x_2,t) }[/math]

If we now take the limit as [math]\displaystyle{ x_1\to x_2 }[/math] we obtain

[math]\displaystyle{ \frac{\mathrm{d}s}{\mathrm{d}t}\rho^{-} - \frac{\mathrm{d}s}{\mathrm{d}t}\rho^{+} = q(\rho^{-}) - q(\rho^{+}) }[/math]

so that

[math]\displaystyle{ \frac{\mathrm{d}s}{\mathrm{d}t} = \frac{q(\rho^{-}) - q(\rho^{+})} {\rho^{-} - \rho^{+}} }[/math]

Shock example

We consider the case when [math]\displaystyle{ \rho_{\max} = v_0 = 1 }[/math] and where the initial density is given by [math]\displaystyle{ \rho_0 = 1/2(1 + \tanh(x)) }[/math]. The figures below show the initial density, the initial speed, the characteristics and [math]\displaystyle{ \rho(x,t) }[/math] for this case.

[math]\displaystyle{ \rho }[/math] [math]\displaystyle{ c }[/math]
[math]\displaystyle{ \rho_0 = 1/2(1+ \tanh(x)) }[/math]
[math]\displaystyle{ c(\rho_0) }[/math]
characteristics [math]\displaystyle{ \rho(x,t) }[/math]
Characterisitics for [math]\displaystyle{ \rho_0 = 1/2(1+ \tanh(x)) }[/math]
[math]\displaystyle{ \rho(x,t) }[/math][math]\displaystyle{ for }[/math][math]\displaystyle{ \rho_0 = 1/2(1+ \tanh(x)) }[/math] Dotted solution is without shock fitting.

Riemann problem

We now consider the Riemann problem

[math]\displaystyle{ \rho(x,0) = \left\{ \begin{matrix} \rho_{L},& x \lt 0 \\ \rho_{R},& x \gt 0 \end{matrix} \right. }[/math]

where [math]\displaystyle{ \rho_{L} \lt \rho_{R} }[/math]. In this case a shock forms immediately and the characteristics terminate at the shock. The shock moves with constant speed given by the equation for the motion of the shock (or can be found by the equal areas rule). We obtain

[math]\displaystyle{ \rho(x,t) = \left\{ \begin{matrix} \rho_{L},& x \lt \frac{1}{2} \left(c(\rho_{L}) + c(\rho_{R}) \right) t \\ \rho_{R},& x \gt \frac{1}{2} \left(c(\rho_{L}) + c(\rho_{R}) \right) t \end{matrix} \right. }[/math]

We consider the case when [math]\displaystyle{ \rho_{\max} = v_0 = 1 }[/math] and where the initial density is given by

[math]\displaystyle{ \rho(x,0) = \left\{ \begin{matrix} 0.3,& x \lt 0 \\ 0.6,& x \gt 0 \end{matrix} \right. }[/math]

The figures below show the initial density, the initial speed, the characteristics, and [math]\displaystyle{ \rho(x,t) }[/math] for this case.

[math]\displaystyle{ \rho }[/math] [math]\displaystyle{ c }[/math]
[math]\displaystyle{ \rho_0 }[/math]
[math]\displaystyle{ c(\rho_0) }[/math]
characteristics [math]\displaystyle{ \rho(x,t) }[/math]
Characterisitics with shock shown in green.
[math]\displaystyle{ \rho(x,t) }[/math] with the red dotted line showing the solution without shock fitting

Lecture Videos

Part 1

Part 2

Part 3

Part 4

Part 5

Part 6

Part 7

Part 8