martes, 30 de octubre de 2012

Programa - Estabilidad

Como ya he presentado anteriormente esta es mi función de transferencia de mi proyecto:



y el nombre de cada una las variables y su simbología son:


u(t) es la entrada que inducimos al motor. (Voltaje V)
Θ(t) es el ángulo de giro del motor, salida del sistema. (Rad Θ)

eb(t) es la tensión en bornas del motor. Se mide en V.
i(t) es la corriente que circula por el motor. Se mide en A
R es la resistencia del motor. Se mide en Ω
L es la inductancia del motor.  Se mide en H
J es la inercia del motor. Se mide en kg·m2
B es el coeficiente de rozamiento. Se mide en N·m·rad/s.
τ es el par del motor. Se mide en N·m
τL es el par de la carga.  Se mide en N·m.
k1 es la constante de FEM. Se mide en V·s/rad
k2 es la constante de par. Se mide en N·m/A

Para cada una de estas variables le vamos a asignar valores, para los ejemplos usare estos que son los valores básicos para un motor de cc, según una fuente citada posteriormente en la bibliografia:

R = 4,91 Ω
L = 742,2 μH = 742,2·10-6 H
J = 43,8 g·cm^2 = 43,8 · 10-7 kg· m2
B = 10-5 N·m·rad/s
k1 = 32,18· 10-3 V·s/rad
k2 = 32,18 mN·m/A = 32,18· 10-3 N·m/A

Separando variables de la función

Lo primero que hice fue expresar las variables que tuvieran "s" ya que inicialmente las tenia factorizadas, haciendo simples multiplicaciones en la parte del denominador obtenemos:

con esto ya resulto una función en valores de s³ + s² + s que sera para hacer análisis más fácilmente.

Sustituyendo y multiplicando los valores mencionados ahora tenemos que la función de transferencia esta expresada por:


1) Polos y ceros

Para conocer los polos y ceros de nuestra función usamos la función "pzmap". Y entonces obtenemos lo siguiente:

-No tiene ceros, porque que no hay valores que anulen el numerador de la función de transferencia.
-Tiene tres polos dado que el denominador es un polinomio de grado 3.
-No tiene polo en el origen.
-Sólo hay un polo real, el que en el eje imaginario esta sobre 0.

Obteniendo las coordenadas de los polos de donde se encuentran en la gráfica:

p1 = - 6567.174
p2 = - 25.288 + 29.459j
p3 = - 25.288 – 29.459j


2) Escalón

El motor tenia pensado alimentarlo con una señal de 5V, pero investigando para que gire el motor 45 grados (para moverse derecha-izquierda) necesita una entrada de π/4 V que es el valor equivalente en radianes del giro de 45 grados. Aplicamos esto para la función de salida que es la que queremos afectar, entonces usare esto como escalón para ver como se comporta el sistema. Esto se hizo con step en octave.



Gracias a esto podemos obtener los datos:
El tiempo de subida, calculado como el tiempo que tarda en alcanzar el alcanzar el 100% de su valor final: t = 0.078s
Tiempo de pico: t  = 0.107 s
Tiempo de establecimiento, calculado como el tiempo que tarda en alcanzar la banda del 0.98 al 1.02% del valor final: t = 0.154s 

Podemos concluir que el sistema gracias al escalón alcance un valor casi constante después de 0.154 s. es decir cada ves que de una vuelta. Y con un máximo nivel después de 0.107s.

3) Rampa

Para ver la respuesta del sistema a una rampa por la expresión de 1/s^2 que esto afectaría a nuestro denominador multiplicando los exponentes, aumentando a todos dos mas de los de la función de transferencia original.


El resultado nos muestra que si alimentamos el motor con una rampa, el motor comenzará a girar indefinidamente. Para calcular esto se utilizó las funciones lsim() y plot() en octave.

4) Parábola

Ahora vemos que pasa cuando introducimos de entrada al sistema una parábola, que esta dada por la expresión 1/s^3 esto afectaría nuevamente a  nuestra función de transferencia en la parte del denominador, multiplicando los exponentes de s. dando como resultado un aumento en cada s ^ +3.

Observando la imagen podemos determinar que la respuesta de entrada a una parábola es también otra parábola, determinando esto el comportamiento en el tiempo de la función de la parábola. Esta gráfica también se expreso con lsim() en octave.

5) Diagrama de Bode

Gracias a la instrucción bode( ); obtenemos el siguiente diagrama.




Obtenemos la siguiente información:

-Pico de resonancia: Existe un pico de resonancia determinado por octave que es en 15.107 rad/s
-Frecuencia de resonancia: y la frecuencia de resonancia es muy pequeña 0.1 segun octave.
-Ancho de Banda: ocurre el primer cambio de pendiente entre 10 rad/s y 100/rad/s debido a los dos polos que están ahí. Por lo que el cambio de pendiente ocurre a la frecuencia 42.426 rad/s.


6) Diagrama de Nyquist






Este tipo de representación se realiza colocando la parte real de la función de transferencia en el eje de abscisas y su parte imaginaria en el eje de ordenadas. Este diagrama es muy útil a la hora de calcular el margen de ganancia y el margen de fase, así como para analizar la estabilidad del sistema.

Respecto al diagrama podemos determinar que el punto inicial del diagrama corresponde a 0, es finito y esta sobre el eje real positivo. Notamos que el lazo es estable ya que la curva obtenida gracias a octave no rea el punto -1 + j0.

Raíces


Conclusión:
 Nuestro sistema se comporta estable o inestable dependiendo del cambio en la entrada, por ejemplo,
-Con el escalón se comportó estable.
-Con la rampa se comportó inestable.
-Con la parábola se comporta medianamente estable.
-Con Nyquist y las raíces vemos que están dentro de la región es estable respecto del plano s. que sería el lado izquierdo. 

Código:

Bibliografía:
http://www.robolabo.etsit.upm.es/asignaturas/sctr/apuntes/trabajo3.pdfhttp://www.el.bqto.unexpo.edu.ve/tperez/SC1/Transparencias%20(Noviembre-2000).pdf
http://octave.sourceforge.net/control/function/pzmap.html
http://octave.sourceforge.net/control/function/step.html
http://octave.sourceforge.net/control/function/rlocus.html
http://octave.sourceforge.net/control/function/bode.htmlhttp://octave.sourceforge.net/control/function/lsim.htmlhttp://www.slideshare.net/tonivi99/sistemas-de-control








Tarea 9 - Modelado de Sistemas Concurrentes


Para esta semana,  basándonos en los ejemplos del libro teníamos que modelar un sistema de transiciones, yo me base en los ejemplos 2.29 y 2.30 para modelar mi ejemplo.

El sistema que implementare es sobre la elaboración de rollos de acero

El sistema tiene tres componentes:

La materia prima que es el hierro traído desde las minas
El horno de fundición del acero
El patio donde se enfrían los rollos de acero

Estos componentes tienen estados y transiciones:

La materia prima.

Estados:

Natural: cuando el hierro es recién extraído de la mina y esta en su estado puro.
Preparada: se le agregan componentes químicos y preparación especial. 

Acción:

Tratamiento: se alista para ir a prepararla con los componentes
Transporte: Se lleva en contenedores especiales hasta el horno 



El horno de fundición.

Estados:

Fundiendo: se calienta el hierro junto con los demás componentes 
Despachando: sale el acero en estado líquido

Acción:

Se ingresan los materiales: Se ponen los materiales necesarios
Generación de acero: alcanzando el punto ideal de calentado para obtener el acero



El patio de enfriamiento:


Estados:

Espera: no se encuentran estantes para poder poner los rollos de acero
Disponible: si hay estantes para poder poner los rollos de acero

Acción:


Transporta: se lleva con grúa el rollo
Vender: se venden los rollos de acero


Diagrama:

Veamos todos estos componentes trabajando al mismo tiempo en su representación en un grafo.

Estados: 
{0}{1} -> Materia prima {Natural} {Preparada}
{0}{1} -> Horno de fundición {Fundiendo} {Despachando}
{0}{1} -> Patio de Enfriamiento {Espera} {Disponible}

Acciones:
[A] Ir a tratamiento
[B] Se transporta
[C] Se ingresan los materiales
[D] Generación de acero
[E] Se transportan los rollos
[F] Se venden los rollos



Y eso sería todo.

Bibliografía: Principles of Model Checking

jueves, 18 de octubre de 2012

Laboratorio 4 - Errores de estado

Para esta semana elegí un problema del libro de Ingeniería de control moderna del curso de Automatización, el problema es el siguiente:


Problema

Considere un sistema de control con realimentación unitaria con la función de transferencia en lazo cerrado.

1- Determine la función de transferencia en lazo abierto G(s).

2- Demuestre que el error en estado estacionario en la respuesta rampa unitaria se obtiene mediante la formula.
Introducción

El tema es tratado en el libro dentro del capítulo 5 y se llama errores de estado estacionario en lazo cerrado en un sistema de control.  En el se define que los errores en un sistema de control se pueden atribuir a muchos factores. Los cambios en la entrada de referencia causará errores inevitables durante los períodos transitorios y también pueden provocar errores de estado estacionario. Las imperfecciones en los componentes del sistema, tales como la fricción estática, holgura, y la deriva amplificador, así como el envejecimiento o el deterioro, se producirán errores en estado estacionario.

El error de estado estacionario es causado por la incapacidad de un sistema de seguimiento de determinados tipos de entradas.
Cualquier sistema de control físico por sí sufre error de estado estacionario en respuesta a ciertos tipos de sistema entradas. Un sistema puede tener ningún error de estado estacionario para una entrada escalón, pero el mismo sistema puede exhibir distinto de cero error de estado estacionario para una entrada rampa. (La única manera en que puede ser capaz de eliminar este error es modificar la estructura del sistema.)

-La clasificación de los sistemas de control

 Los sistemas de control se pueden clasificar de acuerdo con su capacidad para seguir las entradas escalón, entradas de rampa, entradas parabólicos, y así sucesivamente.

Existen 3 tipos de errores, para cada uno muestro su formula:

-Errores de estado estacionario

-Error de posición estática en la constante k

-Error estático de velocidad constante k

-Error de aceleración estática en la constante k


Solución

Para nuestro problema que es:

En este caso vamos aplicar la formula para errores de estado estacionario para transferir la función entre el error de señal y la entrada de la señal donde el error es la diferencia entre la señal de entrada y la señal de salida. Por lo que queda de la siguiente forma la función de transferencia en lazo cerrado:


Si queremos representar esto en un pequeño diagrama de bloque se representaría de la siguiente forma:


1- Lo que queremos obtener es G(s) que representa la función de transferencia en lazo abierto.
Ahora, continuando con nuestro problema, multiplicamos en forma cruzada y nos da:


Ya solamente de esto obtenemos G(s) casi directamente que es la que buscamos, para simplificar un poco más también sacamos "s" como factor común y quedaría de la siguiente forma:

2- Ahora el segundo punto que nos pide el problema es que demostremos que el error en estado estacionario en la respuesta rampa unitaria se obtiene mediante:


Teóricamente que es y como se obtiene (información obtenida del libro)
Las constantes de error estáticos definidos son figuras de mérito de los sistemas de control.
La mayor de las constantes, cuanto menor sea el error de estado estacionario. En un sistema dado, la salida puede ser la posición, la velocidad, la temperatura de presión, o similares.
Llamaremos a la salida  "posición", el cambio de la salida se llamara "velocidad", y así sucesivamente. 
Esto significa que en un sistema de control de la temperatura "posición" representa la temperatura de salida, "velocidad" representa la tasa de cambio de la temperatura de salida, y así sucesivamente.

Tenemos esto representado en formula que nos da el libro:



El error de estado estacionario de la respuesta rampa unitaria basado en la formula que nos da y en la teoría del libro obtenemos dos partes, se sustituyen en los lugares correspondientes y con esto queda demostrado el error:



Bibliografía:

Libro Ingeniería de Control Moderna (Ejercicio basado en el ejemplo A-5-9)

martes, 9 de octubre de 2012

Reporte 2 - Diagrama de Bloque


Introducción

En el segundo reporte se habla de la determinación del diagrama de bloque de nuestro proyecto, mi proyecto es un carrito seguidor de una línea de determinado color.


Dentro de la investigación realizada se encontró que el carrito es controlado en si por dos partes, una es un sensor infrarrojo autoreflex que es quien envía una señal a una segunda parte que es el motor quien interpreta esa señal en movimiento.

En el sistema que implementare existe la relación de un sensor autoreflex donde el resultado del sensor es un voltaje aplicado que va directo al motor, siendo esta la entrada del sistema y resultando como salida la velocidad angular de motor.
                                           
                                                           Función de transferencia

La Función de transferencia de nuestro problema que pudimos obtener fue:



donde tenemos que:

u(t) es la entrada que inducimos al motor. (Voltaje V)
Θ(t) es el ángulo de giro del motor, salida del sistema. (Rad Θ)
R es la resistencia del motor
L es la inductancia del motor
i(t) es la corriente que circula por el motor
J es la inercia del motor
B es el coeficiente de rozamiento
Τ es el par del motor
τL es el par de la carga
k1 es la constante de FEM
k2 es la constante de par.
eb(t) es la tensión en bornas del motor
Diagrama de bloque

Entrada:  u (t) - V
Salida:     Θ (s)

-En la investigación conocí los 2 tipos que existen o que se clasifican, en nuestro caso es de  lazo abierto: la acción del control es independiente de la salida, también existe el del lazo cerrado donde la acción del control es dependiente de la salida.

-De acuerdo a las características de un motor y de la variables que se involucran el diagrama de bloque esta representado por el siguiente diagrama:



Explicación del diagrama:

 -Principalmente, tenemos una entrada dada por u(t) que representa el voltaje que se le va a dar al motor de nuestro carrito. 

-Del lado derecho esta Θ(s) que representa a la velocidad del giro del motor, es decir, que tan rápido se mueve y gira nuestro carrito.

-Después que entra al motor la corriente sigue un flujo dado por i(t) que es en el sentido que viaja esta corriente.

-La corriente pasa por una resistencia R y una inductancia L antes de llegar a donde nosotros deseamos que llegue.

-Una característica del motor es la tensión en bornas del motor y esta dada por eb(t)  , finalmente llega a donde queremos la salida para implementar velocidad al motor.

Bibliografía:

http://www.robolabo.etsit.upm.es/asignaturas/sctr/apuntes/trabajo3.pdf
http://www.el.bqto.unexpo.edu.ve/tperez/SC1/Transparencias%20(Noviembre-2000).pdf



Tarea 7 - Lógica Predicativa


En las actividades diarias humanas como los juegos en general, se suelen seguir reglas que son llamadas estrategias. Estos procesos en los juegos son sutiles, ya que son actividades que todos  conocemos y el objetivo es tener el mejor resultado posible dentro de un juego dependiendo de los distintos resultados que el juego tiene.

La relación entre la lógica y los juegos se remonta a la antigüedad donde surgió el contexto de la argumentación, donde los movimientos exitosos que los participantes podían hacer con seguridad. La argumentación es el juego donde siguiendo las reglas se puede perder o ganar dependiendo de la calidad de sus estrategias.

Y la estrategia que se a conocido desde hace mucho tiempo es que quien tiene lógicamente reclamaciones validas tiene una estrategia ganadora, garantizando el éxito a ganar.

Evaluación de los juegos en la lógica

Los movimientos de los juegos siguen la construcción inductiva de fórmulas, con dos jugadores V (verificador) y F (falsificador).

Disyunción ϕ1 v ϕ2
V elige el disyunción para jugar

Conjunción ϕ1 ^ ϕ2
F elige el conjunto para jugar

Negación ¬ϕ
Interrupción de roles entre los jugadores, el juego continua con respecto a

Cuantificador existencial   ϕ (x)
V toma un objeto d, y después el juego continua con respecto a

Cuantificador universal∀x ϕ (x)

El juego termina: Verificador gana si es verdad, falsificador gana si es falso.

Ejemplo:
Se toman dos objetos: s, t. El juego de primer orden con sus movimientos representado en un árbol respecto a:   ∀x≠ y



Como podemos ver el primer movimiento lo hace F dando a V la opción de elegir de entre 4 opciones de las cuales dos para cada uno son para ganar.. Pero aquí es donde se muestra la ventaja para V porque solo de el depende que el gane, sin importar el movimiento que haya hecho F.



Ejemplo 2:
Con esto veamos este pequeño ejemplo clásico el juego del "gato" donde hay 2 jugadores y el objetivo es obtener 3 de las mismas figuras en la misma dirección el primero que lo logre gana.

De acuerdo al escenario planteado, vemos las posibilidades de cada uno de los dos jugadores gracias a un árbol y obtenemos quien tiene mas probabilidad de éxito.

Como se puede observar de acuerdo a la opción inicial fueron desenvolviéndose las opciones de cada escenario posible para así concluir quien tiene mas probabilidades de éxito y como ganar al juego, si cada jugador conociera y estas posibilidades podría ir siguiendo las reglas de la lógica proposicional y así conocer que movimiento hacer. Este ejemplo se resuelve por el algoritmo de Zermelo , al igual que otros juegos como el del ajedrez.



Reporte - Project Vote




Nuestro registros de huellas

Para este primer avance realice algunas tareas en cuanto a la realización del proyecto, que es la implementación de una red neuronal para la identificación de personas en un proceso de elecciones.

-Investigación sobre las huellas digitales y sus características principales

Previamente al desarrollo lleve acabo una investigación sobre cómo funcionan los sistemas para la lectura de huellas digitales. Primero cada persona posee una huella dactilar única y diferente en el mundo por lo que la convierte en un sistema de reconocimiento personal.
Cada huella tiene características especiales lo que la convierten en únicas, por ejemplos las crestas y valles. Se designa con ese nombre a las particularidades papilares que, en detalle, ofrecen las crestas en su curso por el dactilograma natural y su impresión. Es decir, son las convergencias, desviaciones, empalmes, interrupciones, fragmentos, etcétera, de las crestas y de sus surcos (islote, bifurcación, punto, cortada, horquilla, empalme, encierro).
También se pueden clasificar dependiendo la forma de sus curvaturas, estas clasificaciones son 5 que representas a las más comunes de las clases de huellas digitales.
Tipos de huellas
Cada huella puede ser medida y representada de muchas maneras, por ejemplo, la cantidad de valles y crestas, la dirección de las líneas de cada dedo, la frecuencia en algunos puntos, la representación binaria de la huella, etc.
Y en base a cualquiera identificación se compara en una base de datos que ya se tenga y se regresa la identificación de la persona.
En la actualidad se utilizan muchos sistemas para la identificación de las personas como por ejemplo, para acceder a los trabajos, a hospitales o a lugares especiales asignados solo para algunas personas. Gracias al sistema de identificación única por huella digital se ha vuelto más popular.

-Investigación sobre el mejoramiento en la calidad de huellas digitales

Actualmente se usan dispositivos que reconocen huellas digitales como son los
sensores ópticos, capacitivos o de alta frecuencia. La imagen de la huella digital casi siempre presenta degradaciones, a causa de las variaciones en la piel y a condiciones de impresión, es necesario aplicar técnicas de mejora de imagen, para así obtener la extracción del binario.

Huellas dañadas
Existen varios métodos para el mejoramiento pueden ser por modelos matemáticos que determinan los puntos de saturación de color o luz y a partir de eso aclaran las imágenes.
Otra forma puede ser la modificación de las imágenes en base a su contaste o en base a la eliminación de las partes innecesarias para la correcta identificación.
Huella Mejorada

-Diagrama del sistema

En cuanto a nuestro sistema, se determina que esta era la forma en la que funcionaria.
Haciendo primero un registro de todas las huellas para después obtener el binario y almacenarlo.
Diagrama de nuestro sistema
En el proceso de la identificación, primero de nuevo se lee una huella y después se va a la base de dato  a comprobar si existe un registro igual esto gracias a la red neuronal.

-Recolección de BD de imágenes para entrenar neurona

DB de huellas
Se realizó una búsqueda de huellas digitales en formato de fotos para poder ir tomando ejemplos y comprobando si funcionan nuestras conversiones a binario. En internet se encontraron varios bancos de imágenes de huellas de las cuales solo se tomaron algunos ejemplos para poder hacer la representación y  unos ejemplo.

-Implementación de entrada del sistema (imagen a binario)

-En este caso aplica la lectura de una huella digital que por ahora se lee de una foto, pero posteriormente se hará de manera directa desde un lector de huellas digitales (hardware). 

-Después de que el programa lee una huella digital se pasa una representación de la foto a un archivo en código binario que sería la entrada a la red neuronal para que vaya aprendiendo sobre cómo identificar una persona, gracias a las
características de cada huella digital. Esto se logra mediante las especificaciones de cada huella como lo son sus crestas y valles y su tipos y clasificaciones.
-El programa elaborado escribe en un archivo de texto la representación binaria leyendo una imagen pixel por pixel tomando que 1 es los pixeles blancos y el resto (negros o grises) se marcan con el signo de 0.
Para la implementación de este código de importo la librería Image y fueron usados algunas de las funciones que esta presenta, por ejemplo para leer pixel por pixel.

http://pastebin.com/UAdhsDF3
-Código:  Entrada1, Entrada2
Imagen a Binario
Ver en grande para mejor visualización


Red Neuronal:

En este caso para nuestra red neuronal se realizó un avance que consiste en generar un arreglo de entradas aleatorias a las que se les asigna un peso también de carácter aleatorio para posteriormente obtener el la sumatoria de sus productos y comparar esta última con otros parámetros y así que aprenda a como clasificar entre dos salidas posibles 0 o 1.

Posteriormente recibirá el código binario que se obtuvo de la imagen para poder procesar. Nos servirá para conectar con nuestras interfaces de entrada y salida y así lograr el reconocimiento de personas por medio de su huella digital. Para mas detales de esos consultar los blogs del resto del equipo. A continuación muestro las modificaciones que le hice a una parte de la red.

-Código: RedNeurona

-Implementación de salida del sistema (coincidencia de personas)
Se realizó un ejemplo del sistema para el encontrar una persona dentro de los archivos que ya se tienen. Primeramente se ingresa una huella digital que sería solicitando el acceso de una persona para el sistema de votaciones, después se procesa esa lectura de imagen para que se represente de forma binaria. Luego al entrar a la red neuronal deberá de ser capaz de clasificar los tipos de huellas que existen y su rápida identificación.
Para fines prácticos, se comprara un archivo con 2 registros que se tienen para ver si la lectura del solicitante es igual a la de los registros, en caso de ser igual el acceso al sistema seria concedido, por lo contrario se negara el acceso al sistema de votaciones.

-Código: Salida

Por ultimo dos ventanas de ejecución de como es la entrada y la salida del sistema:

Acceso al sistema
Huella creada y grabada con éxito

Denegación del sistema




-Bibliografia:
A Tutorial on Fingerprint Recognition: http://bias.csr.unibo.it/research/biolab
Universidad del perú, mejora de imagenes de huellas digitales: http://creativecommons.org/licenses/by-nc-sa/2.5/pe/