1. SIMULACIÓN DE SISTEMAS DINÁMICOS
Jorge Eduardo Ortiz Triviño
Profesor Asociado
Departamento de Ingeniería de Sistemas e Industrial
Universidad Nacional de Colombia
[email protected]
1.1 SIMULACIÓN DE EVENTOS DISCRETOS
Un esquema general para abordar cualquier problema de simulación se puede esquematizar
implementando el siguiente conjunto de algoritmos que parten de la idea de eventos
discretos. Un evento es un acontecimiento que ocurre en algún instante en el tiempo (de
simulación) y que cambia el estado del sistema. La Figura 1—1 representa esa visión.
e1
e0
e2
e 3 e4
Tiempo
Figura 1—1: Relación entre tiempo y eventos.
El primer algoritmo importante es el de inicialización, cuya estructura se muestra en el
Algoritmo 1—1. Su propósito es colocar los niveles iniciales de todo el conjunto de
variables que participan en la simulación.
PROCEDIMIENTO INICIALIZACIÓN Argumentos
INICIO
T ValoresInicialesTiempoEspacio;
X ValoresInicialesEstudioSistema;
ValoresInicialesCaracteristicasSistema;
ValoresInicialesParametrosSistema;
L ValoresInicialesListaEventos; // Se emplea función percentil
FIN _ PROCEDIMIENTO _ INICIALIZACIÓN
Algoritmo 1—1: Procedimiento de inicialización.
1
Otra función importante dentro del esquema general del simulador lo constituye el manejo
del tiempo espacio. En un sentido general es un procedimiento cuya finalidad es manejar el
reloj de la simulación. Su estructura lógica se muestra en el Algoritmo 1—2.
FUNCION ManejoTiempoEspacio Argumentos
INICIO
k * k L k min L
// Próximo evento
T L k * ; // Actualizar el Tiempo Espacio : " Reloj "
RETORNAR(k *);
FIN _ FUNCION _ ManejoTiempoEspacio
Algoritmo 1—2: Función para manejar el tiempo y el espacio del simulador.
De forma similar, por cada tipo de evento que presente el sistema a simular, debe incluirse
una función que se encargue de actualizar adecuadamente el conjunto de variables de
estado y de características del sistema. Esa labor la desarrolla el Algoritmo 1—3.
FUNCIÓN EVENTO _ i Argumentos
INICIO
X ActualizarEstudioSistema;
ActualizarCalculoCaracteristicas;
L ActualizarListaEventos; // Usar Funciones Percentiles
FIN _ FUNCIÓN _ EVENTO _ i
Algoritmo 1—3: Estructura general del evento i.
La aplicación práctica del teorema fundamental de la simulación, presentado en la sección
anterior se lleva a cabo en el Algoritmo 1—4.
FUNCIÓN PercentilContinuaGeneral ParámetrosPoblacionales
INICIO
u Aleatorio(•);
x Fx1 u ;
RETORNAR( x);
FIN _ FUNCIÓN _ PercentilContinuaGeneral
Algoritmo 1—4: Implementación de una función percentil.
2
Finalmente se debe ejecutar un procedimiento que muestre los reportes de las estadísticas
finales que muestre los resultados de la simulación. Esta tarea la realiza el Algoritmo 1—5.
PROCEDIMIENTO GeneradorReporte Argumentos
INICIO
CalculoFinalDeCaracteristicas;
ESCRIBIR ;
FIN _ PROCEDIMIENTO _ GeneradorReporte
Algoritmo 1—5: Procedimiento de reporte de la simulación.
El
Algoritmo 1—6 tiene la misión de dirigir el llamado de todas las funciones y
procedimientos descritas anteriormente. Esa ejecución debe hacerse de manera ordenada y
sistemática y a su debido momento. Esa es la labor de este procedimiento principal, que se
describe en el Algoritmo 1—6.
FUNCION SimuladorPrincipal Argumentos
INICIO
CodError 0;
Inicializacion Argumentos
MIENTRAS NohayaCondicionTerminacion, , CodError 0 HACER
INICIO
i ManejoTiempoEspacio Argumentos ;
SELECCIONAR i DE
INICIO
CASO 1: Evento _1 Argumentos ;
CASO 2 : Evento _ 2 Argumentos ;
CASO i : Evento _ i Argumentos ;
CASO m : Evento _ m Argumentos ;
FIN _ SELECCIONAR
FIN _ MIENTRAS
GeneradorReporte Argumentos ;
FIN _ SimuladorPrincipal
Algoritmo 1—6: Estructura general de un simulador para sistemas dinámicos.
3