miércoles, 21 de noviembre de 2012

Estabilidad de los sistemas lineales

P6.14. Un sitema tiene la función de transferencia


(a) Determínese si el sistema es estable.
(b) Determínese las raíces de la ecuación característica.
(c) Dibújese la respuesta del sistema para una entrada de escalón unitario.

(a) Determínese si el sistema es estable.


Vemos que la parte real de los polos son negativas y es por eso que el sistema es estable.

(b) Determínese las raíces de la ecuación características.



Y Obtenermos el dibujo con las raíces del sistema, las raíces están en (-2.33768,3.60797i),(-2.33768,-3.60797i) y (-0.32464,0.00000i)


(c) Dibújese la respuesta del sistema para una entrada de escalón unitario.



Y se obtiene la gráfica del sistema con la entrada de escalón unitario:


Referencias

Sistemas de control moderno, 10a edición, Richard C. Dorf, Robert H. Bishop, PEARSON.

martes, 20 de noviembre de 2012

Reporte Automatización

El reporte se encuentra en el blog de Roberto Martínez

Reporte de contribución Redes Neuronales

Proyecto: Speaker Recognition System

El proyecto consiste en hacer una red neuronal que sea capaz de reconocer al locutor, y así poder validar que entre al sistema o no. Es decir con solo escuchar la voz de una persona es posible decir si es la persona indicada o no.

Mi contribución se divide en 2 partes, primero continuar con el tratamiento del audio y mejorar los cálculos ya hechos, para poder alimentar la neurona, que consistió en codificar en python formulas matemáticas y trabajo de investigación, segundo la realización de la interfaz para que el usuario pueda acceder al sistema.

Repositorio
Otro link


Entradas de datos:

Se terminó con el tratamiento de la señal que se había dado ya en la primera parte, estos fueron los pasos definitivos y correctos que seguí y que utilizamos para la entrada de la red neuronal.

La Investigación y Codificación del tratamiento de las señales, para poder dar las entradas a la red neuronal.

Extracción de Características

Es el proceso en el que se extrae la información de la señal para poder representar al locutor mediante un modelo propio.
Para representar la señal de la voz se usará el coeficiente MFCC (Mel Frequency Cepstrum Coefficients).
Los MFCC se pueden calcular trabajando en el dominio de la frecuencia.



Tramado y Enventanada: Estos dos pasos tienen como meta disminuir la distorsión, la función de wavfile.read nos da una lista de la señal ya aplicado el tramado y enventanado.

FFT: Se hace la transformada rápida de Fourier, que convierte cada trama de N muestras del dominio temporal al dominio de la frecuencia. El resultado de este paso
se conoce como el espectro de la señal.

Transformación a escala Mel: La percepción humana de las frecuencias no sigue una escala lineal. Por esto se debe hacer un escalado de las frecuencias en Hz a una escala subjetiva conocida como la escala Mel. Se da mayor importancia a la información contenida en las bajas frecuencias en consonancia con el comportamiento del oído humano.

Cepstrum: Se convierte el espectro Log Mel al tiempo. Para esto primero se calcula el logaritmo de SK. Luego como los coeficientes Mel (y su logaritmo) son números reales, se los puede convertir al dominio temporal usando la Transformada Discreta del Coseno (DCT). Este resultado es el que llamamos MFCC.

 Código:




La otra parte de mi contribución es la Ventana que verá el usuario cuando entrene la red, se realizó una interfaz sencilla que muestra en la parte principal un texto para que el usuario pueda leerlo, en la parte siguiente un input text para que escriba su nombre de usuario, después botones para iniciar la grabación y otro botón para salir del sistema. Una parte de esto la hizo también mi compañero Roberto Martínez.

También integré el código de la interfaz con el de tratamiento de los datos, para que al grabar el usuario su voz automáticamente se vaya al tratamiento y se pueda meter el dato a la red neuronal y así saber si si es la persona o no lo es. Se importaron las funciones del archivo audio.py que es el que nos ayuda a sacar los datos importantes del audio.

Código:




Esta vez mis contribuciones corresponden a los commits: [35, 36, 41, 46, 47]
Y los commits anteriores fueron: [12, 13, 26, 27, 28, 29, 30, 31, 32]

Repositorio:



Gráficas del tratamiento de datos:





martes, 13 de noviembre de 2012

Controlabilidad y Observabilidad

PM11.11. Considera el sistema


Utilizando las funciones ctrb y obsv, mostrar que el sistema es controlable y observable.

Definiciones:

  • Matriz de observabilidad: Un sistema lineal es completamente observable solo si la matriz de observabilidad se obtiene de A donde A es una matriz de nxn. En sistemas lineales el sistema es observable si el determinante de la matriz de observabilidad es diferente de 0.
  • Matriz de controlabilidad: Un sistema lineal es totalmente controlable si el determinante de la matriz de controlabilidad nxn es diferente de 0

Se puede comprobar la controlabilidad y la observabilidad de un sistema realimentado en variables de estado usando las funciones de Octave ctrb y obsv, respectivamente.
Las entradas a la función ctrb son la matriz del sistema A y la matriz de entrada B; la salida de ctrb es la matriz de controlabilidad Pc.
Las entradas a la función obsv es la matriz A y la matriz  C; la salida es la matriz de observabilidad Po.


Teniendo la teoría necesaria se puede comenzar a resolver el problema, en donde identificamos la
A = [-1 1 0; 4 0 -3;-6 8 10 ], la B = [1;0;-1] y la C = [1 2 1].
Y así queda el programa:



La ejecución:



Y podemos ver con el programa que el sistema es observable y controlable.


Referencias

Sistemas de control moderno, 10a edición, Richard C. Dorf, Robert H. Bishop, PEARSON.


Proyecto grupal

Reporte en el blog de Roberto Martínez.

Detección de fraude en tarjetas de crédito con redes neuronales

Credit Card Fraud Detection with a Neural-Network

Por Sushmito Ghosh and Douglas L. Reilly

En este artículo proponen el uso de una red neuronal que detecta fraude en las tarjetas de crédito, entrenando con base a las transacciones y probando datos que se registraron en la tarjeta en un periodo de 2 meses. Esta red se formo sobre ejemplos de fraude de tarjetas perdidas, robadas, fraude de falsificación. Un sistema basado en esto se instaló en IBM 3090 Mellon Bank.

Este tipo de fraude va en aumento en la industria de las tarjetas de crédito, se estima que alrededor de 850 millones de dólares es la pérdida por fraudes, lo que es un 10% más que en 1991.

Aunque hay bastantes formas de fraude en tarjetas de crédito, hay algunas categorías principales. El fraude debido a robo o perdida representa el nivel básico. Otra categoría es el fraude por tarjetas falsificadas. Y el robo de tarjetas de correo llamado NRI ha sido muy importante en los últimos años, en algunas partes el problema ha sido tan grave que los emisores han usado métodos alternativos de tarjeta de entrega y programas especiales de activación de tarjetas de crédito. Con la tarjeta de activación la tarjeta esta bloqueada hasta que el banco llama al cliente para ver si recibió la tarjeta.
Otra fuente de fraude es la pérdida por correo, en esos casos el comprador no esta presente en el momento de la transacción.



La diversidad de actividades fraudulentas como se demuestra en las diferentes formas de fraude que se mencionaron ya, hace que la detección del comportamiento fraudulento no sea fácil, entonces los bancos al obtener solicitudes de tarjetas de crédito tienen que seguir una rutina para saber detectar si hay fraude.

Entonces se revisa cada actividad en la cuenta, y es posible especificar límites nominales en el número de transacciones que se espera que ocurran en un día de manera razonable.
La mayoría de los bancos usan solamente el análisis estadístico básico para el desarrollo de normas contra el fraude, el uso de técnicas más sofisticadas tecnológicas pueden ayudar a detectar fraude para mejorar los resultados. Particularmente esto puede ser visto como un patrón de reconocimiento, este problema de detección de fraude parece ser muy adecuado para aplicar una solución con red neuronal.

El banco Mellon estudio la factibilidad de usar redes neuronales en la detección de este fraude, y determinó la eficacia de reconocer fraudes en tarjetas de crédito. Esto consistió en la formación de una red neuronal basada en muestras de fraude, seguida con la ejecución de pruebas a ciegas de el modelo , entrenando solo una parte, si muestrar y guardando todas las transacciones.
Cuando se llega una solicitud de transacción, para que pudiera ser actualizada se comprueban los datos del titular de la tarjeta(número de cuenta y código). También se pueden tomar datos como hora del día. Entonces son archivados estos datos de las transacciones para la red neuronal.



El diseño de la red neuronal se basa en un proceso de extracción de características al que se le aplica una entrada de datos con el fin de representar el comportamiento. Un conjunto de 50 campos de datos se le puede combinar para que produzca 20 características que se utilicen como entrada en la red. Las caracteristicas se pueden agrupar en categorías. Los datos de entrada pueden incluir elementos descriptivos como la cantidad de transacción, el día la hora a la que se produce, así como caracterización de las características del uso de la tarjeta para pagos efectuados con ella.


Se usan tres capas, de alimentación hacia adelante, que es un modelado preciso de distribuciones estadísticas. Este tipo de red es ideal para modelos compactos y de forma no lineal de regiones malla, entre los procedimientos de formación de varios conocidos para dicha red Feed-forward de tres capas que combina redes de radio con pocos perceptrones con interior de subproductos de perceptrones actualmente llamado Función de base radial redes (RBFs). En una red RBF, la capa de entrada de células transmite el vector de patrón de entrada a todas las células en la segunda capa.

En una red RBF la capa de entrada transmite un vector de patrón de entrada a todas las células en la segunda capa. Se calcula la activacion:





Durante el entrenamiento correctamente los patrones correctos de la clase, que provoca actividad en la capa media, incrementa el peso W2ij:



martes, 6 de noviembre de 2012

Robots móviles

Documento

En este articulo proponen se propone una regla para rastrear un control estable no holonómico de vehículos.
La estabilidad de esta regla es demostrada con el uso de la función de Liapunov.

El criterio de Liapunov es un método que se puede aplicar para encontrar respuestas a las preguntas sobre la estabilidad de sistemas no lineales. Con este método es posible determinar la estabilidad de un sistema sin necesidad de resolver las ecuaciones de estado. Esto es una gran punto a su favor ya que es muy difícil despejar las ecuaciones de estado no lineales que varían con el tiempo.

La entrada del vehículo es referenciada con la ubicación(x, y) y con la velocidad(v, a).

Linealizar el sistema de ecuaciones diferenciales es útil para decidir parámetros para estabilizar una pequeña perturbación con el propósito de evitar cualquier deslizamiento, una limitación de velocidad o aceleración.Se muestran varios resultados de simulación con o sin el limitador de la velocidad/aceleración.

Los métodos que se aplican son en este trabajo son robot independiente y se puede aplicar a varios tipos de robots móviles con capacidad de navegación. Para esta prueba se usa el robot móvil autónomo el Yambico-11.



Lo que se presenta en el documento es un control de seguimiento estable para un vehículo no holonómico con resultados de una simulación real.

Se propuso un método en el cual se almacena en la memoria la secuencia de referencia del punto y la futura posición del robot que puede ser comparada y determinar la dirección siguiente. Otro método es usar una linea recta para el movimiento del robot en vez de tener una secuencia de puntos.

Entonces usan la interpolación entre el punto actual y los puntos futuros con una curva suave. Se uso también una corriente de referencia y las posturas para un vehículo de control, el uso de un error local del sistema de coordenadas y un control PI.

Se representa la postura del sistema con el vector:


Representan el sistema con un diagrama de bloques como el siguiente:



El primer componente calcula el error usando la ecuación:




La segunda caja es lo que calcula la velocidad usando el error y las velocidades referenciadas.
La tercera casilla T representa la capacidad del hardware vehículo de transformación
con velocidades reales de destino a velocidades de corriente del vehículo.
Y la cuarta y quinta son los demás componentes que intervienen en el sistema.

En octave es posible obtener la solución de la función Liapunov, en el paquete control se encuentra la función lyap, este es un pequeño ejemplo:

domingo, 4 de noviembre de 2012

Lógica temporal lineal LTL

Sabemos que la máquina que provee los productos debe de ser recargada siempre que se termine el producto.

Esto puede formularse de la siguiente manera: la operación de recarga se produce un número infinito de veces. En un sistema con este tipo de limitaciones el sistema debe pasar por un estado que satisface alguna propiedad.
En el ejemplo de la maquina de productos, podemos tener este tipo de sistema por ejemplo decimos que los estudiantes compradores son infinitos.

El ejercicio que elegí es el siguiente:

EXERCISE 14.1 Formalize the following statements.


2. The beer storage becomes empty infinitely many times.

Entonces tenemos los siguientes conectivos y operadores temporales:

Imagen de http://www.voronkov.com/lics_doc.cgi?what=chapter&n=14


Expresamos con "Y", "que la maquina se vacía , para decir que se vacía infinitamente usaremos los siguientes operadores temporales:

 Siempre

 Next

 Eventualmente

Expresamos con "Y", "que la maquina se vacía , para decir que se vacía infinitamente usaremos los siguientes operadores temporales:

Referencias

http://www.voronkov.com/lics_doc.cgi?what=chapter&n=14

jueves, 1 de noviembre de 2012

Steganography

The images that I hide a message are the 001.png, 003.png and 005.png. I used big images because it can make more difficult to spot the changes.


I created two codes, one to hide the message and another to show the message:

Hide message

I used the LSB algorithm to encrypt the message. Before, I created a list with the phrase in binary. Then I put this bits in the LSB but I started to put the bits in the image  from the middle of the image and I used a space for each word of 10 bits.


Code:


Execution:




Recover the message

This is a little more complicated. I created an algorithm for look all LSB and then I search for differents sizes than can be the block of word. Once I find this, I start to check all the image and I get many data that can be the phrase that I want, but this doesn't make sense. Now I used a library that can help me to know if a word exist or not and automatically I get a phrase coherent.


Code:


Execution:


Library pyenchant python



Expresión w-regular

La expresión que se usará es:



Primero la unión:
Después la concatenación:

La clausura:


Referencias

http://www.tcs.tifr.res.in/~pandya/grad/aut06/lect4.pdf

Diagrama polar

PM9.2. Utilizando la función de nyquist, obtener el diagrama polar de las siguientes funciones de transferencia:








Generalmente es más difícil crear el diagrama de Nyquist que el de Bode a mano, afortunadamente Octave cuenta con un modulo para crearlo automáticamente. Cuando usamos la función Nyquist sin argumentos en la parte izquierda, se genera el diagrama de manera automática, de otra manera se devuelven la parte real e imaginaria de la respuesta en frecuencia.

[re. im, w] = nyquist(sys, w)

re: parte real
im: para imaginaria
w: frecuencia
sys: G(s)

[Gm, Pm, Wcg, Wcp] = margin(sys)

Gm: Margen de ganancia (dB)
Pm: Margen de fase (en grados)
Wcg: frecuencia para fase = -180
Wcp: frecuencia para ganancia = 0db

Es posible analizar las medidas de la estabilidad relativa del margen de ganancia y del margen de fase a partir del diagrama de Bode o Nyquist.
El margen de ganancia mide cuanto deberia aumentar la ganancia del sistema que GH(jw) pase a través del punto(-1, 0), resultando un sistema inestable.
El margen de fase es una medida de retardo de fase que se requerido antes de que el sistema se haga inestable.
El margen de diagrama y el de fase se puede obtener con el diagrama de Nyquist.

(a) Código de octave para resolverlo y mostrar el diagrama polar:
Podemos ver en la gráfica y obtener con octave los valores exactos de margen de fase y margen de ganancia.




Diagrama:




(b) Código en octave para resolverlo y mostrar el diagrama polar:



Diagrama:



(c) Código en octave para resolverlo y mostrar el diagrama polar:


Diagrama:



Sistemas de control moderno, 10a edición, Richard C. Dorf, Robert H. Bishop, PEARSON.

martes, 30 de octubre de 2012

Estabilidad

Un sistema estable es el que tiene una respuesta limitada. Esto es, se dice que el sistema es estable si, estando sujeto a una entrada o perturbación limitada, su respuesta es también de magnitud limitada.

Una condición necesaria y suficiente para que un sistema de realimentación sea estable es que todos los polos de la función de transferencia del sistema tengan partes reales negativas.

El criterio de Routh-Hurwits establece que el número de raíces de q(s) con partes reales y positivas es igual al número de cambios de signo, de la primera columna del array. Para un sistema estable este criterio necesita que no haya cambios de signo en la primera columna. La ecuación característica no será la misma que he venido usando, ya que le he hecho lagunas modificaciones.

Mi ecuación característica es:



Nuestro objetivo será poder encontrar a y K que hagan el sistema estable, y el error en estado estacionario sea para una entrada de rampa menor al 20%. 

  • Lo primero que haré sera buscar con octave el rango que hace que el sistema sea estable para el sistema.
  • Después encontrare un conjunto de a y K que pertenezca a esa región estable, y que se cumpla la especificación de error en el estado estacionario.
  • Se selecciona un intervalo de valores a y K y se calculan las raíces del polinomio característico para valores específicos de a y K. Para cada valor que tengamos de K obtenemos el primer valor de a que tiene por resultado al menos una raíz de la ecuación característica en el plano derecho. Se repite hasta terminar el ciclo.


La gráfica que obtengo muestra la separación entre las regiones estables e inestables, con la K en el eje de las equis y la a en el de las y.




k eje equis, a eje y.


Entonces cualquier valor de a que se encuentre en la región estable podremos decir que nos dará un diseño aceptable. Un ejemplo sería K = 60, a = 0.5. Su función de transferencia es:


Los polos son, y podemos ver que es estable nuestra función.:



Después se aplica la entrada de rampa unitaria. El error en estado estacionario será menos al 20% como se deseaba:


Análisis de frecuencia
Diagrama de bode, donde obtenemos el análisis en la frecuencia:


Código:


lunes, 29 de octubre de 2012

Sistema de transiciones

Mi sistema es: Modelado de madera en un taller
Se compone de tres partes:

  • El material que se va a modelar: Es la pieza de madera que llega en bruto para poder ser procesada
  • La máquina que modela: Es la maquina que corta la madera
  • Un stock que guarda las piezas: Es en donde se almacenan los pedazos de madera cortados

Los componentes  a detalle los muestro a continuación:

La máquina se compone de :

  • Estados
    • Trabajando: Este estado se da cuando la máquina ya tiene el material y lo esta modelando.
    • Esperando: Se da cuando la máquina no tiene nada de material por modelar.
  • Transiciones
    • Se almacena: Cuando ya se termino de procesar la madera se almacena en el stock, de trabajando a esperando.
    • Empieza el tratamiento: Cuando apenas llega la madera, se empieza a tratar, de esperando a trabajando.



Material se compone de:
  • Estados
    • en bruto: se da cuando el material aun no se ha moldeado, asi como esta antes de procesarlo.
    • refinado: se da cuando el material ya fue procesado y esta listo para almacenarse
  • Transiciones
    • Se almacena: es cuando el material ya fue refinado esta listo para almacenarse
    • Va a tratamiento: Es la transición de en bruto a refinado.

Stock:
  • Estados
    • vacio: se da cuando le stock no tiene nunguna pieza almacenada
    • lleno: se da cuando ya no cabe otra pieza en el stock
  • Transiciones
    • se sacan las piezas: cambia el estado de lleno a vacio, quitando las piezas ya existentes para  poder meter más.
    • llega material: cambia el estado de vacio a lleno, cuando se estan guardando las piezas ya modeladas.



Diagrama de transiciones
Ahora juntamos todos los componentes en un grafo para poder ver el comportamiento del sistema en conjunto.
Material||Máquina||Stock

Estados:
1, 0 = Maquina (Trabajando, Esperando)
0, 1 = Material(En bruto, refinado)
0, 1 = Stock (vacío, lleno)

Transiciones:
1, 2, 3, 4, 5: llega el material, se almacena, va a tratamiento, empieza el tratamiento, se sacan las piezas.