VTI
Traf c simulation model
A
Program fortheMonte Carlo Slmulatlon of Vehicle
Traffic along Two-
LaneRuralRoads
An Application of JSP and SIMULA67 Language
Revisededition
t .v
e 1: r
.5? .= ~.
VT! Traitic simulation model
A Program for the Monte Carlo Simulation of Vehicle
Traffic along Two-Lone Rural Roads
An Application of ISP and SIMULA-67 Language
Revised edition
by Anders Brodin .
Road and Traffic Research Institute (VTI) during some years. This
development work was commissioned by the National Road
Administra-tion.
The fundamental idea of this traffic model is to describe traffic
charac-teristics on two lane rural roads by simulation technique. A
comprehen-sive program system has been developed to support the model. This makes
it possible to have a completely computerized handling of the very
complex model and its input and output data. Most of the computer
programs in the system are written in SIMULA.
The present report is a documentation of the VTI traffic simulation
program and replaces the report
"VTI MEDDELANDE NO. 143"
(reference No. 6). This latter report has become out of date by the
continued program development during 1979 to the beginning of 1983.
The development work was led by Gosta Gynnerstedt. The following
persons also participated in the JSP structuring and SIMULA programming
work for longer or shorter periods of time: Anne Bolling, Anders Brodin,
Bernt Henricson and Goran Levander.
If you wish to obtain further documentation of the program, please notify this to the Institute.
The author will be grateful for any suggestions or opinions of use in future
development work.
1.1
1.2
1.2.1
1.2.2
1.3
1.3.1
1.3.2
4.1
#2
4.2.1
4.2.2
5.1
5.2
FOREWORD
ABSTRACT
BACKGROUNDGeneral background
Basic attributes of the traffic simulation model Free flow traffic
Interaction model
Program system for traffic simulation
Input data
Output data
GENERAL PROGRAM DESIGN
THE ROAD
THE EQUIPAGE
Equipage attributes and basic behaviour
Short description of equipage procedures
Variables controlling behaviour
Predictive routines
STRUCTURES
Notation rules in Jackson structures
Program structures for equipages
SOURCE PROGRAM LIST
REFERENCES
VTI MEDDELANDE 322A
10
12
12
15
15
20
23
23
211
44
81
An application of JSP and SIMULA-67 language
Revised edition
by Anders Brodin
National Swedish Road and Traffic Research Institute (VTI)
5-581 01 Linkoping, Sweden
ABSTRACT
This report deals with a simulation program which describes the dynamic
sequence of vehicle traffic over defined stretches of road for given
traffic volumes and traffic compositions. In the program the stretch of
road considered consists of a sequence of consecutive road block objects
and a sight distance function in each direction of travel. Each road block
object is homogeneous with regard to the following:
Road width and road surface type
Auxiliary lane/lateral space (i.e. wide shoulder)
Slope
0
Horizontal curvature
Speed limit and
Overtaking restrictions
Jackson Structured Programming Technique (35?) has been used in
system and programming work and the programming language is
SIMULA 67.
This report describes a computer program for simulating vehicle traffic
on two-lane rural roads.
For this purpose structured programming has
been used. Programming language is SIMULA 67.
As far as is known this is the first time ESP structured programming and
SIMULA 67 have been applied together with a technical program of this
size.
The program described in this report forms part of a program system. The
program system in turn forms part of a comprehensive, long-term Rod)
project assigned by the National Road Administration.
The purpose of
this project is to determine the effect on traffic of road and traffic
engineering schemes in order to establish traffic quality and road user
costs in the rural road network.
The background relating to system
analysis has been treated in Report No.- 44 of the National Road and
Traffic Research Institute (Ref. 1). This has led to the development of
the simulation model mentioned above, which describes the dynamic
sequence of vehicle traffic over defined stretches of road for given
traffic volumes and traffic compositions.
The program replaces one previously written program in ALGOL-GENIUS
since the computer used by the National Road Administration at that time
was the Datasaab D20.
Reprogramming has for several reasons been a natural consequence of the
following developments:
-
The number of effects concerning traffic as derived from simulation
have increased. This has led to repeated modification and expansion
of a successively more complex system model.
-
The simulation technique has proved powerful and an increasing
interest in the simulation model has been shown both in Sweden and
abroad.
1.2"
1.2.1
sions and adaptions to new problems.
Following a decision that the central program in the system required
rewriting, an inventory of existing techniques and programming languages
was made with the results described below.
Jackson Structured Programming (JSP) Technique has been used in systems
and programming work.
The programming language used is SIMULA 67 which has exceptional
qualities for simulation as well as permitting a lucid organisation of the
program text and well-structured data.
Basic attributes of the traffic simulation model
Reports No. 321 and 43 (ref. 2 and 3) of the National Road and Traffic
Research Institute contains documentation on the traffic simulation
model. Here we shall give only a general description of its basic
principles. On the basis of its applications the model is divided into one
part giving the speed of the freely moving vehicle along the road
free
flow traffic - and another part showing also the interactions between the
individual vehicles in the vehicle streams.
Free flow traffic
The basis of the moving vehicle part of the traffic simulation model. is a
statistical distribution of drivers' desired basic speed on an ideal road, i.e.
a wide, straight road with no speed limit. The stretch of road considered
is divided into homogeneous sections or road blocks with regard to these
parameters.
1.2.2
The speed distribution for this ideal situation is transformed to separate
speed distributions for each road block.
The road block thus is a
subdivision of the road which is homogeneous with regard to road width,
speed limit and horizontal curvature.
In addition, the stretch of road
is divided
curvature and overtaking restrictions.
considered,
into further road blocks relating to vertical
This method is described in more
detail in the Institute's report No. 321 (ref. 2). When an equipage is
overtaking these separate speed distributions are shift right.
The desired speed for an equipage
a driver-vehicle unit
in a particular
roadblock is designated as the equipage's block speed, which indicates the
driver's "wish".
Apart from the block speed the lepe, if any, is also
assigned to the block. Each vehicle has also been allotted a power/weight
ratio, or p-value, as well as air and rolling resistance, which decide its
ability to reach or maintain its block speed on the particular slope. If,
when entering a block, the equipage has a speed slower than the block
speed or cannot maintain its block speed due to the slope, its speed is
calculated with the help of Newton's equation for momentum.
The resulting speed is thus determined from a desire/ability situation
resulting in a speed profile along the road and in which corrections have
been made to the block speed with regard to the p value of the equipage
to allow for the vertical profile of the road and the air-and rolling
resistance.
Interaction model
In addition to the speed class and p-value each equipage is allotted a time
and road coordinate for starting, a direction of travel and an initial speed.
This permits faster vehicles to catch up with slower vehicles along the
road and leads to overtaking or following. If overtaking starts as soon as
one vehicle catches up with another, "flying" overtaking takes place. If
overtaking occurs after following, an "accelerated overtaking" is carried
OUT.
1.3
taking.
2. Space is available for overtaking with regard to surrounding equipages'
travelling in the same direction.
3. There is no overtaking prohibition.
4. A stocastic function is true. The probability is depending on
The impeding vehicle's type and speed.
Available sight distance.
Oncoming equipages within the sight distance or not.
Type of overtaking, "flying" or "accelerated".
Road width.
If the road has a wide shoulder overtaking can also take place by passing,
which means that the leading equipage moves with a particular probability
onto the shoulder.
If the road has a climbing lane the impeding equipage will move into this
lane.
During the overtaking sequence movements take place as described in the
freely-moving vehicle model.
When following occurs, however, the
vehicle follows
the preceding vehicle with a constant time headway
depending on the preceding vehicle's type.
Program system for traffic simulation
The simulation program described below comprises the "heart" of a
program system as shown in the accompanying diagram 1. In order to
facilitate understanding of the traffic simulation program itself a short
description of the overall programs is provided. In principle the traffic
simulation model is built up in a model system which permits the
following:
DRIVER
,.____-Egggi x ? VEHICLE
BANK ROAD , TRAFFIC
DATA I DATA / f 1 \/ ROAD TRAFFIC BLOCKING GENERATION PROGRAM PROGRAM DESCRIPTION DESCRIPTION OF THE OF THE Icy : TRAFFIC
INPUT ,1 _, _.. - ' / \
/
,. '_, ,«e
.
4-
f
/ / f / / / /
TRAFFIC , TRAFFIC SIMULATION SIMDLATION'
j//4//
O T" '""""" I . TRAFFIC 1 RESULTS 4Ia-4----+
TRAFFIC , RESUET PROCESSINS J PROGRAMS §\\ / \ \ \ \ x » \ \ \ / \\\ \ \ \STATISTICAL STATISTICAL TRAFFIC TRAFFIC OTHER DISTR AT DISTR. DESCRIPTION SAFETY TRAFFIC SPOTS BETWEEN CHARACTERISTICS CONCEPTS EFFECTS
. SPCHS ALONG THE RIM)
1 SPOT SPEED 1 JOURNEY SPEED l PERCENTAGES OF 1 RISR EXPOSURE TRAFFIC'NOISE 2 TIME READNAY 2 JOURNEY TIME VEHICLE KM As
I . - FREELY MOVING 2 CONFLICT TRAFFIC
3 QUEUE LENGTH AND - QUEUING SITUATIONS POLLUTION 4 QUEUE FREQ. 3 NUMBERS 0F - OVERTAKING/
OVERTAKING/ PASSING
PASSINGS
2 TRAFFIC TIME
DELAY
3 TRAFFIC .FUEL-CONSUMPTION
Diagram 1
The position of the simulation program in
the program system.
1.3.1
2. Simulation of the behaviour of equipages also taking into account the
interdependence of the surrounding equipages both in their own and
the opposite direction.
Here the SIMULA program is described for the latter of these cases.
Input data
Input data in the simulation program consists of road and traffic data.
Road parameters
Data input to the "road-blocking" program consists of road geometry as
well as speed limits and overtaking restrictions. In Sweden this
informa-tion is usually obtained from the Nainforma-tional Road Data Bank, if an existing
road is to be simulated. Other sources such as construction drawings can
also be used.
The road blocking program is used to provide a road
representation for simulation.
The first stage of the program consists of calculations of block speeds for
the free flow traffic program, Le. a road block median speed and a
transformation coefficient, or Q-value, is given for each block.
Sight distances are given in both road directions in the form of sight
distance polygons. These are obtained through direct input in the field or
from construction drawings. They may also be obtained from alignment
data by using a special calculation model.
Traffic parameters
Both simple and complex traffic generation programs have been developed
for simulating traffic streams in the stretch of road under consideration.
Flow in each direction
Flow changes
4 : t h 0 . . .Partial flow of heavy vehicles (traffic composition)
1.3.2
Output data
The results of the traffic simulation are printed in chronological order and
are intended for further processing. Table 1 shows 19 different types of
result, the occasions during traffic simulation at which they are present
ed, a short description of the type of result provided and whether the
result is given unconditionally, conditionally or conditionally after the
time specified.
0 start of simulation general information and U and upon error error message
i equipage enters driver and vehicle U stretch of road characteristics
2 equipage leaves equipage status.) U
stretch of road
3 passing measuring equipage status, preceding U
point equipage headway, reference forwards and backwards,
energy consumption
a direct overtaking equipage status, equipage type, U started identity, type and speed of
proceeding equipage, sight
distance, distance to oncoming
equipage, speed of oncoming equipage
5 accelerated over- as for type 4 U started
6 overtaking completed equipage status U 7 passage point equipage status U 8 passage completed equipage status U 9 track change equipage status and new track U 10 following started equipage status U
ll opportunity for di as for type 14 0
direct overtaking not accepted
12 opportunity for acce as for type 4 O
lerated overtaking '
not accepted
13 block border passage equipage status, basic de« 8 sired speed, equipage type and power/weight coeffi-cient, energy consumption 14 every change equipage status, predicted C
times and speeds, etc.
15 overtaking is inter- equipage status . U rupted before
level-point
16 overtaking is finished equipage status . U after ievelpoint
l7. following terminated equipage status U 18 overtaking ievelpoint equipage status, 1..
identity, coordinate, speedand type of
l) the overtaken and 2) the oncoming vehicle
)0 equipage status refers to identity, road and time coordinates, speed and track
U = unconditional result
B = conditional result 0 a conditional result
L = conditional result ,
C -.-. conditional result after time specified f
SIMULA is pseudo-parallel execution, which can be regarded as a further
Ref (5). The
description of the events which relate to a particular type of object are
development of event control of dynamic sequences.
collected into a single process. The program consists of two processes:
1.
Process CLASS generator process
2.
Process CLASS vehicle
The processes, which also contain data and procedures, provide a natural
picture of the object they describe. In this way a good similarity to the
model is obtained which is very important since simulation models tend to
be highly complex.
1)
The equipage generator process creates
equipage objects and allots
them individual driver-vehicle attributes.
Here they are also allotted
their traffic attributes. These objects will throughout be termed quite
simply "equipages". Parameters which define equipages consist of, among
other things, the identity number, basic desired speed and power/weight
ratio. Parameters giving their traffic attributes consist of, for example,
starting point, starting time and direction of travel. The equipage
generator process also activates the equipages at their starting times.
The eguipage process describes all the possibilities for action that a
particular equipage has, for example, "drive as a freely-moving equipage",
"follow another equipage" or "overtake the equipage in front".
The
freedom of choice implied by the above covers many alternatives, which
means that the simulation model tends to be very complex. This in turn
places considerable demands on the program structure.
The equipage
process has therefore been designed in accordance with Jackson
structur-ed programming (JSP). Ref ((4).
15
"Create" here refers to the creation of storage space for the attribute and
the start of processing of the statements in the class body, or algoritm.
VTI MEDDELANDE 322A
THE ROAD
In the program the stretch of road considered consists of a sequence of
consecutive road block objects and a sight distance function in each
direction of travel. Each road block object is homogeneous with regard to
the following road geometry and traffic regulation parameters:
m
wn
wwr
Road width and road surface type
Auxiliary lane/lateral space (i.e. wide shoulder)
Slope
Horizontal curvature
Speed limit
Overtaking restriction
The road block is represented in the program as an object from the class
ROADBLOCK. This object has the following attributes:
II
III
Location and length
RCO
REL LENGTH
coordinate of road block beginning
road block length
Road geometry and Traffic regulation attributes
ROADWIDTH
LANE
RI
RQ
DVQ
RNONOVERT
ReferencesRSIGHTLMAX
RSIGHTREF
road width class
occurrence of auxiliary lane/lateral space
slope
Q value
block speed for median equipage ** RQ
basic
desired speed for median equipage ** RQ
code relating to overtaking restriction
occurence and coordinates of sight
distance maximum
reference to distance length function
The road block object is linked in each direction in a SIMSET list with the
headings DIRECTIONI and DIRECTIONZ respectively.
The sight distance at different points along the road is approximated with
a linear function of the road coordinate. One function is required for
each direction of travel.
The sight distance function is represented for direction 1 in the program
by coordinate pair (BREAKPCOORDI), SIGHTDISTANI) and in a
corresponding way for direction 2.
To facilitate determination of the sight distance at an arbitrary point
along the road, the road block has here, as mentioned above, been given a
reference to the sight distance function in the same direction.
RSIGHTREan if Sn 5 RCO < 5n + i where Sn and Sn + i are road
coordinates for two consecutive breakpoints and WK is the road
coordi-nate of the road block beginning.
4.1
THE EQUIPAGE
Equipage attributes and basic behaviour
In the program the equipage is represented as an object from the class
VEH. The object has the following exogenous (EX) or endogenous (EN)
attributes.
I
Administrative attributes
IDNU
EX
identity number
DIRNU
EX
direction number
ORIGIN
EX
coordinate of the road for start of
equi-Page
OWNTRACK
EN
Track number
DEST
EX
coordinate of the road for destination of
equipage
FINISH
EN
destination reached
II
priver-vehicle attributes
VON
EX
basic desired speed
TIMEHEADWAY
EX
MINTIME
EX
PNORMAL
EX
P
EN
VEHTYPE
EX
VTI MEDDELANDE 322A
time headway
shortest stay in auxiliary lane/lateral space
after passing
power/weight coefficient allotted
Calculates the p value for the vehicle. If
the vehtype is 1 (private car) and in track 1
then the vehicle receives a stronger p-value.
In this case
30 if PNORMAL _<_ 22.5
PNORMAL + 7,5 if PNORMAL > 22.5
P = otherwise P = P normalvehicle type
C2
EX
Cl
EX
W
EN
air resistance coefficient
rolling resistance coefficient
accumulated energy consumption
111
Traffic attributes of the equipage
FOLLOWING
BEHCATCHUP
LOCALCOORD
LOCALTIME
LOCALSP
AVERSP
PREDICT-NEXTEVTIME
PREDBL
BORDERTIME
PREDICTBL-BORDERSP
FREEBLSP
IV ReferencesBLOCK
EN
EN
EN
EN
EN
EN
EN
EN
EN
EN
EN
equipage is following
equipage is caught up
road coordinate at preceding event
time of preceding event
speed at preceding event
speed from preceding event to next event
predicted time of next event
predicted time of passage of next road block
border
predicted speed at passage of next road
block border
free block speed
reference to actual road block
The events are assumed to occur momentarily at calculated times. At
each event the model data is updated and a particular event generated
from among the possible consecutive eVent types. A note of the predicted
event is inserted chronologically and logically in a list (SQS) and the
events are then executed in this order.
The ordinary cycle for an arbitrary equipage is:
l. Predict the time of the next event - PREDICTNEXTEVTIME
2.
Await the predicted time HOLD
-3.
Move the equipage in time and space DRIVE
During phase 1 of the cycle PREDICTNEXTEVTIME, BORDERTIME,
AVERSP
and
PREDICBLBORDERSP
are
calculated in
procedures
TIMETO... During phase 3 of the cycle the procedure DRIVE updates the
attributes
LOCALTIME,
LOCALCOORD,
LOCALSP,
AVERSP,
PREBLBORDERTIME and PREDICTBLBORDERSP.
During phase 2 of the cycle it may happen that adjacent equipage
interacts with the current equipage with the result that the predicted
time of the next event for this equipage is shown incorrect since it will
occur earlier.
Its ordinary cycle is consequently interrupted and the
current equipage considers that a "surprise" has occurred through the
SURPRISE procedure.
A prediction of a new earlier event for the
equipage is then made.
Each equipage has been allotted a "head" and a "tail".
The equipages
constantly attempt to drive so that their heads do not overlap their tails.
The lengths of the heads and tails are defined as:
(AVforw-AVERSP)22 . DACC if AVforw < AVERSP
head length =
0
otherwise
tail length :: TIMEHEADWAY
AVERSP
where AVforw is AVERSP for a preceding equipage.
Head length
therefore indicates the distance required to slow down with given
retardation DACC to the speed of the preceding vehicle. The tail length
is chosen so that equipages in a queue are separated by given time
intervals.
An important aspect of the program is that a road is divided into a
number of lanes, where each equipage in each lane behaves in a defined
manner.
4.2
l.l.2.1
Direction of traffic:
_ _ _ _ _ _ __ __ 3
Direction of traffic:
a) 7right-hand traffic 1
2
a) +right-hand traffic
b) < left-hand traffic
2_ _ _ _ _ _ __ _l
b) > left-hand traffic
3
An equipage can use three of the four lanes.
Lane 2 is the ordinary
lane in the direction of travel and lane 3 is a wide shoulder or auxiliary
lane. In lane 1 priority is given to traffic in the opposing direction.
An equipage remains in its lane until it decides to change lanes. The
reason for this decision may be in order to overtake, i.e. move out
into lane 1 or alternatively move onto lane 3 to allow a catching up
faster equipage to pass.
Short description of equipage procedures
To acquaint the equipage as to which of the many complicated situations
is in force, a number of procedures and variables are provided.
These situations are listed and described below. A brief description of the
predicting routines i.e. the procedures which, among other things,
calcu-late the time to a given next event, is also provided. The latter
procedures are similar in that they all give a time to the next block
border if this event type occurs before the given event.
Variables controlling behaviour
Basic routines
PREDICTCOORD
calculates the road coordinate for current
equi-page at the particular time (i.e at TIME)
PREDS(B)
Calculates the road coordinate for equipage B
at the particular time (i.e. at TIME)
PST(VEH,T)
Calculates the road coordinate for equipage
VEH at time T
VEHBACWITRK(X)
Calculates a reference to an equipage in track
x travelling behind
VTI MEDDELANDE 322 A
VEHEQUALTRK(X)
VEHFORWITRK(X)
PLATOONLEADERWO)
ONCOMINGVEHEQUAL
ORBACKWITRK(X)
ONCOMINGVEHFORW
ITRK(X)
LASTVEHINONCOMING
PLATooMX)
PASSING(X)
STARTPOSSIBILITY
CHANGETOTRACK(X)
BEHINDVEAFFECTED
VEHINTRK l AFFEC
REACTFORW
REACTBACKW
REACTTRKIVEH
CONSTRAINED
INTERESTING
ACC(SPEED)
VTI MEDDELANDE 322A
Calculates a reference to an equipage alongside
in track x
Calculates a reference to preceding equipage in
track x
Calculates a reference to a platoonleader for
the equipage vo.
Calculates a reference to an equipage in track
x travelling alongside or behind in oncoming
traffic stream.
Calculates a reference to preceeding equipage
in track x in oncoming traffic stream.
Calculates a reference to last equipage in track
x in oncoming traffic stream.
Decides whether own head or tail overlaps that of
another equipage in track x
Decides whether start possibility applies. Start
possibility if head or tail of own equipage does not
overlap that of another equipage in lane 2 or lane
3
Move own equipage to track x
Decides whether equipage travelling behind in the
same lane needs to be reactivated
Decides whether equipage in track 1 needs to
be reactivated.
Reactivates preceding equipage
Reactivates next equipage travelling behind in the
same track.
Reactivates the nearest equipage whose tail lies
behind the current equipage
Decides whether the current equipage is following
When an equipage is reactivated the
proce-dure INTERESTING decides whether the equipage
is in track 1 or track 2 and is being caught up by
another equipage
BEABTOFOLR
Decides whether a preceding equipage is "close"
and the speed is less than the free blockspeed.
"Close" defines the distance between the head
of the current equipage and the tail of the
preceding equipage as being less than 1.5 times
the tail length of the preceding equipage
Routines in conjunction with catching up
CATCHINGUP(X)
VEHOBJCATCHING
up(vo)
CATCHINGUPBEF-PREDICTNEXTEV
-TIME(VB)
Decides whether the current equipage catches up
another equipage in track x before passing the
next road block limit
Decides whether equipage VO catches up a
pre-ceding equipage before passing the next road
block border
Decides whether equipage VB catches up the
current equipage before VB's
PREDICTNEXT-EVTIME
Routines in conjunction with overtaking or passing
MAXSIGHTPNT
RENDEZVOUSORMAX-SIGHT
FLYINGOVTAK-ACCEPT
ACCOVERTAKING
ACCEPTED
ABLE
Decides whether an overtaking opportunity
exists. An overtaking opportunity exists if
maximum sight length exists in the road block
and the distance between the equipage and the
point of maximum sight length is less than 3 m.
Decides whether an opportunity for overtaking is
accepted
Decides whether an opportunity for accelerated
overtaking is accepted
Decides whether the vehicle has sufficient
acce-leration ability to carry out anovertaking. More
exactly estimated length of the overtaking is less
than sightlength x constant
WANT
VACANT
ALLOW
TIRED
OBJINSAMETRACK
INITIALPOINTS,
LPNT,
FH SHPNTS
A random number is drawn and gives "true" with a
specified probability. This probability depends on:
D
2)
Accelerated/flying overtaking - OMT
Vehicle type and whether a private car is taken
into consideration when average speed is less or
greater than 20 m/s
Road width class - VB
Visible/invisible meeting
Sight length
m
4)
n
Decides at point of decision for accelerated or
flying overtaking whether it is possible to change
track to track 1, Le. whether track 1 is occupied
by another equipage
Decides whether the vehicle is permitted to carry
out an overtaking.
Permission is given if no
overtaking prohibition applies and if no unbroken
white line exists. The driver is looking for
over-taking restriction min (300, estimated length of
the overtaking x constant) m ahead.
Decides
whether
the
equipage
abandons its
attempts at overtaking. The probability of this is
at present 0
True if the head of the current equipage overlaps
the tail of the preceding equipage in the same
track
Decides upon overtaking or passing whether initial
points, level points or finishing points apply
direction of travel
_ _ _ _ . current track E W l--
-
-
head iength-:
-initial points
_ xiazel 'oint-sj~ hq
rimmhmmm
J J L I 41
tail iength
. -. . _ . . . ~ . -l{___v__.
__ tar; 1e29%§gui2age 92.16303...
VTI MEDDELANDE 322 A
SHORTRETURN
Decides upon overtaking whether short return
applies
direction of travel current trackOVERTAKING-CONTINUE
NEWOVERTA KING
SCATCHINGUPI
Routines in conjunction
'
shortreturn points
\ V" '_/tail lengg
[A
Decides whether an overtaking is to be
complet-ed. Is completed when the equipage has greater
speed than the overtaken equipage.
Decides whether a new overtaking is likely,
impli-cates that the driver wants to overtake and the
vehicle is permitted andhas sufficient
accelera-tion ability to carry out an overtaking. Note that
this makes NEWOVERTAKING true if no new
overtaking is likely.
Decides upon completing an overtaking of
equi-pages in a platoon, but not the platoon leader,
that the current equipage catches up another
equipage in the current track before overtaking is
completed.
with the equipage being passed
VACANTANDWANT-TOGOTOTRACKB
CANRETURN
Decides when the current equipage is caught up in
track 2 whether it can and wants to change track
to track 3.
Decides whether the current equipage in track 3
can return to track 2.
4.2.2 Predictive routines
TRAVEL
Apart from the block speed an average slope is
assigned to each block. Each equipage also has a
power/weight coefficient, P, which determines its
ability to reach its block speed, given the
particu-lar slope.
The TRAVEL procedure tests this ability by
in-serting values in the power equation:
a=$~-ca'v2-cb
where
a
= acceleration
m/s2
p
= power/weight ratio
W/kg
v
= speed
m/s
ca
= air resistance coefficient
Cb = rolling resistance and "slope coefficients"
In this test v is set to the block speed.
If
acceleration thereby becomes less than 0 or the
current speed is less than the block speed, PTS is
inserted in the power equation. Otherwise
calcu-lation is made either with the same speed, TS,
(time over road stretch) or with a uniform retard
ation, RETARD, depending on whether the
parti-cular speed is equal to or greater than the block
speed.
- PTS
free
block
speed
roadcoordie; nate
blockborderTIMETOSTART-POSSIBILITY
TIMETOBLOCK-LIMIT(C)
Routines in conjunction
In procedure PTS there is a numeric integration of
the power equation over time until either the free
block speed has been exceeded (case 1
in the
figure) or the blockborder exceeded (case 2).
Use is made of
a -91 ivesv
" dt g
t
-v
t- At
+At'a
ds .= __
=
. , .
-A
v
dt givesst
st_ At+At 05 (v1:+vt
1:)
where a : accelerationv
= speed
s = distance t = timeIntegration step At (DELTA in PTS) is set to
At = k ~PRECISION °lXol
ao where
k = a constant set to 3
PRECISION = required precision in integration
In the program PRECISION has been set to 0.5 %.
v0 and a
are speed and acceleration at the
beginning
Calculates time to start possibility.
Calculates time to next block limit.
C indicates whether the current equipage is free
or constrained.
with catching up
TIMETOCATCHU
TIMETOCATCHING
UPPOINT(X)
Calculates time until the first of the following
events:
1) Catching up equipage in track 3
2) Catching up equipage in track 2
3) Block limit
If the equipage catches up another equipage
in
track
x
the
procedure
calculates
the time to the catching up point.
TIMETOBEHCATCH
Calculates time to the point where the current
UPPOINT(C)
equipage is caught up. C indicates whether the
current equipage is free or constrained.
Routines in conjunction with preparation for following
TIMETOFOLLOW
When an equipage has decided not to carry out a
ying overtaking the procedure calculates the
time to the point where the equipage has slowed
down and travels with a given headway from the
preceding equipage.
Routines in conjunction with overtaking or passing
TIMETOOVERTAKACC Calculates the time to the point for an
acceler-ated overtaking.
TIMETOINITIAL-
Calculates the time to the point where the
over-POINTS(C)
taking equipage is in level with the overtaken
equipage. If the current equipage (overtaking) has
a lower average speed than the overtaken
equi-page the time to the block border is calculated.
C indicates whether the current equipage is free
or constrained.
TIMETOLPNT(C)
Calculates the time to the point where the
over-taking equipage is 3.3 m in front of the overover-taking
equipage.
C indicates whether the current
equi-page is free or constrained.
TIMETOFINISH-
Calculates the time to the finish point in an
POINT(C)
overtaking.
If the overtaken equipage has a
greater average speed than the current equipage
the time to the next block border is calculated. C
indicates whether the current equipage is free or
constrained.
TIMETOSFINISH-
Calculates the time to a short finish point in an
PNT(C)
overtaking. A short finish point applies when the
current equipage overtakes individual equipages in
the platoon with the exception of the platoon
leader. C indicates whether the current equipage
is free or constrained.
Routine in conjunction with overtaking an equipage
TIMETORETURN-
Calculates the time to a possible point for
return-POINT(C)
ing from track 3 to track 1. C indicates whether
the current equipage is free or constrained.
5.1
STRUCTURES
Notation rules in Jackson structures
The program documentation described below follows M Jackson's rules for
structured programming wherever these have been considered applicable.
According to Jackson a program can always be solved by using three
simple and basic components; sequence, iteration and selection. Ref (4).
The first of these, sequence, (frist, then). A program section A which is
run through unconditionally statement by statement is denoted
A seq
do B;
do C;
x:=l;
A end
Iteration (over and over again) is a program section which is run through 0
or more times as iong as an iteration condition is satisfied, for example,
SIMULA's while statement. Iteration is denoted
E iter while C do F;
E end
Finally, in selection (either or) one of several alternative program
sections is run through. Selection is denoted
G select COND 1
do H;
G or I COND 2
do I;G or 2
do K;
G end
5.2
Backtracking is a special case of selection.
This occurs when an
alternative program section cannot be selected before one of the program
sections has been begun. A program section is thus assumed but this can
be rejected if the assumption proves to be wrong.
In this form of
selection the assumed program section is denoted by posit, and the
remaining sections by admit.
L possit
do M;
L admit
do P;
L end
For a closer study of Jackson structures we recommend
Leif Ingevaldsson: JSP A Practical Method of
(ISBN/INPUT TWO-NINE 0-905897-36-6).
Program
Design
Program structures for equipages
VEH seq
do WAITSUFTIME;
do CHANGETOTRACK(2);
do VEHPROCESS;
do TERM;
VEH end
When an equipage is activated it awaits a sufficient time interval in
relation to other traffic, - WAITSUFTIMEHEADW - , before moving to
track 2,
CHANGETOTRACK(2) - . The equipage starts and drives to its
destination, - VEHPROCESS - .
Finally,
the
itself, - TERM - .
equipage
terminates
VEHPROCESS iter while not FINISH
VEHPROBODY posit NO SURPRISE
do SITUATION;
VEHPROBODY ADMIT
do SURPRISE;
VEHPROBODY end
VEHPROCESS END
The equipage process consists of an iteration of the equipage process
body, VEHPROBODY, which in turn consists of a choice between
SITUA-TION and SURPRISE. It is thereby assumed that no surprice occurs, i.e.
that the equipage is not reactivated by another equipage. Processing of a
surprise therefore takes place only when it must be admitted that the
assumption was wrong.
SITUATIONselect OWNTRACK = 2
doTRACKm
SITUATIONorl
OWNTRACK = 3
doTRACKx
SITUATIONorZ
doTRACKl
SITUATION end
For the equipage a situation consists of one of the alternatives TRACKZ,
TRACK3 or TRACKl.
TRACKZ seq
do EXAMFRBEZ;
FREEZ seq
do COMPLFREEZ;
do ALMOSTFRZ;
do PASS;
FREEZ end
CONSTRAINZ
posit
CONSTRAINED
AND
BEABTOFOLR
AND
OWNTRACK = 2
do CHOOSEFOLLOBEH;
CONSTRAINZ admit
do NOTBEABTOIZ;
CONSTRAINZ end
TRACKZ end
When an equipage comes to TRACKZ it first examines its forward-behind
relationship with regard to other equipages in order to know whether any
of these are affected and need to be reactivated, EXAMFRBEZ.
"Affect-ed" refers to whether the equipage continues to be free, FREEZ, and is
finally CONSTRAINED. The period of freedom or constraint may be 0.
VTI MEDDELANDE 322A
A free equipage at first drives completely freely, COMPLFREEZ, then
almost freely, ALMOSTFREE, (catches up or is caught up) and finally
overtakes an equipage, PASS, which has moved into track 3, Le. it passes.
A constrained equipage assumes that it is not too fatigued to follow the
preceding equipage in track 2 and chooses a following behaviour,
CHOOSEFOLLOWBEHA.
If the assumption proves to be wrong this
is treated in the alternative program section, NOTBEABTOIZ.
COMPLFREEZ iter while NOT BEHCATCHUP AND NOT
CONSTRAIN-ED AND NOT CATCHINGUPQ) AND NOT CATCHINGUPO)
do HOLD;
do DRIVE;
COMPLFREEZ end
An equipage is completely free in track 2, COMPLFREEZ, as long as it is
not caught up, is not constrained and does not catch up
an equipage in
tracks 2 or 3.
ALMOSTFRZ select BEHCATCHUP
do PROCEBEHCAT;
ALMOSTFREEZ or 1 NOT FOLLOWING AND CATCHINGUPZ
doPROCCATCUPC;
ALMOSTFREEZ or 2
ALMOSTFRZ end
An almost free equipage can have been caught up just before by another
equipage or can be catching up
another equipage.
Catching up case
PROCEBEHCATCHUPCA or PROCESSCATCHUPCAS is processes
de-pending on which case occurs. If neither case occurs, neither alternative
is processed.
PROCEBEHCAT seq
do BEHCACHUP = FALSE;
do PREDICTNEXTEVTIME = TIME;
do DRIVE;
EXAMTRACK3 select VACANTANDWANTGOTOTRACK3
do CHANGETOTRACKO);
EXAM TRACK3 or
EXAM TRACK3 end
PROLEBEHCAT END
When an equipage is caught up its model data are updated to the current
time. The equipage also examines whether the vehicle can, and whether
the driver wants to, move into the auxiliary track, EXAMTRACKB.
PROCCATCUPC seq
do HOLD;
do DRIVE;
SIGNALFORWARD select OBJINSAMETRACK AND
PASSINGDIS-POSITION
do REACTFORWARD;
SIGNALFORWARD or
SIGNALFORWARD end
CHSCUPBEH select NOTOBJINSAMETRACK
CHSCUPBEH or lFLYINGOVTAKACCEPT
do CHANGETOTRACKU);
CHSCUPBEH or 2
do FOLLOW(TRUE);
PREPFOLLOZ iter while NOTFOLLOWPOINT
do RDUM;
do SIGNBACKW;
do SIGNALTRKl;
do HOLD;
do DRIVE;
PREPFOLLOWINGZ end
CHSCUPBEH end
PROCCATCUPC end
VTI MEDDELANDE 322 A
When an equipage (A) in track (2) is assumed to catch up with another
equipage (B) in the road block, (A) will await the point when catching up
takes place, - HOLD -and will update the model data, - DRIVE -.
If the equipage which is caught up is in the same track (2) it will then, and
only then, be reactivated, -- SIGNALFORWARD -.
In the next step
equipage A selects catching-up behaviour, - CHSECATCHUPBEHA. (A)
then examines whether (B) enters the side area/auxiliary track.
If equipage (B) which is caught up enters track (3) equipage (A) will pass
(see - PASS - below).
If equipage (B) remains in track (2) equipage (A)is offered a flying
overtaking. If a flying overtaking is accepted (A) changes track from (2)
to (1), - CHANGETOTRACKU) -.
If (A) does not accept the conditions for a flying overtaking (A) prepares
to follow (B), - PREPFOLLOWINGZ - by adaption to following or until its
following point has been reached, i.e. (A) has retarded to (st) speed.
A following variable, - FOLLOWING - is set to - TRUE - in conjunction
with adaption of equipage (A). In the same way an updating is made of
the predicted time and speed at the next block limit passage, - RDUM -,
and of the average speed, - AVERSP - if the equipage behind is affected
by (A:s) adaption it will be reactivated, - SIGNALBACKWARD -.
If an equipage in track (1) is affected it will be reactivated,
- SIGNALTRKI -.
The sequence is concluded by equipage (A) awaiting the next event time,
HOLD -, and updating model data, - DRIVE -.
PASS posit NOT CONTRAINED AND OWNTRACK = 2 ' AND
pASSlNG(3) AND NOT CATCHINGUPQ)
PASSASFREE seq
INITFREEPAS iter while INITIALPOINTS OR LPNT
INFRPASBODY seq
GOASIDEPZ iter while INITIALPOINTS AND NOT LPNT
do HOLD;
do DRIVE;
GOASIDEPZ end
ASIDEPZF iter while LPNT
do HOLD;
do DRIVE;
ASIDEPZF end
INFRPASBODY end
INITFREEAS end
FINIPASI iter while NOTFINISHPNTS
do HOLD;
do DRIVE;
FINIPASI end
SIGBFORPAS select WANTTOHELPVEHBACKWTOPAS
do CHANOETOTRACKO);
SIGBFORPAS or;
SIGBFORPAS end;
PASSASFREE end
PASSadmit
PASSend
When equipage (A) is in track (2) during passage - PASS - it is assumed
that (A) is unconstrained and that there is an equipage to pass in track (3)
- PASSASFREE -.
If
the
above
assumptions
are
not
fulfilled
- "PASSASFREE" - is abandoned.
Passing in accordance with "PASSASFREE" consists of an initial phase,
- INITFREEPASS -, and a concluding phase - FINIPASI.
In "INITFREEPASS" equipage (A) is moved to a point in front of one or
more
equipages
which
have
been
passed
one
at
a
time,
- INITFREEPASBODY -.
Passing of each individual equipage consists of two parts. The equipage is
moved first to a point abreast with the equipage being passed,
- GOASIDEZ -. (A) is then moved to a point just in front of the passed
equipage, - ASIDEPZF -.
The passage sequence is furthermore divided into several parts with
regard to block limit passages. The various parts are delineated by event
times which are awaited, "HOLD" and model data are updated, "DRIVE".
CHOOSFOBEH select PASSING
do PASSASCONST;
CHOOSFOBEH or
do WAITFOVERTAG;
CHOOSFOBEH end
A constrained
equipage in
track
(2) selects driving behaviour,
- CHOOSEFOLLOWBEHA -, which may be passing an equipage in track
(3) - PASSASCONSTRAINED , or preparing for an accelerated
overtak-ing, - "PREPACCOVTAK" -.
PASSASCONST seq
INITPAS iter while INITIALPOINTS OR LPNT
INITPASBODY seq
CONTTOLEPNT iter while INITIALPOINTS AND NOT LPNT
do HOLD;
do DRIVE;
CONTTOLEPNT end
ASIDEPZH iter while LPND
do HOLD;
do DRIVE;
ASIDEPZH end
INITPASBODY end
INITPAS end
FINIPASIH iter while NOTFINISHPNTS
do HOLD;
do DRIVE;
FINIPASIH end
SIGNBFORPAS select WANTTO HELP VEH BACKW TO PAS
do CHANGETOTRACKO);
SIGNBFORPAS or
SIGNBFORPAS end
PASASCONST end
The sequence in a passage where the current equipage (A) is constrained,
"PASSASCONSTRAINED", is carried out in the same way as in a passage
where the current equipage is free, compare "PASSASFREE" above. Only
predictions of road coordinated, times and speeds are made in a different
way.
WAITFOOVERTA posit NOTTIRED
PREPACCOVTA;
WAITFOVERTA admit
GIVEUP iter while TRUE
do HOLD;
do DRIVE;
GIVEUP end
WAITFOVERTA end
When a constrained equipage considers an offer of accelerated overtaking
- WAITFOROVERTAKING -, it is assumed that the driver does not give
up
his
attempts
to
find
acceptable
overtaking
conditions
-PREPACCOVTAK -.
The driver may, however, give up, - GIVEUP -,
with a particular probability, p, which at present is p = O.
PREPACCOVTA seq
WAITFOVTAOC select ONCOMINGVEHVISIBLE
WAITFRENDEZ iter while NOT RENDEZVOUSORMAXSIGHT
do HOLD;
do DRIVE;
WAITFRENDEZ end
WAITFOVTAOC or
WAITFMAXSG iter while NOT MAXSIGHTPNT
do HOLD;
do DRIVE;
WAITFMAXSG end
WAITFOVTAOC end
PROCOVTAPOS iter while NOT ACCOVERTAKINGACEPTED
WAITFNEWOVT select ONCOMINGVEHVISIBLE
WAITFNEWREN seq
do HOLD;
do DRIVE;
WFNRBODY iter while NOT RENDEZVOUSORMAXSIGHT
do HOLD;
do DRIVE;
WFNRBODY end
WAITFNEWREN end
WAITFNEWOVT or
WAITNEWMAXST seq
do HOLD:
do DRIVE;
WFRNMBODY iter
do HOLD;
do DRIVE;
WFNMBODY end
WAITNEWMAXST end
WAITFNEWOVT end
PROCOVTAPOS end
do FOLLOW (FALSE)
do CHANGETOTRACKU)
do TRAVEL;
PREPACCOVTA end
VTI MEDDELANDE 322 A
With the above assumption the equipage follows the preceding equipage
until the overtaking conditions are fulfilled and an accelerated overtaking
is considered - WAITFOROVTAKOCCAS -.
If oncoming equipage is
visible, the levelpoint is awaited - WAITFORRENDEZVOUS - else the
maxsightpoint is awaited WAITFORMAXSIGHT
-When a possible opportunity for overtaking is reached, it is treated, and a
new opportunity for overtaking is awaited as long as the overtaking
conditions are not accepted - PROCOVTAPOSSIBILITIES -.
Every new
opportunity for overtaking is treated in - WAITFORNEWOVTAKOCCAS-.
The new opportunities for overtaking are offered in the same names as
above, i.e if oncoming equipage is visible the levelpoint is awaited
- WAITFORNEWRENDEZVOUS -else
the
maxsightpoint
is
awaited
- WAITFORNEWMAXSIGHT -. When finally the overtaking conditions are
accepted the equipage changes track to track (1) -
CHANGETO-TRACKl .
NOTTOABTOIZ select FOLLOWING AND OWNTRACK=2
do FOLLOW (FALSE);
do TRAVEL;
NOTTOABTOIZ or
NOTTOABTOIZ end
When an equipage is constrained in track (2) it is assumed, as mentioned
above, that the equipage is able to follow the preceding equipage. If this
assumption proves wrong the accepted program section is interrupted and
the alternative section - NOTTOABTOIZ -is processed instead.
When an equipage is constrained in track (2) it is assumed, as mentioned
above, that the equipage is able to follow the preceding equipage. If this
assumption proves wrong the accepted program section is interrupted and
the alternative section - NOTTOABTOIZ -is processed instead.
TRACK3 seq
do EXAMFRBB;
do FIRSTTIME;
FREE3 seq
do COMPLFREEB;
do ALMOSTFREEB;
FREE3 end
CONSTRAINB posit BEABTOFOLRAND FOLLOWING
COBODY seq
do follow3;
do MINTIME:=O;
do FOLLOW/(FALSE);
do CHANGETORACKQ);
do TRAVEL;
COBODY end
CONSTRAIN3 admit
do FOLLOW(FALSE);
CONSTRAINB end
TRACK3 end
When an equipage enters track (3) it first examines its front/rear
relationship to other equipages in the track to find out whether any of
these are affected and need to be reactivated, - EXAMFRBEB - if the
equipage has just changed to track (3) a minimum time is set in track (3),
- FIRSTTIME - the equipage continues to be free, - FREE3 , and is
finally constrained, -CONSTRAINED -.
The duration of freedom or
constraint can be 0.
A free equipage moves first completely free - COMPLFREEB - then
almost free - ALMOSTFREEB - (catches up).
A constrained equipage assumes that it is able to follow a preceding
equipage in track (3), - BODY -, and follows, - FOLLOW3 -, until a return
to track (2) is possible.
Hereby actual model data are reestablished and the equipage returns to
track (2) - CHANGETOTRACKQ) -.
If a constrained equipage is unable to follow the preceding equipage the
variable - FOLLOWING - is set to False.
COMPLFREE3 iter while NOT(CANRETURN OR CATCHINGU3 or
FOLLOWING)
do HOLD;
do DRIVE;
COMPLFREE3 end
An equipage in track (3) is completely free, - COMPLFREEB- , as long as
it cannot return to track (2) or catch up with the preceding equipage in
track (3) or is constrained.
ALMOSTFREE3 select NOT FOLLOWING AND CATCHINGUPO)
do HOLD;
do DRIVE;
do FOLLOW (TRUE);
ALMOSTFREE or
ALMOSTFREE end
If an almost free equipage, - ALMOSTFREEB -, is about to catch up a
preceding equipage in the road block, the equipage will wait until the
catching-up point, - HOLD -. The model data will be updated, - DRIVE -,
and the - FOLLOW - characteristic of the equipage will be set to "True".
FOLLOW3 iter while NOT CANRETURN
do HOLD;
do DRIVE;
FOLLOW3 end
A constrained equipage follows the preceding equipage as long as it
cannot return to track (2).
TRACKl posit OVERTAKINGCONTINUE
TRACKIBODY3 posit NEWOVERTAKING
TRACKIBODYI seq
do EXAMFRBEI;
do INITIAL;
do CONTTOVFINP;
do CHANGETORACK(2);
TRACKIBODYI end
TRACKIBODY3 admit
TRACKBODYZ seq
do SHORTCONCLU;
do CHANGETOTRACK(2);
PREDICT select BEABTOFOLR;
do FOLLOW(TRUE);
do TRAVELCONSTRAINED;
PREDICT or
do FOLLOW(FALSE);
do TRAVEL;
PREDICT end
do REACTBACWARD;
TRACKIBODYZ end
TRACKIBODY3 end
TRACKl admit
do EXOVTSITU;
TRACKI end
When an equipage comes to track (I) it is assumed that the overtaking will
be continued (the vehicle has sufficient speed to carry out the overtaking)
and that the overtaking (of one or several equipages in the platoon) will be
followed up a TRACKIBODYI -. The equipage first examines its
forward-behind relationship with regard to other equipages in order to know
whether any of these are affected and need to be reactivated
- EXAMFRBEI -. The equipage is moved first to a point abreast with the
equipage being overtaken - INITIAL - is then moved until a return to
track (2) is possible - CONTTOOVFINPNT -.
When the equipage overtakes a platoon of equipages in track (2)
overtaking may have to be interrupted before the platoon-leader has been
overtaken. The overtaking equipage then moves to the nearest position
where it can force itself in between two equipages in the platoon
- SHORTCONCLUS -. The equipage concludes its overtaking by return to
track (2). Prediction of time for next passage of blockborder and speeds
is
done
- PREDICT -
and
the
equipage' behind
is reactivated
REACTBACKWARD
-INITIAL iter while -INITIALPOINTS OR LPNT
INITIALBODY seq
do GOBSIDEPNT; do BSIDEPl;
INITIALBODY end
INITIAL end
The above
program section
agrees with
the previous section,
- INITFREEPAS -, apart from the location of the equipage subject in
track (1) instead of track (2), Le. during overtaking instead of passage.
This relates to both cases, i.e. the equipage subject may be free or
constrained.
The structure chart for - GOASIDEPNTI -, - ASIDEPl -, -
CONTTOOV-FINPNT -, and
SHORTCONCLUS - are described below. Since they have
similar structures - GOASIDEPNTl - alone is described in more detail.
The more important differences for the other structures are indicated in
the chart.
GOBSIDEPNTI iter whiie INITIALPOINTS AND NOT LPNT
GOLEPNTIBOD seq
FREIINITI posit NOT CATCHING upm AND NOT BEHCATCHUP AND
NOT FOLLOWING
do HOLD;
do DRIVE;
FREIINITI admit
ALMOSTFRII select NOT FOLLOWING AND GATGHINGUPU)
do HOLD;
do DRIVE;
do FOLLOW(TRUE);
ALMOSERII or I FOLLOWING AND BEHCATCHUP
do BEHCATCHUP:=FALSE;
do PREDICTNEXTEVTIME:=TIME;
do DRIVE
ALMOSFRII or 2
ALMOSFRII end
FREIINITI end
CONSTRAINII posit FOLLOWING AND BEABTOFULR
do HOLD;
do DRIVE;
GONSTRAINII admit
do FOLLOW(FALSE);
CONSTRAINII end
GOLEPNTIBOD end
GOBSIDRNTI end
In - GOASIDEPNTI - the overtaking equipage is moved forward until it is
abreast of the equipage being overtaken.
"GOASIDEPNTI" consists of an iteration of - GOASIDEPNTIBODY - in
which events occuring before the point where the equipages are abreast,
such as block border passages, are processed.
In "GOASIDEPNTIBODY" - the overtaking equipage is moved forward
first as a free equipage, - FREEIINITIAL -, and then as a constrained
equipage, - CONSTRAINEDIINIT -.
In - FREEIINITIAL
it is assumed that the overtaking equipage neither
catches up with the equipage in track (I) nor is caught up nor is
constrained.
The equipage awaits the next event time, "HOLD", upon which model data
are updated, "DRIVE".
If any of the assumptions are not fulfilled the equipage is processed in
- ALMOSTFREEI -.
If the equipage is unconstrained but catches up another preceding
equipage in track (I) this catching-up point is awaited, "HOLD". Model
data "DRIVE" are then updated and variable "FOLLOWING" is set to
"True".
If
the
equipage
is
unconstrained
and
is
caught
up
variable
- BEHCATCHUP - is set to "False". The next event time is then awaited,
"HOLD", and model data are updated, "DRIVE".
If,
however,
the
equipage
is
constrained
nothing
happens
in
"ALMOSTFREEI "
and
the
continuation
is
processed
in
- CONSTRAINEDIINIT -.
In CONSTRAINEDIINIT it is assumed that the equipage is constrained and
can follow the preceding equipage.
The next event time is awaited,
"HOLD", and model data are updated, "DRIVE" if the assumption is not
fulfilled the variable "FOLLOWING" is set to "False".
The "GOASIDEPNTI" chart has now been described and the three