Upload
tom-gibson
View
201
Download
47
Embed Size (px)
Citation preview
EM504 Dissertation A
Modelling the European Train Control System
Braking and Supervision Curves
Thomas Gibson
201113465
2015/2016
2
Abstract In their present state, railways across the world use signaling systems based on principles derived from the
Victorian era. With these come a raft of difficulties due to the limitations of such systems, which ultimately result in
delays on the railways. The European Rail Traffic Management System (ERTMS) is an effort to overcome these
issues with a single standardized in cab signaling system implemented across Europe. Being developed by a
consortium of companies, this would be one of the largest developments in railway systems since the 19th century.
A key aspect of the system is the ability of an individual train to monitor its own speed and displacement relative to
a number of target locations. With this the train must generate a set of braking curves to ensure its safe operation.
Throughout this work, the ERTMS is explored in more detail with the aim of gaining a better understanding of what
is involved. More specifically, the braking curves will be fully investigated and modelled in the MATLAB and
Simulink environment, leading to the development of a robust model for analysing a train’s interactions along a
length of railway.
3
i) Contents 1. Introduction ......................................................................................................................................................... 8
2. Objectives ......................................................................................................................................................... 10
3. Literature Review .............................................................................................................................................. 10
3.1. The Fundamentals of ERTMS ................................................................................................................. 10
3.1.1. ERTMS Levels ................................................................................................................................. 10
3.1.2. Trainborne Equipment and Train Characteristics ............................................................................ 12
3.2. ERTMS Modelling .................................................................................................................................... 15
3.3. Conclusions of Literature Review ............................................................................................................ 17
4. Technical Assessment...................................................................................................................................... 18
4.1. Emergency Brake Deceleration ............................................................................................................... 18
4.2. Service Brake Deceleration ..................................................................................................................... 20
4.3. Supervision Limits .................................................................................................................................... 20
4.3.1. Emergency Brake Intervention ........................................................................................................ 20
4.3.2. Service Brake Intervention ............................................................................................................... 21
4.3.3. Warning Supervision Limit ............................................................................................................... 22
4.3.4. Permitted Speed .............................................................................................................................. 22
4.3.5. Indication Supervision Limit ............................................................................................................. 22
4.3.6. Ceiling Supervision Limits ................................................................................................................ 23
4.4. Review of Technical Understandings ...................................................................................................... 25
5. Modelling Procedure and Implementation ........................................................................................................ 26
5.1. Input Data ................................................................................................................................................ 26
5.2. Mathematical Model ................................................................................................................................. 27
5.2.1. Assumptions .................................................................................................................................... 28
5.2.2. Initialisation and Parameter Definitions ........................................................................................... 28
5.2.3. Ceiling Supervision Limits ................................................................................................................ 29
5.2.4. Accelerations ................................................................................................................................... 29
5.2.5. Braking Curves ................................................................................................................................ 29
5.2.6. Mathematical Model Output ............................................................................................................. 30
5.3. Model Validation and Verification ............................................................................................................ 30
5.4. Extended Mathematical Model ................................................................................................................ 32
5.4.1. Target Identification ......................................................................................................................... 34
5.4.2. Braking Curve Calculation ............................................................................................................... 35
5.4.3. Extended Model Output ................................................................................................................... 36
5.5. Simulink Models ....................................................................................................................................... 37
5.5.1. Single Train Model ........................................................................................................................... 37
5.5.2. Single Train Model Output ............................................................................................................... 38
5.5.3. Two Train Model (Moving Block) ..................................................................................................... 40
5.5.4. Two Train Model Output .................................................................................................................. 41
4
6. Discussion of Results ....................................................................................................................................... 44
6.1. Mathematical Model ................................................................................................................................. 44
6.2. Extended Mathematical Model ................................................................................................................ 45
6.2.1. Target Profiles .................................................................................................................................. 45
6.2.2. Temporary Speed Restrictions ........................................................................................................ 46
6.3. Single Train Simulink Model .................................................................................................................... 46
6.3.1. Permitted Speed .............................................................................................................................. 46
6.3.2. Brake Intervention ............................................................................................................................ 48
6.4. Two Train Simulink Model ....................................................................................................................... 51
7. Conclusions and Future Work .......................................................................................................................... 54
8. References ....................................................................................................................................................... 56
9. Appendix ........................................................................................................................................................... 58
9.1. Train Datasets.......................................................................................................................................... 58
9.1.1. TrainData1.xlsx ................................................................................................................................ 58
9.2. Track Datasets ......................................................................................................................................... 59
9.2.1. TrackData1.xlsx ............................................................................................................................... 59
9.2.2. TrackData2.xlsx ............................................................................................................................... 60
9.2.3. TrackData3.xlsx ............................................................................................................................... 61
9.2.4. TrackData4.xlsx ............................................................................................................................... 62
9.2.5. TrackData5.xlsx ............................................................................................................................... 63
9.2.6. TrackData6.xlsx ............................................................................................................................... 64
9.2.7. TrackData7.xlsx ............................................................................................................................... 65
9.3. Input Dataset MATLAB Scripts ................................................................................................................ 66
9.3.1. Fixed Value Data [23] ...................................................................................................................... 66
9.3.2. National Value Data [23] .................................................................................................................. 67
9.3.3. Read in Track Data .......................................................................................................................... 68
9.4. MATLAB Code ......................................................................................................................................... 69
9.4.1. Mathematical Model – BrakingCurves.m ......................................................................................... 69
9.4.2. Extended Mathematical Model – Integrated_Model_1.m ................................................................ 74
9.4.3. Ceiling Supervision Limits – supervision_limits.m ........................................................................... 79
9.4.4. Braking Curves – BrakingCurvesModel_V2.m ................................................................................ 80
9.4.5. Interpolation – Interpolate_1.m ........................................................................................................ 82
9.4.6. Generate Target Braking Profiles – gen_target_profiles.m ............................................................. 83
9.4.7. Level 3 Model – Level_3_Model_1.m .............................................................................................. 88
5
ii) Table of Figures Figure 1: Railway Block Sections .............................................................................................................................. 8
Figure 2: Standard British Signal Types [1] ............................................................................................................... 9
Figure 3: ERTMS Level 1 [9] ................................................................................................................................... 11
Figure 4: ERTMS Level 2 [9] ................................................................................................................................... 11
Figure 5: ERTMS Level 3 [9] ................................................................................................................................... 11
Figure 6: ERTMS System Architecture [12] ............................................................................................................. 12
Figure 7: Driver Machine Interface Display [12] ...................................................................................................... 12
Figure 8: Traction Model [12] ................................................................................................................................... 13
Figure 9: Braking Model – Progressive Application of Brakes [12] ......................................................................... 13
Figure 10: Braking Model – Deceleration vs Speed [12] ......................................................................................... 13
Figure 11: Dynamic Speed Monitoring by ETCS [12] .............................................................................................. 14
Figure 12: Braking Curves under Plain Line Operation [13] (System D refers to ERTMS level 2) ......................... 14
Figure 13: Braking Curve Inputs and Outputs [14] .................................................................................................. 16
Figure 14: Generating the Test Configuration [14] .................................................................................................. 16
Figure 15: RBC Execution Process [14] .................................................................................................................. 17
Figure 16: ERTMS braking curves, where: I – Indication Point, P – Permitted Speed, W – Warning Point, SBI –
Service Brake Intervention, EBI – Emergency Brake Intervention, EBD – Emergency Brake Deceleration, SBD –
Service Brake Deceleration [23]. ............................................................................................................................. 18
Figure 17: Influence of Track Conditions on Abrake_emergency ..................................................................................... 19
Figure 18: Supervision limits for an EBD curve [23]. ............................................................................................... 21
Figure 19: Ceiling supervision limits [23] ................................................................................................................. 23
Figure 20: Definition of dVebi .................................................................................................................................... 23
Figure 21: Mathematical model, BrakingCurves.m, flow diagram. .......................................................................... 27
Figure 22: Mathematical model, BrakingCurves.m, output plot............................................................................... 30
Figure 23: ERA Braking Curves Tool output plot, using the same data as for the MATLAB model. ...................... 31
Figure 24: : Extended mathematical model, Integrated_Model_1.m, flow diagram. ............................................... 33
Figure 25: Theoretical target location for a LOA curve [23]. .................................................................................... 34
Figure 26: Calculation of braking point. ................................................................................................................... 35
Figure 27: Calculation of V_EBD1. .......................................................................................................................... 35
Figure 28: a) The individual EBD curves and b) The combined EBD curve. .......................................................... 36
Figure 29: Extended mathematical model, Integrated_Model_1.m, output plot for TrackData3.xlsx. ..................... 37
Figure 30: Overview of Simulink Single Train Model Integrated_Model_1_Sim.slx. ............................................... 38
Figure 31: Velocity profile output for the single train Simulink model. ..................................................................... 39
Figure 32: Train displacement output for the single train Simulink model. .............................................................. 39
Figure 33: Two Train Simulink Model ...................................................................................................................... 40
Figure 34: Braking Curves Plot for TrackData7.xlsx ............................................................................................... 41
Figure 35: Velocity and Displacement Profiles for Train 1. ..................................................................................... 42
Figure 36: Velocity and Displacement Profiles for Train 2. ..................................................................................... 42
Figure 37: Comparison of Velocity and Displacement Between Trains. ................................................................. 43
Figure 38: Comparison of EBD, EBI and P for a) dry rails and b) wet rails. ............................................................ 44
Figure 39: Braking and supervision profiles for TrackData4.xlsx. ........................................................................... 45
Figure 40: Braking and supervision profiles for TrackData5.xlsx with TSR of 60 km/hr set between 3 km and 4 km.
................................................................................................................................................................................. 46
Figure 41: Speed profile for TrackData4.xlsx. ......................................................................................................... 47
Figure 42: Speed profile for TrackData5.xlsx with TSR of 60 km/hr set between 3 km and 4 km. ......................... 47
Figure 43: Displacement plot for TrackData5.xlsx with TSR of 60 km/hr set between 3 km and 4 km................... 48
Figure 44: Demonstration of the Service Brake Intervention. .................................................................................. 48
Figure 45: Supervision flags relative to Figure 44. .................................................................................................. 49
Figure 46: Demonstration of the Emergency Brake Intervention. ........................................................................... 49
Figure 47: Demonstration of EBI when approaching a target. ................................................................................ 50
Figure 48: a) Comparison of velocity profiles for the two trains, b) Comparison of the displacements of the two
trains, c) the distance maintained between the two trains towards the end of the simulation. ............................... 51
Figure 49: Velocity and displacement profiles of the two trains when Train 1's EBI is triggered at 200 s. ............. 52
6
Figure 50: Velocity and displacement profiles of the two trains when Train 1's EBI is triggered at 400 s. ............. 53
Figure 51: Correction factors and A_brake_emergency for TrainData1 ................................................................. 58
Figure 52: Speed Profile for TrackData1 ................................................................................................................. 59
Figure 53: Gradient Profile for TrackData1 .............................................................................................................. 59
Figure 54: Speed Profile for TrackData2 ................................................................................................................. 60
Figure 55: Gradient Profile for TrackData2 .............................................................................................................. 60
Figure 56: Speed Profile for TrackData3 ................................................................................................................. 61
Figure 57: Gradient Profile for TrackData3 .............................................................................................................. 61
Figure 58: Speed Profile for TrackData4 ................................................................................................................. 62
Figure 59: Gradient Profile for TrackData4 .............................................................................................................. 62
Figure 60: Speed Profile for TrackData5 ................................................................................................................. 63
Figure 61: Gradient Profile for TrackData5 .............................................................................................................. 63
Figure 62: Speed Profile for TrackData6 ................................................................................................................. 64
Figure 63: Gradient Profile for TrackData6 .............................................................................................................. 64
Figure 64: Speed Profile for TrackData7 ................................................................................................................. 65
Figure 65: Gradient Profile for TrackData7 .............................................................................................................. 65
iii) Table of Tables Table 1: Abbreviations ............................................................................................................................................... 7
Table 2: Prefixes Used for ERTMS Variables [12] .................................................................................................. 15
Table 3: Minimum and maximum ceiling supervision limit parameters as defined in Appendix A.3.1 of the System
Requirements Specification [23]. ............................................................................................................................. 24
Table 4: Comparison of ERA Braking Curves Tool and MATLAB model results. ................................................... 31
Table 5: Other parameters defined in TrainData1 ................................................................................................... 58
7
iv) Abbreviations It is noted that the European Rail Agency provide a useful document which includes a glossary of terms and
abbreviations, this is available at [1]. This also provides the reference for a number of these terms.
Table 1: Abbreviations
Abbreviation Term
DMI Driver Machine Interface
DV
Difference Value between the Permitted Speed to e.g.
DV_EBImin Emergency Brake Intervention speed (minimum)
DV_EBImax Emergency Brake Intervention speed (maximum)
EBCL Emergency Brake Confidence Level
EBD Emergency Brake Deceleration curve
EBI Emergency Brake Intervention supervision limit
EOA End of Movement Authority
ERA European Railway Agency
ERTMS European Rail Traffic Management System
ETCS European Train Control System
EVC European Vital Computer
FLOI First Line of Intervention
GSM-R Global System for Mobile Communications for Railways
I Indication Supervision Limit
LOA Limit of Movement Authority
MA Movement Authority
MRSP Most Restrictive Speed Profile
P Permitted Speed Supervision Limit
RBC Radio Block Centre
SBD Service Brake Deceleration curve
SBI Service Brake Intervention supervision limit
SR Staff Responsible
SRS System Requirement Specification
SvL Supervised Location
TSR Temporary Speed Restriction
UNISIG UNIFE ETCS Working Group
W Warning Supervision Limit
8
1. Introduction
Towards the end of the 19th century, as the Industrial Revolution came to an end, a rapid growth was observed in
the development of railways in the United Kingdom. These early railways had no systems for maintaining the
distances, or headways, between trains, with the driver relying on line of sight to assess the state of the line ahead.
As a consequence of this, along with driver inexperience, sub-standard brakes and limited cohesion between the
rails and the train’s wheels, there were a frequent number of collisions between trains. As the size and power of
steam locomotives increased, these collisions became more disastrous.
It was soon realised that some method of railway signalling was required as a method of preventing such collisions
from occurring. Various methods were trialled, with the earlier options relying on timings between trains at a fixed
location. For example, if a train left a station a second train would not be allowed to leave the same station on the
same piece of railway until ten minutes later. This system had a critical flaw in that if the first train were to break
down there was no way for the driver of the second train to know. Therefore, the number of rear end collisions
between trains remained high, particularly since railway locomotives were very unreliable at the time.
In an effort to combat this a new approach was implemented, maintaining headways in terms of distance rather
than time, as in Figure 1 below. This, known as block based signalling, formed the basis for the railway signalling
systems used worldwide today. By this system the railway is divided into block sections of a particular distance,
depending on the maximum permissible speed of traffic on that section of line and the required line capacity. To
prevent collisions, a second train is only allowed into a block section when it is proven that the block is empty. That
is, it has been confirmed that the first train has left the block, fully intact. A coloured light, or aspect, indicates the
state of the proceeding block to the train driver. A green aspect indicates that the line is clear and the train may
proceed at full speed. A yellow aspect, known as a signal at danger, indicates that the line ahead is clear, but the
driver must be prepared to stop at the next signal so must reduce their speed. A red aspect indicates that the block
ahead is occupied by another train. When a train passes a green or yellow aspect the signal turns to red. The red
signal will turn yellow when the train enters the next block. Early signals were controlled manually by signal box
operators. Now, however, the majority of these operate automatically. This approach to signalling became law on
all passenger railways following the Regulation of Railways Act in 1889.
Figure 1: Railway Block Sections
The original signalling systems used mechanical semaphore signals, as in the left of Figure 2. These were designed
to be fail-safe, that is in the result of mechanical failure the signal arm will fall to be horizontal indicating a stop. The
signals were operated through a system of pulleys and wires, connecting them to local signal boxes. Although
these signals are still used today in a number of locations, they proved to be very unreliable with frequent
mechanical failures, particularly in winter when cables would freeze, and in summer when cables would heat up
and elongate. The majority of signals have been replaced by coloured light aspects which have reduced the
frequency of mechanical failures. These signals can also be controlled remotely from centralised signalling centres,
leaving to the closure of a number of local signal boxes.
Signalling problems are a leading cause of delays to rail traffic. Since the system is fail safe if any issue arises then
no rail traffic is allowed to operate on the affected line. While coloured light signals have improved reliability
compared to semaphore signals there are still a number of areas where faults can occur, such as if cables are
damaged or stolen, or if there is a failure in the control system (which are mainly mechanical relay or computer
driven systems).
Occupied Block Occupied Block Block Block Block
Direction of Travel
9
Figure 2: Standard British Signal Types [2]
These signalling systems are also very difficult and costly to uphold, requiring regular inspections and maintenance.
Considering the vast number of signals across the country this all adds up to a great expense, financially and in
terms of man-hours. Other issues with the current standard of railway signalling include limited line speed and
capacity. Since the train driver still relies on line of sight to see the trackside signals the line speed is limited to
ensure that the driver can see the signal in plentiful time to react. Also, since the railway is divided into physical
sections, the capacity (i.e. the number of trains allowed onto a length of railway at any one time) is limited. This is
a great issue in busy areas, such as around London, where the recent increase in the popularity of rail travel has
led to overcrowding on the trains operating in that area.
One means of overcoming these problems is through the implementation of in-cab signalling. This technology
would mean that physical lineside signals could be replaced by a display in the driver’s cab. The removal of physical
signals and the associated cabling would mean that the reliability of the system could be increased. In some areas
the railway line speed could also be increased, since the train driver would no longer need to rely on spotting the
lineside signals – the information is displayed to the driver at all times. Furthermore, the railway blocks could be
defined virtually rather than physically and thus the blocks could be made much smaller than they are today, without
the expense of adding new physical systems to the railways.
Modern day railways also implement several additional layers of safety, such as integrity checking and warning
systems. A train’s integrity is monitored by trackside equipment, such as track circuits or axle counters. These are
used to ensure that a train is complete when it leaves a block section, so that the block is proven to be clear.
Additional systems, such as the Train Protecting and Warning System (TPWS) will automatically stop a train if it
passes a red signal, in an event known as a Signal Passed at Danger (SPAD).
Historically, European railways have been divided by a number of different signalling systems between or
sometimes within each country. This makes cross border rail traffic very difficult as the trains must be equipped
with several different types of signalling and safety equipment. The European Railway Traffic Management System
(ERTMS) is an initiative aimed at standardising the European railways under a single cab-based signalling system
so that any rail traffic can travel easily between countries.
Semaphore Arm
Horizontal
Stop
Semaphore Arm
Raised
Proceed
Red Light
Aspect
Stop
10
2. Objectives
The main objective for this dissertation was to conduct a study of the ERTMS, analysing the engineering principles
and engineering theory behind the system. A simplified model of the trainborne systems associated with the
ERTMS was to be produced in the MATLAB and Simulink simulation environment, as seen by the train and its
driver.
The model would be applied to a number of different track and train scenarios, considering real train data, including
emergency situations and the interaction between two trains.
The validity of the model was to be assessed through an extensive validation and verification procedure to prove
the integrity and safety of the system.
3. Literature Review
3.1. The Fundamentals of ERTMS
Before the system can be modelled a deep understanding of the technology is required as well as the companies
and technologies behind it. The system is being openly developed by a consortium of various companies, allowing
a vast amount of information to be readily available online. The main website to host this information is “ERTMS |
The European Railway Traffic Management System” [3] which includes a number of news articles and data sheets.
Overseeing the development of the system is a consortium of relevant companies known as UNISIG [4], an
associated member of UNIFE, the body which represents railway manufacturing in Europe [5]. UNISIG collaborates
closely with the European Railway Agency (ERA) to produce a set of standards that any company working with
ERTMS must conform to [6]. Network Rail is the company who owns and manages Britain’s railway network and
will oversee the implementation of ERTMS in the UK. More information is provided on their website [7] and on the
partner site “ERTMS Online” [8] including the developmental timeline and testing results.
All of the aforementioned sources host a great deal of information on ERTMS and since the system is being jointly
developed across a number of companies all the information is fairly consistent. A good summary is available in
the Network Rail document “Your guide to European Rail Traffic Management System (ERTMS)” [9]. The document
briefly summarises the main implications and advantages of the ERTMS, with the main difference being that the
current fixed lineside signals and speed signs will be removed with all information being displayed to the driver in
cab via the Driver Machine Interface (DMI). Train movements will be controlled by a regional control centre, rather
than the numerous signal boxes which currently each control a small section of track. Communications will be
transmitted wirelessly over the purpose-built GSM-R network between the control centre and the train and this
data, along with track data provided by devices mounted on the track known as Eurobalises, will be used by a
computer on-board the train to calculate the train’s movement authority. The system will also provide automatic
train protection which minimises the safety risk.
3.1.1. ERTMS Levels
The document discussed previously also introduces the two main components of ERTMS, the European Train
Control System (ETCS) and the GSM-R communications system, as well as the three widely aknowledged
application levels of ERTMS. Each level builds on the previous with increased capabilities and efficiency. The levels
are further defined in the documents “ERTMS Factsheet 3: ERTMS Levels” [10].
Under level one operation the train is fitted with all the required ERTMS equipment but the lineside equipment
reamins in place to support the safe operation of the train and maintatin distances betweer trains. The movement
authority given by the lineside equipment is repeated to the train by the lineside electronic unit (LEU) and track
balise and displayed on the DMI. This operation is shown below in Figure 3. The main advantages of this level are
the interoperability of trains between countries and equipment suppliers, and the improved safety as the on-board
equipment will calculate the required speed profile of the train and apply the brakes if the train over-speeds, as part
of the ETCS.
11
Figure 3: ERTMS Level 1 [10]
Level two builds on level one but with the removal of lineside signalling, as in Figure 4. The train’s movement
authority is passed directly to the train from a Radio Block Centre (RBC) via the GSM-R network and displayed on
the DMI. The balises are still required to transmit fixed messages to the train, such as its location, the speed limit,
or the track gradient. The train’s position is still recorded by traditional interlocking equipment (such as track circuits
or axle counters) and fed back to the RBC, therefore fixed ‘block’ sections are still required. This is currently the
most popular level amongst train and rail operating companies and it is proposed to be rolled out across the entire
rail network in the UK [9].
Figure 4: ERTMS Level 2 [10]
Once again level three builds upon level two. This, however, is still a conceptual level since the standards have not
yet been fully defined by the ERA. In general the distance between trains is regulated according to safety critical
train data, effectively creating moving blocks and reducing the requirement for fixed blocks (see Figure 5). This has
the advantage of increasing the line capacity and optimising train running speeds. There is no longer a need for
track circuits, axle counters or traditional interlocking equipment since the train integrity is checked on-board and
the train position is sent to the RBC via GSM-R.
Figure 5: ERTMS Level 3 [10]
12
These levels are largely agreed upon by all companies involved in ERTMS and are defined technically in the
standards produced by the ERA [6]. While manufactures may make different solutions (for example Alstom [11]
produce a different product to ERTMS Solutions [12]) it is required that all systems are cross compatible to ensure
that trains can truly operate across borders.
3.1.2. Trainborne Equipment and Train Characteristics
The paper “European Rail Traffic Management System – An Overview” [13] further discusses these application
levels in agreeance with the previously considered documents. An additional level, level 0, is also introduced where
a train fitted with ERTMS equipment is run on a conventionally signalled line. i.e. the ERTMS equipment is ignored.
The architecture of the system is further defined in this paper (see Figure 6), identifying and describing the system’s
key components.
Figure 6: ERTMS System Architecture [13]
From the diagram above, signals are sent to and from the key management centre (or control centre) by the GSM-
R network. Data is generated by the interlocking equipment at the lineside and it fed to the train and the
management centre. The European Vital Computer (EVC) on-board the train uses this data to calculate the desired
train speed and braking point and displays the data on the DMI. The DMI display is also standardised by the ERA
specifications, therefore each company must produce their display to look similar to that in Figure 7.
Figure 7: Driver Machine Interface Display [13]
13
Included on the DMI are a number of parameters that are required to be considered for simulation. These will
include the permitted speed (the maximum speed the train is allowed to travel), the actual speed (the real time
speed of the train), the target speed (the train speed calculated by the EVC) and the distance to target (the distance
to a theoretical stop signal for example). The speed warning indicator is illuminated when the train is travelling
faster than the permitted speed and gives the driver a warning to adjust their speed before the brakes are
automatically applied. The planning area may also be useful for simulation, displaying the oncoming line features
such as speed restrictions.
This paper also introduces the means of operation of the system in terms on dynamic speed monitoring, which will
be useful for modelling the system. The ERTMS equipment on-board the train monitors the train’s speed against
its position based on traction and deceleration models as presented in Figure 8 and Figure 9 below. These
represent the time delay in the acceleration cut off or braking command and execution. The braking capacity of the
train against speed is also shown in Figure 10, highlighting the function of constant values, deceleration = f(speed).
Of course the higher the train speed the slower the deceleration, or the higher the effort required to slow the train.
These parameters are specific to the individual train and would be uploaded into the ERTMS system as part of the
train data. Therefore, they will be inputs to the system model considered later.
Figure 8: Traction Model [13]
Figure 9: Braking Model – Progressive Application of Brakes [13]
Figure 10: Braking Model – Deceleration vs Speed [13]
14
Under ETCS the train speed is supervised and automatically restricted where required, preventing the train from
travelling too fast or from running into occupied line sections. The speed monitoring process is described in Figure
11 below as a plot of braking distance against speed. The permitted value plot indicates the maximum allowed
speed on the line and drops to zero at a particular distance. This may be at a theoretical ‘red signal’ or station
platform (under ERTMS the red signal would be displayed on the DMI with no physical lineside signal). The actual
value is the train speed that will allow for normal, uninterrupted travel. The warning limit is the speed, greater than
the permitted speed, at which the warning light on the DMI (Figure 7) is illuminated. If the speed reaches the
service brake curve the trains service brakes are applied until the train returns to a safe speed. Should the
emergency brake value be reached the train’s emergency brakes are applied and the train would come to a halt.
Figure 11: Dynamic Speed Monitoring by ETCS [13]
The article “Performance Modelling For The National ERTMS Programme (NEP)” [14] largely agrees with these
principles and shows how these braking curves can be applied when approaching a red signal (R) (Figure 12). The
braking curves are compared to that a professional driver may apply under a conventional system. It can be seen
that when driving by lineside signals the driver starts braking much earlier (as soon as he/she sees the double
yellow (YY) signal) compared to the driver under ERTMS command. A much smoother curve is seen from the
ERTMS approach, thus the ERTMS system allows for much more efficient operation.
Figure 12: Braking Curves under Plain Line Operation [14]
(System D refers to ERTMS level 2)
15
3.2. ERTMS Modelling
A number of modelling techniques have been applied to the system while developing the ERA’s specifications [6]
[13] [14] [15]. Therefore a standard ERTMS language has also been produced for the system variables being used,
as outlined in Table 2. These prefixes will be used for modelling accordingly.
Table 2: Prefixes Used for ERTMS Variables [13]
The textbook “Formal Methods Applied to Industrial Complex Systems” [15] introduces an in depth modelling
strategy used by the French railway company SNCF, based on the ERA specification. The same model is discussed
in the MathWorks video “Model-Based Approach for ERTMS Railway Wayside System Specification, Validation,
and Proof” [16]. Both these sources provide a similar background to ERTMS to that above and discuss more the
modelling procedure using similar variables prefixed by the letters in Table 2.
Since the models discussed here are of professional quality they are in much more detail than what is required for
this dissertation, for example, in the range of 350 sub system blocks were used in the modelling process over four
levels of refinement. This level of complexity would be difficult to achieve with the resources available so a more
simplified model will be produced.
In the modelling procedure it is discussed that the model must satisfy a number of conditions including the abil ity
for the user to trace and understand the model, to be testable and allow automated reasoning. Similar to [13] the
train’s speed and braking curves are discussed as inputs to the model, where the braking curves are calculated
based on a number of train and track characteristics, including:
The train’s location (position and orientation)
The train’s movement authority (MA)
The most restrictive line speed profile (MRSP) of the train
The deceleration time of the train
The line gradients
The targets determined by the above factors
The train’s supervision limits and brake intervention curves
The ESA Specifications [6]
Many of these factors are dependent on the distance travelled, estimated line speed and the current time. In some
cases, there may be more than one speed restriction on the line and under these circumstances it is critical that
the lowest speed is observed. This is also known as the most restrictive speed profile (MRSP) as mentioned above.
These factors are divided into three categories as in Figure 13 below. From these characteristics an example speed
profile and braking curve is produced.
16
Figure 13: Braking Curve Inputs and Outputs [15]
In the plot above “EB1” (the solid line) represents the permitted speed and “EB0” (dashed line) represents the
braking curve of the train.
The ERA have produced an Excel tool that can be used to generate braking data for a train in the same way as
the on-board ETCS equipment would, capturing the train and trackside data. This is readily available to download
at [17] and may be useful for the modelling process. Train data is also readily available – Network Rail have
specified that the first lines in the UK to be fitted with ERTMS Level 2 are the Great Western and East Coast main
lines [7] with the new Hitachi Class 800 trains [18] (trainsets running on the East Coast are also to be known as
the Virgin Azuma [19]). The specification for these trains has been developed openly between the UK Government
and Hitachi so their formal data (including operating speeds, acceleration and braking curves) is available to the
public [20] [21].
Continuing the modelling process, [15] and [16] acknowledge that there is a need to interface with many various
styles of conventional interlocking equipment. The aim of their modelling process is to simulate the level 2 Radio
Block Centre (RBC) in Simulink and MATLAB software. Due to the discrepancies in the interlocking equipment they
chose to model a generic RBC core, with an interface to each interlocking.
For system testing the static and dynamic track and train input data was written in an Excel spreadsheet and
imported to MATLAB, as in Figure 14. The model was then animated and validated as shown in Figure 15.
Figure 14: Generating the Test Configuration [15]
17
Figure 15: RBC Execution Process [15]
While these sources discuss the modelling procedure in an extensive depth and have provided a great deal of
useful information they show little of the actual model that was constructed or the results of animation. Also, where
sections of code are shown the code tends to be written in French causing a language barrier. In fact, it is generally
difficult to find information on modelling the system in Simulink, especially at a simplified level.
It is therefore useful to review literature on modelling conventional interlocking systems and adapting these models
to the ERTMS levels, similar to the implementation of ERTMS on existing railways. Although not using Simulink, in
[22] and [23] formal models of railway interlocking systems are discussed, introducing the theory of moving block
technology. The systems under consideration in these papers are well decomposed and also consider the safety
implications, a very important issue for railway systems. These papers also follow a detailed modelling approach
and provide a number of control references that may be converted to the MATLAB language.
3.3. Conclusions of Literature Review
Throughout this literature review a number of works have been analysed, including websites, textbooks and IEEE
journal articles. A great deal of information has been found on the theory behind ERTMS, outlining the reasons
behind the system and the various application levels of the system. In particular the ERTMS website [3] is very
useful thanks to the number of factsheets available.
More technical documents such as “European Rail Traffic Management System – An Overview” [13] have been
very valuable in adding detail to the information found online by fully decomposing the system as in Figure 6. In
this paper, as well as several others including [14] and [15], the braking and acceleration characteristic are
discussed at length. This, coupled with the technical information by Hitachi [20] and the Department for Transport
[21] should provide a good base for the modelling of a train under ERTMS control.
In general, it has been difficult to find information on modelling the system as a whole, particularly in the
Simulink/MATLAB environment. However some key works have been identified – for example the book by
Boulanger [15] discusses the modelling theory to a great depth. Although the systems here are to a much higher
degree of complexity than is required for this project, a number of key points were outlined that will be useful for
later simulation.
In addition, a greater understanding has been gained in reviewing these works allowing for a simplified ERTMS
model to be built. From this the project objective can be better defined:
To produce accurate and reliable models to generate the train braking curves of the three ERTMS levels
in Simulink and MATLAB, as seen by the control centre and the train driver, and to compare these levels
to a conventional interlocking.
Input ‘track’ data will be provided to the model in the form of an Excel spreadsheet, allowing for a number
of different track scenarios to be applied easily. This data will include line speed and track feature as
functions of train displacement.
To model a train on the system based on the Hitachi Class 800. The ‘train’ model will use this data to
calculate the train’s braking curves and the desired speed as a function of displacement. A closed loop
control system would replicate the train driver in maintaining the desired speed. The interaction between
two trains will be assessed.
To validate and verify the model, analysing the integrity and safety of the ERTMS system based on the
model. A number of fault conditions will be applied to ensure that safe operation is maintained.
To assess the benefits of the system in terms of line speed, capacity and cost.
18
4. Technical Assessment
As discussed previously, a critical part of the ERTMS is the generation of the dynamic braking curves. These
curves, as seen in Figure 16, are calculated by the train’s on-board equipment and are based on a set of
fundamental equations as outlined in chapter 3 of the ERTMS System Requirements Specification (SRS) [24].
These equations are discussed in detail through this section. The SRS also contains two important datasets, Fixed
Value Data and National Values, which are referred to throughout the description of these equations. These can
be found in Appendices A.3.1 and A.3.2 of chapter 3 of the SRS.
Figure 16: ERTMS braking curves, where: I – Indication Point, P – Permitted Speed, W – Warning Point, SBI – Service Brake Intervention, EBI – Emergency Brake Intervention, EBD – Emergency Brake Deceleration, SBD – Service Brake Deceleration [24].
To calculate the braking curves and desired velocities, the on-board equipment continuously monitors a list of target
locations. These targets may be of the following types:
A decrease in the Most Restrictive Speed Profile (VMRSP), the maximum allowable velocity that the train is
allowed to travel as a function of distance along the railway.
The End of Authority (EOA), the location to which the train is authorised to move, where the target speed
is zero.
The Limit of Authority (LOA), the location to which the train is authorised to move, where the target speed
is non-zero.
The location where the maximum distance allowed to run in Staff Responsible is reached, with a target
speed of zero. Staff Responsible is a mode of ERTMS where the train is allowed to move under the driver’s
own authority.
4.1. Emergency Brake Deceleration
The Emergency Brake Deceleration (EBD) curve is the fundamental basis for the calculation of most of the other
braking curves and is defined as the safe braking distance required to reach zero velocity by the target. The safe
deceleration is calculated by considering the guaranteed deceleration of the emergency brake system as well as
the acceleration/deceleration due to the line gradient.
EBD Curve SBD Curve
EBD Foot
19
The EBD curve, denoted dEBD in metres as a function of velocity, is calculated by the equation:
𝑑𝐸𝐵𝐷(𝑉) =𝑉
2−𝑉𝑡𝑎𝑟𝑔𝑒𝑡2
2𝐴𝑠𝑎𝑓𝑒(𝑉,𝑑) m (1)
Where V is the instantaneous velocity of the train (m/s), Vtarget is the train’s target velocity (nominally 0, m/s) and
Asafe(V,d) is the safe deceleration (m/s2) of the train as a function of velocity and displacement. This is a safety
critical value and takes into account all relevant train parameters, and is given by equation (2):
𝐴𝑠𝑎𝑓𝑒(𝑉, 𝑑) = 𝐴𝑏𝑟𝑎𝑘𝑒_𝑠𝑎𝑓𝑒(𝑉, 𝑑) + 𝐴𝑔𝑟𝑎𝑑𝑖𝑒𝑛𝑡(𝑑) m/s2 (2)
Assuming normal adhesion conditions.
In equation (2) Abrake_safe(V,d) is the safe emergency brake deceleration and Agradient(d) is the
acceleration/deceleration due to gradient of the railway (both in m/s2). These are given by equations (3) and (4)
respectively:
𝐴𝑏𝑟𝑎𝑘𝑒𝑠𝑎𝑓𝑒(𝑉, 𝑑) = 𝐾𝑑𝑟𝑦𝑟𝑠𝑡(𝑉, 𝑀𝑁𝑉𝐸𝐵𝐶𝐿) ∗
(𝐾𝑤𝑒𝑡𝑟𝑠𝑡(𝑉) + 𝑀𝑁𝑉𝐴𝑉𝐴𝐷𝐻 ∗ (1 − 𝐾𝑤𝑒𝑡𝑟𝑠𝑡(𝑉))) ∗ 𝐴𝑏𝑟𝑎𝑘𝑒_𝑒𝑚𝑒𝑟𝑔𝑒𝑛𝑐𝑦(𝑉, 𝑑) m/s2 (3)
𝐴𝑔𝑟𝑎𝑑𝑖𝑒𝑛𝑡 = 𝑔 ∗𝑔𝑟𝑎𝑑
1000+10∗𝑀𝑟𝑜𝑡𝑎𝑡𝑖𝑛𝑔_𝑚𝑎𝑥 m/s2 for uphill gradients
𝐴𝑔𝑟𝑎𝑑𝑖𝑒𝑛𝑡 = 𝑔 ∗𝑔𝑟𝑎𝑑
1000+10∗𝑀𝑟𝑜𝑡𝑎𝑡𝑖𝑛𝑔_𝑚𝑖𝑛 m/s2 for downhill gradients (4)
The additional parameters in the above equations are defined as follows:
Kdryrst (V,MNVEBCL) is the rolling stock correction factor and is defined as part of the train data. This is a
function of velocity and is relative to the confidence level on emergency brake safe deceleration, MNVEBCL,
a constant defined in the National Values.
Kwerrst(V) is also a rolling stock correction factor and represents the decrease in available deceleration
when on wet rails, as compared to being on dry rails, due to the reduced cohesion between the train
wheels and the rails. This is also part of the train data.
MNVAVADH is the weighting factor for the available wheel to rail adhesion, as defined in the National
Values.
g is the acceleration due to gravity, 9.81 m/s2.
grad is the gradient of the railway in ‰, where uphill gradients are represented by positive values.
Mrotating_max and Mrotating_min are the maximum and minimum possible rotating masses respectively, as a
percentage of the total train weight and as defined in the Fixed Value Data.
Also referenced in equation (3) is Abrake_emergency(V,d), the emergency brake deceleration as a function of speed
and a function of the locations where the contribution of the train’s different brakes changes. For example, Figure
17 below shows that as a train reaches the target, and thus its speed has decreased, the regenerative brake can
no longer be used. Therefore, the emergency brake deceleration is reduced.
Figure 17: Influence of Track Conditions on Abrake_emergency
20
4.2. Service Brake Deceleration
The Service Brake Deceleration (SBD) is the expected distance required to come to a halt at the target using the
train’s service brakes. The expected deceleration is not safety critical so does not take into account the same
correction factors as the EBD curve. Therefore, the SBD curve often appears much steeper than the EBD curve,
as seen in Figure 16 above.
Similar to the EBD, the SBD is calculated as follows:
𝑑𝑆𝐵𝐷(𝑉) =𝑉
2−𝑉𝑡𝑎𝑟𝑔𝑒𝑡2
2𝐴𝑒𝑥𝑝𝑒𝑐𝑡𝑒𝑑(𝑉,𝑑) m (5)
Where Aexpected(V,d) is the anticipated deceleration of the train under normal operation, given by:
𝐴𝑒𝑥𝑝𝑒𝑐𝑡𝑒𝑑(𝑉, 𝑑) = 𝐴𝑏𝑟𝑎𝑘𝑒_𝑠𝑒𝑟𝑣𝑖𝑐𝑒(𝑉, 𝑑) + 𝐴𝑔𝑟𝑎𝑑𝑖𝑒𝑛𝑡(𝑑) m/s2 (6)
Similar to Abrake_emergency(V,d), Abrake_service(V,d) is the deceleration of the service brake as a function of speed, relative
to the locations where the contribution of the train’s different brakes changes.
4.3. Supervision Limits
The other curves displayed in Figure 16 above are known as supervision limits and will be discussed further in this
section. These limits, calculated by the on-board equipment, are used for a number of reasons such as providing
a comfortable speed profile without excessive accelerations, decelerations, or wear on the train. The curves also
assist the driver in maintain the correct speed to avoid emergency brake intervention, and to ensure that the train
adheres to the appropriate track limitations (in terms of distance or speed).
4.3.1. Emergency Brake Intervention
Possibly the most critical of these supervision limits is the Emergency Brake Intervention (EBI). This defines the
location at which the train’s emergency brakes will be applied automatically to ensure that the train remains within
the imposed speed or distance limitations (i.e. to prevent the train from over speeding or surpassing its limit of
authority). This limit will be reached if the driver fails to adhere to the recommended braking profile and ensures
that the train is brought to a halt if the driver is unable to apply the brakes manually.
The EBI curve is calculated as follows:
𝑑𝐸𝐵𝐼(𝑉𝑒𝑠𝑡) = 𝑑𝐸𝐵𝐷(𝑉𝑏𝑒𝑐) − 𝐷𝑏𝑒𝑐 m (7)
Where Vest is the estimated velocity of the train, and Vbec and Dbec are the compensated speed and distance
travelled, respectively, during the time elapsed between the EBI command and the full application of the train’s
emergency brakes. These correction factors are calculated using equations 8 and 9:
𝑉𝑏𝑒𝑐 = 𝑚𝑎𝑥{(𝑉𝑒𝑠𝑡 + 𝑉𝑑𝑒𝑙𝑡𝑎0 + 𝑉𝑑𝑒𝑙𝑡𝑎1), 𝑉𝑡𝑎𝑟𝑔𝑒𝑡} + 𝑉𝑑𝑒𝑙𝑡𝑎2 m/s (8)
𝐷𝑏𝑒𝑐 = 𝑚𝑎𝑥 {(𝑉𝑒𝑠𝑡 + 𝑉𝑑𝑒𝑙𝑡𝑎0 +𝑉𝑑𝑒𝑙𝑡𝑎1
2) , 𝑉𝑡𝑎𝑟𝑔𝑒𝑡} 𝑇𝑡𝑟𝑎𝑐𝑡𝑖𝑜𝑛
+ (𝑚𝑎𝑥{(𝑉𝑒𝑠𝑡 + 𝑉𝑑𝑒𝑙𝑡𝑎0 + 𝑉𝑑𝑒𝑙𝑡𝑎1), 𝑉𝑡𝑎𝑟𝑔𝑒𝑡} +𝑉𝑑𝑒𝑙𝑡𝑎2
2) 𝑇𝑏𝑒𝑟𝑒𝑚 m/s2 (9)
Where the additional parameters (also seen in Figure 18) are defined as:
Vdelta0 is the speed under reading amount (also denoted Vura) used to compensate for measurement
inaccuracies in the measured velocity of the train.
Vdelta1 and Ttraction are the respective speed and time compensations for the time delay between the EBI
command and the cut off of the train’s tractive effort (release of the throttle).
Vdelta2 and Tberem are the respective speed and time compensations for the remaining time following the
traction cut-off up to full braking effort being reached.
21
The traction time, Ttraction, and remaining time, Tberem, are defined by the equations:
𝑇𝑡𝑟𝑎𝑐𝑡𝑖𝑜𝑛 = 𝑚𝑎𝑥 {(𝑇𝑡𝑟𝑎𝑐𝑡𝑖𝑜𝑛𝑐𝑢𝑡−𝑜𝑓𝑓− (𝑇𝑤𝑎𝑟𝑛𝑖𝑛𝑔 + 𝑇𝑏𝑠2)) , 0} s (10)
𝑇𝑏𝑒𝑟𝑒𝑚 = 𝑚𝑎𝑥{(𝑇𝑏𝑒 − 𝑇𝑡𝑟𝑎𝑐𝑡𝑖𝑜𝑛), 0} s (11)
Ttraction_cut-off is the time taken between the cut off command being issued (which is triggered when the warning limit
is passed) and the tractive effort cut off. Twarning is the time taken between the warning curve and the Service Brake
Intervention (SBI), as defined in the fixed value data, while Tbs2 it the time from the SBI to the EBI, defined in the
train data. Therefore, Twarning + Tbs2 accounts for the total time occurred between the warning limit and the EBI.
Tbe is the total time elapsed between the EBI and the EBD, also defined in the train data.
Furthermore, Vdelta1 and Vdelta2 are defined in equations 12 and 13 below:
𝑉𝑑𝑒𝑙𝑡𝑎1 = 𝐴𝑒𝑠𝑡1𝑇𝑡𝑟𝑎𝑐𝑡𝑖𝑜𝑛 m/s (12)
𝑉𝑑𝑒𝑙𝑡𝑎2 = 𝐴𝑒𝑠𝑡2𝑇𝑏𝑒𝑟𝑒𝑚 m/s (13)
Where Aest1 and Aest2 are the respective estimated accelerations during Ttraction and Tberem, as measured at the time
of calculation.
Figure 18: Supervision limits for an EBD curve [24].
4.3.2. Service Brake Intervention
The Service Brake Intervention (SBI) is used in a similar way to the EBI, only to apply the service brakes instead
of the emergency brakes, with the intention of slowing the train down before the EBI is reached. This function may
not be available on all trains, depending on the configuration of the ETCS on-board equipment. Using the service
brakes in this way can mitigate the frequent use of the emergency brakes, reducing wear on the rolling stock and
track experienced through emergency braking.
The SBI may be defined in two different ways; If the target is an end of authority (EOA) the supervision limit (dented
SBI1) is calculated over the time between the SBI and the SBD curves, Tbs1. Otherwise, for an EBD based target
the supervision limit (SBI2) will be calculated over the time between the SBI and the EBI, Tbs2.
The values of Tbs1 and Tbs2 are defined based on the service brake feedback and are measured, where available,
from the train’s main brake pipe and brake cylinder pressures. This feedback allows for the distances between the
SBI and the SBD or EBD to be minimised. An algorithm for the calculation of these values is presented in detail in
Appendix A.3.10 of the SRS [24] but has been omitted from this work for simplicity. If the service brake feedback
is not available, these parameters are set to Tbs, the time required for the service brakes to build up to full braking
effort, as defined in the train data. Furthermore, if the SBI is unavailable, these parameters are set to zero in order
to achieve the maximum performance.
22
The two SBI curves are calculated as:
𝑑𝑆𝐵𝐼1(𝑉𝑒𝑠𝑡) = 𝑑𝑆𝐵𝐷(𝑉𝑒𝑠𝑡) − 𝑉𝑒𝑠𝑡𝑇𝑏𝑠1 m (14)
𝑑𝑆𝐵𝐼2(𝑉𝑒𝑠𝑡) = 𝑑𝐸𝐵𝐼(𝑉𝑒𝑠𝑡) − 𝑉𝑒𝑠𝑡𝑇𝑏𝑠2 m (15)
It is noted that if either the EBI or SBI are triggered the train will be brought to a halt autonomously by the on-board
equipment. Once the train has stopped, the driver must take steps to reset these safety systems and prove that he
or she is in fact fit to proceed with the train. Any time that these limits are surpassed will be subject to later
investigation into the cause of the incident (such as mechanical failure or diver negligence). The more severe
incidents may be investigated by the Government’s Rail Accident Investigation Branch [25].
4.3.3. Warning Supervision Limit
The Warning supervision limit (W) is the location where an indication appears to the driver (normally a light on the
driver machine interface), informing the driver to apply the brakes before reaching the SBI or EBI, with the intention
or avoiding intervention from the on-board equipment. Similar to the SBI, the W limit is calculated in different ways
for the EOA or EBD based targets:
𝑑𝑊(𝑉𝑒𝑠𝑡) = 𝑑𝑆𝐵𝐼1(𝑉𝑒𝑠𝑡) − 𝑉𝑒𝑠𝑡𝑇𝑤𝑎𝑟𝑛𝑖𝑛𝑔 m for the EOA (16)
𝑑𝑊(𝑉𝑒𝑠𝑡) = 𝑑𝑆𝐵𝐼2(𝑉𝑒𝑠𝑡) − 𝑉𝑒𝑠𝑡𝑇𝑤𝑎𝑟𝑛𝑖𝑛𝑔 m for an EBD based target (17)
As mentioned above, Twarning is the time taken between W and the SBI, as defined in the fixed value data.
4.3.4. Permitted Speed
The Permitted speed supervision limit (P) is the recommended speed displayed to the driver, observing the speed
restrictions imposed by the track, and allowing for a comfortable means of braking for the driver while avoiding
excessive brake wear and to limit wasted traction energy. Again, these are calculated differently for the EOA and
EBD curves:
𝑑𝑃(𝑉𝑒𝑠𝑡) = 𝑑𝑆𝐵𝐼1(𝑉𝑒𝑠𝑡) − 𝑉𝑒𝑠𝑡𝑇𝑑𝑟𝑖𝑣𝑒𝑟 m for the EOA (18)
𝑑𝑃(𝑉𝑒𝑠𝑡) = 𝑑𝑆𝐵𝐼2(𝑉𝑒𝑠𝑡) − 𝑉𝑒𝑠𝑡𝑇𝑑𝑟𝑖𝑣𝑒𝑟 m for an EBD based target (19)
In the above equations, Tdriver is the driver’s reaction time between P and the SBI, as defined in the fixed values.
4.3.5. Indication Supervision Limit
The Indication supervision limit (I) is the location where an indication will be presented to the driver on the DMI, to
inform the driver that they are approaching a target and must prepare to take action. The indication point is
calculated as a distance from the permitted supervision limit, i.e.
𝑑𝐼(𝑉𝑒𝑠𝑡) = 𝑑𝑃(𝑉𝑒𝑠𝑡) − 𝑉𝑒𝑠𝑡𝑇𝑖𝑛𝑑𝑖𝑐𝑎𝑡𝑖𝑜𝑛 m (20)
Where 𝑇𝑖𝑛𝑑𝑖𝑐𝑎𝑡𝑖𝑜𝑛 = 𝑚𝑎𝑥{(0.8 ∗ 𝑇𝑏𝑠), 5} s (21)
Tindication is the time elapsed between I and P and is a function of the service brake build up time, Tbs. This is intended
to improve the performance of the system. Where Tbs is small, Tindication is set to a constant of 5 seconds.
23
4.3.6. Ceiling Supervision Limits
The above analysis has all been carried out as speed monitoring when braking to a target. However, the ETCS
system still monitors the train’s speed when not approaching a target, to ensure that the train’s velocity does not
exceed the limit specified for the section of railway. Similar to above, the permitted speed, warning limit, SBI and
EBI are monitored, relative to the most restrictive speed profile of the railway. These appear as constant values
against distance where the permitted speed is constant, as in Figure 19, and are known as ceiling supervision
limits.
Figure 19: Ceiling supervision limits [24]
The train would nominally be travelling at or below the permitted speed, P. It the train begins to accelerate (through
any factors such as driver negligence, negative gradient or mechanical interruptions), the speed of the train may
increase past the warning limit, and an indication will appear on the DMI allowing the driver to rectify the error. If
no action is taken the speed may increase past the SBI curve (where available) or the EBI curve, causing the trains
service or emergency brakes to be applied, bringing the train to a halt.
To calculate the ceiling supervision limits a number of parameters are defined in the fixed value data. These outline the maximum and minimum values for each curve, as outlined in Figure 20 and Table 3.
Figure 20: Definition of dVebi
24
Table 3: Minimum and maximum ceiling supervision limit parameters as defined in Appendix A.3.1 of the System Requirements Specification [24].
Parameter Value (km/hr) Definition
dVebi_min 7.5 The minimum speed difference between P and EBI supervision limits.
dVebi_max 15 The maximum speed difference between P and EBI supervision limits.
Vebi_min 110 The value of permitted speed where dVebi starts to increase towards
dVebi_max
Vebi_max 210 The value of permitted speed where dVebi reaches dVebi_max
dVsbi_min 5.5 The minimum speed difference between P and SBI supervision limits.
dVsbi_max 10 The maximum speed difference between P and SBI supervision limits.
Vsbi_min 110 The value of permitted speed where dVsbi starts to increase towards
dVsbi_max
Vsbi_max 210 The value of permitted speed where dVsbi reaches dVsbi_max
dVwarning_min 4 The minimum speed difference between P and W supervision limits.
dVwarning_max 5 The maximum speed difference between P and W supervision limits.
Vwarning_min 110 The value of permitted speed where dVwarning starts to increase
towards dVwarning_max
Vwarning_max 140 The value of permitted speed where dVwarning reaches dVwarning_max
The ceiling supervision limits are thus calculated as follows:
Emergency Brake Intervention
When VMRSP > Vebi_min:
𝑑𝑉𝑒𝑏𝑖 = 𝑚𝑖𝑛 {(𝑑𝑉𝑒𝑏𝑖𝑚𝑖𝑛+ 𝐶𝑒𝑏𝑖(𝑉𝑀𝑅𝑆𝑃 − 𝑉𝑒𝑏𝑖𝑚𝑖𝑛
)) , 𝑑𝑉𝑒𝑏𝑖𝑚𝑎𝑥} km/hr (22)
Where: 𝐶𝑒𝑏𝑖 =𝑑𝑉𝑒𝑏𝑖𝑚𝑎𝑥−𝑑𝑉𝑒𝑏𝑖𝑚𝑖𝑛
𝑉𝑒𝑏𝑖𝑚𝑎𝑥−𝑉𝑒𝑏𝑖𝑚𝑖𝑛
(23)
When VMRSP ≤ Vebi_min: 𝑑𝑉𝑒𝑏𝑖 = 𝑑𝑉𝑒𝑏𝑖𝑚𝑖𝑛 km/hr (24)
Service Brake Intervention
When VMRSP > Vsbi_min:
𝑑𝑉𝑠𝑏𝑖 = 𝑚𝑖𝑛 {(𝑑𝑉𝑠𝑏𝑖𝑚𝑖𝑛+ 𝐶𝑠𝑏𝑖(𝑉𝑀𝑅𝑆𝑃 − 𝑉𝑠𝑏𝑖𝑚𝑖𝑛
)) , 𝑑𝑉𝑠𝑏𝑖𝑚𝑎𝑥} km/hr (25)
Where: 𝐶𝑠𝑏𝑖 =𝑑𝑉𝑠𝑏𝑖𝑚𝑎𝑥−𝑑𝑉𝑠𝑏𝑖𝑚𝑖𝑛
𝑉𝑠𝑏𝑖𝑚𝑎𝑥−𝑉𝑠𝑏𝑖𝑚𝑖𝑛
(26)
When VMRSP ≤ Vsbi_min: 𝑑𝑉𝑠𝑏𝑖 = 𝑑𝑉𝑠𝑏𝑖𝑚𝑖𝑛 km/hr (27)
25
Warning Supervision Limit
When VMRSP > Vwarning_min:
𝑑𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔 = 𝑚𝑖𝑛 {(𝑑𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔𝑚𝑖𝑛+ 𝐶𝑤𝑎𝑟𝑛𝑖𝑛𝑔(𝑉𝑀𝑅𝑆𝑃 − 𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔𝑚𝑖𝑛
)) , 𝑑𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔𝑚𝑎𝑥} km/hr (28)
Where: 𝐶𝑤𝑎𝑟𝑛𝑖𝑛𝑔 =𝑑𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔𝑚𝑎𝑥−𝑑𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔𝑚𝑖𝑛
𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔𝑚𝑎𝑥−𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔𝑚𝑖𝑛
(29)
When VMRSP ≤ Vwarning_min: 𝑑𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔 = 𝑑𝑉𝑤𝑎𝑟𝑛𝑖𝑛𝑔𝑚𝑖𝑛 km/hr (30)
4.4. Review of Technical Understandings
Throughout this section the ETCS System Requirements Specifications have been studied, particularly Chapter 3
[24]. From this, the fundamental equations behind the calculation of the ETCS braking curves and supervision limits
have been found. These equations will be invaluable during the modelling process.
Of course, this has only been a top level analysis, the SRS provides a number of other equations defining different
aspects of the train’s performance and various scenario definitions which have been omitted at this level.
26
5. Modelling Procedure and Implementation
MATLAB and Simulink are a pair of powerful software packages produced by The MathWorks which can be used
to model and analyse dynamic systems. MATLAB is suited to modelling mathematical equations through typed
code, while Simulink is based on a graphical user interface (GUI) where systems can be built in block diagram
format. Both packages can interact seamlessly, thus MATLAB can be used to initialise and run a Simulink model,
and then post-process the results.
Both packages contain user-friendly editors and provide a robust test environment. Extensive support is also
available online, making these packages ideal for the modelling stage of this project.
As discussed previously, the aim of this report was to produce braking curve models for the three levels of ERTMS.
Train data was provided based on the Hitachi Class 800 since it is readily available [20], and these trains will be
the first major mainline services to run with ETCS technologies in the UK. The model was tested under a number
of scenarios as discussed throughout this chapter.
5.1. Input Data
As mentioned previously, train data was based on the new Class 800 trainsets. For simplicity, standardised track
data was defined for the project. However, the model was designed to make it easy for actual track data to be
applied at a later date.
The track and train datasets were defined in Microsoft Excel and then imported into the MATLAB environment. This
allowed for the datasets to be easily manipulated without going through the MATLAB software. A number of
different datasets for each category could be built in separate Excel files, allowing a number of scenarios to be
defined. These datasets are outlined in the Appendices 9.1 and 9.2.
The train data is similar to that that would be loaded into the train’s on-board computer during installation. Certain
characteristics may be edited by the driver (such as the correction factors) if the train’s rolling stock was ever to
change. It is noted that only one train dataset was used for this project since the focus was based on the different
track scenarios. However, the model is configured so that any future work would allow for different train datasets
to be easily applied. The dataset takes some of the Class 800 characteristics, however correction factors were
based on those discussed in [26] to allow for easy validation of the model.
The track data was modelled to represent the data transferred to a train as it crosses a balise. Therefore, it only
contains the data for a block of finite distance (nominally 5 km). This however could easily be updated for future
use to include longer sections and more detail. For easy comparisons between datasets the gradient was
maintained at -10 ‰ for each set. This is also representative of the numerical examples given in [26], used for
model validation.
MATLAB scripts were written for the fixed value and national value datasets defined in appendices A.3.1 and A.3.2
of the SRS. These scripts are presented in Appendices 9.3.1 (Fixed_Value_Data.m) and 9.3.2
(National_Value_Data.m) of this document. A script was also written, ReadTrackData.m, to import the track and
train data from the Excel spreadsheets, and is seen in Appendix 9.3.3. Within this file, the command xlsread is
used to import the Excel data, which is then sorted into its relevant categories. These scripts can be referenced by
any future model, saving the need to re-write these commands and definitions for each model.
Any other input data, where required, was written into the model script. This included data such as the train’s initial
displacement and velocity. All velocities were given in km/hr, as in the ERA standards. This had to be taken into
account when carrying out any calculations.
27
5.2. Mathematical Model
The first stage of the modelling procedure was to transfer the equations discussed through section 4 into the
MATLAB environment, allowing for the calculation of the braking curves to a target. This model, named
BrakingCurves.m, is described in code in Appendix 9.4.1 and in the flow diagram in Figure 21 below. This model
was defined to consider only one target and therefore may not work effectively with all track datasets.
Figure 21: Mathematical model, BrakingCurves.m, flow diagram.
Initialise
Run
Fixed_Value_Data Fixed_Value_Data
Run
National_Value_Data National_Value_Data
Define TrackData
and TrainData files
Run
ReadTrackData ReadTrackData
TrackData.xlsx
TrainData.xlsx
Define Other Constants:
V_initial, V_delta0,
A_est1, A_est2, T_bs1, T_bs2,
T_traction, T_berem,
T_indication, V_delta1, V_delta2
Calculate Ceiling Supervision
Limits: V_ebi
V_sbi V_warning
Calculate Accelerations: A_brake_safe
A_gradient
A_safe
A_expected
Calculate Braking Curves for
each value of V: EBD, SBD, EBI, SBI1, SBI2,
W, P, I, FLOI
Plot Braking Curves and Ceiling
Limits.
Fixed Value Data
National Value Data
Track and
Train Data
Main Script
Auxiliary Script
Microsoft Excel File
28
5.2.1. Assumptions
To simplify the modelling process a number of assumptions were made, including:
The train approached the target at a steady speed, and decelerated smoothly and consistently.
At no point would the train accelerate under this model.
The track had a consistent gradient, and was wet (a correction factor for wet rails is available in the National
Data (MNVAVADH), for this model it was kept at 0).
There was zero speed reading inaccuracy (the ERTMS specification Subset-041 defines a speed
measurement inaccuracy of up to 2.98 %, for this model it was kept at 0).
There was zero position reading inaccuracy (the ERTMS specification Subset-041 defines a position
measurement inaccuracy of up to 5 m + 5 %, for this model it was kept at 0).
The traction cut-off time, Ttraction cut-off, was equal to zero, with the traction cut-off interface unavailable.
The nominal rotating mass was unknown.
The track had no reduced adhesion or brake inhibition profiles.
5.2.2. Initialisation and Parameter Definitions
The first stage of the model was to define all of the input parameters, constants and variables required for
calculation. Initially, the Fixed Value Data and National Value Data sets were collected through jumping to their
respective scripts, as discussed above and in Appendix 9.3. MATLAB allows for the running of one script from
within another by simply specifying the script name. For example, placing the line “Fixed_Value_Data” within the
BrakingCurves.m file will also run the Fixed_Value_Data.m file, populating the fixed value data in the MATLAB
workspace. A similar approach was used when importing the track and train datasets, using the ReadTrackData.m
script file. An alternative approach may have been to define functions instead of the auxiliary scripts. Functions,
however, require all inputs and outputs to be specified each time they are used. While this may improve the
functionality of the code, it would have led to long and complicated commands, particularly where a large number
of inputs or outputs were required.
It is noted though that using these scripts in this way requires that a consistent naming convention is adopted for
all variables, since these are taken directly from the global MATLAB workspace, rather than remaining local to a
function. Care was taken to ensure that any variables were not being overwritten unintentionally, particularly where
loops occurred in the code.
Following the import of data, other parameters were defined. This included the curve type (EOA or LOA), the target
type (EOA or EBD) and the target velocity (nominally zero). These would all be required to specify which
calculations were to be made for the supervision limits later in the model. The initial velocity was also set, normally
at 160 km/hr (100 mph), a fairly standard value for mainline operation.
Further to this, the error values and correction factors were defined. For simplicity, Vdelta0, Aest1 and Aest2 were all
set to zero, although they could be edited for any further work. Similarly, Tbs1 and Tbs2 were set to Tbs, which was
defined as part of the train input data
Ttraction, Tberem and Tindication were defined at this point using equations 10, 11 and 21 as defined previously. Vdelta1
and Vdelta2 were also calculated here using equations 12 and 13. Further to this, the vectors for each variable to be
calculated were pre-defined as zeros. This was to help optimise the code and reduce the time taken for the model
to execute, and could have been optimised further by setting the actual lengths of the arrays to the required values.
It is noted that throughout the model code, for i = 1:1 loops were used to break the code into sections. MATLAB
allows for the contents of such loops to be hidden, making the code easier to work on when only considering a
single section at a time.
29
5.2.3. Ceiling Supervision Limits
The first stage of the main calculations was to find the ceiling supervision limits using equations 22 to 30. To help
clarify the code, and since they depend entirely on the fixed value data, Cebi, Csbi and Cwarning were calculated in the
Fixed_Value_Data.m script. If-else loops were implemented to calculate the correct limits relative to VMRSP as
highlighted in section 4.3.6.
5.2.4. Accelerations
As was previously discussed, the ERTMS calculations use a number of different accelerations, including Asafe,
Abrake_safe, Agradient and Aexpected, as defined by equations 2, 3, 4 and 6 respectively. Abrake_safe and Agradient were
functions of velocity and displacement respectively, so were each calculated within a for loop, ensuring that a value
for each was calculated for each value of their respective parameter.
Similarly, Asafe and Aexpected were functions of both velocity and displacement, so were calculated through two for
loops (one for each velocity and displacement). Through doing this, a lookup table was effectively established for
each of the accelerations which could be referenced in later calculations using displacement or velocity.
5.2.5. Braking Curves
Once the acceleration values had been defined, the model could go on to calculate the braking curves relative to
a target. Similar to above, the curves were calculated within a for loop over the range of velocities between the
target speed and the maximum speed available from the train data. This allowed for the braking distances to be
calculated at each value of velocity, which were stored in arrays using the velocity as the index value.
When calculating the EBD and SBD curves (using equations 1 and 5) the acceleration values would normally be a
function of velocity and displacement, allowing the effects of a varying gradient to be taken into account. However,
for simplicity, and since the gradient was kept constant the accelerations were referenced against the varying
velocity but a constant displacement, for example:
EBD(v) = (((V(v)/3.6)^2)-((V_Target/3.6)^2))/(2*A_safe(v,1));
This meant that one less loop was required in the code for each equation, reducing the time required for the model
to execute. The reference, however, was still included for any future developments of the model.
Note that in the above equation (and others throughout the code) the velocity is divided by 3.6 in order to convert
from km/hr to m/s.
Following the calculations of the EBD and SBD, the other curves were calculated. The equations for the SBI1,
SBI2, W and P differed from those discussed previously in that the subtraction was been changed to an addition,
for example, equations 16 and 18 become:
W(v) = SBI1(v) + (V(v)/3.6)*T_warning;
P(v) = SBI1(v) + (V(v)/3.6)*T_driver;
This is down to the means by which these curves were being calculated, since they were being considered from
the target towards the train, with the target being at zero displacement. The equations, however, are designed to
be calculated from the train to the curve, with the front of the train being zero displacement.
An additional curve was introduced here also, known as the First Line of Intervention (FLOI), and was the first
location at which the on-board equipment would intervene through the application of the train’s brakes. This was
calculated as the maximum distance from the target of the SBI1, SBI2 or EBI curves.
30
5.2.6. Mathematical Model Output
After calculating the numerical data, the model produced an output plot containing all of the curves and their
respective ceiling supervision limits, allowing the user to easily analyse the output data. The plotting tools use the
line:
set(gca,'xdir','reverse')
This reversed the direction of the x axis so that the plot read as if the train was approaching the target from the left.
Figure 22 below shows an example output plot. Due to the quantity of data the plot as a whole can be quite difficult
to analyse (particularly if colour is unavailable). Throughout the rest of the report the output data will be manipulated
to be easier to read.
From the plot below, it is seen that a train approaching the target will receive an indication of the target 2 km from
the target location. At around 1.8 km the permitted speed displayed to the driver will begin to decrease, instructing
the driver to begin braking. The curves displayed follow the same order as those discussed in Figure 16 previously.
It is also noted that the SBI2 curve cannot be seen since it is fully covered by the FLOI. The results can also be
applied to trains travelling at different initial velocities. For example, a train travelling at 100 km/hr will receive an
indication at around 1 km from the target.
Figure 22: Mathematical model, BrakingCurves.m, output plot.
5.3. Model Validation and Verification
The basic model discussed above provided the framework for all further modelling throughout this project. Thus it
was of paramount importance to ensure that the model was valid.
Since the model was based on the equations defined by the ERA it could be assumed that the model was largely
valid, so long as these equations were used correctly. These were the same equations that will go into the actual
equipment on-board the trains, so must be valid for this system. Furthermore, the equations for the SBD and EBD
stem from the general equation of acceleration, an equation that has been proven valid through daily use over
hundreds of years.
A useful tool for verifying the functionality of the model was the ERA Braking Curves Tool (V3.0) [17]. As mentioned
in the literature review, this is a Microsoft Excel based platform designed to calculate the braking curves in the
same way as the model described above. The tool allows for similar input data to be entered, including the initial
train speed, target speed, the rolling stock correction factors and the various accelerations, equivalent to the data
31
being input to the MATLAB model. Running the braking curves tool yields the results in Figure 23, which upon
visual inspection can be seen to closely reflect those shown previously in Figure 22.
Furthermore, Table 4 below compares quantitatively the output data from the two models, for a train travelling at
160 km/hr. It can be seen that the two sets of results are identical. The ERA tool has undergone a thorough
validation process and is used daily by professionals in the industry. Therefore, by these results, it can be assumed
that the MATLAB model is valid.
This was further confirmed by repeating the two models under a number of different track and train scenarios. With
each simulation the two models yielded equivalent results.
It is noted that the Excel spreadsheet is in a protected format, the equations used are hidden and cannot be viewed
or adjusted. Therefore, the work done on the MATLAB model can confirm that the Excel model uses the same
equations in a similar way. Thus, the MATLAB model is a more open representation of the braking curves tool,
allowing the user to observe how the equations are actually calculated.
Figure 23: ERA Braking Curves Tool output plot, using the same data as for the MATLAB model.
Table 4: Comparison of ERA Braking Curves Tool and MATLAB model results.
Model Distance from target (m) at 160 km/hr
Indication Permitted Warning FLOI EBI EBD SBI1 SBI2 SBD
EXCEL 1998.10 1775.88 1686.99 1598.10 1442.55 1286.99 1248.31 1598.10 1092.75
MATLAB 1998.10 1775.89 1686.99 1598.10 1442.55 1286.99 1248.31 1598.10 1092.75
0
20
40
60
80
100
120
140
160
180
200
05001000150020002500
Speed
(km
/h)
Distance from target (m)
EBD
SBD
EBI
SBI1
SBI2
FLOI
Warning
Permitted
Indication
32
5.4. Extended Mathematical Model
The model seen previously (as with the ERA Braking Curves Tool) was only capable of calculating the braking
curves for a single target at any given time. Therefore, the next stage in the modelling process was to extend the
model so that repeated targets could be monitored, in a similar way to the target monitoring in a train’s on-board
equipment. The extended model, named Integrated_Model_1.m, used most of the groundwork set out by the
mathematical model used previously. The code developed for this model is displayed in Appendix 9.4.2 and a flow
chart is presented in Figure 24 below. The same assumptions were made as in section 5.2.1, only for this model
the train was allowed to accelerate if the most restrictive speed profile was to increase.
The model was designed to mimic the functionality of the train’s on-board equipment. As it travels along the railway,
a train would move from one block section to another, passing over a balise which transfers a data package to the
train. This package contains the track data for the block section, and was represented by the import of the track
data Excel file to the model. The file provided the train with a list of track features, such as the most restrictive
speed profile, from which the train could generate a set of targets. Then, using these targets, the on-board
equipment would calculate the appropriate speed profile for the train, presenting the information on the DMI.
The main difference between the train and the model presented here is that the train is travelling from block to
block, whereas this model considered only one block at a time. The train would also continuously monitor its targets
and update the braking distances relative to the track conditions, whereas in this model the profiles were all
calculated at the start of the block section.
The model effectively reviewed the track data input and identified any targets (mainly changes in the VMRSP). Then,
the braking profile for each target was generated, using the same principles as in the model discussed previously.
Following this, the minimum of each profile was calculated along the length of the block section.
This model was also developed to take Temporary Speed Restrictions (TSRs) into account. A TSR may occur
where a section of the railway has experienced minor damage, or where engineering works are being carried out
on the railway nearby. The ERTMS system would allow for TSRs to be set remotely by the signalling centre,
informing the train’s on-board equipment over the GSM-R network. For this model, a section was included for TSRs
to be defined, taking into account their location and the speed values. These were then seen by the model as
additional targets.
For improved clarity, the model script was further broken down into auxiliary scripts; supervision_limits.m and
BrakingCurvesModel_V2.m as seen in Appendices 9.4.3 and 9.4.4 respectively. These were taken directly from
the BrakingCurves.m model discussed previously but were broken down for increased flexibility when transitioning
between models.
Previously, the braking curves were developed as distance values as functions of train velocity. However, for further
analysis it was more useful to have velocity data in terms of distance from the curve. i.e. the previous output data
described the location that the train driver had to start braking, relative to the speed of the train. For this model, the
acceptable speed of the train relative to its distance from the target was required.
To achieve this mathematically would have presented a number of issues, largely since the equations for EBD and
SBD would be of a higher order in terms of velocity. Therefore, as a solution, an additional script was developed,
Interpolate_1.m, as seen in Appendix 9.4.5. This script applied MATLAB’s interp1 function to each of the braking
curves (considered over the range of velocities between 0 and the maximum velocity stated in the train input data).
In doing so, the datasets were effectively converted to velocities as functions of displacement which could then be
stored in an array acting as a lookup table.
33
Figure 24: : Extended mathematical model, Integrated_Model_1.m, flow diagram.
Initialise
Run
Fixed_Value_Data Fixed_Value_Data
Run
National_Value_Data National_Value_Data
Define TrackData
and TrainData files
Run
ReadTrackData ReadTrackData
TrackData.xlsx
TrainData.xlsx
Define Other Constants:
V_initial, V_delta0,
A_est1, A_est2, T_bs1, T_bs2,
T_traction, T_berem,
T_indication, V_delta1, V_delta2
Fixed Value Data
National Value Data
Track and
Train Data
Main Script
Auxiliary Script
Microsoft Excel File
Determine Temporary Speed
Restrictions (if any) and their
locations.
Calculate Target
Locations Run
supervision_limits
supervision_limits Run
BrakingCurvesModel_V2 National_Value_Data
Ceiling supervision
limits
Generalised braking
curves Run
Interpolate_1 Interpolate_1
Calculate braking
profiles
Speed Dependent
Data
Repeat for
each target
Plot Braking Profiles
Calculate Minimum
Profiles
34
5.4.1. Target Identification
As described previously, the model used the BrakingCurvesModel_V2.m and Interpolate_1.m files to generate a
standard set of braking curves for the block section. This assumed that the gradient in that block section remained
constant. These curves were then applied to each target in turn, allowing the braking profiles for each target to be
calculated as follows:
First, the initial and target supervision limits were calculated from the ceiling supervision limits, which had been
calculated for the length of the block section by the supervision_limits.m file. The curve type was also identified,
being an EOA if the target speed was zero, or a LOA otherwise. These would be used later in the model to
determine which type of curves to produce.
The target type was then considered; if this was an increase in speed the target was effectively ignored and the
profiles were set to their respective ceiling supervision limits. If this was the case, the EBD, SBD, SBI1 and I profiles
were all set to the maximum velocity in the train input data. This was to effectively remove them from the output
plot since they were only required in areas where the train was braking.
Conversely, if the target was a decrease in speed further analysis was carried out. First, the theoretical location of
the target was found (as the location where the EBD curve reaches 0 km/hr); if the target was an EOA the theoretical
target was simply at the target location. However, if the target was a LOA, the theoretical target was beyond the
actual target location, as in Figure 25.
Figure 25: Theoretical target location for a LOA curve [24].
For a LOA, the EBD curve was defined as that which crossed through the EBI ceiling supervision limit (for beyond
the target) at the target location. Therefore, the distance to the theoretical target location could be calculated as
the distance to the actual target location, d1, plus the braking distance of the EBD between Vebi and 0 km/hr, d2.
Following this, and still for the particular target, the braking distance was found from the indication curve, I, using
the initial speed as the reference point. The braking location was then also found (the location where the driver
would first have to take action) by subtracting the braking distance from the theoretical target location, as in Figure
26 below.
The model used the braking point and the theoretical target as limits when calculating the braking curves. For
example, before the braking point the curves were all set to their respective ceiling limits relative to the VMRSP before
the target. Similarly, after the theoretical target was passed the curves would all be set to their respective ceiling
limits relative to the VMRSP beyond the target. For values between the braking point and the theoretical target the
curves would be calculated.
Theoretical target location d1 d2
Train
35
Figure 26: Calculation of braking point.
5.4.2. Braking Curve Calculation
The code to generate the braking profiles for each target was originally written in the main body of the script.
However, with further development of additional models this section was extracted and made into a new auxiliary
script, named gen_target_profiles.m (see Appendix 9.4.6). This way, it was ensured that any adjustments made to
the code was applied across all models using it.
For each target, the model considered each value of distance along the length of the block section. For the values
of distance within the braking area, the model would assess the value of each of the braking or supervision velocity
curves at each value of distance relative to the individual target. The step size used when assessing along the
length of the railway was defined by the track input data, for this model a value of 10 m was used. For example, in
TrackData3.xlsx (Appendix 9.2.3), the first target was a speed decrease from 160 km/hr to 100 km/hr occurring at
2 km from the start of the block section. The model calculated the various braking profiles at 10 m steps up to and
beyond this target (before repeating for the second target which occurs at 4 km).
During this process, the VEBD value for each target at each value of distance was calculated using the line:
V_EBD1 = V_EBD(EBD_d ==...
min(max(EBD_d),round(d_target_theory(target_number) - d_line(d))));
This set the EBD curve equal to the value of the generic curve created by the Interpolate_1.m file seen previously,
relative to the target. If the distance to the target was greater than the length of the EBD reference array (EBD_d),
the VEBD value was set to the maximum reference value. Figure 27 below provides a visual understanding of this.
Figure 27: Calculation of V_EBD1.
Theoretical target
location Actual target
location Braking
Point
Indicatio
n
Curve, I
EBD
EBI Ceiling Supervision Limit
Permitted Speed
Braking Distance
Speed
Distance Train
d_target_theory
Actual target
location
EBD
EBI Ceiling Supervision Limit
Permitted Speed
max(EBD_d)
Speed
Distance Train
d_line →
V_EBD1
d_target_theory – d_line
36
Furthermore, if VEBD was calculated to be less than the permitted velocity (i.e. after the target has been passed)
the VEBD from this location onwards was set to the maximum velocity.
The values of VEBI, VSBI2, VP, and VW were calculated in a similar manner, but also observed the constraints of the
ceiling supervision limits before and after the target location, relative to the curve type. The VSBD and VSBI1 curves
were also calculated in the same way but only if the target was an EOA, according to the SRS. If the target was a
LOA, these were set to the maximum reference velocity as previously discussed.
The indication curve, VI was also calculated by the same method. This curve, however, was set to the maximum
reference velocity before the braking area and after the target location had been passed, to simulate the switching
on and off on the indication light on the DMI.
Finally, once each of the profiles were generated, the model would find the minimum of each profile. For example,
Figure 28.a. shows the VEBD traces for each of the targets in TrackData3.xlsx alongside the VMRSP, while Figure
28.b. presents these on a single plot. It is worth noting that the horizontal and vertical sections of the EBD curves
would not be included in real on-board systems, but are included here to simplify the computation of the curves.
Through calculating these curves in this way it can be ensured that any overlapping curves can be accounted for.
Figure 28: a) The individual EBD curves and b) The combined EBD curve.
5.4.3. Extended Model Output
As with the previous model, the extended model would produce output plots of the braking and supervision profiles,
as in Figure 29. However, these plots displayed the data over the length of the block section, rather than the
distance to target as seen previously (In the real system, the distance to target would be found and displayed to
the driver by subtracting the train’s location within the block section from the target location. Also, where the ceiling
supervision limits were previously overlaid onto the plot, they are now part of the profile datasets. Thus the plot is
much more clear than that seen previously.
a.
b.
37
Figure 29: Extended mathematical model, Integrated_Model_1.m, output plot for TrackData3.xlsx.
5.5. Simulink Models
In order to gain an understanding of how a train might react to these profiles over time, the modelling procedure
was extended into the Simulink environment. The Simulink model would build upon the extended mathematical
model in that it would capture all of the output data from the MATLAB model and use it as the input. This effectively
meant that the MATLAB data was being used in Simulink as a look-up table, referenced by the train’s velocity and
displacement.
5.5.1. Single Train Model
The Simulink model implemented a basic closed loop control system to simulate a train driving to the braking
profiles. An overview of the model is shown in Figure 30 below. Simply put, the model imported the permitted speed
profile from MATLAB (after the Integrated_Model_1.m script file had been run). Using the control loop, the model
then simulated the acceleration of the train over time, attempting to follow the permitted speed profile. Should the
simulated speed of the train surpass the permitted speed and any of the supervision limits the corresponding flags
would be raised. For example, should the speed of the train exceed the warning limit, the warning flag would be
raised, simulating the warning received by the driver. Furthermore, should the EBI or SBI curves be exceeded the
train’s emergency or service brakes would be applied. This was achieved by overriding the permitted speed by
multiplying it with zero. When the EBI or SBI flags were raised the deceleration of the train was also adjusted to
match Asafe or Aexpected respectively. The model was set so that if either flag was raised, the train must come to a
halt and wait for 10 seconds before continuing.
For each time instance, the displacement and velocity dependant data was found using Simulink’s Selector blocks.
This allowed the velocity profiles to be imported into the model as arrays, with the appropriate value being selected
based on the train’s displacement or velocity at that moment in time. To use the selector blocks, the velocity and
displacement data had to be scaled appropriately to match the array index values.
A Stop Simulation block was also incorporated into the model to stop the simulation if the maximum length of the
block section had been reached.
38
Figure 30: Overview of Simulink Single Train Model Integrated_Model_1_Sim.slx.
5.5.2. Single Train Model Output
The Integrated_Model_1.m file was extended in order to run the Simulink model, process the output data and to
then plot the results (see the end of Appendix 9.4.2). The model produced two output plots; the first was a plot of
the train velocity and the associated velocity profiles (for EBD, SBD etc.) over time, as in Figure 31. These had a
similar appearance to the plots seen above (such as Figure 29) with the main difference being that the profiles now
curve downwards due to the transfer into the time domain.
It is also noted that the profiles appear stepped, particularly at lower velocities. This is due to the resolution of the
distance dependant data; the data used has a resolution of 10 m and at low speeds a train may take a relatively
long time in each 10 m section. The supervision profiles are generated from this distance using the selector blocks
as described previously, so over the 10 m range the selector blocks are returning the same values. Using a higher
resolution track dataset (for example 1 m) would reduce the stepped appearance of the output plots but would
consequently increase the simulation time massively. Again it is noted that due to the volume of data this plot may
be difficult to read. It is advised that in future results, fewer of the profiles are viewed at one time. The second plot
(Figure 32) displays the train’s displacement along the block section over time.
a ∫ ∫
Look-up Table:
VP(d)
VEBD(d)
VSBD(d)
VEBI(d)
VSBI1(d)
VSBI2(d)
VW(d)
VI(d)
MATLAB: Integrated_Model_1.m
EBI Flag
SBI1 Flag
SBI2 Flag
Warning Flag
Indication Flag
A_safe(V,d)
A_expected(V,d)
A_train(V,d)
X
V(t) d(t)
V(t) d(t)
A(V,d,t)
- +
V(t) Normal = 1
Emergency = 0
V(t)
d(t)
d(t) curves(d) curves(t) flags(t) accelerations(V,d)
39
Figure 31: Velocity profile output for the single train Simulink model.
Figure 32: Train displacement output for the single train Simulink model.
40
5.5.3. Two Train Model (Moving Block)
As discussed through the previous sections, the highest level of operation of the ERTMS system is the conceptual
level 3, which would allow for moving blocks between trains to gain the maximum railway capacity. While the
complexities of developing such a system are well beyond the scope of this work, an attempt was made to develop
a simple model to demonstrate how two trains may interact under level 3 operation.
This model used two copies of the model developed previously interfaced together with an additional Simulink
subsystem. The theory of operation was that an initial train would enter a section of railway at a particular speed
(say a commuter train running at 100 km/hr). A short time later, a second train would enter the same section
travelling at a higher speed (for example, an express train running at 160 km/hr). As the second train catches up
to the first it must slow down so that a critical distance is maintained between the two trains (such as the indication
distance plus an offset). Similarly, if the first train slows down or stops in an emergency the second train must also
do so to reflect this. The critical distance may be dynamic, in that the faster the two trains are travelling the larger
the distance should be. Therefore, as the first train slows down (as is approaches a station or a passing loop) the
second train can catch up, arriving at the station etc. shortly after.
Figure 33 below gives an overview of the level 3 Simulink model, showing how the two trains are connected through
an interface subsystem. The interface read in the speed and position of each of the trains. The distance between
the two trains was then considered (taking into account the train length and the critical distance to be maintained).
If the distance between the two trains was less than the second train’s indication distance (a function of the train’s
velocity) the override flag was raised. This flag told the train 2 model to ignore the speed profile it was running to
originally and to consider V2x instead; the value of permitted speed, VP, relative to the distance between the trains.
If the distance between the trains became less than the EBI distance of the second train (also a function of its
velocity), the EBI flag was raised. This would trigger the EBI flag in the second train the same was as it was seen
in the single train model above, setting the permitted speed to zero and the deceleration to Asafe. The EBI flag could
also be raised by the first train and transferred to the second through the interface, ensuring that if the first train
stopped the second would also stop.
For this model it was assumed that the two trains had identical characteristics (lengths, accelerations and correction
factors) to simplify the calculation of the braking curves; by setting the two trains equal only one set of curves were
required. The model could easily be adjusted to consider two different trains, but this would require more intensive
use of resources (such as memory and computation time).
The diagram below also indicates how each part of the model would be connected in a real world system. For
example, the interface sub-system would be part of the second train’s on-board equipment and would connect to
the first train over the GSM-R network. Theoretically, there would be no limit to the number of trains connected in
this way.
Figure 33: Two Train Simulink Model
Train Model 1
Figure 30
Train Model 2
Figure 30
Interface
sub-system
V1(t) V2x
(t)
d1(t)
Emergency Flag
Override Flag
V2(t) d
2(t)
MATLAB: Level_3_Model_1.m
curves(d) curves1(t) curves(d) curves2(t) flags1(t) flags2(t)
V1(t), V
2(t)
d1(t), d
2(t) curves(d)
Movement Authority
Movement Authority
delay2 delay1
Train 1 Train 2 GSM-R
Link
Emergency Flag
41
To process this model, another MATLAB script was developed, Level_3_Model_1.m (see Appendix 9.4.7). This
script was basically a copy of the Integrated_Model_1.m file used previously, but included the additional parameters
required for the two train model (including the critical distance value and the speed limitation of the first train). The
time delay of the second train was also added to this script, and was implemented through a step input in the
Simulink model used to represent the train’s Movement Authority (MA). At the beginning of the simulation the MA
was set to zero which also set the permitted speed to zero through a multiplication block. After the time delay the
step input (or the MA) rose to a value of 1, setting the permitted speed to its actual value. This was also implemented
for the first train with the time delay nominally set to zero.
To run over a longer period and to allow true interaction between the two trains a track dataset was required that
covered a much greater distance than the 5 km used previously. Thus TrackData7.xlsx was created (Appendix
9.2.7) which covered a distance of 15 km. The dataset was designed with one target so that the effects of the trains
slowing down to a halt could be investigated.
The new script also processed the model’s output data, presenting it in a number of plots as discussed below.
5.5.4. Two Train Model Output
The Simulink model exported all the appropriate output data to the MATLAB workspace using the scope blocks.
These saved the data as structures with time, which could then be post-processed by the MATLAB model. These
structures included the displacements of each train, the most restrictive speed profiles that each train was driving
to, and the range of braking and supervision profiles. The respective arrays were then extracted from the structures
with time and multiplied by 3.6 to convert from m/s to km/hr, in preparation to be plotted.
In total, the model generated four plots, with three of these using two subplots. The first plot, shown in Figure 34,
is simply the braking curves, generated by the gen_target_profiles.m file. These are equivalent to the profiles shown
in Figure 29 above. The second and third plots to be produced, shown in Figure 35 and Figure 36 below, are the
velocity profiles and displacements of each train over time. Finally, and arguably most importantly, the model plots
a comparison of the two trains’ velocities and displacements, showing how the two trains interact as in Figure 37.
Figure 34: Braking Curves Plot for TrackData7.xlsx
42
Figure 35: Velocity and Displacement Profiles for Train 1.
Figure 36: Velocity and Displacement Profiles for Train 2.
43
Figure 37: Comparison of Velocity and Displacement Between Trains.
44
6. Discussion of Results
As discussed through the section above, a set of complex models were developed allowing for the assessment of
the ERTMS system for a number of different situations. These scenarios were developed in a number of Microsoft
Excel files which could be easily implemented into the models.
The modelling process began with a simple mathematical model which derived braking curves for a train, and
gradually increased in complexity, developing a model for a number of targets in a block section before adding a
train model to examine time dependant results. Finally, a two train model was developed that built upon the previous
stages of the modelling process and allowed for the interaction between two trains to be assessed.
The outputs of each of the models were observed through the previous sections. Through this section, these results
will be examined in more detail.
6.1. Mathematical Model
The mathematical model produced a simple plot of the ERTMS braking curves, based on the equations given in
the SRS. From these plots the indication, permitted speed, warning, SBI, EBI, SBD and EBD curves could be
examined relative to a single target and with respect to the initial speed of the train. Using this model, the behaviour
of a train can be investigated on its approach to the target.
The model relied heavily on train input data, so by using this model the characteristics of different trains (including
different accelerations or rolling stock correction factors) can be assessed to measure the different braking curves
each may adopt. The effects of track parameters can also be explored, such as changing traction coefficients
between the train’s wheels and the track, or different gradients.
For example, a comparison of the EBD, EBI and P distances are shown in Figure 38 below for the case when the
rails are dry against when they are wet. It can be seen that for the wet rails, the EBD distance is increased by
120 m, while the P and EBI curves are increased by 129 m. These results, and others like this, will be useful for
assessing a number of trains and target locations over the rollout of ERTMS.
Figure 38: Comparison of EBD, EBI and P for a) dry rails and b) wet rails.
It is noted that the above results were also compared against the ERA braking curves tool [17]. Bothe methods
yielded identical results, adding further evidence to the validity of the model.
1647
v 1314 1158 1776 1443 1278
a. b.
45
6.2. Extended Mathematical Model
A key objective of this study was to find out how the system would operate over a length of railway incorporating a
number of targets. For this, the extended mathematical model discussed in section 5.4 was developed based on
the basic mathematical model. From previous analysis it was seen that the model dealt comfortably with two targets
of different types (a LOA and an EOA), as in Figure 29 above.
6.2.1. Target Profiles
Similar to the above, this model could also be used to assess the effects of different train or track properties. This
model, however, was largely designed to examine the braking profiles for different block section features or targets.
These targets may be increases or decreases in line speed; for example, the selected profiles in Figure 39 account
for three targets. The first is an increase in speed from 100 km/hr to 160 km/hr occurring at 1 km into the section.
The model effectively ignores this target in terms of the profiles, and simply sets the permitted speed and FLOI to
the appropriate values before and after the target occurs. Of course, the train could not accelerate as rapidly as
displayed in the plot and this may be taken into account during further analysis. For this case, however, the
permitted speed is treated as the speed that the train is allowed to travel at or accelerate up to. It is not a guidance
curve as such.
The second target occurs at 3 km into the block and represents a LOA (since the target speed is non-zero). As it
can be seen, the model accounts for this accordingly, calculating the EBD curve as one which intersects with the
EBI (or in this case the FLOI) ceiling supervision limit at the target location (as required by the SRS). It is also noted
that the indication is active over the duration of the braking area, and switches off once the target has passed. The
SBD is ignored for this target type, as specified in the SRS.
The third target occurs at 4.9 km and is a speed decrease from 100 km/hr to a halt (representing an EOA). Again,
the model accounts for this correctly, calculating both the EBD and the SBD along with the other curves, so that
the foot of each curve is at the target location.
Figure 39: Braking and supervision profiles for TrackData4.xlsx.
From earlier investigations, it was difficult to find any work on a similar model. It is felt that this model could prove
highly effective when considering the use of ERTMS systems on railways where the line speed may change
frequently. The model could, of course, be extended to cover a much longer section of railway with a higher number
of targets.
46
6.2.2. Temporary Speed Restrictions
Another key aspect of this model was the ability to deal with Temporary Speed Restrictions (TSRs). As mentioned
previously, the TSRs were established as the beginning of the code. For example, Figure 40 below highlights the
effect of adding a TSR of 60 km/hr to TrackData5.xlsx between 3 km and 4 km. The model recognises this as
another LOA target and accounts for this appropriately with the relevant warning, supervision and braking curves.
At the end of the TSR the model returns the profiles to the nominal values (which had changed to 80 km during the
TSR). This proves that the safety critical aspect of the system remains valid when temporary speed restrictions are
put into force.
Figure 40: Braking and supervision profiles for TrackData5.xlsx with TSR of 60 km/hr set between 3 km and 4 km.
6.3. Single Train Simulink Model
This model was developed as an add-on to the extended mathematical model, and made use of the braking profiles
generated by that model. A simple control loop simulated a train’s acceleration up to and along the permitted speed
profile.
6.3.1. Permitted Speed
The plot in Figure 41 below displays the speed of a train as it travels along the block section (V), compared with
the permitted speed (VP) and the FLOI. It can be seen that the model accurately tracks the permitted speed profile,
remaining below the FLOI line as required. Where the permitted speed increases, the speed of the train increases
with a gradient equal to the acceleration specified in the train parameters. The train speed also took into account
the TSRs, as seen in Figure 42.
TSR =
60 km/hr
47
Figure 41: Speed profile for TrackData4.xlsx.
Figure 42: Speed profile for TrackData5.xlsx with TSR of 60 km/hr set between 3 km and 4 km.
These results prove useful when assessing how a train may travel through a section or railway over time, reacting
to the supervision curves imposed. These plots can be used to give an understanding of how a driver may respond
to the ERTMS data which could be compared to a conventional driving approach, where the driver would brake
much earlier as previously discussed.
Another useful output is the displacement plot, as in Figure 43, which demonstrates how far the train is travelling
over the time period.
48
Figure 43: Displacement plot for TrackData5.xlsx with TSR of 60 km/hr set between 3 km and 4 km.
6.3.2. Brake Intervention
The model could also be used to assess the situations where things may go wrong. Throughout the report the
emergency and service brake interventions have been greatly discussed, and this model now provides the facility
to actually test these facilities.
To test the SBI, the permitted speed as seen by the train was increased by 10 %. Starting with an initial speed of
100 km/hr, this meant that the train model accelerated past the most restrictive speed and the SBI ceiling
supervision limit as in Figure 44. For this analysis, TrackData9.xlsx was used, which was a simple constant speed
profile.
Upon crossing the warning limit a flag is raised, as in Figure 45. This is an indication of where the tractive effort
would be cut off in a real system. Following that, if the driver fails to respond, the train speed crosses the SBI limit.
A second flag is raised here, instructing the service brakes to activate. After a slight delay due to the traction cut
off time (assuming this is greater than zero, as defined in the train data) the velocity of the train levels out. This
represents the zero acceleration of the train over the service brake build up time (it is noted that in a real system
the acceleration here would be non-zero as the brakes build up, this has been omitted to simplify the model). After
the brake build up time the deceleration of the train is set to Aexpected and the train slows down to a halt. After a short
time (around 10 seconds) the train is allowed to continue.
Figure 44: Demonstration of the Service Brake Intervention.
49
Figure 45: Supervision flags relative to Figure 44.
If the service brake intervention is not available the emergency brake intervention may be triggered, operating in a
similar manner, as in Figure 46. When the EBI flag was raised the model was configured to decelerate at Asafe
which, as discussed previously, is less than Aexpected since all correction factors are considered, making it a worst
case scenario of sorts. This is why the train decelerates over a much longer time in Figure 46 than in Figure 44. It
is noted that in reality, the actual emergency deceleration is likely to be much sharper than the service brake
deceleration; the worst case is considered to ensure that the system remains safety critical. In both cases, the
deceleration is very linear due to the limitations in the applied control system.
Figure 46: Demonstration of the Emergency Brake Intervention.
As seen in Figure 47, the EBI can also be used when approaching a target. If the speed of the train crosses the
FLOI its acceleration becomes zero, reflecting the brake build up time. Once the brakes build are fully applied the
speed of the train decreases at the rate of Asafe, coinciding with the EBD curve.
50
Figure 47: Demonstration of EBI when approaching a target.
51
6.4. Two Train Simulink Model
The final stage of the modelling process was to introduce a second train into the model, in order to gain an
understanding of how two (or more) trains may interact under the ERTMS. The results of one simulation of this
model are shown in Figure 48 below and cover two aspects of the system; one train catching up to another slower
train, and one train braking with another.
For example, in the plots below, Train 1 enters the section at a speed of 100 km/hr and maintains this speed for
the duration of the section, while Train 2 starts 2 minutes later and accelerates up to 160 km/hr.
Figure 48: a) Comparison of velocity profiles for the two trains, b) Comparison of the displacements of the two trains, c) the distance maintained between the two trains towards the end of the simulation.
a.
b.
c.
52
As Train 2 accelerates, the distance between the trains, dcritical, decreases. At around 280 seconds this distance
becomes less than the indication distance, causing Train 2 to decelerate in order to follow the permitted speed
curve, relative to Train 1.
At around 450 seconds the train speeds are equal and a distance of 1380 m is maintained between these two
trains. If Train 1 were to continue at a constant velocity, Train 2 would match that velocity. However, as Train 1
approaches the target its velocity begins to decrease. Simultaneously, the velocity of Train 2 also begins to
decrease in order to maintain the distance between the two trains. This deceleration is much less than that of Train
1 though, since the critical distance is dynamic. That is, as the two trains slow down the distance required for Train
2 to stop is reduced, thus the distance required between the two trains is less.
Towards the end of the simulation, due to the scaling of Figure 48.b., it appears as if this distance tends towards
zero. Figure 48.c. however proves that this is in fact not the case, a distance of around 120 m is maintained between
the trains as they come to a standstill. This may represent the trains arriving at a station; Train 1 has arrived at the
platform while Train 2 catches up and waits outside the station.
The safety integrity of the system could also be checked using this model, based on the EBI flags. For example,
Figure 49 displays the behaviour of the two trains following an emergency situation; the EBI flag of train 1 is
triggered at 200 seconds, causing it to come to a halt immediately. At this time, Train 2 is too far away from Train
1 to be effected. When the distance between the trains decreases below the indication distance Train 2 receives
the EBI signal, causing it to also come to a halt and maintaining a safe distance between the trains.
Figure 49: Velocity and displacement profiles of the two trains when Train 1's EBI is triggered at 200 s.
Similarly, if the EBI flag of Train 1 is raised while the two trains are in synchrony, both trains will brake at the same
instance and decelerate at the same rate (assuming track and train parameters are consistent between the two
units). For example, in Figure 50 the EBI of Train 1 is applied at 400 s, while Train 2 is close behind. At this instant,
the emergency brakes of both trains are applied, bringing both to a halt.
53
Figure 50: Velocity and displacement profiles of the two trains when Train 1's EBI is triggered at 400 s.
As mentioned previously, the emergency signals may be transferred between trains over the GSM-R network. Of
course, fail safes would have to be put in place to ensure that these communications are robust and to ensure that
any loss in communications would not result in tragedy. One approach may be for the first train to send a signal to
the second to confirm its normal operation. Thus, if the signal is lost, the second train may assume that the first
train is in distress and apply the brakes or proceed at a low speed until communications have been regained.
54
7. Conclusions and Future Work
At the beginning of this project an overview of current signalling systems was given. It was found that such systems
used worldwide are mainly based on principles derived in the Victorian era. Because of this, these systems are
hugely flawed in terms or maintenance and reliability, line speed, and capacity. It was also found that since the first
conception of such systems there have been wide deviations in the technologies developed in different countries,
with over twenty different systems in use in Europe alone. The different equipment needed to operate on each
system makes international rail travel near impossible in its present state.
The main solution to this currently under development is an in cab signalling system standardised across Europe
that would replace all existing signalling systems and hardware, known as the European Train Control System.
This forms part of the wider European Rail Traffic Management System being established by the European Rail
Agency alongside eight railway technology companies.
The aim of the system is to replace the various lineside signalling systems across Europe (and other interested
countries) with a single in-cab system, with communications between trains and signalling centres over the specially
implemented GSM-R network. A key part of this would be the ability for each train to calculate its desired speed
and braking profiles based on the railway properties and other trains in the area. The information would then be
displayed to the driver on a Driver Machine Interface. The system therefore has the key advantages of:
Reduced maintenance and increased reliability since the physical signalling systems are removed, there
is less lineside equipment to be damaged, vandalised or stolen.
Increased line speed in suitable areas since the driver is not required to sight lineside signals, the
information is presented in the cab at all times. The train drivers could also adopt a much more aggressive
driving style, braking later and harder than previously while still maintaining a comfortable ride.
Increased capacity since railway blocks will not depend on physical equipment, making it more cost
effective to divide the railway into smaller sections. Also with the development of level 3 ERTMS the line
capacity could be further increased with moving block technologies.
Interoperability across Europe (and further) under a standardised system.
As the calculation of these braking curves formed a core part of the ETCS system the focus of this work turned to
modelling the fundamentals behind the generation of these curves, beginning with a simplified mathematical model.
Since there was little previous work available on similar systems, this model was based on the equations defined
in the ERTMS System Requirements, open on the ERA website [24]. The model proved reliable and accurate when
generating the appropriate curves, producing identical results to an Excel based tool developed by the ERA.
Though this model was simplified, it was designed with the capabilities to be developed further for future work.
Following this, the model was developed so that a number of targets in a length of railway could be considered,
generating the appropriate curves for each target and overlaying them to find a single braking profile for that section
of railway. Through this a useful tool was developed that could be used for a number of different track and train
conditions to analyse how these various properties may alter the operation of the ERTMS system.
Furthermore, the model was extended into the Simulink environment with a simple closed loop control system to
simulate the operation of a train driving to these profiles. It was found that a train driver could potentially follow
these curves with relative ease which would lead to a more optimised journey compared to conventional systems.
The embedded safety features were also demonstrated, showing how the emergency brakes may be applied as a
last resort. This system would mean that the brakes are applied before a target is reached, reducing the
occurrences and risks of signals passed at danger.
Finally, a two train model was demonstrated to gain an understanding of the moving block system associated with
level 3 ERTMS. It was demonstrated how a dynamic critical safe distance could be maintained between two trains
with the use of the braking profiles. The safety of this system was also put to the test, demonstrating that the GSM-
R network could potentially be used to trigger an emergency response in a train following another.
All of the modelled systems took input data for track and train in the form of Excel spreadsheets. The track datasets
were developed as simplified examples and were not based on actual data, however the models would allow for
55
this development in the future. The train data however was somewhat based on the Hitachi Class 800 that will be
one of the first trains to run ERTMS in the UK.
In general, these models have helped gain a depth of understanding in the operation of the ERTMS systems, the
generation of a train’s braking profiles, and how these may be implemented on the main line. A greater appreciation
has been earned in how to model these systems in the MATLAB and Simulink environment.
As it has been stated throughout this work, these models have been largely simplified. The ERA specifications go
into a vast depth of detail on a number of other aspects of the system that have been omitted. These, however,
could be implemented for use in further work. Examples of this may be communications interfaces, transitions
between blocks, movement authorities or track features such as level crossings. A number of assumptions were
also made during the modelling process, such as constant gradients and adhesions. These are areas that could
be applied in the future to increase the complexity and the accuracy of the models.
As a whole, the ETCS has been seen as a largely robust system that could deliver great advantages as listed
above. The protection features mentioned have been tested and could potential make Europe’s railways even safer
than they are today. To implement the system across Europe would require great cooperation between the member
states, railway bodies, train operating companies and technology companies. It would also come at a great expense
and could take a long time span, although the costs saved in the long term may eventually outweigh this. Before it
is implemented, a thorough feasibility study would be required for each geographical area to weigh up the
implementation difficulties against the advantages on offer.
The ERTMS system would prove viable if it is exhaustively tested using models similar to those demonstrated here,
ensuring that the system remains fail safe in all eventualities. This, coupled with testing on real world systems,
would lead to a comprehensive signalling system that could be implemented worldwide.
A further aspect which may be worth considering is an approach to driverless trains. It has been shown through
this work that the train is capable of monitoring its own speed, location, authorities and integrity. Thus, the system
could be further adapted in the future to become fully autonomous.
56
8. References
[1] ERA * UNISIG * EEIG ERTMS USERS GROUP, “Subset-023 Glossary of UNISIG Terms and Abbreviations,”
02 March 2012. [Online]. Available: http://www.era.europa.eu/Document-Register/Documents/Set-2-
Index003-SUBSET-023%20v300.pdf. [Accessed 15 January 2016].
[2] Network Rail, Railway Signalling Appreciation, 2012.
[3] ERTMS, “ERTMS | The European Railway Traffic Management System,” Oxalis, 2013. [Online]. Available:
http://www.ertms.net/. [Accessed 3 December 2015].
[4] UNIFE, “ERTMS Factsheet 8: UNISIG,” 2014. [Online]. Available: http://www.ertms.net/wp-
content/uploads/2014/09/ERTMS_Factsheet_8_UNISIG.pdf. [Accessed 3 December 2015].
[5] UNIFE, “UNIFE: Who Are We?,” karakas, 2015. [Online]. Available: http://www.unife.org/about-us/who-we-
are.html. [Accessed 3 December 2015].
[6] European Railway Agency, “Set of specifications # 1 (ETCS baseline 2 and GSM-R baseline 0),” 7 January
2015. [Online]. Available: http://www.era.europa.eu/Core-Activities/ERTMS/Pages/Set-of-specifications-
1.aspx. [Accessed 3 December 2015].
[7] Network Rail, “ERTMS - Network Rail,” [Online]. Available: http://www.networkrail.co.uk/aspx/12275.aspx.
[Accessed 3 December 2015].
[8] Network Rail, “ERTMS Online,” [Online]. Available: http://ertmsonline.com/. [Accessed 3 December 2015].
[9] Network Rail, “Your guide to European Rail Traffic Management System (ERTMS),” February 2015. [Online].
Available: http://ertmsonline.com/wp-content/uploads/2015/02/ERTMS-Guide.pdf. [Accessed 3 December
2015].
[10] UNIFE, “ERTMS Factsheet 3: ERTMS Levels,” 2014. [Online]. Available: http://www.ertms.net/wp-
content/uploads/2014/09/ERTMS_Factsheet_3_ERTMS_levels.pdf. [Accessed 3 December 2015].
[11] Alstom, “Atlas, ERTMS Signalling Solution,” 2015. [Online]. Available: http://www.alstom.com/products-
services/product-catalogue/rail-systems/signalling/products/atlas/. [Accessed 3 December 2015].
[12] E. Solutions, “ERTMS Solutions | Company,” 2015. [Online]. Available:
https://www.ertmssolutions.com/company/. [Accessed 3 December 2015].
[13] D. S. K. Abed, “Energy, Power and Control (EPC-IQ), 2010 1st International Conference on,” International
Conference on Energy, Power and Control, pp. 173 - 180, 2010.
[14] T. N. G. L. David Hicks, “Performance Modelling For The National ERTMS Programme (NEP),” Railway
System Modelling - Not Just for Fun, 2004. The IEE Seminar on, pp. 61-74, 2004.
[15] J.-L. Boulanger, Formal Methods Applied to Industrial Complex Systems, London, UK / Hoboken, NJ, USA:
ISTE Ltd / John Wiley & Sons, Inc., 2014.
[16] S. Damien Ledoux, “Model-Based Approach for ERTMS Railway Wayside System Specification, Validation,
and Proof,” 26 March 2014. [Online]. Available: http://www.mathworks.com/solutions/railway-systems/.
[Accessed 4 December 2015].
57
[17] European Rail Agency, “Braking Curves Simulation Tool,” 20 June 2012. [Online]. Available:
http://www.era.europa.eu/Core-Activities/ERTMS/Pages/Braking-Curves-Simulation-Tool.aspx. [Accessed 6
December 2015].
[18] D. f. T. Claire Perry MP, “New state-of-the-art InterCity Express train arrives in the UK,” 12 March 2015.
[Online]. Available: https://www.gov.uk/government/news/new-state-of-the-art-intercity-express-train-arrives-
in-the-uk. [Accessed 5 December 2015].
[19] BBC News Services, “Edinburgh to London train journey time to be cut,” BBC, 18 March 2016. [Online].
Available: http://www.bbc.co.uk/news/uk-scotland-edinburgh-east-fife-35842408. [Accessed 30 April 2016].
[20] A. Rogers, C. Robinson, K. Agatsuma, M. Iwasaki, D. E. S. Inarida, T. Yamamoto, K. Konishi and T. Mochida,
“Development of Class 800/801 High-speed Rolling Stock for UK Intercity Express Programme,” Hitachi
Review, vol. 63, no. 10, pp. 646-654, 2014.
[21] Department for Transport, “Intercity Express Programme (IEP) Schedule 1 - Appendix A: Train Technical
Specification - Document No: IEP-TECH-REQ-35,” 19 July 2012. [Online]. Available:
https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/82840/tts-redacted.pdf.
[Accessed 10 December 2015].
[22] N. Zafar, “Formal specification and validation of railway network components using Z notation,” IET Software,
vol. 3, no. 4, pp. 312-320, 2009.
[23] N. Zafar, “Formal Model for Moving Block Railway Interlocking System Based on Un-Directed Topology,”
Emerging Technologies, 2nd International Conference on, pp. 217-223, 2006.
[24] ERA * UNISIG * EEIG ERTMS Users Group, “System Requirement Specification,” Chapete 3: Principles,
Vols. SUBSET-026-3, no. 3.4.0, 05 May 2014.
[25] British Governement, “Rail Accident Investigation Branch,” Government Digital Service, [Online]. Available:
https://www.gov.uk/government/organisations/rail-accident-investigation-branch. [Accessed 30 April 2016].
[26] European Railway Agency, “Introduction to ETCS braking curves,” 20 June 2012. [Online]. Available:
http://www.era.europa.eu/Document-Register/Pages/Braking-curves---Introduction.aspx. [Accessed 26 01
2016].
58
9. Appendix
9.1. Train Datasets
9.1.1. TrainData1.xlsx
Figure 51: Correction factors and A_brake_emergency for TrainData1
Table 5: Other parameters defined in TrainData1
Other Parameters
Value Units
A_brake_service 1 m/s^2
A_train 0.7 m/s^2
T_be 3.5 s
T_bs 3.5 s
T_traction_cutoff 0 s
l (train length) 83 m
0
0.2
0.4
0.6
0.8
1
1.2
1.4
0 50 100 150 200
Corr
ection F
acto
r /
Deccele
ration (
m/s
/s)
Train Speed (km/hr)
Kdry_rst Kwet_rst A_brake_emergency
59
9.2. Track Datasets
9.2.1. TrackData1.xlsx
Figure 52: Speed Profile for TrackData1
Figure 53: Gradient Profile for TrackData1
-50
0
50
100
150
200
0.00 500.00 1000.00 1500.00 2000.00 2500.00
V_M
RS
P (
km
/hr)
Distance (m)
-12
-10
-8
-6
-4
-2
0
0.00 500.00 1000.00 1500.00 2000.00 2500.00
Gra
die
nt
‰
Distance (m)
60
9.2.2. TrackData2.xlsx
Figure 54: Speed Profile for TrackData2
Figure 55: Gradient Profile for TrackData2
0
20
40
60
80
100
120
140
160
180
0.00 1.00 2.00 3.00 4.00 5.00
V_M
RS
P (
km
/hr)
Distance (km)
-12
-10
-8
-6
-4
-2
0
0.00 1.00 2.00 3.00 4.00 5.00
Gra
die
nt
‰
Distance (km)
61
9.2.3. TrackData3.xlsx
Figure 56: Speed Profile for TrackData3
Figure 57: Gradient Profile for TrackData3
-20
0
20
40
60
80
100
120
140
160
180
0.00 1.00 2.00 3.00 4.00 5.00
V_M
RS
P (
km
/hr)
Distance (km)
MRSP km/h
-12
-10
-8
-6
-4
-2
0
0.00 1.00 2.00 3.00 4.00 5.00
Gra
die
nt
‰
Distance (km)
62
9.2.4. TrackData4.xlsx
Figure 58: Speed Profile for TrackData4
Figure 59: Gradient Profile for TrackData4
-20
0
20
40
60
80
100
120
140
160
180
0.00 1.00 2.00 3.00 4.00 5.00
V_M
RS
P (
km
/hr)
Distance (km)
-12
-10
-8
-6
-4
-2
0
0.00 1.00 2.00 3.00 4.00 5.00
Gra
die
nt
‰
Distance (km)
63
9.2.5. TrackData5.xlsx
Figure 60: Speed Profile for TrackData5
Figure 61: Gradient Profile for TrackData5
0
20
40
60
80
100
120
140
160
180
0.00 1.00 2.00 3.00 4.00 5.00
V_M
RS
P (
km
/hr)
Distance (km)
-12
-10
-8
-6
-4
-2
0
0.00 1.00 2.00 3.00 4.00 5.00
Gra
die
nt
‰
Distance (km)
64
9.2.6. TrackData6.xlsx
Figure 62: Speed Profile for TrackData6
Figure 63: Gradient Profile for TrackData6
0
20
40
60
80
100
120
140
160
180
0.00 1.00 2.00 3.00 4.00 5.00
V_M
RS
P (
km
/hr)
Distance (km)
-12
-10
-8
-6
-4
-2
0
0.00 1.00 2.00 3.00 4.00 5.00
Gra
die
nt
‰
Distance (km)
65
9.2.7. TrackData7.xlsx
Figure 64: Speed Profile for TrackData7
Figure 65: Gradient Profile for TrackData7
0
20
40
60
80
100
120
140
160
180
200
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
V_M
RS
P
Distance (km)
-12
-10
-8
-6
-4
-2
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Gra
die
nt
‰
Distance (km)
66
9.3. Input Dataset MATLAB Scripts
9.3.1. Fixed Value Data [24]
% University of Strathclyde, Electrical and Electronic Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% Fixed_Value_Data.m
% Fixed Value Data from Appendix 3.1 (pages 181 - 182) of the
% ERTMS/ETCS System Requirements Specification
% Chapter 3 - Principles, REF SUBSET-026-3, Issue 3.4.0, Date 12/05/2014
% ERA *UNISIG* EEIG ERTMS USERS GROUP
% http://www.era.europa.eu/Document-Register/Pages/Set-2-System-Requirements-Specification.aspx
% Accessed 10/01/2016
% Script by Thomas Gibson, University of Strathclyde
% Created 10/01/2016 Last Edited 21/01/2016
% Values may be commented out when not required
dV_ebi_min = 7.5; %km/h
dV_ebi_max = 15; %km/h
V_ebi_min = 110; %km/h
V_ebi_max = 210; %km/h
dV_sbi_min = 5.5; %km/h
dV_sbi_max = 10; %km/h
V_sbi_min = 110; %km/h
V_sbi_max = 210; %km/h
dV_warning_min = 4; %km/h
dV_warning_max = 5; %km/h
V_warning_min = 110; %km/h
V_warning_max = 140; %km/h
T_warning = 2; %s
T_driver = 4; %s
T_preindication = 7; %s
M_rotating_max = 15; %%
M_rotating_min = 2; %%
% Other Values
g = 9.81; %m/s/s
C_ebi = (dV_ebi_max - dV_ebi_min)/(V_ebi_max - V_ebi_min);
C_sbi = (dV_sbi_max - dV_sbi_min)/(V_sbi_max - V_sbi_min);
C_warning = (dV_warning_max - dV_warning_min)/(V_warning_max - V_warning_min);
67
9.3.2. National Value Data [24]
% University of Strathclyde, Electrical and Electronic Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% National_Value_Data.m
% National Value Data from Appendix 3.2 (pages 182 - 184) of the
% ERTMS/ETCS System Requirements Specification
% Chapter 3 - Principles, REF SUBSET-026-3, Issue 3.4.0, Date 12/05/2014
% ERA *UNISIG* EEIG ERTMS USERS GROUP
% http://www.era.europa.eu/Document-Register/Pages/Set-2-System-Requirements-Specification.aspx
% Accessed 10/01/2016
% Script by Thomas Gibson, University of Strathclyde
% Created 10/01/2016 Last Edited 21/01/2016
% Values may be commented out when not required
Q_NVDRIVER_ADHES = 'NOT_ALLOWED';
V_NVSHUNT = 30; %km/h
V_NVSTFF = 40; %km/h
V_NVONSIGHT = 30; %km/h
V_NVLIMSUPERV = 100; %km/h
V_NVUNFIT = 100; %km/h
V_NVREL = 40; %km/h
D_NVROLL = 2; %m
Q_NVSBTSMPERM = true; %Yes
Q_NVEMRRLS = 'ONLY AT STANDSTILL';
Q_NVGUIPERM = false; %No
Q_NVSBFBPERM = false; %No
Q_NVINHSMICPERM = false;%No
V_NVALLOWOVTRP = 0; %km/h
V_NVSUPOVTRP = 30; %km/h
D_NVOVTRP = 200; %m
T_NVOVTRP = 60; %s
M_NVDERUN = true; %Yes
M_NVCONTACT = 'NO REACTION';
T_NVCONTACT = inf;
D_NVPOTRP = 200; %m
D_NVSTFF = inf;
Q_NVLOCACC = 12; %m
M_NVAVADH = 0;
M_NVEBCL = 99.9999999; %%
L_NVKRINT = 'N/A';
M_NVKRINT = 0.9;
V_NVKRINT = 'N/A';
M_NVKVINT = 0.7;
M_NVKTINT = 1.1;
A_NVMAXREDADH1 = 1.0; %m/s/s
A_NVMAXREDADH2 = 0.7; %m/s/s
A_NVMAXREDADH3 = 0.7; %m/s/s
A_NVP12 = 'N/A';
A_NVP23 = 'N/A';
68
9.3.3. Read in Track Data
% University of Strathclyde, Electronic and Electrical Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% ReadTrackData.m
% Script to import pre-defined track and train data from Excel Spreadsheets
% Script by Thomas Gibson, University of Strathclyde
% Created 10/01/2016 Last Edited 02/02/2016
% TrackData = 'TrackData1.xlsx'; % Define the required files
% TrainData = 'TrainData1.xlsx'; % These may be set in the main script
% so appear commented out here
Track_Data = xlsread(TrackData,1,'A:C');
Train_Data = xlsread(TrainData,1,'A:G');
% Distance Dependant Track Data
d_line = Track_Data(:,1); % Displacement along track (km)
grad = Track_Data(:,2); % Gradient of track (‰)
V_line = Track_Data(:,3); % Permitted line speed (km/h)
% Speed Dependant Train Data
V_ref = Train_Data(:,1); % Reference velocity profile (km/hr)
Kdry_rst = Train_Data(:,2); % Rolling Stock Correction Factors
Kwet_rst = Train_Data(:,3); % Rolling Stock Correction Factors
A_brake_emergency = Train_Data(:,4);% Acceleration under emergency braking (m/s/s)
% Train Constants
A_brake_service = Train_Data(1,7); % Acceleration under service brakes (m/s/s)
A_train = Train_Data(2,7); % Normal Acceeration of the train (m/s/s)
T_be = Train_Data(3,7); % Emergency brake build up time (s)
T_bs = Train_Data(4,7); % Service brake build up time (s)
T_traction_cutoff = Train_Data(5,7);% Tractive effort cut-off time (s)
l_train = Train_Data(6,7); % Length of the train (m)
69
9.4. MATLAB Code
Published with MATLAB® R2015b
9.4.1. Mathematical Model – BrakingCurves.m
% University of Strathclyde, Electronic and Electrical Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% Script for the calculation of the ERTMS braking curves, based on ERA
% System Requirement Specifications (SRS) SUBSET-026-3 v340 06/01/2015
% http://www.era.europa.eu/Document-Register/Pages/Set-2-System-Requirements-Specification.aspx
% Accessed 10/01/2016
% Script by Thomas Gibson, University of Strathclyde
% Created 10/01/2016 Last Edited 02/02/2016
INITIALISE
clear
clc
% Import parameters (Comment out when not required)
Fixed_Value_Data % Data from Appendix 3.1 of SRS
National_Value_Data % Data from Appendix 3.2 of SRS
TrackData = 'TrackData1.xlsx';
TrainData = 'TrainData1.xlsx';
ReadTrackData % import Pre-defined track data
curve_type = 0; % Set as 0 for End of Movement Authority (EOA)
% or 1 for Limit of Momement of Authority (LOA)
V_Target = 0; % Zero for EOA, non-zero for LOA
target_type = 1; % Set as 0 for EOA Target or 1 for Emergency
% Brake Deceleration (EBD) Based Target
%Train input parameters
for i = 1:1
V_MRSP = max(V_line); %Velocity of Most Restrictive Speed Profile, km/h
V_initial = 160; %km/h
end
%Error parameters and constants
for i = 1:1
V_delta0 = 0;
A_est1 = 0;
A_est2 = 0;
T_bs1 = T_bs; %s
T_bs2 = T_bs; %s
T_traction = max((T_traction_cutoff - (T_warning + T_bs2)),0);
T_berem = max((T_be-T_traction),0); %s
T_indication = max(0.8*T_bs,5);
V_delta1 = A_est1*T_traction;
V_delta2 = A_est2*T_berem;
70
end
%Initialise vectors for improved time efficiency
for i = 1:1
A_gradient = zeros;
A_brake_safe = zeros;
EBD = zeros;
EBI = zeros;
SBD = zeros;
A_safe = zeros;
A_expected = zeros;
D_bec = zeros;
SBI1 = zeros;
SBI2 = zeros;
P = zeros;
W = zeros;
I = zeros;
V = zeros;
end
Ceiling Supervision Limits
for i = 1:1;
if V_MRSP > V_ebi_min
dV_ebi = min(dV_ebi_min + C_ebi*(V_MRSP - V_ebi_min),dV_ebi_max);
else
dV_ebi = dV_ebi_min;
end
if V_MRSP > V_sbi_min
dV_sbi = min(dV_sbi_min + C_sbi*(V_MRSP - V_sbi_min),dV_sbi_max);
else
dV_sbi = dV_sbi_min;
end
if V_MRSP > V_warning_min
dV_warning = min(dV_warning_min + C_warning*(V_MRSP - V_warning_min),dV_warning_max);
else
dV_warning = dV_warning_min;
end
V_ebi = V_MRSP + dV_ebi;
V_sbi = V_MRSP + dV_sbi;
V_warning = V_MRSP + dV_warning;
end
Accelerations
% A_brake_safe
for v = 1:length(V_ref)
A_brake_safe(v) = Kdry_rst(v)*(Kwet_rst(v) + M_NVAVADH*(1-Kwet_rst(v)))*A_brake_emergency(v);
end
% A_gragient
for d = 1:length(d_line)
if grad(d) >= 0
71
A_gradient(d) = g*grad(d)/(1000+10*M_rotating_max);
else
A_gradient(d) = g*grad(d)/(1000+10*M_rotating_min);
end
end
% A_safe & A_expected
for v = 1:length(V_ref)
for d = 1:length(d_line)
A_safe(v,d) = A_brake_safe(v) + A_gradient(d);
A_expected(v,d) = A_brake_service + A_gradient(d);
end
end
Calculate Braking Curves
for v = find(V_ref == V_Target):max(V_ref)
V(v) = V_ref(v);
% Emergency Brake Deceleration
EBD(v) = (((V(v)/3.6)^2)-((V_Target/3.6)^2))/(2*A_safe(v,1));
%Service Brake Deceleration
SBD(v) = (((V(v)/3.6)^2)-((V_Target/3.6)^2))/(2*A_expected(v,1));
% Emergency Brake Intervention
D_bec(v) = (V(v)/3.6)*T_berem;
EBI(v) = EBD(v) + D_bec(v);
% Service Brake Intervention
SBI1(v) = SBD(v) + (V(v)/3.6)*T_bs1;
SBI2(v) = EBI(v) + (V(v)/3.6)*T_bs2;
% Warning & Permitted Supervision Limit
if target_type == 0 % for the EOA
W(v) = SBI1(v) + (V(v)/3.6)*T_warning;
P(v) = SBI1(v) + (V(v)/3.6)*T_driver;
elseif target_type == 1 % for an EBD based target
W(v) = SBI2(v) + (V(v)/3.6)*T_warning;
P(v) = SBI2(v) + (V(v)/3.6)*T_driver;
end
% Indication Limit
I(v)=P(v)+(V(v)/3.6)*T_indication;
end
%Pre-Indication Point
d_preindication = max(I) + (V_initial/3.6)*T_preindication;
%Calculate Indication Point
for v = find(V_ref == V_Target):max(V_ref)
if v > (V_MRSP + 1)
I(v)=I(v - 1);
end
end
% Calculate First Line of Intervention
72
FLOI1 = max(SBI1,SBI2);
FLOI = max(FLOI1,EBI); % First Line of Intervention
Plot Braking Curves
for i = 1:1
figure
linewidth = 2;
plot1 = plot(...
EBD,V,...
SBD,V,...
EBI,V,...
SBI1,V,...
SBI2,V,...
P,V,...
W,V,...
I,V,...
FLOI,V,...
d_preindication,V,...
'LineWidth',linewidth);
set(gca,'xdir','reverse')
set(plot1(1),'DisplayName','EBD','LineStyle','-','Color','b')
set(plot1(2),'DisplayName','SBD','LineStyle','-','Color','g')
set(plot1(3),'DisplayName','EBI','LineStyle',':','Color','b')
set(plot1(4),'DisplayName','SBI1','LineStyle','--','Color','g')
set(plot1(5),'DisplayName','SBI2','LineStyle','--','Color','b')
set(plot1(6),'DisplayName','P','LineStyle','-','Color',[0.75 0.75 0.75])
set(plot1(7),'DisplayName','W','LineStyle','-','Color',[1 0.65 0])
set(plot1(8),'DisplayName','I','LineStyle','-','Color','y')
set(plot1(9),'DisplayName','FLOI','LineStyle','-','Color','r')
legend1 = legend('EBD','SBD','EBI','SBI1','SBI2','P','W','I',’FLOI’);
set(legend1,...
'Position',[0.15 0.15 0.15 0.35]);
ylim([0 180])
xlabel('Distance to Target (m)')
ylabel('Velocity (km/h)')
title('ERTMS Braking Curves');
grid('on')
% Ceiling Supervision Limits
% MRSP supervision
MRSP_sup = refline(0,V_MRSP);
MRSP_sup.Color = [0.75 0.75 0.75]; %grey
MRSP_sup.LineStyle = '-';
MRSP_sup.LineWidth = linewidth;
MRSP_sup.DisplayName = 'P_Ceiling';
% EBI Supervision Limit
ebi_sup = refline(0,V_ebi);
ebi_sup.Color = 'b';
ebi_sup.LineStyle = ':';
ebi_sup.LineWidth = linewidth;
ebi_sup.DisplayName = 'EBI_Ceiling';
% SBI Supervision Limit
sbi_sup = refline(0,V_sbi);
73
sbi_sup.Color = 'g';
sbi_sup.LineStyle = '--';
sbi_sup.LineWidth = linewidth;
sbi_sup.DisplayName = 'SBI_Ceiling';
% Warning Supervision Limit
warning_sup = refline(0,V_warning);
warning_sup.Color = [1 0.65 0]; %Orange
warning_sup.LineStyle = '-';
warning_sup.LineWidth = linewidth;
warning_sup.DisplayName = 'W_Ceiling';
end
74
9.4.2. Extended Mathematical Model – Integrated_Model_1.m
% University of Strathclyde, Electronic and Electrical Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% Integrated_Model_1.m
% Script for the calculation of the ERTMS braking curves for multiple targets
% based on ERA System Requirement Specifications (SRS) SUBSET-026-3 v340 06/01/2015
% http://www.era.europa.eu/Document-Register/Pages/Set-2-System-Requirements-Specification.aspx
% Accessed 10/01/2016
% This file is an extention to the file BrkingCurves.m developed for this project
% Other files required are:
% Fixed_Value_Data.m
% National_Value_Data.m
% ReadTrackData.m
% supervision_limits.m
% BrakingCurvesModel_V2.m
% Interpolate_1.m
% gen_target_profiles.m
% Track and Train Data is also required in Excel format
% Script by Thomas Gibson, University of Strathclyde
% Created 14/03/2016 Last Edited 25/03/2016
INITIALISE
clear
clc
% Import parameters (Comment out when not required)
Fixed_Value_Data % Data from Appendix 3.1 of SRS
National_Value_Data % Data from Appendix 3.2 of SRS
TrackData = 'TrackData3.xlsx';
TrainData = 'TrainData1.xlsx';
ReadTrackData % Pre-defined track data
target_type = 1; % Set as 0 for EOA Target or 1 for Emergency
% Brake Deceleration (EBD) Based Target
Temporary Speed Restrictions (TSRs)
% Repeat for additional TSRs, comment out for no TSRs
% V_TSR1 = V_line; % Initialise array for First TSR
% V_TSR1_Limit = 60; % Restriction in km/hr
% d_start_TSR = 4000; % TSR Start Location, m
% d_end_TSR = 4500; % TSR End Location, m
% index_start_TSR1 = find(d_line == d_start_TSR); % Start location index value
% index_end_TSR1 = find(d_line == d_end_TSR); % End location index value
%
% for d_TSR = index_start_TSR1:index_end_TSR1
% V_TSR1(d_TSR) = V_TSR1_Limit;
% end
75
%
%
% V_MRSP = min(V_line,V_TSR1); % Temporary Speed Restrictions (TSRs) set here
% If no TSRs
V_MRSP = V_line;
Train input parameters
Train1_Delay = 0;
V_entry = 100/3.6; % m/s
d_entry = 0; % m
V_release = 30/3.6; % m/s
d_step = d_line(2) - d_line(1);
% Error parameters and constants
for i = 1:1
V_delta0 = 0;
A_est1 = 0;
A_est2 = 0;
T_bs1 = T_bs; %s
T_bs2 = T_bs; %s
T_traction = max((T_traction_cutoff - (T_warning + T_bs2)),0);
T_berem = max((T_be-T_traction),0); %s
T_indication = max(0.8*T_bs,5);
V_delta1 = A_est1*T_traction;
V_delta2 = A_est2*T_berem;
n = 0;
d_target_index = zeros;
delta = 20; % Distance between trains (m)
end
Main Code
Find target locations
for i = 1:length(V_MRSP)-1 % For length of line - 1
if (V_MRSP(i) ~= V_MRSP(i+1)) % If change in velocity
n = n+1; % Increment index value
d_target_index(n) = i+1; % Save target index number
end
end
if n > 0 % If block section contains any targets
d_target = d_line(d_target_index); % Array of target distances
V_target = V_MRSP(d_target_index); % Array of target speeds
else % If not, set end of block as target
d_target = d_line(end); % Array of target distances
V_target = V_MRSP(end);
n = n+1;
76
d_target_index(n) = length(V_MRSP);
end
Jump to scripts
supervision_limits % Calculate supervisiton limits against line distance (see script)
BrakingCurvesModel_V2 % Calculate generic braking curves(see script)
Interpolate_1 % Convert v related data to d related data (see script)
% MAIN SCRIPT
plot_profiles = 1; % Set as 1 to generate plot of braking profiles
plot_train1 = 1; % Set as 1 to generate plot of train profiles against time
gen_target_profiles % Generate braking proflies for each target
Simulate and process output data
% Run Simulation
sim('Integrated_Model_1_Sim.slx')
% Time Array
time_out = braking_curves_out.time;
% Displacement Array
d_t = displacement_out.signals.values;
% MRSP Array
V_MRSP_t = velocity_out.signals.values(:,1)*3.6;
% Extract time dependent braking profiles, convert from m/s to km/hr
V_I_t = braking_curves_out.signals.values(:,1)*3.6;
77
V_W_t = braking_curves_out.signals.values(:,2)*3.6;
V_P_t = braking_curves_out.signals.values(:,3)*3.6;
V_SBI2_t = braking_curves_out.signals.values(:,4)*3.6;
V_SBI1_t = braking_curves_out.signals.values(:,5)*3.6;
V_EBI_t = braking_curves_out.signals.values(:,6)*3.6;
V_SBD_t = braking_curves_out.signals.values(:,7)*3.6;
V_EBD_t = braking_curves_out.signals.values(:,8)*3.6;
V_t = braking_curves_out.signals.values(:,9)*3.6;
FLOI1_t = min(V_SBI1_t,V_SBI2_t);
FLOI_t = min(FLOI1_t, V_EBI_t); % First Line of Intervention
Plot output data
if plot_train1 == 1
figure
subplot(2,1,1); % top subplot
plot2 = plot(...
time_out, V_EBD_t,...
time_out, V_SBD_t,...
time_out, V_EBI_t,...
time_out, V_SBI1_t,...
time_out, V_SBI2_t,...
time_out, V_P_t,...
time_out, V_W_t,...
time_out, V_I_t,...
time_out, V_MRSP_t,...
time_out, V_t,...
time_out, FLOI_t,...
'LineWidth',linewidth);
set(plot2(1),'DisplayName','EBD','LineStyle','-','Color','b')
set(plot2(2),'DisplayName','SBD','LineStyle','-','Color','g')
set(plot2(3),'DisplayName','EBI','LineStyle',':','Color','b')
set(plot2(4),'DisplayName','SBI1','LineStyle','--','Color','g')
set(plot2(5),'DisplayName','SBI2','LineStyle','--','Color','b')
set(plot2(6),'DisplayName','Permitted','LineStyle','-','Color',[0.75 0.75 0.75])
set(plot2(7),'DisplayName','Warning','LineStyle','-','Color',[1 0.65 0])
set(plot2(8),'DisplayName','Indication','LineStyle','-','Color','y')
set(plot2(9),'DisplayName','V_MRSP','LineStyle','-','Color','m')
set(plot2(10),'DisplayName','V','LineStyle','-','Color','c')
set(plot2(11),'DisplayName','FLOI','LineStyle','-','Color','r')
legend1 = legend('V_{EBD}','V_{SBD}','V_{EBI}','V_{SBI1}',...
'V_{SBI2}','V_P','V_W','V_I','V_{MRSP}','V','FLOI');
if V_P_t(end) == 0
error1 = V_target(end); % final target speed in km/hr
error2 = find(V_P_t > error1);
x_max_index = error2(end);
x_max = 1.1*time_out(x_max_index + 1);
else
x_max = time_out(end);
end
xlim([0 x_max])
ylim([0 180])
xlabel('Time in Block Section (s)')
78
ylabel('Velocity (km/h)')
title3 = 'ERTMS Velocity Profiles for Data Set ';
title4 = [title3 TrackData];
title(title4);
grid('on')
subplot(2,1,2);
plot3 = plot(time_out,d_t,'LineWidth',linewidth);
xlim([0 x_max])
xlabel('Time in Block Section (s)')
ylabel('Distance along Block Section (m)')
title('Train Displacement');
grid('on')
end
79
9.4.3. Ceiling Supervision Limits – supervision_limits.m
% University of Strathclyde, Electronic and Electrical Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% supervision_limits.m
% Script for the calculation of the ERTMS ceiling supervision limits
% Based on ERA System Requirement Specifications (SRS) SUBSET-026-3 v340 06/01/2015
% http://www.era.europa.eu/Document-Register/Pages/Set-2-System-Requirements-Specification.aspx
% Accessed 10/01/2016
% This is a section of the script BrakingCurves.m, also developed for this project
% Script by Thomas Gibson, University of Strathclyde
% Created 14/03/2016 Last Edited 14/03/2016
V_ebi = zeros;
V_sbi =zeros;
V_warning = zeros;
for d = (1:length(V_MRSP))
if V_MRSP(d) > V_ebi_min
dV_ebi = min(dV_ebi_min + C_ebi*(V_MRSP(d) - V_ebi_min),dV_ebi_max);
else
dV_ebi = dV_ebi_min;
end
if V_MRSP(d) > V_sbi_min
dV_sbi = min(dV_sbi_min + C_sbi*(V_MRSP(d) - V_sbi_min),dV_sbi_max);
else
dV_sbi = dV_sbi_min;
end
if V_MRSP(d) > V_warning_min
dV_warning = min(dV_warning_min + C_warning*(V_MRSP(d) - V_warning_min),dV_warning_max);
else
dV_warning = dV_warning_min;
end
V_ebi(d) = V_MRSP(d) + dV_ebi;
V_sbi(d) = V_MRSP(d) + dV_sbi;
V_warning(d) = V_MRSP(d) + dV_warning;
end
80
9.4.4. Braking Curves – BrakingCurvesModel_V2.m
% University of Strathclyde, Electronic and Electrical Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% Script for the calculation of the ERTMS braking curves, based on ERA
% System Requirement Specifications (SRS) SUBSET-026-3 v340 06/01/2015
% http://www.era.europa.eu/Document-Register/Pages/Set-2-System-Requirements-Specification.aspx
% Accessed 10/01/2016
% Version 2
% The Original File was used to calculate the braking distances for a
% specific instant. This file is to be used along a section of railway
% to produce the suggested train velocities.
% Script by Thomas Gibson, University of Strathclyde
% Original Created 10/01/2016 Last Edited 20/02/2016
% V2 Created 06/03/2016 Last Edited 14/03/2016
% Initialise vectors for improved time efficiency
for i = 1:1
A_gradient = zeros;
A_brake_safe = zeros;
EBD = zeros;
EBI = zeros;
SBD = zeros;
A_safe = zeros;
A_expected = zeros;
D_bec = zeros;
SBI1 = zeros;
SBI2 = zeros;
P = zeros;
W = zeros;
I = zeros;
V = zeros;
end
%A_brake_safe
for v = 1:length(V_ref)
A_brake_safe(v) = Kdry_rst(v)*(Kwet_rst(v) + M_NVAVADH*(1-Kwet_rst(v)))*A_brake_emergency(v);
end
%A_gragient
for d = 1:length(d_line)
if grad(d) >= 0
A_gradient(d) = g*grad(d)/(1000+10*M_rotating_max);
else
A_gradient(d) = g*grad(d)/(1000+10*M_rotating_min);
end
end
%A_safe & A_expected
for v = 1:length(V_ref)
for d = 1:length(d_line)
A_safe(v,d) = A_brake_safe(v) + A_gradient(d);
A_expected(v,d) = A_brake_service + A_gradient(d);
end
end
81
%Calculate braking curves find(V_ref == V_Target):length(V_ref)
for v = 1:length(V_ref)
V(v) = V_ref(v);
% Emergency Brake Deceleration
EBD(v) = ((V(v)/3.6)^2)/(2*A_safe(v,1));
%Service Brake Deceleration
SBD(v) = ((V(v)/3.6)^2)/(2*A_expected(v,1));
% Emergency Brake Intervention
D_bec(v) = (V(v)/3.6)*T_berem;
EBI(v) = EBD(v) + D_bec(v);
% Service Brake Intervention
SBI1(v) = SBD(v) + (V(v)/3.6)*T_bs1;
SBI2(v) = EBI(v) + (V(v)/3.6)*T_bs1;
%Warning & Permitted Supervision Limit
if target_type == 0 % for the EOA
W(v) = SBI1(v) + (V(v)/3.6)*T_warning;
P(v) = SBI1(v) + (V(v)/3.6)*T_driver;
elseif target_type == 1 % for an EBD based target
W(v) = SBI2(v) + (V(v)/3.6)*T_warning;
P(v) = SBI2(v) + (V(v)/3.6)*T_driver;
end
I(v)=P(v)+(V(v)/3.6)*T_indication;
end
%Pre-Indication Point
d_preindication = max(I) + (V_initial/3.6)*T_preindication;
82
9.4.5. Interpolation – Interpolate_1.m
% University of Strathclyde, Electronic and Electrical Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% Interpolate_1.m
% Script to Interpolate Values for Velocity as function of Displacement
% (From displacement as functions of velocity)
% Script by Thomas Gibson, University of Strathclyde
% Created 14/03/2016 Last Edited 14/03/2016
% Values with subscript d indicate values of displacement in m
% Emergency Brake Deceleration
EBD_d = round(min(EBD)):1:round(max(EBD));
V_EBD = interp1(EBD,V_ref,EBD_d,'linear','extrap');
% Emergency Brake Intervention
EBI_d = round(min(EBI)):1:round(max(EBI));
V_EBI = interp1(EBI,V_ref,EBI_d,'linear','extrap');
% Service Brake Deceleration
SBD_d = round(min(SBD)):1:round(max(SBD));
V_SBD = interp1(SBD,V_ref,SBD_d,'linear','extrap');
% Service Brake Intervention
SBI1_d = round(min(SBI1)):1:round(max(SBI1));
V_SBI1 = interp1(SBI1,V_ref,SBI1_d,'linear','extrap');
SBI2_d = round(min(SBI2)):1:round(max(SBI2));
V_SBI2 = interp1(SBI2,V_ref,SBI2_d,'linear','extrap');
% Permitted Speed
P_d = round(min(P)):1:round(max(P));
V_P = interp1(P,V_ref,P_d,'linear','extrap');
% Warning
W_d = round(min(W)):1:round(max(W));
V_W = interp1(W,V_ref,W_d,'linear','extrap');
% Indication
I_d = round(min(I)):1:round(max(I));
V_I = interp1(I,V_ref,I_d,'linear','extrap');
83
9.4.6. Generate Target Braking Profiles –
gen_target_profiles.m
% University of Strathclyde, Electrical and Electronic Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% gen_target_profiles.m
% Script for the calculation of the ERTMS braking curves for multiple targets
% This file was originally part of Integrated_Model_1.m but has been
% extracted for use with other models (such as Level_3_Model_1.m)
% based on ERA System Requirement Specifications (SRS) SUBSET-026-3 v340 06/01/2015
% http://www.era.europa.eu/Document-Register/Pages/Set-2-System-Requirements-Specification.aspx
% Accessed 10/01/2016
% This file is an extention to the file BrkingCurves.m developed for this project
% Script by Thomas Gibson, University of Strathclyde
% Created 14/03/2016 Last Edited 25/03/2016
Initialise braking profile parameters
V_EBDx (length(d_line),length(d_target_index)) = zeros;
V_EBIx (length(d_line),length(d_target_index)) = zeros;
V_SBDx (length(d_line),length(d_target_index)) = zeros;
V_SBI1x(length(d_line),length(d_target_index)) = zeros;
V_SBI2x(length(d_line),length(d_target_index)) = zeros;
V_Px (length(d_line),length(d_target_index)) = zeros;
V_Wx (length(d_line),length(d_target_index)) = zeros;
V_Ix (length(d_line),length(d_target_index)) = zeros;
d_target_theory(1,length(d_target_index)) = zeros;
d_braking(1,length(d_target_index)) = zeros;
d_BrakePoint(1,length(d_target_index)) = zeros;
Generate braking profiles for each target
for target_number = 1:n % For each target
% Initial and Target index numbers
i_target = d_target_index(target_number); % Set target index value
i_initial = i_target-1; % Set initial index value
% Initial and Target speed supervision limits
V_initial = V_MRSP(i_initial); % Set initial speed
V_Target = V_target(target_number); % Set target speed
V_ebi_initial = V_ebi(i_initial); % EBI Ceiling Limits
V_ebi_target = V_ebi(i_target);
V_sbi_initial = V_sbi(i_initial); % SBI Ceiling Limits
V_sbi_target = V_sbi(i_target);
V_warning_initial = V_warning(i_initial); % Warning Ceiling Limits
V_warning_target = V_warning(i_target);
if V_Target == 0
curve_type = 0; % End of movement authority (EOA)
84
else
curve_type = 1; % Limit of movement authority (LOA)
end
% If target is decrease in speed (braking)
if V_Target < V_initial
% Find theoretical target locations
if curve_type == 1 % LOA, V_Target != 0
d_target_theory(target_number) = d_target(target_number) + EBD(V_ref ==
round(V_ebi_target));
else % EOA, V_Target == 0
d_target_theory(target_number) = d_target(target_number);
end
% Find braking distance
d_braking(target_number) = I(V_ref == V_initial);
% Find braking location
d_BrakePoint(target_number) = d_target_theory(target_number) - d_braking(target_number);
% Find maximum speed curves relative to target
for d = 1:length(d_line)
% In braking area
if d_BrakePoint(target_number) <= d_line(d)...
&& d_line(d) <= d_target_theory(target_number)
% Emergency Brake Deceleration
V_EBD1=V_EBD(EBD_d == min(max(EBD_d),...
round(d_target_theory(target_number) - d_line(d))));
if V_EBD1 >= V_Target
V_EBDx(d,target_number) = V_EBD1;
else
V_EBDx(d,target_number) = max(V_ref);
end
% Emergency Brake Intervention
V_EBI1 = min(V_ebi_initial,V_EBI(EBI_d == min(max(EBI_d),...
round(d_target_theory(target_number) - d_line(d)))));
% Service Brake Intervention
V_SBI2_1 = min(V_sbi_initial,V_SBI2(SBI2_d == min(max(SBI2_d),...
round(d_target_theory(target_number) - d_line(d)))));
% Permitted Speed
V_P1 = min(V_initial,V_P(P_d == min(max(P_d),...
round(d_target_theory(target_number) - d_line(d)))));
V_Px(d,target_number) = max(V_P1, V_Target);
% Warning
V_W1 = min(V_warning_initial,V_W(W_d == min(max(W_d),...
round(d_target_theory(target_number) - d_line(d)))));
if curve_type == 0 % i.e. V_Target = 0
V_SBDx(d,target_number) = V_SBD(SBD_d == min(max(SBD_d),...
round(d_target_theory(target_number) - d_line(d))));
V_SBI1x(d,target_number) = min(V_sbi_initial,V_SBI1(SBI1_d == min(max(SBI1_d),...
round(d_target_theory(target_number) - d_line(d)))));
V_EBIx(d,target_number)= V_EBI1;
V_SBI2x(d,target_number)= V_SBI2_1;
V_Wx(d,target_number) = V_W1;
else
V_SBDx(d,target_number) = max(V_ref);
85
V_SBI1x(d,target_number) = max(V_ref);
V_EBIx(d,target_number)= max(V_EBI1, V_ebi_target);
V_SBI2x(d,target_number)= max(V_SBI2_1, V_sbi_target);
V_Wx(d,target_number) = max(V_W1, V_warning_target);
end
V_I1 = min(V_initial,V_I(I_d == min(max(I_d),...
round(d_target_theory(target_number) - d_line(d)))));
if d_line(d) <= d_target(target_number)
if curve_type == 0
V_Ix(d,target_number) = V_I1;
else
V_Ix(d,target_number) = max(V_I1, V_Target);
end
else
V_Ix(d,target_number) = max(V_ref);
end
else % Outside of braking area
% End of movement authority, after target
if curve_type == 0 &&...
d_line(d) >= d_target_theory(target_number)
V_EBDx(d,target_number) = 0;
V_SBDx(d,target_number) = 0;
V_EBIx(d,target_number) = 0;
V_SBI1x(d,target_number) = 0;
V_SBI2x(d,target_number) = 0;
V_Px(d,target_number) = 0;
V_Wx(d,target_number) = 0;
V_Ix(d,target_number) = 0;
else % Limit of movement authority
V_EBDx(d,target_number) = max(V_ref); %V_ebi(d);
V_SBDx(d,target_number) = max(V_ref);
V_EBIx(d,target_number) = V_ebi(d);
V_SBI1x(d,target_number) = max(V_ref); %V_sbi(d);
V_SBI2x(d,target_number) = V_sbi(d);
V_Px(d,target_number) = V_MRSP(d);
V_Wx(d,target_number) = V_warning(d);
V_Ix(d,target_number) = max(V_ref);
end
end
end
% Else (If target is increase in speed (accelerating))
else
V_EBDx(:,target_number) = max(V_ref); %V_ebi(d);
V_SBDx(:,target_number) = max(V_ref);
V_EBIx(:,target_number) = V_ebi;
V_SBI1x(:,target_number) = max(V_ref); %V_sbi(d);
V_SBI2x(:,target_number) = V_sbi;
V_Px(:,target_number) = V_MRSP;
V_Wx(:,target_number) = V_warning;
V_Ix(:,target_number) = max(V_ref);
end
end
Find minimum profiles
86
V_EBD_min = min(V_EBDx,[],2);
V_SBD_min = min(V_SBDx,[],2);
V_EBI_min = min(V_EBIx,[],2);
V_SBI1_min = min(V_SBI1x,[],2);
V_SBI2_min = min(V_SBI2x,[],2);
V_P_min = min(V_Px,[],2);
V_W_min = min(V_Wx,[],2);
V_I_min = min(V_Ix,[],2);
FLOI1 = min(V_SBI1_min,V_SBI2_min);
FLOI = min(FLOI1, V_EBI_min); % First Line of Intervention
Plot braking profiles
if plot_profiles == 1
figure
linewidth = 1.5;
plot1 = plot(...
d_line, V_EBD_min,...
d_line, V_SBD_min,...
d_line, V_EBI_min,...
d_line, V_SBI1_min,...
d_line, V_SBI2_min,...
d_line, V_P_min,...
d_line, V_W_min,...
d_line, V_I_min,...
d_line, FLOI,...
'LineWidth',linewidth);
set(plot1(1),'DisplayName','EBD','LineStyle','-','Color','b')
set(plot1(2),'DisplayName','SBD','LineStyle','-','Color','g')
set(plot1(3),'DisplayName','EBI','LineStyle',':','Color','b')
set(plot1(4),'DisplayName','SBI1','LineStyle','--','Color','g')
set(plot1(5),'DisplayName','SBI2','LineStyle','--','Color','b')
set(plot1(6),'DisplayName','Permitted','LineStyle','-','Color',[0.75 0.75 0.75])
set(plot1(7),'DisplayName','Warning','LineStyle','-','Color',[1 0.65 0])
set(plot1(8),'DisplayName','Indication','LineStyle','-','Color','y')
set(plot1(9),'DisplayName','FLOI','LineStyle','-','Color','r')
legend1 = legend('EBD','SBD','EBI','SBI1','SBI2','P','W','I','FLOI');
set(legend1,...gen
'Position',[0.15 0.15 0.15 0.35]);
ylim([0 180])
xlabel('Distance along Block Section (m)')
ylabel('Velocity (km/h)')
title1 = 'ERTMS Braking Curves for Data Set ';
title2 = [title1 TrackData];
title(title2);
grid('on')
end
87
88
9.4.7. Level 3 Model – Level_3_Model_1.m
% University of Strathclyde, Electrical and Electronic Engineering
% EM504 Dissertation A - European Rail Traffic Management System
% Level_3_Model_1.m
% Script for the calculation of the ERTMS braking curves for multiple targets
% Assessing two trains at ERTMS Level 3 (moving block)
% based on ERA System Requirement Specifications (SRS) SUBSET-026-3 v340 06/01/2015
% http://www.era.europa.eu/Document-Register/Pages/Set-2-System-Requirements-Specification.aspx
% Accessed 10/01/2016
% This file is an extention to the file Integrated_Model_1.m developed for this project
% Other files required are:
% Fixed_Value_Data.m
% National_Value_Data.m
% ReadTrackData.m
% supervision_limits.m
% BrakingCurvesModel_V2.m
% Interpolate_1.m
% gen_target_profiles.m
% Integrated_Model_3_Sim.slx
% Track and Train Data is also required in Excel format
% Script by Thomas Gibson, University of Strathclyde
% Created 14/03/2016 Last Edited 25/03/2016
INITIALISE
clear
clc
Import parameters (Comment out when not required)
Fixed_Value_Data % Data from Appendix 3.1 of SRS
National_Value_Data % Data from Appendix 3.2 of SRS
TrackData = 'TrackData7.xlsx';
TrainData = 'TrainData1.xlsx';
ReadTrackData % Pre-defined track data
target_type = 1; % Set as 0 for EOA Target or 1 for Emergency
% Brake Deceleration (EBD) Based Target
Temporary Speed Restrictions (TSRs)
% Repeat for additional TSRs, comment out for no TSRs
% V_TSR1 = V_line; % Initialise array for First TSR
% V_TSR1_Limit = 60; % Restriction in km/hr
% d_start_TSR = 4000; % TSR Start Location, m
% d_end_TSR = 4500; % TSR End Location, m
% index_start_TSR1 = find(d_line == d_start_TSR); % Start location index value
89
% index_end_TSR1 = find(d_line == d_end_TSR); % End location index value
%
% for d_TSR = index_start_TSR1:index_end_TSR1
% V_TSR1(d_TSR) = V_TSR1_Limit;
% end
%
%
% V_MRSP = min(V_line,V_TSR1); % Temporary Speed Restrictions (TSRs) set here
% If no TSRs
V_MRSP = V_line;
Train input parameters
V_release = 30/3.6; % m/s
d_step = d_line(2) - d_line(1); % Step size of track distance data
% Simulation Parmeters
Train1_Delay = 0; % s
Train2_Delay = 120; % s
V_P_Error1 = 1/1.6; % Factor by which train 1 speed is offset from V_P
V_P_Error2 = 1; % Factor by which train 2 speed is offset from V_P
V_entry1 = 100/3.6; % m/s
V_entry2 = 0; % m/s
delta = 20; % Critical istance between trains (m)
% Error parameters and constants
V_delta0 = 0; % m/s
A_est1 = 0; % m/s/s
A_est2 = 0; % m/s/s
T_bs1 = T_bs; %s
T_bs2 = T_bs; %s
T_traction = max((T_traction_cutoff - (T_warning + T_bs2)),0); % s
T_berem = max((T_be-T_traction),0); % s
T_indication = max(0.8*T_bs,5); % s
V_delta1 = A_est1*T_traction; % m/s
V_delta2 = A_est2*T_berem; % m/s
n = 0;
d_target_index = zeros;
Main Code
Find target locations
for i = 1:length(V_MRSP)-1 % For length of line - 1
if (V_MRSP(i) ~= V_MRSP(i+1)) % If change in velocity
n = n+1; % Increment index value
d_target_index(n) = i+1; % Save target index number
end
end
if n > 0 % If block section contains any targets
d_target = d_line(d_target_index); % Array of target distances
90
V_target = V_MRSP(d_target_index); % Array of target speeds
else % If not, set end of block as target
d_target = d_line(end); % Array of target distances
V_target = V_MRSP(end);
n = n+1;
d_target_index(n) = length(V_MRSP);
end
Jump to scripts
supervision_limits % Calculate supervisiton limits against line distance (see script)
BrakingCurvesModel_V2 % Calculate generic braking curves(see script)
Interpolate_1 % Convert v related data to d related data (see script)
% MAIN SCRIPT
plot_profiles = 1; % Set as 1 to generate plot of braking profiles
plot_train1 = 1; % Set as 1 to generate plot of train1 profiles against time
plot_train2 = 1; % Set as 1 to generate plot of train2 profiles against time
plot_combined = 1; % Set as 1 to generate plot of combined train profiles against time
gen_target_profiles % Generate braking proflies for each target
Simulate and process output data
% Run Simulation
sim('Integrated_Model_3_Sim.slx')
% Time Array
time_out = Braking_Curves_Train1.time;
% Displacement Array
91
d_t = Displacement_Train1.signals.values;
% MRSP Array
V_MRSP_Train1 = Velocity_Train1.signals.values(:,1)*3.6;
V_MRSP_Train2 = Velocity_Train2.signals.values(:,1)*3.6;
% Train 1
% Extract time dependent braking profiles, convert from m/s to km/hr
V_I_Train1 = Braking_Curves_Train1.signals.values(:,1)*3.6;
V_W_Train1 = Braking_Curves_Train1.signals.values(:,2)*3.6;
V_P_Train1 = Braking_Curves_Train1.signals.values(:,3)*3.6;
V_SBI2_Train1 = Braking_Curves_Train1.signals.values(:,4)*3.6;
V_SBI1_Train1 = Braking_Curves_Train1.signals.values(:,5)*3.6;
V_EBI_Train1 = Braking_Curves_Train1.signals.values(:,6)*3.6;
V_SBD_Train1 = Braking_Curves_Train1.signals.values(:,7)*3.6;
V_EBD_Train1 = Braking_Curves_Train1.signals.values(:,8)*3.6;
V_Train1 = Braking_Curves_Train1.signals.values(:,9)*3.6;
FLOI1_Train1 = min(V_SBI1_Train1,V_SBI2_Train1);
FLOI_Train1 = min(FLOI1_Train1, V_EBI_Train1); % First Line of Intervention
% Train 2
V_I_Train2 = Braking_Curves_Train2.signals.values(:,1)*3.6;
V_W_Train2 = Braking_Curves_Train2.signals.values(:,2)*3.6;
V_P_Train2 = Braking_Curves_Train2.signals.values(:,3)*3.6;
V_SBI2_Train2 = Braking_Curves_Train2.signals.values(:,4)*3.6;
V_SBI1_Train2 = Braking_Curves_Train2.signals.values(:,5)*3.6;
V_EBI_Train2 = Braking_Curves_Train2.signals.values(:,6)*3.6;
V_SBD_Train2 = Braking_Curves_Train2.signals.values(:,7)*3.6;
V_EBD_Train2 = Braking_Curves_Train2.signals.values(:,8)*3.6;
V_Train2 = Braking_Curves_Train2.signals.values(:,9)*3.6;
FLOI1_Train2 = min(V_SBI1_Train2,V_SBI2_Train2);
FLOI_Train2 = min(FLOI1_Train2, V_EBI_Train2); % First Line of Intervention
d_Train1 = Combined_dout.signals.values(:,1);
d_Train2 = Combined_dout.signals.values(:,2);
d_critical = Combined_dout.signals.values(:,3);
Plot output data
Train 1
if plot_train1 == 1
figure
subplot(2,1,1); % top subplot
plot2 = plot(...
time_out, V_EBD_Train1,...
time_out, V_SBD_Train1,...
time_out, V_EBI_Train1,...
time_out, V_SBI1_Train1,...
time_out, V_SBI2_Train1,...
time_out, V_P_Train1,...
time_out, V_W_Train1,...
time_out, V_I_Train1,...
time_out, V_MRSP_Train1,...
time_out, V_Train1,...
92
time_out, FLOI_Train1,...
'LineWidth',linewidth);
set(plot2(1),'DisplayName','EBD','LineStyle','-','Color','b')
set(plot2(2),'DisplayName','SBD','LineStyle','-','Color','g')
set(plot2(3),'DisplayName','EBI','LineStyle',':','Color','b')
set(plot2(4),'DisplayName','SBI1','LineStyle','--','Color','g')
set(plot2(5),'DisplayName','SBI2','LineStyle','--','Color','b')
set(plot2(6),'DisplayName','Permitted','LineStyle','-','Color',[0.75 0.75 0.75])
set(plot2(7),'DisplayName','Warning','LineStyle','-','Color',[1 0.65 0])
set(plot2(8),'DisplayName','Indication','LineStyle','-','Color','y')
set(plot2(9),'DisplayName','V_MRSP','LineStyle','-','Color','m')
set(plot2(10),'DisplayName','V','LineStyle','-','Color','c')
set(plot2(11),'DisplayName','FLOI','LineStyle','-','Color','r')
legend('V_{EBD}','V_{SBD}','V_{EBI}','V_{SBI1}',...
'V_{SBI2}','V_P','V_W','V_I','V_{MRSP}','V','FLOI');
if V_P_Train1(end) == 0
error1 = V_target(end); % final target speed in km/hr
error2 = find(V_P_Train1 > error1);
x_max_index = error2(end);
x_max = 1.1*time_out(x_max_index + 1);
else
x_max = time_out(end);
end
xlim([0 x_max])
ylim([0 180])
xlabel('Time in Block Section (s)')
ylabel('Velocity (km/h)')
title3 = 'Train 1 ERTMS Velocity Profiles for Data Set ';
title4 = [title3 TrackData];
title(title4);
grid('on')
subplot(2,1,2);
plot3 = plot(time_out,d_Train1,'LineWidth',linewidth);
xlim([0 x_max])
xlabel('Time in Block Section (s)')
ylabel('Distance along Block Section (m)')
title('Train 1 Displacement');
grid('on')
end
93
Train2
if plot_train2 == 1
figure
subplot(2,1,1); % top subplot
plot4 = plot(...
time_out, V_EBD_Train2,...
time_out, V_SBD_Train2,...
time_out, V_EBI_Train2,...
time_out, V_SBI1_Train2,...
time_out, V_SBI2_Train2,...
time_out, V_P_Train2,...
time_out, V_W_Train2,...
time_out, V_I_Train2,...
time_out, V_MRSP_Train2,...
time_out, V_Train2,...
time_out, FLOI_Train2,...
'LineWidth',linewidth);
set(plot4(1),'DisplayName','EBD','LineStyle','-','Color','b')
set(plot4(2),'DisplayName','SBD','LineStyle','-','Color','g')
set(plot4(3),'DisplayName','EBI','LineStyle',':','Color','b')
set(plot4(4),'DisplayName','SBI1','LineStyle','--','Color','g')
set(plot4(5),'DisplayName','SBI2','LineStyle','--','Color','b')
set(plot4(6),'DisplayName','Permitted','LineStyle','-','Color',[0.75 0.75 0.75])
set(plot4(7),'DisplayName','Warning','LineStyle','-','Color',[1 0.65 0])
set(plot4(8),'DisplayName','Indication','LineStyle','-','Color','y')
set(plot4(9),'DisplayName','V_MRSP','LineStyle','-','Color','m')
set(plot4(10),'DisplayName','V','LineStyle','-','Color','c')
set(plot4(11),'DisplayName','FLOI','LineStyle','-','Color','r')
legend('V_{EBD}','V_{SBD}','V_{EBI}','V_{SBI1}',...
94
'V_{SBI2}','V_P','V_W','V_I','V_{MRSP}','V','FLOI');
xlim([0 x_max])
ylim([0 180])
xlabel('Time in Block Section (s)')
ylabel('Velocity (km/h)')
title3 = 'Train 2 ERTMS Velocity Profiles for Data Set ';
title4 = [title3 TrackData];
title(title4);
grid('on')
subplot(2,1,2);
plot5 = plot(time_out,d_Train2,'LineWidth',linewidth);
xlim([0 x_max])
xlabel('Time in Block Section (s)')
ylabel('Distance along Block Section (m)')
title('Train 2 Displacement');
grid('on')
end
Combined Data
if plot_combined == 1
figure
subplot(2,1,1); % top subplot
plot6 = plot(...
time_out, V_Train1,...
time_out, V_Train2,...
'LineWidth',linewidth);
set(plot6(1),'DisplayName','V_Train1','LineStyle','-','Color','b')
95
set(plot6(2),'DisplayName','V_Train2','LineStyle','-','Color','g')
legend('V_{Train1}','V_{Train2}');
xlim([0 x_max])
ylim([0 180])
xlabel('Time in Block Section (s)')
ylabel('Velocity (km/h)')
title3 = 'ERTMS Velocity Profiles for Data Set ';
title4 = [title3 TrackData];
title(title4);
grid('on')
subplot(2,1,2);
plot7 = plot(time_out,d_Train1,...
time_out,d_Train2,...
time_out,d_critical,...
'LineWidth',linewidth);
set(plot7(1),'DisplayName','d_Train1','LineStyle','-','Color','b')
set(plot7(2),'DisplayName','d_Train2','LineStyle','-','Color','g')
set(plot7(3),'DisplayName','d_critical','LineStyle','-','Color','r')
legend('d_{Train1}','d_{Train2}','d_{critical}');
xlim([0 x_max])
ylim([0 max(d_line)])
xlabel('Time in Block Section (s)')
ylabel('Distance along Block Section (m)')
title('Train Displacement');
grid('on')
end