“En la vida dos palabras te abrirán las puertas:
Empujar y Tirar...”
Dedicado a los que más me han querido
que demostrándolo, siempre me apoyaron,
no perdiendo nunca la esperanza y enseñándome
que “La constancia es la virtud por la que
todas las cosas dan su fruto”
Gracias por todo
Resumen
Este proyecto es una herramienta de ayuda a la simulación del tráfico
ferroviario.
El proyecto consiste en desarrollar un modelo de simulación de tráfico de trenes
en líneas ferroviarias metropolitas, válido para estudiar los efectos de la propagación de
los retrasos a lo largo de la línea.
Para ello ha sido necesario modelar el movimiento de trenes (recorrido y paradas
en estación), los horarios establecidos que representan las salidas teoricas de los trenes
de cada estación a lo largo de todas las estaciones que hayamos definido que recorran y
el sistema de señalización que aseguran las distancias de seguridad entre trenes.
El sistema de señalización, imprescindible para el funcionamiento coherente de
la línea se ha conseguido mediante restricciones sencillas que tanto los tiempos de
llegadas a estaciones como los de salida de las mismas deben cumplir.
La incertidumbre en la frecuencia y magnitud de los retrasos en la línea se
modelará con funciones de probabilidad y con funciones borrosas, para comparar ambas
alternativas.
El simulador de tráfico ferroviario esta desarrollado mediante la técnica de
eventos discretos, que permitirá generar fácilmente situaciones de tráfico perturbadas
similares a las que se producen en el sistema real, así como observar la evolución del
tráfico, así a lo largo de todo el proyecto podemos ver como todo lo explicado o
empleado en el mismo esta luego simulado y representado mediante gráficos para una
mejor comprensión del lector y claridad del significado del mismo.
Partimos de unos datos iniciales que caracterizan al modelo de tráfico en líneas
metro, variables que el usuario define en función de sus necesidades y a las que el
2
simulador se adapta perfectamente, algunas de estas variables son tiempos de recorrido
de estaciones, tiempos de parada nominales en estación, intervalo mínimo entre trenes,
número de trenes, numero de estaciones, instante en el que queremos empezar la
simulación...
Se implementará en el simulador un modelo de parada que calcula el tiempo de
parada en estación en función del intervalo llegada-salida de los trenes, es decir no
consideramos un tiempo fijo de parada en la estación sino que a mayor intervalo salida-
llegada de los trenes suponemos que implica un mayor número de viajeros en la parada
y por tanto se precisa de un mayor tiempo de parada en la misma todo ello con umbrales
de tiempo de parada máximo y mínimo . A partir de estos datos se realizarán pruebas de
simulación sin perturbaciones, que generará los eventos de cada tren a lo largo del
tiempo sin error al no existir perturbaciones iniciales.
A continuación se introducirá en el modelo de simulación un algoritmo de
control de tráfico (algoritmo de Araya), que calculará una corrección sobre los tiempos
de recorrido y parada (dentro unos límites de regulación) con el objetivo de compensar
los retrasos o adelantos de los trenes. Este algoritmo comprueba cada vez que calcula un
nuevo tiempo de un evento mira el error del tren, tanto el retraso respecto a su horario
como el retraso o error de intervalo, es decir lo cerca o alejado que se encuentra el tren
respecto del de delante y el de detrás, dependiendo del que sea mayor, intentará corregir
uno u otro mediante una ecuación de regulación Araya que varía en función de una
constante h, esta constante ha sido tratada para definirla de forma que el sistema fuera
estable y el controlador consiguiera después de cierto tiempo eliminar todos los retrasos
o errores.
3
Más tarde se introduce un modelo de ruido en la línea para estudiar la
propagación de los retrasos. En primer lugar se considerarán funciones de probabilidad,
la distribución empleada para ello ha sido una Gaussiana, esta función necesita dos
parámetros, media y varianza, que han tenido un estudio de estabilidad al igual que la
constante h de Araya para escoger los parámetros que más se aproximaran a la realidad.
Posteriormente se compararán los resultados con funciones de posibilidad
comprobando como de forma mucho más rápida y sencilla podemos, mediante lógica
borrosa, obtener unos resultados muy coherentes y fiables realmente similares a los
obtenidos de manera tediosa mediante probabilidad
Los medios informáticos empleados para el desarrollo del simulador han sido
pocos y sencillos, demostrando como de forma muy sencilla podemos simular de forma
casi real un comportamiento como es la circulación de unos trenes por una línea circular
de metro.
Se ha usado básicamente entorno de Excel, programación con macros VBA-
Excel para desarrollar el simulador, y hojas de cálculo Excel para entrada-salida de
datos, tratamiento de resultados y gráficos.
Este proyecto ha sido la culminación de dos años de trabajo por parte del autor
en el departamento IIT de la Universidad Pontificia de Comillas ICAI.
4
Abstract
This project is a tool of help to the simulation of the railroad traffic.
The project consists of developing a model of simulation of traffic of trains in
railroad lines metropolitans, validly to study the effects of the spread of the delays along
the line.
For it, it has been necessary to shape the movement of trains (trip and stops at
station), the established schedules that represent the theoretical exits of the trains of
every station along of all the stations that we have defined that they cover and the
system of signalling that assure the safety distances between trains.
The system of signalling, essential for the coherent functioning of the line has
been obtained by means of simple restrictions that so much the times from arrivals to
stations as those of exit of the same ones must fulfil.
The suspense in the frequency and magnitude of the delays in the line will model
itself with functions of probability and with blurry functions, to compare both
alternatives.
The pretender of railroad traffic is developed by means of the skill of discreet
events, which will allow to generate easily mentally disturbed situations of traffic
similar to those who take place in the real system, as well as observe the evolution of
the traffic, this way along the whole project we can see as everything explained or
employee in the same one is simulated then and represented by means of graphs for a
better comprehension of the reader and clarity of the meaning of the same one.
We depart from a few initial information that characterize the model of traffic in
lines meter, variables that the user defines according to his needs and to which the
pretender adapt perfectly, some of these variables are times of trip of stations, nominal
5
times of stop at station, minimal interval between trains, I number of trains, I number of
stations, moment in which we want to begin the simulation...
There will be implemented in the pretender a model of stop that he calculates the
time of stop at station according to the interval arrival - exit of the trains, that is to say
we do not consider a fixed time of stop at the station but at major interval we suppose
exit - arrival of the trains that it involves a major number of travellers in the stop and
therefore maximum and minimum is needed of a major time of stop in the same one all
this with thresholds of time of stop. From this information tests of simulation will be
realized without perturbations, which it will generate the events of every train
throughout the time without error after initial perturbations do not exist.
Next there will get in the model of simulation an algorithm of control of traffic
(algorithm of Araya), who will calculate a correction on the times of trip and stop
(inside a few limits of regulation) with the target to compensate the delays or advances
of the trains. This algorithm verifies whenever he calculates a new time of an event
looks at the error of the train, so much the delay with regard to his schedule as the delay
or error of interval, that is to say it surrounds it or removed that the train is with regard
to of ahead and of behind, depending on the one that is major, he will try to correct one
or other by means of an equation of regulation Araya that changes according to a
constant h, this constant has been treated to define her so that the system was stable and
the controller was managing after certain time to eliminate all the delays or errors.
Later a model of noise gets in the line to study the spread of the delays. First of
all functions of probability will be considered to be, the distribution used for it has been
a Gaussian, this function needs two parameters, average and variance, that have had a
study of stability as the constant h of Araya to choose the parameters that more were
coming closer the reality.
6
Later the results will be compared with functions of possibility verifying like of
much more rapid and simple form we can, by means of blurry logic, obtain a few very
coherent and trustworthy results really similar to the obtained ones of a tedious way by
means of probability
The computer means used for the development of the pretender have been small
and simple, demonstrating as of very simple form we can simulate of almost real form a
behaviour as it is the circulation of a few trains for a circular line of meter.
VBA-Excel has used basically environment of excel, programming with macros
to develop the simulator, and spreadsheets Excel for entry - exit of information,
treatment of results and graphs.
This project has been the culmination of two years of work on the part of the
author in the department IIT of the Pontifical University of Comillas ICAI.
7
Índice
1. Descripción del sistema………………………………………. 1
1.1 Introducción herramienta en el mercado…………………………………..1
1.2. Descripción general ……………………………………………………….. 2
1.3. Métodos aplicados y definición de variables……………………………. 3
2. Simulación …………………………………………………… 7
2.1. Simulación por eventos discretos ………………………………………… 7
2.1.1. Conceptos básicos………………………………………………...7
2.1.2. Componentes de un modelo …………………………………….. 8
2.1.3. Diagramas de flujo ……………………………………………….13
2.2. Simulación asíncrona ……………………………………………………… 31
2.2.1. Conceptos básicos ………………………………………………..31
3. Modelo de parada ……………………………………………...32
4. Casos ejemplo ………………………………………………….33
4.1. Retraso de 20 segundos …………………………………………………… 33
4.2. Aceleración de 30 segundos al tren 5 …………………………………… 35
5 Controlador …………………………………………………….37
5.1. Retraso de 120s en TREN4 con pendiente de 0.02 en el modelo
de parada ………………………………………………………………………… 39
5.2. Retraso hasta acumular 200 segundos en TREN4 con pendiente
0.05 en modelo de parada ……………………………………………………….41
5.3. Retrasos TREN3 = 30s TREN6 = 80s con pendiente de 0.02 en
el modelo de parada ……………………………………………………………....42
1
5.4. Retraso de 80 segundos en TREN6 hasta alcanzar 120
segundos, con pendiente de 0.05 en el modelo de parada ……………………43
5.5. Retrasos en TRENES 3, 6 y 9 de 100s …………………………………… 44
5.5.1. Con pendiente de 0.05 en el modelo de parada …………………44
5.5.2. Comportamiento global de la línea con pendiente
de 0.05 en el modelo de parada ………………………………………....45
5.6. Trenes afectados en función del retraso …………………………………..46
6. Introducción de ruido en la línea mediante probabilidad ………47
6.1. Variaciones en parámetro h de Araya para estabilizar
sistema introduciendo retraso de 120 s en TREN4 ……………………………49
6.1.1. Con retrasos aleatorios y parámetro h de Araya 5. …………….49
6.1.2. Con retrasos aleatorios y parámetro h de Araya 15…………….51
6.1.3. Con retrasos aleatorios y parámetro h de Araya 20…………….52
6.1.4. Con retrasos aleatorios y parámetro h de Araya 30…………….53
6.1.5. Sin retrasos aleatorios y parámetro h de Araya 30……………..54
6.1.6. Sin retrasos aleatorios y parámetro h de Araya 30
de forma global. ………………………………………………………55
6.2. Modificaciones en la distribución normal para obtener los
parámetros más adecuados manteniendo h=30 ………………………………56
6.2.1. Normal (5,10) ………………………………………………….57
6.2.2. Normal (5,8) …………………………………………………...57
6.2.3. Normal (5,6) …………………………………………………...57
6.2.4. Normal (6,4)……………………………………………………58
6.2.5. Normal (6,5)…………………………………………………...59
2
6.2.6. Normal (4,6)……………………………………………………59
6.2.7. Normal (5,4) …………………………………………………...60
6.3. Variaciones en la constante h de Araya …………………………………...61
6.3.1. h = 15 media = 4 y desviación típica = 6 ………………………61
6.3.2. h = 15 media = 5 y desviación típica = 8……………………….62
6.3.3. h = 10 media = 5 y desviación típica = 6 ………………………63
6.3.4. h = 20 media = 5 y desviación típica = 6 ………………………63
6.3.5. h = 20 media = 4 y desviación típica = 5 ………………………64
6.3.6. h = 20 media = 4 y desviación típica = 6 ………………………65
6.3.7. h = 20 media = 4 y desviación típica = 8 ………………………65
6.3.8. h = 20 media = 4 y desviación típica = 7……………………….66
6.4. Resultado de simular 1000 veces …………………………………………..67
7 Introducción de ruido en la línea mediante posibilidad………..73
7.1. Aproximación mediante análisis de intervalos……………………………75
8 Estimación de costes……………………………………………85
9 Conclusiones…………………………………………………... 87
10 Bibliografía……………………………………………………89
11 Apéndice Manual de Usuario…………………………………..90
3
4
Capitulo 1 Descripción del sistema
1 DESCRIPCIÓN DEL SISTEMA
En este apartado se explicará la base del proyecto, una idea general para poder
comprender los apartados explicados a continuación.
1.1. Introducción herramienta en el mercado
El objetivo del simulador es hacer un banco de ensayos de regulación de tráfico,
para probar el comportamiento del sistema ante distintos algoritmos de regulación de
tráfico, o distintos parámetros de configuración, o distintos niveles de perturbaciones
en la línea (modelado del ruido). No existen herramientas comerciales en el mercado
que hagan justo esto, con el nivel de modelado apropiado, esta es una herramienta de
análisis y ajuste a medida para regular el tráfico.
Sobre la parte del modelado del ruido con teoría de posibilidad, el objetivo es
investigar si se puede modelar el ruido en la línea (los retrasos) mediante
distribuciones de posibilidad en lugar de mediante distribuciones de probabilidad. Por
lo tanto, esta parte es solo investigación, no tiene sentido hablar de herramientas
comerciales actualmente.
Sí existen en el mercado simuladores para otros propósitos, por ejemplo para
formación de conductores y formación de operadores de tráfico, pero estos
simuladores son muy distintos: su objetivo es replicar el entorno percibido por el
usuario, no obtener resultados numéricos.
En el mercado también hay reguladores de tráfico en funcionamiento, por ejemplo el
sistema SIRAT, regulando el tráfico en Metro de Madrid.
1
Capitulo 1 Descripción del sistema
1.2. Descripción general
El sistema consiste en una línea de metro con n estaciones y m trenes circulando
por la misma.
Las n estaciones forman un anillo, de tal manera que cuando se llega a la
estación n la siguiente estación será la uno, la primera. Para hacernos una idea
podemos pensar en la línea circular que posee el metro de Madrid.
Los m trenes que circulan por la línea están numerados de 1 a m de tal manera
que el tren 1 va precedido por el tren m y seguido por el tren 2.
A continuación tenemos una imagen explicativa de la línea
1
6
5 4
3
2 7
TREN 2
TREN 3
TREN 1
2
Capitulo 1 Descripción del sistema
1.3. Métodos aplicados y definición de variables
• Tiempo de parada. Este tiempo hace referencia al tiempo que un tren
permanece parado en una estación determinada. Este tiempo no es
constante sino que varía entre dos valores mínimo y máximo en función
de un parámetro que denominaremos “intervalo llegada-salida” y que
representa el tiempo transcurrido desde que un tren salió de una estación
y el tren siguiente llega a esta misma estación.
Este intervalo podemos entenderlo como el número de pasajeros que se
encuentran en el andén ya que en nuestro modelo el intervalo llegada-
salida es proporcional al número de pasajeros en el andén.
El tren al llegar a una estación debe permanecer parado un tiempo
mínimo, a partir de este tiempo mínimo se irá incrementando a medida
que aumente el intervalo llegada-salida hasta alcanzar un tiempo máximo
de parada a partir del cual permanecerá constante.
Este tiempo nos permitirá calcular el tiempo en el que un tren sale de una
estación de la siguiente manera:
Tsalida(n) = Tllegada(n) + Tparada(n) + Mando
El tiempo de salida de un tren de la estación n se calcula simplemente
como el tiempo en el cual llegó el tren a la estación n mas el tiempo de
parada en esa estación n mas el mando.
3
Capitulo 1 Descripción del sistema
Tparada/Intervalo trenes
Intervalo
Tpa
rada
Tmax
Tmin
I0
En la gráfica anterior vemos como el tiempo mínimo de parada se mantiene
hasta un intervalo en el cual empieza a aumentar hasta que alcanza el tiempo máximo de
parada a partir del cual es independiente del intervalo entre trenes
Este tiempo de parada dependerá del ángulo alfa de la pendiente de la curva
anterior, a su vez habrá que definir el tiempo mínimo de parada, el tiempo máximo así
como el intervalo de trenes a partir del cual aumenta el tiempo de parada.
4
Capitulo 1 Descripción del sistema
• Mando. Cuando en las ecuaciones nos referimos a “Mando” queremos
representar la variable que almacena un valor de tiempo que el usuario
emplea para acelerar o frenar a un tren dentro de unos límites
establecidos por un mando mínimo y otro máximo.
• Horarios. En nuestro sistema se calculan unos horarios que los trenes
deberían seguir en caso de no producirse retrasos ni incidencias. Este
horario se representa por los tiempos de salida de cada tren de cada
estación y lo denominamos Steorica.
• Tiempo de recorrido. Es el tiempo establecido para cada par de
estaciones como tiempo que se tarda desde que se sale de una hasta que
se llega a la siguiente.
Mediante esta variable podremos calcular la llegada de un tren a una
estación:
Tllegada(n) = Tsalida(n-1) + Trecorrido(n-1) + Mando
Esta ecuación nos permite calcular el tiempo de llegada de un tren a la
estación n como el tiempo en el cual el tren salió de la estación anterior
mas el tiempo de recorrido de la estación anterior mas el mando.
• Intervalo mínimo. Definimos un intervalo mínimo entre trenes, es decir
establecemos un tiempo entre trenes del que no se puede bajar, dicho con
otras palabras, mantenemos una distancia mínima entre dos trenes.
5
Capitulo 1 Descripción del sistema
Este intervalo es de gran utilidad ya que controla que dos trenes no se
choquen, la manera de representar esta restricción de intervalo es al
siguiente:
SI intervalo llegada-salida < Intervalo mínimo ENTONCES
Tllegada = Santerior + Intervalo mínimo
Esta restricción evalúa el tiempo en el cual un tren quiere llegar a una
estación se compara este tiempo con el tiempo en el que el tren
precedente salió de la misma es decir el intervalo llegada-salida y si este
valor es menor que el intervalo mínimo se violará la restricción y no se
permitirá al tren ir tan rápido permitiéndole llegar a la estación con un
tiempo máximo del intervalo mínimo mas el tiempo en el que el tren
precedente salió de la estación a la que quiere llegar.
• Numero de trenes: Representa el número de trenes que queremos que
circulen por la línea.
• Numero de estaciones: Representa el número de estaciones que los
trenes recorrerán a lo largo de la línea.
• Intervalo nominal: Tiempo definido de separación entre los trenes
• Numero de estaciones a simular: Nos indica el número de estaciones
que queremos que cada tren recorra en la simulación.
6
Capitulo 2 Simulación
2 SIMULACIÓN
En este apartado se tratará la parte de la aplicación que consiste en el estudio del
movimiento de los trenes por las estaciones.
Como modelo de simulación, se aplica creando unos modelos matemáticos que
imitan el comportamiento real del sistema.
Este estudio se puede realizar de dos maneras diferentes que serán las que se
verán a continuación: Simulación por eventos discretos y simulación asíncrona.
Las aplicaciones básicas de toda simulación son:
Ayuda a la toma de decisiones
Mejorar el comportamiento del sistema
2.1. Simulación por eventos discretos
Vamos a estudiar en este apartado en que consiste esta forma de simulación y
para ello lo primero que vamos a definir son algunos conceptos básicos de este
método.
2.1.1. Conceptos básicos
Entendemos por sistema una colección de entidades que interactúan en la
consecución de un fin
Nuestro modelo de simulación es una simplificación del sistema en variables
con relaciones matemáticas y lógicas entre sí.
Nos referiremos a estado del sistema como el conjunto de variables del modelo
que describen el sistema en cualquier instante
7
Capitulo 2 Simulación
Nuestro modelo de simulación se basa en una simulación de eventos discretos en
el cual las variables de estado cambian de forma instantánea en distintos momentos.
Las variables de estado son aquellas que determinan la situación del sistema en
cada instante.
El tiempo de simulación es distinto del tiempo de ejecución y en nuestro caso
avanzará basándonos en el próximo evento.
Avance al próximo evento:
• Los tiempos de eventos están prefijados
• El reloj avanza al evento más próximo
• El estado del sistema se va actualizando
• Los periodos de inactividad se saltan
2.1.2. Componentes de un modelo
Un modelo consta de una serie de elementos que nos permite definirlo estos
elementos son los siguientes:
• Eventos Sucesos que pueden producir un cambio de estado.
En nuestro modelo estos eventos son siguientes:
Llegadas de trenes a una estación
Un tren llega a una estación y cuando lo hace lleva un tiempo de llegada
asociado, un número de estación y un número de tren. Diremos que el evento
que se produce es por ejemplo la llegada del tren 3 a la estación 8 en el
tiempo 1500 segundos.
8
Capitulo 2 Simulación
Salidas de trenes de una estación
Un tren sale de una estación y cuando lo hace lleva un tiempo de salida
asociado, un número de estación y un número de tren. Diremos que el evento
que se produce es por ejemplo la salida del tren 2 de la estación 5 en el
tiempo 1700 segundos
Los tiempos asociados de los que hablamos, los hemos definido
anteriormente en el apartado 1.2.
• Reloj de simulación No representa tiempo real, no es tiempo de
ejecución, sino un contador interno del modelo. Al ser una simulación con
salto al próximo evento, el tiempo irá aumentando en saltos desde el tiempo
del evento que acaba de ejecutarse se pasará al tiempo del evento siguiente
en la ejecución, no es por tanto una sucesión temporal continua.
• Estados Los estados representan la situación de cada entidad en cada
instante de simulación. Con cada avance del reloj de simulación se generan
nuevos estados que determinan la situación del sistema. Estos estados
pueden ser o bien de los trenes o bien de las estaciones que corresponden a
las entidades del sistema que van cambiando de estado.
De cada tren:
Se sabe en cada instante, de cada tren, lo siguiente:
La estación asociada al tren que corresponderá a la estación en la que se
encuentra si lo último que hizo fue llegar a una estación, o la estación última
por la que pasó si lo último que hizo fue salir de una estación.
9
Capitulo 2 Simulación
El evento asociado a cada tren. Este evento será el último que el tren haya
ejecutado, o el estado en el que se encuentra en ese momento.
Esto es, si todo ocurre de forma normal el tren estará o bien en evento
llegada o bien en evento salida dependiendo de lo último que haya hecho el
tren; pero puede darse el caso en el que un tren no pueda generar su llegada
debido a que el tren que le precede no ha salido aún de la estación siguiente
no pudiendo así generar la llegada a dicha estación. En este caso el tren se
encontrará en un estado que denominamos RECORRIDO,
El estado RECORRIDO nos indica que el tren que tiene este estado esta en
espera de que se ejecute una salida para poder generar su llegada a la
estación de la que el tren precedente aún no ha salido.
El tiempo de ejecución del evento, tiempo que hace referencia al reloj de
simulación y que nos indica el momento en el que se produjo el evento en
cuestión.
De cada estación:
Se sabe en cada instante, de cada estación, lo siguiente:
La ultima salida de la estación.
La última llegada a cada estación.
Cada vez que se ejecuta un evento, bien una llegada o bien una salida, el tren
asociado a este evento tiene un tiempo de ejecución de ese evento concreto y
es este, el que incorporamos en cada ejecución como ultima salida o llegada
según proceda
10
Capitulo 2 Simulación
Por ejemplo si se ejecuta una salida del tren3 de la estación 8, en el instante
1584 segundos, se guardaría como ultima salida de la estación 8 el tiempo
1584 segundos. De esta manera se procede con cada ejecución actualizando
así las variables de estado de las estaciones.
Para estos estados, hay que determinar unas variables de estado que
describan como esta el sistema en cada momento.
En el modelo se hará referencia a estas variables para representar mediante
diagramas el funcionamiento del sistema.
En este caso existen dos variables de estado, una que define la entidad tren y
otra que define la entidad estación. Estas variables son las definidas a
continuación
Variable Estación es un Array de tantos elementos como estaciones tenga la
línea.
Esta variable consta de los siguientes campos:
1. Última salida
2. Última llegada
Como ya se ha dicho en estos campos se almacenarán los tiempos de
ejecución de las últimas llegadas y salidas.
11
Capitulo 2 Simulación
Variable Tren es un Array de tantos elementos como trenes recorran la línea.
Esta variable consta de los siguientes campos:
1. Estado.
2. Tiempo del último evento ejecutado.
3. Numero de estación.
El campo de Estado como ya hemos visto podrá valer llegada, salida o
recorrido.
• Mecanismo de transición Puesto que un evento supone un cambio en
las variables de estado se define un Mecanismo de transición que muestra los
cambios que se producen en el estado del sistema cuando se produce un
evento. Este mecanismo se verá mas adelante mediante el uso de diagramas
de flujo.
Para ello se explicará antes el proceso general:
Nuestro modelo mostrará con cada avance del reloj el estado del sistema, como
se dijo anteriormente esto consiste en situar a cada tren en ese instante dentro de la
línea de metro.
A su vez, existe una cola donde tenemos almacenados los eventos futuros de
cada tren ordenados por su tiempo de ejecución, de esta manera podemos saber por
ejemplo que un tren se encuentra parado en una estación y a la vez ver que lo
siguiente que va a hacer es llegar a la estación siguiente, pudiendo ver en que
momento se producirá esta llegada.
12
Capitulo 2 Simulación
2.1.3 Diagramas de flujo
Nos referiremos con i al tren actual y con n a la estación actual.
a) Comportamiento global del sistema
LEER PRIMER EVENTO DE LA
COLA
SE AVANZA EL TIEMPO DE
SIMULACION
SE ACTUALIZAN VARIABLES DE ESTADO
SE GENERA NUEVO EVENTO Y SE PONE EN
LA COLA
SE ORDENAN LOS EVENTOS POR TIEMPO DE
EJECUCION
INICIO
13
Capitulo 2 Simulación
En el diagrama anterior se ve a grandes rasgos el comportamiento global del
sistema.
El sistema lee de la cola el primer evento, que debido a que la cola está
ordenada, corresponderá al tiempo de ejecución más pequeño.
Se avanza el tiempo de simulación Como ya se explicó anteriormente este
tiempo va dando saltos de evento a evento, al avanzar el reloj de simulación lo que se
hace simplemente es que el sistema toma como tiempo actual, el tiempo de ejecución
del evento que acaba de leer de la cola.
Actualizar variables de estado da nuevos valores calculados a las variables de
estado, ya se verá más adelante en detalle este proceso.
Se genera un nuevo evento es un proceso detallado también en un diagrama más
adelante.
El método para ordenar los nuevos eventos que se generan y se meten en la cola
es el método de la burbuja que también está detallado posteriormente.
14
Capitulo 2 Simulación
b) Actualización de estados ante una salida
EVENTO SALIDA: Actualización de Estados
ALMACENO EN LAS VARIABLES LOS NUEVOS
VALORES
RETORNO
ALMACENO EN LAS VARIABLES LOS
NUEVOS VALORES
EVENTO SALIDA ESTACION ESTACION
TIEMPO Tsalida ULTIMA LLEGADA Tsalida
RETORNO
15
Capitulo 2 Simulación
El diagrama anterior representa la forma de actualizar las variables de estado
cuando el evento que se saca de la cola corresponde a una salida.
Cuando se genera un evento y se introduce en la cola se genera una variable de
tipo tren, que como dijimos está formada por una serie de campos que eran tiempo de
ejecución evento y estación. Todos estos campos tienen ya el valor correspondiente
calculado al generar el evento.
Estos nuevos valores se leen y almacenan en la variable de estado del sistema
del tren correspondiente.
El proceso de actualización, como se ve en el diagrama es sencillo
Evento pasa a valer “salida” ya que es una salida lo que se acaba de sacar de la
cola y ejecutar
Tiempo de ejecución no es mas que la suma del tiempo de llegada que estaba
almacenado en la variable de este tren y el tiempo de parada estimado.
La estación sigue siendo la misma que poseía la variable del mismo tren, debido
a que un tren que sale de una estación lo último que tuvo que hacer fue llegar a esta
misma.
La última salida hace referencia a la estación de la cual sale el tren, actualizamos
la variable de estado estación almacenando en la misma como ultima salida el tiempo
calculado de ejecución.
16
Capitulo 2 Simulación
c) Generación de eventos al sacar de la cola una salida SI NO
ACTUALIZO ESTADO DE TREN i+1
GENERO LLEGADA DEL TREN i+1
¿Tren i+1 en recorrido?
EVENTO SALIDA: Generación de eventos
SI NO
ALMACENO DATOS DEL TREN
i-1
GENERO ESTADO DE RECORRIDO
GENERO EVENTO DE
LLEGADA TREN i
¿Tren i-1 no ha salido de estación
n+1,o tiene asociado estac n?
RETORNO
17
Capitulo 2 Simulación
En el diagrama anterior de generar evento lo primero que hacemos es comprobar
que el tren i+1 que le sigue no esté en estado “recorrido”, si fuera así, querría decir
que el tren i+1 estaba esperando el evento de salida que se ha ejecutado lo que nos
permite poder generar el evento de llegada del tren i+1 y poner su estado en salida.
A continuación se almacena la información del tren precedente al i, que es el que
genera el evento.
Esto se hace para poder ver si realmente el tren i puede generar el evento de
llegada.
El tren i podrá generar este evento si se posee la información de tiempo de salida
del tren i-1 de la estación n+1 a la que quiere llegar el tren i. Esto es así porque como
ya se explico en capítulos anteriores es necesario conocer este tiempo para poder
comprobar el intervalo mínimo entre los trenes.
Si el tren i-1 no ha salido de la estación n+1 el tren i no generará ningún evento,
simplemente cambiará su estado a “recorrido”.
En caso contrario el tren i generará su evento de llegada a la estación n+1.
18
Capitulo 2 Simulación
d) Actualización de estados ante una llegada
EVENTO LLEGADA: Actualización de Estados
ALMACENO EN LAS VARIABLES LOS NUEVOS
VALORES
RETORNO
ALMACENO EN LAS VARIABLES LOS
NUEVOS VALORES
EVENTO LLEGADA ESTACION ESTACION + 1
TIEMPO Tllegada ULTIMA LLEGADA Tllegada
RETORNO
19
Capitulo 2 Simulación
El diagrama anterior representa la forma de actualizar las variables de estado
cuando el evento que se saca de la cola corresponde a una llegada.
Cuando se genera un evento y se introduce en la cola se genera una variable de
tipo tren, que como dijimos está formada por una serie de campos que eran tiempo de
ejecución evento y estación. Todos estos campos tienen ya el valor correspondiente
calculado al generar el evento.
Estos nuevos valores se leen y almacenan en la variable de estado del sistema
del tren correspondiente.
El proceso de actualización, como se ve en el diagrama es sencillo
Evento pasa a valer “llegada” ya que es una llegada lo que se acaba de sacar de
la cola y ejecutar
Tiempo de ejecución no es mas que la suma del tiempo de salida que estaba
almacenado en la variable de este tren y el tiempo de recorrido establecido.
La estación será una más que la que poseía la variable del mismo tren, debido a
que un tren que llega a una estación lo ultimo que hizo fue salir de la anterior. En caso
de que el tren saliera de la última estación, la estación a la que llegaría sería la
primera, debido a que como ya hemos explicado, la línea es circular.
La ultima llegada hace referencia a la estación a la cual llega el tren,
actualizamos la variable de estado estación almacenando en la misma como ultima
llegada el tiempo calculado de ejecución.
20
Capitulo 2 Simulación
e) Generación de eventos al leer de la cola una llegada
EVENTO LLEGADA: Generación de eventos
RETORNO
GENERA SALIDA
Este diagrama representa la situación de haber sacado de la cola un evento de
llegada.
En este caso lo que el sistema hace es llamar a la subrutina que me genera el
evento de salida.
Este proceso está explicado en el apartado i) de este punto.
21
Capitulo 2 Simulación
f) Generar un evento de llegada
GENERO EVENTO DE
LLEGADA
ALMACENO INFORMACIÓN SOBRE TIEMPO DE RECORRIDOS, INTERVALO
MINIMO, MANDO Y SALIDA ANTERIOR
SI NO
Tllegada-Sant<IntMin
Tllegada = Tsalida + MANDO + RECORRIDO
Tllegada = Sant + IMin
ALMACENO COMO TIEMPO DE LLEGADA: Tllegada = Tsalida + MANDO + RECORRIDO
RETORNO
CALCULO ERRORES DE SALIDA Y DE INTERVALO
22
Capitulo 2 Simulación
El diagrama anterior explica el proceso de generación de una llegada.
Lo primero que hace el sistema es almacenar valores de tiempos de recorrido
entre las estaciones en cuestión, el intervalo mínimo que como ya sabemos nos marca
la distancia mínima que deben mantener dos trenes entre sí, mando introducido por el
usuario para acelerar o frenar el tren y por último el tiempo de salida del tren i+1 de
mi estación.
Una vez almacenados el sistema hace un comprobación que consiste en ver si el
tiempo de llegada calculado menos la salida del tren i+1, que corresponde al intervalo
de los trenes, es menor que el intervalo mínimo, si es así, el tiempo de llegada tendrá
que ser el tiempo de la salida anterior mas el intervalo mínimo, que es lo máximo que
puede correr el tren en este caso sin aproximarse en exceso al tren i+1.
Si no el tiempo de llegada se mantiene como se había calculado en un principio.
En caso contrario el mando es posible y se aplica.
23
Capitulo 2 Simulación
g) Actualización del estado del tren i+1
ACTUALIZO ESTADO DEL
TREN i+1
RETORNO
CAMBIO EL ESTADO EN RECORRIDO POR EL ESTADO SALIDA CON EL TIEMPO DE SALIDA DEL TREN i+1
Actualizar el estado del tren i+1 consiste, como se ve en el diagrama, en cambiar
el estado de este tren que estaba en recorrido por su estado de salida que tenía antes de
que el sistema le impidiera generar su evento de llegada.
24
Capitulo 2 Simulación
h) Generación del estado recorrido
GENERO ESTADO DE RECORRIDO
CAMBIO EL ESTADO DEL TREN A RECORRIDO MANTENIENDO EL TIEMPO
DE LA SALIDA Y LA ESTACION
RETORNO
Generar el estado de recorrido consiste en modificar el estado del tren i de salida
a recorrido debido a que el sistema le ha impedido generar su evento de salida al no
disponer del tiempo de salida de la estación n+1 del tren i-1.
25
Capitulo 2 Simulación
i) Generación del evento de salida
GENERAR EVENTO DE
SALIDA
ALMACENO TIEMPO DE LA SALIDA ANTERIOR, VALOR DEL MANDO Y TIEMPO DE PARADA
SI NO
CALCULO TIEMPO DE SALIDA: Tsalida = Tllegada + MANDO + Tviajeros
¿Tsalida – Tlleg<Tmin?
Tsalida = Tllegada + Tmin Tsalida = Tllegada + MANDO + Tviajeros
RETORNO
26
Capitulo 2 Simulación
El diagrama anterior explica el proceso de generación de una salida.
Lo primero que hace el sistema es almacenar valores de tiempos de salida del
tren i+1, este tiempo sabemos que lo tenemos puesto que anteriormente se hizo la
comprobación de ver si el tren i+1 había salido de la estación n+1.
El valor del mando ya sabemos para que se utiliza, acelera o frena a un tren
cuanto diga el usuario.
Una vez almacenados el sistema hace un comprobación que consiste en ver si el
tiempo de salida calculado respecto del tiempo de llegada, da margen al tren para
estar parado en la estación el tiempo mínimo de parada establecido, si no es así, querrá
decir que el mando del usuario se ha excedido y no se tendrá en cuanta a la hora de
calcular el tiempo de salida.
En caso contrario el mando es posible y se aplica.
El cálculo del tiempo de viajeros se calcula de la siguiente manera:
Disponemos de las variables Intervalo inicial, tiempo mínimo y pendiente de la
recta descritos en el modelo de parada, nuestra incógnita es el tiempo de viajeros, es
decir, el eje Y de la gráfica conociendo en intervalo llegada-salida.
El cálculo es sencillo ya que conocemos la ecuación de la recta:
Y = Pendiente * (Intervalo llegada-salida – Intervalo inicial ) + Tmin
Esta ecuación nos da el tiempo de viajeros, este tiempo debe estar comprendido
entre el mínimo y el máximo permitidos por el modelo, en caso contrario se tomará
como tiempo de viajeros el máximo o mínimo permitidos según proceda.
27
Capitulo 2 Simulación
j) Calculo de errores
CALCULO DE
ERRORES
ALMACENO VALORES DE SALIDA TEORICA Y
SALIDA ANTERIOR DE LA ESTACION
RETORNO
ERROR DE SALIDA = Tsalida-Steorica
ERROR INTERVALO = Tsalida-Sant-Intervalo Nominal
28
Capitulo 2 Simulación
Como se puede observar en el diagrama del cálculo de errores, se consideran dos
tipos de errores:
1. Error de salida
2. Error de intervalo
Vamos a explicar que calcula cada uno de ellos:
El error de salida nos indica el error de tiempo que se produce en cada tren
respecto de un horario establecido.
Este horario se expresa mediante la variable Steorica que representa la salida
teórica que debería haber tenido cada tren de cada estación, se ve la diferencia entre la
salida real del tren y la teórica y eso nos da el error de salida.
El error de intervalo nos indica cuanto se acercan o alejan dos trenes entre si, se
calcula siempre de un tren respecto del que lleva delante.
Existe un intervalo definido entre trenes por el usuario que hemos denominado
intervalo nominal, de tal manera que si obtenemos un error positivo significa que el tren
se ha alejado del que lleva inmediatamente delante, por el contrario un error negativo
indica un acercamiento del tren con respecto del que tiene inmediatamente delante.
29
Capitulo 2 Simulación
ORDENAR EVENTOS
¿Tiempo tren(i) > Tiempo tren(j)?
ADELANTO EN LA COLA EL TREN(j) AL TREN(i)
INCREMENTO EL CONTADOR i
i=num_trenes-1
LEO TIEMPO DE EVENTO DEL TREN i
LEO TIEMPO DE EVENTO DEL TREN j
INCREMENTO EL CONTADOR j
i=num_trenes
INICIALIZO CONTADORES i Y j
RETORNO
30
Capitulo 2 Simulación
2.2. Simulación asíncrona
2.2.1 Conceptos básicos
La simulación asíncrona, es un procedimiento de simulación que actúa de la
misma manera que la simulación por eventos discretos, la única diferencia es la
siguiente:
La simulación por eventos discretos como ya hemos visto, con cada simulación
se avanza al próximo evento y se puede ver el estado del sistema. Es decir el proceso
de simulación va paso a paso, si se quiere ver el siguiente estado hay que volver a
simular.
La simulación asíncrona hace todo el proceso de una vez, es decir, a partir de los
datos de entrada el sistema simula el movimiento de los trenes por las estaciones
tantas veces como se indique en la variable número de estaciones a simular.
Cuando termina la simulación podemos ver como ha ido la simulación pero de
forma global, no podemos introducir mandos ni variaciones en medio del proceso.
31
Capitulo 3 Modelo de parada
3 MODELO DE PARADA
En nuestro modelo de parada vamos a dejar de utilizar como tiempo de parada
el tiempo de parada nominal introducido manualmente en la aplicación.
Para el cálculo del modelo de parada vamos a utilizara una ecuación que
representará el número de viajeros esperando en una estación.
Este número de viajeros vendrá determinado por una ecuación
El cálculo del tiempo de viajeros se calcula de la siguiente manera:
Disponemos de las variables Intervalo inicial, tiempo mínimo y pendiente de la
recta descritos en el modelo de parada, nuestra incógnita es el tiempo de viajeros, es
decir, el eje Y de la gráfica conociendo en intervalo llegada-salida.
El cálculo es sencillo ya que conocemos la ecuación de la recta:
Y = Pendiente * (Intervalo llegada-salida – Intervalo inicial ) + Tmin
Esta ecuación nos da el tiempo de viajeros, este tiempo debe estar comprendido
entre el mínimo y el máximo permitidos por el modelo, en caso contrario se tomará
como tiempo de viajeros el máximo o mínimo permitidos según proceda.
32
Capitulo 4 Casos ejemplo
4 CASOS EJEMPLO
4.1. Retraso de 20 segundos
Introducimos un retraso de 20 segundos en el tren número 4, esta situación
provoca los retrasos siguientes representados en gráficas
Situación de 6 trenes al introducir 20 segundos de retraso al tren 4
0100200300400500600700800900
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Estaciones
Ret
raso
s (s
egun
dos) TREN1
TREN2TREN3TREN4TREN5TREN6
El retraso se introduce en el mismo instante de comenzar la simulación, la
gráfica representa los errores de salida que se producen en los 6 trenes al ir
recorriendo las estaciones.
La situación es la siguiente: El tren 4 frena 20 segundos en cada estación y tarda
20 segundos mas en recorrerlas, esto provoca que llegue mas tarde a las estaciones de
lo previsto y a la vez q se retrasa los 20 segundos establecidos, deberá parar mas
tiempo debido al tiempo de viajeros ya que cuanto mas se retrase mas pasajeros se
acumularán en la estación.
33
Capitulo 4 Casos ejemplo
A su vez se observa como el tren 3 es el último q acumula retrasos debido a que
es el tren que va inmediatamente delante del tren 4 y es el último en llegar a la zona
“atascada” de la línea.
Todos los trenes empiezan a acumular retraso al pasar por la estación en la que
se introdujo el retraso al tren 4 y sigue creciendo mientras retrasemos al tren 4.
A continuación veremos el error de intervalo que se ha producido
Situación de 6 trenes al introducir 20 segundos de retraso al tren 4
0
100
200
300
400
500
600
700
800
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
TREN1TREN2TREN3TREN4TREN5TREN6
Como se observa en el gráfico el tren 4 es el tren que va incrementando su error
de intervalo hasta un momento en el cual se estabiliza, esta situación es debida a que
el tren 4 retrasándose, se aleja del tren que va por delante, el tren 3, cada vez mas
mientras que el resto se retrasan de su horario teórico pero entre ellos mantienen el
intervalo establecido.
34
Capitulo 4 Casos ejemplo
4.2. Aceleración de 30 segundos al tren 5
En este caso, vamos a hacer correr al tren5 para ver como afecta a los retrasos
Situación de 6 trenes al introducir 30 segundos de adelanto al tren 4
-300
-200
-100
0
100
200
300
400
1 3 5 7 9 11 13 15 17 19 21 23 25 27
Estaciones
Ret
raso
s (s
egun
dos) TREN1
TREN2TREN3TREN4TREN5TREN6
Como se esperaba, el tren 5 se acelera hasta un máximo donde permanece
constante debido al intervalo establecido entre trenes, el tren 5 no puede correr más ya
que alcanzaría al tren 4.
Por otro lado vemos como el tren seis se retrasa a medida que el tren 5 se
adelanta debido a que cuando el tren 6 llega a las estaciones debe aumentar su tiempo
de parada al incrementarse el intervalo llegada-salida entre ellos, de la misma manera
aunque mas retardado le ocurre al tren 1.
Los trenes 2, 3 y 4 aún no se han visto afectados por esta situación, por lo que
sus tiempos permanecen estables.
35
Capitulo 4 Casos ejemplo
Los errores de intervalo se ven en el siguiente gráfico: Situación de 6 trenes al introducir 20 segundos de retraso al tren 4
-300
-200
-100
0
100
200
300
400
500
600
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
Estaciones
Ret
raso
s (s
egun
dos) TREN1
TREN2TREN3TREN4TREN5TREN6
Vemos como el tren 6 incrementa progresivamente su error de intervalo, esto se
debe a que el tren 5 cada vez corre más y se aleja mas del tren 6.
El tren 5 por su parte, cada vez se acerca mas al tren 4 por ello su error de
intervalo se hace negativo hasta un máximo donde permanece constante.
El tren 1 también tiene un error de intervalo negativo debido al retraso q el tren 6
se ve obligado a realizar, acercándose cada vez mas el tren 1 al tren 6.
Progresivamente se va propagando al resto de trenes.
36
Capitulo 5 Controlador
5 CONTROLADOR
En este punto se llevara a cabo la implementación de un algoritmo de regulación
automática de tráfico metropolitano, que trata de corregir los retrasos de los trenes
modificando sus tiempos de recorrido y tiempos de parada en estación. Se
implementará el algoritmo de Araya, que es una referencia en la bibliografía por su
sencillez y buenos resultados.
Este algoritmo se basa en lo siguiente:
tj = max [ - dj , ½ ( dj-1 + dj+1 - 2dj - h)]
Donde tj es el tiempo de control que se aplica al tiempo del tren para corregir el
error, haciendo frenar al tren si el control es positivo o acelerándolo en caso contrario
dj representa el retraso del tren j
El significado del controlador es sencillo, trata de ajustar los retrasos o errores,
de esta manera compara el retraso del tren j con el error de intervalo que lleva el tren j
con los trenes anterior y posterior e intenta corregir el mayor error de los dos.
h es el parámetro de Araya que es una constante que en nuestro caso vale 0.5.
El controlador se aplica tanto en tiempos de recorrido como en tiempos de
parada.
37
Capitulo 5 Controlador
Al calcular el tiempo de llegada de un tren j a una estación, tras aplicar el control
calculado con la formula anterior hay una restricción q debe cumplir. El tiempo de
recorrido entre dos estaciones esta limitado, es decir tiene un valor máximo, un tren
no puede tardar mas de ese máximo en recorrer las estaciones, y un mínimo, un tren
no puede correr todo lo que quiera aunque no sobrepase el intervalo mínimo entre
trenes.
Al calcular el tiempo de salida de un tren j de una estación, tras aplicar el control
calculado mediante la fórmula de Araya hay que realizar la comprobación de que el
tren este parado en la estación un tiempo mínimo, en este caso no se aplica una
restricción de tiempo máximo.
A continuación vamos a realizar un estudio del funcionamiento del controlador,
mediante la representación grafica de la evolución de los retrasos.
Los valores de los parámetros utilizados los definimos a continuación
Tiempo de parada nominal = 20 segundos
Tiempo de recorrido nominal = 100 segundos
Tiempo máximo entre estaciones = 120 segundos
Tiempo mínimo entre estaciones = 85 segundos
38
Capitulo 5 Controlador
Tiempo mínimo de parada en una estación = 15 segundos (no existe un tiempo
máximo de parada de un tren en una estación)
Intervalo mínimo entre trenes = 130 segundos
Intervalo nominal = 240 segundos
Numero de trenes circulando = 12
Número de estaciones en la línea = 24
5.1. Retraso de 120s en TREN4 con pendiente de 0.02 en el modelo
de parada
Situación de 6 trenes al introducir 120 segundos de retraso al tren 4
-20
0
20
40
60
80
100
120
140
1557
1677
1797
1917
2037
2187
2305
2418
2531
2647
2760
2877
2997
3117
3237
3357
3477
Tiempo (segundos)
Ret
raso
(seg
undo
s) TREN2TREN3TREN4TREN5TREN6
39
Capitulo 5 Controlador
En la gráfica vemos como el TREN4 comienza con un retraso de 120 segundos,
justo el retraso que hemos introducido, mientras que los dos trenes anteriores y
posteriores comienzan con un retraso de –3 segundos debido a los intervalos
nominales entre los trenes que se reducen tres segundos debido a que cada tren para
tres segundos menos en cada estación debido al parámetro alfa definido como 0.02.
En este punto se encuentra estable el sistema.
Los trenes inmediatamente anterior y posterior son los que más rápido perciben
este retraso siendo el TREN5 el que más lo acusa, como es lógico ya que es el tren
que va detrás.
El TREN2 y el TREN6 notan el retraso pero de una manera mas suave, y a partir
de ahí se observa como el controlador va eliminando poco a poco los retrasos hasta
alcanzar el valor de error inicial de los trenes debido al modelo de parada.
40
Capitulo 5 Controlador
5.2. Retraso hasta acumular 200 segundos en TREN4 con pendiente
0.05 en modelo de parada
Situación de 6 trenes al introducir 200 segundos de retraso al tren 4
0
50
100
150
200
250
1560
1800
2040
2322
2591
2824
3053
3284
3516
3751
3984
4215
4445
4680
Tiempo (segundos)
Ret
raso
(seg
undo
s) TREN2TREN3TREN4TREN5TREN6
En este caso hemos empezado la simulación con un retraso de cero segundos,
para ver como se iba acumulando.
Introducimos 120 segundos de retraso en el tren 4 y lo mantenemos hasta que
alcanza los 200 una vez ahí quitamos el retraso al TREN4, dejamos que actúe el
controlador y observamos como en este caso al no influir el modelo de parada, la
reducción de los retrasos en los trenes es mucho más lineal que en el ejemplo anterior y
que el punto estable se alcanza en cero.
41
Capitulo 5 Controlador
5.3. Retrasos TREN3 = 30s TREN6 = 80s con pendiente de 0.02 en
el modelo de parada
Situación de 6 trenes al introducir 30 y 80 segundos de retraso a los trenes 3 y 6
-10
0
10
20
30
40
50
60
70
80
90
1557
1677
1877
1977
2077
2185
2294
2405
2519
2637
2757
2877
2997
3117
Tiempo (segundos)
Ret
raso
(seg
undo
s) TREN2TREN3TREN4TREN5TREN6TREN7
Vemos, en este otro caso, como de la misma manera el controlador va
reduciendo los retrasos en los trenes en los que introduce la perturbación, y aumenta
el retraso en los trenes cercanos a aquellos en los que introdujimos la perturbación,
para poco a poco ir reduciendo de forma un tanto oscilatoria el mismo.
42
Capitulo 5 Controlador
5.4. Retraso de 80 segundos en TREN6 hasta alcanzar 120
segundos, con pendiente de 0.05 en el modelo de parada
Situación de 6 trenes al introducir 80 segundos de retraso al tren 6
0
20
40
60
80
100
120
140
1560
1920
2120
2333
2557
2789
3020
3252
3483
3720
3960
Tiempo (segundos)
Ret
raso
(seg
undo
s)
TREN2TREN3TREN4TREN5TREN6TREN7
En este caso hemos empezado la simulación con un retraso de cero segundos,
para ver como se iba acumulando. Introducimos 30 segundos de retraso en el tren 3 y 80
segundos de retraso en tren 6 y lo mantenemos hasta que alcanza los 120 y 80 segundos
respectivamente, una vez ahí, dejamos que actúe el controlador y observamos como en
este caso al no influir el modelo de parada, la reducción de los retrasos en los trenes es
mucho más lineal que en el ejemplo anterior.
43
Capitulo 5 Controlador
5.5. Retrasos en TRENES 3, 6 y 9 de 100s
5.5.1. Con pendiente de 0.05 en el modelo de parada
Situación de la línea al introducir 100 segundos de retraso a los trenes 3,6 y 9
-20
0
20
40
60
80
100
120
1557
1722
1853
1975
2085
2207
2316
2439
2548
2671
2780
2903
3012
3135
3244
3367
3477
3599
3717
3837
3957
Tiempo (segundos)
Ret
raso
(seg
undo
s)
TREN1TREN2TREN3TREN4TREN5TREN6TREN7TREN8TREN9TREN10TREN11TREN12
Un ejemplo claro de la manera que tiene el controlador de corregir las
perturbaciones producidas en la línea es este gráfico.
Introducimos un retraso de 100 segundos en trenes alternativos, en esta caso en
los trenes 3, 6 y 9 para ver como se propaga el error a toda la línea y como el
controlador lo reduce a l mínimo.
44
Capitulo 5 Controlador
Vemos como los trenes en los que provocamos la perturbación, reducen su error
hasta un punto a partir del cual el resto de trenes, que ha alcanzado su error al mismo
nivel, van reduciendo de manera oscilante en torno a la línea de error de los trenes en
los que provocamos la perturbación.
5.5.2. Comportamiento global de la línea con pendiente de 0.05 en el
modelo de parada
Situación de la línea al introducir 100 segundos de retraso a los trenes 3,6 y 9
0
20
40
60
80
100
120
1560
1780
1880
1980
2081
2200
2315
2431
2546
2661
2776
2891
3006
3121
3240
3360
3480
Tiempo (segundos)
Ret
raso
(seg
undo
s)
TREN1TREN2TREN3TREN4TREN5TREN6TREN7TREN8TREN9TREN10TREN11TREN12
45
Capitulo 5 Controlador
En este caso hemos empezado la simulación con un retraso de cero segundos,
para ver como se iba acumulando. Introducimos 100 segundos de retraso en los trenes 3,
6 y 9 y lo mantenemos hasta que alcanzan este retraso, una vez ahí, dejamos que actúe
el controlador y observamos como en este caso al no influir el modelo de parada, la
reducción de los retrasos en los trenes es mucho más lineal que en el ejemplo anterior.
5.6. Trenes afectados en función del retraso
Curva de trenes afectados dependiendo de los diferentes retrasos
0
2
4
6
8
10
12
14
0 20 40 60 80 90 110 130
Retraso (segundos)
Tren
es a
fect
ados
Esta gráfica muestra de forma muy clara como en la línea en cuestión, formada
por 24 estaciones y 12 trenes con unos tiempos de recorrido de 100 segundos y de 20
segundos de parada...un retraso menor de 20 segundos no afecta a ningún tren ya que el
controlador lo corrige de inmediato no dando lugar a que este se propague.
46
Capitulo 5 Controlador
A medida que el retraso va aumentando aumenta el número de trenes afectados
debido a la propagación a lo largo de la línea del mismo, hasta un retraso de 90
segundos que acaba propagándose por toda la línea afectando de alguna manera por
pequeña que sea a todos los trenes.
47
Capitulo 6 Ruido mediante probabilidad
6. INTRODUCCION DE RUIDO EN LA LINEA MEDIANTE
PROBABILIDAD
En este apartado se explica como se introduce ruido en el modelo de tráfico, es
decir la posibilidad de definir perturbaciones aleatorias sobre los tiempos de recorrido y
parada nominales.
Este ruido se modelará mediante distribuciones de probabilidad de retrasos.
Se estudiarán casos ejemplo del comportamiento de la línea bajo distintas
distribuciones de probabilidad, obteniendo nuevas distribuciones de probabilidad de
retrasos transcurrido un cierto tiempo.
La distribución de probabilidad que se utilizará para la generación aleatoria de
retrasos será una gaussiana de media 5 segundos y desviación típica de 4 segundos.
Curva de la distribución Gaussiana de media 5 y desv. Típica 4
Gaussiana(5,4)
0
0,02
0,04
0,06
0,08
0,1
0,12
-5 0 5 10 15 20
Retrasos (segundos)
Serie1
48
Capitulo 6 Ruido mediante probabilidad
Le decisión de tomar esa media y desviación típica para la distribución Normal
ha sido el haber realizado las siguientes pruebas con variaciones en la distribución y en
el parámetro constante de Araya hasta conseguir hacer estable al sistema.
6.1. Variaciones en parámetro h de Araya para estabilizar sistema
introduciendo retraso de 120 s en TREN4
6.1.1. Con retrasos aleatorios y parámetro h de Araya 5. Evolución de los retrasos del tren 4 con 120 segundos iniciales, retrasos
aleatorios generados en cada estación por la distribución gaussiana y h=5
simulacion1
020406080
100120140
1684
1884
2097
2331
2558
2797
3027
3276
3521
3758
4000
4235
4476
4713
Tiempo (segundos)
Retra
sos
(seg
undo
s)
TREN4
49
Capitulo 6 Ruido mediante probabilidad
Evolución de los retrasos del tren 4 con 120 segundos iniciales, retrasos
aleatorios generados en cada estación por la distribución gaussiana y h=5
simulacion2
0
20
40
60
80
100
120
140
1683
1883
2091
2324
2568
2808
3040
3266
3495
3749
3982
4221
4461
4701
Tiempo (segundos)
Retr
asos
(seg
undo
s)
TREN4
simulacion3
020406080
100120140
1684
1984
2320
2688
3043
3415
3747
4137
4480
4858
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
50
Capitulo 6 Ruido mediante probabilidad
Se puede ver claramente como este parámetro h no estabiliza el sistema, reduce
el retraso hasta conseguir que los trenes se queden a intervalo, o como se ve en el último
caso tiende a recuperar retraso.
Tenemos que buscar la h que estabilice el sistema para ello vamos variándola
hasta obtener los resultados que esperamos.
6.1.2. Con retrasos aleatorios y parámetro h de Araya 15.
Evolución de los retrasos del tren 4 con 120 segundos iniciales, retrasos
aleatorios generados en cada estación por la distribución gaussiana y h=15
simulacion1
020406080
100120140
1686
1994
2335
2683
3042
3396
3766
4112
4482
4835
5206
Tiempo (segundos)
Retra
sos
(seg
undo
s)
TREN4
No conseguimos aún eliminar el retraso
51
Capitulo 6 Ruido mediante probabilidad
6.1.3. Con retrasos aleatorios y parámetro h de Araya 20.
Evolución de los retrasos del tren 4 con 120 segundos iniciales, retrasos
aleatorios generados en cada estación por la distribución gaussiana y h=20
simulacion1
020406080
100120140
1686
1994
2335
2683
3042
3396
3766
4112
4482
4835
5206
5547
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
No conseguimos aún eliminar el retraso
52
Capitulo 6 Ruido mediante probabilidad
6.1.4. Con retrasos aleatorios y parámetro h de Araya 30.
Evolución de los retrasos del tren 4 con 120 segundos iniciales, retrasos
aleatorios generados en cada estación por la distribución gaussiana y h=30
simulacion1
-200
20406080
100120140
1681
1986
2327
2694
3035
3394
3740
4099
4449
4803
5162
5525
Tiempo (segundos)
Retra
so (s
egun
dos)
TREN4
simulacion2
-200
20406080
100120140
1681
1988
2327
2687
3031
3395
3738
4111
4446
4813
5162
5521
5884
6237
Tiempo (segundos)
Retr
asos
(seg
undo
s)
TREN4
53
Capitulo 6 Ruido mediante probabilidad
Tras correr varias simulaciones se observa como el sistema efectivamente parece
que para este valor de h se estabiliza haciendo que los retrasos lleguen a eliminarse por
completo
6.1.5. Sin retrasos aleatorios y parámetro h de Araya 30.
Evolución de los retrasos del tren 4 con 120 segundos iniciales, sin retrasos
aleatorios generados en cada estación por la distribución gaussiana y h=30
simulacion1
-200
20406080
100120140
1677
1877
2092
2325
2554
2794
3028
3263
3500
3744
3967
4201
4445
4677
4923
5163
Tiempo (segundos)
Retra
so (s
egun
dos)
TREN4
Esta simulación era necesaria para comprobar que efectivamente el sistema era
siempre estable ya que para h = 5 el sistema eliminaba el error sin introducir retrasos
aleatorios.
54
Capitulo 6 Ruido mediante probabilidad
Con esta gráfica comprobamos que el sistema efectivamente es estable elimina
el retraso del tren de la misma manera que con retrasos aleatorios solo que, como es
lógico, en menos tiempo, en unos 2600 segundos, mientras que con retrasos aleatorios
el controlador tarda unos 3200 segundos en eliminar los retrasos.
6.1.6. Sin retrasos aleatorios y parámetro h de Araya 30 de forma global.
Evolución de los retrasos en la línea, con 120 segundos iniciales de retraso en
tren 4, sin retrasos aleatorios y h=30
simulacion1
-200
20406080
100120140
1677
1877
2092
2325
2554
2794
3028
3263
3500
3744
3967
4201
4445
4677
4923
5163
Tiempo (segundos)
Retra
so (s
egun
dos)
TREN3TREN4TREN5
En esta gráfica se representa el TREN4 que es el tren al cual se le ha producido
el retraso de 120 segundos y los dos trenes más próximos al mismo para ver de manera
global como se comporta el sistema.
55
Capitulo 6 Ruido mediante probabilidad
6.2. Modificaciones en la distribución normal para obtener los
parámetros más adecuados manteniendo h=30
Queremos obtener una distribución de errores que haga al controlador retrasar
más la reducción del mismo hasta anularlo.
6.2.1. Normal (5,10)
Evolución de los retrasos en tren 4 manteniendo h=30 y N (5,10)
020406080
100120140160180
1679
1879
2104
2343
2575
2837
3076
3329
3571
3808
4049
4318
4586
4820
5070
Tiempo (segundos)
Retra
sos
(seg
undo
s)
TREN4
El sistema es totalmente inestable, en lugar de disminuir el retraso va
aumentando, no nos sirven estos parámetros.
56
Capitulo 6 Ruido mediante probabilidad
6.2.2. Normal (5,8)
Evolución de los retrasos en tren 4 manteniendo h=30 y N (5,8)
0
20
40
60
80
100
120
140
1679
1879
2101
2329
2564
2797
3045
3296
3548
3782
4028
4277
4531
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
El sistema es totalmente inestable, en lugar de disminuir el retraso va
aumentando, no nos sirven estos parámetros.
6.2.3. Normal (5,6)
Evolución de los retrasos en tren 4 manteniendo h=30 y N (5,6)
0
20
40
60
80
100
120
140
1684
1884
2105
2331
2563
2805
3048
3290
3542
3795
4031
4276
4526
Tiempo (segundos)
Retra
sos
(seg
undo
s)
TREN4
57
Capitulo 6 Ruido mediante probabilidad
El sistema empieza a estabilizarse vemos como el controlador llega un punto que
no reduce el retraso pero al menos no lo incrementa, seguimos probando.
6.2.4. Normal (6,4) Evolución de los retrasos en tren 4 manteniendo h=30 y N (6,4)
0
2040
6080
100
120140
160
1694
2003
2338
2701
3046
3415
3765
4132
4507
4853
5222
Tiempo (segundos)
Retra
sos
(seg
undo
s)
TREN4
El sistema empieza a estabilizarse vemos como el controlador llega un punto que
no reduce el retraso pero al menos no lo incrementa, seguimos probando.
58
Capitulo 6 Ruido mediante probabilidad
6.2.5. Normal (6,5)
Evolución de los retrasos en tren 4 manteniendo h=30 y N (6,5)
0
20
40
60
80
100
120
140
1685
1996
2327
2709
3053
3424
3779
4157
4503
4895
5235
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
Otra vez se inestabiliza, no nos sirve.
6.2.6. Normal (4,6) Evolución de los retrasos en tren 4 manteniendo h=30 y N (4,6)
0
20
40
60
80
100
120
140
1691
1991
2342
2691
3051
3397
3770
4130
4504
4853
5223
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
59
Capitulo 6 Ruido mediante probabilidad
El sistema empieza a estabilizarse vemos como el controlador llega un punto que
no reduce el retraso pero al menos no lo incrementa, seguimos probando.
6.2.7. Normal (5,4) Evolución de los retrasos en tren 4 manteniendo h=30 y N (5,4)
-20
0
20
40
60
80
100
120
140
1680
1880
2087
2317
2552
2790
3036
3271
3508
3737
3963
4196
4435
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
Serie1
0
20
40
60
80
100
120
140
1685
1985
2329
2692
3043
3391
3758
4099
4443
4803
5167
5524
Tiempo (segundos)
Retra
sos
(seg
undo
s)
TREN4
60
Capitulo 6 Ruido mediante probabilidad
Nos quedamos con esta distribución porque se observa claramente como actúa
de forma correcta y permite al controlador eliminar el retraso
6.3. Variaciones en la constante h de Araya
Vamos a modificar de manera simultánea parámetros de la normal y constante
de Araya por si existiera una mejor combinación, en el sentido de reducir el retraso en
menos tiempo.
6.3.1. h = 15 media = 4 y desviación típica = 6
Evolución de los retrasos en tren 4 con h=15 y N (4,6)
0
20
40
60
80
100
120
140
1680
1980
2332
2675
3025
3404
3763
4106
4490
4851
5232
5572
Tiempo (segundos)
Retra
sos
(seg
undo
s)
TREN4
El sistema es totalmente inestable, en lugar de disminuir el retraso va
aumentando, no nos sirven estos parámetros.
61
Capitulo 6 Ruido mediante probabilidad
6.3.2. h = 15 media = 5 y desviación típica = 8
Evolución de los retrasos en tren 4 con h=15 y N (5,8)
0
20
40
60
80
100
120
140
160
1695
2003
2338
2724
3103
3435
3830
4182
4546
4919
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
El sistema es totalmente inestable, en lugar de disminuir el retraso va
aumentando, no nos sirven estos parámetros.
62
Capitulo 6 Ruido mediante probabilidad
6.3.3. h = 10 media = 5 y desviación típica = 6
Evolución de los retrasos en tren 4 con h=10 y N (5,6)
0
20
40
60
80
100
120
140
1683
1883
2108
2333
2568
2800
3040
3288
3541
3778
4022
4264
4498
4765
5008
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
El sistema es totalmente inestable, en lugar de disminuir el retraso va
aumentando, no nos sirven estos parámetros.
6.3.4. h = 20 media = 5 y desviación típica = 6 Evolución de los retrasos en tren 4 con h=20 y N (5,6)
0
20
40
60
80
100
120
140
1678
1978
2321
2687
3032
3416
3765
4129
4489
4868
5229
5598
5948
6335
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
63
Capitulo 6 Ruido mediante probabilidad
El sistema es totalmente inestable, en lugar de disminuir el retraso va
aumentando, no nos sirven estos parámetros.
6.3.5. h = 20 media = 4 y desviación típica = 5 Evolución de los retrasos en tren 4 con h=20 y N (4,5)
-20
0
20
40
60
80
100
120
140
1681
2223
2791
3387
3983
4579
5188
5770
6387
6978
7581
8177
8762
9355
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
El sistema se hace estable, pero vemos como al controlador le cuesta más tiempo
eliminar el retraso, no nos sirve.
64
Capitulo 6 Ruido mediante probabilidad
6.3.6. h = 20 media = 4 y desviación típica = 6
Evolución de los retrasos en tren 4 con h=20 y N (4,6)
-20
0
20
40
60
80
100
120
1560
1968
2322
2674
3043
3394
3763
4115
4485
4827
5194
5555
5899
6258
6604
6968
7322
7682
8041
Tiempo (segundos)
Retra
sos
(seg
undo
s)
TREN4
El sistema se hace estable, pero vemos como al controlador le cuesta más tiempo
eliminar el retraso, no nos sirve.
6.3.7. h = 20 media = 4 y desviación típica = 8 Evolución de los retrasos en tren 4 con h=20 y N (4,8)
0
20
40
60
80
100
120
140
1675
1982
2322
2679
3066
3411
3786
4149
4508
4892
5246
5618
5987
Tiempo (segundos)
Ret
raso
s (s
egun
dos)
TREN4
65
Capitulo 6 Ruido mediante probabilidad
El sistema es totalmente inestable, en lugar de disminuir el retraso va
aumentando, no nos sirven estos parámetros.
6.3.8. h = 20 media = 4 y desviación típica = 7 Evolución de los retrasos en tren 4 con h=20 y N (4,7)
0
20
40
60
80
100
120
140
1684
1985
2338
2695
3048
3423
3785
4155
4509
4883
5233
5586
5958
Tiempo (segundos)
Retra
so (s
egun
dos)
TREN4
66
Capitulo 6 Ruido mediante probabilidad
6.4. Resultado de simular 1000 veces Simulo 1000 veces con retrasos aleatorios generados por la distribución N (5,4)
y parámetro h del controlador de Araya 30.
Resultado de optimizar mediante pruebas la aproximación a la realidad
Simulamos 1000 veces el tiempo durante el cual el controlador conseguía
eliminar el retraso en una situación inicial el la que no había retrasos aleatorios para
obtener el retraso con el que se queda el tren en ese instante y me quedo con los 1000
valores de retrasos de las 1000 simulaciones para obtener una distribución de retrasos.
En cada simulación introduzco manualmente retraso de 120 segundos al tren 4
Tabla de frecuencias de los retrasos obtenidos en el TREN4
Clase Frecuencia -5 9 0 133 5 207 10 205 15 174 20 75 25 43 30 13 35 8 40 3 45 1 50 0 y mayor... 0
67
Capitulo 6 Ruido mediante probabilidad
Representación del histograma de frecuencias de los retrasos tras 1000
simulaciones en el TREN4
Histograma de retrasos del tren4 en 1000 simulaciones
Frecuencia TREN4
0
50
100
150
200
250
-5 0 5 10 15 20 25 30 35 40 45 50
y may
or...
Frecuencia
Representación del polígono de frecuencias de los retrasos tras 1000
simulaciones en el TREN4
Frecuencia de retrasos del tren4 en 1000 simulaciones
Frecuencia TREN4
0
50
100
150
200
250
-5 0 5 10 15 20 25 30 35 40 45 50
y may
or...
Frecuencia
68
Capitulo 6 Ruido mediante probabilidad
Representación del histograma de frecuencias de los retrasos tras 1000
simulaciones en el TREN5
Histograma de retrasos del tren 5 en 1000 simulaciones
TREN5
020406080
100120140160
-9 -6 -3 0 3 6 9 12
Retrasos (segundos)
frec
uenc
ia
Frecuencia
69
Capitulo 6 Ruido mediante probabilidad
Frecuencia de retrasos del tren 5 en 1000 simulaciones
Frecuencia
020406080
100120140160
-9 -6 -3 0 3 6 9 12 15
Retrasos (segundos)
frec
uenc
ia
Frecuencia
Representación del histograma de frecuencias de los retrasos tras 1000
simulaciones en el TREN3
Histograma de retrasos del tren3 en 1000 simulaciones
TREN3
020406080
100120140
-9 -7 -5 -3 -1 1 3 5 7 9 11 13 15 17
Retrasos (segundos)
frec
uenc
ia
TREN3
70
Capitulo 6 Ruido mediante probabilidad
Frecuencia de retrasos del tren 3 en 1000 simulaciones
TREN3
050
100150200250300350
-10 -7 -4 -1 2 5 8 11 14 17
y may
or...
Retrasos (segundos)
frec
uenc
ia
TREN3
Representación del histograma de frecuencias de los retrasos tras 1000
simulaciones de forma global, todos los trenes de la línea
71
Capitulo 6 Ruido mediante probabilidad
Frecuencia de retrasos de la línea en 1000 simulaciones
050
100150200
250300
350400
1 2 3 4 5 6 7 8 9 10 11
Retrasos (segundos)
frec
uenc
ia
TREN1TREN2TREN6TREN7TREN8TREN9TREN10TREN11TREN12
Hemos podido observar como todas las distribuciones de los retrasos de los
trenes se asemejaban de forma bastante realista a la distribución Normal de hecho casi
todas ellas estaban centradas en 5, lo cual era de esperar.
72
Capitulo 7 Ruido mediante posibilidad
7 INTRODUCCION DE RUIDO EN LA LINEA MEDIANTE
POSIBILIDAD
Teoría de conjuntos borrosos nos permite manejar en un único marco teórico la
incertidumbre y la vaguedad, mediante la utilización de conjuntos borrosos y su
combinación con la teoría de la posibilidad y permite modelar el desconocimiento total
de forma similar a como se hace en la teoría de la evidencia
Conjuntos borrosos La pertenencia a un conjunto deja de ser una afirmación o
una negación para ser una cuestión de grados de pertenencia, estos grados de
pertenencia se encuentran en el intervalo [0,1] siendo respectivamente la negación total
o afirmación total de la pertenencia a un conjunto borroso dado
Posibilidad: la forma de extender una función de parámetros que son números
clásicos a números borrosos es mediante la aplicación del principio de extensión que
enunciamos a continuación.
Principio de extensión Procedimiento general que permite extender funciones
f: X1×X2×…×Xn X n+1a funciones con argumentos borrosos
F: ξ(X1) ×ξ(X2) ×…×ξ (Xn) ξ (Xn+1), donde ξ(X1) representa el conjunto borroso de
todos los conjuntos borrosos que pueden definirse en X.
73
Capitulo 7 Ruido mediante posibilidad
El principio de extensión se enuncia del siguiente modo. Dada una función f:
X1×X2×…×Xn X n+1, la extensión F viene dada por:
F: ξ(X1) ×ξ(X2) ×…×ξ (Xn) ξ (Xn+1)
μγ(y) = F(A,B,…M) = sup{ T(μA(a), μB(b),…, μM(m)) | (a,b,…,m) Є ( X1×X2×…×Xn ) e
y = f(a,b,…,m)}
T(μA(a), μB(b),…, μM(m)) representa el grado de pertenencia de (a,b,…,m) a
(A,B,..,M), por lo que el principio de extensión puede entenderse como la expresión
matemática de “existe al menos un conjunto de valores (a,b,…,m) con grado de
pertenencia conjunto T(μA(a), μB(b),…, μM(m)) a (A,B,…,M), tal que y es función de
(a,b,…,m) según f, es decir y=f(a,b,…,m) ”.
Dicho de otro modo, si la imagen y por la función f tiene mas de un antecedente
(a, b,…, m), entonces el máximo grado de pertenencia de esos antecedentes al
antecedente borroso (A, B,…, M), que denominamos Y, se obtiene como una
conjunción de los grados de pertenencia individuales de cada a, b,.., m al
correspondiente conjunto borroso A, B,.., M.
La forma más común de aplicar el principio de extensión es mediante la t-norma
min., que se aplica cuando no se tiene información adicional acerca de la relación entre
los conjuntos borrosos a combinar, por ser la menos específica
Principio de mínima especificidad
μγ(y) = sup min{ μA(a), μB(b),…, μM(m) }
74
Capitulo 7 Ruido mediante posibilidad
En la práctica, para aplicarlo es preciso calcular la función (en nuestro caso la
función es la simulación del carrusel que nos da como resultado el retraso de los trenes
en las estaciones) un número de veces muy elevado, es decir, sería preciso simular
muchas veces para obtener la distribución de posibilidad de los retrasos en las
estaciones.
En lugar de aplicar este principio, se puede realizar un análisis de intervalos
gracias a la propiedad de las funciones continuas no decrecientes
7.1. Aproximación mediante análisis de intervalos
Vamos a ver ahora como extender la operación de dos números reales a números
borrosos cuando las funciones son continuas de variables reales positivas.
Sea el α-corte [ a, a] (α) = [a(α), a(α)] de un número borroso A con función de
pertenencia μA, donde el límite inferior del α-corte se expresa como
a(α) = inf x
y el límite superior se expresa como:
a(α) = sup x
75
Capitulo 7 Ruido mediante posibilidad
a(α)
a(α)
Representación de un α-corte del número borroso A
Si el número borroso es continuo entonces se verifica μA(a(α)) = μA(a(α)) =α
Por otro lado, esta demostrado que es posible extender las funciones continuas y
monótonas a parámetros borrosos aplicando aritmética de intervalos con los mismos
resultados que el principio de extensión.
Dada la función continua y monótona f(a, b) tal que j: R2 R se pueden
distinguir los siguientes casos
76
Capitulo 7 Ruido mediante posibilidad
1. f(a,b) no decreciente ni en a ni en b
2. f(a,b) no decreciente en a y no decreciente en b
3. f(a,b) no creciente ni en a ni en b
1.Sea f(a,b) una función continua en a y b y no decreciente ni en a ni en b. El
resultado de extender la función f a números borrosos A y B es un número borroso C
cuya función de pertenencia μc se puede obtener mediante la aplicación del principio de
extensión o bien mediante aritmética de intervalos con el mismo resultado.
Para todo ω Є R > 0, Пc(ω) = μc(ω) = sup min{ μA(a), μB(b) }
El número borroso C se puede representar a partir de sus α-cortes que se pueden
calcular a partir de los α-cortes de A y B como:
[c, c] (α) = [c (α), c (α)] = [f (a, b), f (a, b)]
2.Si la función f es continua no decreciente en a y no decreciente en b, los alfa-
cortes de C se pueden calcular mediante aritmética de intervalos como:
[c, c] (α) = [c (α), c (α)] = [f (a, b), f (a, b)]
77
Capitulo 7 Ruido mediante posibilidad
3.Del mismo modo, cuando la función f es continua no decreciente en a y en b,
los alfa-cortes de C se pueden calcular mediante aritmética de intervalos a partir de los
alfa-cortes de A y B como:
[c, c] (α) = [c (α), c (α)] = [f (a, b), f (a, b)]
Este tipo de cálculos es mucho más eficiente: con pocas simulaciones:
aproximadamente 2 por cada alfa-corte, se obtiene la distribución de posibilidad.
En nuestro caso:
La función es la simulación del movimiento. Da como resultado los retrasos de
los trenes en las estaciones.
Se modela mediante distribución de posibilidad las perturbaciones en el tiempo
de salida de las estaciones, se trata de una función continua creciente con dicho ruido,
siempre y cuando quitemos el efecto de los viajeros en los andenes (constante a cero).
78
Capitulo 7 Ruido mediante posibilidad
Lo primero que hacemos es aproximar nuestra distribución Normal (5,4) a una
distribución triangular que se le asemeje que será nuestro conjunto borroso de retrasos
producidos en las estaciones
Función gaussiana utilizada en probabilidad acotada en -4
0
0,02
0,04
0,06
0,08
0,1
0,12
-6 -4 -2 0 2 4 6 8 10 12 14 16 18 20 22
Series1
Función triangular aproximación a la gaussiana de probabilidad
00,10,20,30,40,50,60,70,80,9
1
-6 -4 -2 0 2 4 6 8 10 12 14 16 18 20 22
Series1
79
Capitulo 7 Ruido mediante posibilidad
Una vez tenemos la distribución triangular hacemos lo siguiente:
Elegimos valores alfa (alfa-cortes) que corten nuestra distribución triangular en
diferentes puntos.
Se han seleccionado valores de alfa 0.1, 0.2, 0.4, 0.7 y 1.
Buscamos los valores de x en la distribución que corresponden a los diferentes
cortes.
Los valores de X serán los retrasos que introducimos en todas las estaciones de
manera fija, no aleatoria como hacíamos en el caso de retrasos con distribución
aleatoria.
Simulamos introduciendo un ruido inicial al tren 4 de 120 segundos y corremos
una simulación completa obteniendo el retraso final del tren 4.
La gráfica de posibilidad la obtenemos de la siguiente manera:
Por ejemplo, tomamos alfa-corte = 0.4 tenemos dos valores en la distribución
triangular que son -1.7 y 14 que corresponden a los retrasos fijos que introducimos en
las simulaciones. El resultado del retraso del tren4 al final de estas simulaciones
corresponde a 2 y 24 segundos de retraso respectivamente que los representamos en el
eje de las x de la grafica de posibilidad dándoles como valor de y el valor del alfa-corte
que en este caso era 0.4 y axial sucesivamente con todos los puntos hasta obtener la
siguiente gráfica.
80
Capitulo 7 Ruido mediante posibilidad
Distribución de retrasos de tren4 resultante de aplicar lógica borrosa
00,1
0,20,30,40,5
0,60,70,8
0,91
-20 0 20 40 60 80 100 120 140 160 180Retrasos (segundos)
Frecuencia de retrasos del tren 4 en 1000 simulaciones con probabilidad
Frecuencia
0
50
100
150
200
250
-5 5 15 25 35 45
y may
or...
Frecuencia
Retrasos (segundos)
81
Capitulo 7 Ruido mediante posibilidad
Observamos como la gráfica resultante obtenida presenta una cola que es
demasiado grande, difiere de los resultados obtenidos mediante probabilidad.
Para intentar solucionarlo, vamos a redefinir nuestra función triangular que
representa al conjunto borroso, disminuyendo el retraso máximo posible a ver como
queda la nueva distribución.
Nueva aproximación mediante triangular a gaussiana
00,10,20,30,40,50,60,70,80,9
1
-6 -4 -2 0 2 4 6 8 10 12 14 16 18
Series1
Retrasos (segundos)
Acotamos en 16 segundos de retraso en lugar de 20 como teníamos en un
principio.
82
Capitulo 7 Ruido mediante posibilidad
Distribución de retrasos de tren4 resultante de aplicar lógica borrosa
00,1
0,20,30,40,5
0,60,70,8
0,91
-10 0 10 20 30 40 50 60 70 a (α)
Nueva distribución, que se asemeja mucho más, como era de esperar a la
realidad
Frecuencia de retrasos del tren4 en 1000 simulaciones con probabilidad
Frecuencia
0
50
100
150
200
250
-5 5 15 25 35 45
y may
or...
Frecuencia
Retrasos (segundos)
83
Capitulo 7 Ruido mediante posibilidad
A continuación vamos a simular cada 0.1 para aproximar de forma mas exacta
nuestra distribución de posibilidad
Nueva aproximación mediante triangular a gaussiana
0
0,2
0,4
0,6
0,8
1
1,2
-5 0 5 10 15 20
Retrasos (segundos)
Posi
bilid
ad
Serie1
Distribución de retrasos de tren4 resultante de aplicar lógica borrosa
00,10,20,30,40,50,60,70,80,9
1
-10 0 10 20 30 40 50 60 70
Retrasos (segundos)
Posi
bilid
ad
Serie1
84
Capítulo 8 Estimación de costes
8 ESTIMACIÓN DE COSTES
En este punto del proyecto se va a realizar una estimación del coste final que
debería abonar un cliente por la herramienta desarrollada.
Uno de los puntos principales para la estimación del coste es la duración final
del proyecto. Este proyecto ha tenido una duración total de 12 meses, un año de los
cuales 7 meses se han dedicado al análisis, diseño de la aplicación e implantación de
aplicación y el resto al estudio de la propagación del ruido y casos de prueba.
El coste final de la herramienta se compone de dos elementos principales: el
coste del grupo de trabajo y el coste del software utilizado para desarrollar el software,
en este caso el software utilizado al ser Office se incluye en costes de oficina.
El grupo de trabajo está formado por dos personas. La primera con categoría de
Ingeniero Junior y la segunda con categoría de Jefe de Proyecto. Ambas categorías están
definidas dentro de la organización de IIT y llevan asociadas una tarifa determinada. La
tarifa incluye los siguientes elementos:
• Gastos de personal
• Gastos de oficina. Este concepto incluye gastos tales como papel,
fotocopias, mobiliario, teléfono, ordenador y software estándar
(Windows XP y Office 2000)
85
Capítulo 8 Estimación de costes
La tarifa correspondiente a un ingeniero Junior es de 3000 €/mes y la del Jefe de
proyecto 10.000 €/mes. Pero la dedicación de cada uno de los miembros del grupo de
trabajo al proyecto fue diferente. Por un lado el Ingeniero Junior ha estado dedicado al
100% de su tiempo de trabajo al proyecto, en cambio el Jefe de proyecto ha dedicado el
20% de su trabajo en la fase de análisis y desarrollo y el 5% durante la fase del estudio
de la propagación del ruido y pruebas. Así pues el coste del grupo de trabajo es el
siguiente:
COSTE INGENIERO JUNIOR......................................................2.300 €/mes
Coste análisis y desarrollo....................................................15.100 €
Coste ruido y pruebas.......................................................... 11.500 €
TOTAL............................................................................................26.600 €
COSTE JEFE DE PROYECTO.....................................................5.000 €/mes
Coste análisis y desarrollo (20%)........................................7.000 €
Coste ruido y pruebas (5%).................................................1.250 €
TOTAL...........................................................................................8.000 €
COSTE TOTAL GRUPO DE TRABAJO
Coste Ingeniero júnior..........................................................26.600 €
Coste Ingeniero Proyecto..................................................... 8.000 €
TOTAL...........................................................................................34.600 €
86
Capítulo 9 Conclusiones
9 CONCLUSIONES
Para la autora del proyecto este es el primer desarrollo de gran envergadura en el
que participa. En principio esta simulación fue un handicap durante los primeros pasos
del proyecto, sobre todo en el diseño de la aplicación. Pero finalmente pudo culminarse
y culminar de forma satisfactoria la herramienta.
Una vez finalizado el desarrollo de la herramienta varias son las conclusiones a
las cuales llega la autora pero la primera y fundamental es que hacer software de calidad
es una ardua tarea. Muchos son los factores que determinan que una aplicación es
realmente buena y muchos de ellos son dificilies de controlar o incluso definir. Cuando
se comienza el desarrollo de una aplicación realmente es imposible controlar todos los
aspectos de la misma.
El primer aspecto del cual uno se da cuenta de su criticidad es el de
familiarizarse con el ámbito del negocio con el que se va a trabajar. Si no se conoce el
negocio difícilmente se podrá realizar un buen diseño. Conocer el negocio y desarrollar
el diseño de forma simultánea puede llevar a la pérdida de mucho tiempo de trabajo
No se puede hacer una buena aplicación sin un buen diseño detallado, muy
sopesado y hecho con minuciosidad. Pero también es necesario saber ver más allá del
diseño y pensar en la implementación. Si se hace un diseño exhaustivamente detallado
puede ser que se pierda el norte. Es decir, hay que saber buscar un equilibrio en el
detalle del diseño. Por un lado, ser muy genérico puede llevarte a un software bastante
inestable y que sea un conjunto de parches uno encima de otro, pero por otro lado, ser
muy detallado puede hacer que la complejidad de la implementación sea imposible de
llevar a cabo. En el medio de estos extremos está la clave de un buen diseño.
87
Capítulo 9 Conclusiones
Otro factor importante a la hora de realizar el diseño de la aplicación es la
realimentación de errores y cambios detectados. Según se va realizando el diseño de la
aplicación te vas dando cuenta de que hay cosas que podrían funcionar de forma mucho
más eficiente desde otro punto de vista diferente. El diseño no es nada lineal sino que el
retroceder a fases anteriores para realizar cambios o corregir errores es algo muy
común. La clave está en determinar cuando algo es definitivamente inamovible. Si no se
determina este momento el diseño de la aplicación no se acabaría nunca
Un paso muy importante en el desarrollo del proyecto es el comienzo de la
implementación. El comenzar esta fase significa que el diseño ha llegado a un punto
donde las modificaciones deberán ser mínimas. Una gran modificación en el diseño
estando en la fase de implementación puede convertirse en el fracaso de la aplicación.
Así pues, cuando se da esta paso es necesario estar completamente seguro de que el
diseño es lo más correcto y completo posible.
En particular sobre el proyecto que he desarrollado decir que cuando me puse a
programar y ya llevaba muchas líneas de código, para mi fue increíble ver como el
ordenador ejecuta todas tus líneas de código, comprueba restricciones hace
operaciones...todo en cuestión de milésimas de segundos, realmente es increíble, y no te
das cuenta de ello hasta que sabes lo que le estas pidiendo que haga, las cosas que un
ordenador puede llegar a hacer, realmente es impresionante.
En definitiva, hacer software complejo es un arte auténtico y quien diga lo
contrario no sabe de lo que habla.
88
Capítulo 10 Bibliografía
Bibliografía
[LAW91] Averil M. Law y W. David Kelton “Simulation Modeling and
Analysis”. Mc. Graw-Hill, (1991).
[BANK96] Jerry Banks, John S. Carson II, Barry Nelson, “Discret-Event System
Simulation”, Prentice-Hall, (1996).
[FISH80] George Fishman, “Conceptos y métodos en la simulación de Sistemas
Discretos”, Limusa, (1980).
[GORD78] Geofrey Gordon , “Modeling and Simulation”, Prentice Hall, (1978).
[KOSH94] B. Koshnevis, “Discrete systems simulation”, McGraw-Hill, (1994).
89
Apéndice Manual de usuario
Manual de Usuario
En este apartado se explicará el entorno global del sistema al que hacemos
referencia.
En la siguiente imagen se muestra el aspecto inicial de la aplicación
90
Apéndice Manual de usuario
De arriba abajo se define
Nº de trenes Hace referencia al número de trenes que queremos que estén
circulando por la línea
Nº de Estaciones Número de estaciones que queremos que tenga la línea
Intervalo Mínimo Tiempo mínimo que queremos que haya entre dos trenes
Nº de estaciones simulación Nº de estaciones que queremos que el sistema
simule (se entiende por cada tren)
Tiempo de vuelta Tiempo estimado en dar una vuelta completa a la línea;
suma de todos los tiempos de recorridos y paradas
Intervalo nominal Tiempo de vuelta entre número de trenes
A continuación aparece un cuadro con información de las estaciones, aparece el
número de la estación, el nombre, el tiempo de recorrido y el tiempo de parada
Tras esto, información sobre tiempos de últimas salidas y llagadas a cada una de
las estaciones definidas por el usuario.
La casilla que aparece con nombre T.FOTO corresponde al tiempo en que el
usuario decide iniciar la simulación.
El botón denominado PLANTILLA Y FOTO desarrollado en otro apartado deja
el sistema en el estado siguiente
91
Apéndice Manual de usuario
Se observa que para un tiempo de foto de 1550 segundos en la tabla TRENES-
ESTADO INICIAL nos encontramos con los cuatro trenes definidos por el usuario
ubicados por tiempo en las estaciones. Por ejemplo el tren 1 salió de la estación 3 en el
tiempo 1560 segundos.
También se ve como se ha rellenado la tabla con las últimas salidas y llegadas a
las estaciones en ese tiempo de foto
92
Apéndice Manual de usuario
Por último lo que genera este botón son tantas hojas como trenes haya definido
el usuario en este caso 4 como se puede observar en la imagen anterior, marcadas por un
círculo rojo.
El formato de estas hojas es el siguiente:
Se puede ver que la hoja seleccionada es la del TREN1, por cada tren me genera
una tabla con las columnas que se observan.
93
Apéndice Manual de usuario
La columna ESTACIÓN tiene tantas filas como estaciones tenga la línea tantas
veces como estaciones quiera simular.
La columna Lant corresponde a llegadas a las estaciones del tren anterior que en
este caso seria el TREN4
La columna Sant corresponde a las salidas de esa estación del tren anterior que
en este caso es el TREN4
U parada y U recorrido son los mandos introducidos por el usuario a los trenes
para hacerlos ir mas deprisa o mas despacio.
ES y EI corresponden a los errores que se producen en cada estación, ES es un
error en el tiempo de salida de la estación y EI es un error de intervalo. (El cálculo de
estos errores se detalla más adelante en la subrutina correspondiente)
S y L son las salidas y llegadas del tren a cada estación
Por último la columna de S teórica que corresponde al horario del tren, es decir
se establecen unos tiempos de salida de cada estación en función de los tiempos de
recorrido y de parada introducidos por el usuario. Estos tiempos son los
correspondientes a una simulación sin retrasos.
Se ve en la imagen como efectivamente el tiempo de salida del TREN1 de la
estación 3 es de 1560 segundos.
El siguiente botón que vamos a analizar es el botón de SIMULACIÓN, este
botón realiza una simulación del movimiento de los trenes por las estaciones y deja las
hojas de cada tren con un aspecto como este:
94
Apéndice Manual de usuario
Se rellenan las columnas de salidas y llegadas de los trenes a las distintas
estaciones, en este caso del TREN1, se observa que al no introducir ningún retraso las
columnas de errores están a cero segundos por seguir todos los trenes los horarios
marcados en principio.
La columna de Sant aparece rellena con datos que corresponden a los tiempos de
salidas del tren anterior, en este caso el TREN4, de cada una de las estaciones
95
Apéndice Manual de usuario
La simulación como se puede ver en la imagen comienza a partir del tiempo de
foto que el sistema tomará como estado inicial.
Se estudiará ahora lo que pasaría si se introdujera un retraso en un tren.
El TREN2 que debería salir de la estación 11 en el tiempo 1530 se le obliga a
salir en el 1545, es decir con un retraso de 15 segundos.
Al simular se obtiene lo siguiente:
96
Apéndice Manual de usuario
Se observa como el TREN2 a partir de la estación 11 donde se mete el retraso
empiezan los errores de 15 segundos que se propagan estación tras estación
El error en la salida (ES) se comprueba que es 15 segundos ya que el tren
debería haber salido en el 1530 y sale en el 1545
97
Apéndice Manual de usuario
El error de intervalo es el tiempo de salida menos la salida del tren anterior
menos el intervalo nominal es decir
EI = 1545-1200-330 = 15.
A continuación se ve ahora lo que ocurre en el resto de los trenes
98
Apéndice Manual de usuario
Se observa en la imagen que el TREN3 que va justo detrás del tren que se ha
retrasado, al llegar a la estación 11 también comienza a retrasarse
ES = 1865 – 1860 = 5 segundos de error de salida
EI = 1865 – 1545 – 330 = -10 segundos de error de intervalo, lo que significa
que el TREN3 reduce en 10 segundos el intervalo con el TREN2
99
Apéndice Manual de usuario
Al TREN4, en cambio ya no le afecta el retraso en su salida pero si disminuye su
tiempo de intervalo respecto al TREN3 en 5 segundos.
ES = 2190 – 2190 = 0 segundos de error de salida
EI = 2190 – 1865 – 330 = -5 segundos de error de intervalo, lo que significa que
el TREN4 reduce en 5 segundos el intervalo con el TREN3
Por último el TREN1 no se entera de los retrasos de los demás trenes en ningún
sentido
100
Apéndice Manual de usuario
Explicación de la otra parte de la aplicación y para ello se muestra la imagen
siguiente:
En esta parte, se explica el proceso del botón llamado SIMULAR PASO A
PASO.
Consiste en desarrollar la simulación por eventos paso a paso, es decir, viendo el
movimiento de los trenes evento a evento.
101
Apéndice Manual de usuario
Realizamos un ejemplo para explicar el proceso más fácilmente
Tras pulsar el botón en cuestión obtenemos lo siguiente:
La primera tabla que aparece sitúa el sistema en el momento actual, indica el
tiempo de simulación que en este caso es 1470, este evento era el primero que estaba en
el momento de la foto.
La siguiente tabla informa del estado de las estaciones, las últimas salidas y
llegadas en el momento inicial coinciden con las calculadas en el momento de la foto.
102
Apéndice Manual de usuario
En la tabla estado de trenes se indican las posiciones actuales de los trenes, por
ejemplo se sabe que el TREN1 ha llegado a la estación 3 en el 1540 y no lleva ningún
retraso.
La última tabla refleja la cola de eventos ordenados por tiempo, por ejemplo el
TREN4 que esta en tiempo de simulación ha ejecutado la salida de la estación 5 en el
1470 y en la cola de eventos vemos como ya se ha generado el siguiente evento del
TREN4 que corresponde a la llegada a la estación 6 en el 1570.
La tabla de mandos de momento no se va a considerar, servirá mas adelante para
frenar o acelerar a los trenes.
103
Apéndice Manual de usuario
Avanzar un poco el tiempo de simulación para ver como estaría el
sistema:
Se ha avanzado el tiempo de simulación hasta 2625 segundos, en ese momento
se acaba de ejecutar el TREN2 que ha salido de la estación 9 y ha generado su llegada a
la estación 10 en el 2725.
104
Apéndice Manual de usuario
Tras este tiempo todos los trenes han pasado por la estación 11 en la cual el
TREN2 se retrasó y ya se ven los retrasos acumulados en cada tren y los retrasos
últimos en llegadas y salidas en cada estación.
Además de todo esto, la aplicación va registrando el las hojas de cada tren sus
movimientos por la línea como se ve en la siguiente imagen
105
Apéndice Manual de usuario
Se ve como a medida que se ejecutan los distintos eventos, estos se van
escribiendo en cada hoja, al igual que la historia de los trenes anteriores y los errores
definidos.
En la hoja principal si nos fijamos en el estado del TREN4 podemos ver como lo
último que sabemos de él es que salió de la estación 3 en 2550 con un retraso de
intervalo de –5 segundos, que corresponde a lo último escrito en la hoja de este tren.
Se utilizará ahora el campo MANDO y ver sus utilidades
Se obliga a recuperar 10 segundos al TREN2
106
Apéndice Manual de usuario
¿Cómo se interpreta ese mando de –10 segundos?
Vemos en la imagen que el primer tren en la cola es el TREN2 que va a ejecutar
su llegada a la estación 10 en el 2725, cuando este tren genere su próximo evento en la
cola le haremos correr 10 segundos con lo que su tiempo de parada en la estación 10
será de 10 segundos en lugar de 20 y saldrá en el 2735; vamos a verlo.
107
Apéndice Manual de usuario
Además se ve como los retrasos en el TREN2 han disminuido en 10 segundos,
esto se debe a que:
ES = 2730 –2735 = 5. Recordamos que los 2730 segundos corresponden al
tiempo de salida marcado por el horario definido en FOTO
EI = 2735 – 2400 – 330 = 5. Recordamos que 2400 es el tiempo en el que el tren
anterior salió de la estación.
A continuación se avanza el tiempo de simulación hasta que todos los trenes
hayan pasado por la estación 10 para ver como les afecta este incremento de velocidad
en el TREN2
108
Apéndice Manual de usuario
Se avanza hasta 3915 segundos
Se ve como el TREN3 que va detrás del TREN2 baja su error de intervalo en 10
segundos pero su error en la salida no se modifica lógicamente, ya que para ello
tendríamos que acelerarle 5 segundos y el TREN4 se queda como estaba ya que su error
de intervalo no se va afectado por este incremento de velocidad en el TREN2.
Por último se acelera 5 segundos más al TREN2
109
Apéndice Manual de usuario
Se observa cómo el TREN2 no tiene retrasos, el TREN3 sigue con su retraso
horario de 5 segundos pero el error de intervalo es de 5 segundos lo que significa que el
TREN2 se aleja en 5 segundos del TREN3 respecto el intervalo.
Una vez visto el funcionamiento del parámetro MANDO vamos a ver ahora el
funcionamiento de la restricción horaria que consiste en lo siguiente:
Para calcular el tiempo de llegada a una estación hacemos el siguiente cálculo
110
Apéndice Manual de usuario
Tiempo llegada = tiempo salida + recorrido + mando
¿Qué pasaría si hago correr mucho a un tren sin ningún tipo de control?
Los trenes se chocarían unos con otros
Para evitar esta situación, se aplica lo siguiente
Si tiempo salida + recorrido + mando – salida anterior < Intervalo mínimo
Tiempo de llegada = salida anterior + Intervalo mínimo
Sino
Tiempo de llegada = tiempo salida + recorrido + mando
Fin si
¿Qué quiere decir esta restricción?
Se compara el tiempo en el que quiere llegar nuestro tren a la estación con el
tiempo en que salió de esa misma estación el tren anterior, si no se cumple el intervalo
mínimo impuesto por el usuario no se aplican los mandos y hay que frenar el tren para
que llegue con un tiempo igual a la salida anterior mas el intervalo mínimo impuesto
Cuando esta situación se de en nuestra aplicación se reflejará en la hoja del tren
afectado poniendo su llegada restringida en color rojo.
111
Apéndice Manual de usuario
Un ejemplo donde ocurra esta situación explicada:
Volviendo al ejemplo inicial en el que se introdujo en el TREN2 un retraso de
15 segundos en la estación 11.
Gracias a la columna de salidas anteriores vemos como el TREN2 sale de la
estación 11 con un retraso de 15 segundos con un tiempo de 1545.
El TREN3 quiere llegar a la estación 11 con un tiempo de:
Tiempo de llegada = tiempo salida estación 10 + tiempo recorrido + mando
112
Apéndice Manual de usuario
Tiempo de llegada = 1740 + 100 + 0 = 1840
Se comprueba que el intervalo entre estos trenes no supere el máximo permitido
1840 – 1545 = 295 segundos, como el intervalo mínimo es de 300 segundos
salta la restricción y el tiempo de llegada será
Tiempo de llegada = salida anterior + intervalo mínimo
Tiempo de llegada = 1545 + 300 = 1845 segundos.
Se ve como esa llegada se marca en rojo para saber q se ha violado la
restricción.
Se explicará a continuación el comportamiento del estado RECORRIDO con un
nuevo ejemplo
Se cambian datos de recorridos y paradas y el intervalo nominal para permitir a
los trenes que se aproximen más. Hacemos la foto y obtenemos lo siguiente:
113
Apéndice Manual de usuario
Se estudia como han variado los datos respecto el ejemplo anterior
Con estos datos y avanzando el reloj de simulación hasta provocar una situación
con RECORRIDO mediante el uso de los mando para acercar a los trenes 2 y 3,
obtenemos lo siguiente:
114
Apéndice Manual de usuario
Mirando en los trenes 3 y 2 en la cola y vemos que el TREN3 quiere ejecutar la
SALIDA de la estación 3, pero el problema es que el TREN2 aún no ha ejecutado su
LLEGADA a la estación 4 lo que significa que no ha generado la salida de la estación
axial q el TREN3 genera su evento en espera del TREN2 RECORRIDO
115
Apéndice Manual de usuario
Otra situación que puede generar un evento RECORRIDO sería tener al TREN3
igual que lo tenemos en la cola y el TREN2 con evento SALIDA de la estación 4 detrás
del TREN3
Veamos el resultado de simular en el pantallazo anterior:
116
Apéndice Manual de usuario
Se comprueba como el TREN3 ha generado su evento RECORRIDO, se va a
situar en la cola con un tiempo inmediatamente superior al tiempo en el que el TREN2
va a salir de la estación 4. Así el TREN3 generará su llegada a la estación 4 en cuanto el
TREN2 ejecute el evento que mantiene al TREN3 en espera
El TREN3 esta situado tras el TREN2 en espera de q ejecute esa salida para
generar la llegada a la estación 4
117
Apéndice Manual de usuario
118
Apéndice Manual de usuario
119