Dynamic Traffic Assignment
With Cube Avenue
Colby Brown, PTP
Regional Director, USA and Canada
Macroscopic and
Static Modelling
Mesoscopic and
Dynamic Modelling
Microscopic and
Dynamic Modelling
Transportation modelling tools
A Comprehensive Traffic Modeling Suite
Cube Voyager for regional flows
Cube Dynasim for
corridor/subarea operations
Cube Avenue for dynamic traffic
assignment and bottleneck simulation
Avenue is an optional add-on to
Cube Voyager that enables
Dynamic Traffic Assignment
with Mesoscopic Simulation:
Dynamic Traffic Assignment
Routes and flow rates change during
the model period based upon
congestion
Mesoscopic Simulation
Packets of vehicles are simulated as
they move through the network
What is Cube Avenue?
Macroscopic models evaluate
congestion using speed-flow
curves based on fundamental
traffic engineering relationships
Microscopic models simulate
individual vehicle trajectories on
a detailed network and use
behavior models (e.g. car
following, gap acceptance) to
predict second-by-second driver
responses to en-route events
Congestion: the key to model scale
Typically simulate movement of
trips along their routes at some
detailed resolution (packet)
Discretely model traffic queues
in network at bottlenecks
(e.g. intersections, ramps, tolls)
Traffic stream performance is
typically still evaluated using
aggregate macroscopic
(e.g. speed-flow) relationships
Mesoscopic Traffic Modelling
As Cube Avenue
processes the
various kinds of
information used
in dynamic traffic
assignment, it
moves between
different levels of
aggregation.
The temporal detail cycle
The model duration is explicitly defined and divided into smaller
time segments
Simulation Time
Warm-up Period Model Period
Segment Segment Segment Segment
Post-load Period
Segment Segment
1
2
3
4
5
6
7
8
9
10
11
12
Demand
Time Segments
Demand Profile
The demand is assumed to be constant
during each time segment
Cube Avenue Dynamic Traffic Assignment (DTA)
Method of Successive Averages
1.2 1.2
Path 1
0.6 0.6
Path 1
0.6 0.6
Path 2
0.4 0.4
Path 1
0.4 0.4
Path 2
0.4 0.4
Path 3
0.3 0.3
Path 1
0.3 0.3
Path 2
0.3 0.3
Path 3
0.3 0.3
Path 4
“Perfect” solution of MSA…
But maybe not practical… each iteration more packets…
Eventually you WILL run out of memory.
Packet Allocation Methodology
1.2 1.2
Path 1
1.2
Path 1
1.2
Path 2
1.2
Path 1
Path 2
1.2
Path 3
With each iteration, each packet has a MSA probability (1/Iter)
of being “Selected” for the fancy new path.
Globally the proper amount of trips are moved to the new path…
never runs out of memory or slows down.
Path 1
Path 2
Path 3
1.2
Path 4
1.2
In extremely congested
networks, an “All or Nothing”
first iteration can cause
gridlock.
Later time segments have no
hope of „learning‟ how to
navigate the network when
earlier time segments continue
to see drastic changes to their
routing.
When later iterations finally
have a stable initial condition,
the amount of traffic being
adjusted is too small to be
meaningful.
A time segment must wait its
turn to begin being assigned.
Loading in Congested Networks
Incremental Time Segment
Loading
The user defines a number of iterations
that each time segment gets to itself
before the next time segment may start.
Each time segment respects its own
convergence and maximum number of
iterations (maxiters)
Results
Converged
COMBINE=AVE, PACKETS=PA,
ITERLOADINC=0 (defaults)
PACKETS
PA (Packet Allocation)
PS (Packet Splitting)
ITERLOADINC
# specifies the number of iterations to wait
before incrementally adding a time segment.
Scripting Dynamic User Equilibrium
(DUE)
PARAMETERS
MODELPERIOD= duration, in minutes
SEGMENTS = list of durations, in minutes (sum >=
MODELPERIOD)
VEHPERDIST = vehicles per lane per unit distance (fleet jam
density)
LINKREAD keywords
C = maximum flow rate capacity (vehicles per model period
duration)
DYNAMIC C = list of segment-specific flow capacities, same units
as C
STORAGE = link-specific storage value (overrides VEHPERDIST)
ILOOP keywords
DYNAMICLOAD instead of PATHLOAD, may use __TS__ in
expressions
ADJUST keywords
May condition LW calculations on built-in TIMESEGMENT variable
Scripting Other Features
Time-varying O-D travel demand
(flow per time segment)
Link properties
(Capacity, T0, Storage, Junction Modelling, ...)
Cube Avenue Input Data
Output Data: Dynamic Bandwidths
Output Data: Dynamic Intersection LOS
Output Data: Dynamic Queues
Output Data: Packet Log Animation in
GIS
The *.LOG text file
<!-- RUN="NETI.101585" PGM="AVENUE (v.10/18/2007
[4.2.0])" TIME="Thu Oct 18 18:47:46 2007"
NPKT=133997 PKTLNG=64 START=-0.500000
END=1.000000 NVOL=2 VPD=250.000000
TimeSliceEnd=-0.416667,-0.333333,-0.250000,
-0.166667,-
0.083333,0.000000,0.083333,0.166667,0.250000,0.33
3333,0.416667,0.500000,0.583333,0.666667,0.750000
,0.833333,0.916667,1.000000 -->
<p #=941,it=1>
<v>
<ix=0,f=0.357143>
<ix=2,f=0.357143>
</v>
<r>
<n=20,a=*,d=-0.499593>
<n=430,a=-0.499593,d=-0.499529>
<n=447,a=-0.472814,d=-0.472814>
...
<n=475,a=-0.462416,d=-0.462416>
<n=464,a=-0.458362,d=-0.458362>
<n=476,a=-0.454521,d=-0.454521>
<n=478,a=-0.448999,d=-0.448999>
<n=484,a=-0.435480,d=-0.435480>
<n=486,a=-0.432114,d=-0.432114>
<n=17,a=-0.432114,d=*>
</r>
</p>
The text packet log follows a
pseudo-XML format that is left
intentionally open so as to permit
additional parsing, processing
and summary by the user.
Each file consists of a header
record followed by one or more
blocks of packet data.
Header
Record
Packet
Data
By applying record processing techniques to packet log output data,
you can implement many advanced analyses with Avenue:
Build origin-destination table from log file
Select node/link analysis
Select link/node trip table: build table of trips using some node at some particular
time
Check whether packets used a particular link/node and build a link table from the
list of nodes used by these packets (2 passes of the file)
Extract average queue for specific packets (departure minus arrival)
Temporal disaggregation (e.g. build 15-minute matrices from peak
hour simulation output based upon recorded departures)
Peak spreading
Build packet table from log file, flag packets that failed to arrive at their destination
Shift packets to new departure time segment based upon logit or other decision
rule
Re-build hourly trip matrix from packet table
Other applications: ITS/VMS, parking, sub-area extraction, ME, etc…
Processing the Packet Log Data
DTA OD Estimation