Descargar

Sistema de control de tránsito mediante semaforización inteligente con videocámaras


  1. Resumen
  2. Introducción
  3. Proceso de control inteligente
  4. Diseño del controlador lógico difuso

Resumen

Todos los días observamos en Lima como crece el caos vehicular, convirtiéndola en una cuidad insoportable y estresante, esto principalmente se debe al mal diseño de las calles, a la poca cultura vial y sobre todo a un sistema de semaforización ineficiente; todos estos factores causan caos y congestión en la ciudad.

Para solucionar un poco este tránsito caótico en esta ciudad, se plantea la implementación de un sistema eficiente de control vehicular, comenzando con una semaforización inteligente que permita el paso según el flujo vehicular de la zona por medio de sensores de medición de flujo, además de la instalación de cámaras que permitan detectar factores que influyen un mayor transito como accidentes o autos estacionados en zonas rígidas.

Esto sería un paso para solucionar un poco el caos vehicular, lo que también se tiene que hacer es concientizar al ciudadano para que la utilización de los vehículos sea solo cuando es necesario para así evitar tanto flujo vehicular.

Introducción

El sistema de transporte público masivo de la ciudad y el transporte público y privado en general sufren grandes atrasos en sus tiempos de recorrido debido a la movilidad de la ciudad que es traumática. Esto se debe a un atraso de más de cincuenta años en la malla vehicular que causa diversos problemas que afectan el tráfico. Uno de ellos es el funcionamiento del sistema de semaforización, el cual es dinámico porque no se adapta de manera satisfactoria a las necesidades de la población y no tiene en cuenta el alto volumen de vehículos. Como una propuesta para disminuir los tiempos, se planteó implementar un sistema que implique el desarrollo de inteligencia artificial en el sistema de semaforización. De manera que se creó un algoritmo inteligente capaz de controlar la duración del tiempo de cada ciclo (rojo, amarillo y verde) de los semáforos en forma autónoma, controlando así el flujo vehicular y dando prioridad a las vías con mayor congestión. Dicho algoritmo aprende continuamente de los cambios efectuados en los ciclos de los semáforos respecto al tráfico y de esta manera busca obtener los tiempos óptimos para cada uno.El prototipo creado cuenta con un simulador de un sistema de semaforización y un sistema de tráfico para poder experimentar y determinar en qué medida mejora la movilidad al implementar algoritmos genéticos en el sistema de semaforización. Este sistema inteligente captura la longitud de cola vehicular en cada semáforo, y da prioridad a las intersecciones con mayor afluencia vehicular. Luego selecciona los ciclos más óptimos adaptados al tráfico, con el fin de realizar nuevas generaciones a partir del proceso de aprendizaje de los algoritmos genéticos. Al momento de finalizar el análisis de ciclos, son realizadas actualizaciones en cada semáforo para volver a ejecutar el proceso.

Además permite el monitoreo a partir de videocámaras que puedan identificar accidentes o infracciones de transito pudiendo así planear soluciones inmediatas como auxilios, desvíos, etc.

  • Objetivos

Objetivo general

El objetivo general es lograr hacer más fluido y eficiente el tránsito en las principales intersecciones de la ciudad.

Objetivos específicos

  • Identificar y controlar infracciones de tránsito que dificulten la fluidez del mismo.

  • Identificar posibles averías de los autos para actuar rápidamente en el remolque.

  • Evitar que la Policía de tránsito se encargue de la conducción de tránsito.

  • Permitir olas verdes cuando el tránsito resulta abundante.

  • Permitir desvíos cuando el tránsito sea muy caótico.

  • Definición de Objetivos

Objetivo principal:

Fluidez vehicular: Facilidad de tránsito de vehículos en las calles.

Transporte terrestre: El transporte terrestre es el transporte que se realiza sobre la superficie terrestre. La gran mayoría de transportes terrestres se realizan sobre ruedas. Es el transporte primitivo del ser humano, aparte del nado en agua. Posteriormente, los humanos construyeron vehículos para navegar por agua y aire, lo cual llevó al desarrollo del transporte acuático y transporte aéreo respectivamente.

Objetivos específicos

Infracciones de transito: Una infracción de tráfico es un incumplimiento de la normativa de circulación de vehículos que acarrea una sanción.

Averías de autos: Por avería se entiende cualquier inconveniente (rotura parcial o total de un componente del automóvil) que tenga como consecuencia el funcionamiento anómalo de alguna parte o dispositivo del vehículo o, incluso, que impida su utilización.

Como sea que la avería puede presentarse en cualquier parte del vehículo, a veces no se advierte inmediatamente y llega a originar otras avenas, con daños mayores.Una avería no siempre proviene de la misma causa; según sea ésta, variarán la naturaleza y el coste de su reparación.

Además, a un efecto determinado pueden corresponder averías distintas.La principal dificultad para el mecánico consiste precisamente en la determinación correcta de la avería. Además hay que tener presente que en general para cada modelo de automóvil al fabricante y los establecimientos de su red de asistencia les basta con la apreciación de un síntoma para reconocer la causa del defecto y el tipo de intervención que se ha de efectuar, puesto que, contrariamente a lo que muchos creen, una avería nunca se presenta esporádicamente, sino de modo más bien regular, e incluso con frecuencia en el caso de que sea debida a un error de proyecto o a defectos de los materiales.

Olas verdes: Una ola verde u onda verde es un fenómeno inducido intencionalmente, en el cual una serie de semáforos se coordinan para permitir el flujo continuo del tráfico sobre varias intersecciones en una misma dirección.

Cualquier vehículo que se mueva a lo largo de la ola verde, aproximadamente a una velocidad establecida por los controladores de tráfico, verá una cascada progresiva de luces verdes, y no tendrá que detenerse en las intersecciones. Esto permite mayores volúmenes de trafico y reduce el ruido y consumo de energía debido a que se requiere menor uso de los frenos y del acelerador. En la práctica, solo un porcentaje de los autos puede usar la ola verde antes de que la banda de tiempo concluya para dar vía a otros flujos de tráfico.

La coordinación de las señales se puede hacer dinámicamente, usando sensores para monitorear los flujos de trafico. De otra manera, se puede hacer estadísticamente mediante el uso de temporizadores. Bajo ciertas circunstancias, las olas verdes pueden intercalarse con las de tráficos en otras direcciones, pero esto aumenta la complejidad y reduce la usabilidad, por lo tanto sólo las vías que llevan los volúmenes más importantes de trafico se les da este trato preferencial.

Una de las desventajas de la ola verde es que los motoristas cuando los motoristas más lentos que el promedio llegan al semáforo y encuentran una luz roja, han acumulado una cola de vehículos detrás de ellos, anulando el propósito de la ola verde. Los motoristas más veloces también afectan la ola, porque en cierto momento ellos van a encontrar una luz roja y tendrán que esperar a que la siguiente ola llegue.

Desviación: Camino provisional que sustituye a una parte de otro principal que está paralizada siendo así una alternativa para el transito.

Cámara: El punto de generación de vídeo de cualquier sistema de CCTV es la cámara, existen cámaras que incluyen un micrófono para poder tener grabación de audio además de la grabación de vídeo, así como diversos tipos de cámara, cada una para diferentes aplicaciones y con diferentes especificaciones y características,

Proceso de control inteligente

Se describe a continuación el proceso que controla la duración del tiempo del ciclo (rojo, amarillo y verde) de los semáforos.Capturar longitud de cola vehicular

Se captura la longitud de cola vehicular, es decir, la cantidad de vehículos que tiene un semáforo en cola. Esto se realiza por medio de un sensor ubicado en cada semáforo. Actualmente se han implementado en Bogotá dos tipos de sensores: uno de presión, que es ubicado debajo del asfalto, y uno de cámara, que es ubicado en la parte superior del semáforo (figura 1). Se propone utilizar en una futura implementación el sensor de cámara, no solo por ser el más económico, sino también porque tiene un rango de visión más amplio. El prototipo retorna por cada semáforo la cantidad real de vehículos que se encuentran en la carretera, de manera parecida a como si contara con un sensor real. Luego de recorrer todas las intersecciones y de capturar la cantidad de vehículos por cada semáforo, se organizan de mayor a menor, siendo las intersecciones prioritarias las que mayor cantidad de vehículos tengan.De esta manera, se crea la primera generación de tiempos de los ciclos verde y rojo, y el tiempo de ciclo amarillo se ha determinado como una constante con un valor de un segundo. Esta primera generación creada se realiza a partir de la demanda de vehículos; se establecen unos límites para esta evitar que un punto del sistema sea sobrecargado.

Función de adaptaciónCon los tiempos de los ciclos que se crearon en la primera generación se calcula el impacto en el sistema, es decir, se evalúa cuáles de los tiempos generados se adaptaron al sistema de tráfico de manera positiva, cuáles ayudaron a minimizar el tráfico y cuáles contaron con el menor tiempo del ciclo. Esto se hace comparando el flujo vehicular y los tiempos de ciclo, y el resultado es guardado para las siguientes generaciones de ese semáforo.

edu.red

Fig. a. Sensor semafórico

Aprendizaje de máquinaLos algoritmos genéticos proveen un método de aprendizaje que simula un proceso evolutivo que es sometido a cruces y a la mutación de los individuos –en este caso los tiempos de ciclo rojo y verde de los semáforos—, además de una selección de los tiempos que mejor se adaptan al sistema de tráfico. Se toman las dos mejores opciones adaptadas de un semáforo y son cruzadas, de manera que el tiempo resultante del cruce, a su vez, es mutado; luego es actualizado en el sistema de semaforización y posteriormente es pasado por la función de adaptación para determinar si se acomoda positivamente en el sistema.Los métodos de selección y adaptación para cada tiempo de ciclo aplicado en un semáforo determinan si continúa en el algoritmo y es cruzado o si es desechado.De esta forma se crean nuevos individuos (tiempos de ciclo) a partir de los operadores genéticos dentro de una población y por eso el cruce y la mutación son tan importantes en el algoritmo.El cruce toma los dos individuos que mejor se adaptaron y los cruza mediante el intercambio de material genético, en este caso los bits de la cantidad de tiempo de ciclo para cada semáforo. La mutación voltea bits aleatorios dentro de la población con una pequeña probabilidad, así se genera diversidad en la población, y el sistema aprende de los tiempos de ciclo que son mejores y busca constantemente un resultado óptimo.Se utilizó el estándar de un punto de cruce en cadenas de longitud fija para realizar el cruce, el cual está dado de manera aleatoria en la cadena de bits. Por ejemplo, cada tiempo de ciclo está representado con una cadena de ocho bits que corresponden a su material genético, de esta manera en el cruce se toma una parte de este material de uno de los padres, y otra parte del material del otro padre. Su combinación da el resultante de una nueva cadena de ocho bits; luego, en la mutación, es tomado un bit aleatorio denominado gen y este es mutado, cambiando el bit a su inverso.

edu.red

Fig. b. Algoritmos Genéticos

Ola verdeSi en determinada iteración el algoritmo evalúa que el sistema se encuentra en una carga de vehículos alta, es decir, en un flujo vehicular alto de tráfico o congestión alta, es ejecutado un método denominado ola verde, que consiste en dar vía completa a los semáforos en verde mientras que se da espera a las vías que lo cruzan. Se determinan los tiempos de ciclo con niveles de desfase adecuados para que por lo menos la mitad de los vehículos que se encuentran en el primer semáforo puedan avanzar lo suficiente para reducir el tráfico. Las pruebas que se realizaron con el algoritmo en el simulador de tráfico determinaron que cuando el sistema se encuentra en un estado de alto tráfico y es utilizada la ola verde para minimizarlo, en promedio el 36 % de vehículos es liberado del sistema de tráfico. En la ola verde los tiempos de ciclo rojo y verde cuentan con un tiempo adicional debido al desfase, es decir, al tiempo de recorrido en que gasta un vehículo en ir de un semáforo a otro. Este tiempo está dado por la función f (5, 10, 15, 20). El tiempo de desfase depende de la distancia entre los semáforos, aunque en el prototipo la distancia entre un semáforo y otro es constante en la troncal.

Diagrama del proceso de negocio del sistema inteligenteEl proceso de negocio describe todo el sistema: la recolección de la información, la implementación de los algoritmos genéticos, la evaluación en el sistema, el recorrido de todos los semáforos y, de nuevo, la implementación de este proceso.

edu.red

edu.red

Fig. c. Desfase en ola verde

En necesario tener en cuenta que este proceso se llevará a cabo para cada semáforo y depende del servidor desde donde sea ejecutado que el tiempo de respuesta sea mínimo, ya que la cantidad de semáforos en la vida real exige un equipo con buenas características físicas para poder soportar este tipo de operaciones que generan un alto consumo de hardware.Para solucionar esto es recomendable realizar el diseño y la implementación de forma paralela, ya que de esta manera el consumo de la máquina es mucho menor.

El proceso de negocio pasa por varias etapas: unas que van por la capa de presentación del simulador y luego por la capa de negocio, donde se encuentra el algoritmo inteligente. La mayoría de los procesos que se pueden ver ya fueron descritos anteriormente en el artículo, de manera que, resumiendo, el proceso comienza en la recolección de información de la cantidad de vehículos por cada semáforo; luego organiza estos tiempos de manera que los semáforos que tengan mayor congestión se encuentren primero; si ya se crearon las primeras generaciones de los tiempos por demanda entonces revisa la función de adaptación para cada tiempo y así determina el impacto en el sistema; luego de cruzar y mutar los tiempos, y de aprender de aquellos que mejor se adaptaron, toma los resultantes y los actualiza en el simulador; y, por último, comienza a iterar de nuevo el proceso de manera que siempre está en busca del resultado óptimo. La mayoría de los algoritmos genéticos cuenta con una función de parada, es decir, donde el algoritmo determina que debe dejar de iterar. Para este problema de cambio constante no se puede determinar un estado de parada; por ello el proceso de negocio y el algoritmo genético no cuentan con esta condición.

edu.red

Fig. d. diagrama de bloques

Simulador de tráficoComo desarrollo final de este proyecto se realizó un simulador de tráfico para probar que el algoritmo inteligente que controlará el sistema de semaforización cumple con su cometido de minimizar los tiempos de recorrido. Así, se deja un marco de estudio en el que se puede pensar más adelante para implementar en la ciudad y con esto disfrutar de los resultados de esta investigación o de futuras investigaciones que pueden tomar como punto de partida la presente.El simulador construido se hizo a partir del simulador de Martin Treiber (Germ, Kesting, Budden y Treiber, 2000), el cual utiliza un modelo inteligente de conducción (idm, Inteligent- Driver-Model). Este modelo cuenta con un sistema inteligente que implementa autómatas celulares para cada vehículo que actúa como un ente independiente y, por lo tanto, decide su aceleración o desaceleración dependiendo de los factores del ambiente que lo rodean, que es muy parecido al ambiente real. Este modelo es explicado en detalle más adelante.Interfaz de usuarioSe muestra el simulador que detalla el mapa de las calles y los semáforos de las intersecciones. Se puede observar que cada semáforo tiene un id único que lo identifica y lo ubica en el mapa de semáforos.La interfaz del usuario se puede ver que las calles y la troncal están diferenciadas por sus nombres, que a su vez están conformados por el nombre de la calle y el sentido de orientación para que de esta manera sea fácil ubicarse en el plano real de la ciudad de Lima.

edu.red

Fig. e. esquema inicial de la interfaz del sistema inteligente de semaforización

Modelo de tráfico longitudinal: el IDM

El IDM es un "auto siguiendo el modelo" (Treiber, 2011); es decir, el estado del tráfico en un momento dado se caracteriza por las posiciones, las velocidades y el índice de carril de los vehículos. La decisión de cualquier conductor para acelerar o frenar depende solo de su propia velocidad, de la del vehículo del frente y de la del inmediatamente atrás de él. Las decisiones de cambio de carril, sin embargo, dependen de todos los vehículos vecinos. En concreto, la aceleración dv/dt de un conductor determinado depende de su velocidad v, s en la distancia con el vehículo delantero, y de la velocidad v Delta diferencia (positiva al acercarse),

edu.red

El término de frenado se basa en una comparación entre la "distancia deseada dinámica" y la real diferencia con el vehículo precedente. Si la brecha real es aproximadamente igual a la, entonces la desaceleración rompe tan esencialmente que compensa la parte de aceleración en vacío, así que la aceleración resultante es casi cero. Esto significa que, corresponde a la brecha al seguir a otros vehículos en constante flujo de tráfico. Además, aumenta dinámicamente cuando se aproxima a los vehículos más rápidos y disminuye cuando el vehículo delantero es más lento. Como consecuencia de ello la desaceleración del impulso se incrementa con la disminución de la distancia al vehículo delantero (se quiere mantener una cierta "distancia de seguridad"), se incrementa la velocidad propia (que aumenta la distancia de seguridad), y aumenta la diferencia de velocidad en el vehículo delantero (cuándo se aproxima el vehículo frente a una tasa muy alta puede ocurrir una situación peligrosa)

Diseño del controlador lógico difuso

Para el controlador lógico difuso que se utilizó en el proyecto, se decidió la utilización de dos tipos de señales; a saber se utilizó la cantidad de carros existentes en cada una de las intersecciones en las cuales se trabajo, lo cual está dado en tiempo real por el número de sensores de presencia activados. A su vez, para una mejor respuesta en estado transitorio del controlador se decidió el uso de la derivada de la cantidad de carros como una segunda señal de entrada, esta señal se mide gracias a la diferencia de la cantidad de carros acumulados en las intersecciones entre mediciones. A su vez se debe tomar en cuenta en este momento que el tipo de controlador que se plantea en este apartado es un controlador en tiempo discreto, ya que las mediciones no se hacen de forma continua, sino cuando el semáforo decide el tiempo de activación del mismo; es decir se mide la cantidad de vehículos acumulados en la intersección a lo largo de un tiempo determinado en el que el semáforo ha impedido el paso de los vehículos, esto es que el semáforo se ha encontrado en color rojo.Los valores medidos por los sensores son leídos una vez por ciclo por el controlador de cada una de las intersecciones y el controlador toma la decisión del tiempo de encendido del semáforo de acuerdo con ello. A su vez, puesto que el mecanismo de control lógico difuso que se plantea en la intersección es un mecanismo adaptivo, se tiene que los centros de las funciones de membresía se actualizan una vez en cada uno de los ciclos.Esto se muestra en la parte superior del controlador, el cual se describe con mayor detalle en las secciones siguientes.

edu.red

Fig. 1.- Tabla difusa que relaciona las variables en entrada con las funciones de membresía de salida en el sistema de control

De acuerdo a esto la propuesta de controlador difuso que se plantea es una con once valores de entrada en cada una de las dos variables propuestas; a partir de ello, la lógica empleada se muestra en la tabla de la figura 1; aquí puede verse como se relacionan las funciones de membresía de entrada con las funciones de membresía de salida. Debe decirse que no se muestran las funciones de membresía de salida ya que el controlador difuso es del tipo adaptivo, es decir los centros de las funciones de membresía cambian con el transcurso del programa. Para la variable de error de número de carros se utilizo la función de membresía de la figura 2 y para el error las funciones de la figura 3 En estos casos las unidades de los centros son metros, en general podemos tener una estimación de que cada uno de los vehículos mide aproximadamente 5 metros, de donde se puede sacar el error en número de vehículos que están estacionados en la intersección.

edu.red

Fig. 2.- Funciones de membresía entrada salida para el error de planta

edu.red

Fig. 3.- Funciones de membresía entrada salida para la derivada del error de planta

Los valores finales de las funciones de membresía son los siguientes:

edu.red

Fig. 4.- Tabla difusa de valores para las funciones de membresía del modelo

Debe tenerse en cuenta que puesto que el control es de tipo adaptivo los centros de las funciones de membresía de salida varían de acuerdo a lo que ocurre con el controlador, por ello no se muestran gráficas de dichas funciones sino que se limita a presentar los centros obtenidos luego de las simulaciones.Con ello se puede tener una idea de los tiempos máximos y mínimos del controlador.

Modelado del controlador difuso usando MATLAB.El controlador anterior se modelo en MATLAB para una intersección, en la cual existe un solo cruce. De forma general el controlador que se presento tiene una planta a cada lado, la cual representa un set de semáforos, cuya salida es la cantidad de carros que han pasado en un intervalo determinado durante el cual este se encuentra encendido, es decir en color verde. De aquí, se tiene que la salida del controlador difuso no es sino un pulso de activación, es decir un pulso binario en donde 1 significa que el semáforo de la intersección está en color verde, mientras que un 0 significa que el semáforo está en color rojo. Para que esta salida pueda darse de forma adecuada, el controlador se encarga de hacer los cálculos de acuerdo al número de vehículo que han sido detectado en la intersección en la cual este trabaja y a partir de los centros de las funciones de membresía que se actualizan en cada uno de los momentos en los que se realizan los cálculos.

En la figura 5 se muestra el esquema general del archivo de simulación utilizado. Para este caso, la planta, que puede identificarse por medio del nombre semáforos, al igual que los controladores difusos y sus mecanismos de adaptación son bloques programados como funciones en c, dentro de la interface para MATLAB simulink.

edu.red

Fig. 5.- Implementación del modelo difuso utilizando la herramienta Simulink

Debe decirse que en este modelo, cada una de los controladores se comunica entre sí por medio de una señal de sincronización y una señal en la que se envía el tiempo de salida del controlador anterior. Este tiempo de salida tiene una doble función, indica al controlador de la otra parte de la intersección que el semáforo debe alagarse, es decir que el color rojo debe ser encendido, y a su vez da una idea de la cantidad de tráfico en la otra parte de la intersección. Hay que tomar en cuenta que durante este proceso el tiempo indicado debe ser comparado con las funciones de membresía del otro controlador, ya que por ser funciones adaptivas, los centros de los cuales se dispone no necesariamente son los mismos y puede usarse un proceso de defusificación por medio de ellos.Con respecto de las memoria utilizadas para la simulación, debe decirse que estas almacenan datos y condiciones iniciales en los estados del programa de simulación, sin embargo debe tomarse en cuenta que este tipo de elementos producen un cierto retraso en toda la red y el proceso, los cuales se trata de eliminar mediando software y mediante la programación de las plantas en cada una de las dos intersecciones.A continuación se presenta el código de la planta en lenguaje c. Debe decirse que la planta se programa por medio de las ecuaciones de movimiento rectilíneo uniformemente acelerado. Con respecto de la aceleración utilizada en este caso se tomo.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

#define S_FUNCTION_NAME semaforos

#include "simstruc.h"

#include

#define XINIT ssGetArg(S,0)

#define PARAM ssGetArg(S,1)

#define MAX (A,B) ((A) > (B) ? (A) : (B))

/*

* mdlInitializeSizes – initialize the sizes array

*/

static void mdlInitializeSizes(SimStruct *S)

{

ssSetNumContStates(S, 0);

SsSetNumDiscStates(S, 3);

ssSetNumInputs (S, 1);

ssSetNumOutputs (S, 2);

ssSetDirectFeedThrough(S, 1);

ssSetNumSampleTimes(S, 1);

ssSetNumSFcnParams( S, 2);

ssSetNumRWork(S, 0);

ssSetNumIWork(S, 0);

ssSetNumPWork(S, 0)

}

static void mdlInitializeSampleTimes(SimStruct *S)

{

//ssSetSampleTime(S, 0, CONTINUOUS_SAMPLE_TIME);

ssSetSampleTime(S, 0, 0.05);

ssSetOffsetTime(S, 0, 0.0);

}

static void mdlInitializeConditions(double *x0, SimStruct *S)

{

int i;

for (i = 0; i < 3; i++) {

x0[i] = mxGetPr(XINIT)[i];

}

}

static void mdlOutputs(double *y, double *x, double *u, SimStruct *S, int tid)

{

//Output 0 el espacio

//Output 1 tiempo recorrido

double a;

a = mxGetPr(PARAM)[0];

x[1] = x[1]+0.05*a;

if (x[1]>14)

x[1]=14;

x[0] = x[0]+x[1]*0.05;

y[0] = x[0];

if (u[0]==0)

{

//x[0] = 0;

x[1] = 0;

x[2] = 0;

}else

x[2]=x[2]+0.05;

y[1]=x[2];

}

/*

* mdlUpdate – perform action at major integration time step

*/

static void mdlUpdate(double *x, double *u, SimStruct *S, int tid)

{

}

/*

* mdlDerivatives – compute the derivatives

*/

static void mdlDerivatives(double *dx, double *x, double *u, SimStruct *S, int tid)

{

}

static void mdlTerminate(SimStruct *S)

{

}

#ifdef MATLAB_MEX_FILE

#include "simulink.c" #else

#include "cg_sfun.h"

#endif

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Con respecto del controlador difuso, este implementa varias salidas como las que se ha mencionado antes. El controlador envía una información que contiene el tiempo de salida del mismo para que el segundo semáforos se sincronice, esto se guarda en los estados x [12] y el estado x [13] del controlador guarda el tiempo que ha transcurrido desde que el controlador ha asumido un nuevo estado, es decir que se ha enviado una señal de encendido o de apagado a la segunda planta. El estado x[15] del controlador representa el estado del mismo, en donde 1 es encendido y 0 apagado; debe decirse que un controlador está apagado cuando el semáforo se encuentra en color rojo. El estado x[11] almacena la salida del controlador, es decir el tiempo que se ha decidido mantener los semáforos encendidos; por último el estado x[16] indica si el controlador debe hacer un nuevo cálculo o no, es decir si el controlador ha entrado en la parte inicial del ciclo; debe decirse que por programación se ha decidido que el controlador únicamente decida a cerca del tiempo que permanece encendido al principio de cada ciclo, para lo cual este utiliza la información que se obtiene en a cerca de la cantidad de vehículos.La parte principal del código anterior se detalla a continuación:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

static void mdlOutputs(double *y, double *x, double *u, SimStruct *S, int tid)

{

double dom1[11], dom2[11];

double widths[3], centro1[11], centro2[11], centro_out[11];

double outdom, area, Atot = 0.0, WAtot = 0.0;

nt pos[2];

int i, j, out_index;

int cmuestreo;

int MAD[11][11]={

{-5,-5,-5,-5,-5,-5,-4,-3,-2,-1,0},

{-5,-5,-5,-5,-5,-4,-3,-2,-1,0,1},

{-5,-5,-5,-5,-4,-3,-2,-1,0,1,2},

{-5,-5,-5,-4,-3,-2,-1,0,1,2,3},

{-5,-5,-4,-3,-2,-1,0,1,2,3,4},

{-5,-4,-3,-2,-1,0,1,2,3,4,5},

{-4,-3,-2,-1,0,1,2,3,4,5,5},

{-3,-2,-1,0,1,2,3,4,5,5,5},

{-2,-1,0,1,2,3,4,5,5,5,5},

{-1,0,1,2,3,4,5,5,5,5,5},

{0,1,2,3,4,5,5,5,5,5,5}

};

//u[3] es el tiempo del otro controlador

cmuestreo = 18;

if(x[15]==1)

{

if (x[16]==1)

{

/* Se asignan los anchos a las MF de entrada y salida */

for (i=0;i<3;i++)

widths[i]=mxGetPr(MF_WIDTH)[i];

/* Se asignan los centros de las MF de entrada y salida */

for (i=0; i<11; i++) {

centro1[i] = (-1 + i*widths[0]);

centro2[i] = (-1 + i*widths[1]);

centro_out[i] = x[i];

}

/* Fusificacion de la primera variable*/

dom1[0] = leftall(u[1], widths[0],centro1[0]);

for (i=1; i<10; i++)

dom1[i] = triangle(u[1], widths[0],centro1[i]);

dom1[10] = rightall(u[1], widths[0],centro1[10]);

/* Fusificacion de la segunda variable variable*/

dom2[0] = leftall(u[2], widths[1], centro2[0]);

for (i=1; i<10; i++)

dom2[i] = triangle(u[2], widths[1], centro2[i]);

dom2[10] = rightall(u[2], widths[1], centro2[10]);

for(i=0; i<11; i++) {

for(j=0; j<11; j++) {

if ( (dom1[i] != 0 ) && (dom2[j] != 0) )

{

outdom = 0;

out_index = MAD[i][j];

out_index += 5;

// Mover indices hacia la derecha para

comenzar desde el indice 0 hasta 10

outdom = MIN((dom1[i]), (dom2[j]));

// Determinar el valor de verdad de

la premisa

area = 2*widths[2]*(outdom – (outdom*outdom)/2);

Atot += area;

WAtot += area*centro_out[out_index];

}

}

}

y[12] = (WAtot/Atot)-(0.05+0.05*18*x[18]); //Salida del tiempo dado por el

controlador

x[18]+=1;

x[12] = 0;

x[13] = y[12]; //Realimentacion del tiempo

x[14] = 1; //x[14] es el update 1 significa que se debe hacer update

//x[15]= 0;

x[16]=0;

y[0] = 1;

for(i=1;i=x[13]) //Cambio de tiempo#########

{

x[15]=0;

x[16]=1;

x[12]=0;

//Reset de la activacion del controlador

}

//x[13]=x[13]/cmuestreo; //***

y[0] = 1;

for(i=1;i= u[3]) //Cambio de tiempo

{

x[12]=0;

//Set de la activacion del controlador

x[15]=1;

}

else

{

x[12]+=(0.05/cmuestreo);

y[12]=x[13];

}

//u[3]=u[3]/10; //***

y[0] = 0;

for(i=1;i

堋ok Khiang Tan, Marzuki Khalid and Rubiyah Yusof. "Intelligent traffic lights control by fuzzy logic" 堐edraza Martínez Luis Fernando. "Modelo de control de tráfico vehicular"

堦quot;Manual del sistema de automatización S7-200 Siemens"堦quot;SEDCO TC30 Ultrasonic Sensor" 堓ensores de Alarma 堓ensor Capacitivo. http://www.tme.eu/es/details/cm30-25npp kc1/sensores-de-volumen/sick/

堦quot;Sensores de Espiras Magnéticas"

堦quot;SICK sensor intelligence"

 

 

 

Autor:

Gerard Moisés García Baca.

Lima, 21 de Diciembre del 2013

edu.red

Universidad Nacional Tecnológica del Cono Sur de Lima