jueves, 22 de noviembre de 2012

Reporte 7 (laboratorio)

Para ultima tarea esto es lo que se tiene que resolver:

P8.1 Dibujar la grafica polar de la respuesta en frecuencia para las siguientes funciones de transferencia.
A)






B)




C)




D)




Para hacer la gráfica polar de cada función utilizaremos "nyquist" de octave ya que esta crea las gráficas que requerimos. Pero primero resolveremos las funciones para dejarlo en términos mas directos.

Aqui las funciones que necesitaban ese cambio eran la A y D, lo que nos queda es lo siguiente:

A)




D)





Ahora con octave realizaremos cada gráfica, para realizarlas se hace lo siguiente:

Tecleamos numerador y denominador y las guardamos en variables, como se puede apreciar en las imágenes yo las llamo "num" y "den", después en otra variable guardamos la función de transferencia y al final le damos "nyquist nombre de variable" y realiza la gráfica.

También si el denominador o numerador llegan a mas numero solo rellenaremos con ceros, por ejemplo en la ultima gráfica realizada llega a s^3 en el denominador y en el numerador solo a s, solo se rellena con ceros para comp letar.

Aqui las gráficas con su respectivo codigo en la imagen, las graficas se presentan como se presentaron las funciones:

A)

B)
C)
D)




jueves, 15 de noviembre de 2012

Reporte 6 (laboratorio)

El problema a resolver es el siguiente:

B.12.14. sea el sistema

x = Ax + Bu
y = Cx



Diseñe un sistema regulador por el método de asignación de polos con observador. Suponga que los polos en lazo cerrado deseados para la asignación de polos están en

 s = -1 + j                               s = -1 - j                                   s = -5

Los polos deseados del observador estan localizados en

s = -6                                   s = -6                             s = -6

También obtenga la funcion de transferencia del controlador observador.

Para empezar a resolver esto utilizaremos la función place que es la similar en octave, para "acker" en MATLAB, ya que para sacar la matriz de ganancia de retroalimentacion K y la ganancia de observador Ke esta funcion nos ayuda mucho.

Bien aqui en octave:


Esto es el resultado para la matriz de ganancia K que es:

Aqui para el observador Ke, solo agregamos el valor de la matriz para L que son los polos del observador que estan localizados, las matrices de A y C ya estan pero para que funcione esto le agregamos una comilla para que solo agarre una sola linea:


Aqui el resultado que nos da

Ahora determinaremos la funcion de transferencia utilizando la funcion ss2tf:




La funcion del controlador observador es la siguiente:
octave:


Latex:


Ahora la función de transferencia del sistema dado en forma de espacio de estado es:




martes, 13 de noviembre de 2012

Reporte 4

Hemos tenido problemas para subir el pdf por eso le mando esto en dropbox.
aqui la liga:

https://www.dropbox.com/s/irq3kpp5jingba5/documento.pdf

Aqui el codigo de lo que hicimos:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[activeacute,spanish]{babel}
\usepackage{graphicx}
\usepackage{schemabloc}
\usepackage[usenames,dvipsnames]{pstricks}
\usepackage{epsfig}
\usepackage{pst-grad}
\usepackage{pst-plot}
\usetikzlibrary{circuits}
\begin{document}
\begin{center}
{\LARGE\bf AUTO-VENTILADORES (Control de coolers)\\ }
\end{center}
\begin{center}
{\LARGE\bf INTRODUCCION\\}
\end{center}
\\
\\
El proyecto a realizar, son unos ventiladores (coolers) que se accionan de manera automática cuando hay un calentamiento en la máquina(computadora), por el uso que se le esta dando, y se detendrán cuando la máquina tenga una temperatura ambiente, esto con la finalidad de darle una protección a los circuitos dentro de dicha máquina ya que podrían quemarse. Además también se está pensando en el gasto o uso de la pila ya que los coolers convencionales están siempre en uso al momento de conectarse.
\\
\\
\begin{figure} [h]
\begin {center}
\includegraphics[width=0.5\textwidth]{NB100.jpg}
\caption{ejemplo de coolers}
\end {center}
\end{figure}
\begin{center}
{\LARGE\bf ¿Como funciona?\\ }
\end{center}
\\
\\
Los ventiladores estarán en un estado de espera, en donde recibirán señales de un LM35(sensor de temperatura) para saber cuando accionarse. Cuando detecten una temperatura demasiado caliente o alta, estos ventiladores se accionarán y podrán regresar a la máquina a una temperatura ambiente.
\\
\\
\begin{center}
{\LARGE\bf FUNCION DE TRANSFERENCIA\\ }
\end{center}
\\
En sus diferentes modelados a continuación se uso la siguiente función de transferencia:
\\
\begin{center}
FT = (10 s^{2})/(10s² + 10s)
\end{center}
\begin{center}
{\LARGE\bf Como salio esta formula\\ }
\end{center}
\\
\\
Esta función sale de las siguientes fórmulas, la primera que es la entrada de nuestro sistema:
\\
\\
\frac{dT}{dt}
\\= K(T_{f}-T_{0})
\\
\\
dT/dt = cambio de temperatura con respecto al tiempo.
K = constante de proporcionalidad.
Tf = temperatura final.
To = Temperatura inicial.
\\
\\
\\
Le sacamos la transformada a nuestra fórmula de entrada y nos queda de la siguiente manera:
\\
sT(s) = sK(sT_{f}-sT_{0})
\\
Ahora nuestra fórmula de salida es la siguiente:
\\
w = \frac{\Delta\Theta}{\Delta t} = \frac{d\Theta }{dt}
\\
w = velocidad angular.
dΘ/dt = cambio de velocidad angular con respecto al tiempo.
\\
\\
Le sacamos la transformada a nuestra formula de salida y nos queda:
\\
Lw = s\Theta(s)
\\
Solamente acomodamos nuestras formulas para que quede asi nuestra función:
\\
G(s) = \frac{sK(sT_{f}-sT_{0})}{\Theta s}
\begin{center}
{\LARGE\bf ¿Por que esas formulas?:\\ }
\end{center}
\\
\\
Todas nuestras formulas están en un función del tiempo ya que de esto dependerá el encendido o apagado de nuestros ventiladores.
Entonces, tomamos en cuenta que la entrada es una temperatura en el sistema(que pasará a ser voltaje) y la salida es una velocidad en el ventilador, que será manipulada por un arduino dependiendo de la temperatura de entrada.
\\
\\
\begin{center}
{\LARGE\bf Aquí el diagrama de bloques:\\ }
\end{center}
\begin{figure} [h]
\begin {center}
\includegraphics[width=0.5\textwidth]{auto.png}
\caption{Diagrama de bloques}
\end {center}
\end{figure}
\begin{center}
{\LARGE\bf CONTROLABILIDAD Y OBSERVABILIDAD\\ }
\end{center}
\\
% -- CONTROLABILIDAD
\\
\begin{center}
{\LARGE\bf CONTROLABILIDAD\\}
\end({enter}
\\
Se dice que un sistema es controlable en el tiempo t_{0} si se puede transferir desde cualquier estado inicial a cualquier otro estado, mediante un vector de control sin restricciones, en un intervalo de tiempo finito.
\\
%Ecuacion de transferencia en la forma canonica controlable
\begin{bmatrix}
\dot_{x}_{1} \\
\dot_{x}_{2}
\end{bmatrix}
=
\begin{bmatrix}
0 & 1 \\
10 & 0
\end{bmatrix}
\begin{bmatrix}
x^{1} \\
x^{2}
\end{bmatrix}
+
\begin{bmatrix}
0 \\
1
\end{bmatrix} u
y =
\begin{bmatrix}
10 & 0 \\
\end{bmatrix}
\begin{bmatrix}
x_{1} \\
x_{2}
\end{bmatrix}
+
\begin{bmatrix}
10
\end{bmatrix} u
% -- OBSERVAVILIDAD
\begin{center}
{\LARGE\bf OBSERVABILIDAD\\}
\end({enter}
\\
Se dice que un sistema es observable en el tiempo t_{0} si, con el sistema en el estado x{t_{0}}, es posible determinar este estado a partir de la observación de la salida durante un intervalo de tiempo finito.
\\
% -- Ecuacion de transferencia en la forma canónica observable
\begin{bmatrix}
\dot_{x_{1}} \\
\dot_{x_{2}}
\end{bmatrix} =
\begin{bmatrix}
0 & 10 \\
1 & 0
\end{bmatrix}
\begin{bmatrix}
x_{1}\\
x_{2}
\end{bmatrix} +
\begin{bmatrix}
10
\end{bmatrix} u
\\
\\
y =
\begin{bmatrix}
0 & 1
\end{bmatrix}
\begin{bmatrix}
x_{1}\\
x_{2}
\end{bmatrix} +
\begin{bmatrix}
10
\end{bmatrix} u
\begin{center}
{\LARGE\bf DIAGONALIZACIÓN\\}
\end({enter}
\\
Ahora, para representar nuestra ecuación en la forma diagonal, primero necesitamos sacar fracciones parciales a la ecuación de transferencia. Esto se puede llevar a cabo mediante la funcion residue de octave. Esta función, al darle como parámetros los valores del numerador y denominador nos dará las raices de nuestra ecuación:
\\
\\
\begin{figure} [h]
\begin {center}
\includegraphics[width=0.5\textwidth]{esteban.png}
\caption{Raices}
\end {center}
\end{figure}
\\
\\
estas raíces resultarán entonces en la diagonalizacón de nuestra ecuación, la cual es la siguiente:
\\
\begin{bmatrix}
\dot_{x_{1}} \\
\dot_{x_{2}}
\end{bmatrix} =
\begin{bmatrix}
0 & 0 \\
0 & -1
\end{bmatrix}
\begin{bmatrix}
x_{1} \\
x_{2}
\end{bmatrix} +
\begin{bmatrix}
1\\
1
\end{bmatrix} u
\\
y =
\begin{bmatrix}
0 & -1
\end{bmatrix}
\begin{bmatrix}
x_{1} \\
x_{2}
\end{bmatrix} +
\begin{bmatrix}
10
\end{bmatrix} u
\\
\end{document}
view raw documento.tex hosted with ❤ by GitHub

martes, 6 de noviembre de 2012

Reporte

Un sistema integrado de navegación y de control de movimiento para robots móviles autónomos multisensoriales

Una tarea esencial para el sistema de robot móvil es la navegación y control de movimiento. Las características de la percepción requeridas por el entorno de modelado o de control de movimiento son muy diferentes. Esto puede obtener utilizando básicamente varios sensores.

El sistema descrito en NMC(neuromuscular controller) integra la adquisición de datos simple, modelado, planificación, y el subsistema de control de movimiento. Un conjunto de reglas determina la estructura dinámica y el comportamiento del sistema y procides un hombre / máquina y el sistema de interfaz del sistema


Introduccion:
La investigación en robots móviles se inició en los años sesenta con el trabajo pionero del Instituto de Investigaciones de Stanford. Dos versiones de Shakey, un robot móvil autónomo, fueron construidos en 1968 y 1971. El principal objetivo de este proyecto fue "para estudiar los procesos para el control en tiempo real de un sistema de robot que interactúa con un entorno complejo". De hecho, los robots móviles fueron y siguen siendo un apoyo muy cómodo y eficaz para la investigación de inteligencia artificial orientadas en robotica

Shakey:


Un segunda tendencia bastante diferente de la investigación se inició en torno a la misma época. Su objetivo era resolver el problema de la locomoción robot-vehículo en terrenos difíciles. Los trabajos se centran en el diseño y el estudio de la cinemática y la dinámica de robots con multiples piernas.

HILARE, un robot móvil
El proyecto hilare se inició a finales de 1977 en LAAS. El objetivo del proyecto es llevar a cabo la investigación en general en la robótica y la percepción de un robot y su planificación. Un robot móvil se construyó para servir como un medio experimental.

La infraestructura física
El vehículo tiene tres ruedas, como se muestra en la imagen siguiente. Las dos ruedas traseras son impulsadas por motores paso a paso y la rueda delantera es libre. Esta estructura es simple, pero permite que el robot pueda realizar trayectorias tales como líneas rectas, círculos y clotoides(espirales).


Percepción sistema
A syste multisensorial proporciona el robot con la información que necesita acerca de su medio ambiente.

Percepción ultrasónico

El sistema tiene dos funciones:

1.- Una función de alarma que advierte al robot de la vecindad cercana de algún objeto. La reacción del robot es por lo general para llegar a una parada completa si mueve.

2.- Un circuito cerrado de función local evasión de obstáculos. En este modo el robot utiliza los datos de alcance para moverse a lo largo de un objeto, maniobrando para permanecer a una distancia fija de su superficie

VisiónUna cámara y un láser son el sistema de percepción principal. El láser se puede utilizar en el modo de exploración, o se puede medir rangos.

Posición referenciasLa posición se puede conseguir ya sea con relación a los objetos y los patrones específicos de entorno o en un marco construido de referencias.

La toma de decisiones y el control de ejecución
Una cuestión importante que surge en el área de investigación de la organización del sistema de toma de decisiones es el grado de distribución de decisión en el sistema, el grado de descomposición del sistema en módulos independientes, y su nivel de abstracción.

Referencias:
http://cyberneticzoo.com/wp-content/uploads/2010/10/HILARE-Robot-Research.pdf

Imagen: http://cs.stanford.edu/groups/manips/research/neuromuscular-control

Expresión ω-regular

Para ésta tarea se pidió que se creara una expresión ω-regular y a partir de ella creáramos un NBA (Nondeterministic Büchi Automaton).

Ésta expresión debía cumplir con 2 reglas:
  • Contar con 2 o más operadores(AND, OR, NOT, etc).
  • Contar con 2 o más símbolos( +, *, etc)
Mi expresión w-regular es la siguiente:


La NBA es la siguiente:


Referencias:
http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular

jueves, 1 de noviembre de 2012

Reporte 5

El problema que se escogio es el siguiente:

De la siguiente imagen que muestra un diagrama de bloques de un sistema de control de procesos. Determina el rango de ganancia K para la estabilidad.

creamos nuestra funcion de transferencia que es la siguiente:



ahora para resolver el problema convertiremos las s por jw, asi nos queda nuestra funcion:

ahora empezamos a resolver nuestra funcion y tenemos que:

e^jw = (cosw -jsinw)(1 - jw)

entonces nos queda asi:


resolvemos de nuevo y nos queda asi:



por la configuración de la parte imaginaria de G (jw) igual a cero, obtenemos que:

sin w + w cos w = 0

o

w = -tan w

esto gracias a las funciones de equivalencias.

resolviendo esta ecuación para el valor positivo más pequeño de w, se obtiene que:

w = 2.029

substituyendo  w = 2.029 en G(jw)


el valor crítico de K para la estabilidad se puede obtener dejando que

G(j2.029) = -1 

o

0.4421 K = 1


Así con esto, el rango de ganancia K para la estabilidad es:

2.262 > K > 0

Code steganography

This code is only to encrypt the image

Here the code:
import Image
imagen = Image.open("006.jpg")
arch = open("mensaje.txt","r")
message = []
todec = []
count = 0
psize = 0
x, y = imagen.size
pixels = imagen.load()
counter = 0
sizet = 0
ident = 0
indicador = 0
pix = 0
ctrls = 0
cant = 0
o = 0
v = 0
a = 0
rgb = 0
d = 0
for i in arch.xreadlines():
data = i
message.append(data)
count = count + len(data)
d = d + len(data)
psize = len(message)
for i in range(psize):
size = len(message[i])
for j in range(size):
todec.append(ord(message[i][j]))
multi = x * y
size = int(len(todec))
separate = multi/size
constant = separate/4
for i in range(x):
for j in range(y):
(o,v,a) = pixels[i,j]
if cant == 0:
mod = o % 7
if mod == 1:
r = size
pixels[i,j] = (r,v,a)
cant = cant + 1
else:
if pix < separate:
if count > 0:
indicador = todec[sizet]
if rgb == 0:
r = todec[sizet]
pixels[i,j] = (r,v,a)
sizet = sizet + 1
count = count - 1
pix = separate
if rgb == 1:
g = todec[sizet]
pixels[i,j] = (o,g,a)
size = size + 1
count = count - 1
pix = separate
if rgb == 2:
B = todec[sizet]
pixels[i,j] = (a,v,B)
size = size + 1
count = count - 1
pix = separate
if ctrls >= separate:
separate = separate + constant/2
pix = 0
ctrls = ctrls + 1
if rgb == 0:
rgb = 1
else:
if rgb == 1:
rgb = 2
else:
if rgb ==2:
rgb = 0
print "Copia exitosa"
imagen.save("004.png")